JP2023509092A - ポイントクラウドデータ送信装置、ポイントクラウドデータ送信方法、ポイントクラウドデータ受信装置及びポイントクラウドデータ受信方法 - Google Patents

ポイントクラウドデータ送信装置、ポイントクラウドデータ送信方法、ポイントクラウドデータ受信装置及びポイントクラウドデータ受信方法 Download PDF

Info

Publication number
JP2023509092A
JP2023509092A JP2022542110A JP2022542110A JP2023509092A JP 2023509092 A JP2023509092 A JP 2023509092A JP 2022542110 A JP2022542110 A JP 2022542110A JP 2022542110 A JP2022542110 A JP 2022542110A JP 2023509092 A JP2023509092 A JP 2023509092A
Authority
JP
Japan
Prior art keywords
point cloud
cloud data
atlas
data
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2022542110A
Other languages
English (en)
Other versions
JP7434577B2 (ja
Inventor
オ,セジン
イ,ジンウォン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LG Electronics Inc
Original Assignee
LG Electronics Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by LG Electronics Inc filed Critical LG Electronics Inc
Publication of JP2023509092A publication Critical patent/JP2023509092A/ja
Priority to JP2024016838A priority Critical patent/JP2024050831A/ja
Application granted granted Critical
Publication of JP7434577B2 publication Critical patent/JP7434577B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/31Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/2362Generation or processing of Service Information [SI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/2365Multiplexing of several video streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/422Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
    • H04N21/42201Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS] biosensors, e.g. heat sensor for presence detection, EEG sensors or any limb activity sensors worn by the user
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4345Extraction or processing of SI, e.g. extracting service information from an MPEG stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4347Demultiplexing of several video streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440245Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display the reformatting operation being performed only on part of the stream, e.g. a region of the image or a time segment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44213Monitoring of end-user related data
    • H04N21/44218Detecting physical presence or behaviour of the user, e.g. using sensors to detect if the user is leaving the room or changes his face expression during a TV program
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/4728End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for selecting a Region Of Interest [ROI], e.g. for requesting a higher resolution version of a selected region
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8146Monomedia components thereof involving graphical data, e.g. 3D object, 2D graphics
    • H04N21/8153Monomedia components thereof involving graphical data, e.g. 3D object, 2D graphics comprising still images, e.g. texture, background image
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/816Monomedia components thereof involving special video data, e.g 3D video
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/85406Content authoring involving a specific file format, e.g. MP4 format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/04Indexing scheme for image data processing or generation, in general involving 3D image data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Databases & Information Systems (AREA)
  • Social Psychology (AREA)
  • Remote Sensing (AREA)
  • Chemical & Material Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Neurosurgery (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Analytical Chemistry (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computer Security & Cryptography (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

実施例によるポイントクラウドデータ送信方法はポイントクラウドデータを符号化する段階;ポイントクラウドデータをカプセル化する段階;ポイントクラウドデータを送信する段階;を含む。実施例によるポイントクラウドデータ受信装置はポイントクラウドデータを受信する受信部;ポイントクラウドデータをデカプセル化するデカプセル化部;ポイントクラウドデータを復号するデコーダ;を含む。

Description

実施例はユーザにVR(Virtual Reality、仮想現実)、AR(Augmented Reality、増強現実)、MR(Mixed Reality、複合現実)及び自律走行サービスなどの様々なサービスを提供するために、ポイントクラウド(Point Cloud)コンテンツを提供する方案を提供する。
ポイントクラウドは3D空間上のポイントの集合である。3D空間上のポイントの量が多く、ポイントクラウドデータの生成が難しいという問題がある。
ポイントクラウドのデータの送受信のためには、大量の処理量が求められるという問題がある。
実施例に係る技術的課題は、上記問題点を解決するために、ポイントクラウドを効率的に送受信するためのポイントクラウドデータ送信装置、送信方法、ポイントクラウドデータ受信装置及び受信方法を提供することにある。
実施例に係る技術的課題は、遅延時間(latency)及び符号化/復号の複雑度を解決するためのポイントクラウドデータ送信装置、送信方法、ポイントクラウドデータ受信装置及び受信方法を提供することにある。
但し、上記技術的課題のみに制限されず、この明細書の全ての内容に基づいて当業者が導き出される他の技術的課題にも実施例の権利範囲を拡張することができる。
上記目的及び他の利点を達成するために、実施例に係るポイントクラウドデータ送信方法は、ポイントクラウドデータを符号化する段階;ポイントクラウドデータをカプセル化(encapsulating)する段階;及びポイントクラウドデータを送信する段階を含む(備える;構成する;構築する;設定する;包接する;包含する;含有する)。
実施例によるポイントクラウドデータ受信装置は、ポイントクラウドデータを受信する受信部;ポイントクラウドデータをデカプセル化(decapsulating)するデカプセル化部;及びポイントクラウドデータを復号するデコーダを含む。
実施例によるポイントクラウドデータ送信方法、送信装置、ポイントクラウドデータ受信方法及び受信装置は、良質のポイントクラウドサービスを提供することができる。
実施例によるポイントクラウドデータ送信方法、送信装置、ポイントクラウドデータ受信方法及び受信装置は、様々なビデオコーデック方式を達成することができる。
実施例によるポイントクラウドデータ送信方法、送信装置、ポイントクラウドデータ受信方法及び受信装置は、自立走行サービスなどの汎用のポイントクラウドコンテンツを提供することができる。
図面は実施例をさらに理解するために添付され、実施例に関する説明と共に実施例を示す。
実施例によるポイントクラウドコンテンツを提供するための送信/受信システム構造の一例を示す。 実施例によるポイントクラウドデータのキャプチャーの一例を示す。 実施例によるポイントクラウド及びジオメトリ、テクスチャイメージの一例を示す。 実施例によるV-PCC符号化処理の一例を示す。 実施例による表面(Surface)の接平面(tangent plane)及び法線ベクトル(normal vector)の一例を示す。 実施例によるポイントクラウドのバウンディングボックス(bounding box)の一例を示す。 実施例による占有マップ(occupancy map)の個別パッチ(patch)の位置決めの一例を示す。 実施例によるノーマル(normal)、タンジェント(tangent)、バイタンジェント(bitangent)軸の関係の一例を示す。 実施例によるプロジェクションモードの最小モード及び最大モードの構成の一例を示す。 実施例によるEDDコードの一例を示す。 実施例による隣接点のカラー(color)値を用いた復色(recoloring)の一例を示す。 実施例によるプッシュ-プルバックグラウンドフィリング(push-pull background filling)の一例を示す。 実施例による4*4サイズのブロック(block)に対して可能なトラバーサルオーダー(traversal order)の一例を示す。 実施例によるベストトラバーサルオーダーの一例を示す。 実施例による2Dビデオ/イメージエンコーダ(2D video/image Encoder)の一例を示す。 実施例によるV-PCC復号プロセス(decoding process)の一例を示す。 実施例による2Dビデオ/イメージデコーダ(2D Video/Image Decoder)の一例を示す。 実施例による送信装置の動作の流れの一例を示す。 実施例による受信装置の動作の流れの一例を示す。 実施例によるV-PCC基盤のポイントクラウドデータの格納及びストリーミングのためのアーキテクチャの一例を示す。 実施例によるポイントクラウドデータの格納及び送信装置の構成の一例を示す。 実施例によるポイントクラウドデータ受信装置の構成の一例を示す。 実施例によるポイントクラウドデータの送受信方法/装置と連動可能な構造の一例を示す。 実施例によるカプセル化されたV-PCCデータコンテナの構造を示す。 実施例による絶縁(insulating)されたV-PCCデータコンテナの構造を示す。 実施例によるポイントクラウドデータを含むビットストリームの構造を示す。 実施例によるサンプルストリームV-PCCユニットの構成を示す。 実施例によるV-PCCユニット及びV-PCCユニットヘッダを示す。 実施例によるV-PCCユニットのペイロードを示す。 実施例によるパラメータセット(V-PCC parameter set)を示す。 実施例によるタイルを示す。 実施例によるアトラスビットストリームの構造を示す。 実施例によるNALユニットを示す。 実施例によるNALユニットのタイプを示す。 実施例によるアトラスシーケンスパラメータセット(atlas sequence parameter set)を示す。 実施例によるアトラスフレームパラメータセット(atlas frame parameter set)を示す。 実施例によるアトラスフレームタイル情報(atlas_frame_tile_information)を示す。 実施例によるアトラス適応パラメータセット(atlas_adaptation_parameter_set_rbsp())を示す。 実施例によるアトラスカメラパラメータ(atlas_camera_parameters)を示す。 実施例によるアトラスタイルグループレイヤ(atlas_tile_group_layer)、アトラスタイルグループヘッダ(atlas_tile_group_header)を示す。 実施例による参照リスト構造(ref_list_struct)を示す。 実施例によるアトラスタイルグループデータ(atlas_tile_group_data_unit)を示す。 実施例によるパッチ情報データ(patch_information_data)を示す。 実施例によるパッチデータユニット(patch_data_unit)を示す。 実施例によるパッチオリエンテーションに関するローテーション及びオフセットを示す。 実施例によるシーン客体情報(scene_object_information)を示す。 実施例による客体ラベル情報(Object Label Information)を示す。 実施例によるパッチ情報(Patch Information)を示す。 実施例によるボリュメトリック矩形情報(Volumetric Rectangle Information)を示す。 実施例によるサンプルストリームvpccユニットの構成を示す。 実施例によるアトラスタイルグループ(又はタイル)の構成を示す。 実施例によるV-PCC空間領域ボックス(VPCC Spatial Regions box)の構造を示す。 実施例による動的空間領域サンプル(DynamicSpatialRegionSample)を示す。 実施例によるノンタイム(non-timed)V-PCCデータをカプセル化するための構造を示す。 実施例によるポイントクラウドデータ送信方法を示すフローチャートである。 実施例によるポイントクラウドデータ受信方法を示すフローチャートである。 実施例によるファイルフォーマット構造を示す。 実施例によるファイルレベルシグナリングを示す。 実施例によるポイントクラウドの一部の3次元領域とビデオフレーム上の領域の間の連関性を示す。 実施例によるパラメータセットを示す。 実施例によるアトラスシーケンスパラメータセット(atlas sequence parameter set,ASPS)を示す。 実施例によるアトラスフレームパラメータセット(atlas frame parameter set,AFPS)を示す。 実施例によるアトラスフレームタイル情報(atlas_frame_tile_information)を示す。 実施例による補足強化情報(Supplemental enhancement information,SEI)を示す。 実施例による3DバウンディングボックスSEIを示す。 実施例による3D領域マッピング情報SEIメッセージを示す。 実施例によるボリュメトリックタイリング情報を示す。 実施例によるボリュメトリックタイリング情報客体を示す。 実施例によるボリュメトリックタイリング情報ラベルを示す。 実施例によるV-PCCサンプルエントリーを示す。 実施例によるトラックの代替及びグルーピングを示す。 実施例によるV-PCC 3D領域マッピング情報の構造を示す。 実施例によるビットストリームの構造を示す。 実施例による送信方法を示す。 実施例による受信方法を示す。
以下、添付図面を参照しながら望ましい実施例について具体的に説明する。添付図面を参照した以下の詳細な説明は、実施例によって具現可能な実施例のみを示すというよりは、望ましい実施例を説明するためのものである。以下の詳細な説明は実施例に対する徹底な理解を提供するために細部事項を含む。しかし、かかる細部事項がなくても実施例を実行できることは当業者にとって明らかである。
実施例で使用するほとんどの用語は該当分野において広く使用される一般的なものであるが、一部は出願人によって任意に選択されたものであり、その意味は必要によって以下に詳しく説明する。よって、実施例は用語の単純な名称や意味ではなく、用語が意図する意味に基づいて理解されるべきである。
図1は、実施例によるポイントクラウドコンテンツを提供するための送信/受信システム構造の一例を示す。
本文書では、ユーザにVR(Virtual Reality、仮想現実)、AR(Augmented Reality、増強現実)、MR(Mixed Reality、混合現実)及び自立走行サービスなどの様々なサービスを提供するために、ポイントクラウドコンテンツを提供する方案を提供する。実施例によるポイントクラウドコンテンツは、客体をポイントによって表現したデータを示し、ポイントクラウド、ポイントクラウドデータ、ポイントクラウドビデオデータ、ポイントクラウドイメージデータなどとも呼ばれる。
実施例によるポイントクラウドデータ送信装置(Transmission device)10000は、ポイントクラウドビデオ取得部(Point Cloud Video Acquisition unit)10001、ポイントクラウドビデオエンコーダ(Point Cloud Video Encoder)10002、ファイル/セグメントカプセル化部10003及び/又は送信機(Transmitter(or Communication module))10004を含む。実施例による送信装置は、ポイントクラウドビデオ(又はポイントクラウドコンテンツ)を確保して処理し、送信することができる。実施例によって、送信装置は、固定局(fixed station)、BTS(base transceiver system)、ネットワーク、AI(Artificial Intelligence)機器及び/又はシステム、ロボット、AR/VR/XR機器及び/又はサーバーなどを含む。また実施例によって、送信装置10000は、無線接続技術(例えば、5G NR(New RAT)、LTE(Long Term Evolution))を用いて、基地局及び/又は他の無線機器と通信を行う機器、ロボット、車両、AR/VR/XR機器、携帯機器、家電、IoT(Internet of Thing)機器、AI機器/サーバーなどを含む。
実施例によるポイントクラウドビデオ取得部(Point Cloud Video Acquisition unit)10001は、ポイントクラウドビデオのキャプチャー、合成又は生成プロセスなどによってポイントクラウドビデオを取得する。
実施例によるポイントクラウドビデオエンコーダ(Point Cloud Video Encoder)10002は、ポイントクラウドビデオデータを符号化する。実施例によって、ポイントクラウドビデオエンコーダ10002は、ポイントクラウドエンコーダ、ポイントクラウドデータエンコーダ、エンコーダなどと呼ばれる。また実施例によるポイントクラウド圧縮コーティング(符号化)は、上述した実施例に限らない。ポイントクラウドビデオエンコーダは、符号化されたポイントクラウドビデオデータを含むビットストリームを出力する。ビットストリームは符号化されたポイントクラウドビデオデータのみならず、ポイントクラウドビデオデータの符号化に関連するシグナリング情報を含む。
実施例によるエンコーダはG-PCC(Geometry-based Point Cloud Compression)符号化方式及び/又はV-PCC(Video-based Point Cloud Compression)符号化方式をいずれも支援する。またエンコーダはポイントクラウド(ポイントクラウドデータ又はポイントの全てを称する)及び/又はポイントクラウドに関するシグナリングデータを符号化することができる。実施例による符号化の具体的な動作については後述する。
一方、この明細書で使用するV-PCC用語は、ビデオ基盤のポイントクラウド圧縮(Video-based point Cloud Compression(V-PCC))を意味し、V-PCC用語はビジュアルボリュメトリックビデオ基盤のコーディング(Visual Volumetric Video-based Coding(V3C))と同一であり、相互補完して称することができる。
実施例によるファイル/セグメントカプセル化部(File/Segment Encapsulation module)10003は、ポイントクラウドデータをファイル及び/又はセグメントの形式でカプセル化する。実施例によるポイントクラウドデータ送信方法/装置は、ポイントクラウドデータをファイル及び/又はセグメントの形式で送信することができる。
実施例による送信機(Transmitter(or Communication module))10004は、符号化されたポイントクラウドビデオデータをビットストリームの形式で送信する。実施例によって、ファイル又はセグメントは、ネットワークを介して受信装置へ送信されるか、又はデジタル記憶媒体(例えば、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなど)に格納される。実施例による送信機は受信装置(又は受信機(Receiver))と4G、5G、6Gなどのネットワークを介して有/無線通信が可能である。また送信機はネットワークシステム(例えば、4G、5G、6Gなどの通信ネットワークシステム)に応じて必要なデータ処理の動作を行うことができる。また送信装置はオン・デマンド(On Demand)の方式によってカプセル化されたデータを送信することもできる。
実施例によるポイントクラウドデータ受信装置(Reception device)10005は、受信機(Receiver)10006、ファイル/セグメントデカプセル化部10007、ポイントクラウドビデオデコーダ(Point Cloud video Decoder)10008、及び/又はレンダラー(Renderer)10009を含む。実施例によって受信装置は無線接続技術(例えば、5G NR(New RAT)、LTE(Long Term Evolution))を用いて、基地局及び/又は他の無線機器と通信を行う機器、ロボット、車両、AR/VR/XR機器、携帯機器、家電、IoT(Internet of Thing)機器、AI機器/サーバーなどを含む。
実施例による受信機(Receiver)10006は、ポイントクラウドビデオデータを含むビットストリームを受信する。実施例によって受信機10006は、フィードバック情報(Feedback Information)をポイントクラウドデータ送信装置10000に送信する。
ファイル/セグメントデカプセル化部(File/Segment Decapsulation module)10007は、ポイントクラウドデータを含むファイル及び/又はセグメントをデカプセル化する。実施例によるデカプセル化部は実施例によるカプセル化過程の逆過程を行う。
ポイントクラウドビデオデコーダ(Point Cloud video Decoder)10007は、受信したポイントクラウドビデオデータを復号する。実施例によるデコーダは実施例による符号化の逆過程を行う。
レンダラー(Renderer)10007は、復号されたポイントクラウドビデオデータをレンダリングする。実施例によってレンダラー10007は受信端側で取得したフィードバック情報をポイントクラウドビデオデコーダ10006に送信する。実施例によるポイントクラウドビデオデータはフィードバック情報を受信機に送信する。実施例によれば、ポイントクラウド送信装置が受信したフィードバック情報は、ポイントクラウドビデオエンコーダに提供される。
図面において点線で示した矢印は、受信装置10005で取得したフィードバック情報(feedback information)の送信経路を示す。フィードバック情報は、ポイントクラウドコンテンツを消費するユーザとの相互作用を反映するための情報であって、ユーザの情報(例えば、ヘッドオリエンテーション情報、ビューポート情報など)を含む。特にポイントクラウドコンテンツがユーザとの相互作用が必要なサービス(例えば、自律走行サービスなど)のためのものである場合、フィードバック情報はコンテンツ送信側(例えば、送信装置10000)及び/又はサービス供給者に伝送される。実施例によっては、フィードバック情報は送信装置10000だけではなく受信装置10005で使用されることもあり、提供されないこともある。
実施例によるヘッドオリエンテーション情報は、ユーザの頭の位置、方向、角度、動きなどに関する情報である。実施例による受信装置10005は、ヘッドオリエンテーション情報に基づいてビューポート情報を算出する。ビューポート情報はユーザが見ているポイントクラウドビデオの領域に関する情報である。視点(viewpoint)はユーザがポイントクラウドビデオを見ている点であり、ビューポート領域の真ん中を意味する。即ち、ビューポートは視点を中心とする領域であり、領域のサイズ、形態などはFOV(Field Of View)により決定される。従って、受信装置10004は、ヘッドオリエンテーション情報の他に、装置が支援する垂直(vertical)或いは水平(horizontal)FOVなどに基づいてビューポート情報を抽出することができる。また受信装置10005はゲイズ分析(Gaze Analysis)などを行って、ユーザのポイントクラウド消費方式、ユーザが凝視するポイントクラウドビデオ領域、凝視時間などを確認する。実施例によれば、受信装置10005はゲイズ分析の結果を含むフィードバック情報を送信装置10000に送信する。実施例によるフィードバック情報はレンダリング及び/又はディスプレイプロセスで得られる。実施例によるフィードバック情報は、受信装置10005に含まれた一つ又はそれ以上のセンサにより確保される。また実施例によれば、フィードバック情報は、レンダラー10009又は別の外部エレメント(又はデバイス、コンポーネントなど)により確保される。図1に示された点線はレンダラー10009で確保したフィードバック情報の伝送プロセスを示す。ポイントクラウドコンテンツ提供システムはフィードバック情報に基づいてポイントクラウドデータを処理(符号化/復号)する。従って、ポイントクラウドビデオデータデコーダ10008はフィードバック情報に基づいて復号の動作を行うことができる。また受信装置10005はフィードバック情報を送信装置に送信する。送信装置(又はポイントクラウドビデオデータエンコーダ10002)は、フィードバック情報に基づいて符号化動作を行う。従って、ポイントクラウドコンテンツ提供システムは、全てのポイントクラウドデータを処理(符号化/復号)せず、フィードバック情報に基づいて必要なデータ(例えば、ユーザのヘッド位置に対応するポイントクラウドデータ)を効率的に処理して、ユーザにポイントクラウドコンテンツを提供することができる。
実施例において、送信装置10000はエンコーダ、送信デバイス、送信機などと呼ばれ、受信装置10004はデコーダ、受信デバイス、受信機などと呼ばれる。
実施例による図1のポイントクラウドコンテンツ提供システムで処理される(取得/符号化/送信/復号/レンダリングの一連のプロセスで処理される)ポイントクラウドデータは、ポイントクラウドコンテンツデータ又はポイントクラウドビデオデータとも呼ばれる。実施例によれば、ポイントクラウドコンテンツデータはポイントクラウドデータに関連するメタデータ又はシグナリング情報を含む概念として使用することができる。
図1に示したポイントクラウドコンテンツ提供システムの要素は、ハードウェア、ソフトウェア、プロセッサ及び/又はそれらの組み合わせなどで具現できる。
実施例はユーザにVR(Virtual Reality、仮想現実)、AR(Augmented Reality、増強現実)、MR(Mixed Reality、混合現実)及び自立走行サービスなどの様々なサービスを提供するために、ポイントクラウドコンテンツを提供する。
ポイントクラウドコンテンツサービスを提供するために、まず、ポイントクラウドビデオを得る。得られたポイントクラウドビデオは、一連のプロセスにより送信され、受信側で受信したデータを再び元のポイントクラウドビデオに加工てレンダリングする。これにより、ポイントクラウドビデオをユーザに提供することができる。実施例はこれらの一連のプロセスを効果的に行うために必要な方案を提供する。
ポイントクラウドコンテンツサービスを提供するための全体のプロセス(ポイントクラウドデータ送信方法及び/又はポイントクラウドデータ受信方法)は、取得プロセス、符号化プロセス、送信プロセス、復号プロセス、レンダリングプロセス及び/又はフィードバックプロセスを含む。
実施例によれば、ポイントクラウドコンテンツ(又はポイントクラウドデータ)を提供するプロセスは、ポイントクラウド圧縮(Point Cloud Compression)プロセスとも呼ぶ。実施例によれば、ポイントクラウド圧縮プロセスは、ジオメトリ基盤のポイントクラウド圧縮(Geometry-based Point Cloud Compression)プロセスを意味する。
実施例によるポイントクラウドデータ送信装置及びポイントクラウドデータ受信装置の各要素は、ハードウェア、ソフトウェア、プロセッサ及び/又はそれらの組み合わせなどを意味する。
ポイントクラウドコンテンツサービスを提供するために、まず、ポイントクラウドビデオを得る。得られたポイントクラウドビデオは、一連のプロセスにより送信され、受信側で受信したデータを再び元のポイントクラウドビデオに加工てレンダリングする。これにより、ポイントクラウドビデオをユーザに提供することができる。本発明はこれらの一連のプロセスを効果的に行うために必要な方案を提供する。
ポイントクラウドコンテンツサービスを提供するための全てのプロセスは、取得プロセス、符号化プロセス、送信プロセス、復号プロセス、レンダリングプロセス及び/又はフィードバックプロセスを含む。
ポイントクラウド圧縮システムは、送信デバイス及び受信デバイスを含む。送信デバイスはポイントクラウドビデオを符号化してビットストリームを出力し、それをファイル又はストリーミング(ストリーミングセグメント)の形式でデジタル記憶媒体又はネットワークを介して受信デバイスへ伝送する。デジタル記憶媒体は、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなど様々な記憶媒体を含む。
送信デバイスは概略にポイントクラウドビデオ取得部、ポイントクラウドビデオエンコーダ、ファイル/セグメントカプセル化部、送信部を含む。受信デバイスは概略に受信部、ファイル/セグメントデカプセル化部、ポイントクラウドビデオデコーダ及びレンダラーを含む。エンコーダはポイントクラウドビデオ/映像/ピクチャー/フレーム符号化装置とも呼ばれ、デコーダはポイントクラウドビデオ/映像/ピクチャー/フレーム復号装置とも呼ばれる。送信機はポイントクラウドビデオエンコーダに含まれてもよい。受信機はポイントクラウドビデオデコーダに含まれてもよい。レンダラーはディスプレイ部を含んでもよく、レンダラー及び/又はディスプレイ部は別のデバイス又は外部コンポーネントで構成されてもよい。送信デバイス及び受信デバイスはフィードバックプロセスのための別の内部又は外部のモジュール/ユニット/コンポーネントをさらに含んでもよい。
実施例による受信デバイスの動作は、送信デバイスの動作の逆プロセスに従う。
ポイントクラウドビデオ取得部は、ポイントクラウドビデオのキャプチャー、合成又は生成プロセスなどを通じてポイントクラウドビデオを得るプロセスを行う。取得プロセスによって、多数のポイントに対する3D位置(x、y、z)/属性(色、反射率、透明度など)データ、例えば、PLY(Polygon File format or the Stanford Triangle format)ファイルなどが生成される。複数のフレームを有するビデオの場合、1つ以上のファイルを得ることができる。キャプチャープロセスにおいてポイントクラウドに関連するメタデータ(例えば、キャプチャーに関するメタデータなど)が生成される。
実施例によるポイントクラウドデータ送信装置は、ポイントクラウドデータを符号化するエンコーダ、及びポイントクラウドデータを送信する送信機を含んでもよい。またポイントクラウドを含むビットストリームの形式で送信されてもよい。
実施例によるポイントクラウドデータ受信装置は、ポイントクラウドデータを受信する受信部、ポイントクラウドデータを復号するデコーダ、及びポイントクラウドデータをレンダリングするレンダラーを含む。
実施例による方法/装置は、ポイントクラウドデータ送信装置及び/又はポイントクラウドデータ受信装置を示す。
図2は、実施例によるポイントクラウドデータのキャプチャーの一例を示す。
実施例によるポイントクラウドデータはカメラなどにより得られる。実施例によるキャプチャーの方法は、例えば、内向き方式(inward-facing)及び/又は外向き方式(outward-facing)がある。
実施例による内向き方式は、ポイントクラウドデータの客体(Object)を1つ又は1つ以上のカメラが客体の外側から内側へ撮影して取得するキャプチャー方式である。
実施例による外向き方式は、ポイントクラウドデータの客体を1つ又は1つ以上のカメラが客体の内側から外側へ撮影して取得する方式である。例えば、実施例によればカメラが4つある。
実施例によるポイントクラウドデータ又はポイントクラウドコンテンツは、様々な形式の3D空間上に表現される客体/環境のビデオ又は停止映像である。実施例によれば、ポイントクラウドコンテンツは客体(objectなど)に対するビデオ/オーディオ/イメージなどを含む。
ポイントクラウドコンテンツキャプチャーのために深さ(depth)を得られるカメラ装備(赤外線パターンプロジェクターと赤外線カメラとの組み合わせ)と深さ情報に対応する色情報が抽出可能なRGBカメラの組み合わせによって構成される。又はレーザパルスを打ち、反射して戻る時間を測定して、反射体の位置座標を測定するレーダーシステムを用いるライダー(LiDAR)によって深さ情報を抽出することができる。深さ情報より3D空間上の点で構成されたジオメトリ(geometry)の形式を抽出し、RGB情報より各点の色/反射を表現する特質(attribute)を抽出することができる。ポイントクラウドコンテンツは点に対する位置(x、y、z)、色(YCbCr又はRGB)又は反射率(r)情報で構成される。ポイントクラウドコンテンツは、外部環境をキャプチャーする外向き方式(outward-facing)と、中心客体をキャプチャーする内向き方式(inward-facing)とがある。VR/AR環境において客体(例えば、キャラクター、選手、物、俳優などの核心となる客体)を360°にユーザが自由に見られるポイントクラウドコンテンツとして構成する場合、キャプチャーカメラの構成は内向き方式を用いる。また、自立走行のように自動車の現在周辺環境をポイントクラウドコンテンツとして構成する場合は、キャプチャーカメラの構成は外向き方式を用いる。複数のカメラによってポイントクラウドコンテンツがキャプチャーされるため、カメラ間のグローバル空間座標系(global coordinate system)を設定するためにコンテンツをキャプチャーする前にカメラの校正プロセスが必要となることもある。
ポイントクラウドコンテンツは、様々な形態の3D空間上に示される客体/環境のビデオ又は停止映像である。
その他に、ポイントクラウドコンテンツの取得方法は、キャプチャーされたポイントクラウドビデオに基づいて任意のポイントクラウドビデオが合成できる。又はコンピューターで生成された仮想の空間に対するポイントクラウドビデオを提供しようとする場合、実際にカメラによるキャプチャーが行われないことがある。この場合、単に、関連データが生成されるプロセスによって該当キャプチャープロセスが代替できる。
キャプチャーされたポイントクラウドビデオは、コンテンツの質を向上させるための後処理が必要である。映像キャプチャープロセスにおいてカメラ装備が提供する範囲内で最大/最小の深さ値が調整できるが、その後にも所望しない領域のポイントデータが含まれることがあり、所望しない領域(例えば、背景)を除去するか、又は連結された空間を認識して穴(spatial hole)を埋める後処理を行ってもよい。また、空間座標系を共有するカメラから抽出されたポイントクラウドは、校正プロセスによって取得した各カメラの位置座標を基準として、各ポイントに対するグローバル座標系への変換プロセスにより、1つのコンテンツに統合できる。これにより、1つの広い範囲のポイントクラウドコンテンツを生成することもでき、又はポイントの密度の高いポイントクラウドコンテンツを取得することもできる。
ポイントクラウドビデオエンコーダは、入力されるポイントクラウドビデオを1つ以上のビデオストリームに符号化する。1つのポイントクラウドビデオは、複数のフレームを含んでもよく、1つのフレームは停止映像/ピクチャーに対応する。本文書において、ポイントクラウドビデオとは、ポイントクラウド映像/フレーム/ピクチャー/ビデオ/オーディオ/イメージなどを含み、ポイントクラウドビデオはポイントクラウド映像/フレーム/ピクチャーと混用できる。ポイントクラウドビデオエンコーダは、ビデオベースポイントクラウド圧縮(V-PCC)の手順を行う。ポイントクラウドビデオエンコーダは、圧縮及びコーティングの効率のために、予測、変換、量子化、エントロピー符号化などの一連の手順を行う。符号化されたデータ(符号化されたビデオ/映像情報)は、ビットストリームの形態で出力される。V-PCC手順に基づく場合、ポイントクラウドビデオエンコーダはポイントクラウドビデオを、後述のように、ジオメトリビデオ、特質(attribute)ビデオ、占有(occupancy)マップビデオ、また付加情報(auxiliary information)に分けて符号化する。ジオメトリビデオはジオメトリイメージを含み、特質(attribute)ビデオは特質イメージを含み、占有(occupancy)マップビデオは占有マップイメージを含む。付加情報は付加パッチ情報(auxiliary patch information)を含む。特質ビデオ/イメージはテキスチャービデオ/イメージを含む。
カプセル化処理部(file/segment encapsulation module)10003は、符号化されたポイントクラウドビデオデータ及び/又はポイントクラウドビデオ関連メタデータをファイルなどの形式でカプセル化する。ここで、ポイントクラウドビデオ関連メタデータは、メタデータ処理部などから伝送される。メタデータ処理部は、ポイントクラウドビデオエンコーダに含まれてもよく、又は別のコンポーネント/モジュールで構成されてもよい。カプセル化部は該当データをISOBMFFなどのファイルフォーマットでカプセル化してもよく、その他のDASHセグメントなどの形式で処理してもよい。カプセル化処理部は、実施例によれば、ポイントクラウドビデオ関連メタデータをファイルフォーマット上に含ませてもよい。ポイントクラウドビデオ関連メタデータは、例えば、ISOBMFFファイルフォーマット上の多様なレベルのボックスに含まれるか、又はファイル内で別のトラックに含まれる。実施例によれば、カプセル化処理部は、ポイントクラウドビデオ関連メタデータそのものをファイルでカプセル化する。送信処理部はファイルフォーマットによってカプセル化されたポイントクラウドビデオデータに送信のための処理を加えてもよい。送信処理部は、送信部に含まれてもよく、又は別のコンポーネント/モジュールで構成されてもよい。送信処理部は、任意の送信プロトコルに従ってポイントクラウドビデオデータを処理する。送信のための処理には、放送網を介して伝送するための処理、ブロードバンドを介して伝送するための処理を含む。実施例による送信処理部は、ポイントクラウドビデオデータのみならず、メタデータ処理部からポイントクラウドビデオ関連メタデータが伝送され、これに送信するための処理を加える。
送信部10004は、ビットストリームの形式で出力された符号化されたビデオ/映像情報又はデータをファイル又はストリーミングの形式でデジタル記憶媒体又はネットワークを介して受信デバイスの受信機へ伝送する。デジタル記憶媒体にはUSB、SD、CD、DVD、ブルーレイ、HDD、SSDなどが含まれる。送信部は所定のファイルフォーマットをによってメディアファイルを生成するための要素を含み、放送/通信ネットワークを介した送信のための要素を含む。受信部はビットストリームを抽出して復号装置に伝送する。
受信機10003は、本発明によるポイントクラウドビデオ送信装置が送信したポイントクラウドビデオデータを受信する。送信されるチャネルに応じて、受信部は、放送網を介してポイントクラウドビデオデータを受信してもよく、ブロードバンドを介してポイントクラウドビデオデータを受信してもよい。又はデジタル記憶媒体を介してポイントクラウドビデオデータを受信してもよい。
受信処理部は、受信したポイントクラウドビデオデータに対して送信プロトコルに従う処理を行う。受信処理部は受信部に含まれてもよく、又は別のコンポーネント/モジュールで構成されてもよい。送信側で送信のための処理が行われることに対応するように、受信処理部は上述した送信処理部の逆プロセスを行う。受信処理部は取得したポイントクラウドビデオデータはデカプセル化処理部に伝送し、取得したポイントクラウドビデオ関連メタデータはメタデータ処理部に伝送する。受信処理部が取得するポイントクラウドビデオ関連メタデータはシグナリングテーブルの形式であってもよい。
デカプセル化処理部(file/segment decapsulation module)10007は、受信処理部から伝送されたファイル形式のポイントクラウドビデオデータをデカプセル化する。デカプセル化処理部はISOBMFFなどによるファイルをデカプセル化し、ポイントクラウドビデオビットストリームないしポイントクラウドビデオ関連メタデータ(メタデータビットストリーム)を取得する。取得したポイントクラウドビデオビットストリームは、ポイントクラウドビデオデコーダに伝送し、取得したポイントクラウドビデオ関連メタデータ(メタデータビットストリーム)はメタデータ処理部に伝送する。ポイントクラウドビデオビットストリームはメタデータ(メタデータビットストリーム)を含んでもよい。メタデータ処理部はポイントクラウドビデオデコーダに含まれてもよく、又は別のコンポーネント/モジュールで構成されてもよい。デカプセル化処理部が取得するポイントクラウドビデオ関連メタデータは、ファイルフォーマット内のボックス又はトラックの形式であってもよい。デカプセル化処理部は、必要な場合、メタデータ処理部からデカプセル化に必要なメタデータが伝送される。ポイントクラウドビデオ関連メタデータは、ポイントクラウドビデオデコーダに伝送されてポイントクラウドビデオ復号の手順に用いられるか、又はレンダラーに伝送されてポイントクラウドビデオレンダリングの手順に用いられる。
ポイントクラウドビデオデコーダは、ビットストリームが入力され、ポイントクラウドビデオエンコーダの動作に対応する動作を行い、ビデオ/映像を復号する。この場合、ポイントクラウドビデオデコーダは、ポイントクラウドビデオを、後述のように、ジオメトリビデオ、特質(attribute)ビデオ、占有(occupancy)マップビデオ、また付加情報(auxiliary information)に分けて復号する。ジオメトリビデオはジオメトリイメージを含み、特質(attribute)ビデオは特質イメージを含み、占有(occupancy)マップビデオは占有マップイメージを含む。付加情報は付加パッチ情報(auxiliary patch information)を含む。特質ビデオ/イメージはテキスチャービデオ/イメージを含む。
復号されたジオメトリイメージと占有マップ及び付加パッチ情報を用いて、3Dジオメトリが復元され、その後平滑化プロセスを経てもよい。平滑化された3Dジオメトリにテキスチャーイメージを用いてカラー値を与えることで、カラーポイントクラウド映像/ピクチャーが復元される。レンダラーは、復元されたジオメトリ、カラーポイントクラウド映像/ピクチャーをレンダリングする。レンダリングされたビデオ/映像は、ディスプレイ部によってディスプレイされる。ユーザはVR/ARディスプレイ又は一般のディスプレイなどによってレンダリングされた結果の全部又は一部の領域を見る。
フィードバックプロセスは、レンダリング/ディスプレイのプロセスにおいて取得可能な様々なフィードバック情報を送信側に伝送するか、受信側のデコーダに伝送するプロセスを含んでもよい。フィードバックプロセスにより、ポイントクラウドビデオの消費において相互作用(interactivity)が提供される。実施例によれば、フィードバックプロセスにおいてヘッドオリエンテーション(Head Orientation)情報、ユーザが現在見ている領域を示すビューポート(Viewport)情報などが伝送される。実施例によれば、ユーザは、VR/AR/MR/自立走行環境上に具現されたものと相互作用できるが、この場合、その相互作用に関連する情報がフィードバックプロセスで送信側ないしサービス供給者側に伝送されることがある。実施例によってフィードバックプロセスは行わなくてもよい。
ヘッドオリエンテーション情報は、ユーザの頭の位置、角度、動きなどに関する情報である。この情報に基づいて、ユーザがポイントクラウドビデオ内で現在見ている領域の情報、即ち、ビューポート情報が算出される。
ビューポート情報は、ユーザがポイントクラウドビデオで現在見ている領域の情報である。これにより、ゲイズ分析(Gaze Analysis)が行われ、ユーザがどんな方式でポイントクラウドビデオを消費するか、ポイントクラウドビデオのどの領域をどのくらい凝視するかなどを確認できる。ゲイズ分析は、受信側で行われて送信側にフィードバックチャネルを介して伝送される。VR/AR/MRディスプレイなどの装置は、ユーザの頭の位置/方向、装置が支援する垂直(vertical)又は水平(horizontal)FOVなどに基づいてビューポート領域を抽出する。
実施例によれば、上述したフィードバック情報は送信側に伝送されるだけではなく、受信側で消費されてもよい。即ち、上述したフィードバック情報を用いて受信側の復号、レンダリングのプロセスなどが行われる。例えば、ヘッドオリエンテーション情報及び/又はビューポート情報を用いて、ユーザが現在見ている領域に対するポイントクラウドビデオのみを優先して復号及びレンダリングする。
ここで、ビューポート(viewport)ないしビューポート領域とは、ユーザがポイントクラウドビデオで見ている領域である。視点(viewpoint)はユーザがポイントクラウドビデオで見ている地点であって、ビューポート領域の真ん中を意味する。即ち、ビューポートは視点を中心とした領域であり、その領域が占めるサイズ、形態などはFOV(Field Of View)により決定される。
この明細書は、上述のように、ポイントクラウドビデオ圧縮に関する。例えば、この明細書に開示の方法/実施例は、MPEG(Moving Picture Experts Group)のPCC(point Cloud compression or Point Cloud coding)標準又は次世代ビデオ/イメージコーティング標準に適用できる。
この明細書においてピクチャー/フレームは、一般に特定の時間帯の1つの映像を示す単位を意味する。
ピクセル(pixel)又はペル(pel)は1つのピクチャー(又は映像)を構成する最小の単位を意味する。また、ピクセルに対応する用語として「サンプル(sample)」が用いられる。サンプルは、一般に、ピクセル又はピクセルの値を示し、輝度(luma)成分のピクセル/ピクセル値のみを示してもよく、彩度(chroma)成分のピクセル/ピクセル値のみを示してもよく、又は深さ(depth)成分のピクセル/ピクセル値のみを示してもよい。
ユニット(unit)は映像処理の基本単位を示す。ユニットはピクチャーの特定の領域及びその領域に関する情報のうちの少なくとも1つを含む。ユニットは、場合によって、ブロック(block)又は領域(area)又はモジュールなどの用語と混用する。一般の場合、MxNブロックは、M個の列とN個の行からなるあサンプル(又はサンプルアレイ)又は変換係数(transform coefficient)の集合(又はアレイ)を含む。
図3は、実施例によるポイントクラウド及びジオメトリ、テクスチャイメージの一例を示す。
実施例によるポイントクラウドは、後述する図4のV-PCC符号化プロセスに入力され、ジオメトリイメージ、テクスチャイメージが生成される。実施例によれば、ポイントクラウドはポイントクラウドデータと同一の意味で使用される。
図3において、左側の図はポイントクラウドであって、3D空間上にポイントクラウド客体が位置し、これをバウンディングボックスなどで表現するポイントクラウドを示す。図3の中間の図はジオメトリイメージを示し、右側の図はテキスチャーイメージ(ノン-パッド)を示す。
ビデオベースポイントクラウド圧縮(Video-based Point Cloud Compression、V-PCC)は、HEVC(Efficiency Video Coding)、VVC(Versatile Video Coding)などの2Dビデオコーデック(video codec)に基づいて3Dポイントクラウドデータを圧縮する方法である。V-PCC圧縮プロセスにおいて、以下のようなデータ及び情報が生成される。
占有マップ(occupancy map):ポイントクラウドを成す点をパッチに分けて2D平面にマップするとき、2D平面の該当位置にデータが存在するか否かを0又は1の値で知らせる2進マップ(binary map)を示す。占有マップ(occupancy map)はアトラスに対応する2Dアレイを示し、占有マップの値はアトラス内の各サンプル位置が3Dポイントに対応するか否かを示す。アトラス(ATLAS)とは、各ポイントクラウドフレームに対する2Dパッチに関する情報を含む対象を意味する。例えば、アトラスはパッチの2D配置及びサイズ、3Dポイント内の対応する3D領域の位置、プロジェクションプラン、LOD(Level of Detail)パラメータなどがある。
アトラス(atlas)は、ボリュメトリックデータがレンダリングされる3D空間内の3Dバウンディングボックスに対応する矩形フレームに位置する2Dバウンディングボックス及びそれに関連する情報の集合である。
アトラスビットストリーム(atlas bitstream)は、アトラス(atlas)を構成する1つ以上のアトラスフレーム(atlas frame)と関連データに対するビットストリームである。
アトラスフレーム(atlas frame)は、複数のパッチ(patch)がプロジェクションされたアトラスサンプル(atlas sample)の2D矩形配列である。
アトラスサンプル(atlas sample)は、アトラス(atlas)に連関するパッチ(patch)がプロジェクションされた矩形フレームのポジション(position)である。
アトラスフレーム(atlas frame)は、タイル(tile)に分割される。タイルは2Dフレームを分割する単位である。即ち、タイルはアトラスというポイントクラウドデータのシグナリング情報を分割する単位である。
パッチ(patch):ポイントクラウドを構成する点の集合であり、同じパッチに属する点は3D空間上で互いに隣接し、2Dイメージへのマッピングプロセスにおいて6面の境界ボックス平面のうち同じ方向にマップされることを示す。
パッチはタイルを分割する単位である。パッチはポイントクラウドデータの構成に関するシグナリング情報である。
実施例による受信装置は、アトラス(タイル、パッチ)に基づいて同じプレゼンテーションタイムを有する実際ビデオデータである特質ビデオデータ、ジオメトリビデオデータ、占有ビデオデータを復元することができる。
ジオメトリイメージ:ポイントクラウドを成す各点の位置情報(geometry)をパッチ単位で表現する深さマップの形式のイメージを示す。ジオメトリイメージは1チャネルのピクセル値で構成される。ジオメトリはポイントクラウドフレームに連関する座標のセットを示す。
テキスチャーイメージ(texture image):ポイントクラウドを成す各点の色情報をパッチ単位で表現するイメージを示す。テキスチャーイメージは複数のチャネルのピクセル値(例えば、3チャネルR、G、B)で構成される。テキスチャーは特質に含まれる。実施例によれば、テキスチャー及び/又は特質は同一の対象及び/又は包含関係として解釈される。
付加パッチ情報(auxiliary patch info):個別パッチからポイントクラウドを再構成するために必要なメタデータを示す。付加パッチ情報は、パッチの2D/3D空間における位置、サイズなどに関する情報を含む。
実施例によるポイントクラウドデータ、例えば、V-PCCコンポーネントは、アトラス、占有マップ、ジオメトリ、特質などを含む。
アトラス(atlas)は、2Dバウンディングボックスの集合を示す。パッチ、例えば、直方形(rectangular)フレームにプロジェクトされたパッチである。また、3D空間において3Dバウンディングボックスに対応し、ポイントクラウドのサブセットを示す。
特質(attribute)は、ポイントクラウド内の各ポイントに連関するスカラー(scalar)又はベクトル(vector)を示し、例えば、カラー(colour)、反射率(reflectance)、面法線(surface normal)、タイムスタンプ(time stamps)、マテリアルID(material ID)などがある。
実施例によるポイントクラウドデータは、V-PCC(Video-based Point Cloud Compression)方式によるPCCデータを示す。ポイントクラウドデータは複数のコンポーネントを含む。例えば、占有マップ、パッチ、ジオメトリ及び/又はテキスチャーなどを含む。
図4は、実施例によるV-PCC符号化処理の一例を示す。
図4は、占有マップ(occupancy map)、ジオメトリイメージ(geometry image)、テキスチャーイメージ(texture image)、付加パッチ情報(auxiliary patch information)を生成して圧縮するためのV-PCC符号化プロセス(encoding process)を示す。図4のV-PCC符号化プロセスは、図1のポイントクラウドビデオエンコーダ10002によって処理される。図4の各構成要素は、ソフトウェア、ハードウェア、プロセッサ及び/又はそれらの組み合わせによって行われる。
パッチ生成部(patch generation)14000は又はパッチ生成器はポイントクラウドフレーム(ポイントクラウドデータを含むビットストリームの形式であってもよい)を受信する。パッチ生成部40000は、ポイントクラウドデータからパッチを生成する。また、パッチの生成に関する情報を含むパッチ情報を生成する。
パッチパッキング(patch packing)40001又はパッチパッカーはポイントクラウドデータに対するパッチをパッグする。例えば、1つ又は1つ以上のパッチをパックする。また、パッチパッキングに関する情報を含む占有マップを生成する。
ジオメトリイメージ生成部(geometry image generation)40002又はジオメトリイメージ生成器は、ポイントクラウドデータ、パッチ、及び/又はパックされたパッチに基づいてジオメトリイメージを生成する。ジオメトリイメージは、ポイントクラウドデータに関するジオメトリを含むデータをいう。
テキスチャーイメージ生成部(texture image generation)40003又はテキスチャーイメージ生成器は、ポイントクラウドデータ、パッチ、及び/又はパックされたパッチに基づいてテキスチャーイメージを生成する。また再構成された(reconstructed)ジオメトリイメージをパッチ情報に基づいて平滑化(番号)が平滑化処理をして生成された平滑化ジオメトリにさらに基づいて、テキスチャーイメージを生成する。
平滑化(smoothing)40004又は平滑化部は、イメージデータに含まれたエラーを緩和又は除去する。例えば、再構成された(reconstructed)ジオメトリイメージをパッチ情報に基づいて、データ間エラーを誘発するような部分を柔らかにフィールタリングして平滑化したジオメトリを生成する。
付加パッチ情報圧縮(auxiliary patch info compression)40005又は付加パッチ情報圧縮部は、パッチ生成プロセスで生成されたパッチ情報に関する付加(auxiliary)パッチ情報を圧縮する。また、圧縮された付加パッチ情報は多重化装置へ伝送され、ジオメトリイメージ生成部40002も付加パッチ情報を用いる。
イメージパッド(image padding)40006、40007又はイメージパッド部は、ジオメトリイメージ及びテキスチャーイメージをそれぞれパッドする。即ち、パッドデータがジオメトリイメージ及びテキスチャーイメージにパッドされる。
グループ拡張(group dilation)40008又はグループ拡張部は、イメージパッドと同様に、テキスチャーイメージにデータを付加する。付加パッチ情報がテキスチャーイメージに挿入される。
ビデオ圧縮(video compression)40009、40010、40011又はビデオ圧縮部は、パッドされたジオメトリイメージ、パッドされたテキスチャーイメージ及び/又は占有マップをそれぞれ圧縮する。圧縮はジオメトリ情報、テキスチャー情報、占有情報などを符号化する。
エントロピー圧縮(entropy compression)40012又はエントロピー圧縮部は、占有マップをエントロピー方式に基づいて圧縮(例えば、符号化)する。
実施例によれば、ポイントクラウドデータがロスレス(lossless)した場合及び/又はロッシー(lossy)した場合、占有マップフレームに対してエントロピー圧縮及び/又はビデオ圧縮が行われる。
多重化装置(multiplexer)40013は、圧縮されたジオメトリイメージ、圧縮されたテキスチャーイメージ、圧縮された占有マップをビットストリームに多重化する。
以下、実施例による図4の各々のプロセスの詳細な動作を示す。
パッチ生成(Patch generation)40000
パッチ生成のプロセスは、ポイントクラウドを2Dイメージにマップ(mapping)するために、マッピングを行う単位であるパッチでポイントクラウドを分割するプロセスを意味する。パッチ生成のプロセスは、以下のようにノーマル(normal)値の計算、セグメント(segmentation)、パッチ(patch)分割の3つのステップに分けられる。
図5を参照して、正規値の計算プロセスを具体的に説明する。
図5は、実施例による表面(Surface)の接平面(tangent plane)及び法線ベクトル(normal vector)の一例を示す。
図5の表面は、図4のV-PCC符号化プロセスのパッチ生成のプロセス40000において以下のように用いられる。
パッチ生成に関連して法線(Normal)計算
ポイントクラウドを成す各点(例えば、ポイント)は、固有の方向を有しているが、これは法線という3Dのベクトルで示される。K-D treeなどを用いて求められる各点の隣接点(neighbors)を用いて、図5のようなポイントクラウドの表面を成す各点の接平面(tangent plane)及び法線ベクトル(normal vector)を求める。隣接点を探すプロセスにおけるサーチ範囲(search range)はユーザによって定義される。
接平面(tangen plane):表面の一点を通り、表面上の曲線に対する接線を完全に含んでいる平面を示す。
図6は、実施例によるポイントクラウドのバウンディングボックス(bounding box)の一例を示す。
実施例による方法/装置、例えば、パッチ生成部がポイントクラウドデータからパッチを生成するプロセスにおいてバウンディングボックスを用いる。
実施例によるバウンディングボックスとは、ポイントクラウドデータを3D空間上で六面体に基づいて分割する単位のボックスである。
バウンディングボックスは、ポイントクラウドデータの対象となるポイントクラウド客体を3D空間上の六面体に基づいて各々の六面体の平面にプロジェクトするプロセスにおいて用いる。バウンディングボックスは、図1のポイントクラウドビデオ取得部10000、ポイントクラウドビデオエンコーダ10002によって生成、処理される。また、バウンディングボックスに基づいて、図2のV-PCC符号化プロセスのパッチ生成40000、パッチパッキング40001、ジオメトリイメージ生成40002、テキスチャーイメージ生成40003が行われる。
パッチ生成に関連して分割(Segmentation)
分割(Segmentation)は、初期分割(initial segmentation)と改善分割(refine segmentation)との2つのプロセスからなる。
実施例によるポイントクラウドビデオエンコーダ10002は、ポイントをバウンディングボックスの一面にプロジェクトする。具体的に、ポイントクラウドを成す各点は、図6のように、ポイントクラウドを囲む6つのバウンディングボックスの面の一面にプロジェクトされるが、初期分割(initial segmentation)は、各点がプロジェクトされるバウンディングボックスの平面のうちの1つを決定するプロセスである。
Figure 2023509092000002
決定された平面は、0~5のうちのいずれか1つのインデックス形式の値(cluster index)として識別される。
改善分割(Refine segmentation)は、上述した初期分割(initial segmentation)のプロセスで決定されたポイントクラウドを成す各点のプロジェクション平面を隣接点のプロジェクション平面を考慮して改善するプロセスである。このプロセスでは、上述した初期分割プロセスにおいてプロジェクション平面を決定するために考慮した各点のノーマルとバウンディングボックスの各平面のノーマル値との類似度を成すscore normalと共に、現在点のプロジェクション平面と隣接点のプロジェクション平面との一致度を示すスコア平滑化score smoothとが同時に考慮される。
Score smoothはscore normalに対して加重値を与えることで考慮することができ、このとき、加重値はユーザによって定義される。改善分割は繰り返し的に行われ、繰り返し回数もユーザに定義される。
パッチ生成に関連してパッチ分割(segment patches)
パッチ分割は、上述した初期/改善分割のプロセスで得たポイントクラウドを成す各点のプロジェクション平面情報に基づいて、全体のポイントクラウドを隣接した点の集合であるパッチに分けるプロセスである。パッチ分割は、以下のようなステップからなる。
1) K-D treeなどを用いてポイントクラウドを成す各点の隣接点を算出する。最大の隣接点の数はユーザによって定義される。
2) 隣接点が現在の点と同一平面にプロジェクトされる場合(同一のクラスターインデックス(cluster index)値を有する場合)、現在の点とその隣接点を1つのパッチに抽出する。
3) 抽出したパッチのジオメトリ値を算出する。詳しい過程について後述する。
4) 抽出されない点が無くなるまで2)~4)のプロセスを繰り返す。
パッチ分割のプロセスを通じて、各パッチのサイズ及び各パッチの占有マップ、ジオメトリイメージ、テクスチャイメージなどが決定される。
図7は、実施例による占有マップ(occupancy map)の個別パッチ(patch)の位置決めの一例を示す。
実施例によるポイントクラウドエンコーダ10002は、パッチパッキング及び占有マップを生成することができる。
パッチパッキング及び占有マップの生成(Patch packing & Occupancy map generation)40001
本プロセスは、以前に分割されたパッチを1つの2Dイメージにマップするために、個別パッチの2Dイメージ内における位置を決定するプロセスである。占有マップ(Occupancy map)は2Dイメージの1つであって、その位置におけるデータの存否を0又は1の値で知らせる2進マップ(binary map)である。占有マップは、ブロックからなり、ブロックのサイズに応じて解像度が決定されるが、一例としてブロックのサイズが1*1である場合、ピクセル(pixel)単位の解像度を有する。ブロックのサイズ(occupancy packing block size)はユーザによって決定される。
占有マップ内において個別パッチの位置を決定するプロセスは、以下のようである。
1) 全体の占有マップの値をいずれも0に設定する。
2) 占有マップ平面に存在する水平座標が(0、occupancySizeU-patch.sizeU0)、垂直座標が(0、occupancySizeV-patch.sizeV0)の範囲にある点(u、 v)にパッチを位置させる。
3) パッチ平面に存在する水平座標が(0、patch.sizeU0)、垂直座標が(0、patch.sizeV0)の範囲にある点(x、y)を現在点(ポイント)として設定する。
4) 点(x、y)に対して、パッチ占有マップの(x、y)座標値が1であり(パッチ内の該当地点にデータが存在し)、全体の占有マップの(u+x、v+y)座標値が1(以前のパッチにより占有マップが満たされた場合)、ラスタ順に(x、y)位置を変更して、3)~4)のプロセスを繰り返す。そうではない場合、6)のプロセスを行う。
5) ラスタ順に(u、v)位置を変更して3)~5)のプロセスを繰り返す。
6) (u、v)を該当パッチの位置に決定し、パッチの占有マップデータを全体の占有マップの該当部分に割り当てる(copy)。
7) 次のパッチに対して2)~7)のプロセスの繰り返す。
占有サイズU(occupancySizeU):占有マップの幅(width)を示し、単位は占有パッキングサイズブロック(occupancy packing block size)である。
占有サイズV(occupancySizeV):占有マップの高さ(height)を示し、単位は占有パッキングブロックサイズである。
パッチサイズU0(patch.sizeU0):占有マップの幅を示し、単位は占有パッキングブロックサイズである。
パッチサイズV0(patch.sizeV0):占有マップの高さを示し、単位は占有パッキングブロックサイズである。
例えば、図7のように、占有パッキングサイズブロックに該当するボックス内パッチサイズを有するパッチに対応するボックスが存在し、ボックス内ポイント(x、y)が位置してもよい。
図8は、実施例によるノーマル(normal)、タンジェント(tangent)、バイタンジェント(bitangent)軸の関係の一例を示す。
実施例によるポイントクラウドビデオエンコーダ10002は、 ジオメトリイメージを生成することができる。ジオメトリイメージとは、ポイントクラウドのジオメトリ情報を含むイメージデータを意味する。ジオメトリイメージの生成プロセスは、図8のパッチの3つの軸(ノーマル、タンジェント、バイタンジェント)を用いる。
ジオメトリイメージの生成(Geometry image generation)40002
本プロセスでは、個別パッチのジオメトリイメージを構成する深さ(depth)値を決定し、上述したパッチパッキング(patch packing)のプロセスで決定されたパッチの位置に基づいて全体のジオメトリイメージを生成する。個別パットのジオメトリイメージを構成する深さ値を決定するプロセスは以下のように構成される。
1) 個別パッチの位置、サイズに関するパラメータを算出する。パラメータは以下のような情報を含む。
ノーマル(normal)軸を示すインデックス:ノーマルは上述したパッチ生成のプロセスで求められ、タンジェント軸はノーマルと直角の軸のうちパッチイメージの水平(u)軸と一致する軸であり、バイタンジェント軸はノーマルと直角の軸のうちパッチイメージの垂直(v)軸と一致する軸であって、3つの軸は、以下の図のように示される。
図9は、実施例によるプロジェクションモードの最小モード及び最大モード構成の一例を示す。
実施例によるポイントクラウドビデオエンコーダ10002は、ジオメトリイメージを生成するために、パッチに基づくプロジェクションを行い、実施例によるプロジェクションのモードは最小モード及び最大モードがある。
パッチの3D空間座標:パッチを囲む最小サイズのバウンディングボックスによって算出される。例えば、パッチの3D空間座標にパッチのタンジェント方向最小値(patch 3D shift tangent axis)、パッチのバイタンジェント方向最小値(patch 3D shift bitangent axis)、パッチのノーマル方向最小値(patch 3D shift normal axis)などが含まれる。
パッチの2Dサイズ:パッチが2Dイメージでパックされるときの水平、垂直方向サイズを示す。水平方向サイズ(patch 2D size u)はバウンディングボックスのタンジェント方向の最大値と最小値との差であり、垂直方向サイズ(patch 2D size v)はバウンディングボックスのバイタンジェント方向の最大値と最小値との差である。
2) パッチのプロジェクションモード(projection mode)を決定する。プロジェクションモードは、最小モード(min mode)と最大モード(max mode)のいずれか1つである。パッチのジオメトリ情報は、深さ値で示されるが、パッチのノーマル方向にパッチを成す各点をプロジェクトするとき、深さ値の最大値で構成されるイメージと最小値で構成されるイメージの2つのレイヤ(layer)のイメージが生成される。
2つのレイヤのイメージd0とd1を生成するのに、最小モードである場合、図9のように最小深さがd0に構成され、最小深さから表面厚さ(surface thickness)以内に存在する最大深さがd1に構成される。
例えば、ポイントクラウドが、図のように2Dに位置する場合、複数のポイントを含む複数のパッチがあってもよい。図のように、同じ陰影で示されたポイントが同一のパッチに属することを示す。空欄で示されたポイントのパッチをプロジェクトするプロセスを示す。
空欄で示されたポインを左側/右側にプロジェクトする場合、左側を基準として深さを0、1、2、..6、7、8、9のように1つずつ増加しながら右側にポイントの深さの算出のための数字を表記する。
プロジェクションモード(Projection mode)は、ユーザの定義によって、全てのポイントクラウドに同一の方法が適用されてもよく、フレーム又はパッチごとに異なる方法が適用されてもよい。フレーム又はパッチごとに異なるプロジェクションモードが適用される場合、圧縮効率を高めたり、消失点(missed point)が最小化できるプロジェクションモードが適応的に選ばれる。
3) 個別点の深さ値を算出する。
最小モードである場合、各点のノーマル軸の最小値にパッチのノーマル方向最小値(patch 3D shift normal axis)から1)のプロセスで算出されたパッチのノーマル方向最小値(patch 3D shift normal axis)を引いた値であるdepth0でd0イメージを構成する。同一の位置にdepth0と表面厚さ以内の範囲にその他の深さ値が存在する場合、この値をdepth1に設定する。存在しない場合は、depth0の値をdepth1にも割り当てる。Depth1の値でd1イメージを構成する。
例えば、d0のポイントの深さ決定において最小値が算出される(4 2 4 4 0 6 0 0 9 9 0 8 0)。また、d1のポイントの深さを決定することにおいて2つ以上のポイントのうち大きい値が算出されるか、1つのポイントだけがある場合はその値が算出される(4 4 4 4 6 6 6 8 9 9 8 8 9)。また、パッチのポイントが符号化、再構成(reconstruct)されるプロセスにおいて一部のポイントが損失される(例えば、図では8つのポイントが損失)。
最大モード(Max mode)である場合、各点のノーマル軸の最大値にパッチのノーマル方向最小値(patch 3D shift normal axis)から1)のプロセスで算出されたパッチのノーマル方向最小値(patch 3D shift normal axis)を引いた値であるdepth0でd0イメージを構成する。同一の位置にdepth0と表面厚さ以内の範囲にその他の深さ値が存在する場合、この値をdepth1に設定する。存在しない場合、depth0の値をdepth1にも割り当てる。Depth1の値でd1イメージを構成する。
例えば、d0のポイントの深さ決定において最大値が算出される(4 4 4 4 6 6 6 8 9 9 8 8 9)。また、d1のポイントの深さを決定することにおいて2つ以上のポイントのうち小さい値が算出されるか、1つのポイントだけがある場合はその値が算出される(4 2 4 4 5 6 0 6 9 9 0 8 0)。また、パッチのポイントが符号化、再構成(reconstruct)されるプロセスにおいて一部のポイントが損失される(例えば、図では6つのポイントが損失)。
上述したプロセスから生成された個別パッチのジオメトリイメージを、上述したパッチパッキングプロセスを通じて生成された個別パッチの位置情報を用いて、全体のジオメトリイメージに配置させることで、全体のジオメトリイメージを生成することができる。
生成された全体のジオメトリイメージのd1レイヤは、様々な方法によって符号化される。第一は、以前に生成したd1イメージの深さ値をそのまま符号化する方法(absolute d1 encoding method)である。第二は、以前に生成したd1イメージの深さ値とd0イメージの深さ値との差を符号化する方法(differential encoding method)である。
このようなd0、d1の2つのレイヤの深さ値を用いた符号化の方法は、2つの深さの間にそのその他の点が存在する場合、その点のジオメトリ情報を符号化するプロセスで失うため、無損失圧縮(lossless coding)のために、Enhanced-Delta-Depth(EDD)codeを用してもよい。
図10を参照して、EDD codeを具体的に説明する。
図10は、実施例によるEDDコードの一例を示す。
ポイントクラウドビデオエンコーダ10002及び/又はV-PCC符号化の一部/全部のプロセス(例えば、ビデオ圧縮40009)などは、EODコードに基づいてポイントのジオメトリ情報を符号化することができる。
EDD codeは、図のように、d1を含み表面厚さの範囲内の全ての点の位置を2進で符号化する方法である。一例として、図の左側から二番目の列に含まれる点の場合、D0の上方に一番目、四番目の位置に点が存在し、二番目と三番目の位置は空いているため、0b1001(=9)のEDD codeで示される。D0と共にEDD codeを符号化して送信すると、受信端では全ての点のジオメトリ情報を損失なく復元することができる。
例えば、基準点上にポイントが存在すれば1であり、ポイントが存在しなければ0となり、4つのビットに基づいてコードが表現される。
平滑化(Smoothing)40004
平滑化は、圧縮プロセスから生じる画質の劣化によりパット境界面で発生し得る不連続性を除去する作業であり、ポイントクラウドビデオエンコーダ又は平滑化部で行われる。
1) ジオメトリイメージよりポイントクラウドを再生成(reconstruction)する。本プロセスは、上述したジオメトリイメージ生成の逆過程といえる。例えば、符号化の逆過程が再生成である。
2) K-D treeなどを用いて再生成されたポイントクラウドを構成する各点の隣接点を算出する。
3) 各点に対して、その点がパッチ境界面に位置するか否かを判断する。一例として、現在点とは異なるプロジェクション平面(cluster index)を有する隣接点が存在する場合、その点はパッチの境界面に位置していると判断できる。
4) パッチ境界面が存在する場合、その点を隣接点の重心(隣接点の平均x、y、z座標に位置)へ移動させる。即ち、ジオメトリ値を変更する。存在しない場合には以前のジオメトリ値を維持する。
図11は、実施例による隣接点のカラー(color)値を用いた復色(recoloring)の一例を示す。
実施例によるポイントクラウドビデオエンコーダ又はテキスチャーイメージ生成40003は、復色に基づいてテキスチャーイメージを生成することができる。
テキスチャーイメージ生成(Texture image generation)40003
テキスチャーイメージ生成のプロセスは、上述したジオメトリイメージ生成のプロセスと同様に、個別パッチのテキスチャーイメージを生成し、これらを決められた位置に配置することで、全体のテキスチャーイメージを生成するプロセスからなる。ただし、個別パッチのテキスチャーイメージを生成するプロセスにおいて、ジオメトリ生成のための深さ値に代わってその位置に対応するポイントクラウドを構成する点のカラー値(例えば、R、G、B)を有するイメージが生成される。
ポイントクラウドを構成する各点のカラー値を求めるプロセスにおいて、上述した平滑化のプロセスを経たジオメトリが用いられる。平滑化されたポイントクラウドはオリジナルポイントクラウドにおいて一部点の位置が移動した状態である可能性があるため、変更された位置に適するカラーを探す復色のプロセスが必要となる。復色は隣接点のカラー値を用いて行われる。一例として、図のように、新たなカラー値は最隣接点のカラー値と隣接点のカラー値を考慮して算出できる。
例えば、図を参照すれば、復色はポイントに対する最も近いオリジナルポイントの特質情報の平均及び/又はポイントに対する最も近いオリジナル位置の特質情報の平均に基づいて変更された位置の適するカラー値を算出する。
テキスチャーイメージもまた、d0/d1の2つのレイヤで生成されるジオメトリイメージのように、t0/t1の2つのレイヤで生成される。
付加パッチ情報圧縮(Auxiliary patch info compression)40005
実施例によるポイントクラウドビデオエンコーダ又は付加パッチ情報圧縮部は、付加パッチ情報(ポイントクラウドに関する付加的な情報)を圧縮することができる。
付加パッチ情報圧縮部は、上述したパッチ生成、パッチパッキング、ジオメトリ生成のプロセスなどで生成した付加パッチ情報を圧縮する。付加パッチ情報には以下のようなパラメータが含まれる:
プロジェクション(projection)平面(normal)を識別するインデックス(cluster index)
パッチの3D空間位置:パッチのタンジェント方向最小値(patch 3D shift tangent axis)、パッチのバイタンジェント方向最小値(patch 3D shift bitangent axis)、パッチのノーマル方向最小値(patch 3D shift normal axis)
パッチの2D空間位置、サイズ:水平方向サイズ(patch 2D size u)、垂直方向サイズ(patch 2D size v)、水平方向最小値(patch 2D shift u)、垂直方向最小値(patch 2D shift u)
各々のブロックとパッチのマッピング情報:候補インデックス(candidate index)(上述したパッチの2D空間位置、サイズ情報に基づいてパッチを順に位置させた場合、1つのブロックに重複して複数のパッチがマップされることがある。このとき、マップされるパッチが候補リストを構成し、このリストの何番目のパッチのデータが該当ブロックに存在するかを示すインデックス)、local patch index(フレームに存在する全体のパッチのうちの1つを示すインデックス)。 Table 1は、candidate listとlocal patch indexを用いたブロックとパッチのマッチングプロセスを示す疑似コード(pseudo code)である。
候補リストの最大数はユーザによって定義される。
table 1-1 blockとパッチマッピングのためのpseudo code
for(i=0;i<BlockCount;i++){
if(candidatePatches[i].size()==1){
blockToPatch[i]=candidatePatches[i][0]
} else {
candidate_index
if(candidate_index==max_candidate_count) {
blockToPatch[i]=local_patch_index
} else {
blockToPatch[i]=candidatePatches[i][candidate_index]
図12は、実施例によるプッシュ-プルバックグラウンドフィリング(push-pull background filling)の一例を示す。
イメージパディング及びグループ拡張(Image padding and group dilation)40006、40007、40008
実施例によるイメージパッダは、プッシュ-プルバックグラウンドフィリング方式に基づいてパッチ領域以外の空間を意味のない付加的なデータで満たすことができる。
イメージパディングは、圧縮効率の向上を目的として、パッチ領域以外の空間を意味のないデータで満たすプロセスである。イメージパディングのために、パッチ内部の境界面側に該当する列又は行のピクセル値がコピーされて空き空間を満たす方法が用いられる。又は、図のように、パッドされないイメージの解像度を段階的に減らし、再び解像度が高めるプロセスにおいて低い解像度のイメージからのピクセル値で空き空間を満たすプッシュプルバックグラウンドフィリング(push-pull background filling)方法が用いられてもよい。
グループ拡張(Group dilation)は、d0/d1、t0/t1の2つのレイヤからなるジオメトリ、テキスチャーイメージの空き空間を満たす方法であって、上述したイメージパディングによって算出された2つのレイヤの空き空間の値を、2つのレイヤの同一位置に対する値の平均値で満たすプロセスである。
図13は、実施例による4*4サイズのブロック(block)に対して可能なトラバーサルオーダー(traversal order)の一例を示す。
占有マップ圧縮(Occupancy map compression)40012、40011
実施例による占有マップ圧縮は、上述した占有マップを圧縮する。具体的には、損失(lossy)圧縮のためのビデオ圧縮(video compression)と無損失(lossless)圧縮のためのエントロピー圧縮(entropy compression)との2つの方法がある。ビデオ圧縮については後述する。
エントロピー圧縮のプロセスは、以下のように行われる。
1) 占有マップを構成する各々のブロックに対して、全てのブロックが満たされた場合に1を符号化し、次のブロックに同じプロセスを繰り返す。そうではない場合には0を符号化し、2)~5)のプロセスを行う。
2) ブロックの満たされたピクセルに対してランレングス符号化(run-length coding)を行うためのbest traversal orderを決定する。図は4*4サイズのブロックに対して可能な4つのtraversal orderを一例として示す。
図14は、実施例によるベストトラバーサルオーダーの一例を示す。
上述のように、実施例によるエントロピー圧縮部は図のように、トラバーサルオーダー方式に基づいてブロックをコーティング(符号化)する。
例えば、可能なトラバーサルオーダーのうち、最小のラン(run)数を有するbest traversal orderを選択し、そのインデックスを符号化する。一例として、上述した図13の3番目のトラバーサルオーダーを選択する場合であり、この場合、run数は2と最小化でき、これをベストトラバーサルオーダー(best traversal order)として選択する。
このとき、run数を符号化する。図14の例では、2つのrunが存在することから、2を符号化する。
4) 1番目のrunの占有(occupancy)を符号化する。図14の例では、1番目のrunが満たされていないピクセルに該当するため、0を符号化する。
5) 個別runに対する(runの数分だけの)長さ(length)を符号化する。図14の例では、1番目のrunと2番目のrunの長さである6と10を順次に符号化する。
ビデオ圧縮(Video compression)40009、40010、40011
実施例によるビデオ圧縮部は、HEVC、VVCなどの2Dビデオコーデック(video codec)などを用いて、上述したプロセスで生成されたジオメトリイメージ、テキスチャーイメージ、占有マップイメージなどのシーケンスを符号化する。
図15は、実施例による2Dビデオ/イメージエンコーダ(2D video/image Encoder)の一例を示す。
図は上述したビデオ圧縮部(Video compression unit)40009、40010、40011が適用される実施例であって、ビデオ/映像信号の符号化が行われる2Dビデオ/イメージエンコーダ15000の概略なブロック図を示す。2Dビデオ/イメージエンコーダ15000は、上述したポイントクラウドビデオエンコーダ10002に含まれるか、又は内部/外部のコンポーネントからなる。図15の各構成要素は、ソフトウェア、ハードウェア、プロセッサ及び/又はそれらの組み合わせに対応する。
ここで、入力イメージは、上述したジオメトリイメージ、テキスチャーイメージ(特質イメージ)、占有マップイメージなどを含む。ポイントクラウドビデオエンコーダの出力ビットストリーム(即ち、ポイントクラウドビデオ/イメージビットストリーム)は、各入力映像(ジオメトリイメージ、テキスチャーイメージ(特質イメージ)、占有マップイメージなど)に対する出力ビットストリームを含む。
インター予測部15090及びイントラ予測部15100を合わせて予測部と呼ぶ。即ち、予測部は、インター予測部15090及びイントラ予測部15100を含む。変換部15030、量子化部15040、逆量子化部15050、逆変換部15060を合わせて、残余(residual)処理部とも呼ぶ。残余処理部はさらに減算部15020を含む。上述した映像分割部15010、減算部15020、変換部15030、量子化部15040、逆量子化部15050、逆変換部15060、加算部155、フィールタリング部15070、インター予測部15090、イントラ予測部15100及びエントロピー符号化部15110は、実施例によって、1つのハードウェアコンポーネント(例えば、エンコーダ又はプロセッサ)で構成される。また、メモリ15080は、DPB(decoded picture buffer)を含み、デジタル記憶媒体で構成される。
映像分割部15010は、符号化装置15000に入力された入力映像(又はピクチャー、フレーム)を1つ以上の処理ユニット(processing unit)に分割する。一例として、処理ユニットは、コーディングユニット(coding unit、CU)とも呼ぶ。この場合、コーディングユニットは、コーディングツリーユニット(coding tree unit、CTU)又は最大コーディングユニット(largest coding unit、LCU)からQTBT(Quad-tree binary-tree)構造によって再帰的に(recursively)分割される。例えば、1つのコーディングユニット、Quad-tree構造及び/又はbinary-tree構造に基づいて下位(deeper)深さの複数のコーディングユニットに分割される。この場合、例えば、先にQuad-treeが適用されて、その後にbinary-treeが適用されてもよい。又はbinary-treeが先に適用されてもよい。これ以上分割されない最終コーディングユニットに基づいて、本発明によるコーディング手順が行われてもよい。この場合、映像の特性に応じたコーディング効率などに基づいて、最大のコーディングユニットが最終符号化ユニットとして用いられてもよく、又は必要に応じてコーディングユニットは再帰的に(recursively)より下位深さのコーディングユニットに分割されて、最適なサイズのコーディングユニットが最終コーディングユニットとして用いられる。ここで、コーディング手順とは、後述する予測、変換、及び復元などの手順を含む。その他の例として、処理ユニットは予測ユニット(PU:Prediction Unit)又は変換ユニット(TU:Transform Unit)をさらに含んでもよい。この場合、予測ユニット及び変換ユニットのそれぞれは、上述した最終コーディングユニットから分割又はパーティショニングされる。予測ユニットはサンプル予測の単位であり、変換ユニットは変換係数を誘導する単位及び/又は変換係数から残余信号(residual signal)を誘導する単位である。
ユニットは、場合によって、ブロック(block)又は領域(area)又はモジュールなどの用語と混用する。一般の場合、MxNブロックは、M個の列とN個の行からなるサンプル又は変換係数(transform coefficient)の集合を示す。サンプルは、一般にピクセル又はピクセルの値を示し、輝度(luma)成分のピクセル/ピクセル値だけを示してもよく、彩度(chroma)成分のピクセル/ピクセル値だけを示してもよい。サンプルは1つのピクチャー(又は、映像)をピクセル(pixel)又はペル(pel)に対応する用語として使用する。
符号化装置15000は、入力映像信号(オリジナルブロック、オリジナルサンプルアレイ)においてインター予測部15090又はイントラ予測部15100から出力された予測信号(予測されたブロック、予測サンプルアレイ)を減算して、残余信号(residual signal、残余ブロック、残余サンプルアレイ)を生成し、生成した残余信号は変換部15030へ送信される。この場合、図示のように、符号化装置15000内で入力映像信号(オリジナルブロック、オリジナルサンプルアレイ)において予測信号(予測ブロック、予測サンプルアレイ)を減算するユニットは減算部15020と呼ぶ。予測部は処理対象ブロック(以下、現在ブロックという)に対する予測を行い、現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成する。予測部は現在ブロック又はCU単位でイントラ予測を適用するか、又はインター予測を適用するかを決定する。予測部は、各々の予測モードに関して後述するように、予測モード情報などの予測に関する様々な情報を生成してエントロピー符号化部15110に伝送する。予測に関する情報はエントロピー符号化部15110で符号化されてビットストリームの形式で出力される。
予測部のイントラ予測部15100は、現在ピクチャー内のサンプルを参照して現在ブロックを予測する。参照されるサンプルは、予測モードに応じて現在ブロックに隣接(neighbor)して位置するか、又は離れて位置する。イントラ予測において予測モードは複数の非方向性モードと複数の方向性モードを含む。非方向性モードは、例えばDCモード及び平面モード(Planarモード)を含む。方向性モードは、予測方向の精密度に応じて、例えば33つの方向性予測モード又は65つの方向性予測モードを含む。ただし、これは例示であって、設定によってその以上又はその以下の方向性予測モードが用いられる。イントラ予測部15100の隣接ブロックに適用された予測モードを用いて、現在ブロックに適用される予測モードを決定してもよい。
予測部のインター予測部15090は、参照ピクチャー上で動きベクトルによって特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックに対する予測されたブロックを導く。このとき、インター予測モードで送信される動き情報の量を減らすために、隣接ブロックと現在ブロックとの動き情報の相関性に基づいて動き情報をブロック、サブブロック又はサンプル単位で予測する。動き情報は、動きベクトル及び参照ピクチャーインデックスを含む。動き情報はさらにインター予測方向(L0予測、L1予測、Bi予測など)情報を含む。インター予測の場合、隣接ブロックは現在ピクチャー内に存在する空間的隣接ブロック(spatial neighboring block)と参照ピクチャーに存在する時間的隣接ブロック(temporal neighboring block)を含む。参照ブロックを含む参照ピクチャーと時間的隣接ブロックを含む参照ピクチャーは同一であってもよく、異なってもよい。時間的隣接ブロックは、同一位置参照ブロック(collocated reference block)、同一位置CU(colCU)などと呼ばれ、時間的隣接ブロックを含む参照ピクチャーは、同一位置ピクチャー(collocated picture、colPic)とも呼ばれる。例えば、インター予測部15090は隣接ブロックに基づいて動き情報の候補リストを構成し、現在ブロックの動きベクトル及び/又は参照ピクチャーインデックスを導出するためにいずれの候補が使用されるかを指示する情報を生成する。様々な予測モードに基づいてインター予測が行われ、例えばスキップモードとマージモードの場合、インター予測部は隣接ブロックの動き情報を現在ブロックの動き情報として用いる。スキップモードの場合、マージモードとは異なり、残余信号が送信されないことがある。動き情報予測(motion vector prediction、MVP)モードの場合、隣接ブロックの動きベクトルを動きベクトル予測者(motion vector predictor)として用いて、動きベクトル差分(motion vector difference)をシグナリングすることで現在ブロックの動きベクトルを指示する。
インター予測部15090又はイントラ予測部15100によって生成された予測信号は、復元信号の生成のために用いられるか、残余信号の生成のために用いられる。
変換部15030は残余信号に変換方法を適用して変換係数(transform coefficients)を生成する。例えば、変換方法は、DCT(Discrete Cosine Transform)、DST(Discrete Sine Transform)、KLT(Karhunen-Loeve Transform)、GBT(Graph-Based Transform)、又はCNT(Conditionally Non-linear Transform)のうち少なくとも1つを含む。ここで、GBTはピクセル間の関係情報をグラフで表現するとき、このグラフから得られた変換を意味する。CNTは以前に復元された全てのピクセル(all previously reconstructed pixel)を用いて予測信号を生成し、それに基づいて取得される変換を意味する。また、変換プロセスは、正方形の同一サイズのピクセルブロックに適用されてもよく、正方形ではない可変サイズのブロックに適用されてもよい。
量子化部15040は、変換係数を量子化してエントロピー符号化部15110に送信し、エントロピー符号化部15110は量子化した信号(量子化した変換係数に関する情報)を符号化してビットストリームに出力する。量子化した変換係数に関する情報は残余情報と呼ぶ。量子化部15040は係数スキャン順(scan order)に基づいてブロック形態の量子化変換係数を1次元ベクトル形に再整列し、1次元ベクトル形の量子化変換係数に基づいて量子化した変換係数に関する情報を生成することもできる。エントロピー符号化部15110は、例えば、指数ゴロム(exponential Golomb)、CAVLC(context-adaptive variable length coding)、CABAC(context-adaptive binary arithmetic coding)などのような様々な符号化方法を行う。エントロピー符号化部15110は、量子化した変換係数の他にビデオ/イメージの復元に必要な情報(例えば、シンタックス要素(syntax elements)の値など)を共に又は別として符号化する。符号化した情報(例えば、符号化したビデオ/映像情報)はビットストリームの形式でNAL(network abstraction layer)ユニットの単位で送信又は格納される。ビットストリームはネットワークを介して送信されてもよく、デジタル記憶媒体に記憶されてもよい。ここで、ネットワークは放送網及び/又は通信網などを含み、デジタル記憶媒体はUSB、SD、CD、DVD、ブルーレイ、HDD、SSDなどの様々な記憶媒体を含む。エントロピー符号化部15110から出力された信号を送信する送信部(未図示)及び/又は記憶する記憶部(未図示)が符号化装置15000の内部/外部要素として構成されてもよく、又は送信部はエントロピー符号化部15110に含まれてもよい。
量子化部15040から出力された量子化した変換係数は、予測信号を生成するために用いられる。例えば、量子化した変換係数に逆量子化部15040及び逆変換部15060によって逆量子化及び逆変換を適用することで、残余信号(残余ブロック又は残余サンプル)を復元する。加算部15200は復元された残余信号をインター予測部15090又はイントラ予測部15100から出力された予測信号に加えることで、復元(reconstructed)信号(復元ピクチャー、復元ブロック、復元サンプルアレイ)を生成する。スキップモードが適用された場合のように、処理対象ブロックに対する残余がない場合、予測されたブロックが復元ブロックとして用いられる。加算部155は復元部又は復元ブロック生成部と呼ばれる。生成された復元信号は現在ピクチャー内の次の処理対象ブロックのイントラ予測のために用いられてもよく、後述のようにフィルタリングを経て次のピクチャーのインター予測のために用いられてもよい。
フィルタリング部15070は、復元信号にフィルタリングを適用して、主観的/客観的な画質を向上させることができる。例えば、フィルタリング部15070は、復元ピクチャーに様々なフィルタリング方法を適用して修正した(modified)復元ピクチャーを生成し、修正した復元ピクチャーをメモリ15080、具体的にメモリ15080のDPBに格納する。様々なフィルタリング方法には、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset)、適応的ループフィルター(adaptive loop filter)、双方向フィルター(bilateral filter)などがある。フィルタリング部15070は、後述する各々のフィルタリング方法のように、フィルタリングに関する様々な情報を生成してエントロピー符号化部15110へ伝送する。フィルタリングに関する情報はエントロピー符号化部15110で符号化されてビットストリームの形式で出力される。
メモリ15080に送信された修正した(modified)復元ピクチャーは、インター予測部15090において参照ピクチャーとして用いられる。符号化装置はこれによってインター予測が適用される場合、符号化装置15000及び復号装置における予測ミスマッチを避けることができ、符号化の効率を向上させることもできる。
メモリ15080のDPBは、修正した復元ピクチャーをインター予測部15090における参照ピクチャーとして用いるために格納する。メモリ15080は、現在ピクチャー内の動き情報が導出された(又は符号化された)ブロックの動き情報及び/又は既に復元したピクチャー内のブロックの動き情報を格納する。格納した動き情報は空間的隣接ブロックの動き情報又は時間的隣接ブロックの動き情報として活用するためにインター予測部15090に伝送する。メモリ15080は現在ピクチャー内において復元したブロックの復元サンプルを格納して、イントラ予測部15100へ伝送する。
なお、上述した予測、変換、量子化の手順のうちの少なくとも1つが省略されてもよい。例えば、PCM(pulse code modulation)が適用されるブロックに対しては、予測、変換、量子化の手順を省略し、オリジナルサンプルの値をそのまま符号化してビットストリームに出力してもよい。
図16は、実施例によるV-PCC復号プロセス(decoding process)の一例を示す。
V-PCC復号プロセス又はV-PCCデコーダは、図4のV-PCC符号化プロセス(又はエンコーダ)の逆プロセスとなる。図16の各構成要素は、ソフトウェア、ハードウェア、プロセッサ、及び/又はそれらの組み合わせに対応する。
逆多重化装置(demultiplexer)16000は、圧縮されたビットストリームを逆多重化して圧縮されたテキスチャーイメージ、圧縮されたジオメトリイメージ、圧縮された占有マップイメージ、圧縮された付加パッチ情報をそれぞれ出力する。
ビデオ復元(video decompression)16001、16002又はビデオ復元部は、圧縮されたテキスチャーイメージ及び圧縮されたジオメトリイメージのそれぞれを復元する。
占有マップ復元(occupancy map decompression)16003又は占有マップ復元部は、圧縮された占有マップイメージを復元する。
付加パッチ情報復元(auxiliary patch information decompression)16004又は付加パッチ情報復元部は、圧縮された付加パッチ情報を復元する。
ジオメトリ再構成(geometry reconstruction)16005又はジオメトリ再構成部は、復元されたジオメトリイメージ、復元された占有マップ、及び/又は復元された付加パッチ情報に基づいてジオメトリ情報を復元(再構成)する。例えば、符号化プロセスにおいて変更したジオメトリを再構成する。
平滑化(smoothing)16006又は平滑化部は、再構成されたジオメトリに対して平滑化を適用する。例えば、平滑化フィルタリングが適用される。
テキスチャー再構成(texture reconstruction)16007又はテキスチャー再構成部は、復元されたテキスチャーイメージ及び/又は平滑化されたジオメトリからテキスチャーを再構成する。
カラー平滑化(color smoothing)16008又はカラー平滑化部は、再構成されたテキスチャーからカラー値を平滑化する。例えば、平滑化フィルタリングが適用される。
その結果、再構成されたポイントクラウドデータが生成される。
図は圧縮された占有マップ、ジオメトリイメージ、テキスチャーイメージ、付加パッチ情報を復号してポイントクラウドを再構成するためのV-PCCの復号プロセスを示す。実施例による各プロセスの動作は以下のようである。
ビデオ復元(Video decompression)16001、16002
上述したビデオ圧縮の逆プロセスであって、HEVC、VVCなどの2Dビデオコーデックを用いて、上記プロセスで生成されたジオメトリイメージ、テキスチャーイメージ、占有マップイメージの圧縮されたビットストリームを復号するプロセスである。
図17は、実施例による2Dビデオ/イメージデコーダ(2D Video/Image Decoder)の一例を示す。
2Dビデオ/イメージデコーダは、図15の2Dビデオ/イメージエンコーダの逆過程となる。
図17の2Dビデオ/イメージデコーダは、図16のビデオ復元又はビデオ復元部の実施例であって、ビデオ/映像信号の復号が行われる2D video/image decoder17000の概略なブロック図を示す。2Dビデオ/イメージデコーダ17000は、図1のポイントクラウドビデオデコーダに含まれるか、又は内外部のコンポーネントで構成される。図17の各構成要素はソフトウェア、ハードウェア、プロセッサ及び/又はそれらの組み合わせに対応する。
ここで、入力ビットストリームは、上述したジオメトリイメージ、テキスチャーイメージ(特質イメージ)、占有マップイメージなどに対するビットストリームを含む。復元映像(又は出力映像、復号された映像)は、上述したジオメトリイメージ、テキスチャーイメージ(特質イメージ)、占有マップイメージに対する復元映像を示す。
図を参照すれば、インター予測部17070及びイントラ予測部17080を合わせて予測部と呼ぶ。即ち、予測部はインター予測部180及びイントラ予測部185を含む。逆量子化部17020、逆変換部17030を合わせて残余処理部と呼ぶ。即ち、残余処理部は逆量子化部17020、逆変換部17030を含む。上記エントロピー復号部17010、逆量子化部17020、逆変換部17030、加算部17040、フィルタリング部17050、インター予測部17070及びイントラ予測部17080は、実施例によって、1つのハードウェアコンポーネント(例えば、デコーダ又はプロセッサ)によって構成される。また、メモリ17060はDPB(decoded picture buffer)を含んでもよく、デジタル記憶媒体によって構成されてもよい。
ビデオ/映像情報を含むビットストリームが入力されると、復号装置17000は、図0.2-1の符号化装置においてビデオ/映像情報が処理されたプロセスに対応して映像を復元する。例えば、復号装置17000は、符号化装置で適用された処理ユニットを用いて復号を行う。よって、復号の処理ユニットは、例えば、コーディングユニットであり、コーディングユニットはコーディングツリーユニット又は最大コーディングユニットからQuad-tree構造及び/又はbinary-tree構造によって分割される。また、復号装置17000によって復号されて出力された復元映像信号は再生装置で再生される。
復号装置17000は、符号化装置から出力された信号をビットストリームの形式で受信し、受信した信号はエントロピー復号部17010で復号される。例えば、エントロピー復号部17010はビットストリームをパーシングして映像復元(又はピクチャー復元)に必要な情報(例えば、ビデオ/映像情報)を導出する。例えば、エントロピー復号部17010は指数ゴロム符号化、CAVLC又はCABACなどのコーディング方法に基づいてビットストリーム内の情報を復号し、映像復元に必要なシンタックス要素の値、残余に関する変換係数の量子化された値を出力する。より詳細に、CABACエントロピー復号方法は、ビットストリームにおいて各構文要素に該当するビンを受信し、復号対象構文要素情報と隣接及び復号対象ブロックの復号情報又は前のステップで復号されたシンボル/ビンの情報を用いて文脈(context)モデルを決定して、決定した文脈モデルに応じてビン(bin)の発生確率を予測し、ビンの算術復号(arithmetic decoding)を行って、各構文要素の値に該当するシンボルを生成する。このとき、CABACエントロピー復号方法は、文脈モデルを決定した後、次のシンボル/ビンの文脈モデルのために復号されたシンボル/ビンの情報を用いて文脈モデルをアップデートする。エントロピー復号部17010で復号された情報のうち予測に関する情報は、予測部(インター予測部17070及びイントラ予測部17080)に提供され、エントロピー復号部17010でエントロピー復号が行われた残余値、即ち量子化された変換係数及び関連パラメータ情報は、逆量子化部17020へ入力される。また、エントロピー復号部17010で復号された情報のうちフィルタリングに関する情報は、フィルタリング部17050へ提供される。一方、符号化装置から出力された信号を受信する受信部(未図示)が復号装置17000の内部/外部要素としてさらに構成されてもよく、受信部はエントロピー復号部17010の構成要素であってもよい。
逆量子化部17020では量子化された変換係数を量子化して変換係数を出力する。逆量子化部17020は量子化された変換係数を2次元のブロック形に再整列する。この場合、符号化装置で行われた係数スキャン順に基づいて再整列を行う。逆量子化部17020は量子化パラメータ(例えば、量子化ステップサイズ情報)を用いて量子化された変換係数に対する逆量子化を行い、変換係数(transform coefficient)を取得する。
逆変換部17030では変換係数を逆変換して残余信号(残余ブロック、残余サンプルアレイ)を取得する。
予測部は現在ブロックに対する予測を行い、現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成する。予測部はエントロピー復号部17010から出力された予測に関する情報に基づいて現在ブロックにイントラ予測が適用されるか、又はインター予測が適用されるかを決定して、具体的なイントラ/インター予測モードを決定する。
イントラ予測部265は、現在ピクチャー内のサンプルを参照して現在ブロックを予測する。参照されるサンプルは予測モードに応じて、現在のブロックに隣接(neighbor)して位置してもよく、又は離れて位置してもよい。イントラ予測において予測モードは複数の非方向性モードと複数の方向性モードとを含む。イントラ予測部265は隣接ブロックに適用された予測モードを用いて、現在ブロックに適用される予測モードを決定する。
インター予測部17070は、参照ピクチャー上で動きベクトルによって特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックに対する予測されたブロックを導く。このとき、インター予測モードにおいて送信される動き情報の量を減らすために隣接ブロックと現在ブロックとの動き情報の相関性に基づいて動き情報をブロック、サブブロック又はサンプル単位で予測する。動き情報は動きベクトル及び参照ピクチャーインデックスを含む。動き情報はさらにインター予測方法(L0予測、L1予測、Bi予測など)情報を含む。インター予測の場合、隣接ブロックは現在ピクチャー内に存在する空間的隣接ブロック(spatial neighboring block)と参照ピクチャーに存在する時間的隣接ブロック(temporal neighboring block)を含む。例えば、インター予測部17070は隣接ブロックに基づいて動き情報候補リストを構成し、受信した候補選択情報に基づいて現在ブロックの動きベクトル及び/又は参照ピクチャーインデックスを導出する。様々な予測モードに基づいてインター予測が行われ、予測に関する情報は現在ブロックに対するインター予測のモードを指示する情報を含む。
加算部17040は逆変換部17030で取得した残余信号をインター予測部17070又はイントラ予測部17080から出力された予測信号(予測されたブロック、予測サンプルアレイ)に加えることで復元信号(復元ピクチャー、復元ブロック、復元サンプルアレイ)を生成する。スキップモードが適用された場合のように、処理対象ブロックに対する残余がない場合、予測されたブロックが復元ブロックとして用いられる。
加算部17040は復元部又は復元ブロック生成部と呼ぶ。生成された復元信号は現在ピクチャー内の次の処理対象ブロックのイントラー予測のために用いられてもよく、後述のように、フィルタリングを経て次のピクチャーのインター予測のためにも用いられてもよい。
フィルタリング部17050は復元信号にフィルタリングを適用して主観的/客観的な画質を向上させる。例えば、フィルタリング部17050は復元ピクチャーに様々なフィルタリング方法を適用して、修正された(modified)復元ピクチャーを生成し、修正された復元ピクチャーをメモリ17060、具体的にメモリ17060のDPBに送信する。様々なフィルタリング方法には、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset)、適応的ループフィルター(adaptive loop filter)、双方向フィルター(bilateral filter)などが含む。
メモリ17060のDPBに格納された(修正された)復元ピクチャーは、インター予測部17070において参照ピクチャーとして使用される。メモリ17060は、現在ピクチャー内の動き情報が導出された(又は復号された)ブロックの動き情報及び/又は既に復元されたピクチャー内のブロックの動き情報を格納する。格納された動き情報は空間的隣接ブロックの動き情報又は時間的隣接ブロックの動き情報として活用するために、インター予測部17070へ伝送する。メモリ17060は現在ピクチャー内の復元されたブロックの復元サンプルを格納して、イントラ予測部17080へ伝送する。
この明細書において、符号化装置100のフィルタリング部160、インター予測部180及びイントラ予測部185で説明した実施例は、復号装置17000のフィルタリング部17050、インター予測部17070及びイントラ予測部17080にも同一又は対応する方法が適用できる。
一方、上述した予測、逆変換、逆量子化の手順のうちの少なくとも1つが省略されてもよい。例えば、PCM(pulse code modulation)が適用されるブロックに対しては、予測、逆変換、逆量子化の手順を省略して、復号されたサンプルの値をそのまま復元映像のサンプルとして使用する。
占有マップ復元(Occupancy map decompression)16003
上述した占有マップ圧縮の逆過程であり、圧縮された占有マップビットストリームを復号して占有マップを復元するプロセスである。
付加パッチ情報復元(Auxiliary patch info decompression)16004
上述した付加パッチ情報圧縮の逆過程であり、圧縮された付加パッチ情報ビットストリームを復号して付加パッチ情報を復元するプロセスである。
ジオメトリ再構成(Geometry reconstruction)16005
上述したジオメトリイメージ生成の逆過程である。まず、復元された占有マップと付加パッチ情報に含まれるパッチの2D位置/サイズ情報及びブロックとパッチとのマッピング情報を用いてジオメトリイメージからパッチを抽出する。この後、抽出したパッチのジオメトリイメージと付加パッチ情報に含まれるパッチの3D位置情報を用いて、ポイントクラウドを3D空間上に復元する。1つのパッチ内に存在する任意の点(u、v)に該当するジオメトリ値をg(u、v)といい、パッチの3D空間上の位置のnormal軸、tangent軸、bitangent軸の座標値を(δ0、s0、r0)とするとき、点(u、v)にマップされる3D空間上の位置のnormal軸、tangent軸、bitangent軸の座標値であるδ(u、v)、s(u、v)、r(u、v)は、以下のように示される。
d(u,v)=d0+g(u,v)
s(u,v)=s0+u
r(u,v)=r0+v
平滑化(Smoothing)16006
上述した符号化プロセスにおける平滑化と同様であり、圧縮プロセスで発生する画質の劣化によりパッチ境界面から生じ得る不連続性を除去するためのプロセスである。
テキスチャー再構成(Texture reconstruction)16007
平滑化されたポイントクラウドを構成する各点にカラー値を与えてカラーポイントクラウドを復元するプロセスである。上述したジオラマ再構成のプロセスで再構成されたジオメトリイメージとポイントクラウドのマッピング情報を用いて、2D空間でジオメトリイメージと同一位置のテキスチャーイメージピクセルに該当するカラー値を、3D空間で同一位置に対応するポイントクラウドの点に付与することで行われる。
カラー平滑化(Color smoothing)16008
上述したジオメトリ平滑化のプロセスと類似し、圧縮プロセスから発生する画質の劣化によってパッチ境界面から生じ得るカラー値の不連続性を除去するためのプロセスである。カラー平滑化は、以下のように行われる。
1) K-D treeなどを用いて復元されたカラーポイントクラウドを構成する各点の隣接点を算出する。上述したジオメトリ平滑化のプロセスで算出された隣接点情報をそのまま用いてもよい。
2) 各点に対して、その点がパッチ境界面に位置しているか否かを判断する。上述したジオメトリ平滑化のプロセスで算出された境界面情報をそのまま用いてもよい。
3) 境界面に存在する点の隣接点に対して、カラー値の分布を調べて平滑化を行うかどうかを判断する。一例として、輝度値のエントロピーが境界値(threshold local entry)以下である場合(類似する輝度値が多い場合)、エッジ部分ではないと判断して平滑化を行う。平滑化の方法としては、隣接点の平均値でその点のカラー値を置き換える方法がある。
図18は、実施例による送信装置の動作の流れの一例を示す。
実施例による送信装置は、図1の送信装置、図4の符号化プロセス、図15の2Dビデオ/イメージエンコーダに対応するか、それらの動作の一部/全部を行ってもよい。送信装置の各構成要素は、ソフトウェア、ハードウェア、プロセッサ及び/又はそれらの組み合わせに対応する。
V-PCCを用いたポイントクラウドデータの圧縮及び送信のための送信端の動作は図に示めすようである。
実施例によるポイントクラウドデータ送信装置は、送信装置などと呼ばれる。
パッチ生成部18000は、ポイントクラウドデータが入力されて、ポイントクラウド(point cloud)の2Dイメージマッピングのためのパッチ(patch)を生成する。パッチ生成の結果物としてパッチ情報及び/又は付加パッチ情報が生成され、生成されたパッチ情報及び/又は付加パッチ情報は、ジオメトリイメージ(geometry image)生成、テクスチャイメージ(texture image)生成、平滑化(smoothing)又は平滑化のためのジオメトリ復元プロセスに用いられる。
パッチパッキング部18001は、パッチ生成部で生成されたパッチを2Dイメージ内にマップするパッチパッキングのプロセスを行う。パッチパッキングの結果物として占有マップ(occupancy map)が生成され、占有マップはジオメトリイメージ生成、テクスチャイメージ生成、平滑化のためのジオメトリ復元プロセスに用いられる。
ジオメトリイメージ生成部18002は、付加パッチ情報と占有マップを用いてジオメトリイメージを生成し、生成したジオメトリイメージはビデオ符号化により1つのビットストリームに符号化される。
符号化前処理部18003は、イメージパーディングを含む。生成されたジオメトリイメージ又は符号化されたジオメトリビットストリームを復号して再生成されたジオメトリイメージは3Dジオメトリ復号に使用され、その後、平滑化過程が行われる。
テクスチャーイメージ生成部18004は、平滑化された3Dジオメトリ、ポイントクラウドデータ、付加パッチ情報及び占有マップを用いてテクスチャーイメージを生成する。生成されたテクスチャーイメージは1つのビデオビットストリームに符号化される。
メタデータ符号化部18005は、付加パッチ情報を1つのメタデータビットストリームに符号化する。
ビデオ符号化部18006は、占有マップを1つのビデオビットストリームに符号化する。
多重化部18007は、生成されたジオメトリ、テクスチャーイメージ、占有マップのビデオビットストリームと付加パッチ情報メタデータビットストリームを1つのビットストリームに多重化する。
送信部18008は、ビットストリームを受信端に送信する。又は生成されたジオメトリ、テクスチャーイメージ、占有マップのビデオビットストリームと付加パッチ情報メタデータビットストリームは1つ以上のトラックデータでファイルが生成されるか、セグメントでカプセル化されて送信部から受信端に送信される。
図19は、実施例による受信装置の動作の流れの一例を示す。
実施例による受信装置は、図1の受信装置、図16の復号プロセス、図17の2Dビデオ/イメージエンコーダに対応するか、それらの動作の一部/全部を行う。受信装置の各構成要素は、ソフトウェア、ハードウェア、プロセッサ及び/又はそれらの組み合わせに対応する。
V-PCCを用いたポイントクラウドデータの受信及び復元のための受信端の動作プロセスは図面に従う。V-PCC受信端の動作は、図18のV-PCC送信端の動作の逆過程である。
実施例によるポイントクラウドデータ受信装置は、受信装置などと呼ばれる。
受信されたポイントクラウドのビットストリームはファイル/セグメンデカプセル化後に圧縮されたジオメトリイメージ、テキスチャーイメージ、占有マップのビデオビットストリームと付加パッチ情報メタデータビットストリームに逆多重化部19000により逆多重化される。ビデオ復号部19001とメタデータ復号化部19002は逆多重化されたビデオビットストリームとメタデータビットストリームを復号する。ジオメトリ復元部19003により復号されたジオメトリイメージと占有マップ及び付加パッチ情報を用いて3Dジオメトリが復元され、その後、平滑化部19004による平滑化過程が行われる。平滑化された3Dジオメトリにテキスチャーイメージを用いてカラー値を付与することにより、カラーポイントクラウド映像/ピクチャーがテキスチャー復元部19005により復元される。その後、客観的/主観的な視覚品質を向上させるために、カラー平滑化過程をさらに行い、これにより導出された修正された(modified)ポイントクラウド映像/ピクチャーは、レンダリングプロセス後にユーザに見せられる。なお、カラー平滑化プロセスは、場合によっては省略してもよい。
図20は、実施例によるV-PCCベースのポイントクラウドデータの格納及びストリーミングのためのアーキテクチャの一例を示す。
図20のシステムの一部/全部は、図1の送受信装置、図4の符号化プロセス、図15の2Dビデオ/イメージエンコーダ、図16の復号プロセス、図18の送信装置、及び/又は図19の受信装置などの一部/全部を含む。図面の各構成要素は、ソフトウェア、ハードウェア、プロセッサ及びそれらの組み合わせに対応する。
図20ないし図22は実施例による送受信装置にさらにシステムが連結された構造を示す。実施例による送受信装置及びシステムを全て含めて、実施例による送受信装置と称する。
図20ないし図22に示す実施例による装置は、図18などに該当する送信装置は符号化されたポイントクラウドデータを含むビットストリームを送信するためのデータフォーマットに合うコンテナを生成する。
実施例によるV-PCCシステムは、ポイントクラウドデータを含むコンテナを生成し、効率的な送受信のために必要な付加データをコンテナにさらに追加する。
実施例による受信装置は、図20ないし図22のようなシステムに基づいてコンテナを受信して、パース(parse)する。図19などに該当する受信装置はパースされたビットストリームからポイントクラウドデータを復号して復元する。
図ビデオベースポイントクラウド圧縮(V-PCC)に基づいて圧縮されるポイントクラウドデータを格納又はストリーミングするための全体的なアーキテクチャを示す。ポイントクラウドデータの格納及びストリーミングのプロセスは、取得プロセス、符号化プロセス、送信プロセス、復号プロセス、レンダリングプロセス及び/又はフィードバックプロセスを含む。
実施例は、ポイントクラウドメディア/コンテンツ/データを効率的に提供する方法を提案する。
ポイントクラウド取得部20000は、ポイントクラウドメディア/コンテンツ/データを効率的に提供するために、まず、ポイントクラウドビデオを取得する。例えば、1つ以上のカメラによって、ポイントクラウドのキャプチャー、合成又は生成プロセスなどを通じたポイントクラウドデータを取得する。この取得プロセスにより、各ポイントの3D位置(x、y、z位置値などで示され、以下、ジオメトリと呼ぶ)、各ポイントの特質(色、反射率、透明度など)を含むポイントクラウドビデオを取得することができる。また取得したポイントクラウドビデオはこれを含む、例えば、PLY(Polygon File format or the Stanford Triangle format)ファイルなどで生成することができる。複数のフレームを有するポイントクラウドデータの場合、1つ以上のファイルを取得することができる。このプロセスにおいてポイントクラウド関連メタデータ(例えば、キャプチャーなどに関連するメタデータなど)を生成することができる。
キャプチャーしたポイントクラウドビデオは、コンテンツの品質を向上させるための後処理が必要となる場合がある。映像キャプチャーのプロセスにおいて、カメラ装備が提供する範囲内で最大/最小の深さ値を調整してもよいが、調整後にも所望しない領域のポイントデータが含まれることがあるため、所望しない領域(例えば、背景)を除去したり、連結された空間を認識して穴(spatial hole)を埋める後処理を行ってもよい。また、空間座標系を共有するカメラから抽出されたポイントクラウドは校正によって取得された各カメラの位置座標を基準として、各ポイントに対するグローバル座標系への変換プロセスにより1つのコンテンツに統合してもよい。これにより、ポイントの密度の高いポイントクラウドビデオを取得することができる。
ポイントクラウド前処理部(point cloud pre-processing unit)20001は、ポイントクラウドビデオを1つ以上のピクチャー/フレームに生成する。ここで、ピクチャー/フレームは、一般に特定の時間帯の1つの映像を示す単位を意味する。また、ポイントクラウドビデオを構成する点を1つ以上のパッチ(ポイントクラウドを構成する点の集合であって、同じパッチに属する点は3D空間上において互いに隣接し、2Dイメージへのマッピングプロセスにおいて6面のバウンディングボックスの平面のうち同じ方向にマップされる点の集合)に分けて2D平面にマップする際に、2D平面のその位置にデータが存在するか否かを0又は1の値で知らせる2進マップ(binary map)である占有マップピクチャー/フレームを生成することができる。また、ポイントクラウドビデオを成す各点の位置情報(geometry)をパッチ単位で表す深さマップ形式のピクチャー/フレームであるジオメトリピクチャー/フレームを生成することができる。ポイントクラウドビデオを成す各点の色情報をパッチ単位で表すピクチャー/フレームであるテクスチャーピクチャー/フレームを生成することができる。このプロセスにおいて、個別パッチからポイントクラウドを再構成するために必要なメタデータを生成することができ、このメタデータは、各パッチの2D/3D空間における位置、サイズなどのパッチに関する情報(付加情報又は付加パッチ情報という)を含む。このようなピクチャー/フレームが時間順に連続して生成され、ビデオストリーム又はメタデータストリームを構成することができる。
ポイントクラウドビデオエンコーダ20002は、ポイントクラウドビデオに関連する1つ以上のビデオストリームに符号化することができる。1つのビデオは複数のフレームを含み、1つのフレームは停止映像/ピクチャーに対応する。この明細書において、ポイントクラウドビデオとは、ポイントクラウド映像/フレーム/ピクチャーを含み、ポイントクラウドビデオはポイントクラウド映像/フレーム/ピクチャーと混用することがある。ポイントクラウドビデオエンコーダは、ビデオベースポイントクラウド圧縮(V-PCC)の手順を行う。ポイントクラウドビデオエンコーダは、圧縮及びコーティングの効率のために、予測、変換、量子化、エントロピーコーティングなどの一連の手順を行うことができる。符号化されたデータ(符号化されたビデオ/映像情報)は、ビットストリーム形式で出力される。V-PCC手順に基づく場合、ポイントクラウドビデオエンコーダは、後述のように、ポイントクラウドビデオをジオメトリビデオ、特質(attribute)ビデオ、占有(occupancy)マップビデオ、またメタデータ、例えば、パッチに関する情報に分けて符号化することができる。ジオメトリビデオはジオメトリイメージを含んでもよく、特質(attribute)ビデオは特質イメージを含んでもよく、占有(occupancy)マップビデオは占有マップイメージを含んでもよい。付加情報であるパッチデータは、パッチに関する情報を含んでもよい。特質ビデオ/イメージは、テキスチャービデオ/イメージを含んでもよい。
ポイントクラウドイメージエンコーダ20003は、ポイントクラウドビデオに関連する1つ以上のイメージに符号化することができる。ポイントクラウドイメージエンコー20003は、ビデオベースポイントクラウド圧縮(V-PCC)の手順を行う。ポイントクラウドイメージエンコーダは、圧縮及びコーティングの効率のために、予測、変換、量子化、エントロピーコーティングなどの一連の手順を行うことができる。符号化されたイメージは、ビットストリーム形式で出力される。V-PCC手順に基づく場合、ポイントクラウドイメージエンコーダ20003は、後述のように、ポイントクラウドイメージをジオメトリイメージ、特質(attribute)イメージ、占有(occupancy)マップイメージ、またメタデータ、例えば、パッチに関する情報に分けて符号化することができる。
実施例によるポイントクラウドビデオエンコーダ及び/又はポイントクラウドイメージエンコーダは、実施例によるPCCビットストリーム(G-PCC及び/又はV-PCCビットストリーム)を生成する。
実施例によって、ビデオエンコーダ20002、イメージエンコーダ20003、ビデオデコーダ20006、イメージデコーダは、上述のように、1つのエンコーダ/デコーダによって行われてもよく、図面のように、別の経路によって行われてもよい。
カプセル化部(file/segment encapsulation unit)20004は、符号化されたポイントクラウドデータ及び/又はポイントクラウドに関連するメタデータをファイル又はストリーミングのためのセグメントなどの形式でカプセル化する。ここで、ポイントクラウドに関連するメタデータは、メタデータ処理部などから伝送されてもよい。メタデータ処理部は、ポイントクラウドビデオ/イメージエンコーダに含まれてもよく、別のコンポーネント/モジュールで構成されてもよい。カプセル化処理部は、そのビデオ/イメージ/メタデータをISOBMFFなどのファイルフォーマットにカプセル化するか、DASHセグメントなどの形態に処理する。カプセル化処理部は、実施例によれば、ポイントクラウドに関連するメタデータをファイルフォーマット上に含ませることができる。ポイントクラウドメタデータは、例えば、ISOBMFFファイルフォーマット上の様々なレベルのボックス(box)に含まれるか、ファイル内において別のトラック内のデータに含まれる。実施例によれば、カプセル化処理部は、ポイントクラウド関連メタデータそのものをファイルにカプセル化することができる。
実施例によるカプセル化及びカプセル化部は、G-PCC/V-PCCビットストリームをファイル内の1つ或いは複数のトラックに分割格納し、そのためのシグナリング情報も共にカプセル化する。また、G-PCC/V-PCCビットストリーム上に含まれているatlasストリームをファイル内のトラックに格納し、関連するシグナリング情報を格納してもよい。さらに、 G-PCC/V-PCCビットストリーム上に存在するSEIメッセージをファイル内のトラックに格納し、関連するシグナリング情報を格納してもよい。
送信処理部は、ファイルフォーマットに応じてカプセル化されたポイントクラウドデータに送信のための処理を施してもよい。送信処理部は、送信部に含まれてもよく、別のコンポーネント/モジュールで構成されてもよい。送信処理部は、任意の送信プロトコルに従ってポイントクラウドデータを処理することができる。送信のための処理には、放送網を介する伝送のための処理、ブロードバンドを介する伝送のための処理を含んでもよい。実施例によれば、送信処理部は、ポイントクラウドデータだけではなく、メタデータ処理部からポイントクラウド関連メタデータが伝送され、これに送信のための処理を施してもよい。
送信部は、ポイントクラウドビットストリーム又はそのビットストリームを含むファイル/セグメントをデジタル記憶媒体又はネットワークを介して受信装置の受信部へ伝送する。送信のために、任意の送信プロトコルによる処理を行ってもよい。送信のために処理されたデータは、放送網及び/又はブロードバンドを介して伝送される。このデータは、オン・デマンド(On Demand)方式で受信側に伝送される。デジタル記憶媒体には、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなどの様々なものが含まれる。送信部は、所定のファイルフォーマットでメディアファイルを生成するための要素を含み、放送/通信ネットワークを介する送信のための要素を含んでもよい。受信部は、ビットストリームを抽出して復号装置に送信する。
受信部は、この明細書によるポイントクラウドデータ送信装置が送信したポイントクラウドデータを受信する。送信されるチャネルに応じて、受信部は、放送網を介してポイントクラウドデータを受信してもよく、ブロードバンドを介してポイントクラウドデータを受信してもよい。又は、デジタル記憶媒体によってポイントクラウドビデオデータを受信してもよい。受信部は、受信したデータを復号し、これをユーザのビューポートなどに応じてレンダリングしてもよい。
受信処理部は、受信されたポイントクラウドビデオデータに対して送信プロトコルによる処理を行う。受信処理部は、受信部に含まれてもよく、別のコンポーネント/モジュールで構成されてもよい。送信側で送信のための処理が行われたことに対応して、受信処理部は、上述した送信処理部の逆過程を行う。受信処理部は、取得したポイントクラウドビデオをデカプセル化部へ伝送し、取得したポイントクラウドに関連するメタデータはメタデータ処理部へ伝送する。
デカプセル化部(file/segment decapsulation unit)20005は、受信処理部から送信されたファイル形式のポイントクラウドデータをデカプセル化する。デカプセル化部は、ISOBMFFなどによるファイルをデカプセル化し、ポイントクラウドビットストリーム又はポイントクラウド関連メタデータ(又は、別のメタデータビットストリーム)を取得することができる。取得したポイントクラウドビットストリームは、ポイントクラウドビデオデコーダ及びポイントクラウドイメージデコーダに伝送され、取得したポイントクラウド関連メタデータ(又はメタデータビットストリーム)は、メタデータ処理部に伝送される。ポイントクラウドビットストリームは、メタデータ(メタデータビットストリーム)を含んでもよい。メタデータ処理部は、ポイントクラウドビデオデコーダに含まれてもよく、別のコンポーネント/モジュールで構成されてもよい。デカプセル化部が取得するポイントクラウド関連メタデータは、ファイルフォーマット内のボックス又はトラック形式であってもよい。デカプセル化処理部は、必要な場合、メタデータ処理部からデカプセル化に必要なメタデータが伝送されることがある。ポイントクラウド関連メタデータは、ポイントクラウドビデオデコーダ及び/又はポイントクラウドイメージデコーダに伝送されてポイントクラウド復号に用いられてもよく、又はレンダラーに伝送されてポイントクラウドレンダリングに用いられてもよい。
ポイントクラウドビデオデコーダ20006は、ビットストリームを受信してポイントクラウドビデオエンコーダの動作に対応する逆過程を行うことでビデオ/映像を復号する。この場合、ポイントクラウドビデオデコーダ20006は、後述のように、ポイントクラウドビデオをジオメトリビデオ、特質(attribute)ビデオ、占有(occupancy)マップビデオ、また付加パッチ情報(auxiliary patch information)に分けて復号することができる。ジオメトリビデオはジオメトリイメージを含んでもよく、特質(attribute)ビデオは特質イメージを含んでもよく、占有(occupancy)マップビデオは占有マップイメージを含んでもよい。付加情報は、付加パッチ情報(auxiliary patch information)を含んでもよい。特質ビデオ/イメージはテキスチャービデオ/イメージを含んでもよい。
復号されたジオメトリビデオ/イメージと占有マップ及び付加パッチ情報を用いて3Dジオメトリが復元され、その後に平滑化処理を行う。平滑化された3Dジオメトリに、テクスチャービデオ/イメージを用いてカラー値を割り当てることで、カラーポイントクラウド映像/ピクチャーが復元される。レンダラーは、復元されたジオメトリ、カラーポイントクラウド映像/ピクチャーをレンダリングする。レンダリングされたビデオ/映像は、ディスプレイ部でディスプレイされる。ユーザは、VR/ARディスプレイ又は一般のディスプレイなどによってレンダリングされた結果の全部又は一部の領域を見ることができる。
センシング/トラッキング部(Sensing/Tracking)20007は、ユーザ又は受信側からオリエンテーション情報及び/又はユーザビューポート情報を取得して受信部及び/又は送信部に送信する。オリエンテーション情報は、ユーザの頭の位置、角度、動きなどに関する情報を示したり、ユーザが見ている装置の位置、角度、動きなどに関する情報を示す。この情報に基づいて、現在ユーザが3D空間で見ている領域に関する情報、即ちビューポート情報を算出する。
ビューポート情報は、現在ユーザが3D空間において装置又はHMDなどを介して見ている領域に関する情報であってもよい。ディスプレイなどの装置は、オリエンテーション情報、装置が支援する垂直(vertical)又は水平(horizontal)FOVなどに基づいてビューポート領域を抽出することができる。オリエンテーション又はビューポート情報は、受信側で抽出又は算出する。受信側で分析したオリエンテーション又はビューポート情報は、フィードバックチャネルを介して送信側へ伝送されてもよい。
受信部は、センシング/トラッキング部によって取得されたオリエンテーション情報及び/又はユーザが現在見ている領域を示すビューポート情報を使用して特定の領域、即ちオリエンテーション情報及び/又はビューポート情報が示す領域のメディアデータだけを効率的にファイルから抽出又は復号する。また送信部は、センシング/トラッキング部によって取得されたオリエンテーション情報及び/又はビューポート情報を使用して特定の領域、即ちオリエンテーション情報及び/又はビューポート情報が示す領域のメディアデータだけを効率的に符号化したり、ファイルを生成及び送信することができる。
レンダラーは、3D空間上に復号されたポイントクラウドデータをレンダリングする。レンダリングされたビデオ/映像は、ディスプレイ部を介してディスプレイされる。ユーザは、VR/ARディスプレイ又は一般のディスプレイなどを介してレンダリングされた結果の全部又は一部の領域を見ることができる。
フィードバックプロセスは、レンダリング/ディスプレイのプロセスから取得し得る様々なフィードバック情報を送信側に送信するか、又は受信側のデコーダに送信することを含んでもよい。フィードバックプロセスによって、ポイントクラウドデータの消費において相互作用(interactivity)を提供することができる。実施例によれば、フィードバックプロセスにおいて、ヘッドオリエンテーション(Head Orientation)情報、ユーザが現在見ている領域を示すビューポート(Viewport)情報などを伝送することができる。実施例によれば、ユーザは、VR/AR/MR/自立走行環境において具現されたものと相互作用することができるが、この場合、相互作用に関する情報をフィードバックプロセスにおいて送信側及びサービス供給者側に伝送することもできる。実施例によれば、フィードバックプロセスは省略してもよい。
実施例によれば、上述したフィードバック情報は、送信側に伝送されるだけではなく、受信側で消費することもできる。即ち、上述したフィードバック情報を用いて受信側のデカプセル化処理、復号、レンダリングプロセスなどを行ってもよい。例えば、オリエンテーション情報及び/又はビューポート情報を用いて、ユーザが現在見ている領域に対するポイントクラウドデータを優先してデカプセル化、復号及びレンダリングしてもよい。
実施例によるポイントクラウドデータ送信方法は、ポイントクラウドデータを符号化する段階;ポイントクラウドデータをカプセル化する段階;及びポイントクラウドデータを送信する段階;を含む。
実施例によるポイントクラウドデータ受信方法は、ポイントクラウドデータを受信する段階;ポイントクラウドデータをデカプセル化する段階;及びポイントクラウドデータを復号する段階;を含む。
図21は、実施例によるポイントクラウドデータの格納及び送信装置の構成の一例を示す。
図21は、実施例によるポイントクラウドシステムを示し、システムの一部/全部は、図1の送受信装置、図4の符号化プロセス、図15の2Dビデオ/イメージエンコーダ、図16の復号プロセス、図18の送信装置及び/又は図19の受信装置などの一部/全部を含むことができる。また、図20のシステムの一部/全部に含まれるか、対応することができる。
実施例によるポイントクラウドデータ送信装置は、図面のように構成される。送信装置の各構成要素は、モジュール/ユニット/コンポーネント/ハードウェア/ソフトウェア/プロセッサなどであってもよい。
ポイントクラウドのジオメトリ、特質、付加データ(又は付加情報)、メッシュデータなどは、それぞれ独立したストリームで構成されるか、又はファイルにおいてそれぞれ異なるトラックに格納されてもよい。さらに、別のセグメントに含まれてもよい。
ポイントクラウド取得部(Point Cloud Acquisition unit)21000は、ポイントクラウドを取得する。例えば、1つ以上のカメラを介してポイントクラウドのキャプチャー、合成又は生成プロセスなどによりポイントクラウドデータを取得する。このような取得プロセスにより、各ポイントの3D位置(x、y、z位置値などで示され、以下、これをジオメトリと呼ぶ)、各ポイントの特質(色、反射率、透明度など)を含むポイントクラウドデータが得られ、これを含む、例えば、PLY(Polygon File format or the Stanford Triangle format)ファイルなどで生成することができる。複数のフレームを有するポイントクラウドデータの場合、1つ以上のファイルを取得することができる。このプロセスにおいて、ポイントクラウド関連メタデータ(例えば、キャプチャーなどに関連するメタデータなど)を生成することができる。
パッチ生成部(Patch Generation unit)21001は、ポイントクラウドデータからパッチを生成する。パッチ生成部21001は、ポイントクラウドデータ又はポイントクラウドビデオを1つ以上のピクチャー/フレームで生成する。一般に、ピクチャー/フレームは、特定の時間帯の1つの映像を示す単位を意味する。ポイントクラウドビデオを構成する点を1つ以上のパッチ(ポイントクラウドを構成する点の集合であり、同じパッチに属する点は3D空間において互いに隣接しており、2Dイメージへのマッピングプロセスにおいて6面のバウンディングボックス平面のうち同じ方向にマップされる点の集合)に分けて2D平面にマップする際、2D平面のその位置にデータが存在するか否かを0又は1の値で知らせる2進マップ(binary map)である占有(occupancy)マップピクチャー/フレームを生成することができる。また、ポイントクラウドビデオを成す各点の位置情報(geometry)をパッチ単位で表す深さマップ形式のピクチャー/フレームであるジオメトリピクチャー/フレームを生成する。ポイントクラウドビデオを成す各点の色情報をパッチ単位で表すピクチャー/フレームであるテクスチャーピクチャー/フレームを生成することができる。このプロセスにおいて、個別パッチからポイントクラウドを再構成するために必要なメタデータを生成することができ、このメタデータは、各パッチの2D/3D空間における位置、サイズなどパッチに関する情報を含んでもよい。このようなピクチャー/フレームが時間順に連続して生成され、ビデオストリーム又はメタデータストリームを構成することができる。
また、パッチは、2Dイメージマッピングのために使用してもよい。例えば、ポイントクラウドデータが立方体の各面にプロジェクトされる。パッチ生成後、生成されたパッチに基づいて、ジオメトリイメージ、1つ又は1つ以上の特質イメージ、占有マップ、付加データ及び/又はメッシュデータなどを生成することができる。
前処理部又は制御部(controller)によって、ジオメトリイメージ生成(Geometry image Generation)、特質イメージ生成(Attribute image Generation)、占有マップ生成(Occupancy map Generation)、付加データ生成(Auxiliary Data Generation)及び/又はメッシュデータ生成(Mesh Data Generation)が行われる。
ジオメトリイメージ生成部(Geometry image Generation unit)21002は、パッチ生成の結果物に基づいてジオメトリイメージを生成する。ジオメトリは、3D空間上のポイントを示す。パッチに基づいてパッチの2Dイメージパッキングに関連する情報を含む占有マップ、付加データ(パッチデータ)及び/又はメッシュデータなどを使用して、ジオメトリイメージを生成する。ジオメトリイメージは、パッチ生成後に生成されたパッチの深さ(例えば、近さ、遠さ)などの情報に関連する。
特質イメージ生成部(Attribute image Generation unit)21003は、特質イメージを生成する。例えば、特質はテキスチャー(Texture)を示すことができる。テキスチャーは、各ポイントに対応するカラー値であってもよい。実施例によれば、テキスチャーを含む複数(N個)の特質(色、反射率など)イメージを生成する。複数の特質は、マテリアル(材質に関する情報)、反射率などを含む。また、実施例によれば、特質は、同じテキスチャーでも視覚、光によってカラーが変わる情報をさらに含んでもよい。
占有マップ生成部(Occupancy map Generation unit)21004は、パッチから占有マップを生成する。占有マップは、そのジオメトリ又は特質イメージなどのピクセルにデータの存否を示す情報を含む。
付加データ生成部(Auxiliary Data Generation unit)21005は、パッチに関する情報を含む付加データを生成する。即ち、付加データは、ポイントクラウド客体のパッチに関するメタデータを示す。例えば、パッチに対する法線(normal)ベクトルなどの情報を示すことができる。具体的には、実施例によれば、付加データは、パッチからポイントクラウドを再構成するために必要な情報を含む(例えば、パッチの2D/3D空間上の位置、サイズなどに関する情報、プロジェクション平面(normal)識別情報、パッチマッピング情報など)。
メッシュデータ生成部(Mesh Data Generation unit)21006は、パッチからメッシュデータを生成する。メッシュは、隣接したポイント間の連結情報を示す。例えば、三角形のデータを示してもよい。例えば、実施例によるメッシュデータは、各ポイント間の接続(connectivity)情報を意味する。
ポイントクラウド前処理部又は制御部は、パッチ生成、ジオメトリイメージ生成、特質イメージ生成、占有マップ生成、付加データ生成、メッシュデータ生成に関連するメタデータ(Metadata)を生成する。
ポイントクラウド送信装置は、前処理部で生成された結果物に対応して、ビデオ符号化及び/又はイメージ符号化を行う。ポイントクラウド送信装置は、ポイントクラウドビデオデータだけではなく、ポイントクラウドイメージデータを生成する。実施例によれば、ポイントクラウドデータはビデオデータのみを、イメージデータのみを、及び/又はビデオデータ及びイメージデータの両方を含んでもよい。
ビデオ符号化部21007は、ジオメトリビデオ圧縮、特質ビデオ圧縮、占有マップビデオ圧縮、付加データ圧縮及び/又はメッシュデータ圧縮を行う。ビデオ符号化部は、符号化された各々のビデオデータを含むビデオトリームを生成する。
具体的には、ジオメトリビデオ圧縮はポイントクラウドジオメトリビデオデータを符号化する。特質ビデオ圧縮はポイントクラウドの特質ビデオデータを符号化する。付加データ圧縮はポイントクラウドビデオデータに関連する付加データを符号化する。メッシュデータ圧縮(Mesh data compression)はポイントクラウドビデオデータのメッシュデータを符号化する。ポイントクラウドビデオ符号化部の各動作は、並列に行われる。
イメージ符号化部21008は、ジオメトリイメージ圧縮、特質イメージ圧縮、占有マップイメージ圧縮、付加データ圧縮及び/又はメッシュデータ圧縮を行う。イメージ符号化部は、符号化された各々のイメージデータを含むイメージを生成する。
具体的には、ジオメトリイメージ圧縮は、ポイントクラウドジオメトリイメージデータを符号化する。特質イメージ圧縮はポイントクラウドの特質イメージデータを符号化する。付加データ圧縮はポイントクラウドイメージデータに関連する付加データを符号化する。メッシュデータ圧縮(Mesh data compression)はポイントクラウドイメージデータに関連するメッシュデータを符号化する。ポイントクラウドイメージ符号化部の各動作は、並列に行われる。
ビデオ符号化部及び/又はイメージ符号化部は前処理部からメタデータを受信する。ビデオ符号化部及び/又はイメージ符号化部はメタデータに基づいて各々の符号化プロセスを行う。
ファイル/セグメントカプセル化部(File/Segment Encapsulation)21009は、ビデオストリーム及び/又はイメージをファイル及び/又はセグメント形式にカプセル化する。ファイル/セグメントカプセル化部はビデオトラックカプセル化、メタデータトラックカプセル化及び/又はイメージカプセル化を行う。
ビデオトラックカプセル化は、1つ又は1つ以上のビデオストリームを1つ又は1つ以上のトラックカプセル化することができる。
メタデータトラックカプセル化は、ビデオストリーム及び/又はイメージに関連するメタデータを1つ又は1つ以上のトラックにカプセル化する。メタデータは、ポイントクラウドデータのコンテンツに関連するデータを含む。例えば、初期ビューイングオリエンテーションメタデータ(Initial Viewing Orientation Metadata)を含む。実施例によれば、メタデータは、メタデータトラックにカプセル化されてもよく、ビデオトラック又はイメージトラックに共にカプセル化されてもよい。
イメージカプセル化は1つ又は1つ以上のイメージを1つ又は1つ以上のトラック又はアイテムにカプセル化する。
例えば、実施例によれば、4つのビデオストリームと2つのイメージがカプセル化部に入力される場合、4つのビデオストリーム及び2つのイメージを1つのファイル内にカプセル化する。
実施例によるポイントクラウドビデオエンコーダ及び/又はポイントクラウドイメージエンコーダは、実施例によるG-PCC/V-PCCビットストリームを生成する。
ファイル/セグメントカプセル化部は、前処理部からメタデータを受信する。ファイル/セグメントカプセル化部は、メタデータに基づいてカプセル化を行う。
ファイル/セグメントカプセル化によって生成されたファイル及び/又はセグメントは、ポイントクラウド送信装置又は送信部によって送信される。例えば、DASHベースのプロトコルに基づいてセグメントが伝達(Delivery)できる。
実施例によるカプセル化及びカプセル化部は、V-PCCビットストリームをファイル内に1つ又は複数のトラックに分割格納し、そのためのシグナリング情報も共にカプセル化することができる。また、V-PCCビットストリーム上に含まれているatlasストリームをファイル内のトラックに格納し、関連するシグナリング情報を格納することができる。さらに、V-PCCビットストリーム上に存在するSEIメッセージをファイル内のトラックに格納し、関連するシグナリング情報を格納することができる。
伝達部(Delivery)は、ポイントクラウドビットストリーム又はそのビットストリームを含むファイル/セグメントをデジタル記憶媒体又はネットワークを介して受信装置の受信部に伝達する。送信のために、任意の送信プロトコルによる処理を行う。送信のための処理を終えたデータは、放送網及び/又はブロードバンドを介して伝送される。このデータは、オン・デマンド(On Demand)方式で受信側へ伝送してもよい。デジタル記憶媒体には、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなどの様々な記憶媒体がある。伝達部は、所定のファイルフォーマットでメディアファイルを生成するための要素を含み、放送/通信ネットワークを介する送信のための要素を含む。伝達部は、受信部からオリエンテーション情報及び/又はビューポート情報を受信する。伝達部は、取得したオリエンテーション情報及び/又はビューポート情報(又はユーザが選択した情報)を前処理部、ビデオ符号化部、イメージ符号化部、ファイル/セグメントカプセル化部及び/又はポイントクラウド符号化部に伝送する。オリエンテーション情報及び/又はビューポート情報に基づいて、ポイントクラウド符号化部は全てのポイントクラウドデータを符号化するか、又はオリエンテーション情報及び/又はビューポート情報が示すポイントクラウドデータを符号化する。オリエンテーション情報及び/又はビューポート情報に基づいて、ファイル/セグメントカプセル化部は全てのポイントクラウドデータをカプセル化するか、又はオリエンテーション情報及び/又はビューポート情報が示すポイントクラウドデータをカプセル化することができる。オリエンテーション情報及び/又はビューポート情報に基づいて、伝達部は全てのポイントクラウドデータを伝達するか、又はオリエンテーション情報及び/又はビューポート情報が示すポイントクラウドデータを伝達する。
例えば、前処理部は、全てのポイントクラウドデータに対して上述した動作を行ってもよく、オリエンテーション情報及び/又はビューポート情報が示すポイントクラウドデータに対して動作を行ってもよい。ビデオ符号化部及び/又はイメージ符号化部は、全てのポイントクラウドデータに対して上述した動作を行ってもよく、オリエンテーション情報及び/又はビューポート情報が示すポイントクラウドデータに対して上述した動作を行わってもよい。ファイル/セグメントカプセル化部は、全てのポイントクラウドデータに対して上述した動作を行ってもよく、オリエンテーション情報及び/又はビューポート情報が示すポイントクラウドデータに対して上述した動作を行ってもよい。送信部は、全てのポイントクラウドデータに対して上述した動作を行ってもよく、オリエンテーション情報及び/又はビューポート情報が示すポイントクラウドデータに対して上述した動作を行ってもよい。
図22は、実施例によるポイントクラウドデータ受信装置の構成の一例を示す。
図22は、実施例によるポイントクラウドシステムを示し、システムの一部/全部は、図1の送受信装置、図4の符号化プロセス、図15の2Dビデオ/イメージエンコーダ、図16の復号プロセス、図18の送信装置、及び/又は図19の受信装置などの一部/全部を含むことができる。また、図20及び図21のシステムの一部/全部に含まれるか又は対応する。
受信装置の各構成は、モジュール/ユニット/コンポーネント/ハードウェア/ソフトウェア/プロセッサなどであってもよい。伝達クライアント(Delivery Client)は、実施例によるポイントクラウドデータ送信装置が送信したポイントクラウドデータ、ポイントクラウドビットストリーム又はそのビットストリームを含むファイル/セグメントを受信する。送信されるチャネルに応じて、受信装置は、放送網を介してポイントクラウドデータを受信するか、又はブロードバンドを介してポイントクラウドデータを受信する。又は、デジタル記憶媒体によってポイントクラウドデータを受信してもよい。受信装置は、受信したデータを復号し、これをユーザのビューポートなどに従ってレンダリングするプロセスを含んでもよい。受信処理部は、受信されたポイントクラウドデータに対して送信プロトコルに従う処理を行う。受信処理部は受信部に含まれてもよく、別のコンポーネント/モジュールで構成されてもよい。送信側で行った送信のための処理に対応して、受信処理部は、上述した送信処理部の逆過程を行う。受信処理部は、取得したポイントクラウドデータをファイル/セグメントデカプセル化部に伝送し、取得したポイントクラウド関連メタデータはメタデータ処理部に伝送することができる。
センシング/トラッキング部(Sensing/Tracking)は、オリエンテーション情報及び/又はビューポート情報を取得する。センシング/トラッキング部は、取得したオリエンテーション情報及び/又はビューポート情報を伝達クライアント、ファイル/セグメントデカプセル化部、ポイントクラウド復号部に伝送する。
伝達クライアントは、オリエンテーション情報及び/又はビューポート情報に基づいて、全てのポイントクラウドデータを受信するか、又はオリエンテーション情報及び/又はビューポート情報が示すポイントクラウドデータを受信する。ファイル/セグメントデカプセル化部は、オリエンテーション情報及び/又はビューポート情報に基づいて、全てのポイントクラウドデータをデカプセル化するか、又はオリエンテーション情報及び/又はビューポート情報が示すポイントクラウドデータをデカプセル化する。ポイントクラウド復号部(ビデオ復号部及び/又はイメージ復号部)は、オリエンテーション情報及び/又はビューポート情報に基づいて、全てのポイントクラウドデータを復号するか、又はオリエンテーション情報及び/又はビューポート情報が示すポイントクラウドデータを復号する。ポイントクラウドプロセシング部は、全てのポイントクラウドデータを処理するか、又はオリエンテーション情報及び/又はビューポート情報が示すポイントクラウドデータを処理する。
ファイル/セグメントデカプセル化部(File/Segment decapsulation unit)22000は、ビデオトラックデカプセル化(Video Track Decapsulation)、メタデータトラックデカプセル化(Metadata Track Decapsulation)及び/又はイメージデカプセル化(Image Decapsulation)を行う。デカプセル化処理部は、受信処理部から伝達されたファイル形式のポイントクラウドデータをデカプセル化する。デカプセル化処理部は、ISOBMFFなどによるファイル又はセグメントをデカプセル化し、ポイントクラウドビットストリーム及びポイントクラウド関連メタデータ(又は別のメタデータビットストリーム)を取得する。取得したポイントクラウドビットストリームは、ポイントクラウド復号部に伝送し、取得したポイントクラウド関連メタデータ(又はメタデータビットストリーム)は、メタデータ処理部に伝送する。ポイントクラウドビットストリームは、メタデータ(メタデータビットストリーム)を含んでもよい。メタデータ処理部は、ポイントクラウドビデオデコーダに含まれてもよく、別のコンポーネント/モジュールで構成されてもよい。デカプセル化処理部が取得するポイントクラウド関連メタデータは、ファイルフォーマット内のボックス又はトラックの形態であってもよい。ファイル/セグメントデカプセル化部は、必要な場合、メタデータ処理部からデカプセル化に必要なメタデータが伝送されてもよい。ポイントクラウド関連メタデータは、ポイントクラウド復号部に伝送されて、ポイントクラウド復号に用いられてもよく、ポイントクラウドレンダリング部に伝送されて、ポイントクラウドレンダリングに用いられてもよい。ファイル/セグメントデカプセル化部は、ポイントクラウドデータに関連するメタデータを生成することができる。
ビデオトラックデカプセル化部(Video Track Decapsulation)は、ファイル及び/又はセグメントに含まれたビデオトラックをデカプセル化する。ジオメトリビデオ、特質ビデオ、占有マップ、付加データ及び/又はメッシュデータを含むビデオストリームをデカプセル化する。
メタデータトラックデカプセル化(Metadata Track Decapsulation)は、ポイントクラウドデータに関連するメタデータ及び/又は付加データなどを含むビットストリームをデカプセル化する。
イメージデカプセル化(Image Decapsulation)は、ジオメトリイメージ、特質イメージ、占有マップ、付加データ及び/又はメッシュデータを含むイメージをデカプセル化する。
実施例によるデカプセル化又はデカプセル化部は、G-PCC/V-PCCビットストリームをファイル内の1つ又は複数のトラックに基づいて分割処理パーシング(デカプセル化)し、そのためのシグナリング情報も共にデカプセル化する。また、G-PCC/V-PCCビットストリーム上に含まれているatlasストリームをファイル内のトラックに基づいてデカプセル化し、関連するシグナリング情報をパーシングする。さらにG-PCC/V-PCCビットストリーム上に存在するSEIメッセージをファイル内のトラックに基づいてデカプセル化し、関連するシグナリング情報を共に取得することができる。
ビデオ復号部(Video Decoding unit)22001は、ジオメトリビデオ復元、特質ビデオ復元、占有マップ復元、付加データ復元及び/又はメッシュデータ復元を行う。ビデオ復号部は、実施例によるポイントクラウド送信装置のビデオ符号化付加を行うプロセスに対応して、ジオメトリビデオ、特質ビデオ、付加データ及び/又はメッシュデータを復号する。
イメージ復号部(Image Decoding)22002は、ジオメトリイメージ復元、特質イメージ復元、占有マップ復元、付加データ復元及び/又はメッシュデータ復元を行う。イメージ復号部は、実施例によるポイントクラウド送信装置のイメージ符号化部が行うプロセスに対応して、ジオメトリイメージ、特質イメージ、付加データ及び/又はメッシュデータを復号する。
実施例によるビデオ復号部、イメージ復号部は、上述のように、1つのビデオ/イメージデコーダによって処理されてもよく、図のように別のパスで行われてもよい。
ビデオ復号部及び/又はイメージ復号部は、ビデオデータ及び/又はイメージデータに関連するメタデータを生成する。
実施例によるポイントクラウドビデオエンコーダ及び/又はポイントクラウドイメージエンコーダは、実施例によるG-PCC/V-PCCビットストリームを復号する。
ポイントクラウドプロセシング部(Point Cloud Processing unit)22003は、ジオメトリ再構成(Geometry Reconstruction)及び/又は特質再構成(Attribute Reconstruction)を行う。
ジオメトリ再構成は、復号されたビデオデータ及び/又は復号されたイメージデータから、占有マップ、付加データ及び/又はメッシュデータに基づいて、ジオメトリビデオ及び/又はジオメトリイメージを復元する。
特質再構成は、復号された特質ビデオ及び/又は復号された特質イメージから、占有マップ、付加データ及び/又はメッシュデータに基づいて、特質ビデオ及び/又は特質イメージを復元する。実施例によれば、例えば、特質はテキスチャーである。実施例によれば、特質は複数の特質情報を意味する。複数の特質がある場合、実施例によるポイントクラウドプロセシング部は、複数の特質再構成を行う。
ポイントクラウドプロセシング部は、ビデオ復号部、イメージ復号部及び/又はファイル/セグメントデカプセル化部からメタデータを受信し、メタデータに基づいてポイントクラウドを処理することができる。
ポイントクラウドレンダリング部(Point Cloud Rendering unit)は、再構成されたポイントクラウドをレンダリングする。ポイントクラウドレンダリング部はビデオ復号部、イメージ復号部及び/又はファイル/セグメントデカプセル化部からメタデータを受信し、メタデータに基づいてポイントクラウドをレンダリングする。
ディスプレイは、レンダリングされた結果を実際のディスプレイ装置上にディスプレイする。
実施例による方法/装置は図15ないし図19に示したように、ポイントクラウドデータを符号化/復号した後、ポイントクラウドデータを含むビットストリームをファイル及び/又はセグメント形式にカプセル化及び/又はデカプセル化する。
例えば、実施例によるポイントクラウドデータ送信装置は、ポイントクラウドデータをファイルに基づいてカプセル化し、このとき、ファイルには、ポイントクラウドに関するパラメータを含むV-PCCトラック、ジオメトリを含むジオメトリトラック、特質を含む特質トラック及び占有マップを含む占有トラックを含む。
また、実施例によるポイントクラウドデータ受信装置は、ポイントクラウドデータファイルに基づいてデカプセル化し、このとき、ファイルにはポイントクラウドに関するパラメータを含むV-PCCトラック、ジオメトリを含むジオメトリトラック、特質を含む特質トラック及び占有マップを含む占有トラックを含む。
上述した動作は、図20のファイル/セグメントカプセル化部、図21のファイル/セグメントカプセル化部、図22のファイル/セグメントデカプセル化部などによって行われる。
図23は、実施例によるポイントクラウドデータの送受信方法/装置と連動可能な構造の一例を示す。
実施例による構造では、サーバー2360、ロボット2310、自立走行車両2320、XR装置2330、スマートフォン2340、家電2350及び/又はHMD2370のうちのいずれかがクラウドネットワーク2310と接続する。ここで、ロボット2310、自立走行車両2320、XR装置2330、スマートフォン2340又は家電2350などを装置と呼ぶ。また、XR装置1730は、実施例によるポイントクラウド圧縮データ(PCC)装置に対応するか、PCC装置と連動してもよい。
クラウドネットワーク2300は、クラウドコンピューティングインフラの一部を構成するか、クラウドコンピューティングインフラ内に存在するネットワークを意味してもよい。ここで、クラウドネットワーク2300は、3Gネットワーク、4G又はLTE(Long Term Evolution)ネットワーク又は5Gネットワークなどを用いて構成されてもよい。
AIサーバー2360は、ロボット2310、自立走行車両2320、XR装置2330、スマートフォン2340、家電2350及び/又はHMD2370のうちの少なくとも1つ以上とクラウドネットワーク2300を介いて接続され、接続された装置2310~2370のプロセシングの少なくとも一部を補助する。
HMD(Head-Mount Display)23700は、実施例によるXR装置及び/又はPCC装置が具現できるタイプの1つを示す。実施例によるHMDタイプの装置は、コミュニケーションユニット、コントロールユニット、メモリユニット、I/Oユニット、センサユニット、またパワー供給ユニットなどを含む。
以下、上記技術が適用される装置2310~2350の様々な実施例について説明する。ここで、図23に示された装置2310~2350は、上述した実施例によるポイントクラウドデータの送受信装置と連動/結合することができる。
<PCC+XR>
XR/PCC装置2330は、PCC及び/又はXR(AR+VR)技術が適用され、HMD(Head-Mount Display)、車両に備えられたHUD(Head-Up Display)、TV、携帯電話、スマートフォン、コンピューター、ウェアラブルデバイス、家電機器、デジタル看板、車両、固定型ロボットや移動型ロボットなどで具現される。
XR/PCC装置2330は、様々なセンサにより又は外部装置から取得した3Dポイントクラウドデータ又はイメージデータを分析して3Dポイントに対する位置データ及び特質データを生成することで周辺空間又は現実客体に関する情報を得て、出力するXR客体をレンダリングして出力することができる。例えば、XR/PCC装置2330は認識された物体に関する付加情報を含むXR客体を該当認識された物体に対応して出力することができる。
<PCC+XR+モバイルフォン>
XR/PCC装置2330はPCC技術が適用されてモバイルフォン2340などで具現される。
モバイルフォン2340はPCC技術に基づいてポイントクラウドコンテンツを復号し、ディスプレイする。
<PCC+自立走行+XR>
自律走行車両2320はPCC技術及びXR技術が適用されて、移動型ロボット、車両、無人飛行体などで具現される。
XR/PCC技術が適用された自律走行車両2320は、XR映像を提供する手段を備えた自律走行車両やXR映像内での制御/相互作用の対象となる自律走行車両などを意味してもよい。特に、XR映像内での制御/相互作用の対象となる自律走行車両2320はXR装置2330とは区分され、互いに連動できる。
XR/PCC映像を提供する手段を備えた自律走行車両2320は、カメラを含むセンサからセンサ情報を取得し、取得したセンサ情報に基づいて生成されたXR/PCC映像を出力する。例えば、自律走行車両はHUDを備えてXR/PCC映像を出力することで、搭乗者に現実客体又は画面内の客体に対応するXR/PCC客体を提供する。
このとき、XR/PCC客体がHUDに出力される場合には、XR/PCC客体の少なくとも一部が搭乗者の視線が向く実際の客体にオーバーラップされるように出力されることがある。一方、XR/PCC客体が自律走行車両内に備えられるディスプレイに出力される場合には、XR/PCC客体の少なくとも一部が画面内の客体にオーバーラップされるように出力されることがある。例えば、自律走行車両は車路、他の車両、信号灯、交通表示板、二輪車、歩行者、建物などのような客体に対応するXR/PCC客体を出力することができる。
実施例によるVR(Virtual Reality)技術、AR(Augmented Reality)技術、MR(Mixed Reality)技術及び/又はPCC(Point Cloud Compression)技術は、様々なデバイスに適用可能である。
即ち、VR技術は現実の客体や背景などをCG映像のみで提供するディスプレイ技術である。一方、AR技術は実際物事の映像上に仮想のCG映像を共に見せる技術である。また、MR技術は、現実世界に仮想客体を混ぜて見せるという点では上述したAR技術と類似する。しかし、AR技術では現実の客体とCG映像からなる仮想の客体との区別が明らかであり、現実客体を補完する形式で仮想の客体を使用する反面、MR技術では仮想の客体と現実の客体とが同等な性格と見なされるという点でAR技術とは区別される。より具体的には、例えば、上記MR技術が適用されたことがホログラムサービスである。
ただし、最近にはVR、AR、MR技術を明確に区別するよりは、XR(extended Reality)技術と呼んでいる。よって、本発明の実施例はVR、AR、MR、XR技術のいずれにも適用可能である。かかる技術はPCC、V-PCC、G-PCC技術ベースの符号化/復号が適用される。
実施例によるPCC方法/装置は自律走行サービスを提供する車両に適用できる。
自律走行サービスを提供する自立走行車両はPCC装置と有無線通信可能に接続される。
実施例によるポイントクラウド圧縮データ(PCC)送受信装置は、自立走行車両と有無線通信可能に接続された場合、自律走行サービスと共に提供できるAR/VR/PCCサービス関連コンテンツデータを受信/処理して自立走行車両に送信することができる。また、ポイントクラウドデータ送受信装置が自立走行車両に搭載された場合は、ポイントクラウド送受信装置は、ユーザインターフェース装置で入力されたユーザ入力信号によってAR/VR/PCCサービス関連コンテンツデータを受信/処理してユーザに提供することができる。実施例による車両又はユーザインターフェース装置はユーザ入力信号を受信することができる。実施例によるユーザ入力信号は自律走行サービスを指示する信号を含んでもよい。
実施例による送信装置はポイントクラウドデータを送信する装置であり、実施例による受信装置はポイントクラウドデータを受信する装置である。
実施例による方法/装置は、実施例によるポイントクラウドデータ送受信方法/装置、送受信装置に含まれたポイントクラウドエンコーダとデコーダ、ポイントクラウドデータを送受信するためのデータを生成してパース(parse)する装置、プロセッサ及び/又はそれらに対応する方法などを意味する。
実施例によるポイントクラウドデータ送信装置は、ポイントクラウドデータエンコーダ及びポイントクラウドデータを送信する送信機などを含む。ポイントクラウドデータ送信装置はさらに、ポイントクラウドデータの効率的な送信のためのフォーマットで構成可能なポイントクラウドデータカプセル化部を含む。ポイントクラウドデータを圧縮するエンコーダ及び送信のためにカプセル化するカプセル化部などを含めてポイントクラウドデータシステムという。上記の構成要素をこの明細書では簡単に実施例による方法/装置と称する。
実施例によるポイントクラウドデータ受信装置は、ポイントクラウドデータデコーダ及びポイントクラウドデータを受信する受信機などを含む。ポイントクラウドデータ受信装置はさらに、ポイントクラウドデータの効率的な受信のためのフォーマットのデータ構造からポイントクラウドデータをパース(parse)するデカプセル化部を含む。ポイントクラウドデータを復元するデコーダ及び受信・パースのためにデカプセル化するデカプセル化部などを含めてポイントクラウドデータシステムという。上記の構成要素をこの明細書では簡単に実施例による方法/装置と称する。
この明細書で説明するV-PCC(Video-based point cloud compression)は、V3C(Visual Volumetric Video-based Coding)と同一である。実施例による用語V-PCCは、V3Cと混用して同じ意味で使われる。
実施例による方法/装置は、動的ポイントクラウド客体に対するファイルフォーマットを生成し、そのためのシグナリング方案を提供する(File encapsulation of Dynamic point cloud object)。
図24は実施例によるカプセル化されたV-PCCデータコンテナの構造を示す。
図25は実施例による絶縁されたV-PCCデータコンテナ構造を示す。
図1の送信装置10000のポイントクラウドビデオエンコーダ10002、図4及び図15のエンコーダ、図18の送信装置、図29のビデオ/イメージエンコーダ20002,20003、図21のプロセッサ、エンコーダ21000ないし21008、及び図23のXRデバイス2330などは、実施例によるポイントクラウドデータを含むビットストリームを生成する。
図1のファイル/セグメントカプセル化部10003、図20のファイル/セグメントカプセル化部20004、図21のファイル/セグメントカプセル化部21009、及び図23のXRデバイスは、図24及び図25のファイル構造にビットストリームを初期化(formatting)する。
同様に、図1の受信装置10005のファイル/セグメントデカプセル化部10007、図20ないし図23のファイル/セグメントデカプセル化部20005,21009,22000、及び図23のXRデバイス2330は、ファイルを受信してデカプセル化してビットストリームをパースする。ビットストリームは図1のポイントクラウドビデオデコーダ101008、図16及び図17のデコーダ、図19の受信装置、図20ないし図23のビデオ/イメージデコーダ20006,21007,21008,22001,22002、及び図23のXRデバイス2330により復号され、ポイントクラウドデータが復元される。
図24及び図25はISOBMFFファイルフォーマットによるポイントクラウドデータのコンテナの構造を示す。
図24及び図25はマルチトラックに基づいてポイントクラウドを伝達するコンテナの構造である。
実施例による方法/装置は、複数のトラックに基づいてポイントクラウドデータ及びポイントクラウドデータ関連の追加データをコンテナファイルに含めて送受信する。
第1トラック24000は特質トラックであり、図1、図4、図15、図18などのように符号化された特質データ24040を含む。
第2トラック24010は占有トラックであり、図1、図4、図15、図18などのように符号化されたジオメトリデータ24050を含む。
第3トラック24020はジオメトリトラックであり、図1、図4、図15、図18などのように符号化された占有データ24060を含む。
第4トラック24030はv-pcc(v3c)トラックであり、ポイントクラウドデータに関するデータを含むアトラスビットストリーム27070を含む。
各々のトラックはサンプルエントリー及びサンプルで構成される。サンプルはフレームに対応するユニットである。N番目のフレームを復号するためには、N番目のフレームに対応するサンプル又はサンプルエントリーが必要である。サンプルエントリーはサンプルを記述する情報を含む。
図25は図24の詳しい構造図である。
v3cトラック25000は第4トラック24030に対応する。v3cトラック25000に含まれたデータはボックスというデータコンテナのフォーマットを有する。v3cトラック25000はV3Cコンポーネントトラック25010ないし25030に関する参照情報を含む。
実施例による受信方法/装置は、図25のようなポイントクラウドデータを含むコンテナ(ファイルとも称する)を受信して、V3Cトラックをパースする。v3cトラックに含まれた参照情報に基づいて占有データ、ジオメトリデータ、特質データを復号して復元する。
占有トラック25010は第2トラック24010に対応し、占有データを含む。ジオメトリトラック25020は第3トラック24020に対応し、ジオメトリデータを含む。特質トラック25030は第1トラック24000に対応し、特質データを含む。
以下、図24及び図25のファイルに含まれるデータ構造のシンタックスについて詳しく説明する。
図26は実施例によるポイントクラウドデータを含むビットストリームの構造を示す。
図26は図24及び図25で説明したように、符号化又は復号される実施例によるポイントクラウドデータを含むビットストリームの構造である。
実施例による方法/装置は、動的ポイントクラウド客体に対するビットストリームを生成し、ビットストリームに関するファイルフォーマットを提案し、そのためのシグナリング方案を提供する。
実施例による方法/装置は、V-PCC(=V3C)ビットストリームをファイルのトラックに効率的に格納し、それに対するシグナリングを提供するポイントクラウドコンテンツサービスを提供するための送信機、受信機及び/又はプロセッサである。
実施例による方法/装置は、ポイントクラウドデータを含むV-PCCビットストリームを格納するデータフォーマットを提供する。それにより、実施例による受信方法/装置がポイントクラウドデータを受信し、ポイントクラウドデータに効率的に接近できるデータの格納及びシグナリング方案を提供する。従って、効率的な接近のポイントクラウドデータを含むファイル格納技法に基づいて、送信機及び/又は受信機はポイントクラウドコンテンツサービスを提供することができる。
実施例による方法/装置は、ポイントクラウドビットストリーム(V-PCCビットストリーム)をファイルのトラック内に効率的に格納する。効率的な格納技法に関するシグナリング情報を生成してファイル内に格納する。ファイル内に格納されたV-PCCビットストリームに対する効率的な接近を支援できるように、ファイル実施例による格納技法にさらに(又はさらに変形/結合して)V-PCCビットストリームをファイル内1つ以上の複数のトラックに分割格納する技法を提供する。
この明細書で使用する用語の定義は以下の通りである:
VPS:V-PCCパラメータセット(V-PCC parameter set)。AD:アトラスデータ(atlas data)。OVD:占有ビデオデータ(occupancy video data)。GVD:ジオメトリビデオデータ(geometry video data)。AVD:特質ビデオデータ(attribute video data)。ACL:アトラスコーディングレイヤ(Atlas Coding Layer)。AAPS:アトラス適応パラメータセット(Atlas Adaptation Parameter Set)。ASPS:アトラスシーケンスパラメータセット(atlas sequence parameter set)。実施例によるシンタックス要素を含むシンタックス構造は、ゼロ又は1つ以上の全体コーディングされたアトラスシーケンス(CASs)に適用され、各タイルグループヘッダ内のシンタックス要素により参照されるASPSのシンタックス要素のコンテンツにより決定される。
AFPS:アトラスフレームパラメータセット(atlas frame parameter set)。シンタックス要素を含むシンタックス構造はゼロ又1つ以上の全体コーディングされたアトラスフレームに適用され、タイルグループヘッダ内のシンタックス要素のコンテンツにより決定される。
SEI:補足強化情報(Supplemental enhancement information)
アトラス(Atlas):2Dバウンディングボックスの集合である。例えば、矩形フレームにプロジェクションされた、3D空間に3次元バウンディングボックスに対応する矩形フレームにプロジェクションされたパッチである。アトラスはポイントクラウドのサブセットを示す。
アトラスサブビットストリーム(Atlas sub-bitstream):アトラスNALビットストリーム部分を含むV-PCCビットストリームから抽出されたサブビットストリームである。
V-PCCコンテンツ(V-PCC content):V-PCC(V3C)に基づいて符号化されるポイントクラウドである。
V-PCCトラック(V-PCC track):V-PCCビットストリームのアトラスビットストリームを伝達するボリュメトリックビジュアルトラックである。
V-PCCコンポーネントトラック(V-PCC component track):V-PCCビットストリームの占有マップ、ジオメトリ、特質コンポーネントビデオビットストリームに対する2Dビデオ符号化されたデータを伝達するビデオトラックである。
動的(Dynamic)ポイントクラウド客体の部分接近(partial access)を支援するための実施例を説明する。実施例はファイルシステムレベル(file system level)において、各空間領域(spatial region)に含まれるV-PCC客体の一部データに連関するアトラスタイルグループ(atlas tile group)情報を含む。また実施例は各アトラスタイルグループ(atlas tile group)が含んでいるラベル(label)及び/又はパッチ(patch)情報に対する拡張したシグナリング方案を含む。
図26を参照すると、実施例による方法/装置が送受信するデータに含まれたポイントクラウドビットストリームの構造を示す。
実施例によるポイントクラウドデータの圧縮及び復元技法は、ポイントクラウドビジュアル情報のボリュメトリック符号化及び復号を示す。
コーディングされたポイントクラウドシーケンス(coded point cloud sequence,CPCS)を含むポイントクラウドビットストリーム(V-PCCビットストリーム又はV3Cビットストリームなどと称される、26000)は、サンプルストリームV-PCCユニット26010で構成される。サンプルストリームV-PCCユニット26010は、V-PCCパラメータセット(VPS)データ26020、アトラスビットストリーム26030、2Dビデオ符号化占有マップビットストリーム26040、2Dビデオ符号化ジオメトリビットストリーム26050、及びゼロ及び1つ以上の2Dビデオ符号化特質ビットストリーム26060を伝達する。
ポイントクラウドビットストリーム24000はサンプルストリームVPCCヘッダ26070を含む。
SSVHユニットサイズ精度(ssvh_unit_size_precision_bytes_minus1):この値に1を加えると、全てのサンプルストリームV-PCCユニット内のSSVU VPCCユニットサイズ(ssvu_vpcc_unit_size)要素のバイト単位の精度を示す。ssvh_unit_size_precision_bytes_minus1は0~7の範囲を有する。
サンプルストリームV-PCCユニット24010のシンタックス24080は以下の通りである。各サンプルストリームV-PCCユニットは、VPS、AD、OVD、GVD及びAVDのV-PCCユニットのいずれかのタイプを含む。各サンプルストリームV-PCCユニットのコンテンツは、サンプルストリームV-PCCユニット内に含まれたV-PCCユニットと同一のアクセスユニットに連関する。
SSVU VPCCユニットサイズ(ssvu_vpcc_unit_size):サブシーケンス(subsequent)V-PCCユニットのバイト単位サイズを示す。ssvu_vpcc_unit_sizeを示すときに使用されるビット数は、(ssvh_unit_size_precision_bytes_minus1+1)*8である。
実施例による方法/装置は、符号化されたポイントクラウドデータを含む図26のビットストリームを受信して、カプセル化部20004,21009などにより図24及び図25のようなファイルを生成する。
実施例による方法/装置は、図24及び図25のようなファイルを受信して、デカプセル化部22000などによりポイントクラウドデータを復号する。
VPS26020及び/又はAD26030は第4トラック(V3Cトラック)24030にカプセル化される。
OVD26040は第2トラック(占有トラック)24010にカプセル化される。
GVD26050は第3トラック(ジオメトリトラック)24020にカプセル化される。
AVD26060は第1トラック(特質トラック)24000にカプセル化される。
図27は実施例によるサンプルストリームV-PCCユニットの構成を示す。
図27のビットストリーム27000は図26のビットストリーム26000に対応する。
実施例によるポイントクラウドデータに関するビットストリーム27000に含まれたサンプルストリームV-PCCユニットは、V-PCCユニットサイズ27010及びV-PCCユニット27020を含む。
各略語の定義は以下の通りである:VPS(V-PCC parameter set)、AD(atlas data)、OVD(occupancy video data)、GVD(geometry video data)、AVD(attribute video data)
各々のV-PCCユニット27020はV-PCCユニットヘッダ27030及びV-PCCユニットペイロード27040を含む。V-PCCユニットヘッダ27030はV-PCCユニットタイプを記述する。特質ビデオデータV-PCCユニットヘッダは特質タイプ及びそのインデックス、支援される同一の特質タイプの複数のインスタンスなどを説明する。
占有、ジオメトリ、特質ビデオデータユニットペイロード27050,27060,27070は、ビデオデータユニットに対応する。例えば、占有ビデオデータ、ジオメトリビデオデータ、特質ビデオデータ27050,27060,27070は、HEVC NALユニットである。かかるビデオデータは実施例によるビデオデコーダにより復号される。
図28は実施例によるV-PCCユニット及びV-PCCユニットヘッダを示す。
図28は図27で説明したV-PCCユニット27020及びV-PCCユニットヘッダ27030のシンタックスを示す。
実施例によるV-PCCビットストリームはV-PCCシーケンスのシリーズを含む。
VPCC_VPSと同一のvuh_unit_typeの値を有するV-PCCユニットタイプがV-PCCシーケンス内の1番目のV-PCCユニットタイプであると期待する。全ての他のV-PCCユニットタイプはそれらのコーディング順内で追加制限なしにこのユニットタイプに従う。占有ビデオ、特質ビデオ又はジオメトリビデオを伝達するV-PCCユニットのV-PCCユニットペイロードは、1つ又は1つ以上のNALユニットで構成される(A V-PCC bitstream contains a series of V-PCC sequences. A vpcc unit type with a value of vuh_unit_type equal to VPCC_VPS is expected to be the first V-PCC unit type in a V-PCC sequence. All other V-PCC unit types follow this unit type without any additional restrictions in their coding order. A V-PCC unit payload of V-PCC unit carrying Occupancy video, attribute video, or geometry video is composed of one or more NAL units)。
VPCCユニットはヘッダとペイロードを含む。
VPCCユニットヘッダはVUHユニットタイプに基づいて以下の情報を含む。
VUHユニットタイプはV-PCCユニット27020のタイプを以下のように示す。
Figure 2023509092000003
VUHユニットタイプ(vuh_unit_type)が占有ビデオデータ(VPCC_AVD)、ジオメトリビデオデータ(VPCC_GVD)、占有ビデオデータ(VPCC_OVD)又はアトラスデータ(VPCC_AD)を示すと、VUH VPCCパラメータセットID(vuh_vpcc_parameter_set_id)及びVUHアトラスID(vuh_atlas_id)がユニットヘッダ内で伝達される。V-PCCユニットに連関するパラメータセットID及びアトラスIDを伝達することができる。
ユニットタイプがアトラスビデオデータであると、ユニットのヘッダは特質インデックス(vuh_attribute_index)、特質パーティションインデックス(vuh_attribute_partition_index)、マップインデックス(vuh_map_index)、付加ビデオフラグ(vuh_auxiliary_video_flag)を伝達する。
ユニットタイプがジオメトリビデオデータであると、マップインデックス(vuh_map_index)、付加ビデオフラグ(vuh_auxiliary_video_flag)を伝達する。
ユニットタイプが占有ビデオデータ又はアトラスデータであると、ユニットのヘッダは追加予約されたビットを含む。
VUH VPCCパラメータセットID(vuh_vpcc_parameter_set_id):アクティブV-PCC VPSのためのvps_vpcc_parameter_set_idの値を示す。現在V-PCCユニットのヘッダのVPCCパラメータセットIDによりVPSパラメータセットのIDを把握でき、V-PCCユニットとV-PCCパラメータセットの間の関係を知らせることができる。
VUHアトラスID(vuh_atlas_id):現在V-PCCユニットに対応するアトラスのインデックスを示す。現在V-PCCユニットのヘッダのアトラスIDにより、アトラスのインデックスを把握でき、V-PCCユニットに対応するアトラスを知らせることができる。
VUH特質インデックス(vuh_attribute_index):特質ビデオデータユニットから伝達される特質データのインデックスを示す。
VUH特質パーティションインデックス(vuh_attribute_partition_index):特質ビデオデータユニットから伝達される特質ディメンショングループのインデックスを示す。
VUHマップインデックス(vuh_map_index):この値が存在する場合、現在ジオメトリ又は特質ストリームのマップインデックスを示す。
VUH付加ビデオフラグ(vuh_auxiliary_video_flag):この値が1であると、関連ジオメトリ又は特質ビデオデータユニットがただRAW及び/又はEOMコーディングされたポイントビデオであることを示す。この値が0であると、関連ジオメトリ又は特質ビデオデータユニットがRAW及び/又はEOMコーディングされたポイントを含むことができることを示す。
図29は実施例によるV-PCCユニットのペイロードを示す。
図27はV-PCCユニットのペイロード25040のシンタックスである。
V-PCCユニットタイプ(vuh_unit_type)がV-PCCパラメータセット(VPCC_VPS)であると。V-PCCユニットのペイロードはパラメータセット(vpcc_parameter_set( ))を含む。
V-PCCユニットタイプ(vuh_unit_type)がV-PCCアトラスデータ(VPCC_AD)であると、V-PCCユニットのペイロードはアトラスサブビットストリーム(atlas_sub_bitstream( ))を含む。
V-PCCユニットタイプ(vuh_unit_type)がV-PCC占有ビデオデータ(VPCC_OVD)、ジオメトリビデオデータ(VPCC_GVD)又は特質ビデオデータ(VPCC_AVD)であると、V-PCCユニットのペイロードはビデオビットストリーム(video_sub_bitstream( ))を含む。
図30は実施例によるパラメータセット(V-PCC parameter set)を示す。
図30は図27ないし図29のように、実施例によるビットストリームのユニット27020のペイロード27040がパラメータセットを含む場合、パラメータセットのシンタックスを示す。
プロファイルティアレベル(profile_tier_level()):ビットストリーム上の制限を示す。ビットストリームを復号するために必要な能力に対する制限を示す。プロファイル、ティア(tier)及びレベルは個別デコーダ実行間の相互適用性ポイントを示すために使用される(specifies restrictions on the bitstreams and hence limits on the capabilities needed to decode the bitstreams. Profiles, tiers, and levels may also be used to indicate interoperability points between individual decoder implementations)。
パラメータセットID(vps_vpcc_parameter_set_id):他のシンタックス要素による参照のためのV-PCC VPSのための識別子を提供する(provides an identifier for the V-PCC VPS for reference by other syntax elements)。
アトラスカウント(vps_atlas_count_minus1):この値に1を加えると、現在ビットストリーム内に支援されるアトラスの総数を示す(plus 1 indicates the total number of supported atlases in the current bitstream)。
アトラス数によって、以下のパラメータがさらにパラメータセットに含まれる。
フレーム幅(vps_frame_width[j]):インデックスJを有するアトラスのための整数ルーマサンプルのV-PCCフレーム幅を示す。フレーム幅はインデックスJを有するアトラスのための全てのV-PCCコンポーネントに関連する公称幅である(indicates the V-PCC frame width in terms of integer luma samples for the atlas with index j. This frame width is the nominal width that is associated with all V-PCC components for the atlas with index j)。
フレーム高さ(vps_frame_height[j]):インデックスJを有するアトラスのための整数ルーマサンプルのV-PCCフレーム高さを示す。このフレーム高さはインデックスJを有するアトラスのための全てのV-PCCコンポーネントに関連する公称高さである(indicates the V-PCC frame height in terms of integer luma samples for the atlas with index j. This frame height is the nominal height that is associated with all V-PCC components for the atlas with index j)。
MAPカウント(vps_map_count_minus1[j]):この値に1を加えると、インデックスJを有するジオメトリ及び特質データを符号化するために使用されるマップの数を示す(plus 1 indicates the number of maps used for encoding the geometry and attribute data for the atlas with index j)。
MAPカウント(vps_map_count_minus1[j])が0より大きいと、以下のパラメータがパラメータセットにさらに含まれる。
MAPカウント(vps_map_count_minus1[j])の値によって、以下のパラメータがパラメータセットにさらに含まれる。
マルチマップストリーム存在フラグ(vps_multiple_map_streams_present_flag[j]):この値が0であると、インデックスJのための全てのジオメトリ又は特質マップがシングルジオメトリ又は特質ビデオストリームのそれぞれに存在することを示す。この値が1であると、インデックスJを有するアトラスのための全てのジオメトリ又は特質マップが個別(separate)ビデオストリームに存在することを示す(equal to 0 indicates that all geometry or attribute maps for the atlas with index j are placed in a single geometry or attribute video stream, respectively. vps_multiple_map_streams_present_flag[j] equal to 1 indicates that all geometry or attribute maps for the atlas with index j are placed in separate video streams)。
マルチマップストリーム存在フラグ(vps_multiple_map_streams_present_flag[j])が1を示すと、vps_map_absolute_coding_enabled_flag[j][i]がパラメータセットにさらに含まれ、そうではないと、vps_map_absolute_coding_enabled_flag[j][i]は1を有する。
マップ絶対コーディング有効フラグ(vps_map_absolute_coding_enabled_flag[j][i]):この値が1であると、インデックスJを有するアトラスのためのインデックスIを有するジオメトリマップがどのようなマップ予測形態なしにコーディングされることを示す。この値が1であると、インデックスJを有するアトラスのためのインデックスIを有するジオメトリマップがコーディング前にコーディングされたマップより早く他のものより1番目に予測されることを示す(equal to 1 indicates that the geometry map with index i for the atlas with index j is coded without any form of map prediction. vps_map_absolute_coding_enabled_flag[j][i]equal to 0 indicates that the geometry map with index i for the atlas with index j is first predicted from another, earlier coded map, prior to coding)。
マップ絶対コーディング有効フラグ(vps_map_absolute_coding_enabled_flag[j][0])が1であると、インデックス0を有するジオメトリマップがマップ予測なしにコーディングされることを示す。
マップ絶対コーディング有効フラグ(vps_map_absolute_coding_enabled_flag[j][i])が0であり、Iが0より大きいと、vps_map_predictor_index_diff[j][i]がパラメータセットにさらに含まれる。そうではないと、vps_map_predictor_index_diff[j][i]は0になる。
マップ予測子インデックス差(vps_map_predictor_index_diff[j][i]):この値はマップ絶対コーディング有効フラグ(vps_map_absolute_coding_enabled_flag[j][i])が0であると、インデックスJを有するアトラスのためのインデックスIを有するジオメトリマップの予測子を計算するために使用される(is used to compute the predictor of the geometry map with index i for the atlas with index j when vps_map_absolute_coding_enabled_flag[j][i] is equal to 0)。
付加ビデオ存在フラグ(vps_auxiliary_video_present_flag[j]):この値が1であると、RAW又はEOMパッチデータのようなインデックスJを有するアトラスのための付加情報が付加ビデオストリームと称される個別ビデオストリームに格納されることを示す。この値が0であると、インデックスJを有するアトラスのための付加情報が個別ビデオストリームに格納されないことを示す(equal to 1 indicates that auxiliary information for the atlas with index j, i.e. RAW or EOM patch data, may be stored in a separate video stream, refered to as the auxiliary video stream. vps_auxiliary_video_present_flag[j] equal to 0 indicates that auxiliary information for the atlas with index j is not be stored in a separate video stream)。
占有情報(occupancy_information()):占有ビデオに関連する情報を含む(includes occupancy video related information)。
ジオメトリ情報(geometry_information()):ジオメトリビデオに関連する情報を含む(includes geometry video related information)。
特質情報(attribute_information()):特質ビデオに関連する情報を含む(includes attribute video related information)。
拡張存在フラグ(vps_extension_present_flag):シンタックス要素拡張長さ(vps_extension_length)がパラメータセット(vpcc_parameter_set)シンタックス構造に存在することを示す。この値が0であると、シンタックス要素拡張長さ(vps_extension_length)が存在しないことを示す(equal to 1 specifies that the syntax element vps_extension_length is present in vpcc_parameter_set syntax structure. vps_extension_present_flag equal to 0 specifies that syntax element vps_extension_length is not present)。
拡張長さ(vps_extension_length_minus1):この値に1を加えると、このシンタックス要素をフォローする拡張データ(vps_extension_data_byte)要素の数を示す(plus 1 specifies the number of vps_extension_data_byte elements that follow this syntax element)。
拡張長さ(vps_extension_length_minus1)によって、拡張データがパラメータセットにさらに含まれる。
拡張データ(vps_extension_data_byte):拡張により含まれるいかなるデータを含むことができる(may have any value)。
図31は実施例によるタイルを示す。
図31は図1のエンコーダ10002、図4のエンコーダ、図15のエンコーダ、図18の送信装置、及び図20、図21のシステムなどにより符号化されるタイルを含むアトラスフレームを示し、図1のデコーダ10008、図16及び図17のデコーダ、図19の受信装置、及び図23のシステムなどにより復号されるタイルを含むアトラスフレームを示す。
アトラスフレームは1つ又は1つ以上のタイル行及び1つ又は1つ以上のタイル列に分けられる。タイルはアトラスフレームの矩形領域である。タイルグループはアトラスフレームの複数のタイルを含む。タイル及びタイルグループは互いに区別されず、タイルグループが1つのタイルに対応することができる。ただ矩形タイルグループが支援される。このモードにおいて、タイルグループ(又はタイル)がアトラスフレームの矩形領域を集合的に複数のタイルを含む。図31は実施例によるアトラスフレームのタイル又はタイルグループ分割を示す。アトラスフレームの24個のタイル(6個のタイル列及び4個のタイル行)及び9個の矩形タイルグループが図31に示されている。実施例によるタイルグループとタイルを区別せず、タイルグループがタイルに対応する用語として使用される。
即ち、実施例によってタイルグループ31000はタイル31010に対応し、タイル31010とも称される。またタイル31010はタイルパーティションに対応し、タイルパーティションとも称される。シグナリング情報の名称もこのような相互補完的対応関係によって変更して称することができる。
図32は実施例によるアトラスビットストリームの構造を示す。
図32は図27のビットストリーム27000のユニット27020のペイロード27040がアトラスサブ-ビットストリーム32000を伝達する例示を示す。
アトラスサブビットストリームを伝達するV-PCCユニットのV-PCCユニットペイロードは、1つ又は1つ以上のサンプルストリームNALユニット32010を含む。
実施例によるアトラスサブビットストリーム32000は、サンプルストリームNALヘッダ32020及びサンプルストリームNALユニット32010を含む。
サンプルストリームNALヘッダ32020は、ユニットサイズ精度バイト(ssnh_unit_size_precision_bytes_minus1)を含む。この値に1を加えると、全てのサンプルストリームNALユニット内のNALユニットサイズ(ssnu_nal_unit_size)要素のバイト単位内精度を示す。ssnh_unit_size_precision_bytes_minus1は0~7の範囲を有する(plus 1 specifies the precision, in bytes, of the ssnu_nal_unit_size element in all sample stream NAL units. ssnh_unit_size_precision_bytes_minus1 is in the range of 0 to 7)。
サンプルストリームNALユニット32010は、NALユニットサイズ(ssnu_nal_unit_size)を含む。
NALユニットサイズ(ssnu_nal_unit_size)は、サブシーケンスNALユニットのバイト単位内サイズを示す。ssnu_nal_unit_sizeを示すために使用されるビット数は、(ssnh_unit_size_precision_bytes_minus1+1)*8である(specifies the size, in bytes, of the subsequent NAL_unit. The number of bits used to represent ssnu_nal_unit_size is equal to (ssnh_unit_size_precision_bytes_minus1+1)*8)。
図33は実施例によるNALユニットを示す。
図33は図32のNALユニット(nal unit)のシンタックスである。
NALユニットはNALユニットヘッダ(nal_unit_header( ))、バイト数(NumBytesInRbsp)などを含む。
バイト数(NumBytesInRbsp):NALユニットのペイロードに該当するバイトであり、初期値は0にセットされる。
NALユニットヘッダは、NALフォービデンゼロビット(nal_forbidden_zero_bit)、NALユニットタイプ(nal_unit_type)、NALレイヤID(nal_layer_id)、NAL臨時ID(nal_temporal_id_plus1)などを含む。
NALフォービデンゼロビット(nal_forbidden_zero_bit):NALユニットのエラー検出のために使用されるフィールドであり、必ず0である。
NALユニットタイプ(nal_unit_type):図32のように、NALユニット内に含まれたRBSPデータ構造のタイプを示す。
NALレイヤID(nal_layer_id):ACL NALユニットが属するレイヤの識別子又はNON-ACL NALユニットが適用されるレイヤの識別子を示す(specifies the identifier of the layer to which an ACL NAL unit belongs or the identifier of a layer to which a non-ACL NAL unit applies)。
NAL臨時ID(nal_temporal_id_plus1):この値から1を引くと、NALユニットの臨時識別子を示す(minus 1 specifies a temporal identifier for the NAL unit)。
図34は実施例によるNALユニットのタイプを示す。
図34は図32のサンプルストリームNALユニット32010のNALユニットのNALユニットヘッダに含まれるNALユニットタイプの種類を示す。
NALトレイル(NAL_TRAIL):NON-TSA、NON STSAトレイリングアトラスフレームのコーディングされたタイルグループがNALユニットに含まれる。NALユニットのRBSPシンタックス構造はアトラスタイルグループレイヤ(atlas_tile_group_layer_rbsp( ))又はアトラスタイルレイヤ(atlas_tile_layer_rbsp( ))である。NALユニットのタイプクラスはACLである。実施例によってタイルグループはタイルに対応する。
NAL TSA:TSAアトラスフレームのコーディングされたタイルグループがNALユニットに含まれる。NALユニットのRBSPシンタックス構造はアトラスタイルグループレイヤ(atlas_tile_group_layer_rbsp( ))又はアトラスタイルレイヤ(atlas_tile_layer_rbsp( ))である。NALユニットのタイプクラスはACLである。
NAL_STSA:STSAアトラスフレームのコーディングされたタイルグループがNALユニットに含まれる。NALユニットのRBSPシンタックス構造はアトラスタイルグループレイヤ(atlas_tile_group_layer_rbsp( ))又はアトラスタイルレイヤ(atlas_tile_layer_rbsp( ))である。NALユニットのタイプクラスはACLである。
NAL_RADL:RADLアトラスフレームのコーディングされたタイルグループがNALユニットに含まれる。NALユニットのRBSPシンタックス構造はアトラスタイルグループレイヤ(atlas_tile_group_layer_rbsp( ))又はアトラスタイルレイヤ(atlas_tile_layer_rbsp( ))である。NALユニットのタイプクラスはACLである。
NAL_RASL:RASLアトラスフレームのコーディングされたタイルグループがNALユニットに含まれる。NALユニットのRBSPシンタックス構造はアトラスタイルグループレイヤ(atlas_tile_group_layer_rbsp( ))又はアトラスタイルレイヤ(atlas_tile_layer_rbsp( ))である。NALユニットのタイプクラスはACLである。
NAL_SKIP:スキップアトラスフレームのコーディングされたタイルグループがNALユニットに含まれる。NALユニットのRBSPシンタックス構造はアトラスタイルグループレイヤ(atlas_tile_group_layer_rbsp( ))又はアトラスタイルレイヤ(atlas_tile_layer_rbsp( ))である。NALユニットのタイプクラスはACLである。
NAL_RSV_ACL_6ないしNAL_RSV_ACL_9:予約されたIRAP ACL NALユニットタイプがNALユニットに含まれる。NALユニットのタイプクラスはACLである。
NAL_BLA_W_LP、NAL_BLA_W_RADL、NAL_BLA_N_LP:BLAアトラスフレームのコーディングされたタイルグループがNALユニットに含まれる。NALユニットのRBSPシンタックス構造はアトラスタイルグループレイヤ(atlas_tile_group_layer_rbsp( ))又はアトラスタイルレイヤ(atlas_tile_layer_rbsp( ))である。NALユニットのタイプクラスはACLである。
NAL_GBLA_W_LP、NAL_GBLA_W_RADL、NAL_GBLA_N_LP:GBLAアトラスフレームのコーディングされたタイルグループがNALユニットに含まれる。NALユニットのRBSPシンタックス構造はアトラスタイルグループレイヤ(atlas_tile_group_layer_rbsp( ))又はアトラスタイルレイヤ(atlas_tile_layer_rbsp( ))である。NALユニットのタイプクラスはACLである。
NAL_IDR_W_RADL、NAL_IDR_N_LP:IDRアトラスフレームのコーディングされたタイルグループがNALユニットに含まれる。NALユニットのRBSPシンタックス構造はアトラスタイルグループレイヤ(atlas_tile_group_layer_rbsp( ))又はアトラスタイルレイヤ(atlas_tile_layer_rbsp( ))である。NALユニットのタイプクラスはACLである。
NAL_GIDR_W_RADL、NAL_GIDR_N_LP:GIDRアトラスフレームのコーディングされたタイルグループがNALユニットに含まれる。NALユニットのRBSPシンタックス構造はアトラスタイルグループレイヤ(atlas_tile_group_layer_rbsp( ))又はアトラスタイルレイヤ(atlas_tile_layer_rbsp( ))である。NALユニットのタイプクラスはACLである。
NAL_CRA:CRAアトラスフレームのコーディングされたタイルグループがNALユニットに含まれる。NALユニットのRBSPシンタックス構造はアトラスタイルグループレイヤ(atlas_tile_group_layer_rbsp( ))又はアトラスタイルレイヤ(atlas_tile_layer_rbsp( ))である。NALユニットのタイプクラスはACLである。
NAL_GCRA:GCRAアトラスフレームのコーディングされたタイルグループがNALユニットに含まれる。NALユニットのRBSPシンタックス構造はアトラスタイルグループレイヤ(atlas_tile_group_layer_rbsp( ))又はアトラスタイルレイヤ(atlas_tile_layer_rbsp( ))である。NALユニットのタイプクラスはACLである。
NAL_IRAP_ACL_22、NAL_IRAP_ACL_23:予約されたIRAP ACL NALユニットタイプがNALユニットに含まれる。NALユニットのタイプクラスはACLである。
NAL_RSV_ACL_24ないしNAL_RSV_ACL_31:予約されたnon-IRAP ACL NALユニットタイプがNALユニットに含まれる。NALユニットのタイプクラスはACLである。
NAL_ASPS:アトラスシーケンスパラメータセットがNALユニットに含まれる。NALユニットのRBSPシンタックス構造はアトラスシーケンスパラメータセット(atlas_sequence_parameter_set_rbsp( ))である。NALユニットのタイプクラスはnon-ACLである。
NAL_AFPS:アトラスフレームパラメータセットがNALユニットに含まれる。NALユニットのRBSPシンタックス構造はアトラスフレームパラメータセット(atlas_ frame _parameter_set_rbsp( ))である。NALユニットのタイプクラスはnon-ACLである。
NAL_AUD:アクセスユニットデリミター(Access unit delimiter)がNALユニットに含まれる。NALユニットのRBSPシンタックス構造はアクセスユニットデリミター(access_unit_delimiter_rbsp( ))である。NALユニットのタイプクラスはnon-ACLである。
NAL_VPCC_AUD:V-PCCアクセスユニットデリミターがNALユニットに含まれる。NALユニットのRBSPシンタックス構造はアクセスユニットデリミター(access_unit_delimiter_rbsp( ))である。NALユニットのタイプクラスはnon-ACLである。
NAL_EOS:NALユニットタイプがエンド・オブ・シーケンスである。NALユニットのRBSPシンタックス構造はエンド・オブ・シーケンス(end_of_seq_rbsp( ))である。NALユニットのタイプクラスはnon-ACLである。
NAL_EOB:NALユニットタイプがエンド・オブ・ビットストリームである。NALユニットのRBSPシンタックス構造はエンド・オブ・アトラスサブビットストリーム(end_of_atlas_sub_bitstream_rbsp( ))である。NALユニットのタイプクラスはnon-ACLである。
NAL_FD Filler:NALユニットタイプがフィルターデータ(filler_data_rbsp( ))である。NALユニットのタイプクラスはnon-ACLである。
NAL_PREFIX_NSEI、NAL_SUFFIX_NSEI:NALユニットタイプが非必須補足強化情報(Non-essential supplemental enhancement information)である。NALユニットのRBSPシンタックス構造はSEI(sei_rbsp( ))である。NALユニットのタイプクラスはnon-ACLである。
NAL_PREFIX_ESEI、NAL_SUFFIX_ESEI:NALユニットタイプが必須補足強化情報(Essential supplemental enhancement information)である。NALユニットのRBSPシンタックス構造はSEI(sei_rbsp( ))である。NALユニットのタイプクラスはnon-ACLである。
NAL_AAPS:NALユニットタイプがアトラス適応パラメータセット(Atlas adaptation parameter set)である。NALユニットのRBSPシンタックス構造はアトラス適応パラメータセット(atlas_adaptation_parameter_set_rbsp( ))である。NALユニットのタイプクラスはnon-ACLである。
NAL_RSV_NACL_44ないしNAL_RSV_NACL_47:NALユニットタイプが予約されたnon-ACL NALユニットタイプである。NALユニットのタイプクラスはnon-ACLである。
NAL_UNSPEC_48ないしNAL_UNSPEC_63:NALユニットタイプが未記述のnon-ACL NALユニットタイプである。NALユニットのタイプクラスはnon-ACLである。
図35は実施例によるアトラスシーケンスパラメータセット(atlas sequence parameter set)を示す。
図35はNALユニットタイプがアトラスシーケンスパラメータである場合、NALユニットに含まれるRBSPデータ構造のシンタックスを示す。
各々のサンプルストリームNALユニットはアトラスパラメータセット、例えば、ASPS、AAPS、AFPS、1つ又は1つ以上のアトラスタイルグループ情報及びSEIのいずれかを含む。
ASPSは各々のタイルグループ(タイル)ヘッダ内のシンタックス要素として参照されるASPS内のシンタックス要素のコンテンツにより決定されるゼロ又は1つ以上の全体コーディングされたアトラスシーケンス(CASs)に適用されるシンタックス要素を含む。
ASPSアトラスシーケンスパラメータセットID(asps_atlas_sequence_parameter_set_id):他のシンタックス要素による参照のためのアトラスシーケンスパラメータセットのための識別子を提供する。
ASPSフレーム幅(asps_frame_width):サンプルがビデオコンポーネントのルーマサンプルに対応する。サンプルの整数の個数の観点でアトラスフレーム幅を示す(indicates the atlas frame width in terms of integer number of samples, where a sample corresponds to a luma sample of a video component)。
ASPSフレーム高さ(asps_frame_height):サンプルがビデオコンポーネントのルーマサンプルに対応する、サンプルの整数の個数の観点でアトラスフレーム高さを示す(indicates the atlas frame height in termS of integer number of samples, where a sample corresponds to a luma sample of a video component)。
ASPSログパッチパッキングブロックサイズ(asps_log2_patch_packing_block_size):アトラス内パッチの水平及び垂直位置のために使用される変数PatchPackingBlockSizeの値を示す(specifies the value of the variable PatchPackingBlockSize, that is used for the horizontal and vertical placement of the patches within the atlas)。
ASPSログマックスアトラスフレームオーダーカウントlsb(asps_log2_max_atlas_frame_order_cnt_lsb_minus4):アトラスフレームオーダーカウントのための復号プロセス内で使用される変数MaxAtlasFrmOrderCntLsbの変数を示す(specifies the value of the variable MaxAtlasFrmOrderCntLsb that is used in the decoding process for the atlas frame order count)。
ASPSマックス復号アトラスフレームバッファリング(asps_max_dec_atlas_frame_buffering_minus1):この値に1を加えると、アトラスフレームバッファー記憶装置に対する復号されたアトラスフレームの最大値が要求されるサイズを示す(plus 1 specifies the maximum required size of the decoded atlas frame buffer for the CAS in units of atlas frame storage buffers)。
ASPS長期参照アトラスフレームフラグ(asps_long_term_ref_atlas_frames_flag):この値が0であると、CAS内のコーディングされたアトラスフレームのインター予測のために使用される長期参照アトラスフレームがないことを示す。この値が1であると、長期参照アトラスフレームがCAS内の1つ又は1つ以上のコーディングされたアトラスフレームのインター予測を利用できることを示す(equal to 0 specifies that no long term reference atlas frame is used for inter prediction of any coded atlas frame in the CAS. asps_long_term_ref_atlas_frames_flag equal to 1 specifies that long term reference atlas frames may be used for inter prediction of one or more coded atlas frames in the CAS)。
ASPS参照アトラスフレームリスト数(asps_num_ref_atlas_frame_lists_in_asps):アトラスシーケンスパラメータセットに含まれた参照リスト構造(ref_list_struct(rlsIdx))シンタックス構造の数を示す(specifies the number of the ref_list_struct(rlsIdx) syntax structures included in the atlas sequence parameter set)。
asps_num_ref_atlas_frame_lists_in_aspsが0より大きいと、atgh_ref_atlas_frame_list_sps_flagをアトラスタイルグループ(タイル)ヘッダが含む。
asps_num_ref_atlas_frame_lists_in_aspsが1より大きいと、ATGH_ref_atlas_frame_list_idxがアトラスタイルグループ(タイル)ヘッダに含まれる。
NumLtrAtlasFrmEntries値ごとにatgh_additional_afoc_lsb_present_flag[j]がアトラスタイルグループ(タイル)ヘッダに含まれる。
ASPS参照アトラスフレームリスト数(asps_num_ref_atlas_frame_lists_in_asps)だけ参照リスト構造(ref_list_struct(i))がアトラスシーケンスパラメータセット内に含まれる。
ASPSエイトオリエンテーションフラグ(asps_use_eight_orientations_flag):この値が0であると、インデックスIを有するフレーム内のインデックスJを有するパッチのパッチオリエンテーションインデックス(pdu_orientation_index[i][j])が0~1(含み)の範囲内であることを示す。この値が1であると、インデックスIを有するフレーム内のインデックスJを有するパッチのためのパッチオリエンテーションインデックス(pdu_orientation_index[i][j])が0~7(含み)の範囲であることを示す(equal to 0 specifies that the patch orientation index for a patch with index j in a frame with index i, pdu_orientation_index[i][j], is in the range of 0 to 1, inclusive. asps_use_eight_orientations_flag equal to 1 specifies that the patch orientation index for a patch with index j in a frame with index i, pdu_orientation_index[i][j], is in the range of 0 to 7, inclusive)。
ASPS延長プロジェクション有効フラグ(asps_extended_projection_enabled_flag):この値が0であると、パッチプロジェクション情報が現在アトラスタイルグループ又はアトラスタイルに対してシグナリングされないことを示す。この値が1であると、現在アトラスタイルグループ又はアトラスタイルに対するパッチプロジェクション情報がシグナリングされることを示す(equal to 0 specifies that the patch projection information is not signalled for the current atlas tile group. asps_extended_projection_enabled_flag equal to 1 specifies that the patch projection information is signalled for the current atlas tile group)。
タイプ(atgh_type)がスキップタイル(SKIP_TILE_GRP)ではない場合、以下の要素がアトラスタイルグループ(又はタイル)ヘッダに含まれる。
ASPS垂直軸制限量子化有効フラグ(asps_normal_axis_limits_quantization_enabled_flag):この値が1であると、量子化パラメータがパッチデータユニット、統合パッチデータユニット又はインターパッチデータユニットの垂直軸関連要素を量子化するために使用され、シグナリングされることを示す。この値が0であると、パッチデータユニット、統合パッチデータユニット又はインターパッチデータユニットの垂直軸関連要素上に量子化が適用されないことを示す(equal to 1 specifies that quantization parameters shall be signalled and used for quantizing the normal axis related elements of a patch data unit, a merge patch data unit, or an inter patch data unit. If asps_normal_axis_limits_quantization_enabled_flag is equal to 0, then no quantization is applied on any normal axis related elements of a patch data unit, a merge patch data unit, or an inter patch data unit)。
asps_normal_axis_limits_quantization_enabled_flagが1であると、atgh_pos_min_z_quantizerがアトラスタイルグループ(又はタイル)ヘッダに含まれる。
ASPS垂直軸マックスデルタ値有効フラグ(asps_normal_axis_max_delta_value_enabled_flag):この値が1であると、インデックスJを有するフレームのインデックスIを有するパッチのジオメトリ情報内に存在し得る垂直軸の最大値公称シフト値が各パッチデータユニット、統合パッチデータユニット又はインターパッチデータユニットに対するビットストリーム内に指示されることを示す。この値が0であると、インデックスJを有するフレーム内のインデックスIを有するパッチのジオメトリ情報内に存在し得る垂直軸の最大値公称シフト値が各パッチデータユニット、統合パッチデータユニット又はインターパッチデータユニットに対するビットストリーム内に指示されないことを示す(equal to 1 specifies that the maximum nominal shift value of the normal axis that may be present in the geometry information of a patch with index i in a frame with index j will be indicated in the bitstream for each patch data unit, a merge patch data unit, or an inter patch data unit. If asps_normal_axis_max_delta_value_enabled_flag is equal to 0 theN the maximum nominal Shift value of the normal axis that may be present in the geometry information of a patch with index i in a frame with index j shall not be be indicated in the bitstream for each patch data unit, a merge patch data unit, or an inter patch data unit)。
asps_normal_axis_max_delta_value_enabled_flagが1であると、atgh_pos_delta_max_z_quantizerがアトラスタイルグループ(又はタイル)ヘッダに含まれる。
ASPS除去重複ポイント有効フラグ(asps_remove_duplicate_point_enabled_flag):この値が1であると、重複ポイントが行インデックスマップから他のポイントと同一の2D及び3Dジオメトリ座標を有するポイントであるところで、重複ポイントが現在アトラスに対して再構成されないことを示す。この値が0であると、全てのポイントが再構成されることを示す(equal to 1 indicates that duplicated points are not econstructed for the current atlas, where a duplicated point is a point with the same 2D and 3D geometry coordinates as another point from a Lower index map. asps_remove_duplicate_point_enabled_flag equal to 0 indicates that all points are reconstructed)。
ASPSマックス復号アトラスフレームバッファリング(asps_max_dec_atlas_frame_buffering_minus1):この値に1を加えると、アトラスフレームバッファー記憶装置のユニット内のCASのための復号されたアトラスフレームバッファーの最大値要求サイズを示す(plus 1 specifies the maximum required size of the decoded atlas frame buffer for the CAS in units of atlas frame storage buffers)。
ASPSピクセルデインターリービングフラグ(asps_pixel_deinterleaving_flag)この値が1であると、現在アトラスのための復号されたジオメトリ及び特質ビデオが2つのマップから空間的にインターリービングされたピクセルを含むことを示す。この値が0であると、現在アトラスに対応する復号されたジオメトリ及び特質ビデオがただシングルマップからピクセルを含むことを示す(equal to 1 indicates that the decoded geometry and attribute videos for the current atlas contain spatially interleaved pixels from two maps. asps_pixel_deinterleaving_flag equal to 0 indicates that the decoded geometry and attribute videos corresponding to the current atlas contain pixelS from only a single map)。
ASPSパッチ優先順位オーダーフラグ(asps_patch_precedence_order_flag):この値が1であると、現在アトラスに対するパッチ優先順位(優先度)が復号順と同一であることを示す。この値が0であると、現在アトラスに対するパッチ優先順位が復号順の逆であることを示す(equal to 1 indicates that patch precedence for the current atlas is the same as the decoding order. asps_patch_precedence_order_flag equal to 0 indicates that patch precedence for the current atlas is the reverse of the decoding order)。
ASPSパッチサイズ量子化器存在フラグ(asps_patch_size_quantizer_present_flag):この値が1であると、パッチサイズ量子化パラメータがアトラスタイルグループヘッダ又はアトラスタイルヘッダに存在することを示す。この値が0であると、パッチサイズ量子化パラメータが存在しないことを示す(equal to 1 indicates that the patch size quantization parameters are present in an atlas tile group header. If asps_patch_size_quantizer_present_flag is equal to 0, then the patch size quantization parameters are not present)。
asps_patch_size_quantizer_present_flagが1であると、atgh_patch_size_x_info_quantizer及びatgh_patch_size_y_info_quantizerがアトラスタイルグループ(又はタイル)ヘッダに含まれる。
ASPS EOMパッチ有効フラグ(asps_eom_patch_enabled_flag):この値が1であると、現在アトラスに対する復号された占有マップビデオが2つの深さマップ間の中間深さポジションが占有されているか否かに関連する情報を含むことを示す。この値が0であると、復号された占有マップビデオが2つの深さマップ間の中間深さポジションが占有されているか否かに関連する情報を含まないことを示す(equal to 1 indicates that the decoded occupancy map video for the current atlas contains information related to whether interMediate depth positions between two depth maps are occupied. ASPS_eom_patch_enabled_flag equal to 0 indicates that the decoded occupancy map video does not contain information related to whether InterMediate depth positions between two depth maps are occupied)。
ASPS行パッチ有効フラグ(asps_raw_patch_enabled_flag):この値が1であると、現在アトラスに対する復号されたジオメトリ及び特質ビデオがRAWコーディングされたポイントに関連する情報を含むことを示す。この値が0であると、復号されたジオメトリ及び特質ビデオがRAWコーディングされたポイントに関連する情報を含まないことを示す(equal to 1 indicates that the decoded geometry and attribute videos for the current atlas contains information related to RAW coded points. asps_raw_patch_enabled_flag equal to 0 indicates that the decoded geometry and attribute videos do not contain information related to RAW Coded points)。
ASPS EOMパッチ有効フラグ(asps_eom_patch_enabled_flag)又はASPS行パッチ有効フラグ(asps_raw_patch_enabled_flag)が1であると、APSP付加ビデオ有効フラグ(asps_auxiliary_video_enabled_flag)がアトラスシーケンスパラメータセットシンタックスに含まれる。
APSP付加ビデオ有効フラグ(asps_auxiliary_video_enabled_flag):この値が1であると、RAW及びEOMパッチタイプに関連する情報が付加ビデオサブビットストリーム内に位置することを示す。この値が0であると、RAW及びEOMパッチタイプに関連する情報がただ最初のビデオサブビットストリーム内だけに位置することを示す(equal to 1 indicates that information associated with RAW and EOM patch types could be placed in auxiliary video sub-bitstreams. asps_auxiliary_video_enabled_flag equal to 0 indicates that information associated with RAW and EOM patch types can only be placed in Primary video sub-bitstreams)。
ASPSポイントローカル復元有効フラグ(asps_point_local_reconstruction_enabled_flag):この値が1であると、ポイントローカル再構成モード情報が現在アトラスに対するビットストリーム内に存在することを示す。この値が0であると、ポイントローカル再構成モードに関連する情報が現在アトラスに対するビットストリーム内に存在しないことを示す(equal to 1 indicates that point local reconstruction mode information may be present in the bitstream for the current atlas. asps_point_local_reconstruction_enabled_flag equal to 0 indicates that no information related to the point local reconstruction mode is present in the bitstream for the current atlas)。
ASPSポイントローカル復元有効フラグ(asps_point_local_reconstruction_enabled_flag)が1であると、ASPSポイントローカル再構成情報(asps_point_local_reconstruction_information)がアトラスシーケンスパラメータセットに伝達される。
ASPSマップカウント(asps_map_count_minus1):この値に1を加えると、現在アトラスに対するジオメトリ及び特質データを符号化するために使用されるマップ数を示す(plus 1 indicates the number of maps that may be used for encoding the geometry and attribute data for the current atlas)。
ASPSピクセルデインターリービング有効フラグ(asps_pixel_deinterleaving_enabled_flag):この値が1であると、現在アトラスに対する復号されたジオメトリ及び特質ビデオが空間的にインターリービングされたピクセルを含むことを示す。この値が0であると、現在アトラスに対する復号されたジオメトリ及び特質ビデオがただシングルマップからピクセルを含むことを示す(equal to 1 indicates that the decoded geometry and attribute videos for the current atlas contain spatially interleaved pixels. asps_pixel_deinterleaving_flag equal to 0 indicates that the decoded geometry and attribute videos corresponding to the current atlas contain pixelS from only a single map)。
ASPSピクセルデインターリービングマップフラグ(asps_pixel_deinterleaving_map_flag[i]):この値が1であると、現在アトラス内のインデックスiを有するマップに対応する復号されたジオメトリ及び特質ビデオが2つのマップに対応する空間的にインターリービングされたピクセルを含むことを示す。この値が0であると、現在アトラス内のインデックスiのマップに対応する復号されたジオメトリ及び特質ビデオがシングルマップに対応するピクセルを含むことを示す(equal to 1 indicates that decoded geometry and attribute videos correpsonding to map with index i in the current atlas contain spatially interleaved pixelS corresponding to two maps. asps_pixel_deinterleaving_map_flag[i] equal to 0 indicates that decoded geometry and attribute videos corresponding to map index i in the current atlas contain pixelS corresponding to a single map)。
ASPSピクセルデインターリービングマップフラグ(asps_pixel_deinterleaving_map_flag[i])が1であると、ASPSマップカウント(asps_map_count_minus1)の値によって、ASPSピクセルデインターリービングマップフラグ(asps_pixel_deinterleaving_map_flag[i])がアトラスシーケンスパラメータセットに伝達される。
ASPS EOMパッチ有効フラグ(asps_eom_patch_enabled_flag)及びASPSマップカウント(asps_map_count_minus1)が1であると、ASPS EOM固定ビットカウント(asps_eom_fix_bit_count_minus1)がアトラスシーケンスパラメータセットに伝達される。
ASPS EOM固定ビットカウント(asps_eom_fix_bit_count_minus1):この値に1を加えると、EOMコードワードのビット内のサイズを示す(plus 1 indicates the size in bits of the EOM codeword)。
ASPSピクセルデインターリービング有効フラグ(asps_pixel_deinterleaving_enabled_flag)又はASPSポイントローカル復元有効フラグ(asps_point_local_reconstruction_enabled_flag)が1であると、ASPS表面厚さ(asps_surface_thickness_minus1)がアトラスシーケンスパラメータセットに伝達される。
ASPS表面厚さ(asps_surface_thickness_minus1):この値に1を加えると、asps_pixel_deinterleaving_enabled_flag又はasps_point_local_reconstruction_enabled_flagが1である場合、明確にコーディングされた深さ値及び補間深さ値の間の最大絶対値の差を示す(plus 1 specifies the maximum absolute difference between an explicitly coded depth value and interpolated depth value when asps_pixel_deinterleaving_enabled_flag or asps_point_local_reconstruction_enabled_flag is equal to 1)。
ASPS vuiパラメータ存在フラグ(asps_vui_parameters_present_flag):この値が1であると、vui_parameters( )シンタックス構造が存在することを示す。この値が0であると、vui_parameters( )シンタックス構造が存在しないことを示す(equal to 1 specifies that the vui_parameters( ) syntax structure is present. asps_vui_parameters_present_flag equal to 0 specifies that the vui_parameters( ) syntax structure is not present)。
ASPS拡張フラグ(asps_extension_flag):この値が0であると、asps_extension_data_flagシンタックス要素がASPS RBSP シンタックス構造内に存在しないことを示す(equal to 0 specifies that no asps_extension_data_flag syntax elements are present in the ASPS RBSP syntax structure)。
ASPS拡張データフラグ(asps_extension_data_flag):拡張のためのデータがASPS RBSPシンタックス構造内に含まれることを示す。
終了ビット(rbsp_trailing_bits):RBSPデータの終わりを指示するためのストップビット(stop bit)である1を追加した後、バイトアライン(byte align)のために0で残りのビットを満たすために使用される。
図36は実施例によるアトラスフレームパラメータセット(atlas frame parameter set)を示す。
図36は図34のように、NALユニットタイプがNAL_AFPSである場合、NALユニットに含まれたアトラスフレームパラメータセット(Atlas frame parameter set)のシンタックスである。
アトラスフレームパラメータセット(atlas frame parameter set, AFPS)は、ゼロ又は1つ以上の全体コーディングされたアトラスフレームに適用されるシンタックス要素を含むシンタックス構造を含む。
AFPSアトラスフレームパラメータセットID(afps_atlas_frame_parameter_set_id):他のシンタックス要素による参照のためのアトラスフレームパラメータセットを識別する。AFPSのアトラスフレームパラメータセットによりシンタックス要素により参照できる識別子を提供する。
AFPSアトラスシーケンスパラメータセットID(afps_atlas_sequence_parameter_set_id):アクティブアトラスシーケンスパラメータセットの値を示す(specifies the value of asps_atlas_sequence_parameter_set_id for the active atlas sequence parameter set)。
アトラスフレームタイル情報(atlas_frame_tile_information():図35を参照しながら説明する。
AFPSアウトプットフラグ存在フラグ(afps_output_flag_present_flag):この値が1であると、アトラスタイルグループヘッダフレームアウトプットフラグ(atgh_frame_output_flag)又はアトラスタイルヘッダフレームアウトプットフラグ(ath_frame_output_flag)シンタックス要素が関連タイルグループヘッダ又はタイルヘッダに存在することを示す。この値が0であると、アトラスタイルグループヘッダフレームアウトプットフラグ(atgh_frame_output_flag)又はアトラスタイルヘッダフレームアウトプットフラグ(ath_frame_output_flag)シンタックス要素が関連タイルグループヘッダ又はタイルヘッダに存在しないことを示す(equal to 1 indicates that the atgh_frame_output_flag syntax element is present in the associated tile group headers. afps_output_flag_present_flag equal to 0 indicates that the atgh_frame_output_flag syntax element is not present in the associated tile group headers)。
AFPS参照インデックス数(afps_num_ref_idx_default_active_minus1):この値に1を加えると、atgh_num_ref_idx_active_override_flagが0であるタイルグループ又はタイルに対する変数NumRefIdxActiveの推論値を示す(plus 1 specifies the inferred value of the variable NumRefIdxActive for the tile group with atgh_num_ref_idx_active_override_flag equal to 0)。
AFPS追加変数(afps_additional_lt_afoc_lsb_len):アトラスフレームの参照のための復号プロセス内で使用される変数MaxLtAtlasFrmOrderCntLsbの値を示す(specifies the value of the variable MaxLtAtlasFrmOrderCntLsb that is used in the decoding process for reference atlas frame)。
AFPS 3DポジションXビットカウント(afps_3d_pos_x_bit_count_minus1):この値に1を加えると、afps_atlas_frame_parameter_set_idを称するアトラスタイルグループ又はアトラスタイル内のインデックスJを有するパッチのpdu_3d_pos_x[j]の固定長さ表現内のビット数を示す(plus 1 specifies the number of bits in the fixed-length representation of pdu_3d_pos_x[j] of patch with index j in an atlas tile group that refers to afps_atlas_frame_parameter_set_id)。
AFPS 3DポジションYビットカウント(afps_3d_pos_y_bit_count_minus1):この値に1を加えると、afps_atlas_frame_parameter_set_idを称するアトラスタイルグループ又はアトラスタイル内のインデックスJを有するパッチのpdu_3d_pos_y[j]の固定長さ表現内のビット数を示す(plus 1 specifies the number of bits in the fixed-length representation of pdu_3d_pos_y[j] of patch with index j in an atlas tile group that refers to afps_atlas_frame_parameter_set_id)。
AFPS LODモード有効フラグ(afps_lod_mode_enabled_flag):この値が1であると、LODパラメータがパッチ内に存在し得ることを示す。この値が0であると、LODパラメータがパッチ内に存在しないことを示す(equal to 1 indicates that the LOD parameters may be present in a patch. afps_lod_mode_enabled_flag equal to 0 indicates that the LOD parameters are not be present in a patch)。
AFPSオーバーライドEOMフラグ(afps_override_eom_for_depth_flag):この値が1であると、afps_eom_number_of_patch_bit_count_minus1及びafps_eom_max_bit_count_minus1の値が明示的にビットストリーム内に存在することを示す。この値が0であると、afps_eom_number_of_patch_bit_count_minus1及びafps_eom_max_bit_count_minus1の値が暗示的に誘導されることを示す(equal to 1 indicates that the values of afps_eom_number_of_patch_bit_count_minus1 and afps_eom_max_bit_count_minus1 is explicitly present in the bitstream. afps_override_eom_for_depth_flag equal to 0 indicates that the values of afps_eom_number_of_patch_bit_count_minus1 and afps_eom_max_bit_count_minus1 are implicitly derived)。
AFPS EOMパッチビットカウント数(afps_eom_number_of_patch_bit_count_minus1):アトラスフレームパラメータセットに関連するアトラスフレーム内のEOM特質パッチ内に連関するジオメトリパッチの数を示すために使用されるビット数を示す(plus 1 specifies the number of bits used to represent the number of geometry patches associated in an EOM attribute patch in an atlas frame that is associated with this atlas frame parameter set)。
AFPS EOMマックスビットカウント(afps_eom_max_bit_count_minus1):このアトラスフレームパラメータセットに連関するアトラスフレーム内のEOM特質パッチに連関するジオメトリパッチごとのEOMポイントの数を示すために使用されるビット数を示す(plus 1 specifies the number of bits used to represent the number of EOM points per geometry patch associated with an EOM attribute patch in an atlas frame that is associated with this atlas frame parameter set)。
AFPS RAW 3Dポジションビットカウント明示モードフラグ(afps_raw_3d_pos_bit_count_explicit_mode_flag):この値が1であると、rpdu_3d_pos_x、rpdu_3d_pos_y及びrpdu_3d_pos_zの固定長さ表現内のビット数がafps_atlas_frame_parameter_set_idを称するアトラスタイルグループヘッダ又はアトラスタイルヘッダ内のatgh_raw_3d_pos_axis_bit_count_minus1又はath_raw_3d_pos_axis_bit_count_minus1により明確にコーディングされることを示す。この値が0であると、atgh_raw_3d_pos_axis_bit_count_minus1又はath_raw_3d_pos_axis_bit_count_minus1の値が暗示的に誘導されることを示す(equal to 1 indicates that the number of bits in the fixed-length representation of rpdu_3d_pos_x, rpdu_3d_pos_y, and rpdu_3d_pos_z is explicitly coded by atgh_raw_3d_pos_axis_bit_count_minus1 in the atlas tile group header that refers to afps_atlas_frame_parameter_set_id. afps_raw_3d_pos_bit_count_explicit_mode_flag equal to 0 indicates the value of atgh_raw_3d_pos_axis_bit_count_minus1 is implicitly derived)。
afps_raw_3d_pos_bit_count_explicit_mode_flagが1であると、atgh_raw_3d_pos_axis_bit_count_minus1がアトラスタイルグループ(又はタイル)ヘッダに含まれる。
AFPS拡張フラグ(afps_extension_flag):この値が0であると、AFPS RBSPシンタックス構造内のafps_extension_data_flagシンタックス要素が存在しないことを示す(equal to 0 specifies that no afps_extension_data_flag syntax elements are present in the AFPS RBSP syntax structure)。
AFPS延長データフラグ(afps_extension_data_flag):拡張関連データを含む。
図37は実施例によるアトラスフレームタイル情報(atlas_frame_tile_information)を示す。
図37は図36に含まれたアトラスフレームタイル情報のシンタックスである。
AFTIアトラスフレーム内にシングルタイルフラグ(afti_single_tile_in_atlas_frame_flag):この値が1であると、AFPSを参照する各々のアトラスフレーム内にただ1つのタイルが存在することを示す。この値が0であると、AFPSを参照する各々のアトラスフレーム内に1つ以上のタイルが存在することを示す(equal to 1 specifies that there is only one tile in each atlas frame referring to the AFPS. afti_single_tile_in_atlas_frame_flag equal to 0 specifies that there is more than one tile in each atlas frame referring tお the AFPS)。
AFTI均一タイル空間フラグ(afti_uniform_tile_spacing_flag):この値が1であると、タイル列及び行の境界がアトラスフレームに対して均一に分配され、afti_tile_cols_width_minus1及びafti_tile_rows_height_minus1、シンタックス要素をそれぞれ使用してシグナリングされることを示す。この値が0であると、タイル列及び行の境界がアトラスフレームに対して均一に分配されるか或いは分配されず、afti_num_tile_columns_minus1、afti_num_tile_rows_minus1、a list of syntax element pairs afti_tile_column_width_minus1[i]、afti_tile_row_height_minus1[i]などのシンタックス要素を使用してシグナリングされることを示す。
AFTIタイル列の幅(afti_tile_cols_width_minus1):この値に1を加えると、afti_uniform_tile_spacing_flagが1である場合、64サンプル単位内のアトラスフレームの最右側タイル列を除いたタイル列の幅を示す(plus 1 specifies the width of the tile columns excluding the right-most tile column of the atlas frame in units of 64 samples when afti_uniform_tile_spacing_flag is equal to 1)。
AFTIタイル行の高さ(afti_tile_rows_height_minus1):この値に1を加えると、afti_uniform_tile_spacing_flagが1である場合、64サンプル単位内のアトラスフレームの底タイル行を除いたタイル行の高さを示す(plus 1 specifies the height of the tile rows excluding the bottom tile row of the atlas frame in units of 64 samples when afti_uniform_tile_spacing_flag is equal to 1)。
AFTIタイル列の数(afti_num_tile_columns_minus1):この値に1を加えると、afti_uniform_tile_spacing_flagが0である場合、アトラスフレームを分割するタイル列の数を示す(plus 1 specifies the number of tile columns partitioning the atlas frame when afti_uniform_tile_spacing_flag is equal to 0)。
AFTIタイル行の数(afti_num_tile_rows_minus1):この値に1を加えると、afti_uniform_tile_spacing_flagが0である場合、アトラスフレームを分割するタイル行の数を示す(Plus 1 specifies the number of tile rows partitioning the atlas frame when pti_uniform_tile_spacing_flag is equal to 0)。
AFTIタイル列の幅(afti_tile_column_width_minus1[i]):この値に1を加えると、64サンプル単位内のI番目のタイル列の幅を示す(plus 1 specifies the width of the i-th tile column in units of 64 samples)。
AFTIタイル行の高さ(afti_tile_row_height_minus1[i]):この値に1を加えると、64サンプル単位内のI番目のタイル行の高さを示す(plus 1 specifies the height of the i-th tile row in units of 64 samples)。
AFTIタイルグループごとにシングルタイルフラグ(afti_single_tile_per_tile_group_flag):この値が1であると、AFPSを示す各タイルグループ(又はタイル)が一つのタイルを含むことを示す。この値が0であると、このAFPSを示すタイルグループ(又はタイル)が一つのタイル以上を含めることを示す(equal to 1 specifies that each tile group that refers to this AFPS includes one tile. afti_single_tile_per_tile_group_flag equal to 0 specifies that a tile group that refers to this AFPS may include more than one tile)。
AFTIタイルグループごとにシングルタイルフラグ(afti_single_tile_per_tile_group_flag)が0であると、afti_num_tile_groups_in_atlas_frame_minus1がアトラスフレームタイル情報内に伝達される。afti_num_tile_groups_in_atlas_frame_minus1によって、afti_top_left_tile_idx[i]及びafti_bottom_right_tile_idx_delta[i]がアトラスフレームタイル情報内に伝達される。
AFTIアトラスフレーム内タイルグループ(又はタイル)の数(afti_num_tile_groups_in_atlas_frame_minus1):AFPSを示す各々のアトラスフレーム内のタイルグループ(又はタイル)の数を示す(plus 1 specifies the number of tile groups in each atlas frame referring to the AFPS)。
AFTI左上部タイルインデックス(afti_top_left_tile_idx[i]):I番目のタイルグループ(又はタイル)の左上部コーナーに位置するタイルのタイルインデックスを示す(specifies the tile index of the tile located at the top-left corner of the i-th tile group)。
AFTI右下部タイルインデックスデルタ(afti_bottom_right_tile_idx_delta[i]):afti_top_left_tile_idx[i]及びI番目のタイルグループ(又はタイル)の右下部コーナーに位置するタイルのタイルインデックス間の差の値を示す(specifies the difference between the tile index of the tile located at the bottom-right corner of the i-th tile group and afti_top_left_tile_idx[i])。
AFTIシグナリングされるタイルグループIDフラグ(afti_signalled_tile_group_id_flag):この値が1であると、各々のタイルグループ又は各々のタイルに対するタイルグループID又はタイルIDがシグナリングされることを示す(equal to 1 specifies that the tile group ID for each tile group is signalled)。
AFTIシグナリングされるタイルグループIDフラグ(afti_signalled_tile_group_id_flag)が1であると、afti_signalled_tile_group_id_length_minus1及びafti_tile_group_id[i]がアトラスフレームタイル情報内に伝達される。
AFTIシグナリングされるタイルグループID長さ(afti_signalled_tile_group_id_length_minus1):この値に1を加えると、シンタックス要素afti_tile_group_id[i]を示すために使用されるビットの数を示す。存在する場合、シンタックス要素タイルグループヘッダ又はタイルヘッダ内にatgh_addressがあり得る(plus 1 specifies the number of bits used to represent the syntax element afti_tile_group_id[i] when present, and the syntax element atgh_address in tile group headers)。
AFTIタイルグループID(afti_tile_group_id[i]):I番目のタイルグループ(又はタイル)のIDを示す。シンタックス要素afti_tile_group_id[i]の長さはafti_signalled_tile_group_id_length_minus1に1を加えたビットである(specifies the tile group ID of the i-th tile group. The length of the afti_tile_group_id[i] syntax element is afti_signalled_tile_group_id_length_minus1 +1 bits)。
図38は実施例によるアトラス適応パラメータセット(atlas_adaptation_parameter_set_rbsp())を示す。
図38はNALユニットタイプがNAL_AAPSである場合、NALユニットが伝達するアトラス適応パラメータセットのシンタックスを示す。
AAPS RBSPは1つ又は1つ以上のコーディングされたアトラスフレームのコーディングされたタイルグループ(又はタイル)NALユニットにより示されるパラメータを含む。最大1つのAAPS RBSPが復号プロセス動作の間の所定の瞬間にアクティブであるとみなされる。特定のAAPS RBSPの活性化は以前のアクティブAAPS RBSPの非活性化の結果に繋がる(An AAPS RBSP includes parameters that can be referred to by the coded tile group NAL units of one or more coded atlas frames. At most one AAPS RBSP is considered active at any given moment during the operation of the decoding process, and the activation of any particular AAPS RBSP results in the deactivation of the previously-active AAPS RBSP)。
AAPSアトラス適応パラメータセットID(aaps_atlas_adaptation_parameter_set_id):他のシンタックス要素による参照のためのアトラス適応パラメータセットを識別する(identifies the atlas adaptation parameter set for reference by other syntax elements)。
AAPSアトラスシーケンスパラメータセットID(aaps_atlas_sequence_parameter_set_id):アクティブアトラスシーケンスパラメータセットのためのasps_atlas_sequence_parameter_set_idの値を示す(specifies the value of asps_atlas_sequence_parameter_set_id for the active atlas sequence parameter set)。
AAPSカメラパラメータ存在フラグ(aaps_camera_parameters_present_flag):この値が1であると、カメラパラメータが現在アトラス適応パラメータセット内に存在することを示す。この値が0であると、現在適応パラメータセットのためのカメラパラメータが存在しないことを示す(equal to 1 specifies that camera parameters are present in the current atlas adaptation parameter set. aaps_camera_parameters_present_flag equal to 0 specifies that camera parameters for the currrent adaptation parameter Set are not be present)。
AAPS拡張フラグ(aaps_extension_flag):この値が0であると、aaps_extension_data_flagシンタックス要素がAAPS RBSPシンタックス構造内に存在しないことを示す(equal to 0 specifies that no aaps_extension_data_flag syntax elements are present in the AAPS RBSP syntax structure)。
AAPS拡張データフラグ(aaps_extension_data_flag):拡張に関するデータを含む。
図39は実施例によるアトラスカメラパラメータ(atlas_camera_parameters)を示す。
図39は図38のアトラスカメラパラメータの具体的なシンタックスを示す。
ACPカメラモデル(acp_camera_model):現在適応パラメータセットに関連するポイントクラウドフレームのためのカメラモデルを示す(indicates the camera model for point cloud frames that are associated with the current adaptation parameter set)。
例えば、acp_camera_modelが0であると、カメラモデルがUNSPECIFIEDであることを示す。
acp_camera_modelが1であると、カメラモデルが正投影カメラモデル(Orthographic camera model)であることを示す。
acp_camera_modelが2-255であると、カメラモデルが予約される。
ACPカメラモデル(acp_camera_model)が1であると、スケール、オフセット、ローテーションに関連する以下の要素がアトラスカメラパラメータに含まれる。
ACPスケール有効フラグ(acp_scale_enabled_flag):この値が1であると、現在カメラモデルのためのスケールパラメータが存在することを示す。この値が0であると、現在カメラモデルのためのスケールパラメータが存在しないことを示す(equal to 1 indicates that scale parameters for the current camera model are present. acp_scale_enabled_flag equal to 0 indicates that scale parameters for the current camera model are not present)。
ACPスケール有効フラグ(acp_scale_enabled_flag)が1であると、d値ごとにACPスケールオン軸(acp_scale_on_axis[d])がアトラスカメラパラメータに含まれる。
ACPオフセット有効フラグ(acp_offset_enabled_flag):この値が1であると、現在カメラモデルのためのオフセットパラメータが存在することを示す。この値が0であると、現在カメラモデルのためのオフセットパラメータが存在しないことを示す(equal to 1 indicates that offset parameters for the current camera model are present. acp_offset_enabled_flag equal to 0 indicates that offset parameters for the current camera model are not present)。
ACPオフセット有効フラグ(acp_offset_enabled_flag)が1であると、d値ごとにACPオフセット軸(acp_offset_on_axis[d])要素がアトラスカメラパラメータに含まれる。
ACPローテーション有効フラグ(acp_rotation_enabled_flag):この値が1であると、現在カメラモデルのためのローテーションパラメータが存在することを示す。この値が0であると、現在カメラモデルのためのローテーションパラメータが存在しないことを示す(equal to 1 indicates that rotation parameters for the current camera model are present. acp_rotation_enabled_flag equal to 0 indicates that rotation parameters for the current camera model are not present)。
ACPスケールオン軸(acp_scale_on_axis[d]):現在カメラモデルのためのd軸に対するスケール値を示す。d値は0~2(含み)の範囲を有する。x、y、z軸のそれぞれが0,1,2値に対応する(specifies the value of the scale, Scale[d], along the d axis for the current camera model. The value of d is in the range of 0 to 2, inclusive, with the values of 0, 1, and 2 corresponding to the X, Y, and Z axis, respectively)。
ACPオフセット軸(acp_offset_on_axis[d]):0~2(含み)の範囲を有するdに対して、現在カメラモデルのためのd軸に沿ってオフセットOffset[d]値を示す。d値は0,1,2のようであり、それぞれx、y、z軸に対応する(indicates the value of the offset, Offset[d], along the d axis for the current camera model where d is in the range of 0 to 2, inclusive. The values of d equal to 0, 1, and 2 correspond to the X, Y, and Z axis, respectively)。
ACPローテーション有効フラグ(acp_rotation_enabled_flag)が1であると、以下のローテーション値がアトラスカメラパラメータに含まれる。
ACPローテーションqx(acp_rotation_qx):四元数表現を使用する現在カメラモデルのローテーションのためのxコンポーネントqXを示す(specifies the x component, qX, for the rotation of the current camera model using the quaternion representation)。
ACPローテーションqy(acp_rotation_qy):四元数表現を使用する現在カメラモデルのローテーションのためのyコンポーネントqYを示す(specifies the y component, qY, for the rotation of the current camera model using the quaternion representation)。
ACPローテーションqz(acp_rotation_qz):四元数表現を使用する現在カメラモデルのローテーションのためのzコンポーネントqZを示す(specifies the z component, qZ, for the rotation of the current camera model using the quaternion representation)。
図40は実施例によるアトラスタイルグループレイヤ(atlas_tile_group_layer)、アトラスタイルグループヘッダ(atlas_tile_group_header)を示す。
図40は図34のように、NALユニットタイプによるNALユニットが伝達するアトラスタイルグループレイヤのシンタックス及びアトラスタイルグループレイヤに含まれたアトラスタイルグループヘッダのシンタックスを示す。
実施例によって、タイルグループはタイルに対応する。この明細書において用語‘タイルグループ’は‘タイル’とも称される。同様に、用語‘atgh’は‘ath’とも解釈される。
アトラスタイルグループレイヤ又はアトラスタイルレイヤは、アトラスタイルグループヘッダ又はアトラスタイルヘッダを含む。
タイプ(atgh_type)がスキップタイル(SKIP_TILE_GRP)ではない場合、アトラスタイルグループ(又はタイル)データがアトラスタイルグループ(又はタイル)レイヤに含まれる。
ATGHアトラスフレームパラメータセットID(atgh_atlas_frame_parameter_set_id):現在アトラスタイルグループ(又はタイル)に対するアクティブアトラスフレームパラメータセットのためのafps_atlas_frame_parameter_set_idの値を示す(specifies the value of afps_atlas_frame_parameter_set_id for the active atlas frame parameter set for the current atlas tile group)。
ATGHアトラス適応パラメータセットID(atgh_atlas_adaptation_parameter_set_id):現在アトラスタイルグループ(又はタイル)に対するアクティブアトラス適応パラメータセットのためのaaps_atlas_adaptation_parameter_set_idの値を示す(specifies the value of aaps_atlas_adaptation_parameter_set_id for the active atlas adaptation parameter set for the current atlas tile group)。
ATGHアドレス(atgh_address):タイルグループ(又はタイル)のタイルグループ(又はタイル)アドレスを示す。存在しない場合、atgh_addressの値は0と推論される。タイルグループ(又はタイル)アドレスはタイルグループ(又はタイル)のタイルグループ(又はタイル)IDである。atgh_addressの長さはafti_signalled_tile_group_id_length_minus1+1ビットである。afti_signalled_tile_group_id_flagが0であると、atgh_addressの値は0ないしafti_num_tile_groups_in_atlas_frame_minus1(含み)の範囲を有する。反面、atgh_addressの値は0~2(afti_signalled_tile_group_id_length_minus1+1)-1(含み)の範囲を有する(specifies the tile group address of the tile group. When not present, the value of atgh_address is inferred to be equal to 0. The tile group address is the tile group ID of the tile group. The length of atgh_address is afti_signalled_tile_group_id_length_minus1 + 1 bits. If afti_signalled_tile_group_id_flag is equal to 0, the value of atgh_address is in the range of 0 to afti_num_tile_groupS_in_atlas_frame_minus1, inclusive. Otherwise, the value of atgh_address is in the range of 0 to 2(afti_signalled_tile_group_id_length_minus1 +1 )-1, inclusive)。
ATGHタイプ(atgh_type):現在アトラスタイルグループ(又はタイル)のコーディングタイプを示す。
タイプの値が0であると、アトラスタイルグループ又はアトラスタイルのタイプはP_TILE_GRP(Inter atlas tile group、インターアトラスタイルグループ(又はタイル))である。
タイプの値が1であると、アトラスタイルグループ又はアトラスタイルのタイプはI_TILE_GRP(Intra atlas tile group、イントラアトラスタイルグループ(又はタイル))である。
タイプの値が2であると、アトラスタイルグループ又はアトラスタイルのタイプはSKIP_TILE_GRP(SKIP atlas tile group、スキップアトラスタイルグループ(又はタイル))である。
タイプの値が3であると、アトラスタイルグループ又はアトラスタイルのタイプは予約値を有する。
ATGHアトラスアウトプットフラグ(atgh_atlas_output_flag):この値は復号されたアトラスアウトプット及び除去プロセッサに影響を及ぼす(affectS the decoded atlas output and removal processes)。
ATGHアトラスフレームオーダーカウント(atgh_atlas_frm_order_cnt_lsb):現在アトラスタイプグループ又はアトラスタイルに対するアトラスフレームオーダーカウントモジュロMaxAtlasFrmOrderCntLsbを示す(specifies the atlas frame order count modulo MaxAtlasFrmOrderCntLsb for the current atlas tile group)。
afps_output_flag_present_flagが1であると、アトラスタイルグループ(タイル)ヘッダがatgh_atlas_output_flag及びatgh_atlas_frm_order_cnt_lsbを含む。
ATGH参照アトラスフレームリストSPSフラグ(atgh_ref_atlas_frame_list_sps_flag):この値が1であると、現在アトラスタイルグループの参照アトラスフレームリストがアクティブASPS内のref_list_struct(rlsIdx)シンタックス構造の1つに基づいて誘導される。この値が0であると、現在アトラスタイルグループ又はアトラスタイルのタイルグループヘッダ又はタイルヘッダに直接含まれたref_list_struct(rlsIdx)シンタックス構造に基づいて現在アトラスタイルリストの参照アトラスフレームリストが誘導されることを示す(equal to 1 specifies that the reference atlas frame list of the current atlas tile group is derived based on one of the ref_list_struct(rlsIdx) syntax structures in the active asps. atgh_ref_atlas_frame_list_sps_flag equal to 0 specifies that the reference atlas frame list of the current atlas tile list is derived based on the ref_list_struct(rlsIdx) syntax structure that is directly included in the tile group header of the current atlas tile group)。
atgh_ref_atlas_frame_list_sps_flagが0であると、ref_list_struct(asps_num_ref_atlas_frame_lists_in_asps)がアトラスタイルグループ(タイル)ヘッダに含まれる。
ATGH参照アトラスフレームリストインデックス(atgh_ref_atlas_frame_list_idx):現在アトラスタイルグループ(又はタイル)に対する参照アトラスフレームの誘導に使用されるref_list_struct(rlsIdx)シンタックス構造のアクティブASPSに含まれたref_list_struct(rlsIdx)シンタックス構造のリストに対するインデックスを示す(specifies the index, into the list of the ref_list_struct(rlsIdx) syntax structures included in the active ASPS, of the ref_list_struct(rlsIdx) syntax structure that is used for derivation of the reference atlas frame list for the current atlas tile group)。
ATGH追加afoc lsb存在フラグ(atgh_additional_afoc_lsb_present_flag[j]):この値が1であると、atgh_additional_afoc_lsb_val[j]が現在アトラスタイルグループ又はアトラスタイルに対して存在することを示す。この値が0であると、atgh_additional_afoc_lsb_val[j]は存在しない(equal to 1 specifies that atgh_additional_afoc_lsb_val[j] is present for the current atlas tile group. atgh_additional_afoc_lsb_present_flag[j] equal to 0 specifies that atgh_additional_afoc_lsb_val[j] is not present)。
atgh_additional_afoc_lsb_present_flag[j]が1であると、atgh_additional_afoc_lsb_val[j]がアトラスタイルグループ(又はタイル)ヘッダに含まれる。
ATGH追加afoc lsb値(atgh_additional_afoc_lsb_val[j]):現在アトラスタイルグループ又はタイルに対するFullAtlasFrmOrderCntLsbLt[RlsIdx][j]の値を示す(specifies the value of FullAtlasFrmOrderCntLsbLt[RlsIdx][j] for the current atlas tile group)。
ATGHポジション最小Z量子化器(atgh_pos_min_z_quantizer):パッチpのpdu_3d_pos_min_z[p]値に適用される量子化器を示す。atgh_pos_min_z_quantizerが存在しない場合、この値は0に推論される(specifies the quantizer that is to be applied to the pdu_3d_pos_min_z[p] value of the patch p. If atgh_pos_min_z_quantizer is not present, its value is inferred to be equal to 0)。
ATGHポジションデルタマックスZ量子化器(atgh_pos_delta_max_z_quantizer):インデックスpを有するパッチのpdu_3d_pos_delta_max_z[p]の値に適用される量子化器を示す。atgh_pos_delta_max_z_quantizerが存在しない場合、この値は0に推論される(specifies the quantizer that is to be applied to the pdu_3d_pos_delta_max_z[p] value of the patch with index p. If atgh_pos_delta_max_z_quantizer is not present, its value is inferred to be equal to 0)。
ATGHパッチサイズX情報量子化器(atgh_patch_size_x_info_quantizer):インデックスpを有するパッチのpdu_2d_size_x_minus1[p]、mpdu_2d_delta_size_x[p]、ipdu_2d_delta_size_x[p]、rpdu_2d_size_x_minus1[p]及びepdu_2d_size_x_minus1[p]の変数に適用されるPatchSizeXQuantizer量子化器の値を示す。atgh_patch_size_x_info_quantizerが存在しない場合、この値はasps_log2_patch_packing_block_sizeに推論される(specifies the value of the quantizer PatchSizeXQuantizer that is to be applied to the variables pdu_2d_size_x_minus1[p], mpdu_2d_delta_size_x[p], Ipdu_2d_delta_size_x[p], rpdu_2d_size_x_minus1[p], and epdu_2d_size_x_minus1[p] of a patch with index p. If atgh_patch_size_x_info_quantizer is not present, its value is inferred to be equal to asps_log2_patch_packing_block_size)。
ATGHパッチサイズY情報量子化器(atgh_patch_size_y_info_quantizer):インデックスPを有するパッチのpdu_2d_size_y_minus1[p]、mpdu_2d_delta_size_y[p]、ipdu_2d_delta_size_y[p]、rpdu_2d_size_y_minus1[p]及びepdu_2d_size_y_minus1[p]の変数に適用されるPatchSizeYQuantizer量子化器の値を示す。atgh_patch_size_y_info_quantizerが存在しない場合、この値はasps_log2_patch_packing_block_sizeに推論される(specifies the value of the quantizer PatchSizeYQuantizer that is to be applied to the variables pdu_2d_size_y_minus1[p], mpdu_2d_delta_size_y[p], Ipdu_2d_delta_size_y[p], rpdu_2d_size_y_minus1[p], and epdu_2d_size_y_minus1[p] of a patch with index p. If atgh_patch_size_y_info_quantizer is not present, its value shall be inferred to be equal to asps_log2_patch_packing_block_size)。
ATGH行3Dポジション軸ビットカウント(atgh_raw_3d_pos_axis_bit_count_minus1):この値に1を加えると、pos_x、rpdu_3d_pos_y及びrpdu_3d_pos_zの固定長さ表現内のビット数を示す(plus 1 specifies the number of bits in the fixed-length representation of rpdu_3d_pos_x, rpdu_3d_pos_y, and rpdu_3d_pos_z)。
タイプが(atgh_type)がP_TILE_GRPであり、num_ref_entries[rlsIdx]が1より大きいと、atgh_num_ref_idx_active_override_flagがアトラスタイルグループ(又はタイル)ヘッダに含まれる。また、atgh_num_ref_idx_active_override_flagが1であると、atgh_num_ref_idx_active_minus1がアトラスタイルグループ(又はタイル)ヘッダに含まれる。
ATGHナンバー参照インデックスアクティブオーバーライドフラグ(atgh_num_ref_idx_active_override_flag):この値が1であると、シンタックス要素atgh_num_ref_idx_active_minus1が現在アトラスタイルグループ又はアトラスタイルに対して存在することを示す。この値が0であると、シンタックス要素atgh_num_ref_idx_active_minus1が存在しないことを示す。atgh_num_ref_idx_active_override_flagが存在しないと、この値は0に推論される(equal to 1 specifies that the syntax element atgh_num_ref_idx_active_minus1 is present for the current atlas tile group. atgh_num_ref_idx_active_override_flag equal to 0 specifies that the syntax element atgh_num_ref_idx_active_minus1 is not present. If atgh_num_ref_idx_active_override_flag is not present, its value shall be inferred to be equal to 0)。
ATGHナンバー参照インデックスアクティブ(atgh_num_ref_idx_active_minus1):現在アトラスタイルグループ又はタイルを復号するために使用される参照アトラスフレームリストのための最大値参照インデックスを示す。NumRefIdxActiveの値が0であると、参照アトラスフレームリストの参照インデックスが現在アトラスタイルグループ又はアトラスタイルを復号するために使用されないことを示す(specifies the maximum reference index for reference the atlas frame list that may be used to decode the current atlas tile group. When the value of NumRefIdxActive is equal to 0, no reference index for the reference atlas frame list may be used to decode the current atlas tile group)。
バイト整列(byte_alignment):データの端を指示するためにストップビット(stop bit)である1を追加した後、バイト整列のために0で残りのビットを満たすために使用される。
図41は実施例による参照リスト構造(ref_list_struct)を示す。
図41は図35のアトラスパラメータセット、図40のアトラスタイルグループ又はアトラスタイルのヘッダなどに含まれる参照リスト構造のシンタックスである。
参照エントリー数(num_ref_entries[rlsIdx]):ref_list_struct(rlsIdx)シンタックス構造内のエントリー数を示す(specifies the number of entries in the ref_list_struct(rlsIdx) syntax structure)。
num_ref_entries[rlsIdx]の値だけ以下の要素が参照リスト構造に含まれる。
asps_long_term_ref_atlas_frames_flagが1であると、参照アトラスフレームフラグ(st_ref_atlas_frame_flag[rlsIdx][i])が参照リスト構造に含まれる。
参照アトラスフレームフラグ(st_ref_atlas_frame_flag[rlsIdx][i]):この値が1であると、ref_list_struct(rlsIdx)シンタックス構造内のi番目のエントリーが短期参照アトラスフレームエントリーであることを示す。st_ref_atlas_frame_flag[rlsIdx][i]が0であると、ref_list_struct(rlsIdx)構造内のi番目のエントリーが長期参照アトラスフレームエントリーであることを示す。存在しない場合は、st_ref_atlas_frame_flag[rlsIdx][i]の値は1に推論される(equal to 1 specifies that the i-th entry in the ref_list_struct(rlsIdx) syntax structure is a Short term reference atlas frame entry. st_ref_atlas_frame_flag[rlsIdx][i] equal to 0 specifies that the i-th entry in the ref_list_struct(rlsIdx) syntax structure is a long term reference atlas frame entry. When not present, the value of st_ref_atlas_frame_flag[rlsIdx][i] is inferred to be equal to 1)。
st_ref_atlas_frame_flag[rlsIdx][i]が1であると、absデルタafoc(abs_delta_afoc_st[rlsIdx][i])が参照リスト構造内に含まれる。
absデルタafoc(abs_delta_afoc_st[rlsIdx][i]):i番目のエントリーがref_list_struct(rlsIdx)内の1番目の短期参照アトラスフレームエントリーである場合、現在アトラスタイルグループ(又はタイル)のアトラスフレームオーダーカウント値及びi番目のエントリーにより称されるアトラスフレーム間の差の絶対値を示す。i番目のエントリーが短期参照アトラスフレームであり、ref_list_struct(rlsIdx)内の1番目の短期参照アトラスフレームエントリーではない場合は、i番目のエントリーにより称されるアトラスフレームのアトラスフレームオーダーカウント値及びref_list_struct(rlsIdx)シンタックス構造内の以前の短期参照アトラスフレームエントリーにより称されるアトラスフレームのアトラスフレームオーダーカウント値間の差の絶対値を示す(when the i-th entry is the first Short term reference atlas frame entry in ref_list_struct(rlsIdx) syntax structure, specifies the absolute difference between the atlas frame order count values of the current atlas tile group and the atlas frame Referred to by the i-th entry, or, when the i-th entry is a Short term reference atlas frame entry but not the first short term reference atlas frame entry in the ref_list_struct(rlsIdx) syntax structure, specifies the absolute difference between the atlas frame order count values of the atlas frames referred to by the i-th entry and by the previous Short term reference atlas frame entry in the ref_list_struct(rlsIdx) syntax structure)。
abs_delta_afoc_st[rlsIdx][i]が0より大きい値を有すると、エントリーサインフラグ(strpf_entry_sign_flag[rlsIdx][i])が参照リスト構造内に含まれる。
エントリーサインフラグ(strpf_entry_sign_flag[rlsIdx][i]):この値が1であると、シンタックス構造ref_list_struct(rlsIdx)内のi番目のエントリーが0であるか又はそれより大きい値を有することを示す。strpf_entry_sign_flag[rlsIdx][i]が0であると、シンタックス構造ref_list_struct(rlsIdx)内のi番目のエントリーが0より小さい値を有することを示す。存在しない場合は、strpf_entry_sign_flag[rlsIdx][i]の値は1であると推論される(equal to 1 specifies that i-th entry in the syntax structure ref_list_struct(rlsIdx) has a value greater than or equal to 0. strpf_entry_sign_flag[rlsIdx][i] equal to 0 specifies that the i-th entry in the syntax structure ref_list_struct(rlsIdx) has a value less than 0. When not present, the value of strpf_entry_sign_flag[rlsIdx][i] is inferred to be equal to 1)。
afoc lsb値(afoc_lsb_lt[rlsIdx][i]):ref_list_struct(rlsIdx)シンタックス構造内のI番目のエントリーにより称されるアトラスフレームのアトラスフレームオーダーカウントモジュロMaxAtlasFrmOrderCntLsbの値を示す。afoc_lsb_lt[rlsIdx][i]シンタックス要素の長さはasps_log2_max_atlas_frame_order_cnt_lsb_minus4+4ビットである(specifies the value of the atlas frame order count modulo MaxAtlasFrmOrderCntLsb of the atlas frame referred to by the i-th entry in the ref_list_struct(rlsIdx) syntax structure. The length of the afoc_lsb_lt[rlsIdx][i] syntax element is ASPS_log2_MAX_atlas_frame_order_cnt_lsb_minus4 + 4 bits)。
図42は実施例によるアトラスタイルグループデータ(atlas_tile_group_data_unit)を示す。
図42は図40のアトラスタイルグループレイヤ(又はアトラスタイルレイヤ)に含まれたアトラスタイルグループデータのシンタックスを示す。同様にアトラスタイルグループデータはアトラスタイルデータに対応し、タイルグループという用語はタイルとも称することができる。
pは0から1つずつ増加しながら、インデックスpによるアトラス関連要素がアトラスタイルグループ(又はタイル)データに含まれる。
パッチモード(atgdu_patch_mode[p]):現在アトラスタイルグループ(又はタイル)内のインデックスpを有するパッチに対するパッチモードを示す。タイプ(atgh_type)がスキップタイル(SKIP_TILE_GRP)であると、タイルグループ(又はタイル)が全体タイルグループ(又はタイル)情報が1番目の参照アトラスフレームに対応する現在タイルグループ(又はタイル)と同じアドレス(atgh_address)を有するタイルグループ(又はタイル)から直接コピーされることを示す(indicates the patch mode for the patch with index p in the current atlas tile Group. a tile group with atgh_type = SKIP_TILE_GRP implies that the entire tile group information is copied directly from the tile group with the same atgh_address as that of the current tile group that corresponds to the first reference atlas frame)。
atgdu_patch_mode[p]がI_ENDではなく、atgdu_patch_mode[p]がP_ENDではない場合、インデックスpごとにpatch_information_data及びatgdu_patch_mode[p]がアトラスタイルグループデータ(又はアトラスタイルデータ)に含まれる。
I_TILE_GRPタイプアトラスタイルグループに対するパッチモードタイプは以下のように表現できる。
パッチモード(atgdu_patch_mode)の値が0であると、識別子(Identifier)はI_INTRAであり、予測されないパッチモード(Non-predicted Patch mode)であることを示す。
パッチモード(atgdu_patch_mode)の値が1であると、識別子(Identifier)はI_RAWであり、RAWポイントパッチモード(RAW point Patch mode)であることを示す。
パッチモード(atgdu_patch_mode)の値が2であると、識別子(Identifier)はI_EOMであり、EOMポイントパッチモード(EOM point Patch mode)であることを示す。
パッチモード(atgdu_patch_mode)の値が3ないし13であると、識別子(Identifier)はI_RESERVEDであり、予約モード(Reserved modes)であることを示す。
パッチモード(atgdu_patch_mode)の値が14であると、識別子(Identifier)はI_ENDであり、パッチ終了モード(Patch termination mode)であることを示す。
P_TILE_GRPタイプアトラスタイルグループ(又はタイル)に対するパッチモードタイプは以下のように表現できる。
パッチモード(atgdu_patch_mode)が0であると、識別子(Identifier)はP_SKIPであり、パッチスキップモード(Patch Skip mode)であることを示す。
パッチモード(atgdu_patch_mode)が1であると、識別子(Identifier)はP_MERGEであり、パッチマージモード(Patch Merge mode)であることを示す。
パッチモード(atgdu_patch_mode)が2であると、識別子(Identifier)はP_INTERであり、インター予測パッチモード(Inter predicted Patch mode)であることを示す。
パッチモード(atgdu_patch_mode)が3であると、識別子(Identifier)はP_INTRAであり、非予測パッチモード(Non-predicted Patch mode)であることを示す。
パッチモード(atgdu_patch_mode)が4であると、識別子(Identifier)はP_RAWであり、RAWポイントパッチモード(RAW point Patch mode)であることを示す。
パッチモード(atgdu_patch_mode)が5であると、識別子(Identifier)はP_EOMであり、EOMポイントパッチモード(EOM point Patch mode)であることを示す。
パッチモード(atgdu_patch_mode)が6ないし13であると、識別子(Identifier)はP_RESERVEDであり、予約モード(Reserved mode)であることを示す。
パッチモード(atgdu_patch_mode)が6ないし13であると、識別子(Identifier)はP_RESERVEDであり、予約モード(Reserved mode)であることを示す。
パッチモード(atgdu_patch_mode)が14であると、識別子(Identifier)はP_ENDであり、パッチ終了モード(Patch termination mode)であることを示す。
SKIP_TILE_GRPタイプアトラスタイルグループ(又はタイル)に対するパッチモードタイプは以下のように表現できる。
パッチモード(atgdu_patch_mode)がであると、識別子はP_SKIPであり、パッチスキップモード(Patch Skip mode)であることを示す。
AtgduTotalNumberOfPatchesはパッチ数であり、最終p値に設定される。
図43は実施例によるパッチ情報データ(patch_information_data)を示す。
図43は図42のアトラスタイルグループ(又はタイル)データユニットに含まれるパッチ情報データのシンタックスを示す。
タイプ(atgh_type)がスキップアトラスタイルグループ(又はスキップアトラスタイル)(SKIP_TILE_GR)であると、スキップパッチデータユニット(パッチインデックス)(skip_patch_data_unit(patchIdx))がパッチ情報データとして含まれる。
タイプがインターアトラスタイルグループ(又はインターアトラスタイル)(P_TILE_GR)であり、パッチモード(patchMode)がパッチスキップモード(P_SKIP)であると、スキップパッチデータユニット(パッチインデックス)(skip_patch_data_unit(patchIdx)がパッチ情報データとして含まれる。パッチモードがパッチマージモード(P_MERGE)であると、統合パッチデータユニット(パッチインデックス)(merge_patch_data_unit(patchIdx))がパッチ情報データとして含まれる。パッチモードが非予測パッチモード(P_INTRA)であると、パッチデータユニット(パッチインデックス)(patch_data_unit(patchIdx))がこのシンタックス構造(以下、パッチ情報データを称する)に含まれる。パッチモードがインター予測パッチモード(P_INTER)であると、インターパッチデータユニット(パッチインデックス)(inter_patch_data_unit(patchIdx))がこのシンタックス構造に含まれる。パッチモードがRAWポイントパッチモード(P_RAW)であると、行パッチデータユニット(パッチインデックス)(raw_patch_data_unit(patchIdx)がこのシンタックス構造に含まれる。パッチモードがEOMポイントパッチモード(P_EOM)であると、EOMパッチデータユニット(パッチインデックス)(eom_patch_data_unit(patchIdx))がこのシンタックス構造に含まれる。
タイプがイントラーアトラスタイルグループ(I_TILE_GR)であり、パッチモードが非予測パッチモード(I_INTRA)であると、パッチデータユニット(パッチインデックス)(patch_data_unit(patchIdx))がこのシンタックス構造に含まれる。パッチモードがRAWポイントパッチモード(I_RAW)であると、RAWパッチデータユニット(パッチインデックス(raw_patch_data_unit(patchIdx))がこのシンタックス構造に含まれる。パッチモードがEOMポイントパッチモード(I_EOM)であると、EOMパッチデータユニット(パッチインデックス)(eom_patch_data_unit(patchIdx))がこのシンタックス構造に含まれる。
図44は実施例によるパッチデータユニット(patch_data_unit)を示す。
図44は図43に含まれたパッチデータユニットのシンタックスを示す。
PDU 2Dポジションx(pdu_2d_pos_x[p]):現在アトラスタイルグループ(又はタイル)内のパッチpに対するパッチバウンディングボックスの左上部コーナーのx座標(又は左部オフセット)を示す。アトラスタイルグループはタイルグループインデックスを有し、アトラスタイルはタイルインデックスを有する。このインデックスが複数のパッチパッキングブロックサイズ(PatchPackingBlockSize)として表現される(specifies the x-coordinate (or left offset) of the top-left corner of the patch bounding box for patch p in the current atlas tile group, tileGroupIdx, expressed as a multiple of PatchPackingBlockSize)。
PDU 2Dポジションy(pdu_2d_pos_y[p]):現在アトラスタイルグループ(又はタイル)内のパッチpに対するパッチバウンディングボックスの左上部コーナーのy座標(又は上部オフセット)を示す。アトラスタイルグループはタイルグループインデックスを有し、アトラスタイルはタイルインデックスを有する。このインデックスが複数のパッチパッキングブロックサイズ(PatchPackingBlockSize)として表現される(specifies the y-coordinate (or top offset)of the top-left corner of the patch bounding box for patch p in the current atlas tile group, tileGroupIdx, expressed as a multiple of PatchPackingBlockSize)。
PDU 2Dサイズx(pdu_2d_size_x_minus1[p]):この値に1を加えると、現在アトラスタイルグループ、tileGroupIdx又は現在アトラスタイル、tiledx内のインデックスpを有するパッチの量子化された幅の値を示す(plus 1 specifies the quantized width value of the patch with index p in the current atlas tile group, tileGroupIdx)。
PDU 2Dサイズy(pdu_2d_size_y_minus1[p]):この値に1を加えると、現在アトラスタイルグループ、tileGroupIdx又は現在アトラスタイル、tiledx内のインデックスpを有するパッチの量子化された高さの値を示す(plus 1 specifies the quantized height value of the patch with index p in the current atlas tile group, tileGroupIdx)。
PDU 3Dポジションx(pdu_3d_pos_x[p]):接線軸に沿って現在アトラスタイルグループ又は現在アトラスタイルのインデックスpを有するパッチ内の復元されたパッチポイントに適用されるシフトを示す(specifies the shift to be applied to the reconstructed patch points in patch with index p of the current atlas tile group along the tangent axis)。
PDU 3Dポジションy(pdu_3d_pos_y[p]):従接線軸に沿って現在アトラスタイルグループ又は現在アトラスタイルのインデックスpを有するパッチ内の復元されたパッチポイントに適用されるシフトを示す(specifies the shift to be applied to the reconstructed patch points in patch with index p of the current atlas tile group along the bitangent axis)。
PDU 3Dポジションz(pdu_3d_pos_min_z[p]):垂直軸に沿って現在アトラスタイルグループ又はアトラスタイルのインデックスpを有するパッチ内の復元されたパッチポイントに適用されるシフトを示す(specifies the shift to be applied to the reconstructed patch points in patch with index p of the current atlas tile group along the normal axis)。
asps_normal_axis_max_delta_value_enabled_flagが1であると、pdu_3d_pos_delta_max_z[patchIdx]がパッチデータユニットに含まれる。
PDU 3Dポジションデルタマックスz(pdu_3d_pos_delta_max_z[p]):この値が存在すると、垂直軸に沿って現在アトラスタイルグループ又はアトラスタイルのインデックスpを有するパッチ内の公称表現に転換された後、復元されたビット深さパッチジオメトリサンプル内に存在すると期待されるシフトの公称最大値を示す(If present, specifies the nominal maximum value of the shift expected to be present in the reconstructed bitdepth patch geometry samples, after conversion to their nominal representation, in patch with index p of the current atlas tile group Along the normal axis)。
PDUプロジェクションID(pdu_projection_id[p]):現在アトラスタイルグループ又は現在アトラスタイルのインデックスpを有するパッチに対するプロジェクション平面に対するノーマルのインデックス及びプロジェクションモードの値を示す(specifies the values of the projection mode and of the index of the normal to the projection plane for the patch with index p of the current atlas tile group)。
PDUオリエンテーションインデックス(pdu_orientation_index[p]):現在アトラスタイルグループ又はアトラスタイルのインデックスpを有するパッチに対するパッチオリエンテーションインデックスを示す(indicates the patch orientation index for the patch with index p of the current atlas tile group)。
afps_lod_mode_enabled_flagが1であると、pdu_lod_enabled_flag[patchIndex]がパッチデータユニットに含まれる。pdu_lod_enabled_flag[patchIndex]が0より大きいと、pdu_lod_scale_x_minus1[patchIndex]及びpdu_lod_scale_y[patchIndex]がパッチデータユニットに含まれる。
PDU LOD有効フラグ(pdu_lod_enabled_flag[p]):この値が1であると、LODパラメータが現在パッチpに対して存在することを示す。この値が0であると、現在パッチに対してLODパラメータが存在しないことを示す(equal to 1 specifies that the LOD parameters are present for the current patch p. If pdu_lod_enabled_flag[p] is equal to 0, no LOD parameters are present for the current patch)。
PDU LODスケールX(pdu_lod_scale_s_minus1[p]):パッチ座標Patch3DPosX[p]に加える前に、現在アトラスタイルグループ又はアトラスタイルのインデックスpを有するパッチ内ポイントのローカルX座標に適用されるLOD倍率(scaling factor)を示す(specifies the LOD scaling factor to be applied to the local x coordinate of a point in a patch with index p of the current atlas tile group, prior to its addition to the patch coordinate Patch3DPosX[p])。
PDU LODスケールY(pdu_lod_scale_y[p]):パッチ座標Patch3DPosY[p]に加える前に、現在アトラスタイルグループ又はアトラスタイルのインデックスpを有するパッチ内ポイントのローカルY座標に適用されるLOD倍率を示す(specifies the LOD scaling factor to be applied to the local y coordinate of a point in a patch with index p of the current atlas tile group, prior to its addition to the patch coordinate Patch3DPosY[p])。
asps_point_local_reconstruction_enabled_flagが1であると、point_local_reconstruction_data(patchIdx)がパッチデータユニットに含まれる。
ポイントローカル復元データ(パッチインデックス)(point_local_reconstruction_data(patchIdx)):デコーダ端で圧縮損失などにより損失(missing)ポイントを復元するための情報を含む。
図45は実施例によるパッチオリエンテーションに関するローテーション及びオフセットを示す。
図45は図44のオリエンテーションインデックスのためのローテーションマトリックス及びオフセットを示す。
実施例による方法/装置はポイントクラウドデータに対するオリエンテーション動作を行い、図45のようにこのための識別子、ローテーション、オフセットが使用される。
図46は実施例によるシーン客体情報(scene_object_information)を示す。
図46は図32のようにビットストリーム32000に含まれるサンプルストリームNALユニットのSEIメッセージのシンタックスを示す。
実施例による客体はポイントクラウド客体である。さらに客体を構成又は区分する(部分)客体まで含む概念である。
実施例による方法/装置は実施例によるシーン客体情報に基づいて1つ以上のシーン客体(scene object)を含む3D空間領域(spatial region)単位の部分接近(partial access)を提供する。
実施例によるSEIメッセージは復号、再構成、ディスプレイ又は他の目的に関連するプロセスに関する情報を含む。
実施例によるSEIメッセージは必須(essential)及び非必須(non-essential)の2つのタイプを含む。
非必須SEIメッセージは復号プロセスでは不要である。デコーダがアウトプットオーダー符合のためのこの情報を処理するための動作が不要である。
実施例によるシーン客体情報(Scene Object Information)、客体ラベル情報(Object Label Information)、パッチ情報(Patch Information)、及びボリュメトリック矩形情報(Volumetric Rectangle Information)などを含むボリュメトリック注釈情報(Volumetric Annotation SEI Message)は非必須SEIメッセージである。
また、実施例によって上記情報は必須SEIメッセージに伝達される。
必須SEIメッセージはV-PCCビットストリームに必須パートであり、ビットストリームから除去できない。必須SEIメッセージは2つのタイプにカテゴリー化される。
タイプAの必須SEIメッセージ:このようなSEIはビットストリーム符合を確認するために必要な情報及びアウトプットタイミングデコーダ符合のための情報を含む。実施例によるV-PCCデコーダは関連のあるタイプA必須のSEIメッセージを捨てない。実施例によるV-PCCデコーダはその情報をビットストリーム符合及びアウトプットタイミングデコーダ符合のために考慮する。
タイプBの必須SEIメッセージ:特定の復元プロファイルに従うV-PCCデコーダは関連するタイプBの必須SEIメッセージを捨てず、3Dポイントクラウド復元及び符合目的のためにその情報を使用する。
図46はボリュメトリック注釈SEIメッセージ(Volumetric Annotation SEI Message)を示す。
実施例によるV-PCCビットストリームは部分接近(partial access)に関連するボリュメトリック注釈SEIメッセージを図44のように定義している。
取り消しフラグ(soi_cancel_flag):この値が1であると、シーン客体情報SEIメッセージがアウトプット順に以前のシーン客体情報SEIメッセージを取り消すことを示す(equal to 1 indicates that the scene object information SEI message cancels the persistence of any previous scene object information SEI message in output order)。
更新客体数(soi_num_object_updates):現在SEIにより更新される客体の数を示す(indicates the number of objects that are to be updated by the current SEI)。
soi_num_object_updatesが0より大きいと、以下の要素がシーン客体情報に含まれる。
シンプル客体フラグ(soi_simple_objects_flag):この値が1であると、更新される或いは新しく導入される客体に関する追加情報がシグナリングされないことを示す。この値が0であると、更新される或いは新しく導入される客体に関する追加情報がシグナリングされることを示す(equal to 1 indicates that no additional information for an updated or newly introduced object will be signalled. soi_simple_objects_flag equal to 0 indicates that additional information for an updated or newly introduced object may be signaled)。
soi_simple_objects_flagが0であると、以下の要素がシーン客体情報に含まれる。
soi_simple_objects_flagが0ではないと、soi_object_label_present_flag=0、soi_priority_present_flag=0、soi_object_hidden_present_flag=0、soi_object_dependency_present_flag=0、soi_visibility_cones_present_flag=0、soi_3d_bounding_box_present_flag=0、soi_collision_shape_present_flag=0、soi_point_style_present_flag=0、soi_material_id_present_flag=0、soi_extension_present_flag=のように値がセットされる。
客体ラベル存在フラグ(soi_object_label_present_flag):この値が1であると、現在シーン客体情報SEIメッセージ内に客体ラベル情報が存在することを示す。この値が0であると、客体ラベル情報が存在しないことを示す(equal to 1 indicates that object label information is present in the current scene object information SEI message. soi_object_label_present_flag equal to 0 indicates that object label information is not present)。
優先順位存在フラグ(soi_priority_present_flag):この値が1であると、現在シーン客体情報SEIメッセージ内の優先順位情報が存在することを示す。この値が0であると、優先順位情報が存在しないことを示す(equal to 1 indicates that priority information is present in the current scene object information SEI message. soi_priority_present_flag equal to 0 indicates that priority information is not present)。
客体隠し存在フラグ(soi_object_hidden_present_flag):この値が1であると、現在シーン客体情報SEIメッセージ内に隠し客体情報が存在することを示す。この値が0であると、隠し客体情報が存在しないことを示す(equal to 1 indicates that hidden object information is present in the current scene object information SEI message. soi_object_hidden_present_flag equal to 0 indicates that hidden object information is not present)。
客体従属存在フラグ(soi_object_dependency_present_flag):この値が1であると、現在シーン客体情報SEIメッセージ内に客体従属情報が存在することを示す。この値が0であると、客体従属情報が存在しないことを示す(equal to 1 indicates that object dependency information is present in the current scene object information SEI message. soi_object_dependency_present_flag equal to 0 indicates that object dependency information is not present)。
観測可能円錐存在フラグ(soi_visibility_cones_present_flag):この値が1であると、観測可能円錐情報が現在シーン客体情報SEIメッセージ内に存在することを示す。この値が0であると、観測可能円錐情報が存在しないことを示す(equal to 1 indicates that visibility cones information is present in the current scene object information SEI message. soi_visibility_cones_present_flag equal to 0 indicates that visibility cones information is not present)。
3Dバウンディングボックス存在フラグ(soi_3d_bounding_box_present_flag):この値が1であると、3Dバウンディングボックス情報が現在シーン客体情報SEIメッセージ内に存在することを示す。この値が0であると、3Dバウンディングボックス情報が存在しないことを示す(equal to 1 indicates that 3D bounding box information is present in the current scene object information SEI message. soi_3d_bounding_box_present_flag equal to 0 indicates that 3D bounding box information is not present)。
衝突模様存在フラグ(soi_collision_shape_present_flag):この値が1であると、衝突情報が現在シーン客体情報SEIメッセージ内に存在することを示す。この値が0であると、衝突模様情報が存在しないことを示す(equal to 1 indicates that collision information is present in the current scene object information SEI message. soi_collision_shape_present_flag equal to 0 indicates that collision shape information is not present)。
ポイントスタイル存在フラグ(soi_point_style_present_flag):この値が1であると、ポイントスタイル情報が現在シーン客体情報SEIメッセージ内に存在することを示す。この値が0であると、ポイントスタイル情報が存在しないことを示す(equal to 1 indicates that point style information is present in the current scene object information SEI message. soi_point_style_present_flag equal to 0 indicates that point style information is not present)。
物質ID存在フラグ(soi_material_id_present_flag):この値が1であると、物質ID情報が現在シーン客体情報SEIメッセージ内に存在することを示す。この値が0であると、物質ID情報が存在しないことを示す(equal to 1 indicates that material ID information is present in the current scene object information SEI message. soi_material_id_present_flag equal to 0 indicates that material ID information is not present)。
拡張存在フラグ(soi_extension_present_flag):この値が1であると、追加拡張情報が現在シーン客体情報SEIメッセージ内に存在することを示す。この値が0であると、追加拡張情報が存在しないことを示す(equal to 1 indicates that additional extension information shall be present in the current scene object information SEI message. soi_extension_present_flag equal to 0 indicates that additional extension information is not present. It is a requirement of bitstream conformance to this version of the specification that soi_extension_present_flag shall be equal to 0)。
soi_3d_bounding_box_present_flagが1であると、以下の要素がシーン客体情報内に含まれる。
3Dバウンディングボックススケール(soi_3d_bounding_box_scale_log2):客体のために記述される3Dバウンディングボックスパラメータに適用されるスケールを示す(indicates the scale to be applied to the 3D bounding box parameters that may be specified for an object)。
3Dバウンディングボックス精度(soi_3d_bounding_box_precision_minus8):この値に8を加えると、客体のために記述される3Dバウンディングボックスパラメータの精度を示す(plus 8 indicates the precision of the 3D bounding box parameters that may be specified for an object)。
客体インデックスの最大値(soi_log2_max_object_idx_updated):現在シーン客体情報SEIメッセージ内の客体インデックスの値をシグナリングするために使用されるビットの数を示す(specifies the number of bits used to signal the value of an object index in the current scene object information SEI message)。
soi_object_dependency_present_flagが1であると、以下の要素がシーン客体情報内に含まれる。
客体従属インデックス最大値(soi_log2_max_object_dependency_idx):現在シーン客体情報SEIメッセージ内の従属客体インデックスの値をシグナリングするために使用されるビットの数を示す(specifies the number of bits used to signal the value of a dependency object index in the current scene object information SEI message)。
soi_num_object_updates値だけ以下の要素がシーン客体情報内に含まれる。
客体インデックス(soi_object_idx[i]):更新されるi番目の客体の客体インデックスを示す。soi_object_idx[i]を示すために使用されるビットの数はsoi_log2_max_object_idx_updatedである。soi_object_idx[i]がビットストリーム内に存在しない場合、その値は0に推論される(indicates the object index of the i-th object to be updated. The number of bits used to represent soi_object_idx[i] is equal to soi_log2_max_object_idx_updated. When soi_object_idx[i] is not present in the bitstream, its value shall be inferred to be equal to 0)。
客体取り消しフラグ(soi_object_cancel_flag[i]):この値が1であると、インデックスIである客体は取り消され、変数ObjectTracked[i]は0であることを示す。客体ラベル、3Dバウンディングボックスパラメータ、優先順位情報、隠しフラグ、従属情報、観測可能円錐、衝突模様、ポイントスタイル及び物質IDを含む全ての関連するパラメータはそれらのデフォルト値にリセットされる。soi_object_cancel_flag が0であると、soi_object_idx[i]と同じインデックスを有する客体がこの要素をフォローする情報に更新されることを示す。変数ObjectTracked[i]は1にセットされる(equal to 1 indicates that the object with index equal to i shall be canceled and that the variable ObjectTracked[i] shall be set to 0. Furthermore, all of its associated parameters, including the object label, 3D bounding box parameters, priority information, hidden flag, dependency information, visibility cones, collision shapes, point style, and material id, will be reset to their default values. shall also be set equal to 0. soi_object_cancel_flag equal to 0 indicates that the object with index equal to soi_object_idx[i] shall be updated with information that follows this element and that the variable ObjectTracked[i] shal be set to 1)。
soi_object_cancel_flag[k]が1ではなく、soi_object_label_present_flagが1であると、以下の要素がシーン客体情報内に含まれる。
客体ラベル更新フラグ(soi_object_label_update_flag[i]):この値が1であると、客体ラベル更新情報がインデックスiを有する客体に対して存在することを示す。この値が0であると、客体ラベル更新情報が存在しないことを示す(equal to 1 indicates that object label update information is present for an object with object index i. soi_object_label_update_flag[i] equal to 0 indicates that object label update information is not present)。
soi_object_label_update_flag[k]が1であると、以下の要素がシーン客体情報内に含まれる。
客体ラベルインデックス(soi_object_label_idx[i]):インデックスiを有する客体のラベルインデックスを示す(indicates the label index of an object with index i)。
soi_priority_present_flagが1であると、以下の要素がシーン客体情報内に含まれる。
優先順位更新フラグ(soi_priority_update_flag[i]):この値が1であると、優先順位更新情報が客体インデックスiを有する客体に対して存在することを示す。この値が0であると、客体優先順位情報が存在しないことを示す(equal to 1 indicates that priority update information is present for an object with object index i. soi_priority_update_flag[i] equal to 0 indicates that object priority information is not present)。
soi_priority_update_flag[k]が1であると、以下の要素がシーン客体情報内に含まれる。
優先順位値(soi_priority_value[i]):インデックスiを有する客体の優先順位を示す。優先順位値が低いか又は高い(indicates the priority of an object with index i. The lower the priority value, the higher the priority)。
soi_object_hidden_present_flagが1であると、以下の要素がシーン客体情報内に含まれる。
客体隠しフラグ(soi_object_hidden_flag[i]):この値が1であると、インデックスiを有する客体が隠されることを示す。この値が0であると、インデックスiを有する客体が存在することを示す(equal to 1 indicates that the object with index i shall be hidden. soi_object_hidden_flag[i] equal to 0 indicates that the object with index i shall become present)。
soi_object_dependency_present_flagが1であると、以下の要素がシーン客体情報内に含まれる。
客体従属更新フラグ(soi_object_dependency_update_flag[i]):この値が1であると、客体従属更新情報が客体インデックスiを有する客体に対して存在することを示す。この値が0であると、客体従属更新情報が存在しないことを示す(equal to 1 indicates that object dependency update information is present for an object with object index i. soi_object_dependency_update_flag[i] equal to 0 indicates that object dependency update information is not present)。
soi_object_dependency_update_flag[k]が1であると、以下の要素がシーン客体情報内に含まれる。
客体従属の数(soi_object_num_dependencies[i]):インデックスiを有する客体従属の数を示す(indicates the number of dependencies of object with index i)。
soi_object_num_dependencies[k] 値だけ以下の要素がシーン客体情報内に含まれる。
客体従属インデックス(soi_object_dependency_idx[i][j]):客体インデックスiを有する客体を有する従属を有するj番目の客体のインデックスを示す(indicates the index of the j-th object that has a dependency with the object with object index i)。
soi_visibility_cones_present_flagが1であると、以下の要素がシーン客体情報内に含まれる。
観測可能円錐更新フラグ(soi_visibility_cones_update_flag[i]):この値が1であると、観測可能円錐更新情報が客体インデックスiを有する客体に対して存在することを示す。この値が0であると、観測可能円錐更新情報が存在しないことを示す(equal to 1 indicates that visibility cones update information is present for an object with object index i. soi_visibility_cones_update_flag[i] equal to 0 indicates that visibility cones update information is not present)。
soi_visibility_cones_update_flag[k]が1であると、以下の要素がシーン客体情報内に含まれる。
方向X(soi_direction_x[i]):客体インデックスiを有する客体の観測可能円錐の方向ベクトルの正規化Xコンポーネントを示す。存在しない場合、この値は1.0に等しいと推論される(indicates the normalized x-component value of the direction vector for the visibility cone of an object with object index i. The value of soi_direction_x[i]、when not present, is assumed to be equal to 1.0)。
方向Y(soi_direction_y[i]):客体インデックスiを有する客体の観測可能円錐の方向ベクトルの正規化Yコンポーネント値を示す。存在しない場合、この値は1.0に等しいと推論される(indicates the normalized y-component value of the direction vector for the visibility cone of an object with object index i. The value of soi_direction_y[i]、when not present, is assumed to be equal to 1.0)。
方向Z(soi_direction_z[i]):客体インデックスiを有する客体の観測可能円錐の方向ベクトルの正規化Zコンポーネント値を示す。存在しない場合、この値は1.0に等しいと推論される(indicates the normalized z-component value of the direction vector for the visibility cone of an object with object index i. The value of soi_direction_z[i]、when not present, is assumed to be equal to 1.0)。
角度(soi_angle[i]):過程内方向ベクトルによって観測可能円錐の角度を示す。存在しない場合、soi_angle[i]の値は180に等しいと推論される(indicates the angle of the visibility cone along the direction vector in degrees. The value of soi_angle[i], when not present, is assumed to be equal to 180°)。
soi_3d_bounding_box_present_flagが1であると、以下の要素がシーン客体情報内に含まれる。
3Dバウンディングボックス更新フラグ(soi_3d_bounding_box_update_flag[i]):この値が1であると、客体インデックスiを有する客体に対して存在することを示す。この値が0であると、3Dバウンディングボックス情報が存在しないことを示す(equal to 1 indicates that 3D bounding box information is present for an object with object index i. soi_3d_bounding_box_update_flag[i] equal to 0 indicates that 3D bounding box information is not present)。
3DバウンディングボックスX(soi_3d_bounding_box_x[i]):インデックスiを有する客体の3Dバウンディングボックスの原点位置のX座標値を示す。soi_3d_bounding_box_x[i]のデフォルト値は0に等しい(indicates the x coordinate value of the origin position of the 3D bounding box of an object with index i. The default value of soi_3d_bounding_box_x[i] is equal to 0)。
3DバウンディングボックスY(soi_3d_bounding_box_y[i]):インデックスiを有する客体の3Dバウンディングボックスの原点位置のY座標値を示す。soi_3d_bounding_box_y[i]のデフォルト値は0に等しい(indicates the y coordinate value of the origin position of the 3D bounding box of an object with index i. The default value of soi_3d_bounding_box_y[i] is equal to 0)。
3DバウンディングボックスZ(soi_3d_bounding_box_z[i]):インデックスiを有する客体の3Dバウンディングボックスの原点位置のZ座標値を示す。この値のデフォルト値は0に等しい(indicates the z coordinate value of the origin position of the 3D bounding box of an object with index i. The default value of soi_3d_bounding_box_z[i] is equal to 0)。
3DバウンディングボックスデルタX(soi_3d_bounding_box_delta_x[i]):インデックスiを有する客体のX軸上のバウンディングボックスのサイズを示す。この値のデフォルト値は0に等しい(indicates the size of the bounding box on the x axis of an object with index i. The default value of soi_3d_bounding_box_delta_x[i] is equal to 0)。
3DバウンディングボックスデルタY(soi_3d_bounding_box_delta_y[i]):インデックスiを有する客体のY軸上のバウンディングボックスのサイズを示す。この値のデフォルト値は0に等しい(indicates the size of the bounding box on the y axis of an object with index i. The default value of soi_3d_bounding_box_delta_y[i] is equal to 0)。
3DバウンディングボックスデルタZ(soi_3d_bounding_box_delta_z[i]):インデックスiを有する客体のZ軸上のバウンディングボックスのサイズを示す。この値のデフォルト値は0に等しい(indicates the size of the bounding box on the z axis of an object with index i. The default value of soi_3d_bounding_box_delta_z[i] is equal to 0)。
soi_collision_shape_present_flagが1であると、以下の要素がシーン客体情報内に含まれる。
衝突模様更新フラグ(soi_collision_shape_update_flag[i]):この値が1であると、衝突模様更新情報がインデックスiを有する客体に対して存在することを示す。この値が0であると、衝突模様更新情報が存在しないことを示す(equal to 1 indicates that collision shape update information is present for an object with object index i. soi_collision_shape_update_flag[i] equal to 0 indicates that collision shape update information is not present)。
soi_collision_shape_update_flag[k]]が1であると、以下の要素がシーン客体情報内に含まれる。
衝突模様ID(soi_collision_shape_id[i]):インデックスiを有する客体の衝突模様IDを示す(indicates the collision shape id of an object with index i)。
soi_point_style_present_flagが1であると、以下の要素がシーン客体情報内に含まれる。
ポイントスタイル更新フラグ(soi_point_style_update_flag[i]):この値が1であると、ポイントスタイル更新情報がインデックスiを有する客体に対して存在することを示す。この値が0であると、ポイントスタイル更新情報が存在しないことを示す(equal to 1 indicates that point style update information is present for an object with object index i. soi_point_style_update_flag[i] equal to 0 indicates that point style update information is not present)。
soi_point_style_update_flag[k]]が1であると、以下の要素がシーン客体情報内に含まれる。
ポイント模様ID(soi_point_shape_id[i]):インデックスiを有する客体のポイント模様IDを示す。この値のデフォルト値は0に等しい(indicates the point shape id of an object with index i. The default value of soi_point_shape_id[i] is equal to 0)。
ポイントサイズ(soi_point_size[i]):インデックスiを有する客体のポイントサイズを示す。この値のデフォルト値は1に等しい(indicates the point size of an object with index i. The default value of soi_point_size[i] is equal to 1)。
soi_material_id_present_flagが1であると、以下の要素がシーン客体情報内に含まれる。
物質ID更新フラグ(soi_material_id_update_flag[i]):物質ID更新情報が客体インデックスiを有する客体に対して存在することを示す。この値が0であると、ポイントスタイル更新情報が存在しないことを示す(equal to 1 indicates that material ID update information is present for an object with object index i. soi_point_style_update_flag[i] equal to 0 indicates that point style update information is not present)。
soi_material_id_update_flag[k]が1であると、以下の要素がシーン客体情報内に含まれる。
物質ID(soi_material_id[i]):インデックスiを有する客体の物質IDを示す。この値のデフォルト値は0に等しい(indicates the material ID of an object with index i. The default value of soi_material_id[i] is equal to 0)。
図47は実施例による客体ラベル情報(Object Label Information)を示す。
図47は図32のようにビットストリーム32000に含まれるサンプルストリームNALユニットのSEIメッセージに関する客体ラベル情報のシンタックスを示す。
取り消しフラグ(oli_cancel_flag):この値が1であると、客体ラベル情報SEIメッセージがアウトプット順に以前の客体ラベル情報SEIメッセージの残存を取り消す(equal to 1 indicates that the object label information SEI message cancels the persistence of any previous object label information SEI message in output order)。
oli_cancel_flagが1ではないと、以下の要素が客体ラベル情報に含まれる。
ラベル言語存在フラグ(oli_label_language_present_flag):この値が1であると、ラベル言語情報が客体ラベル情報SEIメッセージ内に存在することを示す。この値が0であると、ラベル言語情報が存在しないことを示す(equal to 1 indicates that label language information is present in the object label information SEI message. oli_label_language_present_flag equal to 0 indicates that label language information is not present)。
oli_label_language_present_flagが1であると、以下の要素が客体ラベル情報に含まれる。
ゼロ相当のビット(oli_bit_equal_to_zero):この値は0に等しい。
ラベル言語(oli_label_language):0x00のようなnull終端バイトに続いてIETF RFC 5646により記述される言語タグを含む。oli_label_languageシンタックス要素の長さは、null終端バイトを含まない255倍に等しいか又は小さい(contains a language tag as specified by IETF RFC 5646 followed by a null termination byte equal to 0x00. The length of the oli_label_language syntax element shall be less than or equal to 255 bytes, not including the null termination byte)。
ラベル更新数(oli_num_label_updates):現在SEIにより更新されるラベルの数を示す(indicates the number of labels that are to be updated by the current SEI)。
oli_num_label_updates値だけ、以下の要素が客体ラベル情報に含まれる。
ラベルインデックス(oli_label_idx[i]):更新されるi番目のラベルのラベルインデックスを示す(indicates the label index of the i-th label to be updated)。
ラベル取り消しフラグ(oli_label_cancel_flag):この値が1であると、oli_label_idx[i]のようなインデックスを有するラベルが取り消され、空いているストリングと等しくなることを示す。この値が0であると、oli_label_idx[i]のようなインデックスを有するラベルがこの要素に従う情報に更新されることを示す(equal to 1 indicates that the label with index equal to oli_label_idx[i] shall be canceled and set equal to an empty string. oli_label_cancel_flag equal to 0 indicates that the label with index equal to oli_label_idx[i] shall be updated with information that follows this element)。
oli_label_cancel_flagが1ではないと、以下の要素が客体ラベル情報に含まれる。
ゼロ相当のビット(oli_bit_equal_to_zero):この値は0に等しい。
ラベル(oli_label[i]):i番目のラベルのラベルを示す。vti_label[i]シンタックス要素の長さはnull終端バイトを含まない255バイトに等しいか又は小さい(indicates the label of the i-th label. The length of the vti_label[i] syntax element shall be less than or equal to 255 bytes, not including the null termination byte)。
図48は実施例によるパッチ情報(Patch Information)を示す。
図48は図32のようにビットストリーム32000に含まれるサンプルストリームNALユニットのSEIメッセージに関するパッチ情報のシンタックスを示す。
取り消しフラグ(pi_cancel_flag):この値が1であると、パッチ情報SEIメッセージがアウトプット順に以前のパッチ情報SEIメッセージの残存を取り消すことを示す。パッチ情報テーブル内の全てのエントリーが除去される(Equal to 1 indicates that the patch information SEI message cancels the persistence of any previous patch information SEI message in output order and that all entries in the patch information table shall be removed)。
タイルグループ(又はタイル)更新数(pi_num_tile_group_updates):現在SEIメッセージ内のパッチ情報テーブル内に更新されるタイルグループ(又はタイル)の数を示す(indicates the number of tile groups that are to be updated in the patch information table by the current SEI message)。
pi_num_tile_group_updatesが0より大きいと、以下の要素がパッチ情報内に含まれる。
トラックされた客体インデックスの最大値(pi_log2_max_object_idx_tracked):現在パッチ情報SEIメッセージ内にトラックされた客体インデックスの値をシグナリングするために使用されるビットの数を示す(specifies the number of bits used to signal the value of a tracked object index in the current patch information SEI message)。
更新されたパッチインデックスの最大値(pi_log2_max_patch_idx_updated):現在パッチ情報SEIメッセージ内の更新されたパッチインデックスの値をシグナリングするために使用されるビットの数を示す(specifies the number of bits used to signal the value of an updated patch index in the current patch information SEI message)。
pi_num_tile_group_updates値だけ以下の要素がパッチ情報内に含まれる。
タイルグループ(又はタイル)アドレス(pi_tile_group_address[i]):現在SEIメッセージ内のi番目に更新されたタイルグループ(又はタイル)に対するタイルグループアドレス又はタイルアドレスを示す(specifies the tile group address for the i-th updated tile group in the current SEI message)。
タイルグループ(又はタイル)取り消しフラグ(pi_tile_group_cancel_flag[i]):この値が1であると、インデックスiを有するタイルグループ(又はタイル)及びこのタイルグループ(又はタイル)前に割り当てられた全てのパッチが除去されることを示す。この値が0であると、インデックスiを有するタイルグループ(又はタイル)前に割り当てられた全てのパッチが維持されることを示す(Equal to 1 indicates that the tile group with index i shall be reseted and all patches previously assigned to this tile group will be removed. pi_tile_group_cancel_flag[i] equal to 0 indicates that all patches previously assigned to the tile group will index i will be retained)。
更新パッチ数(pi_num_patch_updates[i]):パッチ情報テーブル内のインデックスiを有するタイルグループ(又はタイル)内の現在SEIにより更新されるパッチの数を示す(indicates the number of patches that are to be updated by the current SEI within the tile group with index i in the patch information table)。
pi_num_patch_updates値だけ以下の要素がパッチ情報内に含まれる。
パッチインデックス(pi_patch_idx[i][j]):パッチ情報テーブル内に更新されるインデックスiを有するタイルグループ又はタイル内のj番目のパッチのパッチインデックスを示す。pi_patch_idx[i]を示すために使用されるビット数は、pi_log2_max_patch_idx_updatedである。pi_patch_idx[i]がビットストリーム内に存在しないと、その値は0に推論される(indicates the patch index of the j-th patch in tile group with index i that is to be updated in the patch information table. The number of bits used to represent pi_patch_idx[i] is Equal to pi_log2_max_patch_idx_updated. When pi_patch_idx[i] is not present in the bitstream, its value shall be inferred to be Equal to 0)。
パッチ取り消しフラグ(pi_patch_cancel_flag[i][j]):この値が1であると、インデックスiを有するタイルグループ又はタイル内のインデックスjを有するパッチがパッチ情報テーブルから除去されることを示す(Equal to 1 indicates that the patch with index j in tile group with index i shall be removed from the patch information table)。
pi_patch_cancel_flag[j][p]が1ではないと、以下の要素がパッチ情報内に含まれる。
パッチ客体数(pi_patch_number_of_objects_minus1[i][j]):インデックスiを有するタイルグループ又はタイル内インデックスjを有するパッチに連関する客体の数を示す(indicates the number of objects that are to be associated with the patch with index j in tile group with index i)。
m=pi_patch_number_of_objects_minus1[j][p]+1のようにセットされ、mの値だけ以下の要素がパッチ情報内に含まれる。
パッチ客体インデックス(pi_patch_object_idx[i][j][k]):インデックスiを有するタイルグループ又はタイル内のj番目のパッチに連関するk番目の客体インデックスを示す。pi_patch_object_idx[i]を示すために使用されるビットの数は、pi_log2_max_object_idx_trackedである。pi_patch_object_idx[i]がビットストリーム内に存在しないと、その値は0に等しいと推論される(indicates the K-th object index that is associated with the j-th patch in tile group with index i. The number of bits used to represent pi_patch_object_idx[i] is Equal to pi_log2_MAX_object_idx_tracked. When pi_patch_object_idx[i] is not present in the bitstream, its value shall be inferred to be Equal to 0)。
図49は実施例によるボリュメトリック矩形情報(Volumetric Rectangle Information)を示す。
図49は図32のようにビットストリーム32000に含まれるサンプルストリームNALユニットのSEIメッセージに関するボリュメトリック矩形情報のシンタックスを示す。
取り消しフラグ(vri_cancel_flag):この値が1であると、ボリュメトリック矩形情報SEIメッセージがアウトプット順に以前のボリュメトリック矩形情報SEIメッセージの残存を取り消すことを示す。ボリュメトリック矩形情報テーブル内の全てのエントリーが除去されることを示す(Equal to 1 indicates that the volumetric rectangles information SEI message cancels the persistence of any previous volumetric rectangles information SEI message in output order and that all entries in the volumetric rectangle information table shall be removed)。
更新矩形数(vri_num_rectangles_updates):現在SEIにより更新されるボリュメトリック矩形の数を示す(indicates the number of volumetric rectangles that are to be updated by the current SEI)。
vri_num_rectangles_updatesが0より大きいと、以下の要素がボリュメトリック矩形情報に含まれる。
トラックされた客体インデックスの最大値(vri_log2_max_object_idx_tracked):現在ボリュメトリック矩形情報SEIメッセージ内のトラックされた客体インデックス値をシグナリングするために使用されるビットの数を示す(specifies the number of bits used to signal the value of a tracked object index in the current volumetric rectangle information SEI message)。
更新された矩形インデックスの最大値(vri_log2_max_rectangle_idx_updated):現在ボリュメトリック矩形情報SEIメッセージ内の更新されたボリュメトリック矩形インデックス値をシグナリングするために使用されるビットの数を示す(specifies the number of bits used to signal the value of an updated volumetric rectangle index in the current volumetric rectangle information SEI message)。
vri_num_rectangles_updates値だけ以下の要素がボリュメトリック矩形情報に含まれる。
矩形インデックス(vri_rectangle_idx[i]]):ボリュメトリック矩形情報テーブル内に更新されるi番目のボリュメトリック矩形インデックスを示す。vri_rectangle_idx[i]を示すために使用されるビットの数は、vri_log2_max_rectangle_idx_updatedである。vri_rectangle_idx[i]がビットストリーム内に存在しない場合、その値は0に等しい(indicates the i-th volumetric rectangle index that is to be updated in the volumetric rectangle information table. The number of bits used to represent vri_rectangle_idx[i] is equal to vri_log2_max_rectangle_idx_updated. When vri_rectangle_idx[i] is not present in the bitstream, its value shall be inferred to be equal to 0)。
矩形取り消しフラグ(vri_rectangle_cancel_flag[i]):この値が1であると、インデックスiを有するボリュメトリック矩形がボリュメトリック矩形情報テーブルから除去されることを示す(Equal to 1 indicates that the volumetric rectangle with index i shall be removed from the volumetric rectangle information table)。
vri_rectangle_cancel_flag[p]が1ではないと、以下の要素がボリュメトリック矩形情報に含まれる。
バウンディングボックス更新フラグ(vri_bounding_box_update_flag[i]):この値が1であると、インデックスiを有するボリュメトリック矩形に対する2Dバウンディングボックス情報が更新されることを示す。この値が0であると、インデックスiを有するボリュメトリック矩形に対する2Dバウンディングボックス情報が更新されないことを示す(Equal to 1 indicates that 2D bounding box information for the volumetric rectangle with index i should be updated. vti_bounding_box_update_flag[i] Equal to 0 indicates that 2D bounding box information for the volumetric rectangle with index i should not be updated)。
vri_bounding_box_update_flag[p]が1であると、以下の要素がボリュメトリック矩形情報に含まれる。
バウンディングボックス上部(vri_bounding_box_top[i]):現在アトラスフレーム内のi番目のボリュメトリック矩形のバウンディングボックスの左上部ポジションの垂直座標値を示す。この値のデフォルト値は0に等しい(indicates the vertical coordinate value of the top-left position of the bounding box of the i-th volumetric rectangle within the current atlas frame. The default value of vri_bounding_box_top[i] is equal to 0)。
バウンディングボックス左部(vri_bounding_box_left[i]):現在アトラスフレーム内のi番目のボリュメトリック矩形のバウンディングボックスの左上部ポジションの水平座標値を示す。この値のデフォルト値は0に等しい(indicates the horizonal coordinate value of the top-left position of the bounding box of the i-th volumetric rectangle within the current atlas frame. The default value of vri_bounding_box_left[i] is equal to 0)。
バウンディングボックス幅(vri_bounding_box_width[i]):i番目のボリュメトリック矩形のバウンディングボックスの幅を示す。この値のデフォルト値は0に等しい(indicates the width of the bounding box of the i-th volumetric rectangle. The default value of vri_bounding_box_width[i] is equal to 0)。
バウンディングボックス高さ(vri_bounding_box_height[i]):i番目のボリュメトリック矩形のバウンディングボックスの高さを示す。この値のデフォルト値は0に等しい(indicates the height of the bounding box of the i-th volumetric rectangle. The default value of vri_bounding_box_height[i] is equal to 0)。
矩形客体数(vri_rectangle_number_of_objects_minus1[i]):i番目のボリュメトリック矩形に関連する客体の数を示す(indicates the number of objects that are to be associated with the i-th volumetric rectangle)。
m値がvri_rectangle_number_of_objects_minus1[p]+1にセットされ、m値に対して以下の要素がボリュメトリック矩形情報に含まれる。
矩形客体インデックス(vri_rectangle_object_idx[i][j]):i番目のボリュメトリック矩形に関連するj番目の客体インデックスを示す。vri_rectangle_object_idx[i]を示すために使用されるビット数はvri_log2_max_object_idx_trackedである。vri_rectangle_object_idx[i]がビットストリーム内に存在しない場合、その値は0に推論される(indicates the j-th object index that is associated with the i-th volumetric rectangle. The number of bits used to represent vri_rectangle_object_idx[i] is equal to vri_log2_max_object_idx_tracked. When vri_rectangle_object_idx[i] is not present in the bitstream, its value shall be inferred to be Equal to 0)。
図50は実施例によるサンプルストリームvpccユニットの構成を示す。
図50は図26のビットストリーム26000、図27のビットストリーム27000及び図32のビットストリーム32000などの具体的な含み関係を示す。
図50はアトラスサブビットストリーム内のSEIメッセージ階層構造を示す。
実施例による送信方法/装置は図50のようにアトラスサブビットストリームを生成する。
アトラスサブビットストリーム構成するNALユニットデータの関係が生成される。
アトラスサブビットストリームのうち、追加されたSEIメッセージにおいて、volumetric_tiling_info_objects()に該当する情報はscene_object_information()である。各パッチ内に属する客体との関係を示すpatch_information()、及び1つ以上の客体に対して割り当てられるvolumetric_rectangle_information()情報がある。
ビットストリーム48000は図26のビットストリーム26000に対応する。
ビットストリーム48000のアトラスデータに含まれたv-pccユニットのペイロードに含まれたNALユニット48010は図32のビットストリーム32000に対応する。
図50のアトラスフレームパラメータセット50020は図36のアトラスフレームパラメータセットに対応する。
図50のアトラスタイルグループ(又はタイル)レイヤ50030は図40のアトラスタイルグループ(又はタイル)レイヤに対応する。
図50のSEIメッセージ50040は図46ないし図49のSEIメッセージに対応する。
図50のアトラスフレームタイル情報50050は図37のアトラスフレームタイル情報に対応する。
図50のアトラスタイルグループ(又はタイル)ヘッダ50060は図40のアトラスタイルグループ(又はタイル)ヘッダに対応する。
図50のシーン客体情報50070は図46のシーン客体情報に対応する。
図50の客体ラベル情報50080は図47の客体ラベル情報に対応する。
図50のパッチ情報50090は図48のパッチ情報に対応する。
図50のボリュメトリック矩形情報50100は図49のボリュメトリック矩形情報に対応する。
アトラスフレームタイル情報50050はアトラスタイルグループ(又はタイル)IDにより識別され、アトラスフレームパラメータセット50020に含まれる。
アトラスタイルグループ(又はタイル)レイヤ50030はアトラスタイルグループ(又はタイル)ヘッダ50060を含み、アトラスタイルグループ(又はタイル)アドレスによりアトラスタイルグループ(又はタイル)ヘッダが識別される。
シーン客体情報50070は客体インデックス及び客体ラベルインデックスにより識別される。
客体ラベル情報50080はラベルインデックスにより識別される。
パッチ情報50090はタイルグループ(又はタイル)アドレス及びパッチ客体インデックスにより識別される。
ボリュメトリック矩形情報50100は矩形客体インデックスにより識別される。
実施例による送信方法/装置はポイントクラウドデータを符号化して、図50のような参照/含み関係の情報を生成してビットストリームを生成する。
実施例による受信方法/装置は図50のようなビットストリームを受信して、ビットストリームに含まれたポイントクラウドデータを復元する。また、ビットストリームに含まれた図50のようなアトラスデータに基づいてポイントクラウドデータを効率的に復号して復元する。
図51は実施例によるアトラスタイルグループ(又はタイル)の構成を示す。
図51は実施例による方法/装置がビットストリームで表現してシグナリングする、ポイントクラウドデータに対するビデオフレーム、アトラス、パッチ、客体間の関係を示す。
アトラスフレームは実施例による送受信装置のメタデータ処理部18005,19002により生成されて復号される。その後、アトラスフレームを示すアトラスビットストリームは実施例による送受信装置のカプセル化部/デカプセル化部20004,20005,21009,22000などにより実施例によるフォーマットに形成されて送受信される。
客体はポイントクラウドデータで表現される対象である。
実施例によって、客体(Object)の位置及び/又はサイズなどが動的に変化する。このとき、変化するアトラスタイルグループ(Atlas Tile Group)又はアトラスタイルの構成は図49の通りである。
1つ以上の客体をなす複数のシーン客体(scene object)(O1ないしO2)でパッチ(P1ないしP3)が構成される。フレーム1(ビデオフレーム1)は3つのアトラスタイルグループ(atlas tile group)で構成される。
実施例によるアトラスタイルグループはアトラスタイルと称される。第1~第3アトラスタイルグループはアトラスタイル1ないし3に対応する。
第1アトラスタイルグループは3つのパッチを含む。パッチ1(P1)は3つの客体(O1ないしO3)を含む。パッチ2(P2)は1つの客体(O2)を含む。パッチ3(P3)は1つの客体(O1)を含む。
実施例による方法/装置はパッチ情報(図48のpatch_information())に含まれた客体IDに該当するフィールド(pi_patch_object_idx[j])に基づいてパッチ及び客体間のマッピング関係を表現する。
アトラスタイルグループ(又はタイル)2は2つのpatch(P1,P2)を含む。Patch1(P1)は1つのobject(O1)を、patch2(P2)は2つのobject(O2)を含む。
実施例による方法/装置はパッチ情報(図48のpatch_information)に含まれた客体IDに該当するフィールド(pi_patch_object_idx[j])に基づいてマッピング関係を表現する。
アトラスタイルグループ(又はタイル)3は3つのpatch(P1,P2,P3)を含む。Patch1(P1)は1つのobject(O2)を含む。
実施例による方法/装置はパッチ情報(図48のpatch_information)に含まれた客体IDに該当するフィールド(pi_patch_object_idx[j])に基づいてマッピング関係を示す。
フレーム2は3つのアトラスタイルグループ(又はタイル)で構成される。
アトラスタイルグループ(又はタイル)1(49000)は2つのpatch(P1,P2)を含む。Patch1は2つのobject(O1,O2)を含む。patch2は1つのobject(O1)を含む。
実施例による方法/装置はパッチ情報(図46のpatch_information)に含まれた客体IDに該当するフィールド(pi_patch_object_idx[j])に基づいてマッピング関係を示す。
アトラスタイルグループ(又はタイル)2(49010)は2つのpatch(P1,P2)を含む。Patch1(P1)は1つのobject(O2)を含む。patch2(P1)は2つのobjectを含む。
実施例による方法/装置はパッチ情報(図48のpatch_information)に含まれた客体IDに該当するフィールド(pi_patch_object_idx[j])に基づいてマッピング関係を示す。
アトラスタイルグループ(又はタイル)3は2つのpatch(P1,P2)を含む。Patch1(P1)は1つのobject(O1)を含む。
実施例による方法/装置はパッチ情報(図48のpatch_information)に含まれた客体IDに該当するフィールド(pi_patch_object_idx[j])に基づいてマッピング関係を示す。
実施例によるポイントクラウドデータ送受信方法/装置に含まれるか又は連結されたV-PCC(V3C)システムで生成されて送受信されるデータの構造について説明する。
以下、図24及び図25に説明したように、対応する実施例による方法/装置はファイルを生成し、ファイル内の以下のデータを生成して送受信する。
実施例による送信方法/装置は符号化されたポイントクラウドデータを含むビットストリームに基づいて以下のデータ構造を生成して送信し、実施例による受信方法/装置は以下のデータ構造を受信してパースして、ビットストリーム内に含まれたポイントクラウドデータを復元する。
ビデオ基盤のポイントクラウド圧縮は、ポイントクラウドビジュアル情報のボリュメトリック符号化を示す。コーディングされたポイントクラウドシーケンス(coded point cloud sequence,CPCS)を含むV-PCCビットストリームは、V-PCCパラメータセット(VPS)データ、コーディングされたアトラスビットストリーム、2Dビデオ符号化された占有マップビットストリーム、2Dビデオ符号化されたジオメトリビットストリーム及びゼロ又は1つ以上の2Dビデオ符号化された特質ビットストリームを伝達するV-PCCユニットで構成される。
ボリュメトリックビジュアルトラック(Volumetric visual track)
ボリュメトリックビジュアルトラックは、ボリュメトリックビジュアルメディアヘッダ及びメディアボックス(MediaBox)のハンドラーボックス(HandlerBox)内のボリュメトリックビジュアルメディアハンドラータイプ‘volv’により識別される。マルチボリュメトリックビジュアルトラックはファイル内に存在する。
ボリュメトリックビジュアルメディアヘッダ(Volumetric visual Media header)
box Type:‘vvhd’
Container:MediaInformationBox
Mandatory:Yes
Quantity:Exactly one
ボリュメトリックビジュアルメディアヘッダのボックスタイプは‘vvhd’であり、コンテナはメディア情報ボックス(MediaInformationBox)である。必須情報であり、1つのヘッダとして存在する。
ボリュメトリックビジュアルトラックはメディア情報ボックス(MediaInformationbox)内のボリュメトリックビジュアルメディアヘッダボックス(VolumetricVisualMediaHeaderBox)を使用する。
ボリュメトリックビジュアルメディアヘッダボックス(VolumetricVisualMediaHeaderBox)の構造は以下の通りである。
aligned(8) class VolumetricVisualMediaHeaderBox
extends FullBox(‘vvhd’, version=0、1){
バージョン(version)はこのボックスのバージョンを示す整数値である。
ボリュメトリックビジュアルサンプルエントリー(Volumetric visual sample entry)
ボリュメトリックビジュアルトラックは、ボリュメトリックビジュアルサンプルエントリー(VolumetricVisualSampleEntry)を使用する。
ボリュメトリックビジュアルサンプルエントリー(VolumetricVisualSampleEntry)の構造は以下の通りである。
class VolumetricVisualSampleEntry(codingname) extends SampleEntry(codingname){
unsigned int(8)[32] compressor_name;
コンプレッサーネイム(compressor_name)は有益な目的のための名前である。固定32-バイトフィールド内に構成される。UTF-8を使用して符号化されるディスプレイ可能なデータの複数のバイトに続いて1番目のバイトはディスプレイされる複数のバイトにセットされる。また、サイズバイトを含む完全な32バイトの全体にパッドされる。このフィールドは0にセットされる(is a name, for informative purposes. It is formatted in a fixed 32-byte field, with the first byte set to the number of bytes to be displayed, followed by that number of bytes of displayable data encoded using UTF-8, and then padding to complete 32 bytes Total (including the size byte). The field may be set to 0)。
ボリュメトリックビジュアルサンプル(Volumetric visual samples)
ボリュメトリックビジュアルサンプルのフォーマットはコーディングシステムにより定義される。
以下、V-PCCシステムにより生成される共通データ構造(Common data structure)について説明する。
V-PCCユニットヘッダボックス(V-PCC unit header box)
このボックスはV-PCCトラック(サンプルエントリー内)及び全てのビデオコーディングされたV-PCCコンポーネントトラック(スキーム情報内)の両方に存在する。このボックスは各トラックにより伝達されるデータに対するV-PCCユニットヘッダを含む。
V-PCCユニットヘッダボックスの構造は以下の通りである。
aligned(8) class VPCCUnitHeaderBox extends FullBox(‘vunt’, version=0,0){
vpcc_unit_header() unit_header;
このボックスはvpcc_unit_header()を上記のように含む。
V-PCCデコーダ構成ボックス(V-PCC decoder configuration box)
V-PCCデコーダ構成ボックスはV-PCCデコーダ構成レコード(VPCCDecoderConfigurationRecord)を含む。
class VPCCConfigurationBox extends Box(’vpcc’){
VPCCDecoderConfigurationRecord() VPCCConfig;
このレコードはバージョンフィールドを含む。このバージョンはこのレコードのバージョン1を定義する。レコードについて共に使えない変更はバージョン番号の変更により表示される(This record contains a version field. This version of the specification defines version 1 of this record. Incompatible changes to the record will be indicated by a change of version number. Readers are not attempt to decode this record or the streams to which it applies IF the version number is unrecognized)。
V-PCCパラメータセットはVPCC_parameter_set()を含む。
セットアップユニット(SetupUnit)アレイはサンプルエントリーにより称されるストリームに対してコンスタント(constant)することができる。デコーダ構成レコードはアトラスサブストリームSEIメッセージと共に存在する。
aligned(8) class VPCCDecoderConfigurationRecord{
unsigned int(8) configurationVersion=1;
unsigned int(2) lengthSizeMinusOne;
bit(1) reserved=1;
unsigned int(5) numOfVPCCParameterSets;
for (i=0;i<numOfVPCCParameterSets;i++){
unsigned int(16) VPCCParameterSetLength;
vpcc_unit(VPCCParameterSetLength)vpccParameterSet;//as defined in ISO/IEC 23090-5
unsigned int(8) numOfSetupUnitArrays;
for(j=0;j<numOfSetupUnitArrays;j++){
bit(1) array_completeness;
bit(1) reserved=0;
unsigned int(6) NAL_unit_type;
unsigned int(8) numNALUnits;
for(i=0;i<numNALUnits;i++){
unsigned int(16) SetupUnitLength;
nal_unit(SetupUnitLength) setupUnit; //as defined in ISO/IEC 23090-5
構成バージョン(configurationVersion)はバージョンフィールドである。レコードに対する両立不可な変化はバージョン番号の変化により表示する。
長さサイズ(lengthSizeMinusOne):この値に1を加えると、この構成レコードが適用されるストリーム内のV-PCCサンプル内のNALユニット長さ(NALUnitLength)フィールドのバイト内の長さを示す。
例えば、1バイトのサイズは0の値で表示される。このフィールド値はアトラスサブストリームに対するサンプルストリームNALヘッダ(sample_stream_nal_header)内のssnh_unit_size_precision_bytes_minus1である。
V-PCCパラメータセット数(numOfVPCCParameterSets):デコーダ構成レコード内にシグナリングされるV-PCCパラメータセットユニットの数を示す。
V-PCCパラメータセット長さ(VPCCParameterSetLength):V-PCCパラメータセットフィールドのバイト内のサイズを示す。
V-PCCパラメータセット(vpccParameterSet):VPCC_parameter_set()を伝達するVPCC_VPSタイプのV-PCCユニットである。
セットアップユニットアレイ数(numOfSetupUnitArrays):指示されるタイプのアトラスNALユニットのアレイ数を示す。
アレイ完成度(array_completeness):この値が1であると、所定のタイプの全てのアトラスNALユニットが以下のアレイに存在し、ストリーム内にないことを示す。この値が0であると、指示されたタイプの追加アトラスNALユニットがストリーム内に存在することを示す。デフォルト及び許容された値はサンプルエントリーネイムにより制約を受ける。
NALユニットタイプ(NAL_unit_type):以下のアレイ内にアトラスNALユニットのタイプを示す。NAL_ASPS、NAL_PREFIX_SEI又はNAL_SUFFIX_SEIアトラスNALユニットを示す値のいずれかである。
NALユニット数(numNALUnits):この構成レコードが適用されるストリームに対する構成レコード内に含まれた指示されたタイプのアトラスNALユニットの数を示す。SEIアレイはただSEIメッセージだけを含む。
セットアップユニット長さ(SetupUnitLength):セットアップユニットフィールドのバイト内のサイズを示す。長さフィールドはNALユニットヘッダ及びNALユニットペイロードのサイズを含み、長さフィールド自体を含まない。
セットアップユニット(setupUnit):タイプNAL_ASPS、NAL_AFPS、NAL_PREFIX_ESEI、NAL_PREFIX_NSEI、NAL_SUFFIX_ESEI又はNAL_SUFFIX_NSEIのNALユニットを含む。セットアップユニット内に存在しない場合、NAL_PREFIX_ESEI、NAL_PREFIX_NSEI、NAL_SUFFIX_ESEI又はNAL_SUFFIX_NSEIはSEIメッセージを含む。即ち、ストリームに関する情報を提供する。このようなSEIの例示はユーザ-データSEIである。
図52は実施例によるV-PCC空間領域ボックス(VPCC Spatial RegionS box)の構造を示す。
実施例によるポイントクラウドデータ送受信装置及び送受信装置に含まれるか又は連結されるシステムが生成及び送受信するファイル(図24及び図25を参照)内に含まれるボックスは、V-PCC空間領域ボックス(VPCC Spatial RegionS box)を含む。
このボックスはVPCC空間領域(VPCC spatial region)の3Dバウンディングボックス情報及び空間領域に関連するラベル情報、アトラスタイプグループID(又はアトラスタイルID)及びアトラスタイルグループ(又はタイル)に含まれるパッチIDのような情報を含む。
また、このボックスは空間領域に関連するV-PCCコンポーネントトラックグループ(V-PCC component track group)情報を含む。
V-PCC空間領域ボックス(VPCC Spatial RegionS box)はv-pccトラックのサンプルエントリーに含まれる。
領域数(num_regions):ポイントクラウド内の3D空間領域の数を示す。
領域タイルグループ(又はタイル)数(num_region_tile_groupS):空間領域に含まれるV-PCC客体の一部データに連関するアトラスタイプグループ(又はタイル)の数を示す。
更新パッチ数(num_patch_updates):各々のアトラスタイプグループ(又はタイル)が有しているパッチのうち、該当する空間領域に含まれるV-PCC客体の一部データに連関するアトラスタイルグループ(又はタイル)に属するパッチの数を示す。
パッチID(patch_id):各々のアトラスタイルグループ(又はタイル)が有しているパッチのうち、該当する空間領域に含まれるV-PCC客体の一部データに連関するアトラスタイルグループ(又はタイル)に属するpatchのpatch idを示す。
トラックグループの数(num_track_groupS):3D空間領域に関連するトラックグループの数を示す。
トラックグループID(track_group_id):関連する3D空間領域のためのV-PCCコンポーネントを伝達するトラックに対するトラックグループを示す。
ラベルID(label_id)は該当する空間領域(spatial region)に含まれるV-PCC客体の一部データに連関するアトラスタイルグループ(又はタイル)に関連するラベルID(label id)を示す。
ラベル言語(label_language)は該当する空間領域に含まれるV-PCC客体の一部データに連関するアトラスタイルグループ(又はタイル)に関連するラベルの言語(language)情報を示す。
ラベルネイム(label_name)は該当する空間領域に含まれるV-PCC客体の一部データに連関するアトラスタイルグループ(又はタイル)に関連するラベルネイム(label name)情報を示す。
実施例によるポイントクラウドデータ送受信方法/装置及び送受信装置に含まれたシステムはサンプルグループを生成する。
V-PCCアトラスパラメータセットサンプルグループ(V-PCC atlas parameter set sample group)
サンプルグルーピングに対する’vaps’グルーピングタイプは、V-PCCトラック内のサンプルのこのサンプルグループ内で伝達されるアトラスパラメータセットに対する配置を示す。グルーピングタイプ(grouping_type)が’vaps’であるサンプルツーグループボックス(SampleToGroupBox)が存在する場合、伴うサンプルグループ記述ボックスが存在し、サンプルが属するこのグループのIDを含む。
V-PCCトラックは’vaps’と同一のグルーピングタイプ(grouping_type)を有する最大1つのサンプルツーグループボックスを含む。
aligned(8) class VPCCAtlasParamSampleGroupDescriptionEntry() extends SampleGroupDescriptionEntry(’vaps’){
unsigned int(8) numOfSetupUnits;
for (i=0;i<numOfSetupUnits;i++){
unsigned int(16) setupUnitLength;
nal_unit(setupUnitLength) setupUnit;
アトラスパラメータセット数(numOfAtlasParameterSets):サンプルグループ記述内にシグナリングされるアトラスパラメータセットの数を示す。
アトラスパラメータセット(atlasParameterSet):サンプルのこのグループに連関するアトラスシーケンスパラメータセット、アトラスフレームパラメータセットを含むサンプルストリームVPCCユニット(sample_stream_vpcc_unit())インスタンスである。
実施例によるV-PCCアトラスパラメータサンプルグループ記述エントリーは以下のように表現できる。
aligned(8) class VPCCAtlasParamSampleGroupDescriptionEntry() extends SampleGroupDescriptionEntry(’vaps’){
unsigned int(3) lengthSizeMinusOne;
unsigned int(5) numOfAtlasParameterSets;
for (i=0;i<numOfAtlasParameterSetn;i++){
sample_stream_nal_unit atlasParameterSetNALUnit;
サイズ長さ(lengthSizeMinusOne):この値に1を加えると、このサンプルグループ記述内にシグナリングされる全てのサンプルストリームNALユニット内のNALユニットサイズ(ssnu_nal_unit_size)要素のバイト内の精度を示す(plus 1 indicates the precision, in bytes, of the ssnu_nal_unit_size element in all sample stream NAL units signalled in this sample group description)。
アトラスパラメータセットNALユニットはサンプルのこのグループに連関するアトラスシーケンスパラメータセット、アトラスフレームパラメータセットを含むサンプルストリームNALユニット(sample_stream_nal_unit())である。
実施例によるポイントクラウドデータ送受信方法/装置及び送受信装置に含まれたシステムは、動的空間領域サンプルグループ(Dynamic Spatial Region Sample Group)を生成する。
サンプルグルーピングのための’dysr’グルーピングタイプ(grouping_type)は、V-PCCトラック内のサンプルのこのサンプルグループ内に伝達される空間領域ボックスへの配置を示す。
’dysr’グルーピングタイプを有するサンプルツーグループボックス(SampleToGroupBox)が存在する場合、同一のグルーピングタイプを有する伴うサンプルグループ記述ボックス(SampleGroupDescriptionBox)が存在し、サンプルが属するこのグループのIDを含む。
V-PCCトラックは’dysr’グルーピングタイプを有する最大1つのサンプルツーグループボックスを含む。
aligned(8) class Dynamic3DspatialRegionSampleGroupDescriptionEntry() extends SampleGroupDescriptionEntry(’dysr’){
VPCCSpatialRegionsBox();
実施例によるポイントクラウドデータ送受信方法/装置及び送受信装置に含まれたシステムは、トラックグルーピング(Track grouping)を以下のように提供する。
空間領域トラックグルーピング(Spatial region track grouping)
’3drg’であるトラックグループタイプ(track_group_type)を有するトラックグループタイプボックス(TrackGroupTypeBox)は、このトラックが3D空間領域に対応するV-PCCコンポーネントトラックのグループに属することを示す。同一の空間領域に属するトラックがトラックグループタイプ’3drg’に対するトラックグループID(track_group_id)の同じ値を有する。1つの空間領域からのトラックのトラックグループID(track_group_id)は、他の空間領域のトラックのトラックグループID(track_group_id)とは異なる。
aligned(8) class SpatialRegionGroupBox
extends TrackGroupTypeBox(’3drg’){
実施例によるポイントクラウドデータ送受信方法/装置及び送受信装置に含まれたシステムは、V-PCCビットストリームのマルチトラックコンテナ(Multi track container of V-PCC Bitstream)を以下のように提供する。
マルチトラックISOBMFF V-PCCコンテナの一般的なレイアウト、
V-PCCビットストリーム内のV-PCCユニットがタイプに基づいてコンテナファイル内の個々のトラックにマッピングされる。マルチトラックISOBMFF V-PCCコンテナ内に2つのタイプのトラックがある。2つのタイプのトラックはV-PCCトラック及びV-PCCコンポーネントトラックである。
V-PCCコンポーネントトラックはV-PCCビットストリームの占有マップ、ジオメトリ及び特質サブビットストリームに対する2Dビデオ符号化データを伝達するビデオスキームトラックである。V-PCCコンポーネントトラックは以下の条件に従う。
a)サンプルエントリー内、V-PCCシステム内のこのトラックに含まれるビデオストリームの役割を説明する新しいボックスが挿入される。
b)トラック参照はV-PCCトラックにより表現される特定のポイントクラウド内のV-PCCコンポーネントトラックのメンバーシップを成立するために、V-PCCトラックからV-PCCコンポーネントトラックに導入される。V-PCCトラックにより表現される特定のポイントクラウド内のV-PCCコンポーネントトラックのメンバーシップを成立するために、
c)このトラックが直接ムービーの全般的なレイアップに寄与せず、V-PCCシステムに寄与することを表現するように、トラックヘッダフラグが0にセットされる。
同一のV-PCCシーケンスに属するトラックが時間によって調整される。異なるビデオ コーディングされたV-PCCコンポーネントトラックに対して同一のポイントクラウドデータに寄与するサンプル及びV-PCCトラックは同一のプレゼンテーション時間を有する。かかるサンプルに対して使用されるV-PCCアトラスシーケンスパラメータセット及びアトラスフレームパラメータセットは、ポイントクラウドフレームのコンポジションタイム(composition time)に先立つか又は同じ復号タイムを有する。同一のV-PCCシーケンスに属する全てのトラックは同一の暗黙的又は明示的な編集リストを有する(Tracks belonging to the same V-PCC sequence are time-aligned. Samples that contribute to the same point cloud frame across the different video-encoded V-PCC component tracks and the V-PCC track has the same presentation time. The V-PCC atlas sequence parameter sets and atlas frame parameter sets used for such samples have a decoding Time Equal or prior to the composition Time of the point cloud frame. In addition, all tracks belonging to the same V-PCC sequence have the same implied or explicit edit lists)。
コンポーネントトラック内の基本ストリーム間の同期化はISOBMFFトラックタイミング構造(stts,ctts及びcslg)又はムービーフラグメント内の同等なメカニズムにより処理される(Synchronization between the elementary streams in the component tracks are handled by the ISOBMFF track timing structures(stts, ctts and CSLG), or equivalent mechanismS in movie fragments)。
V-PCCトラック及びV-PCCコンポーネントトラック内の同期サンプルは時間によって整列されるか又は整列されない。時間整合のない場合、任意アクセスは所望の時間に開始することを可能にするために、異なる同期開始時間から様々なトラックをプリ・ローリングすることを含む。時間整合の場合、(例えば、V-PCCプロファイルにより要求される)V-PCCトラックの同期サンプルは、V-PCCコンテンツに対する任意アクセスポイントとして考慮される。任意アクセスはただV-PCCトラックの同期サンプル情報を参照することにより行われる(The sync samples in the V-PCC track and V-PCC component tracks may or may not be time-aligned. In the absence of time-alignment, random access may involve pre-rolling the various tracks from different sync start-times, to enable starting at the desired time. In the case of time-alignment(e.g. required by a V-PCC profile such as the Basic toolset profile as defined in [VPCC]), the sync samples of the V-PCC track should be considered as the random access points for the V-PCC content, and random access should be done by only referencing the sync sample information of the V-PCC track)。
このようなレイアウトに基づいてV-PCC ISOBMFFコンテナは以下を含む。
V-PCCパラメータセット及びアトラスサブビットストリームパラメータ(サンプルエントリー内)及びアトラスサブビットストリームNALユニットを伝達するサンプルを含むV-PCCトラック。またこのトラックは、ユニットタイプVPCC_OVD、VPCC_GVD及びVPCC_AVDのようなビデオ圧縮されたV-PCCユニットのペイロードを伝達する他のトラックを参照するトラックを含む(a V-PCC track which contains V-PCC parameter sets and atlas sub-bitstream parameter sets (in the sample entry) and samples carrying atlas sub-bitstream NAL units. This track also includes track references to other tracks carrying the payloads of video compressed V-PCC units(i.e., unit types VPCC_OVD, VPCC_GVD, and VPCC_AVD))。
サンプルがVPCC_OVDタイプのV-PCCユニットのペイロードのような占有マップデータに対するビデオコーディングされた基本ストリームのアクセスユニットを含む、ビデオスキームトラック(a restricted video scheme track where the samples contain access units of a video-coded elementary stream for occupancy map data(i.e., payloads of V-PCC units of type VPCC_OVD))。
サンプルがVPCC_GVDタイプのV-PCCユニットのペイロードのようなジオメトリデータに対するビデオコーディングされた基本ストリームのアクセスユニットを含む、1つ又は1つ以上のビデオスキームトラック(One or more restricted video scheme tracks where the samples contain access units of video-coded elementary streams for geometry data(i.e., payloads of V-PCC units of type VPCC_GVD))。
サンプルがVPCC_AVDタイプのV-PCCユニットのペイロードのような特質データのビデオコーディングされた基本ストリームのアクセスユニットを含む、ゼロ又は1つ以上のビデオスキームトラック(Zero or more restricted video scheme tracks where the samples contain access units of video-coded elementary streams for attribute data (i.e., payloads of V-PCC units of type VPCC_AVD))。
実施例によるポイントクラウドデータ送受信方法/装置及び送受信装置に含まれたシステムは、V-PCCトラックを以下のように提供する。
V-PCCトラックサンプルエントリー(V-PCC Track Sample Entry)
Sample Entry Type:’vpc1’, ’vpcg’
Container:SampleDescriptionBox
Mandatory:A ’vpc1’ or ’vpcg’ sample entry is mandatory
Quantity:One or more sample entries may be present
V-PCCトラックサンプルエントリー(V-PCC Track Sample Entry)のサンプルエントリータイプは’vpc1’、’vpcg’であり、コンテナはサンプル記述ボックスであり、’vpc1’又は’vpcg’サンプルは必須であり、1つ又は1つ以上のサンプルエントリーが存在する。
V-PCCトラックは’vpc1’又は’vpcg’のサンプルエントリータイプを有するボリュメトリックビジュアルサンプルエントリーを拡張するV-PCCサンプルエントリーを使用する。V-PCCトラックサンプルエントリーはV-PCC構成ボックスを含む。
’vpc1’サンプルエントリーにおいて、全てのアトラスシーケンスパラメータセット、アトラスフレームパラメータセット又はV-PCC SEIがセットアップユニット内にある。’vpcg’サンプルエントリーにおいて、アトラスシーケンスパラメータセット、アトラスフレームパラメータセット、V-PCC SEIがこのアレイ内又はストリーム内に存在する。
任意(optional)のビットレイトボックス(BitRateBox)は、V-PCCトラックのビットレイト情報をシグナリングするためにV-PCCボリュメトリックサンプルエントリー内に存在する。
aligned(8) class VPCCSampleEntry() extends VolumetricVisualSampleEntry (’vpc1’){
VPCCConfigurationBox config;
VPCCUnitHeaderBox unit_header;
V-PCCトラックサンプルフォーマット(V-PCC track sample format)
V-PCCトラック内の各サンプルはシングルコーディングされたアトラスアクセスユニットに対応する。様々なコンポーネントトラック内のこのフレームに対応するサンプルはV-PCCトラックサンプルと同じコンポジションタイムを有する。各々のV-PCCサンプルは1つ又は1つ以上のアトラスNALユニットを含むタイプVPCC_ADのV-PCCユニットペイロードをただ1つ含む。
aligned(8) class VPCCSample {
unsigned int PointCloudPictureLength=sample_size;//size of sample(e.g., from SampleSizeBox)
for(i=0;i<PointCloudPictureLength;){
sample_stream_nal_unit nalUnit;
i+=(VPCCDecoderConfigurationRecord.lengthSizeMinusOne+1)*nalUnit.ssnu_nal_unit_size;
NALユニット(nalUnit):NALユニットサンプルストリームフォーマット内のシングルアトラスNALユニットを含む。
V-PCCトラック同期サンプル(V-PCC track sync sample)
V-PCCトラック内の同期サンプルはイントラー任意アクセスポイント(intra random access point,IRAP)コーディングされたアトラスアクセスユニットを含むサンプルである。ASPS、AAPS、AFPSのようなアトラスサブビットストリームパラメータセット及びSEIメッセージは必要な場合、任意アクセスのために同期サンプルで繰り返される。
実施例によるポイントクラウドデータ送受信方法/装置及び送受信装置に含まれたシステムは、ビデオコーディングされたV-PCCコンポーネントトラック(Video-encoded V-PCC component tracks)を以下のように提供する。
プレーヤ側でポイントクラウドを復元することなく、特質、ジオメトリ又は占有マップトラックから復号されたフレームをディスプレイすることが意味ないので、ビデオスキームタイプがかかるビデオコーディングされたトラックに対して定義される(Since it is not meaningful to display the decoded frames from attribute, geometry, or occupancy map tracks without reconstructing the point cloud at the player side, a restricted video scheme type is defined for these video-coded tracks)。
ビデオスキーム(Restricted video scheme)
V-PCCコンポーネントビデオトラックはビデオとしてファイル内に表現され、ビデオサンプルエントリーのスキーム情報ボックス(RestrictedSchemeInfoBox)のスキームタイプボックス(SchemeTypeBox)のスキームタイプ(scheme_type)フィールド内の’pccv’により識別される。
特質、ジオメトリ及び占有マップV-PCCコンポーネントを符号化するために使用されるビデオコーデック上に制限がない。かかるコンポーネントは異なるビデオコーデックを使用して符号化される。
スキーム情報(Scheme information)
スキーム情報ボックス(SchemeInformationBox)はV-PCCユニットヘッダボックス(VPCCUnitHeaderBox)を含み、存在する。
実施例によるポイントクラウドデータ送受信方法/装置及び送受信装置に含まれたシステムは、V-PCCコンポーネントトラックを参照するための方案を以下のように提供する。
V-PCCトラックをコンポーネントビデオトラックにリンクするために、3つのトラック参照タイプボックス(TrackReferenceTypeBoxes)がPCCトラックのトラックボックス(TrackBox)内、各コンポーネントに対して1つずつトラック参照ボックス(TrackReferenceBox)に追加される。
トラック参照タイプボックス(TrackReferenceTypeBox)はV-PCCトラックを参照するビデオトラックを指定するトラックID(track_IDs)のアレイを含む。
トラック参照タイプボックス(TrackReferenceTypeBox)の参照タイプ(reference_type)は、占有マップ、ジオメトリ又は特質、占有マップのようなコンポーネントのタイプを識別する。かかるトラック参照タイプは以下の通りである。
’pcco’:参照されたトラックはビデオコーディングされた占有マップV-PCCコンポーネントを含む。
’pccg’:参照されたトラックはビデオコーディングされたジオメトリV-PCCコンポーネントを含む。
’pcca’:参照されたトラックはビデオコーディングされた特質V-PCCコンポーネントを含む。
参照されたビデオトラックにより伝達され、トラックのスキーム情報ボックス(RestrictedSchemeInfoBox)内にシグナリングされるV-PCCコンポーネントのタイプは、V-PCCトラックからトラック参照の参照タイプにマッチングされる。
実施例によるポイントクラウドデータ送受信方法/装置及び送受信装置に含まれたシステムは、V-PCCビットストリームのシングルトラックコンテナ(Single track container of V-PCC Bitstream)を以下のように提供する。
V-PCCデータのシングルトラックカプセル化は、シングルトラック宣言により表現されるV-PCC符号化された基本ビットストリームを求める(a single-track encapsulation of V-PCC data requires the V-PCC encoded elementary bitstream to be represented by a single-track declaration)。
PCCデータのシングルトラックカプセル化は、V-PCC符号化されたビットストリームのシンプルISOBMFFカプセル化である場合に活用される。かかるビットストリームは追加プロセシングなしにシングルトラックとしてすぐ格納される。V-PCCユニットヘッダデータ構造はビットストリーム内に格納される。V-PCCデータのシングルトラックコンテナはマルチトラックファイル生成、トランスコーディング、DASH分割などの追加プロセシングに対するメディアワークフローに提供される。
実施例によるポイントクラウドデータ送受信方法/装置及び送受信装置に含まれたシステムは、V-PCCビットストリームトラック(V-PCC bitstream track)を以下のように提供する。
Sample Entry Type:’vpe1’, ’vpeg’
Container:SampleDescriptionBox
Mandatory:A ’vpe1’ or ’vpeg’ sample entry is mandatory
Quantity:One or more sample entries may be present
サンプルエントリータイプは’vpe1’、’vpeg’であり、コンテナはサンプル記述ボックスであり、’vpe1’又は’vpeg’サンプルエントリーは必須であり、1つ又は1つ以上のサンプルエントリーが存在する。
V-PCCビットストリームトラックは’vpe1’又は’vpeg’のサンプルエントリータイプを有するボリュメトリックビジュアルサンプルエントリー(VolumetricVisualSampleEntry)を使用する。
V-PCCビットストリームサンプルエントリーはV-PCC構成ボックスを含む。
’vpe1’サンプルエントリーにおいて、全てのアトラスシーケンスパラメータセット、アトラスフレームパラメータセット、SEIはセットアップユニットアレイ内にある。’vpeg’サンプルエントリーにおいて、アトラスシーケンスパラメータセット、アトラスフレームパラメータセット、SEIがアレイ内又はストリーム内に存在する。
aligned(8) class VPCCBitStreamSampleEntry() extends VolumetricVisualSampleEntry(’vpe1’){
VPCCConfigurationBox config;
V-PCCビットストリームサンプルフォーマット(V-PCC bitstream sample format)
V-PCCビットストリームサンプルは同一のプレゼンテーション時間、即ち、1つのV-PCCアクセスユニットに属する1つ又は1つ以上のV-PCCユニットを含む。サンプルは同期サンプルのように独立的であるか、又はV-PCCビットストリームトラックの他のサンプルに復号-従属的である。
V-PCCビットストリーム同期サンプル(V-PCC bitstream sync sample)
V-PCCビットストリーム同期サンプルは以下の条件を満たす。
独立して復号される。
復号順に同期サンプル後のサンプルが同期サンプルに先だってサンプル上の復号従属状態を有しない。
復号順に同期サンプル後の全てのサンプルが成功的に復号される。
V-PCCビットストリームサブサンプル(V-PCC bitstream sub-sample)
V-PCCビットストリームサブサンプルはV-PCCビットストリームサンプル内に含まれるV-PCCユニットである。
V-PCCビットストリームトラックはV-PCCビットストリームサブサンプルを並べるサンプルテーブルボックス(SampleTableBox)内又はムービーフラグメントボックス(MovieFragmentBoxes)の各々のトラックフラグメントボックス(TrackFragmentBox)内の1つのサブサンプル情報ボックス(SubSampleInformationBox)を含む(A V-PCC bitstream track shall contain one SubSampleInformationbox in its SampleTableBox, or in the TrackFragmentbox of each of its MovieFragmentBoxes, which lists the V-PCC bitstream sub-samples)。
サブサンプルを示すV-PCCユニットの32-ビットユニットヘッダがサブサンプル情報ボックス(SubSampleInformationBox)内のサブサンプルエントリーの32-ビットコーデック特定のパラメータ(codec_specific_parameters)フィールドにコピーされる。各々のサブサンプルのV-PCCユニットタイプはサブサンプル情報ボックス内のサブサンプルエントリーのコーデック特定のパラメータフィールドをパースすることにより識別される。
実施例によるシグナリング方案により、実施例による受信方法/装置は3D領域である領域ごとのタイルがどのように構成されるかを分かる。実施例による客体とは、ポイントクラウドデータの対象となる客体又はその客体の部分を示す。タイルはアトラスフレーム(2D)を分割する単位である。実施例による受信方法/装置はタイルがどの客体にマッチングされるかを分かる。つまり、実施例による受信方法/装置はポイントクラウドデータの部分接近を効率的に行うことができる。
図53は実施例による動的空間領域サンプル(DynamicSpatialRegionSample)を示す。
実施例によるポイントクラウドデータ送受信方法/装置及び送受信装置に含まれたシステムは、ポイントクラウドデータの動的空間領域(Dynamic spatial region)をシグナリングするために、動的空間領域に関する情報をファイル(図24及び図25を参照)内で生成して送受信する。
実施例によるポイントクラウドデータ送受信方法/装置及び送受信装置に含まれたシステムは、動的空間領域を時間指定メタデータトラック(timed metadata track)又はサンプルエントリーに追加することができる。
実施例による時間指定メタデータトラックはV3Cトラック25000が参照する別のトラックに伝達される。
V-PCCトラックがサンプルエントリータイプ’dysr’を有する関連する時間指定メタデータトラックであると、V-PCCトラックにより伝達されるポイントクラウドストリームについて定義された空間領域は動的領域として考慮される。
関連する時間指定メタデータトラックはアトラスストリームを伝達するV-PCCトラックに対する’cdsc’トラック参照を含む。
実施例によるポイントクラウドデータ送受信方法/装置及び送受信装置に含まれたシステムはサンプルエントリーに図51のVPCCSpatialRegionsBoxのようなデータ構造を追加する。
メタデータサンプルエントリー(MetaDataSampleEntry)を拡張する動的空間領域サンプルエントリー(DynamicSpatialRegionSampleEntry)はVPCCSpatialRegionsBoxを含む。
VPCCSpatialRegionsBoxの具体的なシンタックスについては図50に説明している。
DynamicSpatialRegionSampleEntryに対する動的空間領域サンプル(DynamicSpatialRegionSample)は図51のような要素を含み、要素の詳細定義は図50を参照できる。図50において、さらに図51の要素は動的空間領域であるが、関連する情報を示す。
実施例によるアトラスフレームは複数のタイルを含む。実施例による方法/装置はタイルレベルにおいてポイントクラウドデータの部分接近を提供するために、図51のようなシグナリング情報を生成する。これにより、実施例による受信方法/装置は領域ごとにタイルがどのように構成されるかを分かる。またタイルがどの客体にマッチングされるかを分かる。
図54は実施例によるノンタイムV-PCCデータをカプセル化するために構造を示す。
実施例によるポイントクラウドデータ送受信方法/装置及び送受信装置に含まれたシステムは、ノンタイムV-PCCデータ(Non-timed V-PCC data)を図54のようにカプセル化して送受信する。
ノンタイムV-PCCデータはイメージアイテムとしてファイル内に格納される。2つの新しいアイテムタイプ(V-PCCアイテム及びV-PCCユニットアイテム)はノンタイムV-PCCデータをカプセル化するために定義される。
新しいハンドラータイプ4CCコード’vpcc’はV-PCCアイテム、V-PCCユニットアイテム及び他のV-PCC符号化されたコンテンツ表現情報の存在を示すために、メタボックス(MetaBox)のハンドラーボックス(HandlerBox)内に定義されて格納される。
V-PCCアイテム(V-PCC Items,52000):V-PCCアイテムは独立して復号可能なV-PCCアクセスユニットを示すアイテムである。アイテムタイプ’vpci’はV-PCCアイテムを識別するために定義される。V-PCCアイテムはアトラスサブビットストリームのV-PCCユニットペイロードを格納する。一次アイテムボックス(PrimaryItemBox)が存在すると、このボックス内のアイテムID(item_id)はV-PCCアイテムを示すためにセットされる。
V-PCCユニットアイテム(V-PCC Unit Item,52010):V-PCCユニットアイテムはV-PCCユニットデータを示すアイテムである。占有、ジオメトリ及び特質ビデオデータユニットのV-PCCユニットアイテムは、V-PCCユニットペイロードを格納する。V-PCCユニットアイテムはただ1つのV-PCCアクセスユニット関連データだけを格納する。
V-PCCユニットアイテムに対するアイテムタイプは対応するビデオデータユニットを符号化するために使用されるコーデックによりセットされる。V-PCCユニットアイテムは対応するV-PCCユニットヘッダアイテムプロパティ(V-PCC unit header item property)及びコーデック特定の構成アイテムプロパティ(codec specific configuration item property)に関連がある。独立してディスプレイすることは意味がないので、V-PCCユニットアイテムは隠しアイテムで表示される。
V-PCCアイテム及びV-PCCユニットアイテム間の関係を示すために、以下の3つのアイテム参照タイプが使用される。アイテム参照はV-PCCアイテムから関連するV-PCCユニットアイテムにより定義される。
’pcco’:参照されたV-PCCユニットアイテムは占有ビデオデータユニットを含む。
’pccg’:参照されたV-PCCユニットアイテムはジオメトリビデオデータユニットを含む。
’pcca’:参照されたV-PCCユニットアイテムは特質ビデオデータユニットを含む。
V-PCC構成アイテムプロパティ(V-PCC configuration item property,52020)
box Types:’vpcp’
Property type:Descriptive item property
Container:ItemPropertyContainerBox
Mandatory(per item):Yes, for a V-PCC item of type ’vpci’
Quantity(per item):One or more for a V-PCC item of type ’vpci’
V-PCC構成アイテムプロパティのボックスタイプは’vpcp’であり、プロパティタイプは記述的アイテムプロパティである。コンテナはアイテムプロパティコンテナボックスである。アイテムごとのタイプ’vpci’のV-PCCタイプについて必須である。アイテムごとのタイプ’vpci’のV-PCCアイテムに対して1つ又はそれ以上が存在する。
V-PCCパラメータセットはこの記述的アイテムプロパティとして格納され、V-PCCアイテムに連関がある。
aligned(8) class vpcc_unit_payload_struct(){
unsigned int(16) vpcc_unit_payload_size;
vpcc_unit_payload();
V-PCCユニットペイロードサイズ(vpcc_unit_payload_size):vpcc_unit_paylod()のバイトサイズを示す。
aligned(8) class VPCCConfigurationProperty extends ItemProperty(’vpcc’){
vpcc_unit_payload_struct()[];
V-PCCユニットペイロード(vpcc_unit_paylod())はタイプVPCC_VPSのV-PCCユニットを含む。
V-PCCユニットヘッダアイテムプロパティ(V-PCC unit header item property,52030)
box Types:’vunt’
Property type:Descriptive item property
Container:ItemPropertyContainerBox
Mandatory (per item):Yes, for a V-PCC item of type ’vpcI’ and for a V-PCC unit item
Quantity(per item):One
V-PCCユニットヘッダアイテムプロパティのボックスタイプは’vunt’であり、プロパティタイプは記述的アイテムプロパティであり、コンテナはアイテムプロパティコンテナボックスである。アイテムごとのV-PCCユニットアイテム及びタイプ’vpci’のV-PCCアイテムについて必須である。アイテムごとに1つ存在する。
V-PCCユニットヘッダは記述的アイテムプロパティとして格納され、V-PCCアイテム及びV-PCCユニットアイテムに関連がある。
aligned(8) class VPCCUnitHeaderProperty() extends ItemFullProperty(’vunt’, version=0, 0){
vpcc_unit_header();
図55は実施例によるポイントクラウドデータ送信方法のフローチャートを示す。
実施例によるポイントクラウドデータ送信装置は、図55に示したように、ファイル/セグメントカプセル化部(以下、カプセル化部とも称する)及び/又は送信機などを含む。実施例によるポイントクラウドデータエンコーダ、ファイル/セグメントカプセル化部、送信機などを含めて、実施例によるポイントクラウドデータ送信装置及び/又はポイントクラウドデータシステムなどと称する。この明細書においては簡単に実施例による方法/装置などとも称する。
実施例による送受信装置はISOBMFFモジュールを含む。ISOBMFFモジュールはISOBMFF形式のファイルを構成するboxの生成/修訂/削除に対するAPIを提供するものである。
実施例による送受信装置はVPCCBitstreamモジュールを含む。VPCCBitstreamモジュールはVPCCビットストリーム形式のデータを生成/パースする。
実施例によるカプセル化部はV-PCCビットストリームをISOBMFFファイルフォーマットで構成し、ISOBMFFファイルフォーマットに符号化するために必要なbox構造などを生成する。送信機は生成されたデータを送信する。実施例によるカプセル化部の動作についての詳しいフローチャートは以下の通りである。各動作は実施例によるカプセル化部、方法/装置などにより行われる。
0.ポイントクラウドデータ送信装置(又はエンコーダ)からV-PCC符号化されたビットストリームが入力される。
ISOMファイルが生成される。V-PCCトラック(AD)がファイルに追加される。新しいトラックが生成されることをシステムのISOBMFF端に知らせる。ISOBMFF端からトラックを受信する。V-PCCサンプルエントリー(トラック)がファイル内に追加される。
実施例によるgf関数はISOBMFF形式のファイルを生成するために必要なbox、即ち、トラック、サンプルなどの追加/修訂/削除時に使用されるAPIを示す。
1.ISOBMFFファイル構造に基づいてV-PCCトラック(track)を生成する。
1-1.動的空間領域である場合、時間指定メタデータトラック(timed-metadata track)を生成する。
時間指定メタトラック(AD)がファイル内に追加される。新しいトラックがあることをISOBMFF端に知らせる。ISOBMFF端からトラックを受信する。
2.上記1.で生成したV-PCCトラックにサンプルエントリー(sample entry)を生成する。
3.VPS(VPCC Parameter Set)情報(info)を入力ビットストリーム(input bitstream)から得る。
サンプルストリームV-PCCユニット(VPS)を要請する。V-PCCビットストリームにV-PCCバッファー(位置)に基づいて要請する。サンプルストリームV-PCCユニットが得る。
4.VPS情報(info)をサンプルエントリーに追加する。
V-PCCデコーダ構成(トラック、サンプルストリームV-PCCユニット)をISOBMFF端に要請する。
5.アトラスシーン客体(Atlas scene object)情報を入力ビットストリーム(input bitstream)から得る。
シーン客体情報(AD)を要請する。V-PCCビットストリームにV-PCCバッファー(位置)に基づいて要請する。シーン客体情報を得られる。
5-1.アトラス客体ラベル(Atlas object label)情報を入力ビットストリーム(input bitstream)から得る。
客体ラベル情報(AD)を要請する。V-PCCビットストリームにV-PCCバッファー(位置)に基づいて要請する。客体ラベル情報を得る。
5-2.アトラスパッチ情報(Atlas patch information)を入力ビットストリーム(input bitstream)から得る。
パッチ情報(AD)を要請する。V-PCCビットストリームにV-PCCバッファー(位置)に基づいて要請する。パッチ情報を得る。
6.アトラスボリュメトリックタイリング情報(Atlas volumetric tiling info)を用いてポイントクラウドシステムファイルフォーマット(point cloud system file format)に適するV-PCC空間領域ボックス構造(VPCCSpatialRegionsBox structure)に形成してサンプルエントリーに追加する。或いは動的空間領域である場合は、V-PCC空間領域ボックス構造(VPCCSpatialRegionsBox structure)は時間指定メタデータトラック(timed-metadata track)のサンプルエントリーに追加する。
V-PCCデコーダ構成(トラック、V-PCC空間領域ボックス)を要請する。
7.アトラスVPCCユニットヘッダ情報(Atlas VPCC unit header info)を入力ビットストリーム(input bitstream)から得る。
V-PCCユニットヘッダボックス(AD)を要請する。ビットストリームにV-PCCバッファー(位置)に基づいて要請する。ユニットヘッダを得る。
8.VPCCユニットヘッダ情報(VPCC unit header info)をサンプルエントリーに追加する。
V-PCCユニットヘッダ(トラック、ユニットヘッダ)を要請する。
9.アトラスNALユニットデータ(Atlas NAL unit data)をNALタイプ(nalType)によってサンプルエントリー或いはサンプルに追加する。
サイズに対するループ(LOOP)において、以下の動作を行う。ビットストリームにV-PCCユニット(AD)を要請し、サンプルストリームNALユニットを得る。
NALカウント(数)にループにおいてアトラスデータに対する以下の動作を行う。
NALタイプがNAL_ASPSであると、ビットストリームにGET要請して、サンプルストリームNALユニットASPSを得る。V-PCCデコーダ構成(トラック、サンプルストリームNALユニットASPS)を要請する。
NALタイプがNAL_PREFIX_SEIであると、ビットストリームにGET要請してサンプルストリームNALユニットSEIを得る。V-PCCデコーダ構成(トラック、サンプルストリームNALユニットSEI)を要請する。
それ以外のNALタイプであると、ビットストリームにGET要請してNALユニットを得る。
サンプルをISOBMFF端に要請して、サンプルを得る。
10.アトラスNALユニットデータタイプ(Atlas NAL unit data type)がNAL_ASPS或いはNAL_XXXX_SEIを除いたデータはサンプルに追加する。
メモリをコピーしてデータをサンプルに格納する。
11.上記10.で生成されたサンプルをV-PCCトラックに追加する。
サンプル(トラック、サンプル)を追加する。新しいサンプルを要請してサンプル受信する。
12.動的空間領域である場合、動的空間領域サンプル(DynamicSpatialRegionSample)を時間指定メタデータトラックのサンプルに追加する。
13.サンプルを時間指定メタデータトラックに追加する。
メモリをコピーしてデータをサンプルに格納する。サンプル(トラック、サンプル)を得られる。
図56は実施例によるポイントクラウドデータ受信方法のフローチャートを示す。
実施例によるポイントクラウドデータ受信装置は、ファイル/セグメントデカプセル化部(以下、デカプセル化部とも称する)及び/又は受信部などを含む。実施例によるポイントクラウドデータデコーダ、ファイル/セグメントデカプセル化部、受信部などを含めて、実施例によるポイントクラウドデータ受信装置及び/又はポイントクラウドデータシステムなどと称する。この明細書においては簡単に実施例による方法/装置などとも称する。
実施例によるポイントクラウドデータ受信装置は、図56のように、ポイントクラウドシステム構造(Point Cloud System Architecture)に示したように、受信部及び/又はファイル/セグメントデカプセル化部(以下、デカプセル化部とも称する)などを含む。受信部はポイントクラウドデータ(V-PCC ISOBMFFファイル形態)を受信する。デカプセル化部はV-PCCファイル(ISOBMFF file)をV-PCCビットストリームにデカプセル化し、復号に必要なボックス構造などをパースする。受信装置はさらにデコーダを含む。デコーダはV-PCCビットストリームを復号する。
実施例によるデカプセル化部及び/又は方法/装置などにより以下のフローチャートの動作が行われる。
0.V-PCC ISOBMFFにカプセル化された.mp4ファイルが入力される。
ファイルをデカプセル化する。デコーダパラメータに基づいてファイルをデカプセル化する。ファイルが得られる。
ファイルに基づいてビットストリームが得られる。
フレームカウントに基づいて以下の動作がループ内で行われる。
1.インプット(Input isobmff)ファイルのサンプルエントリーからVPS(V-PCC Parameter Set)情報を得る。
ユニットタイプがVPSであると、VPSユニット(ファイル)を得られる。トラックを得てパースしてVPSを得る。
2.上記1.で得たVPS情報をV-PCCビットストリーム形態で構成する。
ユニットタイプがADであると、V-PCCヘッダ(トラック、タイプ)を得る。
3.インプットISOBMFFファイルのサンプルエントリーからV-PCCユニットヘッダ情報を得る。
4.上記3.で得たV-PCCユニットヘッダ情報をV-PCCビットストリーム形態で構成する。
5.インプットISOBMFFファイルのサンプルエントリーからV-PCC空間領域ボックス(VPCCSpatialRegionsBox)情報を得る。或いは動的空間領域の場合は、時間指定メタデータトラック(timed-metadata track)のサンプルエントリーからVPCCSpatialRegionsBox情報を得られる。
6.インプットISOBMFFファイルのサンプルエントリーからV-PCC設定(configuration)情報を得る。V-PCC設定情報にはVPSとNALユニットタイプがNAL_ASPS、NAL_XXXX_SEIなどのアトラスデータを含んでいる。
SPSユニット(ASPS,SEI)を得る。
7.インプットISOBMFFファイルのサンプルからNALユニットタイプがTSAなどのアトラスデータを得る。
アトラスデータ(AFPS,TSA)を得る。
7-1.動的空間領域である場合、時間指定メタデータトラックのサンプルからDynamicSpatialRegionSample情報を得る。
サンプル(ファイル、タイプ、インデックス)を得て動的空間領域サンプルを受信する。
8.上記5.で得た客体タイルグループID(vti_object_tile_group_id)又は客体タイルIDを用いて、上記7.で得たアトラスデータのうち、アトラスタイルグループID(afti_tile_group_id)(又はアトラスタイルID)及びアトラスアドレス(atgh_address)が一致するデータのみをパースする。
アトラスデータ(アトラスタイルグループID又はアトラスタイルID)をパースする。
9.上記6.ないし8.のプロセスで得たアトラスデータを用いてV-PCCアトラスサブビットストリーム(atlas sub-bitstream)を構成するサンプルストリームNALユニット(SampleStreamNalUnit)データを構成する。
サンプルストリームNALユニットペイロード(ASPS+AFPS+TSA+SEI)を生成する。
10.V-PCCビットストリーム復号のためのV-PCCアトラスサブビットストリームを構成する。
11.上記10.で生成されたV-PCCアトラスサブビットストリームをVPCCBitstreamDecoderでパースしてポイントクラウドを復元(reconstruct)するために必要なアトラスタイプグループ又はアトラスタイル及びパッチデータ(patch data)などを得る。
図57は実施例によるファイルフォーマット構造を示す。
図57は実施例によるファイルレベルのシグナリング構造を示す。
実施例によるポイントクラウドデータ送受信方法/装置及び送受信装置に含まれたシステムは、図57のような構造でファイルを生成、送受信する。
実施例によるポイントクラウドデータ送受信方法/装置及び送受信装置に含まれたシステムは、ファイルレベルにおいて以下のようにデータをシグナリングする。
実施例によるシグナリング情報、メタデータ、パラメータなどは、V-PCCトラック(又はV3Cトラック)57030,25000のサンプルエントリーに含まれ、時間指定メタデータトラックのサンプルエントリー及びサンプルに含まれて送受信される。
部分接近(Partial access)のために複数のアトラスタイルグループ(atlas tile group)(又はアトラスタイル)からなるV-PCCビットストリームは、図57のようなファイルフォーマット構造でカプセル化部によりカプセル化される。第1サンプルグループ(Sample group 1)55000はアトラスタイルグループ(アトラスタイルに対応)が3つある(ATG1ないし3又はAT1ないし3)。
第2サンプルグループ(sample group 2)57010は空間領域の位置及び/又はサイズなどの変化により、アトラスタイルグループ(又はアトラスタイル)が2つである(ATG1ないし2又はAT1ないし2)。
第3サンプルグループ(sample group 3)57020は等しいか又はさらに他のアトラスタイルグループ(又はアトラスタイル)で構成される。
ファイルはmoovボックス、データ(mdat)ボックスを含む。moovボックス及びmdatボックスをトラックと称する。V-PCCトラック57030のタイプがアトラスデータ(AD)であると、サンプルに対応するアトラスタイルを含むmdatボックスがmoovボックスの後に位置する。
ファイル内にマルチトラックがある場合、トラック間グルーピングが可能である。
第1トラックグループ57040はOVDを含むトラック、GVDを含むトラック、AVDを含むトラックがグルーピングされる。
第2トラックグループ57050はGVDを含むトラック、AVDを含むトラックがグルーピングされる。
ファイルに関連するトラック間参照が可能である。
第1トラック57030が第1グループ57040を参照し、第2グループ57050を参照する。
実施例によるポイントクラウドデータ送受信方法/装置及び送受信装置に含まれたシステムは、図58のようにファイルレベルシグナリングを行う。
図58は実施例によるファイルレベルシグナリングを示す。
実施例による方法/装置はサンプルグループ記述(SampleGroupDescription)のサンプルグループエントリー(SampleGroupEntry)としてNALUMapEntryを生成する。
各々のアトラスNALユニット(atlas NAL unit)にアトラスタイルグループID(atlas_tile_group_id)(又はアトラスタイルID)を割り当てる。ポイントクラウド受信機はこのアトラスタイプグループID(又はアトラスタイルID)によって各空間領域に該当するアトラスNALユニット(atlas NAL unit)のみが集まる。
図58のように、実施例による方法/装置はsampletogroupbox及びNALUMapEntry間のリンク関係を生成する。sampletogroupbox及びNALUMapEntryはいずれもmoovボックス内のサンプルエントリーに含まれる。
実施例によるNALUMapEntryはISO/IEC14496-15[14496-15]の定義に従う。
NALUMapEntryはVPCCSpatialRegionsBoxが存在する場合、V-PCCトラック内に存在する。
NALUMapEntryはグループIDを各々のアトラスNALユニットに割り当てるために使用される。
NALUMapEntryはタイプ’nalm’のサンプルツーグループボックス(SampleToGroupBox)のグルーピングタイプパラメータ(grouping_type_parameter)をセットするサンプルグループ記述にリンクされるか又はリンクされない。
タイプ’nalm’のサンプルツーグループボックス(SampleToGroupBox)はボックスのバージョン0を使用するか又は使用しない。
実施例によるV-PCCトラックはサンプルツーグループボックス(SampleToGroupBox)58000を含む。
サンプルツーグループボックス(SampleToGroupBox)58000はnalm値を有するグルーピングタイプパラメータを含み、複数のサンプルグループを含む。
第1サンプルグループ57000は、例えば、図57のように構成された場合、サンプルカウント3の値を有してサンプル1ないし3を含む。このとき、サンプル記述インデックスは1を有する。
第2サンプルグループ57010はサンプルカウント2の値を有して、図57のように、サンプル1及びサンプル2を含む。このとき、サンプル記述インデックスは2を有する。
第3サンプルグループ57020はサンプルカウントNの値を有して、N個のサンプルを含む。このとき、サンプル記述インデックスは3を有する。
実施例によるV-PCCトラックはサンプルグループ記述ボックス58010を含む。
サンプルグループ記述ボックス58010はサンプルツーグループボックスに関する追加情報を含む。グルーピングタイプはnalmであり、各サンプルグループに対してサンプルグループエントリーによりファイルレベルシグナリング情報を提供する。
第1NALユニットマップエントリー58020は第1サンプルグループ57000に関する構成情報を提供する。
例えば、図57のような構成をシグナリングする場合、第1NALユニットマップエントリー58020は総9つのエントリーを有する。
NALユニットマップエントリーは第1サンプルグループに関連するトラックが含むNALユニット1ないし9(NALU1-9)が含むアトラスタイルグループ(又はアトラスタイル)を表現する。
例えば、第1NALユニットマップエントリー58020はNALユニット1が第1アトラスタイルグループとマッピングされる関係を知らせる。同様に、NALユニット2ないし9が第2~第9のアトラスタイルグループとそれぞれマッチングされることを知らせる。
実施例による方法/装置はポイントクラウドコンテンツサービス提供のための送信機又は受信機に関する。上述したように、V-PCCビットストリームを構成してファイルを格納することができる。
実施例による方法/装置/システムはV-PCCビットストリームを効果的に多重化して逆多重化することができる。また、V-PCCユニット単位でビットストリームの効率的な接近を支援することができる。V-PCCビットストリームのアトラスストリームを効果的にファイル内のトラックを格納及び送信することができる。
V-PCCビットストリーム内のデータ処理及びレンダリングのためのSEIメッセージ/情報を効果的にファイル内に格納及び送信することができる。
実施例によるポイントクラウド圧縮処理デバイス、送信機、受信機、ポイントクラウドプレーヤー、エンコーダ又はデコーダは、この明細書に記載する効果を提供する。
また、提案するデータ表現方式はポイントクラウドビットストリームに効率的に接近できるという効果を提供する。さらに、ポイントクラウドビットストリームのデータ処理及びレンダリングのために必要な情報を効果的に接近できるという効果を提供する。
実施例による送信機又は受信機はV-PCCビットストリームをファイル内の1つ以上の複数のトラックに分割格納し、そのためのシグナリング情報を提供する。
V-PCCビットストリームを含む複数のトラック間の関係性を示すためのシグナリング、ファイル内に格納された代替のV-PCCトラックに対する指示により、ポイントクラウドビットストリームのファイルを効率的に格納して送信することができる。
このように実施例による方法/装置は実施例による動作に基づいて動的に変化するポイント空間領域(spatial region)に対するシグナリングを効率的に行うことができる。例えば、サンプルグループ(Sample Group)を用いたシグナリング及び時間指定メタデータトラック(Timed Metadata Track)を用いたシグナリングなどについて説明する。
実施例による方法/装置はポイントクラウドビットストリームの部分接近支援動作を提供する(the support of partial access of Video-based point Cloud Content)。
実施例による方法/装置はユーザのビューポートによってV-PCCコンテンツの空間部分(spatial access)の接近を支援するためのV-PCCコンテンツの3D領域情報とそれに連関するビデオ或いはアトラスフレーム上の2D領域関連メタデータを生成して送受信する。
実施例による方法/装置はポイントクラウドビットストリーム内のポイントクラウドの3D領域情報とそれに連関するビデオ或いはアトラスフレーム上の2D領域関連シグナリング情報を生成して送受信する。
実施例による方法/装置はファイル内のポイントクラウドの3D領域情報とそれに連関するビデオ或いはアトラスフレーム上の2D領域関連情報を格納し、それに関連するシグナリング情報を生成して送受信する。
実施例による方法/装置はファイル内のイメージアイテムに連関するポイントクラウドの3D領域情報とそれに連関するビデオ或いはアトラスフレーム上の2D領域関連の情報を格納して送受信する。
図59は実施例によるポイントクラウドの一部3次元領域とビデオフレーム上の領域間の連関性を示す。
実施例による受信装置及びレンダラーはユーザがズームイン(zoom-in)或いはユーザのビューポート変更などによりユーザビューポート上にポイントクラウド客体/データの全体ではない部分をレンダリングするか又はディスプレイする。
実施例によるPCCデコーダ/プレーヤーは効率的なプロセスのために、ユーザのビューポート上にレンダリング或いはディスプレイされるポイントクラウドデータの一部に連関するビデオ或いはアトラスデータを復号或いは処理する。
実施例によるPCCデコーダ/プレーヤーは効率的なプロセスのために、レンダリング或いはディスプレイされない部分/領域のポイントクラウドデータに連関するビデオ或いはアトラスデータを復号或いは処理しない。
客体59000に対するポイントクラウドの一部3次元領域59010に連関するデータ59020がビデオ フレーム59030内の1つ以上の2D領域59040のビデオデータ59050に連関する。
動的ポイントクラウドデータ(時間に応じてポイントクラウドのポイント数が変化するか、又はポイントクラウド位置などが変化するデータ)の場合、時間によって同一の3次元領域にディスプレイされるポイントクラウドが変化する。
よって、実施例によるPCCデコーダ/プレーヤーはユーザビューポート上にレンダリング/ディスプレイされるポイントクラウドデータの空間或いは部分に接近するために、時間に応じて変化するポイントクラウドの3次元領域に連関するビデオフレーム内の2D領域情報をV-PCCビットストリーム26000内に含ませるか、又はファイル(例えば、図57)内のシグナリング或いはメタデータの形態で含ませることができる。
図60は実施例によるパラメータセットを示す。
図60は図30のパラメータセット(V-PCC parameter set)に対応する。
図60は実施例によるパラメータセットがさらにポイントクラウド客体59000に関連するバウンディングボックスのための情報を含むことを示す。図60の要素の定義は図30の要素の定義を参照できる。
VPS VPCCパラメータセットID(vps_vpcc_parameter_set_id):他のシンタックス要素による参照のためのV-PCC VPSに対する識別子を提供する。
SPSバウンディングボックス存在フラグ(sps_bounding_box_present_flag):ビットストリーム上のポイントクラウド客体/コンテンツの全体的バウンディングボックス(時間に応じて変化するバウンディングボックスを全て含むバウンディングボックス)に関する情報有無フラグである(sps_bounding_box_present_flag equal to 1 indicates overall bounding box offset and the size information of point cloud content carried in this bitstream)。
sps_bounding_box_present_flagが1であると、以下のバウンディングボックス関連パラメータがパラメータセットに含まれる。
SPSバウンディングボックスオフセットX(sps_bounding_box_offset_x):座標系内のビットストリームに含まれるポイントクラウドコンテンツの全体的バウンディングボックスオフセット及びサイズ情報のXオフセットを示す。存在しない場合、このフィールドの値は0に推論される(indicates the x offset of overall bounding box offset and the size information of point cloud content carried in this bitstream in the cartesian coordinates. When not present, the value of sps_bounding_box_offset_x is inferred to be 0)。
SPSバウンディングボックスオフセットY(sps_bounding_box_offset_y):座標系内のビットストリームに含まれるポイントクラウドコンテンツの全体的バウンディングボックスオフセット及びサイズ情報のYオフセットを示す。存在しない場合、このフィールドの値は0に推論される(indicates the y offset of overall bounding box offset and the size information of point cloud content carried in this bitstream in the cartesian coordinates. When not present, the value of sps_bounding_box_offset_y is inferred to be 0)。
SPSバウンディングボックスオフセットZ(sps_bounding_box_offset_z):座標系内のビットストリームに含まれるポイントクラウドコンテンツの全体的バウンディングボックスオフセット及びサイズ情報のZオフセットを示す。存在しない場合、このフィールドの値は0に推論される(indicates the z offset of overall bounding box offset and the size information of point cloud content carried in this bitstream in the Cartesian coordinates. When not present, the value of sps_bounding_box_offset_z is inferred to be 0)。
SPSバウンディングボックスサイズ幅(sps_bounding_box_size_width):座標系内のビットストリームに含まれるポイントクラウドコンテンツの全体的バウンディングボックスオフセット及びサイズ情報の幅を示す。存在しない場合、このフィールドの値は1に推論される(indicates the width of overall bounding box offset and the size information of point cloud content carried in this bitstream in the cartesian coordinates. When not present, the value of sps_bounding_box_size_width is inferred to be 1)。
SPSバウンディングボックスサイズ高さ(sps_bounding_box_size_height):座標系内のビットストリーム内に伝達されるポイントクラウドコンテンツの全体的バウンディングボックスオフセット及びサイズ情報の高さを示す。存在しない場合、この要素の値は1に推論される(indicates the height of overall bounding box offset and the size information of point cloud content carried in this bitstream in the cartesian coordinates. When not present, the value of sps_bounding_box_size_height is inferred to be 1)。
SPSバウンディングボックスサイズ深さ(sps_bounding_box_size_depth):座標系内のビットストリーム内に伝達されるポイントクラウドコンテンツの全体的バウンディングボックス及びサイズ情報の深さを示す。存在しない場合、この要素の値は1に推論される(indicates the depth of overall bounding box offset and the size information of point cloud content carried in this bitstream in the cartesian coordinates. When not present, the value of sps_bounding_box_size_depth is inferred to be 1)。
SPSバウンディングボックス変化フラグ(sps_bounding_box_changed_flag):ビットストリーム内に含まれたポイントクラウドデータのバウンディングボックスが時間に応じて変化するか否かを示すフラグである。該当フラグ値が1である場合、ポイントクラウドデータのバウンディングボックスが時間によって変化することを示す。
SPSバウンディングボックス情報フラグ(sps_bounding_box_info_flag):ビットストリーム上にポイントクラウドデータのバウンディングボックス情報を含むSEIなどが含まれているか否かを示すフラグである。該当フラグ値が1である場合、ポイントクラウドデータのバウンディングボックス情報を含むSEI(3D bounding box SEI)などがビットストリーム上に含まれていることを示す。この場合、PCCプレイは該当SEIなどに含まれた情報を得て使用できることを知らせる。
VPSアトラスカウント(vps_atlas_count_minus1):この値に1を加えると、現在ビットストリーム内に支援されるアトラスの総数を示す。
vps_atlas_count_minus1値だけ以下のフレーム関連パラメータがパラメータセットに含まれる。
VPSフレーム幅(vps_frame_width[j]):インデックスjを有するアトラスに対する整数ルーマサンプルに対するv-pccフレームの幅を示す。このフレームの幅はインデックスjを有するアトラスに対する全てのV-PCCコンポーネントに連関する公称幅である。
VPSフレーム高さ(vps_frame_height[j]):インデックスkを有するアトラスに対する整数ルーマサンプルに対するV-PCCフレームの高さを示す。このフレームの高さはインデックスjを有するアトラスに対する全てのV-PCCコンポーネントに連関する公称高さである。
VPSマップカウント(vps_map_count_minus1[j]):この値に1を加えると、インデックスjを有するアトラスに対するジオメトリ及び特質データを符号化するために使用されるマップの数を示す。
vps_map_count_minus1[j]が0より大きいと、以下のマップ関連パラメータがパラメータセットに含まれる。
VPSマルチマップストリーム存在フラグ(vps_multiple_map_streams_present_flag[j]):この値が0であると、インデックスjを有するアトラスに対する全てのジオメトリ又は特質マップはシングルジオメトリ又は特質ビデオストリームのそれぞれに配置されることを示す。この値が1であると、インデックスjを有するアトラスに対する全てのジオメトリ又は特質マップが個々のビデオストリームに配置されることを示す。
vps_map_count_minus1[j]値だけ以下のマップ関連パラメータがパラメータセットに含まれる。
vps_multiple_map_streams_present_flag[j]が1であると、以下のフラグがパラメータセットに含まれる。
VPSマップ絶対コーディング有効フラグ(vps_map_absolute_coding_enabled_flag[j][i]):この値が1であると、インデックスjを有するアトラスに対するインデックスiを有するジオメトリマップがマップ予測の形態なしにコーディングされることを示す。この値が0であると、インデックスjを有するアトラスに対するインデックスiを有するジオメトリマップは、コーディング前にコーディングされたマップから早く他のものから一番目に予測される(Equal to 1 indicates that the geometry map with index i for the atlas with index j is coded without any form of map prediction. vps_map_absolute_coding_enabled_flag[j][i]Equal to 0 indicates that the geometry map with index i for the atlas with index j is first predicted from another, earlier coded map, prior to coding)。
vps_multiple_map_streams_present_flag[j]が1であると、1ではないと、vps_map_absolute_coding_enabled_flag[j][i]=1である。
vps_map_absolute_coding_enabled_flag[j][i]が0であり、iが0より大きいと、vps_map_predictor_index_diff[j][i]がパラメータセットに含まれ、そうではないと、vps_map_predictor_index_diff[j][i]が0である。
VPSマップ予測子インデックス差(vps_map_predictor_index_diff[j][i]):vps_map_absolute_coding_enabled_flag[j][i]が0であると、インデックスjを有するアトラスに対するインデックスiを有するジオメトリマップの予測子を計算するために使用される。
VPS行パッチ有効フラグ(vps_raw_patch_enabled_flag[j]):この値が1であると、インデックスjを有するアトラスに対するRAWコーディングされたポイントを有するパッチがビットストリーム内に存在することを示す。
vps_raw_patch_enabled_flag[j]が1であると、vps_raw_separate_video_present_flag[j]がパラメータセットに含まれる。
VPS行個別ビデオ存在フラグ(vps_raw_separate_video_present_flag[j]):この値が1であると、インデックスjを有するアトラスに対するRAWコーディングされたジオメトリ及び特質情報が個々のビデオストリーム内に格納されることを示す。
占有情報(occupancy_information())は占有ビデオ関連パラメータセットを含む。
ジオメトリ情報(geometry_information())はジオメトリビデオ関連パラメータセットを含む。
特質情報(attribute_information())は特質ビデオ関連パラメータセットを含む。
図61は実施例によるアトラスシーケンスパラメータセット(atlas sequence parameter set,ASPS)を示す。
図61は図35のアトラスシーケンスパラメータセットに対応する。
図61はゼロ又は1つ以上の全体コーディングされたアトラスシーケンス(coded atlas sequences, CASs)に適用されるシンタックス要素を含むシンタックス構造である。図61の要素の定義は図35の要素の定義を参照できる。
ASPSアトラスシーケンスパラメータセットID(asps_atlas_sequence_parameter_set_id):他のシンタックス要素による参照のためのアトラスシーケンスパラメータセットのための識別子を提供する。
ASPSフレーム幅(asps_frame_width):現在アトラスに対する整数ルーマサンプルに対するアトラスフレームの幅を示す。
ASPSフレーム高さ(asps_frame_height):現在アトラスに対する整数ルーマサンプルに対するアトラスフレームの高さを示す。
ASPSログパッチパッキングブロックサイズ(asps_log2_patch_packing_block_size):アトラス内パッチの水平及び垂直位置のために使用される変数PatchPackingBlockSizeの値を示す。
ASPSログマックスアトラスフレームオーダーカウントlsb(asps_log2_max_atlas_frame_order_cnt_lsb_minus4):アトラスフレームオーダーカウントのための復号プロセス内に使用される変数MaxAtlasFrmOrderCntLsbの変数を示す。
ASPSマックス復号アトラスフレームバッファリング(asps_max_dec_atlas_frame_buffering_minus1):この値に1を加えると、アトラスフレームバッファー記憶装置に対する復号されたアトラスフレームの最大値として求められるサイズを示す。
ASPS長期参照アトラスフレームフラグ(asps_long_term_ref_atlas_frames_flag):この値が0であると、CAS内のコーディングされたアトラスフレームのインター予測のために使用される長期参照アトラスフレームがないことを示す。
ASPS参照アトラスフレームリストの数(asps_num_ref_atlas_frame_lists_in_asps):アトラスシーケンスパラメータセットに含まれた参照リスト構造(ref_list_struct(rlsIdx))シンタックス構造の数を示す。
ASPSエイトオリエンテーションフラグ(asps_use_eight_orientations_flag):この値が0であると、インデックスiを有するフレーム内のインデックスJを有するパッチのパッチオリエンテーションインデックス(pdu_orientation_index[i][j])が0ないし1(含み)の範囲内であることを示す。
ASPS45度プロジェクションパッチ存在フラグ(asps_45degree_projection_patch_present_flag):この値が0であると、現在アトラスタイルグループ(又はタイル)に対してパッチプロジェクション情報がシグナリングされないことを示す。この値が1であると、パッチプロジェクション情報が現在アトラスタイルグループ(又はタイル)に対してシグナリングされることを示す。
ASPS垂直軸制限量子化有効フラグ(asps_normal_axis_limits_quantization_enabled_flag):この値が1であると、量子化パラメータがパッチデータユニット、統合パッチデータユニット又はインターパッチデータユニットの垂直軸関連要素を量子化するために使用されてシグナリングされることを示す。
ASPS垂直軸マックスデルタ値有効フラグ(asps_normal_axis_max_delta_value_enabled_flag):この値が1であると、インデックスJを有するフレームのインデックスIを有するパッチのジオメトリ情報内に存在する垂直軸の最大値公称シフト値が各パッチデータユニット、統合パッチデータユニット又はインターパッチデータユニットに対するビットストリーム内に指示されることを示す。
ASPS除去重複ポイント有効フラグ(asps_remove_duplicate_point_enabled_flag):この値が1であると、重複ポイントが行インデックスマップから他のポイントと同一の2D及び3Dジオメトリ座標を有するポイントであるところで、重複ポイントが現在アトラスに対して再構成されないことを示す。
ASPSピクセルデインターリービングフラグ(asps_pixel_deinterleaving_flag)この値が1であると、現在アトラスのための復号されたジオメトリ及び特質ビデオが2つのマップから特別にインターリービングされたピクセルを含むことを示す。
ASPSパッチ優先順位オーダーフラグ(asps_patch_precedence_order_flag):この値が1であると、現在アトラスに対するパッチ優先順位(優先度)が復号順と同一であることを示す。
ASPSパッチサイズ量子化器存在フラグ(asps_patch_size_quantizer_present_flag):この値が1であると、パッチサイズ量子化パラメータがアトラスタイルグループヘッダ又はアトラスタイルヘッダに存在することを示す。この値が0であると、パッチサイズ量子化パラメータが存在しないことを示す。
ASPS深さに対する強化された占有マップフラグ(asps_enhanced_occupancy_map_for_depth_flag):この値が1であると、現在アトラスに対する占有マップビデオが2つの深さマップの間の中間深さ位置が占有されるか否かに関する情報を含むことを示す。この値が0であると、復号された占有マップビデオが2つの深さマップの間の中間深さ位置が占有されるか否かに関する情報を含まないことを示す。
ASPSポイントローカル復元有効フラグ(asps_point_local_reconstruction_enabled_flag):この値が1であると、ポイントローカル再構成モード情報が現在アトラスに対するビットストリーム内に存在することを示す。この値が0であると、ポイントローカル再構成モードに関連する情報が現在アトラスに対するビットストリーム内に存在しないことを示す。
ASPSマップカウント(asps_map_count_minus1):この値に1を加えると、現在アトラスに対するジオメトリ及び特質データを符号化するために使用されるマップの数を示す。
ASPS強化占有マップ固定ビットカウント(asps_enhanced_occupancy_map_fix_bit_count_minus1):この値が1を加えると、EOMコードワードのビット内のサイズを示す。
ASPS表面厚さ(asps_surface_thickness_minus1):この値に1を加えると、asps_pixel_deinterleaving_flag又はasps_point_local_reconstruction_flagが1ではない場合、明示的にコーディングされた深さ値及び補間された(interpolate)深さ値の間の絶対値の差の最大値を示す。
ASPS VUIパラメータ存在フラグ(asps_vui_parameters_present_flag):この値が1であると、vui_parameters( )シンタックス構造が存在することを示す。
図62は実施例によるアトラスフレームパラメータセット(atlas frame parameter set,AFPS)を示す。
図62は図36のアトラスフレームパラメータセットに対応する。図62の要素定義は図37の要素定義を参照できる。
AFPSアトラスフレームパラメータセットID(afps_atlas_frame_parameter_set_id):他のシンタックス要素による参照のためのアトラスフレームパラメータセットを識別する。AFPSのアトラスフレームパラメータセットにより他のシンタックス要素により参照できる識別子を提供する。
AFPSアトラスシーケンスパラメータセットID(afps_atlas_sequence_parameter_set_id):アクティブアトラスシーケンスパラメータセットの値を示す。
AFPS参照インデックスの数(afps_num_ref_idx_default_active_minus1):この値に1を加えると、atgh_num_ref_idx_active_override_flagが0であるタイルグループ又はタイルに対する変数NumRefIdxActiveの推論された値を示す。
AFPS追加変数(afps_additional_lt_afoc_lsb_len):アトラスフレームリストの参照のための復号プロセス内で使用される変数MaxLtAtlasFrmOrderCntLsbの値を示す。
AFPS2DポジションXビットカウント(afps_2d_pos_x_bit_count_minus1):この値に1を加えると、afps_atlas_frame_parameter_set_idを称するアトラスタイルグループ内のインデックスjを有するパッチのpdu_2d_pos_x[j]の固定長さ表現内のビットの数を示す(plus 1 specifies the number of bits in the fixed-length representation of pdu_2d_pos_x[j] of patch with index j in an atlas tile group that refers to afps_atlas_frame_parameter_set_id)。
AFPS2DポジションYビットカウント(afps_2d_pos_y_bit_count_minus1):この値に1を加えると、afps_atlas_frame_parameter_set_idを称するアトラスタイルグループ内のインデックスjを有するパッチのpdu_2d_pos_y[j]の固定長さ表現内のビットの数を示す。
AFPS LODビットカウント(afps_lod_bit_count):afps_atlas_frame_parameter_set_idを称するアトラスタイルグループ(又はタイル)内のインデックスjを有するパッチのpdu_lod[j]の固定長さ表現内のビットの数を示す(specifies the number of bits in the fixed-length representation of pdu_lod[j] of patch with index j in an atlas tile group that refers to afps_atlas_frame_parameter_set_id)。
AFPS深さに対するオーバーライドEOMフラグ(afps_override_eom_for_depth_flag):この値が1であると、afps_eom_number_of_patch_bit_count_minus1及びafps_eom_max_bit_count_minus1の値がビットストリーム内に明示的に存在することを示す。
AFPS EOMパッチ数ビットカウント(afps_eom_number_of_patch_bit_count_minus1):この値に1を加えると、現在EOM特質パッチに連関するジオメトリパッチの数を示すために使用されるビットの数を示す。
AFPS EOMマックスビットカウント(afps_eom_max_bit_count_minus1):この値に1を加えると、現在EOM特質パッチに連関するジオメトリパッチごとのEOMポイントの数を示すために使用されるビットの数を示す。
AFPS RAW3Dポジションビットカウント明示モードフラグ(afps_raw_3d_pos_bit_count_explicit_mode_flag):この値が1であると、rpdu_3d_pos_x、rpdu_3d_pos_y、rpdu_3d_pos_zのためのビットカウントがafps_atlas_frame_parameter_set_idを称するアトラスタイルグループ(又はタイル)ヘッダ内に明示的にコーディングされることを示す(Equal to 1 indicates that the bit count for rpdu_3d_pos_x, rpdu_3d_pos_y, and rpdu_3d_pos_z is explicitely coded in an atlas tile group header that refers to afps_atlas_frame_parameter_set_id)。
図63は実施例によるアトラスフレームタイル情報(atlas_frame_tile_information)を示す。
図63は図37のアトラスフレームタイル情報に対応する。図63の要素定義は図37の要素定義を参照できる。
AFTIアトラスフレーム内にシングルタイルフラグ(afti_single_tile_in_atlas_frame_flag):この値が1であると、AFPSを参照する各々のアトラスフレーム内にただ1つのタイルが存在することを示す。
AFTI均一タイル空間フラグ(afti_uniform_tile_spacing_flag):この値が1であると、タイル列及び行の境界がアトラスフレームに対して均一に分配され、afti_tile_cols_width_minus1及びafti_tile_rows_height_minus1、シンタックス要素をそれぞれ使用してシグナリングされる。
AFTIタイル列幅(afti_tile_cols_width_minus1):この値に1を加えると、afti_uniform_tile_spacing_flagが1である場合、64サンプル単位内のアトラスフレームの最右側タイル列を除いたタイル列の幅を示す。
AFTIタイル行高さ(afti_tile_rows_height_minus1):この値に1を加えると、afti_uniform_tile_spacing_flagが1である場合、アトラスフレームの底タイル行を除いたタイル行の高さを示す。
AFTIタイル列数(afti_num_tile_columns_minus1):この値に1を加えると、afti_uniform_tile_spacing_flagが0である場合、アトラスフレームを分割するタイル列の数を示す。
AFTIタイル行数(afti_num_tile_rows_minus1):この値に1を加えると、pti_uniform_tile_spacing_flagが0である場合、アトラスフレームを分割するタイル行の数を示す。
AFTIタイル列幅(afti_tile_column_width_minus1[i]):この値に1を加えると、64サンプル単位内のi番目のタイル列の幅を示す。
AFTIタイル行高さ(afti_tile_row_height_minus1[i]):この値に1を加えると、64 サンプル単位内のi番目のタイル行の高さを示す。
AFTIタイルグループごとのシングルタイルフラグ(afti_single_tile_per_tile_group_flag):この値が1であると、このAFPSを称する各タイルグループ(又は各タイル)が一つのタイルを含むことを示す。afti_single_tile_per_tile_group_flagが0であると、このAFPSを称するタイルグループ(又はタイル)が1つ以上のタイルを含むことを示す。存在しない場合、afti_single_tile_per_tile_group_flagの値は1に推論される。
AFTIアトラスフレーム内タイル数(afti_num_tiles_in_atlas_frame_minus1):AFPSを称する各々のアトラスフレーム内のタイルの数を示す。
AFTIタイルインデックス(afti_tile_idx[i]):AFPSを称する各アトラスフレーム内のi番目のタイルのタイルインデックスである。
AFTIアトラスフレーム内タイルグルーの数(afti_num_tile_groups_in_atlas_frame_minus1):この値に1を加えると、AFPSを称する各々のアトラスフレーム内のタイルグループの数を示す。afti_num_tile_groups_in_atlas_frame_minus1の値は0ないしNumTilesInAtlasFrame-1(含み)の範囲内にある。存在しない場合、afti_single_tile_per_tile_group_flagが1であり、afti_num_tile_groups_in_atlas_frame_minus1の値はNumTilesInAtlasFrame-1に等しい。
AFTI左上部タイルインデックス(afti_top_left_tile_idx[i]):i番目のタイルグループの左上部コーナーに位置するタイルのタイルインデックスを示す。jと等しくないiに対するafti_top_left_tile_idx[i]の値はafti_top_left_tile_idx[j]の値と等しくない。存在しない場合、afti_top_left_tile_idx[i]の値はjと等しいと推論される。afti_top_left_tile_idx[i]シンタックス要素の長さはCeil(Log2(NumTilesInAtlasFrame)ビットである。
AFTI右下部タイルインデックスデルタ(afti_bottom_right_tile_idx_delta[i]):afti_top_left_tile_idx[i]及びi番目のタイルグループの右下部コーナーに位置するタイルのタイルインデックス間の差の値を示す。afti_single_tile_per_tile_group_flagが1である場合、afti_bottom_right_tile_idx_delta[i]は0に推論される。afti_bottom_right_tile_idx_delta[i]シンタックス要素の長さは、Ceil(Log2(NumTilesInAtlasFrame-afti_top_left_tile_idx[i]))ビットである。
AFTIシグナリングされるタイルグループID(afti_signalled_tile_group_id_flag):この値が1であると、各タイルグループ(又はタイル)に対するタイルグループIDがシグナリングされることを示す。この値が0であると、タイルグループIDがシグナリングされないことを示す。
AFTIシグナリングされるタイルグループID長さ(afti_signalled_tile_group_id_length_minus1):この値が1を加えると、afti_tile_group_id[i]シンタックス要素を示すために使用されるビットの数を示す。存在する場合、シンタックス要素atgh_addressがタイルグループヘッダ内にあり得る。
AFTIタイルグループID(afti_tile_group_id[i]):i番目のタイルグループのタイルグループIDを示す。afti_tile_group_id[i]シンタックス要素の長さはafti_signalled_tile_group_id_length_minus1+1ビットである。
図64は実施例による補足強化情報(Supplemental enhancement information, SEI)を示す。
図64は図33のように実施例によるビットストリームに含まれるSEI情報の詳しいシンタックスを示す。
実施例による受信方法/装置、システムなどはSEIメッセージに基づいてポイントクラウドデータを復号し、復元し、ディスプレイする。
SEIメッセージは各ペイロードタイプ(payloadType)に基づいて、対応するデータをペイロードが含めることを示す。
例えば、ペイロードタイプ(payloadType)が13であると、ペイロードは3D領域マッピング(3d_region_mapping(payloadSize))情報を含む。
ユニットタイプ(psd_unit_type)がプレフィックス(PSD_PREFIX_SEI)であると、実施例によるSEI情報はbuffering_period(payloadSize)、pic_timing(payloadSize)、filler_payload(payloadSize)、user_data_registered_itu_t_t35(payloadSize)、user_data_unregistered(payloadSize)、recovery_point(payloadSize)、no_display(payloadSize)、time_code(payloadSize)、regional_nesting(payloadSize)、sei_manifest(payloadSize)、sei_prefix_indication(payloadSize)、geometry_transformation_params(payloadSize)、3d_bounding_box_info(payloadSize)(図65などを参照)、3d_region_mapping(payloadSize)(図66など)、reserved_sei_message(payloadSize)などを含む。
ユニットタイプ(psd_unit_type)がサフィックス(PSD_SUFFIX_SEI)であると、実施例によるSEI情報はfiller_payload(payloadSize)、user_data_registered_itu_t_t35(payloadSize)、user_data_unregistered(payloadSize)、decoded_PCC_hash(payloadSize)、reserved_sei_message(payloadSize)などを含む。
図65は実施例による3DバウンディングボックスSEIを示す。
図65は図33のように実施例によるビットストリームに含まれるSEI情報の詳しいシンタックスを示す。
取り消しフラグ(3dbi_cancel_flag):この値が1であると、3Dバウンディングボックス情報SEIメッセージがアウトプット順に以前の3Dバウンディングボックス情報SEIメッセージの存在を取り消すことを示す。
客体ID(object_id):ビットストリーム内に伝達されるポイントクラウド客体/コンテンツの識別子である。
バウンディングボックスX(3d_bounding_box_x):客体の3Dバウンディングボックスの原点位置のX座標値である。
バウンディングボックスY(3d_bounding_box_y):客体の3Dバウンディングボックスの原点位置のY座標値である。
バウンディングボックスZ(3d_bounding_box_z):客体の3Dバウンディングボックスの原点位置のZ座標値である。
バウンディングボックスデルタX(3d_bounding_box_z):客体のX軸上のバウンディングボックスのサイズを示す。
バウンディングボックスデルタY(3d_bounding_box_delta_y):客体のY軸上のバウンディングボックスのサイズを示す。
バウンディングボックスデルタZ(3d_bounding_box_delta_z):客体のZ軸上のバウンディングボックスのサイズを示す。
図66は実施例による3D領域マッピング情報SEIメッセージを示す。
図66は図33のように実施例によるビットストリームに含まれるSEI情報の詳しいシンタックスを示す。
取り消しフラグ(3dmi_cancel_flag):この値が1であると、3D領域マッピング情報SEIメッセージがアウトプット順に以前の3D領域マッピング情報SEIメッセージの存在を取り消すことを示す。
3D領域数(num_3d_regions):該当SEIにおいてシグナリングする3D領域の数を示す。
num_3d_regions値だけ以下の要素がこのSEIメッセージに含まれる。
3D領域インデックス(3d_region_idx[i]):i番目の3D領域の識別子を示す。
3D領域アンカーX、Y、Z(3d_region_anchor_x[i]、3d_region_anchor_y[i]、3d_region_anchor_z[i]):i番目の3D領域のアンカーポイント(anchor point)のx、y、z座標値をそれぞれ示す。例えば、3D領域が立方体(cuboid)タイプである場合、アンカーポイントは立方体の原点(origin)になる。
3d_region_anchor_x[i]、3d_region_anchor_y[i]、3d_region_anchor_z[i]はi番目の3D領域の立方体の原点位置のx、y、z座標値を示す。
3D領域タイプ(3d_region_type[i]):i番目の3D領域のタイプを示し、タイプ値として0x01-立方体などを有する。
3d_region_type[i]が1であると、3D領域のタイプが立方体であることを示す。以下、立方体タイプ関連の要素がこのSEIメッセージに含まれる。
3D領域デルタX、Y、Z(3d_region_delta_x[i]、3d_region_delta_y[i]、3d_region_delta_y[i]):i番目の3D領域のx、y、z軸の差の値を示す。
2D領域数(num_2d_regions[i]):i番目の3D領域に連関するビデオ或いはアトラスデータが存在するフレームの2D領域の数を示す。
num_2d_regions[i]値だけ以下の要素のこのSEIメッセージに含まれる。
2D領域インデックス(2d_region_idx[j]):j番目の2D領域の識別子を示す。
2D領域上、2D領域左部(2d_region_top[j], 2d_region_left[j]):j番目の2D領域の左上部位置のフレーム内垂直座標(vertical coordinate)、水平座標(horizontal coordinate)の値をそれぞれ含む。
2d_region_width[j]、2d_region_height[j]はj番目の2D領域のフレーム内で水平範囲(width)、垂直範囲(height)の値をそれぞれ含む。
図66の3d領域マッピング情報の3d領域関連フィールド及び2d領域関連フィールドはそれぞれ、実施例によるビットストリームに含まれるボリュメトリック矩形情報(volumetric rectangle information)に対応する。具体的には、ボリュメトリック矩形情報のバウンディングボックス関連フィールド(例えば、vri_bounding_box_top、vri_bounding_box_left、vri_bounding_box_width、vri_bounding_box_height)は2d領域を示す。また、ボリュメトリック矩形情報の客体関連フィールド、例えば、vri_rectangle_object_idxは、scene_object_informationに含まれたobject_idxに対応する。即ち、object_idxで3D領域情報を示す。scene_object_informationは3Dバウンディングボックス、即ち、3D領域に関するシグナリング情報を含むためである。
図66の3d領域マッピング情報の3d領域関連のフィールド及び2d領域関連のフィールドはそれぞれ実施例によるビットストリームに含まれるパッチ情報(patch information)のタイル情報(tile id,2D領域)及びパッチ客体インデックス(patch object idx)に対応する。
タイル数(num_tiles[j]):j番目の2D領域に連関するアトラスタイル或いはビデオタイルの数を示す。
num_tiles[j]値だけ以下のタイル関連要素がこのSEIメッセージに含まれる。
タイルインデックス(tile_idx[k]):k番目の2D領域に連関するアトラスタイル或いはビデオタイルの識別子を示す。
タイルグループ数(num_tile_groups[j])はj番目の2D領域に連関するアトラスタイルグループ或いはビデオタイルグループの数を示す。この値はタイルの数に対応する。
num_tile_groups[j]値だけ以下の要素がこのSEIメッセージに含まれる。
タイルグループインデックス(tile_group_idx[m]):m番目の2D領域と連関するアトラスタイルグループ或いはビデオタイルグループの識別子を示す。この値はタイルインデックスに対応する。
実施例によるシグナリング方案により、実施例による受信方法/装置は3D領域及び1つ以上のアトラスタイル(2D領域)の間のマッピング関係を把握して、該当データを得られる。
図67は実施例によるボリュメトリックタイリング情報を示す。
図67は図33のように実施例によるビットストリームに含まれるSEI情報の詳しいシンタックスを示す。
ボリュメトリックタイリング情報SEIメッセージ(Volumetric tiling information SEI message)
このSEIメッセージは実施例によるV-PCCデコーダが客体との連関性及び領域の関係及びラベリング、3D空間及び2Dアトラス内領域の関連性を含む復号されたポイントクラウドの異なる特性を避けるために知らせる(This SEI message informs a V-PCC decoder avoid different characteristics of a decoded point cloud, including correspondence of areas within a 2D atlas and the 3D space, relationship and labeling of areaS and association with objects)。
このSEIメッセージの持続範囲は、ビットストリームの残り又は新しいボリュメトリックタイリングSEIメッセージがあるまでである。このSEIメッセージに記述されたただ対応するパラメータが更新される。変更されないか、又はvti_cancel_flagの値が1ではない場合、以前SEIメッセージからの以前に定義されたパラメータが続いて存在する(The persistence scope for this SEI message is the remainder of the bitstream or until a new volumetric tiling SEI message is encountered. Only the corresponding parameters specified in the SEI message is updated. Previously defined parameters from an earlier SEI message persist if not modified and if thevalue of vti_cancel_flag is not Equal to 1)。
図68は実施例によるボリュメトリックタイリング情報客体を示す。
図68は図67に含まれたボリュメトリックタイリング情報客体(volumetric_tiling_info_objects)の詳しいシンタックスを示す。
vtiObjectLabelPresentFlag、vti3DBoundingBoxPresentFlag、vtiObjectPriorityPresentFlag、tiObjectHiddenPresentFlag、vtiObjectCollisionShapePresentFlag、vtiObjectDependencyPresentFlagなどに基づいて、ボリュメトリックタイリング情報の客体が図68のような要素を含む。
図69は実施例によるボリュメトリックタイリング情報ラベルを示す。
図69は図67に含まれたボリュメトリックタイリング情報ラベル(volumetric_tiling_info_labels)の詳しいシンタックスである。
取り消しフラグ(vti_cancel_flag):この値が1であると、ボリュメトリックタイリング情報SEIメッセージがアウトプット順に以前のボリュメトリックタイリング情報SEIメッセージの存在を取り消すことを示す。vti_cancel_flagが0であると、ボリュメトリックタイリング情報が図67のように伴う。
客体ラベル存在フラグ(vti_object_label_present_flag):この値が1であると、客体ラベル情報が現在ボリュメトリックタイリング情報SEIメッセージ内に存在することを示す。この値が0であると、客体ラベル情報が存在しないことを示す。
3Dバウンディングボックス存在フラグ(vti_3d_bounding_box_present_flag):この値が1であると、3Dバウンディングボックス情報が現在ボリュメトリックタイリング情報SEIメッセージ内に存在することを示す。この値が0であると、3Dバウンディングボックス情報が存在しないことを示す。
客体優先順位存在フラグ(vti_object_priority_present_flag):この値が1であると、現在ボリュメトリックタイリング情報SEIメッセージ内の客体 優先順位情報が存在することを示す。この値が0であると、客体優先順位情報が存在しないことを示す。
客体隠し存在フラグ(vti_object_hidden_present_flag):この値が1であると、隠し客体情報が現在ボリュメトリックタイリング情報SEIメッセージ内に存在することを示す。この値が0であると、隠し客体情報が存在しないことを示す。
客体衝突模様存在フラグ(vti_object_collision_shape_present_flag):この値が1であると、客体衝突情報が現在ボリュメトリックタイリング情報SEIメッセージ内に存在することを示す。この値が0であると、客体衝突模様情報が存在しないことを示す。
客体従属存在フラグ(vti_object_dependency_present_flag):この値が1であると、客体従属情報が現在ボリュメトリックタイリング情報SEIメッセージ内に存在することを示す。この値が0であると、客体従属情報が存在しないことを示す。
客体ラベル言語存在フラグ(vti_object_label_language_present_flag):この値が1であると、客体ラベル言語情報が現在ボリュメトリックタイリング情報SEIメッセージ内に存在することを示す。この値が0であると、客体ラベル言語情報が存在しないことを示す。
ゼロ相当のビット(vti_bit_equal_to_zero):この値は0に等しい。
客体ラベル言語(vti_object_label_language):0x00と同一のnull終端バイトの後に言語タグを含む。vti_object_label_languageシンタックス要素の長さはnull終端バイトを除いて255バイトに等しいか又は少ない。
客体ラベル数(vti_num_object_label_updates):現在SEIにより更新される客体ラベルの数を示す。
ラベルインデックス(vti_label_idx[i]):更新されるi番目のラベルのラベルインデックスを示す。
ラベル取り消しフラグ(vti_label_cancel_flag):この値が1であると、vti_label_idx[i]と同一のインデックスを有するラベルが取り消され、空いているストリングで同様にセットされることを示す。この値が0であると、vti_label_idx[i]と同一のインデックスを有するラベルがこの要素に従う情報により更新されることを示す。
ゼロ相当のビット(vti_bit_equal_to_zero):この値は0に等しい。
ラベル(vti_label[i]):i番目のラベルのラベルを示す。vti_label[i]シンタックス要素の長さはnull終端バイトを除いた255バイトに等しいか又は少ない。
バウンディングボックススケール(vti_bounding_box_scale_log2):客体に対して記述される2Dバウンディングボックスパラメータに適用されるスケールを示す。
3Dバウンディングボックススケール(vti_3d_bounding_box_scale_log2):客体に対して記述される3Dバウンディングボックスパラメータに適用されるスケールを示す。
3Dバウンディングボックス精度(vti_3d_bounding_box_precision_minus8):この値に8を加えると、客体に対して記述される3Dバウンディングボックスパラメータの精度を示す(plus 8 indicates the precision of the 3D bounding box parameters that may be specified for an object)。
客体数(vti_num_object_updates):現在SEIにより更新される客体の数を示す。
客体インデックス(vti_object_idx[i]):更新されるi番目の客体の客体インデックスを示す。
客体取り消しフラグ(vti_object_cancel_flag[i]):この値が1であると、iと同一のインデックスを有する客体が取り消され、変数ObjectTracked[i]が0に設定されることを示す。客体の2D及び3Dバウンディングボックスパラメータが0に設定される。この値が0であると、vti_object_idx[i]と同一のインデックスを有する客体がこの要素に従う情報により更新されることを示す。また、変数ObjectTracked[i]は1に設定される。
バウンディングボックス更新フラグ(vti_bounding_box_update_flag[i]):この値が1であると、2Dバウンディングボックス情報がインデックスiを有する客体に対して存在することを示す。この値が0であると、2Dバウンディングボックス情報が存在しないことを示す。
バウンディングボックス上部(vti_bounding_box_top[i]):現在アトラスフレーム内のインデックスiを有する客体のバウンディングボックスの左上部ポジションの垂直座標値を示す。
バウンディングボックス左部(vti_bounding_box_left[i]):現在アトラスフレーム内のインデックスiを有する客体のバウンディングボックスの左上部ポジションの水平座標値を示す。
バウンディングボックス幅(vti_bounding_box_width[i]):インデックスiを有する客体のバウンディングボックスの幅を示す。
バウンディングボックス高さ(vti_bounding_box_height[i]):インデックスiを有する客体のバウンディングボックスの高さを示す。
3Dバウンディングボックス更新フラグ(vti_3d_bounding_box_update_flag[i]):この値が1であると、インデックスiを有する客体に対して3Dバウンディングボックス情報が存在することを示す。この値が0であると、3Dバウンディングボックス情報が存在しないことを示す。
3DバウンディングボックスX(vti_3d_bounding_box_x[i]):インデックスiを有する客体の3Dバウンディングボックスの原点位置のX座標値を示す。
3DバウンディングボックスY(vti_3d_bounding_box_y[i]):インデックスiを有する客体の3Dバウンディングボックスの原点位置のY座標値を示す。
3DバウンディングボックスZ(vti_3d_bounding_box_z[i]):インデックスiを有する客体の3Dバウンディングボックスの原点位置のZ座標値を示す。
3DバウンディングボックスデルタX(vti_3d_bounding_box_delta_x[i]):インデックスiを有する客体のX軸上のバウンディングボックスのサイズを示す。
3DバウンディングボックスデルタY(vti_3d_bounding_box_delta_y[i]):インデックスiを有する客体のY軸上のバウンディングボックスのサイズを示す。
3DバウンディングボックスデルタZ(vti_3d_bounding_box_delta_z[i]):インデックスiを有する客体のZ軸上のバウンディングボックスのサイズを示す。
客体優先順位更新フラグ(vti_object_priority_update_flag[i]):この値が1であると、客体優先順位更新情報がインデックスiを有する客体に対して存在することを示す。この値が0であると、客体優先順位情報が存在しないことを示す。
客体優先順位値(vti_object_priority_value[i]):インデックスiを有する客体の優先順位を示す。優先順位値が低いほど優先順位が高い。
客体隠しフラグ(vti_object_hidden_flag[i]):この値が1であると、インデックスiを有する客体が隠されることを示す。この値が0であると、インデックスiを有する客体が存在することを示す。
客体ラベル更新フラグ(vti_object_label_update_flag):この値が1であると、客体ラベル更新情報がインデックスiを有する客体に対して存在することを示す。この値が0であると、客体ラベル更新情報が存在しないことを示す。
客体ラベルインデックス(vti_object_label_idx[i]):インデックスiを有する客体のラベルインデックスを示す。
客体衝突模様更新フラグ(vti_object_collision_shape_update_flag[i]):この値が1であると、客体衝突模様更新情報がインデックスiを有する客体に対して存在することを示す。この値が0であると、客体衝突模様更新情報が存在しないことを示す。
客体衝突模様ID(vti_object_collision_shape_id[i]):インデックスiを有する客体の衝突模様IDを示す。
客体従属更新フラグ(vti_object_dependency_update_flag[i]):この値が1であると、客体従属更新情報が客体インデックスiを有する客体に対して存在することを示す。この値が0であると、客体従属更新情報が存在しないことを示す。
客体従属数(vti_object_num_dependencies[i]):インデックスiを有する客体従属の数を示す。
客体従属インデックス(vti_object_dependency_idx[i][j]):インデックスiを有する客体に対する従属を有するj番目の客体のインデックスを示す。
ボリュメトリックビジュアルトラック(Volumetric visual track)
各々のボリュメトリックビジュアルシーンはユニークなボリュメトリックビジュアルトラックにより表現される。
ISOBMFFファイルは複数のシーンを含み、それにより、マルチボリュメトリックビジュアルトラックがファイル内に存在する。
ボリュメトリックビジュアルトラックはメディアボックスのハンドラーボックスのボリュメトリックビジュアルメディアハンドラータイプ’volv’により識別される。ボリュメトリックメディアヘッダは以下のように定義される。
ボリュメトリックビジュアルメディアヘッダ(Volumetric visual Media header)
box Type:’vvhd’
Container:MediaInformationBox
Mandatory:Yes
Quantity:Exactly one
ボリュメトリックビジュアルトラックはメディア情報ボックス(MediaInformationBox)のボリュメトリックビジュアルメディアヘッダボックス(VolumetricVisualMediaHeaderBox)を使用する。
aligned(8) class VolumetricVisualMediaHeaderBox
extends FullBox(’vvhd’, version=0、1){
バージョン(version)はこのボックスのバージョンを示す整数である。
ボリュメトリックビジュアルサンプルエントリー(Volumetric visual sample entry)
ボリュメトリックビジュアルトラックはボリュメトリックビジュアルサンプルエントリー(VolumetricVisualSampleEntry)を使用する。
class VolumetricVisualSampleEntry(codingname)
extends SampleEntry(codingname){
unsigned int(8)[32] compressor_name;
コンプレッサーネイム(compressor_name):有益な目的のための名前である。固定32-バイトフィールドで形成される。第1バイトはディスプレイされるバイト数に設定され、UTF-8を使用して符号化されたディスプレイ可能なデータのバイト数が伴う。サイズバイトを含む32バイトを完成するためにパッドされる。このフィールドは0に設定されてもよい。
ボリュメトリックビジュアルサンプル(Volumetric visual samples)
ボリュメトリックビジュアルサンプルのフォーマットは実施例によるコーディングシステムにより定義される。
V-PCCユニットヘッダボックス(V-PCC unit header box)
このボックスはV-PCCトラック(サンプルエントリー内)及び全てのビデオコーディングされたV-PCCコンポーネントトラック(スキーム情報内)の両方に存在する。このボックスは個々のトラックにより伝達されるデータのためのV-PCCユニットヘッダを含む。
aligned(8) class VPCCUnitHeaderBox
extends FullBox(’vunt’, version=0、0){
vpcc_unit_header() unit_header;
このボックスは上記のようなV-PCCユニットヘッダ(vpcc_unit_header())を含む。
V-PCCデコーダ構成レコード(V-PCC decoder configuration record)
このレコードはバージョンフィールドを含む。このバージョンはバージョン1である。レコードの両立不可な変更はバージョン番号の変化により識別される。実施例によるリーダー/デコーダはこのバージョンが認識できないバージョン番号である場合のレコード又はストリームを復号しなくてもよい。
V-PCCパラメータセットに対するアレイは上記のようにV-PCCパラメータセットを含む。
アトラスセットアップユニット(atlas_setupUnit)アレイはデコーダ構成レコードがアトラスストリームSEIメッセージと共に存在するサンプルエントリーにより称されるストリームに対して一定のアトラスパラメータセットを含む。
aligned(8) class VPCCDecoderConfigurationRecord{
unsigned int(8) configurationVersion=1;
unsigned int(3) sampleStreamSizeMinusOne;
unsigned int(5) numOfVPCCParameterSets;
for(i=0;i<numOfVPCCParameterSets;i++){
sample_stream_vpcc_unit VPCCParameterSet;
unsigned int(8) numOfAtlasSetupUnits;
for (i=0;i<numOfAtlasSetupUnits;i++){
sample_stream_vpcc_unit atlas_setupUnit;
構成バージョン(configurationVersion)はバージョンフィールドである。このレコードと両立できない変化はバージョン番号の変化により識別される。
サンプルストリームサイズ(sampleStreamSizeMinusOne):この値に1を加えると、この構成レコード又はこの構成レコードが適用されるストリーム内のV-PCCサンプル内の全てのサンプルストリームV-PCCユニット内のssvu_vpcc_unit_size要素のバイト内の精度を示す。
V-PCCパラメータセット数(numOfVPCCParameterSets):デコーダ構成レコード内にシグナリングされるV-PCCパラメータセット(VPS)の数を示す。
V-PCCパラメータセットはタイプVPCC_VPSのV-PCCユニットのsample_stream_vpcc_unit()インスタンスである。V-PCCユニットはV-PCCパラメータセット(vpcc_parameter_set())を含む。
アトラスセットアップユニット数(numOfAtlasSetupUnits):この構成レコード内にシグナリングされるアトラスストリームに対するセットアップアレイの数を示す。
アトラスセットアップユニット(Atlas_setupUnit):アトラスシーケンスパラメータセット、アトラスフレームパラメータセット又はSEIアトラスNALユニットを含むsample_stream_vpcc_unit()インスタンスである。例えば、ISO/IEC 23090-5の説明を参照できる。
また実施例によって、V-PCCデコーダ構成レコードは以下のように定義される。
aligned(8) class VPCCDecoderConfigurationRecord{
unsigned int(8) configurationVersion=1;
unsigned int(3) sampleStreamSizeMinusOne;
bit(2) reserved=1;
unsigned int(3) lengthSizeMinusOne;
unsigned int(5) numOVPCCParameterSets;
for(i=0;i<numOVPCCParameterSets;i++){
sample_stream_vpcc_unit VPCCParameterSet;
unsigned int(8) numOfSetupUnitArrays;
for(j=0;j<numOfSetupUnitArrays;j++){
bit(1) array_completeness;
bit(1) reserved=0;
unsigned int(6) NAL_unit_type;
unsigned int(8) numNALUnits;
for(i=0;i<numNALUnits;i++){
sample_stream_nal_unit setupUnit;
構成情報(configurationVersion):バージョンフィールドである。このレコードに対する両立不可な変更事項はバージョン番号の変更により識別される。
長さサイズ(lengthSizeMinusOne):この値に1を加えると、この構成レコード又はこの構成レコードに適用されるストリーム内のV-PCCサンプル内の全てのサンプルストリームNALユニット内のssnu_nal_unit_size要素のバイト内の精度(precision)を示す。
サンプルストリームサイズ(sampleStreamSizeMinusOne):この値に1を加えると、この構成レコード内にシグナリングされる全てのサンプルストリームV-PCCユニット内のssvu_vpcc_unit_size要素のバイト内の精度(precision)を示す。
V-PCCパラメータセット数(numOfVPCCParameterSets):この構成レコード内にシグナリングされるV-PCCパラメータセット(VPS)の数を示す。
V-PCCパラメータセットはタイプVPCC_VPSのV-PCCユニットに対するsample_stream_vpcc_unit()インスタンスである。
セットアップユニットアレイ数(numOfSetupUnitArrays):指示されたタイプのアトラスNALユニットのアレイ数である。
アレイ完成度(array_completeness):この値が1であると、所定のタイプの全てのアトラスNALユニットが続くアレイ内にあり、ストリーム内にないことを示す。この値が0であると、指示されたタイプの追加アトラスNALユニットがストリーム内にあり得ることを示す。デフォルト及び許容された値はサンプルエントリーネイムにより影響を受ける。
NALユニットタイプ(NAL_unit_type):続くアレイ内のアトラスNALユニットのタイプを示す。このタイプはISO/IEC 23090-5に定義された値を使用する。この値はNAL_ASPS、NAL_PREFIX_SEI又はNAL_SUFFIX_SEI atlas NAL unitを示す。
NALユニット数(numNALUnits):この構成レコードが適用されるストリームに対する構成レコード内に含まれる指示されたタイプのアトラスNALユニットの数である。SEIアレイはただ記述的性格のSEIメッセージを含む。全体としてストリームに関する情報を提供する。かかるSEIの例示はユーザ-データSEIである。
セットアップユニット(setupUnit):アトラスシーケンスパラメータセット又はアトラスフレームパラメータセット又は記述的SEIアトラスNALユニットを含むsample_stream_nal_unit()インスタンスである。
V-PCCアトラスパラメータセットサンプルグループ(V-PCC atlas parameter set sample group)
サンプルグルーピングに対するグルーピングタイプ’vaps’はV-PCCトラック内サンプルのサンプルグループ内に伝達されるアトラスパラメータセットに配置することを示す。’vaps’と同一のグルーピングタイプを有するサンプルツーグループボックス(SampleToGroupBox)が存在する場合、同一のグルーピングタイプを有するサンプルグループ記述ボックスが存在し、サンプルが属するこのグループのIDを含む。
V-PCCトラックは’vaps’と同一のグルーピングタイプを有する最大1つのサンプルツーグループボックスを含む。
aligned(8) class VPCCAtlasParamSampleGroupDescriptionEntry() extends SampleGroupDescriptionEntry(’vaps’){
unsigned int(8) numOfAtlasParameterSets;
for(i=0;i<numOfAtlasParameterSets;i++){
sample_stream_vpcc_unit atlasParameterSet;
アトラスパラメータセット数(numOfAtlasParameterSets):サンプルグループ記述内にシグナリングされるアトラスパラメータセットの数を示す。
アトラスパラメータセットはサンプルのこのグループに連関するアトラスシーケンスパラメータセット、アトラスフレームパラメータセットを含むsample_stream_vpcc_unit()インスタンスである。
アトラスパラメータサンプルグループ記述エントリーは以下の通りである。
aligned(8) class VPCCAtlasParamSampleGroupDescriptionEntry() extends SampleGroupDescriptionEntry(’vaps’){
unsigned int(3) lengthSizeMinusOne;
unsigned int(5) numOfAtlasParameterSets;
for(i=0;i<numOfAtlasParameterSets;i++){
sample_stream_nal_unit atlasParameterSetNALUnit;
長さサイズ(lengthSizeMinusOne):この値に1を加えると、このサンプルグループ記述内にシグナリングされる全てのサンプルストリームNALユニット内のssnu_nal_unit_size要素のバイト内の精度を示す。
アトラスパラメータセットNALユニット(atlasParameterSetNALUnit):サンプルのこのグループに連関するアトラスシーケンスパラメータセット、アトラスフレームパラメータセットを含むsample_stream_nal_unit()インスタンスである。
V-PCC SEIサンプルグループ(V-PCC SEI sample group)
サンプルグルーピングに対する’vsei’グルーピングタイプはV-PCCトラック内サンプルのこのサンプルグループ内に伝達されるSEI情報への配置を示す。’vsei’と同一のグルーピングタイプを有するサンプルツーグループボックスが存在する場合、同一のグルーピングタイプを有するサンプルグループ記述ボックス(SampleGroupDescriptionBox)が存在し、サンプルが属するグループのIDを含む。
V-PCCトラックは’vsei’と同一のグルーピングタイプを有するサンプルツーグループボックスを最大1つ含む。
aligned(8) class VPCCSEISampleGroupDescriptionEntry() extends SampleGroupDescriptionEntry(’vsei’){
unsigned int(8) numOfSEIs;
for(i=0;i<numOfSEISets;i++){
sample_stream_vpcc_unit sei;
SEIの数(numOfSEIs):サンプルグループ記述内にシグナリングされるV-PCC SEIの数を示す。
SEIはサンプルのこのグループに連関するSEI情報を含むsample_stream_vpcc_unit()インスタンスである。
V-PCC SEIサンプルグループ記述エントリーは以下の通りである。
aligned(8) class VPCCSEISampleGroupDescriptionEntry () extends SampleGroupDescriptionEntry(’vsei’){
unsigned int(3) lengthSizeMinusOne;
unsigned int(5) numOfSEIs;
for(i=0;i<numOfSEIs;i++){
sample_stream_nal_unit seiNALUnit;
長さサイズ(lengthSizeMinusOne):この値に1を加えると、このサンプルグループ記述内にシグナリングされる全てのサンプルストリームNALユニット内のssnu_nal_unit_size要素のバイト内精度を示す。
SEI NALユニット(seiNALUnit):サンプルのこのグループに連関するSEI情報を含むsample_stream_nal_unit()インスタンスである。
V-PCCバウンディングボックスサンプルグループ(V-PCC Bounding box sample group)
サンプルグルーピングに対する’vpbb’グルーピングタイプはV-PCCトラック内サンプルのこのサンプルグループ内に伝達される3Dバウンディングボックス情報への配置を示す。’vpbb’と同一のグルーピングタイプ(grouping_type)を有するサンプルツーグループボックス(SampleToGroupBox)が存在すると、同一のグルーピングタイプを有するサンプルグループ記述ボックスが存在し、サンプルが属するこのグループのIDを含む。
V-PCCトラックは’vpbb’と同一のグルーピングタイプを有するサンプルツーグループボックス(SampleToGroupBox)を最大1つ含む。
aligned(8) class VPCC3DBoundingBoxSampleGroupDescriptionEntry() extends SampleGroupDescriptionEntry(’vpbb’){
3DBoundingBoxInfoStruct();
V-PCC 3D領域マッピングサンプルグループ(V-PCC 3D region mapping sample group)
サンプルグルーピングに対するグルーピングタイプ’vpsr’はV-PCCトラック内サンプルのこのサンプルグループ内に伝達される3D領域マッピング情報への配置を示す。’vpsr’と同一のグルーピングタイプを有するサンプルツーグループボックス(SampleToGroupBox)が存在する場合、同一のグルーピングタイプを有するサンプルグループ記述ボックス(SampleGroupDescriptionBox)が存在し、サンプルが属するこのグループのIDを含む。
V-PCCトラックは’vpsr’と同一のグルーピングタイプを有するサンプルツーグループボックス(SampleToGroupBox)を最大1つ含む。
aligned(8) class VPCC3DRegionMappingSampleGroupDescriptionEntry() extends SampleGroupDescriptionEntry(’vpsr’){
V-PCC 3D領域マッピングボックス3D領域マッピング(VPCC3DRegionMappingBox 3D_region_mapping)
V-PCCビットストリームのマルチトラックコンテナ
マルチトラックISOBMFF V-PCCコンテナの一般的なレイアウトである。V-PCC基本ストリーム内のV-PCCユニットがそれらのタイプに基づいてコンテナファイル内の個々のトラックにマッピングされる。マルチトラックISOBMFF V-PCCコンテナ内に2つのタイプのトラックがあり得る:V-PCCトラック及びV-PCCコンポーネントトラックである。
V-PCCトラック(又はV3Cトラック)24030,25000はアトラスサブビットストリーム及びシーケンスパラメータセットを含むV-PCCビットストリーム内のボリュメトリックビジュアル情報を伝達するトラックである。
V-PCCコンポーネントトラックはV-PCCビットストリームの占有マップ、ジオメトリ、特質サブ非ストリームに対する2Dビデオ符号化されたデータを伝達するビデオスキームトラックである。さらに、以下の条件がV-PCCコンポーネントトラックに対して満たされる。
a)サンプルエントリー内、V-PCCシステム内のこのトラックに含まれたビデオストリームの役割を記述する新しいボックスが挿入される。
b)V-PCCトラックにより表現される特定のポイントクラウド内のV-PCCコンポーネントトラックのメンバーシップを生成するために、V-PCCトラックからV-PCCコンポーネントトラックにトラック参照が導入される。
c)このトラックが直接ムービーの全体的なレイアップに寄与せず、V-PCCシステムに寄与することを示すためにトラック-ヘッダフラグが0に設定される。
実施例によるポイントクラウドデータを記述するアトラスビットストリーム、シグナリング情報(パラメータ、メタデータなどと称する)はボックスというデータ構造に含まれる。実施例による方法/装置はマルチトラックに基づいてアトラスビットストリーム、パラメータ情報をv-pccトラック(又はv3cトラック)に含ませて送信する。さらに実施例による方法/装置は実施例によるアトラスビットストリーム、パラメータ情報をv-pccトラック(又はv3cトラック)のサンプルエントリーに含ませて送信する。
また実施例による方法/装置はシングルトラックに基づいて実施例によるアトラスビットストリーム及びパラメータ情報をV-PCC基本ストリームトラックに含ませて送信する。さらに実施例による方法/装置はアトラスビットストリーム及びパラメータ情報をV-PCC基本ストリームトラックのサンプルエントリー或いはサンプルに含ませて送信する。
同一のV-PCCシーケンスが属するトラックは時間によって整列(align)される。異なるビデオ符号化されたV-PCCコンポーネントトラック及び間の同一のポイントクラウドフレームに寄与するサンプル及びV-PCCトラックは同一のプレゼンテーション時間を有する。サンプルに対して使用されるV-PCCアトラスシーケンスパラメータセット及びアトラスフレームパラメータセットは、ポイントクラウドフレームのコンポジション時間と等しいか又は先立つ復号時間を有する。さらに同一のV-PCCシーケンスに属する全てのトラックは同一の含蓄又は明瞭な編集リストを有する。
ノート:コンポーネントトラック内の基本ストリーム間の同期化はISOBMFFトラックタイミング構造(stts、ctts、cslg)により処理されるか、又はムービーフラグメント内の同等なメカニズムにより処理される。
このようなレイアウトに基づいて、V-PCC ISOBMFFコンテナは以下を含む(図24参照):
-V-PCCパラメータセットV-PCCユニット(unit type VPCC_VPS)及びアトラスV-PCCユニット(unit type VPCC_AD)のペイロードを伝達するサンプル及びサンプルエントリー内のV-PCCパラメータセットを含むV-PCCトラック。またこのトラックはunit types VPCC_OVD、VPCC_GVD及びVPCC_AVDのようなビデオ圧縮されたV-PCCユニットのペイロードを伝達する他のトラックに対するトラック参照を含む。
-タイプVPCC_OVDのV-PCCユニットのペイロードである占有マップデータのためのビデオコーディングされた基本ストリームのアクセスユニットを含むサンプルがあるビデオスキームトラック。
-タイプVPCC_GVDのV-PCCユニットのペイロードであるジオメトリデータのビデオコーディングされた基本ストリームのアクセスユニットを含むサンプルがある1つ又は1つ以上のビデオスキームトラック。
-タイプVPCC_AVDのV-PCCユニットのペイロードである特質データのビデオコーディングされた基本ストリームのアクセスユニットを含むサンプルがあるゼロ又は1つ以上のビデオスキームトラック。
V-PCCトラック(V-PCC tracks):
V-PCCトラックサンプルエントリー(V-PCC Track Sample Entry):
サンプルエントリータイプ(Sample Entry Type):’vpc1’、’vpcg’
コンテナ(Container):サンプル記述ボックス(SampleDescriptionBox)
義務の有無(Mandatory):’vpc1’又は’vpcg’サンプルエントリーは義務である。
量(Quantity):1つ又はそれ以上のサンプルエントリーが存在する。
V-PCCトラックはVolumetricVisualSampleEntryを拡張するVPCCSampleEntryを使用する。サンプルエントリータイプは’vpc1’又は’vpcg’である。
V-PCCサンプルエントリーはV-PCC構成ボックス(VPCCConfigurationBox)を含む。このボックスはデコーダ構成レコード(VPCCDecoderConfigurationRecord)を含む。
’vpc1’サンプルエントリーにおいて、全てのアトラスシーケンスパラメータセット、アトラスフレームパラメータセット又はV-PCC SEIはセットアップユニットアレイ(setupUnit array)内にある。
’vpcg’サンプルエントリーにおいて、アトラスシーケンスパラメータセット、アトラスフレームパラメータセット、V-PCC SEIがこのアレイ内又はストリーム内にある。
任意のビットレートボックス(BitRateBox)はV-PCCトラックのビットレート情報をシグナリングするために、V-PCCボリュメトリックサンプルエントリー内の存在する。
ボリュメトリックシーケンス(Volumetric Sequences):
class VPCCConfigurationBox extends box(’vpcc’){
VPCCDecoderConfigurationRecord() VPCCConfig;
aligned(8) class VPCCSampleEntry() extends VolumetricVisualSampleEntry(’vpc1’){
VPCCConfigurationBox config;
VPCCUnitHeaderBox unit_header;
VPCCBoundingInformationBox();
図70は実施例によるV-PCCサンプルエントリーを示す。
図70は図24のV-PCCトラック(又はV3Cトラック)24030及び図25のV3Cトラック25000に含まれるサンプルエントリーの構造図である。
図70はこの明細書で説明する実施例によるV-PCCサンプルエントリー構造の一例を示す。サンプルエントリーはV-PCCパラメータセット(VPS)70000を含み、任意にアトラスシーケンスパラメータセット(ASPS)70010、アトラスフレームパラメータセット(AFPS)70020及び/又はSEI70030を含む。
図70のV-PCCビットストリームは図27のV-PCCビットストリームを生成してパース(parse)する実施例により生成されてパースされる。
V-PCCビットストリームはサンプルストリームV-PCCヘッダ、サンプルストリームヘッダ、V-PCCユニットヘッダボックス、サンプルストリームV-PCCユニットを含む。
V-PCCビットストリームは図26及び図27などに説明したV-PCCビットストリームに対応するか又は追加拡張された例示である。
V-PCCトラックサンプルフォーマット(V-PCC track sample format)
V-PCCトラック内の各サンプルはシングルポイントクラウドフレームに対応する。様々なコンポーネントトラック内のこのフレームに対応するサンプルはV-PCCトラックサンプルのように同一のコンポジションタイムを有する。各々のV-PCCサンプル1つ又は1つ以上のアトラスNALユニットを含む。
aligned(8) class VPCCSample{
unsigned int PointCloudPictureLength=sample_size;//SampleSizeBoxからのサンプルサイズを意味する。
for(i=0;i<PointCloudPictureLength;){
sample_stream_nal_unit nalUnit
i+=(VPCCDecoderConfigurationRecord.lengthSizeMinusOne+1)+nalUnit.ssnu_nal_unit_size;
aligned(8) class VPCCSample
unsigned int PictureLength=sample_size;//SampleSizeBoxからのサンプルのサイズを意味する。
for(i=0;i<PictureLength;)//ピクチャの終わりまでシグナリングされる
unsigned int((VPCCDecoderConfigurationRecord.LengthSizeMinusOne+1)*8)
NALUnitLength;
bit(NALUnitLength*8) NALUnit;
i+=(VPCCDecoderConfigurationRecord.LengthSizeMinusOne+1)+NALUnitLength;
V-PCCデコーダ構成レコード(VPCCDecoderConfigurationRecord):マッチングされるV-PCCサンプルエントリー内のデコーダ構成レコードを示す。
NALユニット(nalUnit):サンプルストリームNALユニットフォーマット内のシングルアトラスNALユニットを含む。
NALユニット長さ(NALUnitLength):続くNALユニットのバイト内サイズを示す。
NALユニット(NALUnit):シングルアトラスNALユニットを含む。
V-PCCトラック同期サンプル(V-PCC track sync sample):
V-PCCトラック内の同期サンプル(任意アクセスポイント)はV-PCC IRAPコーディングされたパッチデータアクセスユニットである。アトラスパラメータセットは必要な場合、任意アクセスのための同期サンプルで繰り返される。
ビデオ-符号化されたV-PCCコンポーネントトラック(Video-encoded V-PCC component tracks):
MPEG特定のコーデックを使用してコーディングされたビデオトラックの伝達はISO BMFFの規定に従う。例えば、AVC及びHEVCコーディングされたビデオの伝達はISO/IEC14496-15を参照できる。ISOBMFFは他のコーデックタイプが必要な場合、拡張メカニズムをさらに提供することができる。
プレーヤー側においてポイントクラウドを再構成することなく、特質、ジオメトリ又は占有マップトラックから復号されたフレームをディスプレイすることは意味があるとは認められないので、限られたビデオスキームタイプはかかるビデオ-コーディングされたトラックに対して定義されることができる。
限られたビデオスキーム(Restricted video scheme):
V-PCCコンポーネントビデオトラックは限られたビデオとしてファイル内に表現される。また限られたビデオサンプルエントリーのRestrictedSchemeInfoBoxのSchemeTypeBoxのscheme_typeフィールド内の’pccv’値により識別される。
特質、ジオメトリ及び占有マップV-PCCコンポーネントを符号化するために使用されるビデオコーデック上の制限(restriction)はない。さらに、かかるコンポーネントは異なるビデオコーデックを使用して符号化される。
スキーム情報(Scheme information):
SchemeInformationBoxが存在し、VPCCUnitHeaderBoxを含む。
V-PCCコンポーネントトラックの参照(Referencing V-PCC component tracks):
V-PCCトラックをコンポーネントビデオトラックにリンクするために、3つのTrackReferenceTypeBoxesが各コンポーネントのためにV-PCCトラックのTrackBox内TrackReferenceBoxに追加される。TrackReferenceTypeBoxはV-PCCトラック参照に関するビデオトラックを指定するtrack_IDのアレイを含む。TrackReferenceTypeBoxのreference_typeは占有マップ、ジオメトリ、特質又は占有マップなどのコンポーネントのタイプを識別する。トラック参照タイプは以下の通りである:
’pcco’:参照されたトラックがビデオ-コーディングされた占有マップV-PCCコンポーネントを含む
’pccg’:参照されたトラックがビデオ-コーディングされたジオメトリV-PCCコンポーネントを含む
’pcca’:参照されたトラックがビデオ-コーディングされた特質V-PCCコンポーネントを含む
参照された限られたビデオ トラックにより伝達され、トラックのRestrictedSchemeInfoBox内でシグナリングされるV-PCCコンポーネントのタイプはV-PCCトラックからトラック参照の参照タイプにマッチングされる。
実施例によるポイントクラウドデータ送信方法のポイントクラウドデータをカプセル化する段階では、ポイントクラウドデータを含むマルチトラックのコンテナを生成する。
実施例によるポイントクラウドデータ受信装置のポイントクラウドデータをデカプセル化するデカプセル化部は、ポイントクラウドデータを含むマルチトラックのコンテナをパースする。
実施例によるマルチトラックは第1トラック、第2トラック、第3トラック及び第4トラックを含み、第1トラックはポイントクラウドデータの占有マップを含み、第2トラックはポイントクラウドデータのジオメトリデータを含み、第3トラックはポイントクラウドデータの特質データを含み、第4トラックはポイントクラウドデータに対するパラメータセット及びアトラスデータを含む。
実施例による第4トラックはポイントクラウドデータに対する3D空間領域の部分接近のための空間領域情報を含み、空間領域情報は3D空間領域に含まれたポイントクラウドデータに連関するアトラスタイル数を示す情報及びアトラスタイルを示すタイル識別情報を含む。
実施例による空間領域情報は時間に応じて静的情報又は動的情報を含む。
実施例によるポイントクラウドデータの符号化段階は、ポイントクラウドデータ及びポイントクラウドデータに関するアトラスビットストリームを含むビットストリームを生成し、アトラスビットストリームはポイントクラウドデータに関する3D領域をマッピングするための3D領域情報を含む。
実施例による3D領域情報は、ポイントクラウドデータに対する3D領域の位置情報及びサイズ情報を含み、3D領域に関連するアトラスデータが存在するフレームの2D領域に関する情報を含む。
図71は実施例によるトラック代替及びグルーピングを示す。
図71はISOBMFFファイル構造のトラック間代替又はグルーピングが適用される例示である。
トラック代替及びトラックグルーピング(Track alternatives and track grouping):
同一のalternate_group値を有するV-PCCコンポーネントトラックは同一のV-PCCコンポーネントの異なる符号化されたバージョンである。ボリュメトリックビジュアルシーンは代替されてコーディングされる。この場合、互いに代替可能な全てのV-PCCトラックはTrackHeaderBox内の同一のalternate_group値を有する。
同様にV-PCCコンポーネントの1つを示す2Dビデオトラックが代替(alternatives)に符号化される場合、かかる代替及び代替グループから代替の1つに対するトラック参照があり得る。
図64にはファイル構造に基づくV-PCCコンテンツを構成するV-PCCコンポーネントトラックが示されている。同一のアトラスグループIDを有する場合には、IDが10である場合、11である場合、また12である場合がある。特質ビデオである第2トラック及び第5トラックは互いに代替使用でき、第3トラック及び第6トラックは互いにジオメトリビデオとして代替でき、第4トラック及び第7トラックは占有ビデオとして代替できる。
V-PCCビットストリームのシングルトラックコンテナ(Single track container of V-PCC Bitstream):
V-PCCデータのシングル-トラックカプセル化は、シングル-トラック宣言により表現されるV-PCC符号化された基本ビットストリームを求める(a single-track encapsulation of V-PCC data requires the V-PCC encoded elementary bitstream to be represented by a single-track declaration)。
PCCデータのシングルトラックカプセル化は、V-PCC符号化されたビットストリームのシンプルISOBMFFのカプセル化の場合に利用される。かかるビットストリームは追加処理なしにシングルトラックにすぐ格納される。V-PCCユニットヘッダデータ構造はビットストリーム内にある。V-PCCデータのためのシングルトラックコンテナは追加処理(例えば、multi-track file generation, transcoding, DASH segmentationなど)のためのメディアワークフローに提供される。
シングル-トラックカプセル化されたV-PCCデータを含むISOBMFFファイルは、FileTypeBoxのcompatible_brands[]リスト内の’pcst’を含む。
V-PCC基本ストリームトラック(V-PCC elementary stream track):
Sample Entry Type:’vpe1’、’vpeg’
Container:SampleDescriptionBox
Mandatory:a ’vpe1’ or ’vpeg’ sample entry is mandatory
Quantity:One or more sample entries may be present
V-PCC基本ストリームトラックはサンプルエントリータイプ’vpe1’又は’vpeg’を有するVolumetricVisualSampleEntryを使用する。
V-PCC基本ストリームサンプルエントリーはVPCCConfigurationBoxを含む。
’vpe1’サンプルエントリーにおいて、全てのアトラスシーケンスパラメータセット、アトラスフレームパラメータセット、SEIがsetupUnitアレイ内にある。’vpeg’サンプルエントリーにおいて、アトラスシーケンスパラメータセット、アトラスフレームパラメータセット、SEIがこのアレイ又はストリーム内に存在する。
ボリュメトリックシーケンス(Volumetric Sequences):
class VPCCConfigurationBox extends box(’vpcc’){
VPCCDecoderConfigurationRecord() VPCCConfig;
aligned(8) class VPCCElementaryStreamSampleEntry() extends VolumetricVisualSampleEntry(’vpe1’){
VPCCConfigurationBox config;
VPCCBoundingInformationBox 3D_bb;
V-PCC基本ストリームサンプルフォーマット(V-PCC elementary stream sample format):
V-PCC基本ストリームサンプルは同一のプレゼンテーション時間に属する1つ又は1つ以上のV-PCCユニットで構成される。各々のサンプルはユニークなプレゼンテーション時間、サイズ、期間を有する。サンプルは例えば、同期サンプルであるか、又は他のV-PCC基本ストリームサンプル上の復号依存的である。
V-PCC基本ストリーム同期サンプル(V-PCC elementary stream sync sample):
V-PCC基本ストリーム同期サンプルは以下の条件を満たす:
-独立してデコード可能である。
-復号順に同期サンプル後のサンプルは同期サンプルより前のサンプルに対する復号依存を有さない。
-復号順に同期サンプル後の全てのサンプルは成功的にデコード可能である。
V-PCC基本ストリームサブ-サンプル(V-PCC elementary stream sub-sample):
V-PCC基本ストリームサブ-サンプルはV-PCC基本ストリームサンプル内に含まれるV-PCCユニットである。
V-PCC基本ストリームトラックは、V-PCC基本ストリームサブ-サンプルを並べるMovieFragmentBoxesのTrackFragmentBox内又は各SampleTableBox内のSubSampleInformationBoxを含む。
サブ-サンプルを表現するV-PCCユニットの32-ビットユニットヘッダは、SubSampleInformationBox内のサブ-サンプルエントリーの32-ビットcodec_specific_parametersフィールドにコピーされる。各サブ-サンプルのV-PCCユニットタイプは、SubSampleInformationBox内のサブ-サンプルエントリーのcodec_specific_parametersフィールドをパースすることにより識別される。
ポイントクラウドデータの部分接近(Partial Access of point Cloud Data)
3Dバウンディングボックス情報構造(3D bounding box information structure)
3Dバウンディングボックス構造(3DBoundingBoxStruct)は、3DバウンディングボックスのX、Y、Zオフセット及びポイントクラウドデータの3Dバウンディングボックスの幅、高さ、深さを含むポイントクラウドデータの3Dバウンディングボックス情報を提供する。
aligned(8) class 3DBoundingBoxInfoStruct(){
unsigned int(16) bb_x;
unsigned int(16) bb_y;
unsigned int(16) bb_z;
unsigned int(16) bb_delta_x;
unsigned int(16) bb_delta_y;
unsigned int(16) bb_delta_z;
バウンディングボックスX、Y、Z(bb_x、bb_y及びbb_z)はそれぞれ座標系内のポイントクラウドデータの3Dバウンディングボックスの原点位置のX、Y、Z座標値を示す。
バウンディングボックスデルタX、Y、Z(bb_delta_x、bb_delta_y及びbb_delta_z):原点(origin)に対するX、Y、Z軸に沿って座標系内のポイントクラウドデータの3Dバウンディングボックスの拡張を示す。
3D領域情報構造(3D region information structure)
3DRegionInfoStructはポイントクラウドデータ一部領域に対する3D領域情報を含む。
aligned(8) class 3DRegionInfoStruct(3D_dimension_included_flag){
unsigned int(16) 3d_region_id;
unsigned int(16) 3d_anchor_x;
unsigned int(16) 3d_anchor_y;
unsigned int(16) 3d_anchor_z;
if(3D_dimension_included_flag){
unsigned int(8)3d_region_type;
if(3D_region_type==’1’){//cuboid
unsigned int(16) 3d_region_delta_x;
unsigned int(16) 3d_region_delta_y;
unsigned int(16) 3d_region_delta_z;
3D領域ID(3d_region_id)は3D領域の識別子を示す。
3D領域アンカーX、Y、Z(3d_region_anchor_x、3d_region_anchor_y、3d_region_anchor_z)はそれぞれ、3D領域のアンカーポイント(anchor point)のx、y、z座標値を示す。例えば、3D領域が立方体タイプである場合、アンカーポイントは立方体の原点(origin)になり、3d_region_anchor_x、3d_region_anchor_y、3d_region_anchor_zは3D領域の立方体の原点位置(origin position)のx、y、z座標値を示す。
3D領域タイプ(3d_region_type)は3D領域のタイプを示し、値として0x01-cuboidなどを有する。
3Dディメンション含みフラグ(3d_dimension_included_flag)は3D領域詳細情報、例えば、3d_region_type、3d_region_delta_x、3d_region_delta_y、3d_region_delta_yを含むか否かを示すフラグである。
3D領域デルタX、Y、Z(3d_region_delta_x、3d_region_delta_y、3d_region_delta_z)は3D領域のタイプが立方体である場合、x、y、z軸の差の値を示す。
2D領域情報構造(2D region information structure)
aligned(8) class 2DRegionInfoStruct(2d_dimension_included_flag){
unsigned int(16) 2d_region_id;
unsigned int(16) 2d_region_top;
unsigned int(16) 2d_region_left;
if(2d_dimension_included_flag){
unsigned int(16) 2d_region_width;
unsigned int(16) 2d_region_height;
2D領域ID(2d_region_id)は2D領域の識別子を示す。
2D領域上部、左部(2d_region_top、2d_region_left)はそれぞれ、2D領域の左上部位置のフレーム内垂直座標(vertical coordinate)、水平座標(horizontal coordinate)値を含む。
2Dディメンション含みフラグ(2d_dimension_included_flag)は2D領域の幅(width)、高さ(height)値を含むか否かを示すフラグである。
2D領域幅、高さ(2d_region_width、2d_region_height)はそれぞれ、2D領域のフレーム内で水平範囲(width)、垂直範囲(height)値を含む。
図72は実施例によるV-PCC 3D領域マッピング情報の構造を示す。
PCC 3D領域マッピング情報の構造(PCC 3D region mapping information Structure)
V-PCC 3D領域マッピング情報の構造(VPCC3DRegionMappingInfoStruct)は、ポイントクラウドデータの3D領域とビデオ或いはアトラスフレーム内に連関するデータが含まれた1つ以上のジオメトリ、占有、特質ビデオ或いはアトラスフレームの2D領域情報を含む。
aligned(8) class VPCC3DRegionMappingInfoStruct(){
unsigned int(16) num_3d_regions;
for(i=0;i<num_3d_regions;i++){
3DRegionInfoStruct(1);
unsigned int(8) num_2d_regions[i];
for(j=0;j<num_2d_regions[i];j++)
2DRegionInfoStruct(1);
3DRegionInfoStruct()はポイントクラウドデータの一部或いは全体の3次元空間で3D領域情報を示す。
2D領域数(num_2d_regions[i])は3D領域内のポイントクラウドデータに連関するデータが含まれた1つ以上のビデオ或いはアトラスフレームの2D領域の数を示す。
2DRegionInfoStructは3D領域内のポイントクラウドデータに連関するデータが含まれたジオメトリ、占有、特質ビデオ或いはアトラスフレームの2D領域情報を示す。
V-PCC 3D領域マッピング情報ボックス(V-PCC 3D region mapping information box)
V-PCC 3D領域マッピング情報ボックス(V-PCC 3D region mapping information box)はさらにPCC 3D領域マッピング情報の構造(PCC 3D region mapping information structure)を含む。さらにタイルなどに関する追加情報を含む。
VPCC3DRegionMappingBoxは、ポイントクラウドデータの一部或いは全体の3次元空間において3D領域情報、該当3D領域内のポイントクラウドデータに連関するデータが含まれた1つ以上のビデオ或いはアトラスフレームの2D領域情報、各2D領域に連関するビデオ或いはアトラスタイル或いはタイルグループに関する情報を含む。
aligned(8) class VPCC3DRegionMappingBox extends FullBox(’vpsr’,0,0){
VPCC3DRegionMappingInfoStruct();
unsigned int(8) num_2d_regions;
for(j=0;j<num_2d_regions;j++){
unsigned int(8) 2d_region_id;
unsigned int(8) num_tileS[j];
for(k=0;k<num_tiles[j];k++)
unsigned int(32)tile_id[k];
unsigned int(8) num_tile_groups[j];
for(k=0;k<num_groups[j];k++)
unsigned int(32)tile_group_id[m];
2D領域ID(2d_region_id):ジオメトリ、占有、特質ビデオ或いはアトラスフレームの2D領域の識別子である。
タイル数(num_tiles):ジオメトリ、占有、特質ビデオ或いはアトラスフレームの2D領域に連関するビデオフレームのタイル或いはアトレスフレームのタイル数である。
タイルID(tile_id[k]):ジオメトリ、占有、特質ビデオ或いはアトラスフレームの2D領域に連関するビデオフレームのタイル或いはアトレスフレームのタイル識別子である。
タイルグループ数(num_tile_groups):ジオメトリ、占有、特質ビデオ或いはアトラスフレームの2D領域に連関するビデオフレームのタイルグループ或いはアトレスフレームのタイルグループの数である。
タイルグループID(tile_group_id):ジオメトリ、占有、特質ビデオ或いはアトラスフレームの2D領域に連関するビデオフレームのタイルグループ或いはアトレスフレームのタイルグループ識別子である。
実施例によるシグナリング情報により、実施例による受信方法/装置は3D領域と1つ以上のアトラスタイル(2D領域)の間の静的/動的マッピング関係を把握することができる。その結果、実施例による受信方法/装置は効率的に部分接近(partial access)を行って所望の領域のデータを得ることができる。例えば、領域ごと、タイルIDごと、客体ごとのデータ接近が可能である。
サンプルエントリーは以下の静的情報を含む。別の時間指定メタデータトラックは以下の動的情報を含む。例えば、マルチトラックの場合、V3Cトラックのサンプルエントリーが静的3D空間領域情報を伝達する。シングルトラックの場合は、V3C基本トラックのサンプルエントリーが静的3D空間領域情報を伝達する。マルチトラックの場合、時間指定メタデータトラックが動的3D空間領域情報を伝達する。シングルトラックの場合は、V3C基本トラックのサンプルエントリーは動的3D空間領域情報を伝達する。
静的V-PCC 3D領域マッピング情報(Static V-PCC 3D region mapping information)
ポイントクラウドデータの3次元領域とビデオ或いはアトラスフレーム内に連関するデータが含まれた1つ以上のビデオ或いはアトラスフレームの2D領域情報、各2D領域に連関するビデオ或いはアトラスタイル或いはタイルグループに関する情報がポイントクラウドシーケンス内に変化しない場合、V-PCCトラック或いはV-PCC基本ストリームトラックのサンプルエントリーにVPCC3DRegionMappingBoxが含まれる。
aligned(8) class VPCCSampleEntry() extends VolumetricVisualSampleEntry (’vpc1’){
VPCCConfigurationBox config;
VPCCUnitHeaderBox unit_header;
VPCC3DRegionMappingBox 3D_region_mapping;
VPCC3DRegionMappingBoxにおいてシグナリングされるアトラスフレームの2D領域情報は、V-PCCトラック内のサンプルに含まれているアトラスフレームの2D領域情報である。
VPCC3DRegionMappingBoxにおいてシグナリングされるビデオ(ジオメトリ、占有、特質)フレームの2D領域情報は、V-PCCトラックのトラック参照により参照しているビデオトラック(ジオメトリ、占有、特質)内のサンプルに含まれているビデオフレームの2D領域情報である。
aligned(8) class VPCCElementaryStreamSampleEntry() extends VolumetricVisualSampleEntry(’vpe1’){
VPCCConfigurationBox config;
VPCC3DRegionMappingBox 3D_region_mapping;
VPCC3DRegionMappingBoxにおいてシグナリングされるビデオ(ジオメトリ、占有、特質)フレーム或いはアトラスフレームの2D領域情報は、V-PCC基本ストリームトラック内のサブサンプルに含まれているビデオ或いはアトラスフレームの2D領域情報である。
動的V-PCC 3D領域マッピング情報(dynamnic V-PCC 3D region mapping information)
V-PCCトラックはサンプルエントリータイプ’dysr’を有する関連するタイルメタデータトラックを有する場合、ポイントクラウドストリームに対して定義された3D空間領域がV-PCCトラックにより伝達され、動的領域として考慮される。即ち、空間領域情報は時間に応じて動的に変化する。
関連する時間指定メタデータトラックはアトラスストリームを伝達するV-PCCトラックに対して参照する’cdsc’トラックを含む。
VPCC3DRegionMappingBoxにおいてシグナリングされるアトラスフレームの2D領域情報は、V-PCCトラック内のサンプルに含まれているアトラスフレームの2D領域情報であり得る。
VPCC3DRegionMappingBoxにおいてシグナリングされるビデオ(ジオメトリ、占有、特質)フレームの2D領域情報はV-PCCトラックのトラック参照により参照しているビデオトラック(ジオメトリ、占有、特質)内のサンプルに含まれているビデオフレームの2D領域情報である。
V-PCC基本ストリームトラックはサンプルエントリータイプ’dysr’を有する連関する時間指定メタデータトラックを含むと、ポイントクラウドストリームに対して定義された3D空間領域がV-PCC基本トラックにより伝達され、動的領域として考慮される。即ち、空間領域情報は時間によって動的に変化する。
関連する時間指定メタデータトラックはアトラスストリームを伝達するV-PCC基本トラックに対して参照する’cdsc’トラックを含む。
VPCC3DRegionMappingBoxにおいてシグナリングされるビデオ(ジオメトリ、占有、特質)フレーム或いはアトラスフレームの2D領域情報はV-PCC基本ストリームトラック内のサブサンプルに含まれているビデオ或いはアトラスフレームの2D領域情報である。
aligned(8) class Dynamic3DSpatialRegionSampleEntry extends MetaDataSampleEntry(’dysr’){
VPCC3DRegionMappingBox init_3d_region_mapping;
このサンプルエントリータイプ’dysr’のサンプルシンタックスは以下のように記載される。
aligned(8) DynamicSpatialRegionSample(){
VPCC3DRegionMappingBox 3D_region_mapping;
ポイントクラウドボックス(point cloud bounding box)
V-PCCバウンディング情報ボックス(VPCCBoundingInformationBox)は、V-PCCトラック又はV-PCC基本ストリームトラックのサンプルエントリー内に存在する。V-PCCトラック又はV-PCC基本ストリームトラックのサンプルエントリー内に存在する場合、VPCCBoundingInformationBoxが関連する又は伝達されるポイントクラウドデータの全般的なバウンディングボックス情報を提供する。
aligned(8) class VPCCBoundingInformationBox extends FullBox(’vpbb’,0,0){
3DBoundingBoxInfoStruct();
V-PCCトラックが’dybb’サンプルエントリータイプを有する関連する時間指定メタデータトラックを有すると、時間指定メタデータトラックはポイントクラウドデータの動的に変化する3Dバウンディングボックス情報を提供する。
関連する時間指定メタデータトラックはアトラスストリームを伝達するV-PCCトラックを参照する’cdsc’トラックを含む。
aligned(8) class Dynamic3DBoundingBoxSampleEntry
extends MetaDataSampleEntry(’dybb’){
VPCCBoundingInformationBox all_bb;
全バウンディングボックス(all_bb):全般的な3Dバウンディングボックス情報を提供する。原点位置のX、Y、Z座標を含み、座標系上の原点(origin)に対するX、Y、Z軸に沿ってポイントクラウドデータの全般的な3Dバウンディングボックスの拡張を提供する。このトラック内サンプルにより伝達される3Dバウンディングボックスはこの全般的な3Dバウンディングボックスの空間パートである。
このサンプルエントリータイプ’dybb’のサンプルシンタックスは以下のように記載される。
aligned(8) Dynamic3DBoundingBoxSample(){
VPCCBoundingInformationBox 3DBB;
3Dバウンディングボックス(3Dbb):このサンプル内にシグナリングされる3Dバウンディングボックス情報を提供する。
3DSpatialRegionStructの意味(semantics)に関連して、ディメンション含みフラグ(dimensions_included_flag)が0であると、ディメンションがシグナリングされず、同一の領域に対して以前にシグナリングされることを示す。即ち、同一の3d_region_idを有する3DSpatialRegionStructの以前インスタンスがディメンションをシグナリングする。
図54の構造に基づいて、実施例による方法/装置/システムはノンタイムポイントクラウドデータを伝達する。
ノンタイムビデオ基盤のポイントクラウドデータの伝達(Carriage of non-timed Video-based point Cloud Compression Data)
イメージアイテムとしてファイル内のノンタイムV-PCCデータが格納される。V-PCCアイテム、V-PCCユニットアイテム及び他のV-PCC符号化されたコンテンツ表現情報の存在を示すために、新しいハンドルでタイプ4CCコード’vpcc’が定義され、メタボックスのハンドラーボックス内に格納される。
実施例によるアイテムはイメージを示す。例えば、動かないデータであり、1枚のイメージを称する。
実施例による方法/装置は、図52に示すように、ノンタイムV-PCCデータをカプセル化するための構造に基づいて実施例によるデータを生成して送信する。
V-PCCアイテム(V-PCC Items)
V-PCCアイテムは独立して復号可能なV-PCCアクセスユニットを示すアイテムである。新しいアイテムタイプは4CCコード’vpcI’はV-PCCアイテムを識別するために定義される。V-PCCアイテムはアトラスサブビットストリームのV-PCCユニットペイロードを格納する。
一次アイテムボックス(PrimaryItemBox)が存在すると、このボックス内のアイテムID(item_id)がV-PCCアイテムを示すために設定される。
V-PCCユニットアイテム(V-PCC Unit Item)
V-PCCユニットアイテムはV-PCCユニットデータを示すアイテムである。
V-PCCユニットアイテムは占有、ジオメトリ、特質ビデオデータユニットのV-PCCユニットペイロードを格納する。V-PCCユニットアイテムはただ1つのV-PCCアクセスユニット関連のデータを含む。
V-PCCユニットアイテムに対するアイテムタイプ4CCコードは対応するビデオデータユニットを符号化するために使用されるコーデックに基づいて設定される。V-PCCユニットアイテムは対応するV-PCCユニットヘッダアイテムプロパティ及びコーデック特定の構成アイテムプロパティに連関がある。
V-PCCユニットアイテムは隠しアイテムとしてマーキングされる。独立してディスプレイすることは意味がないこともあるためである。
V-PCCアイテム及びV-PCCユニットの間の関係を示すために、3つの新しいアイテム参照タイプ、4CCコード’pcco’、’pccg’及び’pcca’が定義される。アイテム参照はV-PCCアイテムから関連するV-PCCユニットアイテムにより定義される。アイテム参照タイムの4CCコードは以下の通りである。
’pcco’:占有ビデオデータユニットを含む参照されたV-PCCユニットアイテム
’pccg’:参照されたV-PCCユニットアイテムはジオメトリビデオデータユニットを含む。
’pcca’:参照されたV-PCCユニットアイテムは特質ビデオデータユニットを含む。
V-PCC関連のアイテム特性(V-PCC-related item properties)
記述的アイテム特性はV-PCCパラメータセット情報及びV-PCCユニットヘッダ情報のそれぞれを伝達するために定義される。
V-PCC構成アイテムプロパティ(V-PCC configuration item property)
box Types:’vpcp’
Property type:Descriptive item property
Container:ItemPropertyContainerBox
Mandatory(per item):Yes, for a V-PCC item of type ’vpcI’
Quantity(per item):One or more for a V-PCC item of type ’vpcI’
V-PCCパラメータセットは記述的アイテムプロパティとして格納され、V-PCCアイテムに連関がある。
必須(essential)は’vpcp’アイテムプロパティに対して1に設定される。
aligned(8) class vpcc_unit_payload_struct(){
unsigned int(16) vpcc_unit_payload_size;
vpcc_unit_payload();
aligned(8) class VPCCConfigurationProperty
extends ItemProperty(’vpcc’){
vpcc_unit_payload_struct()[];
V-PCCユニットペイロードサイズ(vpcc_unit_payload_size):vpcc_unit_paylod()のバイト内サイズを示す。
V-PCCユニットヘッダアイテムプロパティ(V-PCC unit header item property)
box Types:’vunt’
Property type:Descriptive item property
Container:ItemPropertyContainerBox
Mandatory(per item):Yes, for a V-PCC item of type ’vpci’ and for a V-PCC unit item
Quantity(per item):One
V-PCCユニットヘッダは記述的アイテムプロパティとして格納され、V-PCCアイテム及びV-PCCユニットアイテムに連関がある。
必須は’vunt’アイテムプロパティに対して1に設定される。
aligned(8) class VPCCUnitHeaderProperty(){
extends ItemFullProperty(’vunt’, version=0, 0){
vpcc_unit_header();
V-PCC 3Dバウンディングボックスアイテムプロパティ(V-PCC 3D bounding box item property)
box Types:’v3dd’
Property type:Descriptive item property
Container:ItemPropertyContainerBox
Mandatory(per item):Yes, for a V-PCC item of type ’vpcI’ and for a V-PCC unit item
Quantity(per item):One
3Dバウンディング情報は記述的アイテムプロパティとして格納され、V-PCCアイテム及びV-PCCユニットアイテムに連関がある。
aligned(8) class VPCC3DBoundingBoxInfoProperty(){
extends ItemFullProperty(’V3DD’, version=0, 0){
3DBoundingBoxInfoStruct();
V-PCC 3D領域マッピング情報アイテムプロパティ(V-PCC 3D region mapping information item property)
box Types:’dysr’
Property type:Descriptive item property
Container:ItemPropertyContainerBox
Mandatory(per item):Yes, for a V-PCC item of type ’vpcI’ and for a V-PCC unit item
Quantity(per item):One
3Dバウンディング情報は記述的アイテムプロパティとして格納され、V-PCCアイテム及びV-PCCユニットアイテムに連関がある。
aligned(8) class VPCC3DRegionMappingBoxInforoperty(){
extends ItemFullProperty(’v3dd’, version=0, 0){
VPCC3DRegionMappingInfoStruct();
図73は実施例によるビットストリームの構造を示す。
図73は上述したビットストリームに含まれる情報の関係を示す。
V-PCC(V3C)サンプルストリーム73000は、図26のビットストリーム26000に対応する。実施例によるエンコーダ及びエンコーダに対応する装置などにより生成され、実施例によるデコーダ及びデコーダに対応する装置などにより復号される。
V-PCC(V3C)サンプルストリーム73000は、パラメータセット(VPS、図30など)、アトラスデータ(AD、図32など)、占有ビデオデータ(OVD)、ジオメトリビデオデータ(GVD)及び特質ビデオデータ(AVD)を含み(図26など)、各データのシンタックス及び構造は上記図及び対応する段落などを参照する。
V-PCC(又はV3C)アトラスデータ73010はNALサンプルストリーム73020を含む。
NALサンプルストリーム73020はアトラスシーケンスパラメータセット(ASPS、図35、図61など)、アトラス適応パラメータセット(AAPS、図38など)、アトラスフレームパラメータセット(AFPS、図36、図62など)、SEI情報(ESEI、NSEI)及びアトラスタイル関連のデータなどを含む。
アトラスタイル関連のデータ73030はアトラスタイルレイヤで構成される。予測コーディングによってIタイル及びPタイルでアトラスタイルレイヤが構成される。各タイルはパッチに関する情報を含む。
図74は実施例による送信方法を示す。
S74000。実施例によるポイントクラウドデータ送信方法は、ポイントクラウドデータを符号化する段階を含む。実施例による符号化動作は、図1の送信装置1000、ポイントクラウドビデオエンコーダ10003、図4の符号化プロセス、図15のエンコーダ、図18の送信装置のパッチ生成18000ないし多重化18007、図20及び図21のシステムのポイントクラウド獲得20000ないしビデオ/イメージ符号化20002,20003、獲得21000ないしビデオ符号化21007及びイメージ符号化21008、XRデバイス2330のポイントクラウドデータの符号化などの動作を含む。
S74010。実施例によるポイントクラウドデータ送信方法は、さらにポイントクラウドデータをカプセル化する段階を含む。実施例によるカプセル化動作は図1、図20、図21のファイル/セグメントカプセル化10003,20004,21009、図24及び図25のファイル生成(図26以下を参照)などの動作を含む。
S74020。実施例によるポイントクラウドデータ送信方法は、さらにポイントクラウドデータを送信する段階を含む。実施例による送信動作は図1の送信機10004、図18の送信部18008、図20及び図21の送信、XRデバイス2330のポイントクラウドデータ送信などの動作を含む。
図75は実施例による受信方法を示す。
S75000。実施例によるポイントクラウドデータ受信方法は、ポイントクラウドデータを受信する段階を含む。実施例による受信動作は図1の受信部10006、図19の受信部、図20及び図21の伝達受信、図22の伝達受信、図23のXRデバイス2330のデータ受信などの動作を含む。
S75010。実施例によるポイントクラウドデータ受信方法は、さらにポイントクラウドデータをデカプセル化する段階を含む。実施例によるデカプセル化動作は、図1のファイル/セグメントデカプセル化部10007、図20及び図22のファイル/セグメントデカプセル化部20005,22000、XRデバイス2330のデータパース、図24及び図25のファイル及び図26以下のデータを含むファイルパーすなどの動作を含む。
S75020。実施例によるポイントクラウドデータ受信方法は、さらにポイントクラウドデータを復号する段階を含む。実施例による復号動作は、図1のポイントクラウドビデオデコーダ10008、図16の復号プロセス、図17のデコーダ、図19の復号動作、図20のビデオ/イメージ復号20006、図22のビデオ/イメージ復号22001,22002、XRデバイス2330のポイントクラウドデータ復号などを含む。
上述したように、実施例に対応するポイントクラウドコンテンツサービスの提供のための送信機又は受信機は、V-PCCビットストリームを構成し、ファイルを格納する。
V-PCCビットストリーム内のデータ処理及びレンダリングのためのメタデータをビットストリーム内に送信する。
プレーヤーなどがユーザビューポートなどによりポイントクラウド客体/コンテンツの空間或いは部分接近を可能にする。言い換えれば、上述したデータ表現方式はユーザのビューポートによってポイントクラウドビットストリームに効率的に接近して処理できるという効果を提供する。
実施例によるポイントクラウドデータ送信装置は、ポイントクラウドコンテンツ(例えば、V-PCCコンテンツ)に対する部分接近及び/又は空間接近のためのバウンディングボックス及びこのためのシグナリング情報を提供し、実施例によるポイントクラウドデータ受信装置がプレーヤー又はユーザ環境を考慮してポイントクラウドコンテンツを様々に接近できる効果を提供する。
実施例によるポイントクラウドデータ送信装置は、ユーザのビューポートによってV-PCCコンテンツの空間部分接近を支援するためのV-PCCコンテンツの3D領域情報とそれに連関するビデオ或いはアトラスフレーム上の2D領域関連メタデータを提供する。
従って、実施例によるポイントクラウドデータ送信装置は、3D領域と1つ以上の2D領域マッピング関連の情報、3D領域と1つ以上のアトラスタイルマッピング関連の情報を提供し(図66などを参照)、3D領域と1つ以上のアトラスタイル(2D領域)静的マッピングシグナリング、3D領域と1つ以上のアトラスタイル(2D領域)動的マッピングシグナリング(図72及び対応する段落を参照)関連の情報を提供する。その結果、実施例によるポイントクラウドデータ受信装置は、上記のような実施例によるマッピング情報に基づいて空間接近及び部分接近を効率的に行うことができる。
実施例によるポイントクラウドデータ送信装置は、ポイントクラウドビットストリーム内のポイントクラウドの3D領域情報と、これに関連するビデオ又はアトラスフレーム上の2D領域関連情報のシグナリングを提供する。
また実施例によるポイントクラウドデータ受信装置は、ファイル内ポイントクラウドの3D領域情報と、これに関連するビデオ又はアトラスフレーム上の2D領域関連情報の格納及びシグナリングに基づいて、ポイントクラウドコンテンツをユーザ環境を考慮して効率的に低遅延でユーザに提供する。
また実施例によるポイントクラウドデータ受信装置は、ファイル内のイメージアイテムに関連するポイントクラウドの3D領域情報と、これに関連するビデオ又はアトラスフレーム上の2D領域関連情報に基づいて、ポイントクラウドコンテンツの様々なアクセスを提供する。
実施例は方法及び又は装置の観点で説明しており、方法の説明及び装置の説明は互いに補完して適用できる。
説明の便宜のために、各図を区分して説明したが、各図に表された実施例を併合して新しい実施例を具現するように設計することも可能である。また通常の技術者の必要によって、以前に説明した実施例を実行するためのプログラムが記録されているコンピューターで読み取り可能な記録媒体を設計することも実施例の権利範囲に属する。実施例による装置及び方法は、上述したように説明された実施例の構成と方法が限定して適用されることではなく、実施例は様々に変形可能に各実施例の全部又は一部が選択的に組み合わせられて構成されることもできる。実施例の好ましい実施例について示して説明したが、実施例は上述した特定の実施例に限定されず、請求の範囲で請求する実施例の要旨から離脱せず、当該発明が属する技術分野において通常の知識を有する者により様々な変形実施が可能であり、かかる変形実施は実施例の技術的思想や見込みから個々に理解されてはいけない。
実施例による装置の様々な構成要素は、ハードウェア、ソフトウェア、ファームウェア又はそれらの組み合わせにより構成される。実施例の様々な構成要素は一つのチップ、例えば、一つのハードウェア回路で具現される。実施例において、実施例による構成要素はそれぞれのチップで具現される。実施例において、実施例による装置の構成要素のいずれかは一つ又はそれ以上のプログラムを実行できる一つ又はそれ以上のプロセッサで構成され、一つ又はそれ以上のプログラムは実施例による動作/方法のいずれか一つ又はそれ以上の動作/方法を行わせるか、又は実行させるための指示を含む。実施例による装置の方法/動作を行うための実行可能な指示は、一つ又はそれ以上のプロセッサにより実行されるために構成された一時的ではないCRM又は他のコンピュータープログラム製品に格納されるか、又は一つ又はそれ以上のプロセッサにより実行されるために構成された一時的なCRM又は他のコンピュータープログラム製品に格納される。また実施例によるメモリは、揮発性メモリ(例えば、RAMなど)だけではなく、非揮発性メモリ、フラッシュメモリ、PROMなどを全部含む概念として使用される。また、インターネットによる送信などのような伝送波の形式で具現されることも含む。またプロセッサが読み取られる記録媒体は、ネットワークで連結されたコンピューターシステムに分散されて、分散方式によりプロセッサが読み取られるコードが格納されて実行される。
この明細書において、“/”と“、”は“及び/又は”に解釈される。例えば、“A/B”は“A及び/又はB”に解釈され、“A、B”は“A及び/又はB”に解釈される。さらに、“A/B/C”は“A、B及び/又はCのいずれか”を意味する。また、“A、B、C”も“A、B及び/又はCのいずれか”を意味する。さらに、この文書において、“又は”は“及び/又は”に解釈される。例えば、“A又はB”は、1)“A”のみを意味するか、2)“B”のみを意味するか、又は3)“A及びB”を意味する。言い換えれば、この明細書において“又は”は“さらに(additionally)又は代わりに(alternatively)”を意味する。
第1、第2などの用語は実施例の様々な構成要素を説明するために使用される。しかし、実施例による様々な構成要素は上記用語により解釈が制限されてはいけない。かかる用語は一つの構成要素を他の構成要素と区別するために使用されることに過ぎない。例えば、第1ユーザ入力信号は第2ユーザ入力信号と称することができる。同様に、第2ユーザ入力信号は第1ユーザ入力信号と称することができる。かかる用語の使用は様々な実施例の範囲から離脱していない。第1ユーザ入力信号及び第2ユーザ入力信号はいずれもユーザ入力信号であるが、文脈上、明確に示していない限り、同一のユーザ入力信号を意味してはいない。
実施例を説明のために使用された用語は、特定の実施例を説明するために使用されており、実施例を制限するものではない。実施例の説明及び請求範囲で使用したように、文脈上明確に称していない限り、単数は複数を含む。「及び/又は」表現は用語間の全ての可能な結合を含む意味で使用される。「含む」は特徴、数、段階、要素及び/又はコンポーネントが存在することを説明し、さらなる特徴、数、段階、要素及び/又はコンポーネントを含まないことを意味することではない。実施例を説明するために使用される、「~である場合」、「~の時」などの条件表現は選択的な場合にのみ制限して解釈されない。特定の条件を満たすとき、特定の条件に対応して関連動作を行うか、又は関連定義が解釈されるように意図されている。
また、この明細書で説明する実施例による動作は、実施例によってメモリ及び/又はプロセッサを含む送受信装置により行われる。メモリは実施例による動作を処理/制御するためのプログラムを格納し、プロセッサはこの明細書で説明した様々な動作を制御する。プロセッサはコントローラとも称される。実施例において、動作はファームウェア、ソフトウェア及び/又はそれらの組み合わせにより行われ、ファームウェア、ソフトウェア及び/又はそれらの組み合わせはプロセッサに格納されるか又はメモリに格納される。
一方、上述した実施例による動作は実施例による送信装置及び/又は受信装置により行われる。送受信装置はメディアデータを送受信する送受信部、実施例によるおプロセスに対する指示(プログラムコード、アルゴリズム、フローチャート及び/又はデータ)を格納するメモリ、及び送受信装置の動作を制御するプロセッサを含む。
プロセッサはコントローラなどとも称され、例えば、ハードウェア、ソフトウェア及び/又はそれらの組み合わせに対応する。上記実施例による動作はプロセッサにより行われる。またプロセッサは上記実施例の動作のためのエンコーダ/デコーダなどで具現される。
上述したように、実施例を実施するための最善の形態について関連内容を説明した。
上述したように、実施例はポイントクラウドデータの送受信装置及びシステムに全体的又は部分的に適用することができる。
当業者は実施例の範囲内で実施例を様々に変更又は変形することができる。
実施例は変更/変形を含み、変更/変形は請求の範囲及びそれらの範囲内のものである。

Claims (20)

  1. ポイントクラウドデータ送信方法であって、
    ポイントクラウドデータを符号化する段階;
    前記ポイントクラウドデータをカプセル化する段階;及び
    前記ポイントクラウドデータを送信する段階;を含んでなる、ポイントクラウドデータ送信方法。
  2. 前記ポイントクラウドデータをカプセル化する段階は、前記ポイントクラウドデータを含むマルチトラックのコンテナを生成する、請求項1に記載のポイントクラウドデータ送信方法。
  3. 前記マルチトラックは第1トラック、第2トラック、第3トラック、第4トラックを含み、
    前記第1トラックは前記ポイントクラウドデータの占有マップを含み、
    前記第2トラックは前記ポイントクラウドデータのジオメトリデータを含み、
    前記第3トラックは前記ポイントクラウドデータの特質データを含み、
    前記第4トラックは前記ポイントクラウドデータに対するパラメータセット及びアトラスデータを含む、請求項2に記載のポイントクラウドデータ送信方法。
  4. 前記第4トラックは前記ポイントクラウドデータに関する3D空間領域の部分接近のための空間領域情報を含み、
    前記空間領域情報は前記3D空間領域に含まれたポイントクラウドデータに連関するアトラスタイルの数を示す情報及び前記アトラスタイルを示すタイル識別情報を含む、請求項3に記載のポイントクラウドデータ送信方法。
  5. 前記空間領域情報は時間に応じて静的な情報又は動的な情報を含む、請求項4に記載のポイントクラウドデータ送信方法。
  6. 前記符号化する段階は前記ポイントクラウドデータ及び前記ポイントクラウドデータに関するアトラスビットストリームを含むビットストリームを生成し、
    前記アトラスビットストリームは前記ポイントクラウドデータに関する3D領域をマッピングするための3D領域情報を含む、請求項1に記載のポイントクラウドデータ送信方法。
  7. 前記3D領域情報は前記ポイントクラウドデータに関する3D領域の位置情報及びサイズ情報を含み、
    前記3D領域に関連するアトラスデータが存在するフレームの2D領域に関する情報を含む、請求項6に記載のポイントクラウドデータ送信方法。
  8. ポイントクラウドデータを受信する受信部;
    前記ポイントクラウドデータをデカプセル化するデカプセル化部;及び
    前記ポイントクラウドデータを復号するデコーダ;を含む、ポイントクラウドデータ受信装置。
  9. 前記ポイントクラウドデータをデカプセル化するデカプセル化部は、前記ポイントクラウドデータを含むマルチトラックのコンテナをパース(parse)する、請求項8に記載のポイントクラウドデータ受信装置。
  10. 前記マルチトラックは第1トラック、第2トラック、第3トラック、第4トラックを含み、
    前記第1トラックは前記ポイントクラウドデータの占有マップを含み、
    前記第2トラックは前記ポイントクラウドデータのジオメトリデータを含み、
    前記第3トラックは前記ポイントクラウドデータの特質データを含み、
    前記第4トラックは前記ポイントクラウドデータに対するパラメータセット及びアトラスデータを含む、請求項9に記載のポイントクラウドデータ受信装置。
  11. 前記第4トラックは前記ポイントクラウドデータに関する3D空間領域の部分接近のための空間領域情報を含み、
    前記空間領域情報は前記3D空間領域に含まれたポイントクラウドデータに連関するアトラスタイルの数を示す情報及び前記アトラスタイルを示すタイル識別情報を含む、請求項10に記載のポイントクラウドデータ受信装置。
  12. 前記空間領域情報は時間に応じて静的な情報又は動的な情報を含む、請求項11に記載のポイントクラウドデータ受信装置。
  13. 前記デコーダは前記ポイントクラウドデータ及び前記ポイントクラウドデータに関するアトラスビットストリームを含むビットストリームを復号し、
    前記アトラスビットストリームは前記ポイントクラウドデータに関する3D領域をマッピングするための3D領域情報を含む、請求項8に記載のポイントクラウドデータ受信装置。
  14. 前記3D領域情報は前記ポイントクラウドデータに関する3D領域の位置情報及びサイズ情報を含み、
    前記3D領域に関連するアトラスデータが存在するフレームの2D領域に関する情報を含む、請求項13に記載のポイントクラウドデータ受信装置。
  15. ポイントクラウドデータ送信装置であって、
    ポイントクラウドデータを符号化するエンコーダ;
    前記ポイントクラウドデータをカプセル化するカプセル化部;及び
    前記ポイントクラウドデータを送信する送信機;を備えてなる、ポイントクラウドデータ送信装置。
  16. 前記ポイントクラウドデータをカプセル化するカプセル化部は、前記ポイントクラウドデータを含むマルチトラックのコンテナを生成する、請求項15に記載のポイントクラウドデータ送信装置。
  17. 前記マルチトラックは第1トラック、第2トラック、第3トラック、第4トラックを含み、
    前記第1トラックは前記ポイントクラウドデータの占有マップを含み、
    前記第2トラックは前記ポイントクラウドデータのジオメトリデータを含み、
    前記第3トラックは前記ポイントクラウドデータの特質データを含み、
    前記第4トラックは前記ポイントクラウドデータに対するパラメータセット及びアトラスデータを含む、請求項16に記載のポイントクラウドデータ送信装置。
  18. ポイントクラウドデータ受信方法であって、
    ポイントクラウドデータを受信する段階;
    前記ポイントクラウドデータをデカプセル化する段階;及び
    前記ポイントクラウドデータを復号する段階;を含んでなる、ポイントクラウドデータ受信方法。
  19. 前記ポイントクラウドデータをデカプセル化する段階は、前記ポイントクラウドデータを含むマルチトラックのコンテナをパースする、請求項18に記載のポイントクラウドデータ受信方法。
  20. 前記マルチトラックは第1トラック、第2トラック、第3トラック、第4トラックを含み、
    前記第1トラックは前記ポイントクラウドデータの占有マップを含み、
    前記第2トラックは前記ポイントクラウドデータのジオメトリデータを含み、
    前記第3トラックは前記ポイントクラウドデータの特質データを含み、
    前記第4トラックは前記ポイントクラウドデータに対するパラメータセット及びアトラスデータを含む、請求項19に記載のポイントクラウドデータ受信方法。
JP2022542110A 2020-01-09 2020-09-23 ポイントクラウドデータ送信装置、ポイントクラウドデータ送信方法、ポイントクラウドデータ受信装置及びポイントクラウドデータ受信方法 Active JP7434577B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2024016838A JP2024050831A (ja) 2020-01-09 2024-02-07 ポイントクラウドデータ送信装置、ポイントクラウドデータ送信方法、ポイントクラウドデータ受信装置及びポイントクラウドデータ受信方法

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202062959129P 2020-01-09 2020-01-09
US62/959,129 2020-01-09
KR10-2020-0044234 2020-04-10
KR20200044234 2020-04-10
PCT/KR2020/012847 WO2021141208A1 (ko) 2020-01-09 2020-09-23 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2024016838A Division JP2024050831A (ja) 2020-01-09 2024-02-07 ポイントクラウドデータ送信装置、ポイントクラウドデータ送信方法、ポイントクラウドデータ受信装置及びポイントクラウドデータ受信方法

Publications (2)

Publication Number Publication Date
JP2023509092A true JP2023509092A (ja) 2023-03-06
JP7434577B2 JP7434577B2 (ja) 2024-02-20

Family

ID=76788107

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2022542110A Active JP7434577B2 (ja) 2020-01-09 2020-09-23 ポイントクラウドデータ送信装置、ポイントクラウドデータ送信方法、ポイントクラウドデータ受信装置及びポイントクラウドデータ受信方法
JP2024016838A Pending JP2024050831A (ja) 2020-01-09 2024-02-07 ポイントクラウドデータ送信装置、ポイントクラウドデータ送信方法、ポイントクラウドデータ受信装置及びポイントクラウドデータ受信方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2024016838A Pending JP2024050831A (ja) 2020-01-09 2024-02-07 ポイントクラウドデータ送信装置、ポイントクラウドデータ送信方法、ポイントクラウドデータ受信装置及びポイントクラウドデータ受信方法

Country Status (6)

Country Link
US (1) US11394979B2 (ja)
EP (1) EP4047935A4 (ja)
JP (2) JP7434577B2 (ja)
KR (1) KR102381162B1 (ja)
CN (3) CN114930863B (ja)
WO (1) WO2021141208A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7434578B2 (ja) 2020-01-10 2024-02-20 エルジー エレクトロニクス インコーポレイティド ポイントクラウドデ-タ送信装置、ポイントクラウドデ-タ送信方法、ポイントクラウドデ-タ受信装置及びポイントクラウドデ-タ受信方法

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230043987A1 (en) * 2019-12-13 2023-02-09 Sony Group Corporation Image processing apparatus and method
WO2021140276A1 (en) * 2020-01-10 2021-07-15 Nokia Technologies Oy Storage of multiple atlases from one v-pcc elementary stream in isobmff
US11954891B2 (en) * 2020-06-30 2024-04-09 Electronics And Telecommunications Research Institute Method of compressing occupancy map of three-dimensional point cloud
US11706450B2 (en) * 2020-09-18 2023-07-18 Samsung Electronics Co., Ltd. Partial decoding and reconstruction of a video-based point cloud compression bitstream
CN115004699A (zh) * 2020-11-30 2022-09-02 中兴通讯股份有限公司 沉浸式媒体的多图集封装
US11979606B2 (en) * 2021-06-04 2024-05-07 Tencent America LLC Conditional recolor for video based point cloud coding
EP4145832A1 (en) * 2021-09-02 2023-03-08 Nokia Technologies Oy An apparatus, a method and a computer program for volumetric video
EP4199522A1 (en) * 2021-12-20 2023-06-21 Beijing Xiaomi Mobile Software Co., Ltd. Method and apparatus of encapsulating/parsing point cloud data in/from encapsulating containers
WO2024059232A1 (en) * 2022-09-16 2024-03-21 Innopeak Technology, Inc. Point cloud decoding method, point cloud encoding method, decoder and encoder
US11875447B1 (en) * 2023-05-26 2024-01-16 Illuscio, Inc. Systems and methods for color correcting three-dimensional objects formed by point cloud data points
CN117437162B (zh) * 2023-12-22 2024-03-08 吉林大学 一种基于实例级序列混合的动态点云数据增强方法及装置
CN117894015B (zh) * 2024-03-15 2024-05-24 浙江华是科技股份有限公司 点云标注数据优选方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019079032A1 (en) * 2017-10-20 2019-04-25 Interdigital Vc Holdings, Inc. METHOD, APPARATUS AND FLOW FOR VOLUMETRIC VIDEO FORMAT
WO2019135024A1 (en) * 2018-01-02 2019-07-11 Nokia Technologies Oy An apparatus, a method and a computer program for volumetric video
US20190318488A1 (en) * 2018-04-12 2019-10-17 Samsung Electronics Co., Ltd. 3d point cloud compression systems for delivery and access of a subset of a compressed 3d point cloud
US20190392647A1 (en) * 2019-08-16 2019-12-26 Lg Electronics Inc. Xr device and method for controlling the same
WO2021117859A1 (ja) * 2019-12-13 2021-06-17 ソニーグループ株式会社 画像処理装置および方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10235338B2 (en) * 2014-09-04 2019-03-19 Nvidia Corporation Short stack traversal of tree data structures
CN105590311A (zh) * 2014-11-13 2016-05-18 富泰华工业(深圳)有限公司 图形化平面数据分析系统及方法
US10186024B2 (en) * 2015-12-29 2019-01-22 Texas Instruments Incorporated Method and system for real time structure from motion in a computer vision system
US10223810B2 (en) * 2016-05-28 2019-03-05 Microsoft Technology Licensing, Llc Region-adaptive hierarchical transform and entropy coding for point cloud compression, and corresponding decompression
US10748326B2 (en) * 2016-08-19 2020-08-18 Movidius Ltd. Rendering operations using sparse volumetric data
US10909725B2 (en) * 2017-09-18 2021-02-02 Apple Inc. Point cloud compression
JP7276136B2 (ja) * 2017-10-16 2023-05-18 ソニーグループ株式会社 情報処理装置および方法
CN108254758A (zh) * 2017-12-25 2018-07-06 清华大学苏州汽车研究院(吴江) 基于多线激光雷达和gps的三维道路构建方法
CN108615254A (zh) * 2018-03-28 2018-10-02 广州市本真网络科技有限公司 基于树型结构网格矢量量化的点云渲染方法、系统及装置
JP7342858B2 (ja) * 2018-04-11 2023-09-12 ソニーグループ株式会社 画像処理装置および方法
CN109035286A (zh) * 2018-06-29 2018-12-18 北京农业信息技术研究中心 植物三维点云数据高通量获取方法及装置
MX2021003267A (es) * 2018-09-21 2021-05-12 Panasonic Ip Corp America Metodo de codificacion de datos tridimensionales, metodo de decodificacion de datos tridimensionales, dispositivo de codificacion de datos tridimensionales y dispositivo de decodificacion de datos tridimensionales.
EP3734977A1 (en) * 2019-04-30 2020-11-04 Nokia Technologies Oy An apparatus, a method and a computer program for volumetric video
US11581022B2 (en) * 2019-05-29 2023-02-14 Nokia Technologies Oy Method and apparatus for storage and signaling of compressed point clouds
US11218715B2 (en) * 2019-06-14 2022-01-04 Mediatek Singapore Pte. Ltd. Methods and apparatus for spatial grouping and coordinate signaling for immersive media data tracks

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019079032A1 (en) * 2017-10-20 2019-04-25 Interdigital Vc Holdings, Inc. METHOD, APPARATUS AND FLOW FOR VOLUMETRIC VIDEO FORMAT
WO2019135024A1 (en) * 2018-01-02 2019-07-11 Nokia Technologies Oy An apparatus, a method and a computer program for volumetric video
US20190318488A1 (en) * 2018-04-12 2019-10-17 Samsung Electronics Co., Ltd. 3d point cloud compression systems for delivery and access of a subset of a compressed 3d point cloud
US20190392647A1 (en) * 2019-08-16 2019-12-26 Lg Electronics Inc. Xr device and method for controlling the same
WO2021117859A1 (ja) * 2019-12-13 2021-06-17 ソニーグループ株式会社 画像処理装置および方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7434578B2 (ja) 2020-01-10 2024-02-20 エルジー エレクトロニクス インコーポレイティド ポイントクラウドデ-タ送信装置、ポイントクラウドデ-タ送信方法、ポイントクラウドデ-タ受信装置及びポイントクラウドデ-タ受信方法

Also Published As

Publication number Publication date
JP7434577B2 (ja) 2024-02-20
JP2024050831A (ja) 2024-04-10
KR102381162B1 (ko) 2022-04-01
WO2021141208A1 (ko) 2021-07-15
EP4047935A4 (en) 2022-12-14
CN116684667A (zh) 2023-09-01
EP4047935A1 (en) 2022-08-24
CN114930863A (zh) 2022-08-19
CN116684666A (zh) 2023-09-01
US11394979B2 (en) 2022-07-19
KR20210090085A (ko) 2021-07-19
CN114930863B (zh) 2023-08-08
US20210227232A1 (en) 2021-07-22

Similar Documents

Publication Publication Date Title
JP7434577B2 (ja) ポイントクラウドデータ送信装置、ポイントクラウドデータ送信方法、ポイントクラウドデータ受信装置及びポイントクラウドデータ受信方法
KR102406846B1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
JP7477617B2 (ja) ポイントクラウドデータ送信装置、ポイントクラウドデータ送信方法、ポイントクラウドデータ受信装置及びポイントクラウドデータ受信方法
JP7434578B2 (ja) ポイントクラウドデ-タ送信装置、ポイントクラウドデ-タ送信方法、ポイントクラウドデ-タ受信装置及びポイントクラウドデ-タ受信方法
US11601634B2 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
JP7434574B2 (ja) ポイントクラウドデータ送信装置、ポイントクラウドデータ送信方法、ポイントクラウドデータ受信装置及びポイントクラウドデータ受信方法
JP2022551690A (ja) ポイントクラウドデータ送信装置、ポイントクラウドデータ送信方法、ポイントクラウドデータ受信装置およびポイントクラウドデータ受信方法
CN115398890A (zh) 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
CN115769583A (zh) 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
CN115380528B (zh) 点云数据发送设备、点云数据发送方法、点云数据接收设备和点云数据接收方法
EP4171040A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device and point cloud data reception method
US12021910B2 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230704

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230927

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240109

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240207

R150 Certificate of patent or registration of utility model

Ref document number: 7434577

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150