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

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

Info

Publication number
JP2023548393A
JP2023548393A JP2023527356A JP2023527356A JP2023548393A JP 2023548393 A JP2023548393 A JP 2023548393A JP 2023527356 A JP2023527356 A JP 2023527356A JP 2023527356 A JP2023527356 A JP 2023527356A JP 2023548393 A JP2023548393 A JP 2023548393A
Authority
JP
Japan
Prior art keywords
slice
point cloud
geometry
data
context
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.)
Pending
Application number
JP2023527356A
Other languages
English (en)
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 JP2023548393A publication Critical patent/JP2023548393A/ja
Pending legal-status Critical Current

Links

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/40Tree coding, e.g. quadtree, octree
    • 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
    • H04N19/174Methods 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 the region being a slice, e.g. a line of blocks or a group of blocks
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Generation (AREA)

Abstract

実施例によるポイントクラウドデータ送信方法は、ポイントクラウドデータのジオメトリデータを符号化する段階、前記ジオメトリデータに基づいて前記ポイントクラウドデータの特質データを符号化する段階、及び前記符号化したジオメトリデータ、前記符号化した特質データ及びシグナリングデータを送信する段階を含む。

Description

実施例はポイントクラウドコンテンツ(Point Cloud Content)を処理する方法及び装置に関する。
ポイントクラウドコンテンツは3次元空間を表現する座標系に属する点(ポイント)の集合であるポイントクラウドで表現されるコンテンツである。ポイントクラウドコンテンツは3次元からなるメディアを表現でき、VR(Virtual Reality、仮想現実)、AR(Augmented Reality、拡張現実)、MR(Mixed Reality、複合現実)、XR(Extended Reality)及び自律走行サービスなどの様々なサービスを提供するために使用される。しかし、ポイントクラウドコンテンツを表現するためには、数万から数十万個のポイントデータが必要である。従って、膨大な量のポイントデータを効率的に処理する方法が求められる。
即ち、ポイントクラウドのデータを送受信するためには多い処理量が求められるという問題がある。よって、ポイントクラウドデータを送受信する過程で圧縮のための符号化/圧縮解除のための復号を行うが、ポイントクラウドデータのサイズが大きいので、演算が複雑であり、長い時間がかかるという問題がある。
実施例による技術的課題は、上述した問題などを解決するために、ポイントクラウドを効率的に送受信するためのポイントクラウドデータ送信装置、送信方法、ポイントクラウドデータ受信装置及び受信方法を提供することにある。
実施例による技術的課題は、遅延時間(latency)及び符号化/復号の複雑度を解決するためのポイントクラウドデータ送信装置、送信方法、ポイントクラウドデータ受信装置及び受信方法を提供することにある。
実施例に係る技術的課題は、複数のスライスの間にエントロピー連続性が与えられたとき、受信装置で効率的にバッファー管理を行うためのポイントクラウドデータ送信装置、送信方法、ポイントクラウドデータ受信装置及び受信方法を提供することにある。
但し、上記技術的課題のみに制限されず、この明細書の全ての内容に基づいて当業者が導き出される他の技術的課題にも実施例の権利範囲を拡張することができる。
上記目的及び他の利点を達成するために、本発明、実施例に係るポイントクラウドデータ送信方法は、ポイントクラウドデータのジオメトリデータを符号化する段階、ジオメトリデータに基づいてポイントクラウドデータの特質データを符号化する段階、及び符号化されたジオメトリデータ、符号化された特質データ及びシグナリングデータを送信する段階を含む(備える;構成する;構築する;設定する;包接する;包含する;含有する)。
符号化されたジオメトリデータは複数のスライスにセグメントされ、複数のスライスの何れかのコンテキストが少なくとも1つの他のスライスにより参照されることを一実施例とする。
シグナリングデータはスライス関連情報とバッファー管理関連情報を含むことを一実施例とする。
バッファー管理関連情報は、少なくとも現スライスのコンテキストが少なくとも1つの他のスライスで参照されるか否かを指示する情報、又は現スライスのコンテキストが少なくとも1つの他のスライスで参照されれば、現スライスのコンテキストの参照回数を識別するための情報を含むことを一実施例とする。
実施例によるポイントクラウドデータ送信装置は、ポイントクラウドデータのジオメトリデータを符号化するジオメトリエンコーダー、ジオメトリデータに基づいてポイントクラウドデータの特質データを符号化する特質エンコーダー、及び符号化されたジオメトリデータ、符号化された特質データ及びシグナリングデータを送信する送信部を含む。
符号化されたジオメトリデータは複数のスライスにセグメントされ、複数のスライスの何れかのコンテキストが少なくとも1つの他のスライスにより参照されることを一実施例とする。
シグナリングデータはスライス関連情報とバッファー管理関連情報を含むことを一実施例とする。
バッファー管理関連情報は、少なくとも現スライスのコンテキストが少なくとも1つの他のスライスで参照されるか否かを指示する情報、又は現スライスのコンテキストが少なくとも1つの他のスライスで参照されれば、現スライスのコンテキストの参照回数を識別するための情報を含むことを一実施例とする。
実施例によるポイントクラウドデータ受信方法は、ジオメトリデータ、特質データ及びシグナリングデータを受信する段階、シグナリングデータに基づいてジオメトリデータを復号する段階、シグナリングデータと復号されたジオメトリデータに基づいて特質データを復号する段階、及びシグナリングデータに基づいて復号されたポイントクラウドデータをレンダリングする段階を含む。
ジオメトリデータは複数のスライスに含まれ、複数のスライスの何れかのコンテキストは少なくとも1つの他のスライスにより参照されることを一実施例とする。
シグナリングデータはスライス関連情報とバッファー管理関連情報を含むことを一実施例とする。
バッファー管理関連情報は、少なくとも現スライスのコンテキストが少なくとも1つの他のスライスで参照されるか否かを指示する情報、又は現スライスのコンテキストが少なくとも1つの他のスライスで参照されれば、現スライスのコンテキストの参照回数を識別するための情報を含むことを一実施例とする。
ジオメトリ復号段階は、シグナリング関連情報とバッファー管理関連情報に基づいて現スライスのコンテキストのバッファー格納を制御することを一実施例とする。
ジオメトリ復号段階は、シグナリング関連情報とバッファー管理関連情報に基づいて現スライスのコンテキストが少なくとも1つの他のスライスで参照されないことが確認されれば、現スライスコンテキストをバッファーから削除することを一実施例とする。
ジオメトリ復号段階は、シグナリング関連情報とバッファー管理関連情報に基づいて現スライスのコンテキストが少なくとも1つの他のスライスで参照されることが確認されれば、少なくとも1つの他のスライスによる参照後、現スライスコンテキストをバッファーから削除することを一実施例とする。
実施例によるポイントクラウドデータ送信方法、送信装置、ポイントクラウドデータ受信方法及び受信装置は、良質のポイントクラウドサービスを提供する。
実施例によるポイントクラウドデータ送信方法、送信装置、ポイントクラウドデータ受信方法及び受信装置は、様々なビデオコーデック方式を達成する。
実施例によるポイントクラウドデータ送信方法、送信装置、ポイントクラウドデータ受信方法及び受信装置は、自律走行サービスなどの汎用のポイントクラウドコンテンツを提供する。
実施例によるポイントクラウドデータ送信方法、送信装置、ポイントクラウドデータ受信方法及び受信装置は、ポイントクラウドデータの独立的な符号化及び復号のためにポイントクラウドデータの空間適応的分割を行うことにより、並列処理の向上及び拡張性(scalability)を提供する。
実施例によるポイントクラウドデータ送信方法、送信装置、ポイントクラウドデータ受信方法及び受信装置は、ポイントクラウドデータをタイル及び/又はスライス単位に分割して符号化及び復号を行い、そのために必要なデータをシグナリングすることによりポイントクラウドの符号化及び復号の性能を向上させる。
実施例によるポイントクラウドデータ送信方法、送信装置、ポイントクラウドデータ受信方法及び受信装置は、ポイントクラウドデータに対して一定基準に従って圧縮データを分けて送信することができる。また階層符号化(layered coding)を使用する場合、階層によって圧縮データを分けて送信することができる。従って、送信装置の格納及び送信効率が増加する。
実施例によるポイントクラウドデータ送信方法、送信装置、ポイントクラウドデータ受信方法及び受信装置は、ビットストリームをスライス単位に分けて伝達する場合、受信機ではデコーダーの性能或いは応用分野によって表現(representation)しようとするポイントクラウドデータの密度によってビットストリームを選択的にデコーダーに伝達することができる。この場合、選択が復号前に行われるのでデコーダーの効率が高くなり、様々な性能のデコーダーを支援できるという長所がある。
実施例によるポイントクラウドデータ送信方法、送信装置、ポイントクラウドデータ受信方法及び受信装置は、受信装置のバッファー(又はコンテキストバッファーという)の効率的な管理のために、シグナリングにより次のスライスで現在スライスのコーディング情報/ノード情報を使用するか否かを知らせ、それに基づいて現在スライスのコンテキストのバッファーへの格納及び削除などを管理することにより、受信機のバッファー管理を効率的に行うことができる。即ち、送信装置ではポイントクラウドデータを複数のスライスに分けて送信する場合にも、連続するコーディング情報及び/又は隣のノード情報の使用を許容することにより圧縮効率を高めることができる。また受信装置では次のスライスで現在スライスのコーディング情報/ノード情報の使用有無を認知できるので、バッファー管理を効率的に行うことができる。例えば、受信機では現在スライスのコンテキストを次のスライスでも使用するか否かを予め判断することにより、リソースを効率的に管理することができる。
図面は実施例をさらに理解するために添付され、実施例に関する説明と共に実施例を示す図である。
実施例によるポイントクラウドのコンテンツ提供のためのシステムを示す図である。 実施例によるポイントクラウドのコンテンツ提供のための過程を示す図である。 実施例によるポイントクラウドのキャプチャー装備の配列構成を示す図である。 実施例によるポイントクラウドビデオエンコーダ(Point Cloud Video Encoder)を示す図である。 実施例による3次元空間上のボクセルを示す図である。 実施例による八分木及び占有コードの一例を示す図である。 実施例による隣接ノードパターンの一例を示す図である。 実施例によるLODごとのポイントクラウドコンテンツのポイント構成の一例を示す図である。 実施例によるLODごとのポイントクラウドコンテンツのポイント構成の一例を示す図である。 実施例によるポイントクラウドビデオデコーダ(Point Cloud Video Decoder)のブロック図(block diagram)の一例である。 実施例によるポイントクラウドビデオデコーダ(Point Cloud Video Decoder)の一例を示す図である。 実施例による送信機のポイントクラウドビデオ符号化のための構成要素を示す図である。 実施例による受信機のポイントクラウドビデオ復号のための構成要素を示す図である。 実施例によるポイントクラウドデータ方法/装置に連動可能な構造の一例を示す図である。 実施例によるポイントクラウドデータの符号化、送信、復号過程を示す図である。 実施例によるポイントクラウドデータの符号化、送信、復号過程を示す図である。 実施例によるツリー構造において1つ以上のブリックを構成する一例を示す図である。 実施例による1つのブリックに属するポイントクラウドデータを送信するためにツリーレイヤとスライスのマッチング関係の一例を示す図である。 実施例によるレイヤー基盤のポイントクラウドデータ構成の一例を示す図である。 実施例によるジオメトリビットストリームと特質ビットストリームがそれぞれのスライスに含まれる例を示す図である。 実施例によってジオメトリビットストリームを分割して複数のスライスで構成する一例を示す図である。 実施例によって特質ビットストリームを分割して複数のスライスで構成する一例を示す図である。 実施例によってジオメトリビットストリームを分割して複数のスライスで構成する他の例を示す図である。 実施例によって特質ビットストリームを分割して複数のスライスで構成する他の例を示す図である。 実施例によるジオメトリビットストリームと特質ビットストリームの整列方法の一例を示す図である。 実施例によるジオメトリビットストリームと特質ビットストリームの整列方法の他の例を示す図である。 実施例によるビットストリーム構造においてスライス間の依存性(dependency)を示す一例を示す図である。 実施例によるスライス間の依存性が発生したとき、それぞれのスライスで生成されるコンテキスト(context)の例を示す図である。 実施例によるスライス間の依存性が生成されるとき、コンテキスト(context)バッファー管理の一例を示す図である。 実施例による隣(neighbour)の構造の例を示す図である。 実施例による送受信のためのポイントクラウドデータのビットストリーム構造の一例を示す図である。 実施例によるシーケンスパラメータセットの構文構造の一実施例を示す図である。 実施例によるシーケンスパラメータセットの構文構造の一実施例を示す図である。 実施例によるジオメトリパラメータセットの構文構造の一例を示す図である。 実施例によるジオメトリパラメータセットの構文構造の他の例を示す図である。 実施例による特質パラメータセットの構文構造の一例を示す図である。 実施例による特質パラメータセットの構文構造の一例を示す図である。 実施例によるジオメトリスライスビットストリームの構文構造の一例を示す図である。 実施例によるジオメトリスライスヘッダーの構文構造の一例を示す図である。 実施例によるジオメトリデータユニットヘッダーの構文構造の一例を示す図である。 実施例によるジオメトリデータユニットの構文構造の一例を示す図である。 実施例による特質スライスビットストリームの構文構造の一例を示す図である。 実施例による特質スライスヘッダーの構文構造の一例を示す図である。 実施例による特質データユニットヘッダーの構文構造の他の例を示す図である。 実施例による特質データユニットの構文構造の他の例を示す図である。 実施例によるポイントクラウド送信装置のさらに他の例を示す図である。 実施例によるポイントクラウド受信装置のさらに他の例を示す構成ブロック図である。
以下、添付図面を参照しながらこの明細書に記載された実施例について詳しく説明するが、図面符号に関係なく、同一又は類似する構成要素には同じ参照符号を付し、重複する説明は省略する。以下の実施例は本発明を具体化するためのものであり、本発明の権利範囲を制限又は限定するものではない。本発明の詳細な説明及び実施例から本発明が属する技術分野の専門家が容易に類推できるものは本発明の権利範囲に属するものと解釈される。
この明細書の詳細な説明は全ての面で制限的に解釈されてはいけず、例示的なものとして考慮されるべきである。本発明の範囲は添付する請求範囲の合理的な解釈に基づいて決定されるべきであり、本発明の等価的範囲内での全ての変更は本発明の範囲に含まれる。
添付図面を参照しながら望ましい実施例について具体的に説明する。添付図面を参照した以下の詳細な説明は、実施例によって具現可能な実施例のみを示すというより、望ましい実施例を説明するためのものである。以下の詳細な説明は実施例に関する徹底な理解を提供するために細部事項を含む。しかし、かかる細部事項がなくても実施例を実行できることは当業者にとって明らかである。実施例で使用するほとんどの用語は該当分野において広く使用される一般的なものであるが、一部は出願人によって任意に選択されたものもあり、その意味は必要によって以下に詳しく説明する。よって、実施例は用語の単純な名称や意味ではなく、用語が意図する意味に基づいて理解されるべきである。また、以下の図面及び詳細な説明は具体的に記載された実施例に限って解釈してはいけず、図面及び詳細な説明に記載の実施例と均等又は代替可能なものまで含むものと解釈すべきである。
図1は実施例によるポイントクラウドコンテンツ提供システムの一例を示す図である。
図1に示すポイントクラウドコンテンツ提供システムは、送信装置(transmission device)10000及び受信装置(reception device)10004を含む。送信装置10000及び受信装置10004はポイントクラウドデータを送受信するために有無線通信が可能である。
実施例による送信装置10000は、ポイントクラウドビデオ(又はポイントクラウドコンテンツ)を確保し処理して送信する。実施例において、送信装置10000は固定局(fixed station)、BTS(base transceiver system)、ネットワーク、AI(Ariticial Intelligence)機器及び/又はシステム、ロボット、AR/VR/XR機器及び/又はサーバーなどを含む。また実施例において、送信装置10000は無線接続技術(例、5G NR(New RAT)、LTE(Long Term Evolution))を用いて、基地局及び/又は他の無線機器と通信を行う機器、ロボット、車両、AR/VR/XR機器、携帯機器、家電、IoT(Internet of Thing)機器、AI機器/サーバーなどを含む。
実施例による送信装置10000は、ポイントクラウドビデオ獲得部(Point Cloud Video Acquisition)10001、ポイントクラウドビデオエンコーダ(Point Cloud Video Encoder)10002及び/又は送信機(Transmitter(又は通信モジュール)10003を含む。
実施例によるポイントクラウドビデオ獲得部10001は、キャプチャー、合成又は生成などの処理過程によりポイントクラウドビデオを獲得する。ポイントクラウドビデオは、3次元空間に位置するポイントの集合であるポイントクラウドで表現されるポイントクラウドコンテンツであって、ポイントクラウドビデオデータなどと呼ばれる。実施例によるポイントクラウドビデオは、一つ又はそれ以上のフレームを含む。一つのフレームは停止映像/ピクチャを示す。よって、ポイントクラウドビデオはポイントクラウド映像/フレーム/ピクチャを含み、ポイントクラウド映像、フレーム及びピクチャのうちの何れかに呼ばれる。
実施例によるポイントクラウドビデオエンコーダ10002は、確保したポイントクラウドビデオデータを符号化する。ポイントクラウドビデオエンコーダ10002はポイントクラウド圧縮(Point Cloud Compression)コーディングに基づいてポイントクラウドビデオデータを符号化する。実施例によるポイントクラウド圧縮コーディングは、G-PCC(Geometry-based Point Cloud Compression)コーディング及び/又はV-PCC(Video based Point Cloud Compression)コーディング又は次世代コーディングを含む。なお、実施例によるポイントクラウド圧縮コーディングは、上述した実施例に限られない。ポイントクラウドビデオエンコーダ10002は、符号化されたポイントクラウドビデオデータを含むビットストリームを出力することができる。ビットストリームは符号化されたポイントクラウドビデオデータだけではなく、ポイントクラウドビデオデータの符号化に関連するシグナリング情報を含む。
実施例による送信機10003は、符号化されたポイントクラウドビデオデータを含むビットストリームを送信する。実施例によるビットストリームはファイル又はセグメント(例えば、ストリーミングセグメント)などにカプセル化されて、放送網及び/又はブロードバンド網などの様々なネットワークにより送信される。図示していないが、送信装置10000はカプセル化動作を行うカプセル化部(又はカプセル化モジュール)を含む。また実施例において、カプセル化部は送信機10003に含まれる。実施例において、ファイル又はセグメントはネットワークにより受信装置10004に送信されるか、又はデジタル格納媒体(例えば、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなど)に格納される。実施例による送信機10003は受信装置10004(又は受信機(Receiver)10005)と4G、5G、6Gなどのネットワークにより有無線通信が可能である。また送信機10003はネットワークシステム(例えば、4G、5G、6Gなどの通信ネットワークシステム)によって必要なデータ処理動作を行うことができる。また送信装置10000はオン・デマンド(On Demand)方式によってカプセル化されたデータを送信することもできる。
実施例による受信装置10004は、受信機(Receiver)10005、ポイントクラウドビデオデコーダ(Point Cloud Decoder)10006及び/又はレンダラー(Renderer)10007を含む。実施例において、受信装置10004は無線接続技術(例、5G NR(New RAT)、LTE(Long Term Evolution))を用いて、基地局及び/又は他の無線機器と通信を行う機器、ロボット、車両、AR/VR/XR機器、携帯機器、家電、IoT(Internet of Thing)機器、AI機器/サーバーなどを含む。
実施例による受信機10005は、ポイントクラウドビデオデータを含むビットストリーム又はビットストリームがカプセル化されたファイル/セグメントなどをネットワーク又は格納媒体から受信する。受信機10005はネットワークシステム(例えば、4G、5G、6Gなどの通信ネットワークシステム)により必要なデータ処理動作を行う。実施例による受信機10005は、受信したファイル/セグメントをデカプセル化してビットストリームを出力する。また実施例において、受信機10005はデカプセル化の動作を行うためのデカプセル化部(又はデカプセル化モジュール)を含む。またデカプセル化部は受信機10005とは別個のエレメント(又はコンポーネント)で具現される。
ポイントクラウドビデオデコーダ10006は、ポイントクラウドビデオデータを含むビットストリームを復号する。ポイントクラウドビデオデコーダ10006はポイントクラウドビデオデータが符号化された方式により復号することができる(例えば、ポイントクラウドビデオエンコーダ10002の動作の逆の過程)。従って、ポイントクラウドビデオデコーダ10006はポイントクラウド圧縮の逆過程であるポイントクラウド復元コーディングを行って、ポイントクラウドビデオデータを復号することができる。ポイントクラウド復元コーディングはG-PCCコーディングを含む。
レンダラー10007は、復号されたポイントクラウドビデオデータをレンダリングする。一実施例において、レンダラー10007は復号されたポイントクラウドビデオデータをビューポートなどによってレンダリングする。レンダラー10007はポイントクラウドビデオデータだけではなくオディオデータもレンダリングしてポイントクラウドコンテンツを出力する。実施例において、レンダラー10007はポイントクラウドコンテンツをディスプレイするためのディスプレイを含む。実施例において、ディスプレイはレンダラー10007に含まれず、別途のデバイス又はコンポーネントで具現される。
図面において、点線で示した矢印は、受信装置10004で得たフィードバック情報の送信経路を示す。フィードバック情報はポイントクラウドコンテンツを消費するユーザとの相互作用を反映するための情報であって、ユーザの情報を含む(例えば、ヘッドオリエンテーション情報、ビューポート情報など)。特にポイントクラウドコンテンツがユーザとの相互作用が必要なサービス(例えば、自律走行サービスなど)のためのものである場合は、フィードバック情報はコンテンツ送信側(例えば、送信装置10000)及び/又はサービス供給者に伝達されることができる。実施例においては、フィードバック情報は送信装置10000だけではなく受信装置10004でも使用でき、提供されなくてもよい。
実施例によるヘッドオリエンテーション情報はユーザの頭の位置、方向、角度、動きなどに関する情報を意味する。実施例による受信装置10004はヘッドオリエンテーション情報に基づいてビューポート情報を計算する。ビューポート情報はユーザが見ているポイントクラウドビデオの領域(即ち、ユーザが現在見ている領域)に関する情報である。即ち、ビューポート情報はユーザが現在ポイントクラウドビデオ内で見ている領域に関する情報である。言い換えれば、ビューポート又はビューポート領域はユーザがポイントクラウドビデオで見ている領域を意味する。そして、視点はユーザがポイントクラウドビデオで見ている地点であって、ビューポート領域の真ん中を意味する。即ち、ビューポートは視点を中心とする領域であり、この領域のサイズ、形態などはFOV(Field Of View)により決定される。従って、受信装置10004はヘッドオリエンテーション情報以外に、装置が支援する垂直(vertical)或いは水平(horizontal)FOVなどに基づいてビューポート情報を抽出することができる。また受信装置10004はヘッドオリエンテーション情報及び/又はビューポート情報に基づいてゲイズ分析(Gaze Analysis)などを行って、ユーザのポイントクラウドビデオ消費方式、ユーザが凝視するポイントクラウドビデオ領域、凝視時間などを確認することができる。実施例においては、受信装置10004はゲイズ分析結果を含むフィードバック情報を送信装置10000に送信する。実施例によれば、VR/XR/AR/MRディスプレイなどの装置は、ユーザの頭の位置/方向、装置が支援する垂直(vertical)或いは水平(horizontal)FOVなどに基づいてビューポート領域を抽出する。実施例によれば、ヘッドオリエンテーション情報とビューポート情報はフィードバック情報、シグナリング情報又はメタデータとも呼ばれる。
実施例によるフィードバック情報はレンダリング及び/又はディスプレイ過程で得られる。実施例によるフィードバック情報は受信装置10004に含まれた1つ又はそれ以上のセンサにより確保される。また実施例において、フィードバック情報はレンダラー10007又は別の外部エレメント(又はデバイス、コンポーネントなど)により確保される。図1の点線はレンダラー10007で得たフィードバック情報の伝達過程を示す。フィードバック情報は送信側に伝達されることだけではなく、受信側でも消費できる。即ち、ポイントクラウドコンテンツ提供システムはフィードバック情報に基づいてポイントクラウドデータを処理(符号化/復号/レンダリング)することができる。例えば、ポイントクラウドビデオデコーダー10006とレンダラー10007はフィードバック情報、即ち、ヘッドオリエンテーション情報及び/又はビューポート情報を用いて現在ユーザが見ている領域に対するポイントクラウドビデオのみを優先して復号及びレンダリングすることができる。
また受信装置10004はフィードバック情報を送信装置10000に送信することができる。送信装置10000(又はポイントクラウドビデオエンコーダー10002)はフィードバック情報に基づいて符号化動作を行う。従って、ポイントクラウドコンテンツ提供システムは全てのポイントクラウドデータを処理(符号化/復号)せず、フィードバック情報に基づいて必要なデータ(例えば、ユーザのヘッド位置に対応するポイントクラウドデータ)を効率的に処理して、ユーザにポイントクラウドコンテンツを提供することができる。
実施例において、送信装置10000はエンコーダ、送信デバイス、送信機などに呼ばれ、受信装置10004はデコーダ、受信デバイス、受信機などに呼ばれる。
実施例による図1のポイントクラウドコンテンツ提供システムで処理される(獲得/符号化/送信/復号/レンダリングの一連の過程で処理される)ポイントクラウドデータは、ポイントクラウドコンテンツデータ又はポイントクラウドビデオデータとも呼ばれる。実施例において、ポイントクラウドコンテンツデータはポイントクラウドデータに関連するメタデータ或いはシグナリング情報を含む概念として使用することができる。
図1に示すポイントクラウドコンテンツ提供システムのエレメントは、ハードウェア、ソフトウェア、プロセッサ及び/又はこれらの組み合わせなどで具現される。
図2は実施例によるポイントクラウドコンテンツ提供の動作を示すブロック図である。
図2は図1で説明したポイントクラウドコンテンツ提供システムの動作を示すブロック図である。上述したように、ポイントクラウドコンテンツ提供システムは、ポイントクラウド圧縮コーディング(例えば、G-PCC)に基づいてポイントクラウドデータを処理する。
実施例によるポイントクラウドコンテンツ提供システム(例えば、ポイントクラウド送信装置10000又はポイントクラウドビデオ獲得部10001)では、ポイントクラウドビデオを獲得する(20000)。ポイントクラウドビデオは3次元空間を表現する座標系に属するポイントクラウドで表現される。実施例によるポイントクラウドビデオはPly(Polygon File format or the Stanford Triangle format)ファイルを含む。ポイントクラウドビデオが一つ又はそれ以上のフレームを有する場合、獲得したポイントクラウドビデオは一つ又はそれ以上のPlyファイルを含む。Plyファイルはポイントのジオメトリ(Geometry)及び/又は特質(Attribute)のようなポイントクラウドデータを含む。ジオメトリはポイントの位置を含む。それぞれのポイントの位置は3次元座標系(例えば、XYZ軸からなる座標系など)を示すパラメータ(例えば、X軸、Y軸、Z軸それぞれの値)で表現される。特質はポイントの特質(例えば、それぞれのポイントのテクスチャ情報、色相(YCbCr又はRGB)、反射率(r)、透明度など)を含む。一つのポイントは一つ又はそれ以上の特質(又は属性)を有する。例えば、一つのポイントは、色相の一つの特質を有するか、或いは色相及び反射率の二つの特質を有することができる。実施例において、ジオメトリは位置、ジオメトリ情報、ジオメトリデータなどとも呼ばれ、特質は特質、特質情報、特質データなどとも呼ばれる。またポイントクラウドコンテンツ提供システム(例えば、ポイントクラウド送信装置10000又はポイントクラウドビデオ獲得部10001)は、ポイントクラウドビデオの獲得過程に関連する情報(例えば、深さ情報、色相情報など)からポイントクラウドデータを確保することができる。
実施例によるポイントクラウドコンテンツ提供システム(例えば、送信装置10000又はポイントクラウドビデオエンコーダ10002)は、ポイントクラウドデータを符号化する(20001)。ポイントクラウドコンテンツ提供システムは、ポイントクラウド圧縮コーディングに基づいてポイントクラウドデータを符号化する。上述したように、ポイントクラウドデータはポイントのジオメトリ及び特質を含む。よって、ポイントクラウドコンテンツ提供システムは、ジオメトリを符号化するジオメトリ符号化を行ってジオメトリビットストリームを出力することができる。ポイントクラウドコンテンツ提供システムは、特質を符号化する特質符号化を行って特質ビットストリームを出力することができる。実施例において、ポイントクラウドコンテンツ提供システムはジオメトリ符号化に基づいて特質符号化を行うことができる。実施例によるジオメトリビットストリーム及び特質ビットストリームは多重化されて一つのビットストリームで出力される。実施例によるビットストリームはジオメトリ符号化及び特質符号化に関連するシグナリング情報をさらに含む。
実施例によるポイントクラウドコンテンツ提供システム(例えば、送信装置10000又は送信機10003)は、符号化されたポイントクラウドデータを送信する(20002)。図1で説明したように、符号化されたポイントクラウドデータはジオメトリビットストリーム、特質ビットストリームで表現される。また符号化されたポイントクラウドデータはポイントクラウドデータの符号化に関連するシグナリング情報(例えば、ジオメトリ符号化及び特質符号化に関連するシグナリング情報)と共に、ビットストリームの形態で送信される。またポイントクラウドコンテンツ提供システムは符号化されたポイントクラウドデータを送信するビットストリームをカプセル化してファイル又はセグメントの形態で送信する。
実施例によるポイントクラウドコンテンツ提供システム(例えば、受信装置10004又は受信機10005)は、符号化されたポイントクラウドデータを含むビットストリームを受信する。またポイントクラウドコンテンツ提供システム(例えば、受信装置10004又は受信機10005)は、ビットストリームを逆多重化することができる。
ポイントクラウドコンテンツ提供システム(例えば、受信装置10004又はポイントクラウドビデオデコーダ10005)は、ビットストリームで送信される符号化されたポイントクラウドデータ(例えば、ジオメトリビットストリーム、特質ビットストリーム)を復号する。ポイントクラウドコンテンツ提供システム(例えば、受信装置10004又はポイントクラウドビデオデコーダ10005)は、ビットストリームに含まれたポイントクラウドビデオデータの符号化に関連するシグナリング情報に基づいてポイントクラウドビデオデータを復号する。ポイントクラウドコンテンツ提供システム(例えば、受信装置10004又はポイントクラウドビデオデコーダ10005)は、ジオメトリビットストリームを復号してポイントの位置(ジオメトリ)を復元する。ポイントクラウドコンテンツ提供システムは、復元したジオメトリに基づいて特質ビットストリームを復号してポイントの特質を復元する。ポイントクラウドコンテンツ提供システム(例えば、受信装置10004又はポイントクラウドビデオデコーダ10005)は、復元されたジオメトリによる位置及び復号された特質に基づいてポイントクラウドビデオを復元する。
実施例によるポイントクラウドコンテンツ提供システム(例えば、受信装置10004又はレンダラー10007)は、復号されたポイントクラウドデータをレンダリングする(20004)。ポイントクラウドコンテンツ提供システム(例えば、受信装置10004又はレンダラー10007)は、復号過程で復号されたジオメトリ及び特質を様々なレンダリング方式によってレンダリングする。ポイントクラウドコンテンツのポイントは、一定の厚さを有する定点、該当定点の位置を中央とする所定の最小サイズを有する立方体、又は定点の位置を中央とする円などにレンダリングされる。レンダリングされたポイントクラウドコンテンツの全部又は一部の領域はディスプレイ(例えば、VR/ARディスプレイ、一般ディスプレイなど)によりユーザに提供される。
実施例によるポイントクラウドコンテンツ提供システム(例えば、受信装置10004)は、フィードバック情報を確保することができる(20005)。ポイントクラウドコンテンツ提供システムは、フィードバック情報に基づいてポイントクラウドデータを符号化及び/又は復号する。実施例によるフィードバック情報及びポイントクラウドコンテンツ提供システムの動作は、図1で説明したフィードバック情報及び動作と同一であるので、具体的な説明は省略する。
図3は実施例によるポイントクラウドビデオキャプチャー過程の一例を示す図である。
図3は図1及び図2で説明したポイントクラウドコンテンツ提供システムのポイントクラウドビデオキャプチャー過程の一例を示す。
ポイントクラウドコンテンツは、様々な3次元空間(例えば、現実環境を示す3次元空間、仮想環境を示す3次元空間など)に位置するオブジェクト(object)及び/又は環境を示すポイントクラウドビデオ(イメージ及び/又は映像)を含む。従って、実施例によるポイントクラウドコンテンツ提供システムは、ポイントクラウドコンテンツを生成するために一つ又はそれ以上のカメラ(例えば、深さ情報を確保できる赤外線カメラ、深さ情報に対応する色相情報を抽出できるRGBカメラなど)、プロジェクト(例えば、深さ情報を確保するための赤外線パターンプロジェクターなど)、LiDARなどを使用してポイントクラウドビデオをキャプチャーする。実施例によるポイントクラウドコンテンツ提供システムは、深さ情報から3次元空間上のポイントで構成されたジオメトリの形態を抽出し、色相情報からそれぞれのポイントの特質を抽出してポイントクラウドデータを確保する。実施例によるイメージ及び/又は映像は内向き(inward-facing)方式及び外向き(outward-facing)方式のうちの何れかに基づいてキャプチャーされる。
図3の左側には内向き方式が示されている。内向き方式は中心オブジェクトを取り囲んで位置する一つ又はそれ以上のカメラ(又はカメラセンサ)が中心オブジェクトをキャプチャーする方式である。内向き方式は核心核心客体に対する360°イメージをユーザに提供するポイントクラウドコンテンツ(例えば、ユーザに客体(例:キャラクター、選手、品物、俳優などの核心となる客体)の360°イメージを提供するVR/ARコンテンツ)を生成するために使用される。
図3の右側には外向き方式が示されている。外向き方式は中心オブジェクトを取り囲んで位置する一つ又はそれ以上のカメラ(又はカメラセンサ)が中心オブジェクトではない中心オブジェクトの環境をキャプチャーする方式である。外向き方式はユーザの視点からの周辺環境を提供するためのポイントクラウドコンテンツ(例えば、自律走行車両のユーザに提供される外部環境を示すコンテンツ)を生成するために使用される。
図示したように、ポイントクラウドコンテンツは一つ又はそれ以上のカメラのキャプチャー動作に基づいて生成される。この場合、それぞれのカメラの座標系が異なるので、ポイントクラウドコンテンツ提供システムはキャプチャー動作前にグローバル空間座標系(global coordinate system)を設定するために、一つ又はそれ以上のカメラの較正(calibration)を行う。またポイントクラウドコンテンツ提供システムは、上述したキャプチャー方式でキャプチャーされたイメージ及び/又は映像と任意のイメージ及び/又は映像を合成してポイントクラウドコンテンツを生成する。またポイントクラウドコンテンツ提供システムは、仮想空間を示すポイントクラウドコンテンツを生成する場合、図3で説明したキャプチャー動作を行わない。実施例によるポイントクラウドコンテンツ提供システムは、キャプチャーしたイメージ及び/又は映像に対して後処理を行うこともできる。即ち、ポイントクラウドコンテンツ提供システムは、望まない領域(例えば、背景)を除去したり、キャプチャーしたイメージ及び/又は映像が連結された空間を認識して空間(spatial hole)がある場合、それを埋める動作を行うことができる。
またポイントクラウドコンテンツ提供システムは、それぞれのカメラから確保したポイントクラウドビデオのポイントに対して座標系変換を行って、一つのポイントクラウドコンテンツを生成することができる。ポイントクラウドコンテンツ提供システムは、それぞれのカメラの位置座標を基準としてポイントの座標系変換を行う。これにより、ポイントクラウドコンテンツ提供システムは、一つの広い範囲を示すコンテンツを生成するか、或いはポイントの密度が高いポイントクラウドコンテンツを生成することができる。
図4は実施例によるポイントクラウドビデオエンコーダ(Point Cloud Video Encoder)の一例を示す図である。
図4は図1のポイントクラウドビデオエンコーダ10002の一例を示す。ポイントクラウドビデオエンコーダは、ネットワーク状況或いはアプリケーションなどによってポイントクラウドコンテンツの質(例えば、無損失-lossless、損失-lossy、損失に近い-near-lossless)を調節するために、ポイントクラウドデータ(例えば、ポイントの位置及び/又は特質)を再構成して符号化動作を行う。ポイントクラウドコンテンツの全体サイズが大きい場合(例えば、30fpsの場合、60Gbpsであるポイントクラウドコンテンツ)、ポイントクラウドコンテンツ提供システムは該当コンテンツをリアルタイムストリーミングすることができない。従って、ポイントクラウドコンテンツ提供システムは、ネットワーク環境などに合わせて提供するために、最大ターゲットビットレートに基づいてポイントクラウドコンテンツを再構成することができる。
図1及び図2に示したように、ポイントクラウドビデオエンコーダはジオメトリ符号化及び特質符号化を行うことができる。ジオメトリ符号化は特質符号化よりも先に行われる。
実施例によるポイントクラウドビデオエンコーダは、座標系変換部(Transformation Coordinates unit)40000、量子化部(Quantization unit)40001、八分木分析部(Octree Analysis unit)40002、表面近似分析部(Surface Approximation Analysis unit)40003、演算エンコーダ(Arithmetic Encode)40004、ジオメトリ再構成部(Geometry Reconstruction unit)40005、色変換部(Color Transformation unit)40006、特質変換部(Attribute Transformation unit)40007、RAHT(Region Adaptive Hierachical Transform)変換部40008、LOD生成部(LOD Generation unit)40009、リフト変換部(Lifting Transformation unit)40010、係数量子化部(Coefficient Quantization unit)40011及び/又は演算エンコーダ(Arithmetic Encoder)40012を含む。
座標系変換部40000、量子化部40001、八分木分析部40002、表面近似分析部40003、演算エンコーダ40004及びジオメトリ再構成部40005は、ジオメトリ符号化を行うことができる。実施例によるジオメトリ符号化は、八分木ジオメトリコーディング、ダイレクトコーディング(direct coding)、trisoupジオメトリ符号化(trisoup geometry encoding)及びエントロピー符号化を含む。ダイレクトコーディング及びtrisoupジオメトリ符号化は選択的に或いは組み合わせて適用される。なお、ジオメトリ符号化は上記の例示に限られない。
図示したように、実施例による座標系変換部40000は、位置を受信して座標系(coordinate)に変換する。例えば、位置は3次元空間(例えば、XYZ座標系で表現される3次元空間など)の位置情報に変換される。実施例による3次元空間の位置情報はジオメトリ情報とも称される。
実施例による量子化部40001は、ジオメトリを量子化する。例えば、量子化部40001は全体ポイントの最小位置値(例えば、X軸、Y軸、Z軸に対して各軸上の最小値)に基づいてポイントを量子化する。量子化部40001は最小の位置値とそれぞれのポイントの位置値との差に所定の量子スケール(quatization scale)値を掛けた後、切り下げ又は切り上げをして最も近い整数値を探す量子化動作を行う。従って、一つ又はそれ以上のポイントは同一の量子化された位置(又は位置値)を有することができる。実施例による量子化部40001は量子化されたポイントを再構成するために、量子化された位置に基づいてボクセル化(voxelization)を行う。2次元イメージ/ビデオ情報を含む最小単位はピクセル(pixel)のように、実施例によるポイントクラウドコンテンツ(又は3次元ポイントクラウドビデオ)のポイントは一つ又はそれ以上のボクセル(voxel)に含まれる。ボクセルはボリューム(Volume)とピクセル(Pixel)を組み合わせた言葉であり、3次元空間を表現する軸(例えば、X軸、Y軸、Z軸)に基づいて3次元空間をユニット(unit=1.0)単位で分けたときに発生する3次元キュービック空間を意味する。量子化部40001は3次元空間のポイントのグループをボクセルでマッチングすることができる。実施例において、一つのボクセルは一つのポイントのみを含むことができる。実施例において、一つのボクセルは一つ又はそれ以上のポイントを含む。また一つのボクセルを一つのポイントで表現するために、一つのボクセルに含まれた一つ又はそれ以上のポイントの位置に基づいて、該当ボクセルの中央点(ceter)の位置を設定することができる。この場合、一つのボクセルに含まれた全ての位置の特質が統合されて(combined)、該当ボクセルに割り当てられる。
実施例による八分木分析部40002は、ボクセルを八分木構造で表すための八分木ジオメトリコーディング(又は八分木コーディング)を行う。八分木構造は八分割構造に基づいてボクセルにマッチングされたポイントを表現する。
実施例による表面近似分析部40003は、八分木を分析して近似化する。実施例による八分木分析及び近似化は、八分木及びボクセル化を効率的に提供するために、多数のポイントを含む領域をボクセル化するために分析を行う過程である。
実施例による演算エンコーダ40004は、八分木及び/又は近似化された八分木をエントロピー符号化する。例えば、符号化方式は演算(Arithmetic)符号化方法を含む。符号化の結果としてジオメトリビットストリームが生成される。
色変換部40006、特質変換部40007、RAHT変換部40008、LOD生成部40009、リフト変換部40010、係数量子化部40011及び/又は演算エンコーダ40012は、特質符号化を行う。上述したように、一つのポイントは一つ又はそれ以上の特質を有する。実施例による特質符号化は、一つのポイントが有する特質に対して等しく適用される。但し、一つの特質(例えば、色相)が一つ又はそれ以上の要素を含む場合は、各要素ごとに独立した特質符号化が適用される。実施例による特質符号化は、色変換コーディング、特質変換コーディング、RAHT(Region Adaptive Hierarchial Transform)コーディング、予測変換(Interpolaration-based hierarchical nearest-neighbour prediction-Prediction Transform)コーディング及びリフト変換(interpolation-based hierarchical nearest-neighbour prediction with an update/lifting step(Lifting Transform))コーディングを含む。ポイントクラウドコンテンツによって、上述したRAHTコーディング、予測変換コーディング及びリフト変換コーディングが選択的に使用されるか、又は一つ又はそれ以上のコーディングの組み合わせが使用される。また実施例による特質符号化は上述した例示に限られない。
実施例による色変換部40006は、特質に含まれた色値(又はテクスチャ)を変換する色変換コーディングを行う。例えば、色変換部40006は色相情報のフォーマットを変換(例えば、RGBからYCbCrに変換)する。実施例による色変換部40006の動作は、特質に含まれた色値によって任意に(optional)適用される。
実施例によるジオメトリ再構成部40005は、八分木及び/又は近似化した八分木を再構成(復元)する。ジオメトリ再構成部40005はポイントの分布を分析した結果に基づいて八分木/ボクセルを再構成する。再構成された八分木/ボクセルは再構成されたジオメトリ(又は復元されたジオメトリ)とも呼ばれる。
実施例による特質変換部40007は、ジオメトリ符号化が行われていない位置及び/又は再構成されたジオメトリに基づいて特質を変換する特質変換を行う。上述したように、特質はジオメトリに従属するので、特質変換部40007は再構成されたジオメトリ情報に基づいて特質を変換することができる。例えば、特質変換部40007は、ボクセルに含まれたポイントの位置値に基づいてその位置のポイントが有する特質を変換することができる。上述したように、一つのボクセルに含まれた一つ又はそれ以上のポイントの位置に基づいて該当ボクセルの中央点の位置が設定される場合、特質変換部40007は一つ又はそれ以上のポイントの特質を変換する。trisoupジオメトリ符号化が行われた場合、特質変換部40007はtrisoupジオメトリ符号化に基づいて特質を変換することができる。
特質変換部40007は、各ボクセルの中央点の位置(又は位置値)から特定の位置/半径内に隣接しているポイントの特質又は特質値(例えば、各ポイントの色相、又は反射率など)の平均値を計算して特質変換を行う。特質変換部40007は平均値の計算時、中央点から各ポイントまでの距離による加重値を適用する。従って、各ボクセルは位置及び計算された特質(又は特質値)を有する。
特質変換部40007はK-Dツリー又はモールトンコード(moulton code)に基づいて各ボクセルの中央点の位置から特定の位置/半径内に存在する隣接ポイントを探索する。K-Dツリーは二分探索木(binary search tree)で迅速に最短隣接点探索(Nearest Neighbor Search-NNS)をできるように、ポイントを位置基盤に管理する資料構造を支援する。モールトンコードは全てのポイントの3次元位置を示す座標値(例えば、(x,y,z))をビット値で示し、ビットを混ぜて生成される。例えば、ポイントの位置を示す座標値が(5,9,1)であると、座標値のビット値は(0101、1001、0001)である。ビット値をz、y、xの順にビットインデックスに合わせて混ぜると、010001000111である。この値を10進数で示すと1095になる。即ち、座標値が(5,9,1)であるポイントのモールトンコード値は1095である。特質変換部40007はモールトンコード値を基準としてポイントを整列し、depth-first traversal過程により最短隣接点探索(NNS)を行う。特質変換動作後、特質コーディングのための他の変換過程でも最短隣接点探索(NNS)が必要であれば、K-Dツリー又はモールトンコードが活用される。
図示したように、変換された特質はRAHT変換部40008及び/又はLOD生成部40009に入力される。
実施例によるRAHT変換部40008は、再構成されたジオメトリ情報に基づいて特質情報を予測するRAHTコーディングを行う。例えば、RAHT変換部40008は、八分木の下位レベルにあるノードに連関する特質情報に基づいて、八分木の上位レベルにあるノードの特質情報を予測することができる。
実施例によるLOD生成部40009はLOD(Level of Detail)を生成する。実施例によるLODはポイントクラウドコンテンツの詳細を示す程度であり、LOD値が小さいほどポイントクラウドコンテンツの詳細が下がり、LOD値が大きいほどポイントクラウドコンテンツの詳細が高いことが示されている。ポイントをLODによって分類できる。
実施例によるリフト変換部40010は、ポイントクラウドの特質を加重値に基づいて変換するリフト変換コーディングを行う。上述したように、リフト変換コーディングは選択的に適用される。
実施例による係数量子化部40011は、特質コーディングされた特質を係数に基づいて量子化する。
実施例による演算エンコーダ40012は、量子化された特質を演算コーディングに基づいて符号化する。
図4のポイントクラウドビデオエンコーダのエレメントは、図示していないが、ポイントクラウド提供装置に含まれた一つ又はそれ以上のメモリと通信可能に設定された一つ又はそれ以上のプロセッサ又は集積回路(integrated circuits)を含むハードウェア、ソフトウェア、ファームウェア又はこれらの組み合わせで具現される。一つ又はそれ以上のプロセッサは、上述した図4のポイントクラウドビデオエンコーダのエレメントの動作及び/又は機能のうち、何れか一つを行うことができる。また、一つ又はそれ以上のプロセッサは、図4のポイントクラウドビデオエンコーダのエレメントの動作及び/又は機能を行うためのソフトウェアプログラム及び/又は指示(instruction)のセットを動作又は実行することができる。実施例による一つ又はそれ以上のメモリは高速ランダムアクセスメモリを含むか、又は非揮発性メモリ(例えば、一つ又はそれ以上のマグネチックディスク格納デバイス、フラッシュメモリデバイス、又は他の非揮発性固体のメモリデバイス(Solid-state memory devices)など)を含む。
図5は実施例によるボクセルの一例を示す図である。
図5はX軸、Y軸、Z軸の3つの軸で構成された座標系で表現される3次元空間上に位置するボクセルを示す。図4に示すように、ポイントクラウドビデオエンコーダ(例えば、量子化部40001など)はボクセル化を行う。ボクセルは3次元空間を表現する軸(例えば、X軸、Y軸、Z軸)に基づいて3次元空間をユニット(unit=1.0)単位で分けたときに発生する3次元キュービック空間を意味する。図5は2つの極点(0,0,0)及び(2d、2d、2d)により定義される境界ボックス(cubical axis-aligned bounding box)を再帰的に分割(reculsive subdividing)する八分木構造により生成されたボクセルの一例を示す。一つのボクセルは少なくとも一つ以上のポイントを含む。ボクセルはボクセル群(voxel group)との位置関係から空間座標を推定することができる。上述したように、ボクセルは2次元イメージ/映像のピクセルと同様に、特質(色相又は反射率など)を有する。ボクセルに対する具体的な説明は図4で説明した通りであるので、省略する。
図6は実施例による八分木及び占有コード(occupancy code)の一例を示す図である。
図1乃至図4に示したように、ポイントクラウドコンテンツ提供システム(ポイントクラウドビデオエンコーダ10002)又はポイントクラウドビデオエンコーダの八分木分析部40002は、ボクセルの領域及び/又は位置を効率的に管理するために、八分木構造基盤の八分木ジオメトリコーディング(又は八分木コーディング)を行う。
図6の上側は八分木構造を示している。実施例によるポイントクラウドコンテンツの3次元空間は座標系の軸(例えば、X軸、Y軸、Z軸)で表現される。八分木構造は2つの極点(0,0,0)及び(2d、2d、2d)により定義される境界ボックス(cubical axis-aligned bounding box)を再帰的に分割(reculsive subdividing)して生される。2dはポイントクラウドコンテンツ(又はポイントクラウドビデオ)の全体ポイントを取り囲む最小の境界ボックスを構成する値で設定される。d値は以下の数1により決定される。以下の数1において、(xint n、yint n、zint n)は量子化されたポイントの位置(又は位置値)を示す。
図6の上側中央に示したように、分割によって全体3次元空間は8つの空間に分かれる。分割されたそれぞれの空間は6つの面を有するキューブで表現される。図6の右上側に示したように、8つの空間はそれぞれ再び座標系の軸(例えば、X軸、Y軸、Z軸)により分かれる。よって、それぞれの空間は再び8つの小さい空間に分かれる。分割された小さい空間も6つの面を有するキューブで表現される。このような分割方式は八分木のリーフノード(leaf node)がボクセルになるまで適用される。
図6の下側は八分木の占有コードを示す。八分木の占有コードは一つの空間が分かれて発生する8つの分割空間がそれぞれ少なくとも一つのポイントを含むか否かを示すために生成される。従って、一つの占有コードは8つの子ノード(child node)で表現される。それぞれの子ノードは分割された空間の占有率(occupancy)を示し、子ノードは1ビットの値を有する。従って、占有コードは8ビットコードで表現される。即ち、子ノードに対応する空間に少なくとも一つのポイントが含まれていると、該当ノードは1値を有する。ノードに対応する空間にポイントが含まれていないと(empty)、該当ノードは0値を有する。図6に示す占有コードは00100001であるので、8つの子ノードのうち、3番目の子ノード及び8番目の子ノードに対応する空間はそれぞれ少なくとも一つのポイントを含むことを示している。図示したように、3番目の子ノード及び8番目の子ノードはそれぞれ8つの子ノードを有し、それぞれの子ノードは8ビットの占有コードで表現される。図面では、3番目の子ノードの占有コードが10000111であり、8番目の子ノードの占有コードが01001111であることを示している。実施例によるポイントクラウドビデオエンコーダ(例えば、演算エンコーダ40004)は占有コードをエントロピー符号化することができる。また圧縮効率を高めるために、ポイントクラウドビデオエンコーダは占有コードをイントラ/インターコーディングすることができる。実施例による受信装置(例えば、受信装置10004又はポイントクラウドビデオデコーダ10006)は占有コードに基づいて八分木を再構成する。
実施例によるポイントクラウドビデオエンコーダ(例えば、八分木分析部40002)は、ポイントの位置を格納するためにボクセル化及び八分木コーディングを行う。しかし、3次元空間内のポイントがいつも均一に分布していることではないので、ポイントが多く存在しない特定の領域があり得る。従って、3次元空間の全体に対してボクセル化を行うことは非効率的である。例えば、特定の領域にポイントがほぼ存在しないと、該当領域までボクセル化を行う必要はない。
従って、実施例によるポイントクラウドビデオエンコーダは、上述した特定の領域(又は八分木のリーフノードを除いたノード)についてはボクセル化を行わず、特定の領域に含まれたポイントの位置を直接コーディングするダイレクトコーディング(Direct coding)を行う。実施例によるダイレクトコーディングポイントの座標は、ダイレクトコーディングモード(Direct Coding Mode、DCM)と呼ばれる。また実施例によるポイントクラウドビデオエンコーダは、表面モデル(surface model)に基づいて特定の領域(又はノード)内のポイントの位置をボクセルに基づいて再構成するtrisoupジオメトリ符号化(Trisoup geometry encoding)を行うことができる。trisoupジオメトリ符号化はオブジェクトの表現を三角形メッシュ(triangle mesh)のシリーズで表現するジオメトリ符号化である。従って、ポイントクラウドビデオデコーダはメッシュ表面からポイントクラウドを生成することができる。実施例によるダイレクトコーディング及びtrisoupジオメトリ符号化は選択的に行われる。また実施例によるダイレクトコーディング及びtrisoupジオメトリ符号化は八分木ジオメトリコーディング(又は八分木コーディング)と結合して行うことができる。
ダイレクトコーディング(Direct coding)を行うためには、ダイレクトコーディングを適用するための直接モード(direct mode)の使用オプションが活性化されている必要があり、ダイレクトコーディングを適用するノードはリーフノードではなく、特定のノード内に閾値(threshold)以下のポイントが存在する必要がある。またダイレクトコーディングの対象となる全体ポイントの個数は所定の閾値を超えてはいけない。上記条件を満たすと、実施例によるポイントクラウドビデオエンコーダ(例えば、演算エンコーダ40004)はポイントの位置(又は位置値)をエントロピーコーディングすることができる。
実施例によるポイントクラウドビデオエンコーダ(例えば、表面近似分析部40003)は、八分木の特定のレベルを定め(レベルは八分木の深さdよりは小さい場合)、そのレベルからは表面モデルを使用してノード領域内のポイントの位置をボクセルに基づいて再構成するtrisoupジオメトリ符号化を行うことができる(trisoupモード)。実施例によるポイントクラウドビデオエンコーダは、trisoupジオメトリ符号化を適用するレベルを指定できる。例えば、指定されたレベルが八分木の深さと同一であると、ポイントクラウドビデオエンコーダはtrisoupモードで動作しない。即ち、実施例によるポイントクラウドビデオエンコーダは指定されたレベルが八分木の深さ値よりも小さい場合にのみtrisoupモードで動作することができる。実施例による指定されたレベルのノードの3次元立方体領域をブロック(block)と呼ぶ。一つのブロックは一つ又はそれ以上のボクセルを含む。ブロック又はボクセルはブリック(brick)に対応することもできる。それぞれのブロック内においてジオメトリは表面(surface)と表現される。実施例による表面は最大1回、ブロックの各エッジ(edge)と交差することができる。
一つのブロックは12つのエッジを有するので、一つのブロック内に少なくとも12つの交差点が存在する。それぞれの交差点はバーテックス(vertex、頂点又は頂上)と呼ばれる。エッジに沿って存在するバーテックスは該当エッジを共有する全てのブロックのうち、そのエッジに隣接する少なくとも一つの占有ボクセル(occupied voxel)がある場合に検知される。実施例による占有ボクセルはポイントを含むボクセルを意味する。エッジに沿って検出されたバーテックスの位置は、該当エッジを共有する全てのブロックのうち、該当エッジに隣接する全てのボクセルのエッジによる平均位置である(the average position along the edge of all voxels)。
バーテックスが検出されると、実施例によるポイントクラウドビデオエンコーダは、エッジの開始点(x、y、z)、エッジの方向ベクトル(Δx、Δy、Δz)、バーテックス位置値(エッジ内の相対的位置値)をエントロピーコーディングすることができる。trisoupジオメトリ符号化が適用された場合、実施例によるポイントクラウドビデオエンコーダ(例えば、ジオメトリ再構成部40005)は三角形再構成(triangle reconstruction)、アップ-サンプリング(up-sampling)、ボクセル化過程を行って復元されたジオメトリ(再構成されたジオメトリ)を生成することができる。
ブロックのエッジに位置するバーテックスはブロックを通過する表面を決定する。実施例による表面は非平面多角形である。三角形再構成の過程ではエッジの開始点、エッジの方向ベクトルとバーテックスの位置値に基づいて三角形で示される表面を再構成する。三角形再構成の過程は以下の数2の通りである。数2において、(丸1)各バーテックスの中心(centroid)値を計算し、(2)各バーテックスの値から中心値を引いた値に、(3)自乗を行って、その値を全て加算した値を得る。
その後、加えられた値の最小値を求め、最小値がある軸に沿って投影(Projection)過程を行う。例えば、x要素(element)が最小である場合、各バーテックスをブロックの中心を基準としてx軸に投影し、(y,z)平面に投影させる。(y,z)平面に投影させて得た値が(ai,bi)であれば、atan2(bi,ai)によりθ値を求め、θ値を基準としてバーテックスを整列する。以下の表1はバーテックスの個数によって三角形を生成するためのバーテックスの組み合わせを示している。バーテックスは1からnまで順に整列される。以下の表1は4つのバーテックスに対して、バーテックスの組み合わせによって2つの三角形が構成されることを示している。1番目の三角形は整列されたバーテックスのうち、1,2,3番目のバーテックスで構成され、2番目の三角形は整列されたバーテックスのうち、3,4,1番目のバーテックスで構成される。
表1.Triangles formed from vertices ordered 1,…,n
アップサンプリング過程は三角形のエッジに沿って中間に点を追加してボクセル化するために行われる。アップサンプリング係数(upsampling factor)とブロックの幅を基準として追加点を生成する。追加点はリファインドバーテックス(refined vertice)と呼ばれる。実施例によるポイントクラウドビデオエンコーダはリファインドバーテックスをボクセル化することができる。またポイントクラウドビデオエンコーダはボクセル化された位置(又は位置値)に基づいて特質符号化を行うことができる。
図7は実施例による隣接ノードパターンの一例を示す図である。
ポイントクラウドビデオの圧縮効率を増加させるために、実施例によるポイントクラウドビデオエンコーダはコンテキスト適応演算(context adaptive arithmetic)コーディングに基づいてエントロピーコーディングを行う。
図1乃至図6で説明したように、ポイントクラウドコンテンツ提供システム又は図2のポイントクラウドビデオエンコーダ10002又は図4のポイントクラウドビデオエンコーダ又は演算エンコーダ40004は、占有コードをすぐエントロピーコーディングすることができる。またポイントクラウドコンテンツ提供システム又はポイントクラウドビデオエンコーダは、現在ノードの占有コードと隣接ノードの占有率に基づいてエントロピー符号化(イントラ符号化)を行うか、又は以前フレームの占有コードに基づいてエントロピー符号化(インター符号化)を行うことができる。実施例によるフレームは、同時間に生成されたポイントクラウドビデオの集合を意味する。実施例によるイントラ符号化/インター符号化の圧縮効率は、参照する隣接ノードの個数によって異なる。ビットが大きくなると複雑になるが、一側に傾くようにして圧縮効率を高めることができる。例えば、3-bit contextを有すると、2の3乗である8つの方法でコーディングする。分けてコーディングする部分は具現の複雑度に影響を及ぼす。従って、圧縮効率と複雑度の適正水準を合わせる必要がある。
図7は隣接ノードの占有率に基づいて占有パターンを求める過程を示す。実施例によるポイントクラウドビデオエンコーダは、八分木の各ノードの隣接ノードの占有率(occupancy)を判断して隣接ノードパターン(neighbor pattern)値を得る。隣接ノードパターンは該当ノードの占有パターンを推論するために使用される。図7の左側はノードに対応するキューブ(真ん中に位置するキューブ)及び該当キューブと少なくとも一面を共有する6つのキューブ(隣接ノード)を示している。図示したノードは同じ深さのノードである。図示した数字は6つのノードとそれぞれ連関する加重値(1、2、4、8、16、32など)を示す。各加重値は隣接ノードの位置によって順に付与される。
図7の右側は隣接ノードパターン値を示す。隣接ノードパターン値は占有された隣接ノード(ポイントを有する隣接ノード)の加重値が掛けられた値の合計である。従って、隣接ノードパターン値は0から63までの値を有する。隣接ノードパターン値が0であることは、該当ノードの隣接ノードのうち、ポイントを有するノード(占有ノード)がないことを意味する。隣接ノードパターン値が63であることは、隣接ノードが全て占有ノードであることを意味する。図示したように、加重値1、2、4、8が付与された隣接ノードは占有ノードであるので、隣接ノードパターン値は1、2、4、8を併せた値である15である。ポイントクラウドビデオエンコーダは隣接ノードパターン値によってコーディングを行うことができる(例えば、隣接ノードパターン値が63である場合、64つのコーディングを行う)。実施例においてポイントクラウドビデオエンコーダは隣接ノードパターン値を変更して(例えば、64を10又は6に変更するテーブルに基づく)、コーディングの複雑度を減らすことができる。
図8は実施例によるLODごとのポイント構成の一例を示す図である。
図1乃至図7で説明したように、特質符号化が行われる前、符号化されたジオメトリは再構成(復元)される。ダイレクトコーディングが適用された場合、ジオメトリ再構成の動作はダイレクトコーディングされたポイントの配置を変更することを含む(例えば、ダイレクトコーディングされたポイントをポイントクラウドデータの前方に配置)。trisoupジオメトリ符号化が適用された場合、ジオメトリ再構成の過程は三角形再構成、アップサンプリング、ボクセル化の過程を特質はジオメトリに従属するので、特質符号化は再構成されたジオメトリに基づいて行われる。
ポイントクラウドビデオエンコーダー(例えば、LOD生成部40009)は、ポイントをLODごとに分類する。図面ではLODに対応するポイントクラウドコンテンツを示している。図において左側はオリジナルポイントクラウドコンテンツを示す。図において、左側から2番目は最低LODのポイント分布を示し、最右側は最高LODのポイントの分布を示す。即ち、最低LODのポイントは粗い(sparse)分布であり、最高LODのポイントは細かい分布である。即ち、図面下側の矢印方向に沿ってLODが増加するほどポイント間の間隔(又は距離)は短くなる。
図9は実施例によるLODごとのポイント構成の一例を示す図である。
図1乃至図8で説明したように、ポイントクラウドコンテンツ提供システム又はポイントクラウドビデオエンコーダ(例えば、図2のポイントクラウドビデオエンコーダ10002、図4のポイントクラウドビデオエンコーダ又はLOD生成部40009)はLODを生成する。LODはポイントを設定されたLOD距離値(又はユークリッド距離(Euclidean Distance)のセット)によって改良レベル(refinement levels)のセットで再整列して生成される。LOD生成過程はポイントクラウドビデオエンコーダだけではなく、ポイントクラウドビデオデコーダでも行われる。
図9の上側は3次元空間に分布されたポイントクラウドコンテンツのポイントの一例(P0~P9)を示す。図9のオリジナルオーダー(Original order)はLOD生成前のポイントP0~P9の順を示す。図9のLoD基盤のオーダー(LOD based order)はLOD生成によるポイントの順を示す。ポイントはLODごとに再整列される。また高いLODは低いLODに属するポイントを含む。図9に示すように、LOD0はP0、P5、P4及びP2を含む。LOD1はLOD0のポイントとP1、P6及びP3を含む。LOD2はLOD0のポイント、LOD1のポイント及びP9、P8及びP7を含む。
図4で説明したように、実施例によるポイントクラウドビデオエンコーダはLOD基盤の予測変換コーディング、リフト変換コーディング及びRAHT変換コーディングを選択的に又は組み合わせて行うことができる。
実施例によるポイントクラウドビデオエンコーダは、ポイントに対する予測器(predictor)を生成して各ポイントの予測特質(又は予測特質値)を設定するためのLOD基盤の予測変換コーディングを行う。即ち、N個のポイントに対してN個の予測器が生成される。実施例による予測器は各ポイントのLOD値とLODごとに設定された距離内に存在する隣接ポイントに対するインデックス情報及び隣接ポイントまでの距離値に基づいて加重値(=1/距離)を計算することができる。
実施例による予測特質(又は特質値)は、各ポイントの予測器に設定された隣接ポイントの特質(又は特質値、例えば、色相、反射率など)に各隣接ポイントまでの距離に基づいて計算された加重(又は加重値)を掛けた値の平均値で設定される。実施例によるポイントクラウドビデオエンコーダ(例えば、係数量子化部40011)は、該当ポイントの特質(即ち、オリジナル特質値)から該当予測特質(特質値)を引いた該当ポイントの残余値(residual、残余の特質、残余の特質値、特質予測残余値、予測エラー特質値などとも呼ばれる)を量子化(quatization)及び逆量子化(inverse quantization)することができる。残余の特質値に対して行われる送信機での量子化過程は表2の通りである。また表2のように量子化された残余の特質値に対して行われる受信機での逆量子化過程は表3の通りである。
実施例によるポイントクラウドビデオエンコーダー(例えば、演算エンコーダー40012)は、各ポイントの予測機に隣接するポイントがあれば、上述したように、量子化及び逆量子化された残余値をエントロピーコーディングする。1)各ポイントの加重値を格納する配列QW(QuantizationWeight)を生成する。QWの全要素の初期値は1.0である。予測機に登録された隣接ノードの予測機インデックスのQW値に現ポイントの予測機の加重値を掛けた値を加える。
2)リフト予測過程:予測された特質値を計算するために、ポイントの特質値に加重値を掛けた値を既存の特質値から引く。
3)アップデートウェイト(updateweight)及びアップデートという臨時配列を生成し、臨時配列を0に初期化する。
4)全ての予測機に対して計算された加重値に予測機インデックスに該当するQWに貯蔵された加重値をさらに掛けて算出された加重値をアップデートウェイト配列に隣接ノードのインデックスとして累積して合算する。アップデート配列には隣接ノードのインデックスの特質値に算出された加重値を掛けた値を累積して合算する。
5)リフトアップデート過程:全ての予測機に対して、アップデート配列の特質値を予測機インデックスのアップデートウェイト配列の加重値で割り、割った値に再び既存の特質値を加える。
6)全ての予測機に対して、リフトアップデート過程でアップデートされた特質値にリフト予測過程でアップデートされた(QWに貯蔵された)加重値をさらに掛けて予測特質値を算出する。実施例によるポイントクラウドビデオエンコーダ(例えば、係数量子化部40011)は予測特質値を量子化する。またポイントクラウドビデオエンコーダ(例えば、演算エンコーダ40012)は量子化された特質値をエントロピーコーディングする。
実施例によるポイントクラウドビデオエンコーダ(例えば、RAHT変換部40008)は、八分木の下位レベルのノードに連関する特質を使用して上位レベルのノードの特質を予測するRAHT変換コーディングを行う。RAHT変換コーディングは八分木バックワードスキャンによる特質イントラコーディングの一例である。実施例によるポイントクラウドビデオエンコーダは、ボクセルから全体領域にスキャンし、各ステップもぽてボクセルをもっと大きいブロックに合わせながらルートノード(root node)までの併合過程を繰り返して行う。実施例による併合過程は、占有ノードのみについて行われる。空ノード(empty node)については併合過程が行われず、空ノードの直上位ノードについて併合過程が行われる。
gDC値もハイパス係数のように量子化されてエントロピーコーディングされる。
図10は実施例によるポイントクラウドビデオデコーダ(Point Cloud Video Decoder)の一例を示す図である。
図10に示すポイントクラウドビデオデコーダは、図1に示すポイントクラウドビデオデコーダ10006の一例であり、図1で説明したポイントクラウドビデオデコーダ10006の動作などと同一又は類似する動作を行う。図示したように、ポイントクラウドビデオデコーダは一つ又はそれ以上のビットストリームに含まれたジオメトリビットストリーム(geometry bitstream)及び特質ビットストリーム(Attribute bitstream)を受信する。ポイントクラウドビデオデコーダはジオメトリデコーダ(geometry decoder)及び特質デコーダ(Attribute decoder)を含む。ジオメトリデコーダはジオメトリビットストリームに対してジオメトリ復号を行って復号されたジオメトリ(decoded geometry)を出力する。特質デコーダは復号されたジオメトリに基づいて特質ビットストリームに対して特質復号を行って復号された特質(decoded attributes)を出力する。復号されたジオメトリ及び復号された特質はポイントクラウドコンテンツを復元(decoded point cloud)するために使用される。
図11は実施例によるポイントクラウドビデオデコーダの一例を示す図である。
図11に示すポイントクラウドビデオデコーダは図10で説明したポイントクラウドビデオデコーダの一例であり、図1乃至図9で説明したポイントクラウドビデオエンコーダの符号化動作の逆過程である復号動作を行う。
図1及び図10で説明したように、ポイントクラウドビデオデコーダはジオメトリ復号及び特質復号を行う。ジオメトリ復号は特質復号よりも先に行われる。
実施例によるポイントクラウドビデオデコーダは、演算デコーダ(arithmetic decoder、11000)、八分木合成部(octree synthesis unit、11001)、表面近似合成部(surface approximation synthesis unit、11002)、ジオメトリ再構成部(geometry reconstruction unit、11003)、座標系逆変換部(coordinates inverse transformation unit、11004)、演算デコーダ(arithmetic decoder、11005)、逆量子化部(inverse quantization unit、11006)、RAHT変換部11007、LOD生成部(LOD generation unit、11008)、逆リフト部(Inverse lifting unit、11009)、及び/又は色逆変換部(color inverse transformation unit、11010)を含む。
演算デコーダ11000、八分木合成部11001、表面近似合成部11002、ジオメトリ再構成部11003及び座標系逆変換部11004は、ジオメトリ復号を行う。実施例によるジオメトリ復号はダイレクト復号(direct decoding)及びtrisoupジオメトリ復号(trisoup geometry decoding)を含む。ダイレクト復号及びtrisoupジオメトリ復号は選択的に適用される。またジオメトリ復号は上記の例示に限られず、図1乃至図9で説明したジオメトリ符号化の逆過程により行われる。
実施例による演算デコーダ11000は、受信したジオメトリビットストリームを演算コーディングに基づいて復号する。演算デコーダ11000の動作は演算エンコーダ40004の逆過程に対応する。
実施例による八分木合成部11001は、復号されたジオメトリビットストリームから(又は復号結果、確保されたジオメトリに関する情報)から占有コードを獲得して八分木を生成する。占有コードに関する具体的な説明は図1乃至図9に説明した通りである。
実施例による表面近似合成部11002は、trisoupジオメトリ符号化が適用された場合、復号されたジオメトリ及び/又は生成された八分木に基づいて表面を合成する。
実施例によるジオメトリ再構成部11003は、表面及び/又は復号されたジオメトリに基づいてジオメトリを再生成する。図1乃至図9で説明したように、ダイレクトコーディング及びtrisoupジオメトリ符号化は選択的に適用される。従って、ジオメトリ再構成部11003はダイレクトコーディングが適用されたポイントの位置情報を直接持ってきて追加する。また、trisoupジオメトリ符号化が適用される場合、ジオメトリ再構成部11003はジオメトリ再構成部40005の再構成動作、例えば、三角形再構成、アップサンプリング、ボクセル化動作を行ってジオメトリを復元する。具体的な内容は図6で説明した通りであるので省略する。復元されたジオメトリは特質を含まないポイントクラウドピクチャ又はフレームを含む。
実施例による座標系逆変換部11004は、復元されたジオメトリに基づいて座標系を変換してポイントの位置を得る。
演算デコーダ11005、逆量子化部11006、RAHT変換部11007、LOD生成部11008、逆リフト部11009及び/又は色逆変換部11010は、図10で説明した特質復号を行う。実施例による特質復号は、RAHT(Region Adaptive Hierarchial Transform)復号、予測変換(Interpolaration-based hierarchical nearest-neighbour prediction-Prediction Transform)復号、及びリフト変換(interpolation-based hierarchical nearest-neighbour prediction with an update/lifting step (Lifting Transform))復号を含む。上記3つの復号は選択的に使用されるか、又は一つ又はそれ以上の復号の組み合わせが使用される。また実施例による特質復号は上述した例示に限られない。
実施例による演算デコーダ11005は、特質ビットストリームを演算コーディングに復号する。
実施例による逆量子化部11006は、復号された特質ビットストリーム又は復号結果確保した特質に関する情報を逆量子化(inverse quantization)して、逆量子化された特質(又は特質値)を出力する。逆量子化はポイントクラウドビデオエンコーダの特質符号化に基づいて選択的に適用される。
実施例においてRAHT変換部11007、LOD生成部11008及び/又は逆リフト部11009は、再構成されたジオメトリ及び逆量子化された特質を処理する。上述したように、RAHT変換部11007、LOD生成部11008及び/又は逆リフト部11009は、ポイントクラウドビデオエンコーダの符号化によってそれに対応する復号動作を選択的に行う。
実施例による色逆変換部11010は、復号された特質に含まれた色値(又はテクスチャ)を逆変換するための逆変換コーディングを行う。色逆変換部11010の動作はポイントクラウドビデオエンコーダの色変換部40006の動作に基づいて選択的に行われる。
図11のポイントクラウドビデオデコーダのエレメントは、図示していないが、ポイントクラウド提供装置に含まれた一つ又はそれ以上のメモリと通信可能に設定された一つ又はそれ以上のプロセッサ又は集積回路(integrated circuits)を含むハードウェア、ソフトウェア、ファームウェア又はこれらの組み合わせで具現される。一つ又はそれ以上のプロセッサは、上述した図11のポイントクラウドビデオデコーダのエレメント動作及び/又は機能のうちの何れかを行う。また、一つ又はそれ以上のプロセッサは、図11のポイントクラウドビデオデコーダのエレメントの動作及び/又は機能を行うためのソフトウェアプログラム及び/又は指示(instruction)のセットを動作又は実行する。
図12は実施例による送信装置の一例を示す。
図12に示す送信装置は、図1の送信装置10000(又は図4のポイントクラウドビデオエンコーダ)の一例である。図12に示す送信装置は、図1乃至図9で説明したポイントクラウドビデオエンコーダの動作及び符号化方法と同一又は類似する動作及び方法のうちの何れかを行う。実施例による送信装置は、データ入力部12000、量子化処理部12001、ボクセル化処理部12002、八分木占有コード生成部12003、表面モデル処理部12004、イントラ/インターコーディング処理部12005、演算コーダー12006、メタデータ処理部12007、色相変換処理部12008、特質変換処理部(又は属性変換処理部)12009、予測/リフト/RAHT変換処理部12010、演算コーダー12011及び/又は送信処理部12012を含む。
実施例によるデータ入力部12000はポイントクラウドデータを受信又は獲得する。データ入力部12000はポイントクラウドビデオ獲得部10001の動作及び/又は獲得方法(又は図2に示す獲得過程20000)と同一又は類似する動作及び/又は獲得方法を行う。
データ入力部12000、量子化処理部12001、ボクセル化処理部12002、八分木占有コード生成部12003、表面モデル処理部12004、イントラ/インターコーディング処理部12005及び演算コーダー12006はジオメトリ符号化を行う。実施例によるジオメトリ符号化は、図1乃至図9で説明したジオメトリ符号化と同一又は類似するので、具体的な説明は省略する。
実施例による量子化処理部12001は、ジオメトリ(例えば、ポイントの位置値、又はポジション値)を量子化する。量子化処理部12001の動作及び/又は量子化は、図4に示す量子化部40001の動作及び/又は量子化と同一又は類似する。具体的な説明は図1乃至図9に説明した通りである。
実施例によるボクセル化処理部12002は、量子化されたポイントの位置値をボクセル化する。ボクセル化処理部120002は図4に示す量子化部40001の動作及び/又はボクセル化過程と同一又は類似する動作及び/又は過程を行う。具体的な説明は図1乃至図9に説明した通りである。
実施例による八分木占有コード生成部12003は、ボクセル化されたポイントの位置を八分木構造に基づいて八分木コーディングを行う。八分木占有コード生成部12003は占有コードを生成する。八分木占有コード生成部12003は図4及び図6で説明したポイントクラウドエンコーダ(又は八分木分析部40002)の動作及び/又は方法と同一又は類似する動作及び/又は方法を行う。具体的な説明は図1乃至図9に説明した通りである。
実施例による表面モデル処理部12004は、表面モデル(surface model)に基づいて特定の領域(又はノード)内のポイントの位置をボクセル基盤に再構成するtrisoupジオメトリ符号化を行う。表面モデル処理部12004は図4に示すポイントクラウドビデオエンコーダ(例えば、表面近似分析部40003)の動作及び/又は方法と同一又は類似する動作及び/又は方法を行う。具体的な説明は図1乃至図9に説明した通りである。
実施例によるイントラ/インターコーディング処理部12005は、ポイントクラウドデータをイントラ/インターコーディングする。イントラ/インターコーディング処理部12005は、図7で説明したイントラ/インターコーディングと同一又は類似するコーディングを行う。具体的な説明は図7に説明した通りである。実施例においてイントラ/インターコーディング処理部12005は演算コーダー12006に含まれる。
実施例による演算コーダー12006は、ポイントクラウドデータの八分木及び/又は近似化された八分木をエントロピー符号化する。例えば、符号化方式は演算(Arithmetic)符号化方法を含む。演算コーダー12006は演算エンコーダ40004の動作及び/又は方法と同一又は類似する動作及び/又は方法を行う。
実施例によるメタデータ処理部12007は、ポイントクラウドデータに関するメタデータ、例えば、設定値などを処理してジオメトリ符号化及び/又は特質符号化などの必要な処理過程に提供する。また実施例によるメタデータ処理部12007は、ジオメトリ符号化及び/又は特質符号化に関連するシグナリング情報を生成及び/又は処理する。実施例によるシグナリング情報はジオメトリ符号化及び/又は特質符号化とは別途に符号化処理される。また実施例によるシグナリング情報はインターリービングされることもある。
色相変換処理部12008、特質変換処理部12009、予測/リフト/RAHT変換処理部12010及び演算コーダー12011は特質符号化を行う。実施例による特質符号化は、図1乃至図9で説明した特質符号化と同一又は類似するので具体的な説明は省略する。
実施例による色相変換処理部12008は、特質に含まれた色相値を変換する色相変換コーディングを行う。色相変換処理部12008は再構成されたジオメトリに基づいて色相変換コーディングを行う。再構成されたジオメトリに関する説明は、図1乃至図9に説明した通りである。また図4で説明した色変換部40006の動作及び/又は方法と同一又は類似する動作及び/又は方法を行う。具体的な説明は省略する。
実施例による特質変換処理部12009は、ジオメトリ符号化が行われていない位置及び/又は再構成されたジオメトリに基づいて特質を変換する特質変換を行う。特質変換処理部12009は図4に説明した特質変換部40007の動作及び/又は方法と同一又は類似する動作及び/又は方法を行う。具体的な説明は省略する。実施例による予測/リフト/RAHT変換処理部12010は変換された特質をRAHTコーディング、予測変換コーディング及びリフト変換コーディングのうちの何れか一つ又は組み合わせてコーディングする。予測/リフト/RAHT変換処理部12010は図4に説明したRAHT変換部40008、LOD生成部40009及びリフト変換部40010の動作と同一又は類似する動作のうちの何れかを行う。また、予測変換コーディング、リフト変換コーディング及びRAHT変換コーディングに関する説明は図1乃至図9に説明した通りであるので、具体的な説明は省略する。
実施例による演算コーダー12011は、コーディングされた特質を演算コーディングに基づいて符号化する。演算コーダー12011は演算エンコーダ40012の動作及び/又は方法と同一又は類似する動作及び/又は方法を行う。
実施例による送信処理部12012は、符号化されたジオメトリ及び/又は符号化された特質、メタデータ情報を含む各ビットストリームを送信するか、又は符号化されたジオメトリ及び/又は符号化された特質、メタデータ情報を一つのビットストリームで構成して送信する。実施例による符号化されたジオメトリ及び/又は符号化された特質、メタデータ情報が一つのビットストリームで構成された場合、ビットストリームは一つ又はそれ以上のサブビットストリームを含む。実施例によるビットストリームはシーケンスレベルのシグナリングのためのSPS(Sequence Parameter Set)、ジオメトリ情報コーディングのシグナリングのためのGPS(Geometry Parameter Set)、特質情報コーディングのシグナリングのためのAPS(Attribute Parameter Set)、タイルレベルのシグナリングのためのTPS(Tile Parameter Set)を含むシグナリング情報及びスライスデータを含む。スライスデータは一つ又はそれ以上のスライスに関する情報を含む。実施例による一つのスライスは一つのジオメトリビットストリーム(Geom00)及び一つ又はそれ以上の特質ビットストリーム(Attr00、Attr10)を含む。実施例によるTPSは一つ又はそれ以上のタイルに対してそれぞれのタイルに関する情報(例えば、bounding boxの座標値情報及び高さ/サイズ情報など)を含む。ジオメトリビットストリームはヘッダとペイロードを含む。実施例によるジオメトリビットストリームのヘッダはGPSに含まれたパラメータセットの識別情報(geom_parameter_set_id)、タイル識別子(geom_tile_id)、スライス識別子(geom_slice_id)及びペイロードに含まれたデータに関する情報などを含む。上述したように、実施例によるメタデータ処理部12007はシグナリング情報を生成及び/又は処理して送信処理部12012に送信することができる。実施例において、ジオメトリ符号化を行うエレメント及び特質符号化を行うエレメントは、点線処理したように、相互データ/情報を共有することができる。実施例による送信処理部12012は送信機10003の動作及び/又は送信方法と同一又は類似する動作及び/又は送信方法を行う。具体的な説明は図1及び図2に説明した通りであるので、省略する。
図13は実施例による受信装置の一例を示す。
図13に示す受信装置は、図1の受信装置10004(又は図10及び図11のポイントクラウドビデオデコーダ)の一例である。図13に示す受信装置は、図1乃至図11で説明したポイントクラウドビデオデコーダの動作及び復号方法と同一又は類似する動作及び方法のうちの何れかを行う。
実施例による受信装置は、受信部13000、受信処理部13001、演算(arithmetic)デコーダ13002、占有コード(Occupancy code)基盤の八分木再構成処理部13003、表面モデル処理部(三角形再構成、アップサンプリング、ボクセル化)13004、逆(inverse)量子化処理部13005、メタデータ分析13006、演算(arithmetic)デコーダ13007、逆量子化処理部13008、予測/リフト/RAHT逆変換処理部13009、色相逆変換処理部13010及び/又はレンダラー13011を含む。実施例による復号の各構成要素は実施例による符号化の構成要素の逆過程を行う。
実施例による受信部13000は、ポイントクラウドデータを受信する。受信部13000は図1の受信機10005の動作及び/又は受信方法と同一又は類似する動作及び/又は受信方法を行う。具体的な説明は省略する。
実施例による受信処理部13001は、受信したデータからジオメトリビットストリーム及び/又は特質ビットストリームを得る。受信処理部13001は受信部13000に含まれる。
演算デコーダ13002、占有コード基盤の八分木再構成処理部13003、表面モデル処理部13004及び逆量子化処理部13005はジオメトリ復号を行う。実施例によるジオメトリ復号は図1乃至図10で説明したジオメトリ復号と同一又は類似するので、具体的な説明は省略する。
実施例による演算デコーダ13002は、ジオメトリビットストリームを演算コーディングに基づいて復号する。演算デコーダ13002は演算デコーダ11000の動作及び/又はコーディングと同一又は類似する動作及び/又はコーディングを行う。
実施例による占有コード基盤の八分木再構成処理部13003は、復号されたジオメトリビットストリームから(又は復号結果、確保されたジオメトリに関する情報)から占有コードを獲得して八分木を再構成する。占有コード基盤の八分木再構成処理部13003は、八分木合成部11001の動作及び/又は八分木生成方法と同一又は類似する動作及び/又は方法を行う。実施例による表面モデル処理部13004はtrisoupジオメトリ符号化が適用された場合、表面モデル方式に基づいてtrisoupジオメトリ復号及びそれに関連するジオメトリ再構成(例えば、三角形再構成、アップサンプリング、ボクセル化)を行う。表面モデル処理部13004は表面近似合成部11002及び/又はジオメトリ再構成部11003の動作と同一又は類似する動作を行う。
実施例による逆量子化処理部13005は、復号されたジオメトリを逆量子化する。
実施例によるメタデータ分析13006は、受信したポイントクラウドデータに含まれたメタデータ、例えば、設定値などを分析する。メタデータ分析13006はメタデータをジオメトリ復号及び/又は特質復号に伝達する。メタデータに関する具体的な説明は図12で説明した通りであるので省略する。
演算デコーダ13007、逆量子化処理部13008、予測/リフト/RAHT逆変換処理部13009及び色相逆変換処理部13010は特質復号を行う。特質復号は図1なしい図10で説明した特質復号と同一又は類似するので、具体的な説明は省略する。
実施例による演算デコーダ13007は、特質ビットストリームを演算コーディングに復号する。演算デコーダ13007は再構成されたジオメトリに基づいて特質ビットストリームの復号を行う。演算デコーダ13007は演算デコーダ11005の動作及び/又はコーディングと同一又は類似する動作及び/又はコーディングを行う。
実施例による逆量子化処理部13008は、復号された特質ビットストリームを逆量子化する。逆量子化処理部13008は逆量子化部11006の動作及び/又は逆量子化方法と同一又は類似する動作及び/又は方法を行う。
実施例による予測/リフト/RAHT逆変換処理部13009は、再構成されたジオメトリ及び逆量子化された特質を処理する。予測/リフト/RAHT逆変換処理部13009は、RAHT変換部11007、LOD生成部11008及び/又は逆リフト部11009の動作及び/又は復号と同一又は類似する動作及び/又は復号のうちの何れかを行う。実施例による色相逆変換処理部13010は、復号された特質に含まれた色値(又はテクスチャ)を逆変換するための逆変換コーディングを行う。色相逆変換処理部13010は色逆変換部11010の動作及び/又は逆変換コーディングと同一又は類似する動作及び/又は逆変換コーディングを行う。実施例によるレンダラー13011はポイントクラウドデータをレンダリングする。
図14は実施例によるポイントクラウドデータ送受信方法/装置に連動可能な構造の一例を示す。
図14の構造はサーバー17600、ロボット17100、自律走行車両17200、XR装置17300、スマートフォン17400、家電17500及び/又はHMD(Head-Mount Display)17700のうちの何れかがクラウドネットワーク17100に連結された構成を示している。ロボット17100、自律走行車両17200、XR装置17300、スマートフォン17400又は家電17500などは装置とも呼ばれる。またXR装置17300は実施例によるポイントクラウドデータ(PCC)装置に対応するか又はPCC装置に連動する。
クラウドネットワーク17000はクラウドコンピューティングインフラの一部を構成するか、又はクラウドコンピューティングインフラ内に存在するネットワークを意味する。ここで、クラウドネットワーク17000は3Gネットワーク、4G又はLTEネットワーク又は5Gネットワークなどを用いて構成される。
サーバー17600はロボット17100、自律走行車両17200、XR装置17300、スマートフォン17400、家電17500及び/又はHMD17700の何れかにクラウドネットワーク17000により連結され、連結された装置17100~17700のプロセシングの少なくとも一部を助けることができる。
HMD(Head-Mount Display)17700は実施例によるXRデバイス及び/又はPCCデバイスが具現されるタイプのうちの何れかを示す。実施例によるHMDタイプのデバイスは、コミュニケーションズユニット、コントロールユニット、メモリユニット、I/Oユニット、センサユニット及びパーワ供給ユニットなどを含む。
以下、上記技術が適用される装置17100~17500の様々な実施例について説明する。ここで、図14に示す装置17100~17500は上述した実施例によるポイントクラウドデータ送受信装置に連動/結合することができる。
<PCC+XR>
XR/PCC装置17300はPCC及び/又はXR(AR+VR)技術が適用されて、HMD(Head-Mount Display)、車両に備えられたHUD(Head-Up Display)、TV、携帯電話、スマートフォン、コンピューター、ウェアラブルデバイス、家電機器、デジタル看板、車両、固定型ロボットや移動型ロボットなどに具現されることもできる。
XR/PCC装置17300は、様々なセンサにより又は外部装置から獲得した3次元ポイントクラウドデータ又はイメージデータを分析して3次元ポイントに対する位置データ及び特質データを生成することにより周辺空間又は現実オブジェクトに関する情報を得て、出力するXR客体をレンダリングして出力することができる。例えば、XR/PCC装置17300は認識された物体に関する追加情報を含むXR客体を該当認識された物体に対応して出力することができる。
<PCC+自律走行+XR>
自律走行車両17200はPCC技術及びXR技術が適用されて、移動型ロボット、車両、無人飛行体などで具現される。
XR/PCC技術が適用された自律走行車両17200は、XR映像を提供する手段を備えた自律走行車両やXR映像内での制御/相互作用の対象となる自律走行車両などを意味する。特に、XR映像内での制御/相互作用の対象となる自律走行車両17200はXR装置17300とは区分されて互いに連動されることができる。
XR/PCC映像を提供する手段を備えた自律走行車両17200は、カメラを含むセンサからセンサ情報を得、得たセンサ情報に基づいて生成されたXR/PCC映像を出力する。例えば、自律走行車両17200はHUDを備えてXR/PCC映像を出力することにより、搭乗者に現実オブジェクト又は画面内のオブジェクトに対応するXR/PCC客体を提供することができる。
この時、XR/PCC客体がHUDに出力される場合には、XR/PCC客体の少なくとも一部が搭乗者の視線が向く実際の客体にオーバーラップされるように出力される。反面、XR/PCC客体が自律走行車両内に備えられるディスプレイに出力される場合には、XR/PCC客体の少なくとも一部が画面内の客体にオーバーラップされるように出力される。例えば、自律走行車両1220は車路、他の車両、信号灯、交通表示板、二輪車、歩行者、建物などのような客体に対応する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サービス関連コンテンツデータを受信/処理してユーザに提供することができる。実施例による車両又はユーザインターフェース装置はユーザ入力信号を受信する。実施例によるユーザ入力信号は自律走行サービスを指示する信号を含む。
実施例によるポイントクラウドデータ送信方法/装置は、図1の送信装置10000、ポイントクラウドビデオエンコーダー10002、送信機10003、図2の獲得-符号化-送信20000-20001-20002、図4のポイントクラウドビデオエンコーダー、図12の送信装置、図14のデバイス及び図42の送信装置などを称する用語として解釈される。
実施例によるポイントクラウドデータ受信方法/装置は、図1の受信装置10004、受信機10005、ポイントクラウドビデオデコーダー10006、図2の送信-復号-レンダリング20002-20003-20004、図10のデコーダー、図11のポイントクラウドビデオデコーダー、図13の受信装置、図14のデバイス及び図43の受信装置などを称する用途として解釈される。
また実施例によるポイントクラウドデータ送受信方法/装置は、簡略に実施例による方法/装置と称してもよい。
実施例においては、ポイントクラウドデータを構成するジオメトリデータ、ジオメトリ情報、位置情報などは互いに同じ意味に解釈できる。ポイントクラウドデータを構成する特質データ、特質情報、属性情報なども互いに同じ意味に解釈できる。
実施例による方法/装置は、拡張可能な(scalable)送信を考慮してポイントクラウドデータを処理する。
実施例による方法/装置は、ポイントクラウドデータの送受信において受信機の性能或いは送信速度などによってデータの一部に対する選択的復号が必要な場合に効率的に支援するための方法について記載する。
そのために、この明細書では、ジオメトリ(geometry)及び特質データ(attribute data)をジオメトリ八分木(geometry octree)、LoD(level of Detail)のような意味単位に分けることにより、ビットストリーム単位で必要とする情報を選択したり又は不要な情報を除去したりすることができる。
またこの明細書では、ジオメトリ及び特質データを複数のスライスにより送信することにより、受信装置では選択的復号又は並列復号を行うことができる。
実施例によれば、この明細書では、ジオメトリビットストリーム及び/又は特質ビットストリーム、及び/又はジオメトリビットストリームと特質ビットストリームが多重化されたポイントクラウドビットストリーム構造を細分化し、細分化されたビットストリームをスライス単位で送信することにより、受信装置では選択的復号又は並列復号を行うことができる。
実施例によるこの明細書では、ポイントクラウドで構成されたデータ構造を構成するための技術を説明する。より具体的には、スライスの構成において分割(即ち、セグメント)により発生し得る性能低下を減らし、受信機の負担を軽減するための方法を提案する。図4及び図11に示すように、実施例によるポイントクラウドデータ送受信装置(又は簡単にエンコーダー/デコーダー)を参照すると、ポイントクラウドデータはポイントの集合で構成され、各々のポイントはジオメトリ情報(又はジオメトリ、ジオメトリデータという)と特質情報(又は特質、特質データという)で構成される。ジオメトリ情報は各ポイントの3次元位置情報(xyz)である。即ち、各々のポイントの位置は3次元空間を示す座標系上のパラメータで表現される(例えば、空間を示す3つの軸であるX軸、Y軸及びZ軸のパラメータ(x,y,z))。また特質情報はそのポイントの色相(RGB,YUVなど)、反射度(reflectance)、法線(normal vectors)、透明度(transparency)などを意味する。ポイントクラウド圧縮(Point Cloud Compression:PCC)では、3次元空間上に不均一に分布する分布特性を効率的に圧縮するために、八分木基盤の圧縮を行い、それに基づいて特質情報を圧縮する。図4及び図11に示すポイントクラウドビデオエンコーダー及びポイントクラウドビデオデコーダーは、各構成要素により実施例による動作を処理する。
実施例によれば、送信装置では、ポイントクラウドデータのジオメトリ情報(例えば、位置)と特質情報(例えば、色相/明るさ/反射度など)をそれぞれ圧縮して受信装置に伝達する。このとき、詳細(detail)程度によってレイヤーを有する八分木構造又はLOD(Level of Detail)によってポイントクラウドデータを構成するが、それらに基づいて拡張可能なポイントクラウドデータコーディング(scalable point cloud data coding)及び表現(representation)が可能である。このとき、受信装置の性能或いは送信速度によってポイントクラウドデータの一部のみを復号又は表現することができるが、現在のところ、不要なデータを予め除去する方法はない。
即ち、拡張可能なポイントクラウド圧縮ビットストリームに対して一部のみを送信すればよい場合に(例えば、拡張可能な復号のうち、一部のレイヤーのみを復号する場合)、必要とする部分のみを選択して送ることができないので、図15のように送信装置で復号した後、必要な部分を再符号化するか、或いは図16のように全体を受信装置に伝達して受信装置で復号した後、必要なデータを選択的に適用する必要がある。
しかし、図15の場合、復号及び再符号化のための時間により遅延が発生する可能性があり、図16の場合は、不要なデータまで受信装置に送信することにより帯域幅(bandwidth)の効率が落ち、固定帯域幅を使用する場合にはデータの品質(data quality)を下げて送信しなければならないという短所がある。
従って、これを解決するために実施例による方法/装置は、ポイントクラウドを領域ごとに分けて処理するようにスライスを提供する。
特に実施例による方法/装置ではスライスを分けて伝達する方法を使用できるが、スライスが独立してコーディングされる場合、エントロピー(entropy)連続性などが落ちることにより圧縮効率が落ちる可能性がある。そのために、実施例による方法/装置では、分離されたスライスの間のエントロピーを連続して使用するための方法を提案する。このとき、連続して使用するスライスに関する情報を予め伝達することにより、受信装置のリソースを効率的に管理することができる。また分離されたスライスの境界で隣(neighbor)を参照するために他のスライスの情報を使用する必要もあるが、このとき、並列処理(parallel processing)のためにスライス間の独立性を保障したり圧縮効率を高めるためのスライス境界での処理方法を提案する。実施例による装置及び方法は、複数のスライスの間にエントロピー連続性が与えられたとき、受信装置でバッファー管理を効率的に行うための方法を提案する。
また実施例による方法/装置では、ポイントクラウドデータのスライス細分化構造を定義し、拡張可能な送信(scalable transmission)のための拡張可能なレイヤー(scalable layer)及びスライス(slice)構造をシグナリングする。
またこの明細書では、ジオメトリ及び特質データを複数のスライスにより送信することにより、受信装置では選択的復号又は並列復号を行うことができる。
実施例によれば、方法/装置は、1つのスライスを複数のスライスにセグメント(又は区分、分け、分割という)し、セグメントした複数のスライスによりポイントクラウドビットストリームを分けて送信することにより、受信装置では選択的復号又は並列復号を支援することができる。
このとき、この明細書では、セグメントされたスライスに対する上位概念としてブリック(brick)を定義している。実施例によれば、ブリックは入力データを構成するツリーに対するサブ-ツリー(sub-tree)として考えられる。それぞれのブリックは入力データを構成するツリー構造に対して一定のツリー深さ(tree depth)で占有された(occupied)ノードの下位ツリー深さを含む単位である。
図17は実施例によるツリー構造において1つ以上のブリックを構成する例を示す図である。
例えば、図17では、ツリー深さ(tree depth)2に対して占有されたノードをルートとして考慮する4つのサブ-ツリーを互いに異なるブリックで構成している。例えば、ポイントクラウドデータ(例えば、ジオメトリデータ)に基づくツリー構造はそれぞれ50001,50003,50005,50007で表示される4つのブリックに区分できる。図17におけるブリック数は当事者の理解を助けるための一実施例であり、ブリック数は可変である。また各ブリックに属するポイントクラウドデータは各データユニットにより送信される。このとき、それぞれのブリックは独立して構成でき、この場合、並列処理が可能である。また、1つのブリックは1つ以上のスライスで構成される。
図18(a)乃至図18(c)は実施例による1つのブリックに属するポイントクラウドデータを送信するためにツリーレイヤーとスライスのマッチング関係の例示を示している。
実施例による送信方法/装置/エンコーダーは、ポイントクラウドビットストリームをスライス構造に分けるとき、より細かい単位でスライスを構成することができる。詳しいデータ表現のためのデータ単位(data unit)がスライスである。
例えば、1つのスライスに1つ又は複数の八分木レイヤー(octree layer)がマッチングされる。
実施例による送信方法/装置、例えば、エンコーダーはスキャン順序51000の方向に八分木に含まれたノード(ポイント)をスキャンしてスライス51001基盤のビットストリームを構成する。1つのスライスは八分木構造において1つ以上のレベルのノードを含むか、特定のレベルのノードのみを含むか、或いは特定のレベルの一部ノードのみを含む。又は1つ以上のレベルの一部ノードのみを含んでも良い。
図18(a)は八分木構造が7つのスライスで構成される一例を示しており、スライス51002はレベル0からレベル4までのノードで構成される。スライス51003はレベル5の一部ノード、スライス51004はレベル5の一部ノード、スライス51005はレベル5のさらに他の一部ノードで構成される。即ち、図18(a)において、レベル5は3つのスライスに分けられる。同様に図18(a)において、レベル6(即ち、リーフレベル)も3つのスライスに分けられる。言い換えれば、特定のレベルの一部ノードで1つのスライスを構成することができる。
図18(b)は八分木構造が4つのスライスで構成される一例を示しており、レベル0からレベル3までのノード及びレベル4の一部ノードで1つのスライスが構成され、レベル4の残りのノードとレベル5の一部ノードで1つのスライスが構成されている。またレベル5の残りのノードとレベル6の一部ノードで1つのスライスが構成され、レベル6の残りのノードで1つのスライスが構成されている。
図18(c)は八分木構造が5つのスライスで構成される一例を示しており、レベル0からレベル3までのノードで1つのスライスが構成され、レベル4からレベル6までのノードで4つのスライスが構成されている。即ち、レベル4の一部ノード、レベル5の一部ノード、レベル6の一部ノードで1つのスライスが構成されている。
言い換えれば、図18(b)及び図18(c)に示すように、1つのスライスに複数の八分木レイヤー(octree layer)がマッチングされるとき、各レイヤーの一部ノードのみが含まれてよい。このように複数のスライスが1つのジオメトリ/特質フレームを構成する場合、受信装置でレイヤーを構成するために必要な情報をシグナリング情報により受信装置に伝達することができる。例えば、シグナリング情報に各スライスに含まれたレイヤー情報、各レイヤーに含まれたノード情報などが含まれる。図18(a)乃至図18(c)において、中空の円(例えば、51007)はコーディング単位を知らせる役割をし、中身の詰まった円(例えば、51008)は該当スライスの終了点(又は前のスライスの開始点)を示す。
実施例によるエンコーダー及びエンコーダーに対応する装置などは、ポイントクラウドデータを符号化し、符号化されたデータ及びポイントクラウドデータに関するシグナリング情報(又はパラメータ情報という)をさらに含むビットストリームを生成して送信する。
さらに実施例によるビットストリーム構造などに基づいてビットストリームを生成する。従って実施例による受信装置、デコーダー、それに対応する装置などは、一部データの選択的復号構造に適合するビットストリームを受信しパース(parsing)して、一部のポイントクラウドデータのみを復号して効率的に提供することができる。
以下、ポイントクラウドデータの拡張可能な送信(scalable transmission)について説明する。
実施例によるポイントクラウドデータ送信方法/装置はポイントクラウドデータを含むビットストリームを拡張可能に送信し、実施例によるポイントクラウドデータ受信方法/装置はビットストリームを拡張可能に受信して復号する。
図18(a)乃至図18(c)で説明した構造が拡張可能な送信に使用される場合、受信装置で必要とするスライスを選別するためのシグナリング情報を受信装置に伝達することができる。拡張可能な送信はビットストリームの全体を送信又は復号することではなく、一部のビットストリームのみを送信又は復号する場合を意味する。従って受信装置は低解像度のポイントクラウドデータ(又はコンテンツ)を提供することができる。
実施例において、八分木基盤のジオメトリビットストリームに拡張可能な送信を適用する場合、ルートノード(root node)からリーフノード(leaf node)に至る各々の八分木レイヤーのビットストリームに対して特定の八分木レイヤーまでの情報のみでポイントクラウドデータを構成する必要がある。
そのためには、目標とする八分木レイヤーに対しては下位八分木レイヤー情報に対する依存性(dependency)があってはいけない。これはジオメトリ/特質コーディングに対して共通して適用される制約事項である。
また拡張可能な送信時、送/受信装置で拡張可能なレイヤーを選別するための拡張可能な構造を受信装置に伝達する必要がある。実施例による八分木構造を考慮するとき、全ての八分木レイヤーが拡張可能な送信を支援することもできるものの、特定の八分木レイヤー以下に対してのみ拡張可能な送信を可能にすることができる。例えば、八分木レイヤーの一部を含む場合、該当スライスがどの拡張可能なレイヤーに含まれるかをシグナリング情報により受信装置に知らせることにより、受信装置はビットストリーム段階で該当スライスの必要/不要を判断することができる。図18(a)の例において、レベル0(即ち、ルートレベル)からレベル4まで51002は拡張可能な送信を支援せず、1つの拡張可能なレイヤーを構成し、以下の八分木レイヤーに対しては拡張可能なレイヤーと1:1マッチングされるように構成することができる。一般的には、リーフノードに該当する部分に対して拡張性を支援することができるが、図18(c)のように複数の八分木レイヤーが1つのスライス内に含まれる場合は、該当レイヤーに対しては1つの拡張可能なレイヤーを構成するように定義することができる。
このとき、目的に合わせて拡張可能な送信と拡張可能な復号を区分して使用することができる。実施例によれば、拡張可能な送信は送受信装置でデコーダーを経ず、特定のレイヤーまでの情報を選別するために使用される。実施例によれば、拡張可能な復号はコーディング中に特定のレイヤーを選別するために使用できる。即ち、拡張可能な送信は圧縮された状態で(即ち、ビットストリーム段階で)デコーダーを経ず、必要とする情報の選別を支援して送信或いは受信装置で特定のレイヤーの判別が可能になる。反面、拡張可能な復号の場合、符号化/復号過程で必要とする部分までのみ符号化/復号を支援することにより、拡張可能な表現(representation)のような場合に使用することができる。
この場合、拡張可能な送信のためのレイヤー構成と拡張可能な復号のためのレイヤー構成が異なる。例えば、リーフノードを含む下位3つの八分木レイヤーは、拡張可能な送信の観点では1つのレイヤーを構成できるが、拡張可能な復号の観点では全てのレイヤー情報を含む場合、リーフノードレイヤー、リーフノードレイヤー-1、リーフノードレイヤー-2のそれぞれに対して拡張可能な復号が可能である。
以上説明したレイヤー構成のためのスライス構造及び拡張可能な送信のためのシグナリング方法について詳しくは後述する。
上述したように、実施例による方法/装置では効率的なビットストリームの伝達及び復号のために、ビットストリームを特定の単位に区分して処理する。
実施例による方法/装置は、レイヤーからなるポイントクラウドデータに対してビットストリーム単位で選択的に伝達及び復号を行う。
実施例による単位はLOD、レイヤー、スライスなどと称される。LODは特質データコーディングのLODと同じ用語であるが、他の意味として、ビットストリームのレイヤー構造のためのデータ単位をも意味する。実施例によるLODはポイントクラウドデータのレイヤー構造、例えば、八分木又は様々なツリーなどの深さ(レベル)に基づく、1つの深さに対応するか、又は2つ以上の深さを集める概念である。同様に、レイヤーはサブ-ビットストリームの単位を生成するためのものであって、1つの深さに対応するか、又は2つ以上の深さを集める概念であり、1つのLODに対応するか、或いは2つ以上のLODに対応する。またスライスはサブ-ビットストリームの単位を構成するための単位であって、1つの深さに対応するか、1つの深さの一部に対応するか、又は2つ以上の深さに対応する。またスライスは1つのLODに対応するか、1つのLODの一部に対応するか、又は2つ以上のLODに対応する。実施例によってLOD、レイヤー、スライスは互いに対応するか又は含まれる。また実施例による単位はLOD、レイヤー、スライス、レイヤーグループ、サブグループなどを含み、互いに補完して称されることもできる。実施例によって、八分木構造においてレイヤー、深さ、レベル、深さレベルは同じ意味で使用される。
図19は実施例によるレイヤー基盤のポイントクラウドデータ構成の一例を示す図である。図19はルートノードの深さレベルは0、リーフノードの深さレベルは7に設定された八分木構造の一例である。
実施例による方法/装置では、図19のようにレイヤー基盤のポイントクラウドデータを構成し、ポイントクラウドデータを符号化して復号する。
実施例によるポイントクラウドデータのレイヤリング(layering)は、応用分野によってSNR、空間解像度(sparial resolution)、色(color)、時間周波数(temporal frequency)、ビット深さ(bitdepth)などの様々な観点でのレイヤー構造を有し、八分木構造或いはLOD構造に基づいてデータの密度が増加する方向にレイヤーが形成される。
即ち、八分木構造に基づいてLODを生成する場合、詳細(detail)が増加する方向、即ち、八分木深さレベルが増加する方向にLODが増加するように定義することができる。この明細書において、レイヤーはレベル、深さ、深さレベルと同じ意味で使用される。
例えば、図19ではルートノードレベル(又はルートレベルという)を除いて7つの深さレベルを有する八分木構造において、LOD0はルートノードレベルから八分木深さレベル4まで含んで構成され、LOD1はルートノードレベルから八分木深さレベル5まで含んで構成され、LOD2はルートノードレベルから八分木深さレベル7まで含んで構成される。
実施例によれば、ポイントクラウド圧縮により得たビットストリームをデータの種類によって図20のようにジオメトリビットストリームと特質ビットストリームに分けて伝達することができる。このとき、それぞれのビットストリームはスライスで構成されて伝達される。
図20は実施例によるジオメトリビットストリームと特質ビットストリームがそれぞれのスライスに含まれる例を示す図である。即ち、図20を参照すると、ジオメトリデータを含むジオメトリビットストリームはスライス0(slice0)で構成され、特質データを含む特質ビットストリームはスライス1(slice1)で構成されて伝達される。
実施例による方法/装置は、図19のような八分木構造のレイヤリングに基づいてLODを生成し、図20のようなジオメトリビットストリーム及び特質ビットストリームを構成する。
このようにレイヤー情報又はLoD情報に関連なくジオメトリビットストリームと特質ビットストリームをそれぞれ1つのスライスで構成して伝達する場合、レイヤー又はLoDの一部のみを使用するためには、ビットストリームを復号する過程、使用しようとする部分のみを選択して不要な部分を除去する過程、及び必要な情報のみに基づいて再符号化する過程が必要である。
この明細書ではこのような不要な中間過程を避けるために、ビットストリームを複数のスライスに分けて伝達する方法を提案する。
図21(a)は実施例によってジオメトリビットストリームを分割して複数のスライスで構成する一例を示す図であり、図21(b)は実施例によって特質ビットストリームを分割して複数のスライスで構成する例を示す図である。
即ち、ビットストリームを複数のスライスに分けて受信装置に送信する場合、図21(a)、図21(b)のように、ジオメトリビットストリームと特質ビットストリームをそれぞれ複数のスライスに分けて伝達することができる。各スライスはスライスヘッダー(又はデータユニットヘッダーという)とスライスデータ(又はデータユニットデータという)で構成される。このとき、スライスヘッダーは該当スライス及び/又は参照スライス(例えば、前のスライス)に関連する参照情報を含み、スライスデータは実際ビットストリームを含む。
このとき、分けられたスライスのそれぞれは独立して存在する。即ち、図21(a)、図21(b)の例示において、ジオメトリスライス(slice0、slice1、slice 2)に対してスライス0、スライス1、スライス2が互いの関係性なしにコーディングされる。この場合、それぞれのスライスを独立してコーディングできるので、並列プロセシング(parallel processing)の観点で3つのジオメトリコーダを同時に動作でき、ライブ符号化/復号(live encoding/decoding)応用分野などにおいて実行時間を基準として一番効率的にスライスを構成することができる。例えば、レイヤー間の関係性が落ちる予測ジオメトリコーディング(predictive geometry coding)の場合、図21(a)のように互いに独立してスライスを構成することができ、このとき、独立して復号可能なスライスの数をシグナリング情報により受信装置に知らせることにより、受信装置が並列に動作することができる。これは特質スライス(slice3、slice4、slice5)にも同じく又は同様に適用できる。
さらに他の方法においては、ビットストリームを複数のスライスに分けて伝達する場合、図22(a)、図22(b)のように、互いの連関性が考えられる。図22(a)は実施例によってジオメトリビットストリームを分割して複数のスライスで構成する他の例示を示す図であり、図22(b)は実施例によって特質ビットストリームを分割して複数のスライスで構成する他の例を示す図である。
例えば、八分木基盤のジオメトリコーディングの場合、以前のノードに対するコンテキスト情報を順に、そして累積して使用することにより圧縮性能を向上させることができる。また隣接サーチ(neighbor search)、イントラ予測(intra prediction)などの場合、まず復号された隣接(又は周辺部という)ノードの占有情報を使用するが、この場合、直前のスライスの情報を使用することができる。又は並列プロセシングのために先行スライスの情報を使用することができる。この場合、図22(a)、図22(b)のように、スライス間の依存(dependency)が発生する。このとき、先行スライスの情報をシグナリング情報により受信装置に伝達して特定することができる。
図22(a)はスライス2(slice 2)がスライス1(slice 1)を参照し、スライス1(slice 1)がスライス0(slice 0)を参照する一例を示している。また図22(b)はスライス5(slice 5)がスライス4(slice 4)を参照し、スライス4(slice 4)がスライス3(slice 3)を参照する一例を示している。
このとき、複数のスライスによりジオメトリビットストリームと特質ビットストリームを伝達するためのビットストリーム整列方法には様々な実施例が適用される。
図23は実施例によるジオメトリビットストリームと特質ビットストリームの整列方法の一例を示す図である。
実施例による送信方法/装置は、ビットストリームを伝達する場合、図23のようにジオメトリデータ(又はジオメトリビットストリーム、ジオメトリ情報という)及び特質データ(又は特質ビットストリーム、特質情報という)を直列に伝達する。このとき、データの種類によってジオメトリデータの全てを先に送った後、特質データを伝達する。この場合、伝達されるビットストリームの情報に基づいてジオメトリデータを迅速に復元できるという長所がある。
図23はジオメトリデータを含むスライス0、スライス1、スライス2、特質データを含むスライス3、スライス4、スライス5の順に伝達される例である。このとき、位置は実施例によって様々に変更可能である。またジオメトリヘッダー間の参照が可能であり、特質ヘッダー及びジオメトリヘッダー間の参照も可能である。
図24は実施例によるジオメトリビットストリームと特質ビットストリームの整列方法の他の例を示す図である。
実施例による送信方法/装置は、ビットストリームを伝達する場合、図24のように同レイヤーを構成するジオメトリビットストリームと特質ビットストリームを集めて伝達することができる。この場合、ジオメトリと特質の並列復号が可能な圧縮技法を使用する場合、復号実行時間を短縮することができる。このとき、まず処理すべき情報を先に配置する(即ち、小さいLoD、ジオメトリを特質より先行する)。
図24はジオメトリデータを含むスライス0、特質データを含むスライス3、ジオメトリデータを含むスライス1、特質データを含むスライス4、ジオメトリデータを含むスライス2、及び特質データを含むスライス5の順に伝達する例である。このとき、位置は実施例によって様々に変更可能である。またジオメトリヘッダー間の参照が可能であり、特質ヘッダー及びジオメトリヘッダー間の参照も可能である。
実施例による送受信方法/装置は、ビットストリームを送/受信する場合、応用分野で希望するレイヤー(或いはLOD)をビットストリームレベルで効率的に選択することができる。実施例によるビットストリーム整列方法のうち、図23のようにジオメトリ情報を集めて先に送るとき、特定のビットストリームレベルの選択後に中間に空いている部分があり得るが、この場合は、ビットストリームの再配置が必要である。
一方、図24のようにレイヤーによってジオメトリデータと特質データを集めて伝達する場合は、応用分野によって必要な情報を選択的に伝達するか、及び/又は不要な情報を選択的に除去することができる。
実施例において、ビットストリームの一部を選択する場合、例えば、図24では送信装置は同レイヤーのジオメトリスライス0と特質スライス3、さらに他の同レイヤーのジオメトリスライス1と特質スライス4までを選択して送信し、さらに他の同レイヤーのジオメトリスライス2と特質スライス5はビットストリームから除去して送信しなくてもよい。即ち、対称的なジオメトリ-特質選択の場合、同じレイヤーのジオメトリデータと特質データは同時に選択されて送信されるか、又は同時に選択されて除去される。
実施例において、ビットストリームの一部を選択する場合、例えば、図24では送信装置は同レイヤーのジオメトリスライス0と特質スライス3、さらに他の同レイヤーのジオメトリスライス1と特質スライス4、さらに他の同レイヤーのジオメトリスライス2と特質スライス5のうち、ジオメトリスライス2までを選択して送信し、特質スライス5はビットストリームから除去して送信しなくてもよい。即ち、非対称的なジオメトリ-特質選択の場合、同レイヤーのジオメトリデータと特質データの一方のみを選択して送信されるか又は除去される。
上述したビットストリームの分割、一部ビットストリームの選択などは、ポイントクラウドデータの拡張性を支援するためのものである。
次に、連続スライスの動作及びコンテキストバッファーの管理について説明する。コンテキストバッファーは図43の受信装置のジオメトリバッファー及び/又は特質バッファーであることを一実施例とする。
上述したように、八分木基盤のジオメトリコーディングの場合、以前ノードに関するコンテキスト情報を順に、そして累積して使用することにより圧縮性能を向上させることができる。また隣接サーチ(neighbor search)、イントラ予測(intra prediction)などの場合、先に復号した隣接(又は周辺部という)ノードの占有情報を使用するが、この場合、直前スライスの情報を使用することができる。又は並列プロセシングのために、先行スライスの情報を使用することができる。この場合、スライス間の依存が発生する。
依存スライス(Dependent slice)の場合、以前スライスの情報を次のスライスコーディングに使用することにより、スライスを分けて発生するコーディング効率の低下を解決することができる。ジオメトリコーディングの場合、CABAC(context-based adaptive binary arithmetic coding)コンテキスト、コンテキストマップ、dictionary LuT、planar coding variablesなどの情報を連続して使用することができる。このようにコンテキストを連続して使用する場合、コンテキストバッファーの管理が必要である。
図25(a)は実施例によるビットストリーム構造においてスライス間の依存を示す一例を示す。図25(b)は図25(a)のように、スライス間に依存が発生したとき、各スライスで生成されるコンテキストの例を示している。また図25(c)乃至図25(e)は実施例によるスライス間に依存が生成されるとき、コンテキストバッファー管理の例示を示す。
図25(a)の場合、ビットストリームを複数のスライスに分けて伝達する場合、スライス2とスライス3はスライス0の情報を使用し、スライス4はスライス3の情報を使用する例示を示している。即ち、スライス2とスライス3はスライス0に依存し、スライス4はスライス3に依存する。例えば、スライス2はスライス0のコンテキスト情報(例えば、ジオメトリデータ又は特質データ)に基づいて符号化が行われるので、スライス2の符号化はスライス0の符号化が終了した後に開始する。また図25(a)において、スライス0はスライス2とスライス3により参照されるので、スライス0が他のスライスにより参照される回数は2である。一方、スライス1は他のスライスとは独立している。従って、スライス1のデータ(例えば、ジオメトリデータ又は特質データ)は他のスライスとの関係性なしに独立して符号化される。
図25(a)の実施例ではツリーをスライス単位に分ける場合を考慮して記載しているが、これは一例に過ぎない。即ち、サブツリーを含む概念であるブリック(brick)単位、領域ごとに分けるタイル単位、又はフレーム単位に分けられたビットストリームに対しても、他のブリック、他のタイル又は他のフレームの連続(continuation)情報、コンテキスト使用情報、隣接の参照有無などが使用される。
また各スライスに属するデータ(例えば、ジオメトリデータ又は特質データ)がエンコーダーで符号化されると、各スライスごとにコンテキストが生成される。ここで、エンコーダーは図1のポイントクラウドビデオエンコーダー10002、図2の符号化20001、図4のポイントクラウドビデオエンコーダー、図12の送信装置及び図42のエンコーダーなどである。
図25(b)を見ると、1番目のスライス(slice0)のデータがエンコーダーに入力されると、符号化によってコンテキスト情報であるコンテキストA(context A)が生成される。また2番目のスライス(slice1)のデータがエンコーダーで符号化されると、コンテキストBが生成され、3番目のスライス(slice2)のデータがエンコーダーで符号化されると、コンテキストA’が生成される。また、4番目のスライス(slice3)のデータがエンコーダーで符号化されると、コンテキストA’’が生成され、5番目のスライス(slice4)のデータがエンコーダーで符号化されると、コンテキストCが生成される。例えば、コンテキストA’はコンテキストAを参照するが、コンテキストAと独立した(又は異なる)コンテキストである。即ち、コンテキストA’はコンテキストAがアップデートされたコンテキストである。
また、受信装置では各スライスのコンテキストをコンテキストバッファーに格納する。
このとき、図25(c)のように、コンテキストバッファーの制御なしに全てのコンテキストをコンテキストバッファーに格納すると、格納空間が不足するか、又はもっと大きい格納空間を確保するために費用が増加する。
従って、この明細書ではコンテキストバッファーを効率的に管理できる方法を提案する。図25(d)及び図25(e)は実施例によってコンテキストバッファーを管理する例示を示す図である。
図25(d)を参照すれば、1番目のスライス(slice0)のデータが送信装置のエンコーダーに入力されると、符号化によりコンテキスト情報であるコンテキストAが生成される。このとき、コンテキストAの場合、1つ以上の次のスライス(例えば、スライス2、スライス3、図示していない他のスライス)で使用されるので、受信装置でコンテキストAはコンテキストバッファー内に格納される。この場合、送信装置はスライス0のコンテキストを使用するスライス(例えば、スライス2とスライス3)に関する情報をシグナリング情報(例えば、バッファー管理関連情報)により受信装置に伝達することにより、受信装置ではバッファー(又はコンテキストバッファーという)管理を効率的に行うことができる。例えば、次のスライスのうち、コンテキストAを使用する全体スライスの数(=N)(例えば、num_context_reuse_minus1)をシグナリング情報(例えば、バッファー管理関連情報又はカウンター)により受信装置に伝達することができる。例えば、図25(a)では、Nは3である。このとき、Nが0より大きい場合、受信装置のコンテキストバッファーにコンテキストAを格納した後、コンテキストAに対して他のスライスでN回参照が行われると、コンテキストAをコンテキストバッファーから除去することができる。図25(d)において、’in’はコンテキストバッファーにコンテキストを格納することを意味し、’out’はコンテキストバッファーからコンテキストを除去することを意味する。
実施例によれば、スライス0はスライス2、スライス3、そして図示していない他のスライスで使用されるので、スライス0のコンテキストであるコンテキストAはコンテキストバッファーから除去されず、続けて格納される(context A(in))。
実施例によれば、スライス1はスライス0及び次のスライスとの関係性なしに独立して符号化(又は復号)されるので、スライス2のコンテキストであるコンテキストBはコンテキストバッファー内で処理された後にすぐ除去できる(context B(in/out))。実施例によれば、スライス0を処理するとき、同時にスライス1を並列処理することにより実行時間を短縮することができる。
実施例によれば、スライス2はスライス0を参照するが、次のスライスとは関係性がないので、スライス2のコンテキストであるコンテキストA’はコンテキストバッファー内で処理後、すぐ除去できる(context A’(in/out))。スライス2はスライス0のコンテキスト(又はコンテキスト情報という)であるコンテキストAに基づいて符号化(又は復号)が行われるので、スライス0の符号化(又は復号)が終了後、符号化(又は復号)を開始することができる。またスライス2の場合は、次のスライスで参照が行われないので、符号化(又は復号)を終了後、コンテキストバッファーから削除できる。
実施例によれば、スライス3はスライス4と図示していない他のスライスで使用されるので、スライス3のコンテキストであるコンテキストA’’はコンテキストバッファーから除去されず、続けて格納される(context A’’(in))。スライス3の場合、スライス2と同様に、スライス0のコンテキストAに基づいて符号化(又は復号)が行われる。従って、スライス3をスライス2と同時に並列に符号化(又は復号)することにより、実行時間を短縮することができる。しかし、スライス3で生成されたコンテキスト(即ち、コンテキストA’’)の場合、次のスライス符号化(又は復号)に使用されるので、コンテキストバッファーに格納された後、除去されない。また、コンテキストバッファーに格納されたコンテキストA’’はスライス4の符号化(又は復号)に使用される。
実施例によれば、スライス4はスライス3を参照するが、次のスライスとは関係性がないので、スライス4のコンテキストであるコンテキストCはコンテキストバッファー内で処理後、すぐ除去できる(context C(in/out))。
実施例によれば、特定のスライスの符号化後に生成されるコンテキストがコンテキストバッファーに貯蔵される期間は少なくとも1つの次のスライスで該当スライスを参照する回数に基づいて決定される。
このようにコンテキストバッファーに関する追加情報が存在する場合、コンテキストの追加使用有無及び追加使用回数に関する情報に基づいて、コンテキストがそれ以上使用されない場合はコンテキストバッファーから除去することによりコンテキストバッファーを効率的に管理することができる。即ち、次のスライスとの関係性のないスライスのコンテキストはコンテキストバッファー内で処理後にすぐ除去することにより、コンテキストバッファーを効率的に管理することができる。また依存情報に基づいて並列処理が可能な場合は、同時実行により実行時間を短縮することができる。
図25(e)は2つ以上のスライスの並列処理を行うとき、コンテキストバッファーを管理する例示を示している。
例えば、スライス0とスライス1を並列処理すれば、スライス0のコンテキストAとスライス1のコンテキストBは同時にコンテキストバッファーに格納される。このとき、スライス0はスライス2、スライス3、そして図示していない他のスライスで使用されるので、コンテキストAはコンテキストバッファーから除去されず、続けて格納される(context a(in))。しかし、スライス1はスライス0及び次のスライスとの関係性がないので、コンテキストBはコンテキストバッファー内で処理後、すぐ除去される(context b(in/out))。
他の例においては、スライス2とスライス3を並列処理すれば、スライス2のコンテキストA’とスライス3のコンテキストA’’は同時にコンテキストバッファーに格納される。このとき、スライス2は次のスライスで使用されないので、コンテキストA’はコンテキストバッファー内で処理後、すぐ除去される(context A’(in/out))。しかし、スライス3はスライス4で使用されるので、コンテキストA’’はコンテキストバッファーから除去されず、続けて格納される(context a’’(in))。
次に、連続するスライスの動作(neighbour continuation)について説明する。
実施例によれば、スライスを分けてコーディングする場合、位置的に隣接しているノードが互いに異なるスライスに存在し得る。
図26(a)乃至図26(d)は実施例による隣接(neighbour)構造の例示を示す図である。
例えば、図26(a)乃至図26(d)の隣接構造においては、隣接構造の中央に位置するノード53000がスライスの境界に存在する場合、1,8,32は同じスライス内に存在する反面、2,4,16は1つ或いは複数の互いに異なるスライスに存在してもよい。この場合、隣接(又は周辺部という)ノードとの関係性を考慮して、スライス間の依存有無によって隣接ノードを使用するか又は使用しない。例えば、隣接ノードを活用する場合、スライス間の依存を知らせ、それぞれの隣接ノードが含まれるスライスを知らせる。図26(a)乃至図26(d)は中央に位置するノードと6つの依存する(dependent)隣接ノード、18つの依存する隣接ノード及び32つの依存する隣接ノードの例示を示す。又は、依存を認めない場合、該当隣接ノードはないと仮定するか、全て占有されたと仮定するか、又は占有されていない(即ち、非占有)と仮定して、隣接サーチ(neighbor search)を使用する。かかる仮定を使用する場合、関連情報をシグナリング情報により受信装置に伝達することができる。このとき、それぞれのスライスを独立して処理できるという点で並列処理に対する可能性を開けることができる。逆に隣接ノードの情報を正確に使用する場合は、隣接スライスに対する処理結果が必要である。この隣接ノードとの関係はジオメトリコーディングの占有マップを求めるか、或いはLoD生成の隣接サーチ、RAHTの予測などの過程で使用される。
図26(a)乃至図26(d)ではツリーをスライス単位に分ける場合を考慮して記載しているが、サブ-ツリーを含む概念であるブリック単位又は領域ごとに分けるタイル単位又はフレーム単位に分けられたビットストリームに対しても連続(continuation)情報、コンテキスト使用情報、隣接の参照有無などが使用される。
図27は実施例による送受信のためのポイントクラウドデータのビットストリーム構造の一例を示す。実施例によれば、図1、図2、図4、図12及び図42の何れかのポイントクラウドビデオエンコーダーで出力されるビットストリームは図27の形態である。
実施例によれば、ポイントクラウドデータのビットストリームはポイントクラウドデータを領域ごとに分けて処理できるようにタイル又はスライスを提供する。実施例によるビットストリームのそれぞれの領域は互いに異なる重要度を有する。従って、ポイントクラウドデータがタイルに分けられる場合、各タイルごとに異なるフィルター(符号化方法)、異なるフィルターユニットを適用することができる。またポイントクラウドデータがスライスに分けられる場合、各スライスごとに異なるフィルター、異なるフィルターユニットを適用することができる。
実施例による送信装置及び受信装置はポイントクラウドデータを領域に分割して圧縮するとき、分割された領域内の特質情報の選択的送信のために、高いレベルの構文構造でビットストリームを送信及び受信することができる。
実施例による送信装置では、図27のようなビットストリーム構造によってポイントクラウドデータを送信することにより、重要度によって異なる符号化動作を適用して、高品質の符号化方法を重要な領域に使用する方案を提供する。またポイントクラウドデータの特性による効率的な符号化及び送信を支援し、ユーザの要求事項による特質値を提供することができる。
実施例による受信装置では、図27のようなビットストリームの構造によってポイントクラウドデータを受信することにより、受信装置の処理能力によってポイントクラウドデータの全体に複雑な復号(フィルタリング)方法を使用する代わりに、領域ごとに(タイル又はスライスに分けられた領域)互いに異なるフィルタリング(復号方法)を提供することができる。従って、ユーザにとって重要な領域により良好な画質とシステムに適切な遅延(latency)を保障することができる。
実施例によるジオメトリビットストリーム、特質ビットストリーム及び/又はシグナリングビットストリーム(又はシグナリング情報)が図27のように1つのビットストリーム(又はG-PCCビットストリーム)で構成される場合、ビットストリームは1つ又はそれ以上のサブビットストリームを含む。実施例によるビットストリームはシーケンスレベルのシグナリングのためのSPS(Sequence Parameter Set)、ジオメトリ情報コーディングのシグナリングのためのGPS(Geometry Parameter Set)、特質情報コーディングのシグナリングのための1つ以上のAPS(Attribute Parameter Set,APS0,APS1)、タイルレベルのシグナリングのためのタイル目録(又はTPSという)、及び1つ以上のスライス(slice 0~slice n)を含む。即ち、実施例によるポイントクラウドデータのビットストリームは1つ以上のタイルを含み、各タイルは1つ以上のスライス(slice0~slice n)を含むスライスのグループである。実施例によるタイル目録(即ち、TPS)は1つ以上のタイルに対して各タイルに関する情報(例えば、tile bounding boxの座標値情報及び高さ/サイズ情報など)を含む。各スライスは1つのジオメトリビットストリーム(Geom0)及び/又は1つ以上の特質ビットストリーム(Attr0,Attr1)を含む。例えば、スライス0(slice 0)は1つのジオメトリビットストリーム(Geom00)及び1つ以上の特質ビットストリーム(Attr00,Attr10)を含む。
それぞれのスライス内のジオメトリビットストリームはジオメトリスライスヘッダー(geom_slice_header)とジオメトリスライスデータ(geom_slice_data)で構成される。実施例によれば、それぞれのスライス内のジオメトリビットストリームはジオメトリデータユニットと称し、ジオメトリスライスヘッダーはジオメトリデータユニットヘッダーと称し、ジオメトリスライスデータはジオメトリデータユニットデータとも称する。
それぞれのスライス内の各特質ビットストリームは特質スライスヘッダー(attr_slice_header)と特質スライスデータ(attr_slice_data)で構成される。実施例によれば、それぞれのスライス内の特質ビットストリームは特質データユニットと称し、特質スライスヘッダーは特質データユニットヘッダーと称し、特質スライスデータは特質データユニットデータとも称する。
実施例によれば、ポイントクラウドデータの符号化及び/又は復号に必要なパラメータはポイントクラウドデータのパラメータセット((例えば、SPS,GPS,APS及びTPS(又はタイル目録という)など)及び/又は該当スライスのヘッダーなどに新しく定義される。例えば、ジオメトリ情報の符号化及び/又は復号を行うときには、ジオメトリパラメータセット(GPS)に、タイル基盤の符号化及び/又は復号を行うときには、タイル(TPS)及び/又はスライスヘッダーに追加することができる。
実施例によれば、スライスに関連する情報(又はスライス関連情報と称する)及び/又はバッファー管理に関連する情報(又はバッファー管理情報と称する)は、シーケンスパラメータセット、ジオメトリパラメータセット、特質パラメータセット、タイルパラメータセット及びSEIメッセージの何れかにシグナリングされる。またスライスに関連する情報(又はスライス関連情報と称する)及び/又はバッファー管理に関連する情報(又はバッファー管理情報と称する)は、ジオメトリスライスヘッダー(又はジオメトリデータユニットヘッダーと称する)及び特質スライスヘッダー(又は特質データユニットヘッダーと称する)の何れかにシグナリングされる。
実施例によれば、スライス関連情報及び/又はバッファー管理情報は、アプリケーション、システムに応じて相応する位置又は別の位置に定義して適用範囲、適用方法などを変えることができる。後述するこの明細書の構文で使用される用語であるフィールドは、パラメータ又は構文要素と同じ意味を有する。
即ち、シグナル(例えば、スライス関連情報及び/又はバッファー管理情報)が伝達される位置によって異なる意味を有するが、仮にSPSに定義されると、シーケンス全体に同一に適用され、GPSに定義されると、位置の復元に使用されることを示し、APSに定義されると、特質の復元に適用され、TPSに定義されると、タイル内のポイントに対してのみ該当シグナリングが適用されることを示す。またスライス単位に伝達されると、該当スライスに対してのみシグナリングが適用されることを示す。一方、次に定義するフィールド(又は構文要素と称する)が現在ポイントクラウドデータストリームだけではなく複数のポイントクラウドデータストリームに適用される場合には、上位概念のパラメータセットなどにより伝達することができる。
実施例によれば、パラメータ(メタデータ、シグナリング情報などに様々に呼ばれる)は、送信装置のメタデータ処理部(又はメタデータ生成器)やシグナリング処理部、プロセッサで生成され、受信装置に伝達されて復号/再構成過程で用いられる。例えば、送信装置で生成されて送信されるパラメータは、受信装置のメタデータパーサーで得られる。
この実施例ではコーディング技法と独立して該当情報を定義することを記載しているが、他の実施例としてコーディング方法と連携して定義することができ、地域的に互いに異なる拡張性(scalability)を支援するためにタイルパラメータセットに定義することができる。
又はNAL(Network abstract layer)単位を定義し、layer_idのようにレイヤーを選択できる関連情報(例えば、スライス関連情報及び/又はバッファー管理情報)を伝達することにより、システムレベルでもビットストリームを選択することができる。
図28はこの明細書によるシーケンスパラメータセット(seq_parameter_set)(SPS)の構文構造の一実施例を示す図である。SPSはポイントクラウドデータビットストリームのシーケンス情報を含む。
実施例によるSPSはmain_profile_compatibility_flagフィールド、unique_point_positions_constraint_flagフィールド、level_idcフィールド、sps_seq_parameter_set_idフィールド、sps_bounding_box_present_flagフィールド、sps_source_scale_factor_numerator_minus1フィールド、sps_source_scale_factor_denominator_minus1フィールド、sps_num_attribute_setsフィールド、log2_max_frame_idxフィールド、axis_coding_orderフィールド、sps_bypass_stream_enabled_flagフィールド及びsps_extension_flagフィールドを含む。
main_profile_compatibility_flagフィールドは、そのビットストリームがメインプロファイルに従うか否かを指示する。例えば、main_profile_compatibility_flagフィールドの値が1であると、そのビットストリームがメインプロファイルを従うことを示す(the bitstream conforms to the main profile)。例えば、main_profile_compatibility_flagフィールドの値が0であると、そのビットストリームがメインプロファイル以外のプロファイルを従うことを示す。
unique_point_positions_constraint_flagフィールドの値が1であると、現SPSが参照する各ポイントクラウドフレームにおいて、全ての出力ポイントは固有(unique)のポジションを有する。unique_point_positions_constraint_flagフィールドの値が0であると、現SPSが参照する任意のポイントクラウドフレームにおいて、2つ以上の出力ポイントが同じポジションを有する。例えば、全てのポイントが各々のスライスにおいて唯一であっても、フレーム内のスライスと他のポイントは重複することができる。この場合、unique_point_positions_constraint_flagフィールドの値は0にセットされる。
level_idcフィールドはそのビットストリームが従うレベルを示す。
sps_seq_parameter_set_idフィールドは、他の構文要素により参照されるSPSに対する識別子を提供する(provides an identifier for the SPS for reference by other syntax elements)。
sps_bounding_box_present_flagフィールドは、バウンディングボックスがSPSに存在するか否かを指示する。例えば、sps_bounding_box_present_flagフィールドの値が1であると、バウンディングボックスがSPSに存在し、0であると、バウンディングボックスのサイズが定義されないことを示す。
実施例によれば、SPSはsps_bounding_box_present_flagフィールドの値が1であると、sps_bounding_box_offset_xフィールド、sps_bounding_box_offset_yフィールド、sps_bounding_box_offset_zフィールド、sps_bounding_box_offset_log2_scaleフィールド、sps_bounding_box_size_widthフィールド、sps_bounding_box_size_heightフィールド及びsps_bounding_box_size_depthフィールドをさらに含む。
sps_bounding_box_offset_xフィールドは、直交座標系(Cartesian coordinates)においてソースバウンディングボックスのxオフセットを示す。ソースバウンディングボックスのxオフセットが存在しないと、sps_bounding_box_offset_xフィールドの値は0である。
sps_bounding_box_offset_yフィールドは、直交座標系においてソースバウンディングボックスのyオフセットを示す。ソースバウンディングボックスのyオフセットが存在しないと、sps_bounding_box_offset_yフィールドの値は0である。
sps_bounding_box_offset_zフィールドは、直交座標系においてソースバウンディングボックスのzオフセットを示す。ソースバウンディングボックスのzオフセットが存在しないと、sps_bounding_box_offset_zフィールドの値は0である。
sps_bounding_box_offset_log2_scaleフィールドは、量子されたx,y,zソースバウンディングボックスオフセットをスケールするための倍率(scale factor)を示す。
sps_bounding_box_size_widthフィールドは、直交座標系においてソースバウンディングボックスの幅を示す。ソースバウンディングボックスの幅が存在しないと、sps_bounding_box_size_widthフィールドの値は1であってもよい。
sps_bounding_box_size_heightフィールドは、直交座標系においてソースバウンディングボックスの高さを示す。ソースバウンディングボックスの高さが存在しないと、sps_bounding_box_size_heightフィールドの値は1であってもよい。
sps_bounding_box_size_depthフィールドは、直交座標系においてソースバウンディングボックスの深さを示す。ソースバウンディングボックスの深さが存在しないと、sps_bounding_box_size_depthフィールドの値は1であってもよい。
sps_source_scale_factor_numerator_minus1 plus1は、ソースポイントクラウドの倍率の分子(numerator)を示す。
sps_source_scale_factor_denominator_minus1 plus1は、ソースポイントクラウドの倍率の分母(denominator)を示す。
sps_num_attribute_setsフィールドは、該当ビットストリーム内のコーディングされた特質の数を示す(indicates the number of coded attributes in the bitstream)。
実施例によるSPSは、sps_num_attribute_setsフィールドの値だけ繰り返される繰り返し文を含む。このとき、iは0に初期化され、繰り返し文が行われるたびに1ずつ増加し、i値がsps_num_attribute_setsフィールドの値になるまで繰り返し文が繰り返されることを一実施例とする。この繰り返し文はattribute_dimension_minus1[i]フィールドとattribute_instance_id[i]フィールドを含む。attribute_dimension_minus1[i] plus1はi番目の特質のコンポーネントの数を示す。
attribute_instance_id[i]フィールドはi番目の特質のインスタンス識別子を示す。
実施例によれば、繰り返し文はattribute_dimension_minus1[i]フィールドの値が1より大きいと、attribute_secondary_bitdepth_minus1[i]フィールド、attribute_cicp_colour_primaries[i]フィールド、attribute_cicp_transfer_characteristics[i]フィールド、attribute_cicp_matrix_coeffs[i]フィールド及びattribute_cicp_video_full_range_flag[i]フィールドをさらに含む。
attribute_secondary_bitdepth_minus1[i] plus1は、i番目の特質信号の第2のコンポーネントのためのビット深さ(bitdepth)を示す。
attribute_cicp_colour_primaries[i]フィールドは、i番目の特質の色特質ソース初期の色度(chromaticity coordinates)を示す。
attribute_cicp_transfer_characteristics[i]フィールドは、i番目の特質の0から1の間の名目上の実数値範囲を有するソース入力線形光強度(input linear optical intensity)であって、参照光-電子伝達特性関数(reference opto-electronic transfer characteristic function)を指示するか、又は出力線形光強度(output linear optical intensity)の関数であって、参照電子-光伝達特性関数(reference opto-electronic transfer characteristic function)の逆(inverse)を示す(attribute_cicp_transfer_characteristics[i] either indicates the reference opto-electronic transfer characteristic function of the colour attribute as a function of a source input linear optical intensity with a nominal real-valued range of 0 to 1 or indicates the inverse of the reference electro-optical transfer characteristic function as a function of an output linear optical intensity)。
attribute_cicp_matrix_coeffs[i]フィールドは、i番目の特質の緑、青及び赤(又はY、Z、Xの三原色)からルマ(luma)と彩度(chroma)信号を導き出すために使用されるマトリックス係数を説明する(describes the matrix coefficients used in deriving luma and chroma signals from the green, blue, And red, or Y, Z, And X primaries)。
attribute_cicp_video_full_range_flag[i]フィールドは、i番目の特質のE’Y、E’PB及びE’PR又はE’R、E’G及びE’B実際-値コンポーネント信号から導き出されるブラックレベルとルマ及び彩度信号の範囲を示す。
known_attribute_label_flag[i]フィールドは、i番目の特質のためにknow_attribute_label[i]フィールド又はattribute_label_four_bytes[i]フィールドがシグナリングされるか否かを示す。例えば、known_attribute_label_flag[i]フィールドの値が0であると、i番目の特質のためにknown_attribute_label[i]フィールドがシグナリングされ、known_attribute_label_flag[i]フィールドの値が1であると、i番目の特質のためにattribute_label_four_bytes[i]フィールドがシグナリングされることを示す。
known_attribute_label[i]フィールドは、i番目の特質のタイプを示す。例えば、known_attribute_label[i]フィールドの値が0であると、i番目の特質は色であることを示し、known_attribute_label[i]フィールドの値が1であると、i番目の特質は反射率であることを示し、known_attribute_label[i]フィールドの値が2であると、i番目の特質はフレームインデックスであることを示す。また、known_attribute_label[i]フィールドの値が4であると、i番目の特質は透明度であることを示し、known_attribute_label[i]フィールドの値が5であると、i番目の特質はnormalsであることを示す。
attribute_label_four_bytes[i]フィールドは、4バイトコードでknown特質タイプを指示する。
実施例によれば、attribute_label_four_bytes[i]フィールドの値が0であるとi番目の特質は色を、1であるとi番目の特質は反射率を、2であるとi番目の特質はフレームインデックスを、4であるとi番目の特質は透明度を、そして5であるとi番目の特質はnormalsであることを指示する。
log2_max_frame_idxフィールドは、frame_idx構文の変数(variable)をシグナリングするために使用されたビット数を示す。
axis_coding_orderフィールドは、X,Y,Z output axis labelsとaxis=0..2を有する再構成されたポイントクラウドRecPic[pointidx][axis]内の3つのポジションコンポーネントの間の類似性(correspondence)を指示する。
sps_bypass_stream_enabled_flagフィールドの値が1であると、バイパスコーディングモードがビットストリームを読み取るときに使用されることを指示する。他の例においては、sps_bypass_stream_enabled_flagフィールドの値が0であると、バイパスコーディングモードがビットストリームを読み取るときに使用されないことを指示する。
sps_extension_flagフィールドはsps_extension_data 構文構造が該当SPS構文構造に存在するか否かを示す。例えば、sps_extension_present_flagフィールドの値が1であると、sps_extension_data構文構造がこのSPS構文構造に存在し、0であると存在しないことを示す。
実施例によるSPSは、sps_extension_flagフィールドの値が1であると、sps_extension_data_flagフィールドをさらに含む。
sps_extension_data_flagフィールドはいずれの値であってもよい。
図29は実施例によるシーケンスパラメータセット(sequency_parameter_set)(SPS)の構文構造の他の実施例を示す図である。
図29のSPSは、sps_entropy_continuation_enabled_flagフィールドをさらに含む。例えば、sps_entropy_continuation_enabled_flagフィールドの値が1であると、スライスの初期エントロピーコンテキスト状態は以前(又は先行)状態(preceeding state)の最後のエントロピーコンテキスト状態によって異なることを指示する(indicates that a slice’s Initial entropy co
ntext state may depend upon the final entropy context state of the preceeding slice)。sps_entropy_continuation_enabled_flagフィールドの値が0であると、各スライスの初期エントロピーコンテキスト状態は独立していることを明示する(specifies that the Initial entropy context state of each slice is independent)。
実施例によれば、図29のsps_entropy_continuation_enabled_flagフィールドは、図28のSPSの任意の位置に含まれる。
図30はこの明細書によるジオメトリパラメータセット(geometry_parameter_set)(GPS)の構文構造の一実施例を示す図である。実施例によるGPSは、1つ又はそれ以上のスライスに含まれたポイントクラウドデータのジオメトリ情報を符号化する方法に関する情報を含む。
実施例によるGPSは、gps_geom_parameter_set_idフィールド、gps_seq_parameter_set_idフィールド、gps_box_present_flagフィールド、unique_geometry_points_flagフィールド、geometry_planar_mode_flagフィールド、geometry_angular_mode_flagフィールド、neighbour_context_restriction_flagフィールド、inferred_direct_coding_mode_enabled_flagフィールド、bitwise_occupancy_coding_flagフィールド、adjacent_child_contextualization_enabled_flagフィールド、log2_neighbour_avail_boundaryフィールド、log2_intra_pred_max_node_sizeフィールド、log2_trisoup_node_sizeフィールド、geom_scaling_enabled_flagフィールド、gps_implicit_geom_partition_flagフィールド及びgps_extension_flagフィールドを含む。
gps_geom_parameter_set_idフィールドは、他の構文要素により参照されるGPSの識別子を提供する。
gps_seq_parameter_set_idフィールドは、該当アクティブSPSに対するseq_parameter_set_idフィールドの値を示す(gps_seq_parameter_set_id specifies the value of sps_seq_parameter_set_id for the active SPS)。
gps_box_present_flagフィールドは、追加バウンディングボックス情報が現在GPSを参照するジオメトリスライスヘッダーから提供されるか否かを示す。例えば、gps_box_present_flagフィールドの値が1であると、追加バウンディングボックス情報が現在GPSを参照するジオメトリスライスヘッダー内に提供されることを指示する。従って、gps_box_present_flagフィールドの値が1であると、GPSはgps_gsh_box_log2_scale_present_flagフィールドをさらに含む。
gps_gsh_box_log2_scale_present_flagフィールドは、gps_gsh_box_log2_scaleフィールドが現在GPSを参照する各ジオメトリスライスヘッダーにシグナリングされるか否かを示す。例えば、gps_gsh_box_log2_scale_present_flagフィールドの値が1であると、gps_gsh_box_log2_scaleフィールドが現在GPSを参照する各ジオメトリスライスヘッダーにシグナリングされることを指示する。他の例においては、gps_gsh_box_log2_scale_present_flagフィールドの値が0であると、gps_gsh_box_log2_scaleフィールドが現在GPSを参照する各ジオメトリスライスヘッダーにシグナリングされず、全てのスライスのための共通スケール(common scale)が現在GPSのgps_gsh_box_log2_scaleフィールドにシグナリングされることを指示する。
gps_gsh_box_log2_scale_present_flagフィールドの値が0であると、GPSはgps_gsh_box_log2_scaleフィールドをさらに含む。
gps_gsh_box_log2_scaleフィールドは、現在GPSを参照する全てのスライスに対するバウンディングボックスオリジンの共通倍率(common scale factor)を示す。
unique_geometry_points_flagフィールドは現在GPSを参照する全てのスライスにおいて、全ての出力ポイントが1つのスライス内で固有のポジション(unique positions)を有するか否かを示す。例えば、unique_geometry_points_flagフィールドの値が1であると、現在GPSを参照する全てのスライスにおいて、全ての出力ポイントが1つのスライス内で固有のポジションを有すると指示する。unique_geometry_points_flagフィールドの値が0であると、現在GPSを参照する全てのスライスにおいて、2つ以上の出力ポイントが1つのスライス内で同じポジションを有し得ると指示する(Equal to 1 indicates that in all slices that refer to the current GPS, all output points have unique positions within a slice. unique_geometry_points_flag field equal to 0 indicates that in all slices that refer to the current GPS, the two or more of the output points may have same positions within a slice)。
geometry_planar_mode_flagフィールドは、planar coding modeが活性(activate)であるか否かを指示する。例えば、geometry_planar_mode_flagフィールドの値が1であると、planar coding modeが活性であり、0であると、planar coding modeが活性ではないことを指示する。
geometry_planar_mode_flagフィールドの値が1であると、即ち、真であると、GPSはgeom_planar_mode_th_idcmフィールド、geom_planar_mode_th[1]フィールド及びgeom_planar_mode_th[2]フィールドをさらに含む。
geom_planar_mode_th_idcmフィールドはダイレクトコーディングモードのための活性化(activation)のしきい値を示す。
geom_planar_mode_th[i]フィールドは0-2の範囲のうち、iに対して効率的なplanar coding modeのためにi番目の最も可能性のある方向(most probable direction)と共に、planar coding modeのための活性のしきい値を明示する(for i in the rang 0…2, specifies the value of the threshold of activation for planar coding mode along the i-th most probable direction for the planar coding mode to be efficient)。
geometry_angular_mode_flagフィールドは、angular coding modeが活性であるか否かを指示する。例えば、geometry_angular_mode_flagフィールドの値が1であると、angular coding modeが活性であり、0であると、angular coding modeが活性ではないことを指示する。
geometry_angular_mode_flagフィールドの値が1であると、即ち、真であると、GPSはlidar_head_position[0]フィールド、lidar_head_position[1]フィールド、lidar_head_position[2]フィールド、number_lasersフィールド、planar_buffer_disabledフィールド、implicit_qtbt_angular_max_node_min_dim_log2_to_split_zフィールド及びimplicit_qtbt_angular_max_diff_to_split_zフィールドをさらに含む。
lidar_head_position[0]フィールド、lidar_head_position[1]フィールド及びlidar_head_position[2]フィールドは、内部軸を有する座標システム(coordinate system with the internal axes)においてライダーヘッド(lidar head)の(X,Y,Z)座標を示す。
number_lasersフィールドは、angular coding modeのために使用されたレーザの数を指示する。
実施例によるGPSは、number_lasersフィールドの値だけ繰り返される繰り返し文を含む。このとき、iは0に初期化され、繰り返し文が行われるたびに1ずつ増加し、i値がnumber_lasersフィールドの値になるまで繰り返し文が繰り返されることを一実施例とする。この繰り返し文はlaser_angle[i]フィールドとlaser_correction[i]フィールドを含む。
laser_angle[i]フィールドは、0番目と1番目の内部軸(internal axes)により定義された水平面に関連するi番目のレーザの仰角(elevation angle)のタンジェント(tangent)を示す。
laser_correction[i]フィールドは、lidar_head_position[2]フィールドに関連するi番目のレーザポジションの訂正を、2番目の内部軸によって指示する。
planar_buffer_disabledフィールドの値が1であると、バッファーを用いて最接近ノード(closest nodes)をトラッキングすることが、planar modeでplanar mode flagと平面ポジション(plane position)をコーディングする過程で使用されないことを指示する。planar_buffer_disabledフィールドの値が0であると、バッファーを用いて最接近ノードをトラッキングすることが使用されることを指示する。
implicit_qtbt_angular_max_node_min_dim_log2_to_split_zフィールドは、ノードの水平分割(horizontal split)が垂直分割(vertical split)よりも選好されるノードサイズのlog2値を指示する。
implicit_qtbt_angular_max_diff_to_split_zフィールドは、ノードに許容された水平ノードサイズ比率に対する最大垂直のlog2値を示す。
neighbour_context_restriction_flagフィールドの値が0であると、現ノードのジオメトリノード占有が現ノードの親ノードの内に位置する隣接ノードから決定されたコンテキストにコーディングされることを示す。neighbour_context_restriction_flagフィールドの値が1であると、現ノードのジオメトリノード占有が現ノードの親ノードの外又は内に位置する隣接ノードから決定されたコンテキストにコーディングされることを示す(neighbour_context_restriction_flag equal to 0 indicates that geometry node occupancy of the current node is coded with the contexts determined from neighbouring nodes which is located inside the parent node of the current node. neighbour_context_restriction_flag equal to 1 indicates that geometry node occupancy of the current node is coded with the contexts determined from neighbouring nodes which is located inside or outside the parent node of the current node)。
inferred_direct_coding_mode_enabled_flagフィールドは、direct_mode_flagフィールドが該当ジオメトリノードシンタックスに存在するか否かを示す。例えば、inferred_direct_coding_mode_enabled_flagフィールドの値が1であると、direct_mode_flagフィールドが該当ジオメトリノードシンタックスに存在することを示す。例えば、inferred_direct_coding_mode_enabled_flagフィールドの値が0であると、direct_mode_flagフィールドが該当ジオメトリノードシンタックスに存在しないことを示す。
bitwise_occupancy_coding_flagフィールドは、ジオメトリノード占有率がそのシンタックスエレメント占有率マップのビット文脈(bitwise contextualization)を使用して符号化されるか否かを示す。例えば、bitwise_occupancy_coding_flagフィールドの値が1であると、ジオメトリノード占有率がそのシンタックスエレメントoccupancy_mapのビット文脈を使用して符号化されることを示す。例えば、bitwise_occupancy_coding_flagフィールドの値が0であると、ジオメトリノード占有率がそのディレクトリ符号化されたシンタックスエレメントoccupancy_byteを使用して符号化されることを示す。
adjacent_child_contextualization_enabled_flagフィールドは、隣接八分木ノード(neighbouring octree nodes)の隣接する子(adjacent children)がビット占有率の文脈化(bitwise occupancy contextualization)のために使用されるか否かを示す。例えば、adjacent_child_contextualization_enabled_flagフィールドの値が1であると、隣接八分木ノード(neighbouring octree nodes)の隣接する子がビット占有率の文脈化のために使用されることを示す。例えば、adjacent_child_contextualization_enabled_flagフィールドの値が0であると、隣接八分木ノード(neighbouring octree nodes)の子(children)がビット占有率の文脈化のために使用されないことを示す。
log2_neighbour_avail_boundaryフィールドは、復号プロセスで用いられる変数NeighbAvailBoundaryの値を示す。例えば、neighbour_context_restriction_flagフィールドの値が1であると、NeighbAvailabilityMaskは1に設定される。例えば、neighbour_context_restriction_flagフィールドの値が0であると、NeighbAvailabilityMaskは1<<log2_neighbour_avail_boundaryに設定される。
log2_intra_pred_max_node_sizeフィールドは、占有イントラー予測資格のある八分木ノードサイズを示す。
log2_trisoup_node_sizeフィールドは、三角形ノードのサイズであって、変数TrisoupNodeSizeを示す(log2_trisoup_node_size specifies the variable TrisoupNodeSize as the size of the triangle nodes)。
geom_scaling_enabled_flagフィールドは、ジオメトリポジションのためのスケーリング過程がジオメトリスライス復号過程の間に適用されるか否かを指示する。例えば、geom_scaling_enabled_flagフィールドの値が1であると、ジオメトリポジションのためのスケーリング過程がジオメトリスライス復号過程の間に適用されることを指示する。geom_scaling_enabled_flagフィールド値が0であると、ジオメトリポジションはスケーリングを求めないことを指示する。
geom_base_qpフィールドは、ジオメトリポジション量子化パラメータ(geometry position quantization parameter)のベース値(base value)を指示する。
gps_implicit_geom_partition_flagフィールドは、黙示的な(implicit)ジオメトリパーティションがそのシーケンス又はスライスに対して有効であるか否かを指示する。例えば、gps_implicit_geom_partition_flagフィールドの値が1であると、黙示的なジオメトリパーティションがそのシーケンス又はスライスに対して有効であることを指示し、0であると、無効であることを指示する(equal to 1 specifies that the implicit geometry partition is enabled for the sequence or slice. gps_implicit_geom_partition_flag equal to 0 specifies that the implicit geometry partition is disabled for the sequence or slice)。仮に、gps_implicit_geom_partition_flagフィールドの値が1であると、以下の2つのフィールド、即ち、gps_max_num_implicit_qtbt_before_otフィールドとgps_min_size_implicit_qtbtフィールドがシグナリングされる。
gps_max_num_implicit_qtbt_before_otフィールドは、OTパーティション前の黙示的なQTとBTパーティションの最大数を示す(specifies the maximal number of implicit QT And BT partitions before OT partitions)。その後、変数Kはps_max_num_implicit_qtbt_before_otフィールドにより以下のように初期化される。
K=gps_max_num_implicit_qtbt_before_ot
gps_min_size_implicit_qtbtフィールドは、黙示的なQTとBTパーティションの最小サイズを示す(specifies the minimal size of implicit QT And BT partitions)。その後、変数Mはgps_min_size_implicit_qtbtフィールドにより以下のように初期化される。
M=gps_min_size_implicit_qtbt
gps_extension_flagフィールドは、gps_extension_data構文構造が該当GPS構文構造に存在するか否かを示す。例えば、gps_extension_flagフィールドの値が1であると、gps_extension_data構文構造が該当GPS構文に存在することを指示する。例えば、gps_extension_flagフィールドの値が0であると、gps_extension_data構文構造が該当GPS構文に存在しないことを指示する。
実施例によるGPSはgps_extension_flagフィールドの値が1であると、gps_extension_data_flagフィールドをさらに含む。
gps_extension_data_flagフィールドはいずれの値であってもよい。その存在と値はデコーダー規格(decoder conformance to profiles)に影響を与えない。
実施例によれば、GPSはgeom_tree_typeフィールドをさらに含む。例えば、geom_tree_typeフィールドの値が0であると、位置情報(又はジオメトリ)が八分木を使用してコーディングされたことを示し、1であると、位置情報(又はジオメトリ)が予測ツリー(predictive tree)を使用してコーディングされたことを示す。
図31は実施例によるスライス関連情報及び/又はバッファー管理関連情報を含むジオメトリパラメータセット(geometry_parameter_set)(GPS)の構文構造の一実施例を示す図である。
実施例によれば、GPSはgeom_slice_segmentation_enabled_flagフィールドを含む。
例えば、geom_slice_segmentation_enabled_flagフィールドの値が1であると、ジオメトリビットストリームが複数のスライスに分けられて伝達されることを示す。この場合、追加条件により並列処理、拡張可能な送信(scalable transmission)、空間拡張性(spatial scalability)が可能である。geom_slice_segmentation_enabled_flagフィールドの値が1であると、ジオメトリビットストリームがそれぞれの単一スライスに伝達されることを示す。
実施例によれば、図31のスライス関連情報及び/又はバッファー管理関連情報は図30のGPSの任意の位置に含まれる。
図32はこの明細書による特質パラメータセット(attribute_parameter_set)(APS)の構文構造の一実施例を示す図である。実施例によるAPSは1つ又はそれ以上のスライスに含まれたポイントクラウドデータの特質情報を符号化する方法に関する情報を含む。
実施例によるAPSはaps_attr_parameter_set_idフィールド、aps_seq_parameter_set_idフィールド、attr_coding_typeフィールド、aps_attr_Initial_qpフィールド、aps_attr_chroma_qp_offsetフィールド、aps_slice_qp_delta_present_flagフィールド及びaps_extension_flagフィールドを含む。
aps_attr_parameter_set_idフィールドは他の構文要素による参照のためのAPSの識別子を示す。
aps_seq_parameter_set_idフィールドはアクティブ(active)SPSに対するsps_seq_parameter_set_idの値を示す。
attr_coding_typeフィールドは特質に対するコーディングタイプを示す。
実施例によれば、attr_coding_typeフィールドの値が0であると、コーディングタイプは予測加重値挙げ(predicting weight lifting)を、1であると、コーディングタイプはRAHTを、2であると、固定加重値挙げ(fix weight lifting)を指示する。
aps_attr_Initial_qpフィールドはAPSを参照する各スライスに対する変数スライス量子化パラメータ(SliceQp)の初期値を示す(specifies the Initial value of the variable SliceQp for each slice referring to the APS)。
aps_attr_chroma_qp_offsetフィールドは、構文aps_attr_initial_qpによってシグナリングされた初期量子化パラメータに対するオフセットを示す。
aps_slice_qp_delta_present_flagフィールドは、ash_attr_qp_delta_luma and ash_attr_qp_delta_chroma構文要素が該当特質スライスヘッダ(ASH)に存在するか否かを示す。例えば、aps_slice_qp_delta_present_flagフィールドの値が1であると、ash_attr_qp_delta_luma and ash_attr_qp_delta_chroma構文要素が該当特質スライスヘッダ(ASH)に存在することを指示する(equal to 1 specifies that the ash_attr_qp_delta_luma and ash_attr_qp_delta_chroma syntax elements are present in the ASH)。例えば、aps_slice_qp_delta_present_flagフィールドの値が0であると、ash_attr_qp_delta_luma and ash_attr_qp_delta_chroma構文要素が該当特質スライスヘッダ(ASH)に存在しないことを指示する。
実施例によるAPSはattr_coding_typeフィールドの値が0又は2であると、即ち、コーディングタイプが予測加重値挙げであるか又は固定加重値挙げであると、lifting_num_pred_nearest_neighbours_minus1フィールド、lifting_search_range_minus1フィールド及びlifting_neighbour_bias[k]フィールドをさらに含む。
lifting_num_pred_nearest_neighbours_minus1フィールドplus1は、予測のために使用される最近接の隣の最大数を示す。実施例によれば、NumPredNearestNeighboursの値はlifting_num_pred_nearest_neighboursと同じく設定される。
lifting_search_range_minus1フィールドplus1は、予測のために使用される最近接の隣を決定し、距離基盤のLOD(distance-based levels of detail)を形成するために使用されたサーチ範囲を示す(lifting_search_range_minus1 plus 1 specifies the search range used to determine nearest neighbours to be used for prediction And to build distance-based levels of detail)。サーチ範囲を明示するための変数LiftingSearchRangeは、lifting_search_range_minus1フィールドの値に1を加えて求めることができる(LiftingSearchRange=lifting_search_range_minus1+1)。
lifting_neighbour_bias[k]フィールドは、最近接の隣の誘導過程の一部として、2つのポイントの間のユークリッド距離の計算においてk番目のコンポーネントを加重するために使用されたバイアスを示す(specifies a bias used to weight the k-th components in the calculation of the euclidean distance between two points as part of the nearest neighbour derivation process)。
実施例によれば、APSはattr_coding_typeフィールドの値が2であると、即ち、コーディングタイプが固定加重値挙げを指示すると、lifting_scalability_enabled_flagフィールドをさらに含む。
lifting_scalability_enabled_flagフィールドは特質復号過程が入力ジオメトリポイントに対して枝切り(pruned)八分木の復号結果を許容するか否かを指示する。例えば、lifting_scalability_enabled_flagフィールドの値が1であると、特質復号過程が入力ジオメトリポイントに対して枝切り八分木の復号結果を許容することを示す(specifies that the attribute decoding process allows the pruned octree decode result for the input geometry points)。仮にlifting_scalability_enabled_flagフィールドの値が0であると、特質復号過程が入力ジオメトリポイントに対して完全な八分木復号結果を求めることを示す(specifies that that the attribute decoding process requires the complete octree decode result for the input geometry points)。
実施例によれば、APSはlifting_scalability_enabled_flagフィールドの値が偽であると、lifting_num_detail_levels_minus1フィールドをさらに含む。
lifting_num_detail_levels_minus1フィールドは特質コーディングのためにLODの数を示す(specifies the number of levels of detail for the attribute coding)。LODの数を明示するための変数LevelDetailCountはlifting_num_detail_levels_minus1フィールドの値に1を加えて求めることができる(LevelDetailCount=lifting_num_detail_levels_minus1+1)。
実施例によれば、APSはlifting_num_detail_levels_minus1フィールドの値が1より大きいと、lifting_lod_regular_sampling_enabled_flagフィールドをさらに含む。
lifting_lod_regular_sampling_enabled_flagフィールドは、LOD(levels of detail)が正規のサンプリング戦略により形成されるか否かを示す。例えば、lifting_lod_regular_sampling_enabled_flagフィールドの値が1であると、LODが正規のサンプリング戦略を使用して形成されることを指示する。例えば、lifting_lod_regular_sampling_enabled_flagフィールドの値が0であると、距離基盤のサンプリング戦略(distance_based sampling strategy)が代わりに使用されること指示する(The lifting_lod_regular_sampling_enabled_flag equal to 1 specifies levels of detail are built by using a regular sampling strategy. The lifting_lod_regular_sampling_enabled_flag equal to 0 specifies that a distance-based sampling strategy is used instead)。
実施例によれば、APSはlifting_scalability_enabled_flagフィールドの値が偽であるとき、lifting_num_detail_levels_minus1フィールドの値だけ繰り返される繰り返し文をさらに含む。このとき、インデックス(idx)は0に初期化され、繰り返し文が行われるたびに1ずつ増加して、インデックス(idx)がlifting_num_detail_levels_minus1フィールドの値より大きくなるまで繰り返し文が繰り返されることを一実施例とする。この繰り返し文はlifting_lod_regular_sampling_enabled_flagフィールドの値が真であると(例えば、1)、lifting_sampling_period_minus2[idx]フィールドを含み、偽であると(例えば、0)、lifting_sampling_distance_squared_scale_minus1 [idx]フィールドを含む。また、idxの値が0ではないと(idx !=0)、lifting_sampling_distance_squared_offset[idx]フィールドをさらに含む。
lifting_sampling_period_minus2 [idx]フィールドplus2は、LOD idxのためのサンプリング周期を示す(specifies the sampling period for the level of detail idx)。
lifting_sampling_distance_squared_scale_minu1 [idx]フィールドplus1は、LOD idxのためのサンプリング距離の二乗を導き出すための倍率を示す(specifies the scale factor for the derivation of the square of the sampling distance for the level of detail idx)。
lifting_sampling_distance_squared_offset[idx]フィールドは、LOD idxのためのサンプリング距離の二乗を導き出すためのオフセットを示す(specifies the offset of the derivation of the square of the sampling distance for the level of detail idx)。
実施例によるAPSはattr_coding_typeフィールドの値が0であると、即ち、コーディングタイプが予測加重値挙げであると、lifting_adaptive_prediction_thresholdフィールド、lifting_intra_lod_prediction_num_layersフィールド、lifting_max_num_direct_predictorsフィールド及びinter_component_prediction_enabled_flagフィールドをさらに含む。
lifting_adaptive_prediction_thresholdフィールドは適応的予測を可能にするためのしきい値を示す(specifies the threshold to enable adaptive prediction)。実施例によれば、適応的予測機選択モードを転換するためにしきい値を明示する変数AdaptivePredictionThresholdは、lifting_adaptive_prediction_thresholdフィールドの値と同じく設定される(AdaptivePredictionThreshold=lifting_adaptive_prediction_threshold)。
lifting_intra_lod_prediction_num_layersフィールドは、同じLODレイヤー内の復号されたポイントがターゲットポイントの予測値を生成するために参照できるLODレイヤーの数を示す(specifies number of LOD layer where decoded points in the same LOD layer could be referred to generate prediction value of target point)。例えば、lifting_intra_lod_prediction_num_layersフィールドの値がLevelDetailCountの値であると、ターゲットポイントは全てのLODレイヤーのための同じLODレイヤー内の復号されたポイントを参照できることを示す(The lifting_intra_lod_prediction_num_layers field equal to LevelDetailCount indicates that target point could refer decoded points in the same LOD layer for all LOD layers)。例えば、lifting_intra_lod_prediction_num_layersフィールドの値が0であると、ターゲットポイントは任意のLODレイヤーのための同じLODレイヤー内の復号されたポイントを参照できないことを示す(The lifting_intra_lod_prediction_num_layers field equal to 0 indicates that target point could not refer decoded points in the same LOD layer for any LOD layers)。lifting_max_num_direct_predictorsフィールドは直接予測(direct prediction)のために使用される予測機の最大数を示す。lifting_max_num_direct_predictorsフィールドの値は0からLevelDetailCountの範囲にある。
inter_component_prediction_enabled_flagフィールドはマルチコンポーネント特質のprimary componentがnon-primary componentの再構成(reconstructed)値を予測するために使用されるか否かを示す。例えば、inter_component_prediction_enabled_flagフィールドの値が1であると、マルチコンポーネント特質のprimary componentがnon-Primary componentの再構成値を予測するために使用されることを示す(specifies that the Primary component of a multi component attribute is used to predict the reconstructed value of non-Primary components)。仮に、inter_component_prediction_enabled_flagフィールドの値が0であると、全ての特質コンポーネントが独立して再構成されることを示す(specifies that all attribute components are reconstructed independently)。
実施例によれば、APSはattr_coding_typeフィールドの値が1であると、即ち、特質コーディングタイプがRAHTであると、raht_prediction_enabled_flagフィールドをさらに含む。
raht_prediction_enabled_flagフィールドは隣接ポイントからの変換重量予測がRAHT復号過程で有効であるか否かを示す。例えば、raht_prediction_enabled_flagフィールドの値が1であると、隣接ポイントからの変換重量予測がRAHT復号過程で有効になり、0であると、無効であることを示す。
実施例によれば、APSはraht_prediction_enabled_flagフィールドの値が真であると、raht_prediction_threshold0フィールドとraht_prediction_threshold1フィールドをさらに含む。
raht_prediction_threshold0フィールドは隣接ポイントからの変換重量予測を終了するためのしきい値を示す。
raht_prediction_threshold1フィールドは隣接ポイントからの変換重量予測をスキップするためのしきい値を示す。
aps_extension_flagフィールドは、aps_extension_data構文構造が該当APS構文構造に存在するか否かを示す。例えば、aps_extension_flagフィールドの値が1であると、aps_extension_data構文構造が該当APS構文構造に存在することを指示する。例えば、aps_extension_flagフィールドの値が0であると、aps_extension_data構文構造が該当APS構文構造に存在しないことを指示する。
実施例によるAPSはaps_extension_flagフィールドの値が1であると、aps_extension_data_flagフィールドをさらに含む。
aps_extension_data_flagフィールドはいずれの値であってもよい。その存在と値はデコーダー規格に影響を与えない。
実施例によるAPSはさらにLoD基盤の特質圧縮に関連する情報を含む。
図33は実施例によるスライス関連情報及び/又はバッファー管理関連情報を含む特質パラメータセット(attribute_parameter_set)(APS)の構文構造の一実施例を示す図である。
実施例によれば、APSはattr_slice_segmentation_enabled_flagフィールドを含む。
例えば、attr_slice_segmentation_enabled_flagフィールドの値が1であると、特質ビットストリームが複数のスライスに分けられて伝達されることを示す。この場合、追加条件により並列処理、拡張可能な送信(scalable Transmission)、空間拡張性(spatial scalability)が可能である。attr_slice_segmentation_enabled_flagフィールドの値が1であると、特質ビットストリームがそれぞれの単一スライスに伝達されることを示す。
実施例によれば、図33のセグメントされた(分離された)スライスに関する情報及び/又はダイレクトコーディングに関連する情報は図32のAPSの任意の位置に含まれる。
図34はこの明細書によるジオメトリスライスビットストリームの構文構造の一実施例を示す図である。
実施例によるジオメトリスライスビットストリーム(geometry_slice_bitstream)は、ジオメトリスライスヘッダー(geometry_slice_header)とジオメトリスライスデータ(geometry_slice_data)を含む。実施例によれば、ジオメトリスライスビットストリームはジオメトリデータユニット、ジオメトリスライスヘッダーはジオメトリデータユニットヘッダー、ジオメトリスライスデータはジオメトリデータユニットデータとも称する。
図35はこの明細書によるジオメトリスライスヘッダー(geometry_slice_header)の構文構造の一実施例を示す図である。
実施例による送信装置が送信するビットストリーム(又は受信装置が受信するビットストリーム)は1つ以上のスライスを含む。それぞれのスライスはジオメトリスライス及び特質スライスを含む。ジオメトリスライスはジオメトリスライスヘッダー(GSH,Geometry Slice Header)を含む。特質スライスは特質スライスヘッダー(ASH,Attribute Slice Header)を含む。
実施例によるジオメトリスライスヘッダー(geometry_slice_header)はgsh_geometry_parameter_set_idフィールド、gsh_tile_idフィールド、gsh_slice_idフィールド、frame_idxフィールド、gsh_num_pointsフィールド及びbyte_alignmentフィールドを含む。
実施例によるジオメトリスライスヘッダー(geometry_slice_header)は、ジオメトリパラメータセット(GPS)に含まれたgps_box_present_flagフィールドの値が真であり(例えば、1)、gps_gsh_box_log2_scale_present_flagフィールドの値が真であると(例えば、1)、gsh_box_log2_scaleフィールド、gsh_box_origin_xフィールド、gsh_box_origin_yフィールド及びgsh_box_origin_zフィールドをさらに含む。
gsh_geometry_parameter_set_idフィールドは、アクティブGPSのgps_geom_parameter_set_idの値を示す(gsh_geometry_parameter_set_id specifies the value of the gps_geom_parameter_set_id of the active GPS)。
gsh_tile_idフィールドは該当ジオメトリスライスヘッダー(GSH)により参照される該当タイルの識別子を示す。
gsh_slice_idフィールドは他の構文要素による参照のために該当スライスの識別子を示す(identifies the slice header for reference by other syntax elements)。
frame_idxフィールドは概念上のフレーム数カウンター(notional frame number counter)のlog2_max_frame_idx+1 least significant bitsを示す。異なるフレームインデックス値を有する連続するスライスは、異なる出力ポイントクラウドフレームを形成する(Consecutive slices with differing valueS of frame_idx form parts of different output point cloud frames)。介在するフレーム境界マーカーデータユニットなしに同じフレームインデックス値を有する連続するスライスは、同じ出力ポイントクラウドフレームを形成する(Consecutive slices with identical values of frame_idx without an intervening frame boundary marker data unit form parts of the same output point cloud frame)。
gsh_num_pointsフィールドは該当スライス内のコーディングされたポイントの最大数を示す。実施例によれば、gsh_num_pointsフィールド値がスライス内の復号されたポイント数より大きいか又は等しいことが、ビットストリーム一致の要求事項である(It is a requirement of bitstream conformance that gsh_num_points is greater than or equal to the number of decoded pointS in the slice)。
gsh_box_log2_scaleフィールドは該当スライスのためのバウンディングボックスオリジンの倍率を示す。
gsh_box_origin_xフィールドはgsh_box_log2_scaleフィールドの値によりスケーリングされたバウンディングボックスオリジンのx値を示す。
gsh_box_origin_yフィールドはgsh_box_log2_scaleフィールドの値によりスケーリングされたバウンディングボックスオリジンのy値を示す。
gsh_box_origin_zフィールドはgsh_box_log2_scaleフィールドの値によりスケーリングされたバウンディングボックスオリジンのz値を示す。
このとき、変数slice_origin_x、slice_origin_y及びslice_origin_zは以下のように導き出される(抽出される)。
仮にgps_gsh_box_log2_scale_present_flagフィールドの値が0であると、originScaleはgsh_box_log2_scaleになる。
また、gps_gsh_box_log2_scale_present_flagフィールドの値が1であると、originScaleはgps_gsh_box_log2_scaleになる。
また、gps_box_present_flagフィールドの値が0であると、変数slice_origin_x、slice_origin_y及びslice_origin_zの値は0になる。
仮に、gps_box_present_flagフィールドの値が1であると、変数slice_origin_x、slice_origin_y及びslice_origin_zに対して以下の式が適用される。
slice_origin_x=gsh_box_origin_x<<originScale
slice_origin_y=gsh_box_origin_y<<originScale
slice_origin_z=gsh_box_origin_z<<originScale
実施例によるジオメトリスライスヘッダー(geometry_slice_header)は、gps_implicit_geom_partition_flagフィールドの値が真であると(即ち、0であると)、gsh_log2_max_nodesize_xフィールド、gsh_log2_max_nodesize_y_minus_xフィールド及びgsh_log2_max_nodesize_z_minus_yフィールドをさらに含み、gps_implicit_geom_partition_flagフィールドの値が偽であると(即ち、1であると)、gsh_log2_max_nodesizeフィールドをさらに含む。
gsh_log2_max_nodesize_xフィールドはx次元においてバウンディングボックスサイズ、即ち、復号過程で使用されるMaxNodesizeXLog2を以下のように示す(specifies the bounding box size in the x dimension, i.e., MaxNodesizeXLog2 that is used in the decoding process)。
MaxNodesizeXLog2=gsh_log2_max_nodesize_x
MaxNodeSizeX=1<<MaxNodesizeXLog2
gsh_log2_max_nodesize_y_minus_xフィールドはy次元においてバウンディングボックスサイズ、即ち、復号過程で使用されるMaxNodesizeYLog2を以下のように示す(specifies the bounding box size in the y dimension, i.e., MaxNodesizeYLog2 that is used in the decoding process)。
MaxNodeSizeYLog2=gsh_log2_max_nodesize_y_minus_x+MaxNodesizeXLog2.
MaxNodeSizeY=1<<MaxNodeSizeYLog2.
gsh_log2_max_nodesize_z_minus_yフィールドはz次元においてバウンディングボックスサイズ、即ち、復号過程で使用されるMaxNodesizeZLog2を以下のように示す(specifies the bounding box size in the z dimension, i.e., MaxNodesizeZLog2 that is used in the decoding process)。
MaxNodeSizeZLog2=gsh_log2_max_nodesize_z_minus_y+MaxNodeSizeYLog2
MaxNodeSizeZ=1<<MaxNodeSizeZLog2
gsh_log2_max_nodesizeフィールドはgps_implicit_geom_partition_flagフィールドの値が1であると、以下のように求めされる。
gsh_log2_max_nodesize=max{MaxNodesizeXLog2,MaxNodeSizeYLog2,MaxNodeSizeZLog2}
gsh_log2_max_nodesizeフィールドはgps_implicit_geom_partition_flagフィールドの値が0であると、ルートジオメトリ八分木ノードのサイズを示す。
このとき、変数MaxNodeSizeとMaxGeometryOctreeDepthは以下のように求めされる。
MaxNodeSize=1<<gsh_log2_max_nodesize
MaxGeometryOctreeDepth=gsh_log2_max_nodesize?log2_trisoup_node_size
実施例によるジオメトリスライスヘッダー(geometry_slice_header)はgeom_scaling_enabled_flagフィールドの値が真であると、geom_slice_qp_offsetフィールドとgeom_octree_qp_offsets_enabled_flagフィールドをさらに含む。
geom_slice_qp_offsetフィールドはベースジオメトリ量子化パラメータに対するオフセットを示す(specifies an offset to the base geometry quantisation parameter geom_base_qp)。
geom_octree_qp_offsets_enabled_flagフィールドは、geom_octree_qp_offsets_depthフィールドが該当ジオメトリスライスヘッダーに存在するか否かを示す。例えば、geom_octree_qp_offsets_enabled_flagフィールドの値が1であると、geom_octree_qp_offsets_depthフィールドが該当ジオメトリスライスヘッダーに存在し、0であると、存在しないことを示す。
geom_octree_qp_offsets_depthフィールドはジオメトリ八分木の深さを示す。
図36は実施例によるスライス関連情報及び/又はバッファー管理関連情報を含むジオメトリデータユニットヘッダー(又はジオメトリスライスヘッダーという)の構文構造の一実施例を示す図である。
実施例によるジオメトリデータユニットヘッダーはslice_idフィールドとdependent_neighbour_enabled_flagフィールドを含む。
slice_idフィールドは該当データユニット(即ち、スライス)を識別するための識別子を示す。即ち、slice_idフィールドはスライス又はデータユニットを区分するための指示子を示し、スライスレイヤーに属するデータユニット(又はスライスという)に対する指示子を伝達する。又は、slice_idフィールドは他の構文要素による参照のために該当スライスヘッダーを識別する。
例えば、dependent_neighbour_enabled_flagフィールドの値が1であると、コーディング過程でスライス外部の隣接情報が使用されることを示す。dependent_neighbour_enabled_flagフィールドの値が0であると、スライス外部の隣接情報を使用せず、内部情報のみで隣接関係性を推定することを示す。
実施例によるジオメトリデータユニットヘッダーはsps_entropy_continuation_enabled_flagフィールドの値が偽であると(即ち、0)、gsh_entropy_continuation_flagフィールドをさらに含み、gsh_entropy_continuation_flagフィールドの値が真であると(即ち、1)、gsh_prev_slice_idフィールドをさらに含む。
sps_entropy_continuation_enabled_flagフィールドはSPSに含まれ、このフィールドの値が0であると、各スライスの初期エントロピーコンテキスト状態が独立的であることを明示する。
例えば、gsh_entropy_continuation_flagフィールドの値が1であると、現在ジオメトリデータユニットのエントロピーコーディングで使用されたパース状態は、以前のジオメトリデータユニットの最後のパース状態によって変わることを指示する。また、gsh_entropy_continuation_flagフィールドの値が1であると、現在ジオメトリデータに関連する特質データユニットのエントロピーコーディングで使用されたパース状態は、以前の特質データユニットの最後のパース状態によって変わることを指示する(gsh_entropy_continuation_flag field equal to 1 indicates that the parsing state used in the entropy coding of the current geometry data unit is dependent upon the final parsing state of the previous geometry data unit and that the parsing state used in the entropy coding of the attribute data unit that refers to the current geometry data unit is dependent upon the final parsing state of the previous attribute data unit)。
例えば、gsh_entropy_continuation_flagフィールドの値が0であると、現在ジオメトリデータユニット、そして現在ジオメトリデータユニットに関連する特質データユニットのエントロピーコーディングで使用されたパース状態が任意の以前データユニットによって異ならないことを指示する(indicates that the parsing state used in the entropy coding of the current geometry data unit and attribute data unit that refers to the current geometry data unit do not depend upon any previous data unit)。実施例においては、現在ジオメトリデータユニットがポイントクラウドフレーム内の1番目のデータユニットであると、gsh_entropy_continuation_flagフィールドの値は0であることがビットストリーム適合性の要求条件である(It is a requirement of bitsream conformance that gsh_entropy_continuation_flag is equal to 0 when the current geometry data unit is the first data unit in a point cloud frame)。
gsh_prev_slice_idフィールドは、ビットストリームの順序において先行(以前)ジオメトリデータユニットのgsh_slice_idフィールド(又はslice_idフィールド)の値を示す(gsh_prev_slice_id is the value of gsh_slice_id of the preceeding geometry data unit in bitstream order)。
実施例によるジオメトリデータユニットヘッダーは、geom_slice_segmentation_enabled_flagフィールドの値が1であると、context_reuse_flagフィールドをさらに含み、context_reuse_flagフィールドの値が1であると、num_context_reuse_minus1フィールドをさらに含む。
geom_slice_segmentation_enabled_flagフィールドの値が1であると、ジオメトリビットストリームが複数のスライスに分けられて伝達されることを示す。
例えば、context_reuse_flagフィールドの値が1であると、現スライスのコンテキストが少なくとも1つの次のスライスで使用されることを示す。実施例においては、受信装置でコンテキストバッファー制御を使用する場合、少なくとも1つの次のスライスのために現スライスのコンテキストをコンテキストバッファーに格納することができる。context_reuse_flagフィールドの値が0であると、現スライスのコンテキストが次のスライスのために使用されないことを示す。
num_context_reuse_minus1フィールドに1を加えると、現スライスのコンテキストが次のスライスに使用される回数を示す。
例えば、受信装置でコンテキストバッファー制御を使用する場合、カウンター(コンテキスト参照カウンターという)によりnum_context_reuse_minus1フィールド+1だけ参照された後、コンテキストバッファーで現スライスのコンテキストを削除するように使用することができる。
実施例によるジオメトリデータユニットヘッダーはnum_context_reuse_minus1フィールドの値だけ繰り返される繰り返し文を含む。このとき、iは0に初期化され、繰り返し文が行われるたびに1ずつ増加して、i値がnum_context_reuse_minus1フィールドの値になるまで繰り返し文が繰り返されることを一実施例とする。この繰り返し文はsubsequent_slice_idフィールドを含む。
subsequent_slice_idフィールドは現在コンテキストを使用するi番目の次のスライスを識別するための識別子を示す。即ち、subsequent_slice_idフィールドは現スライスのコンテキストを使用する次のスライスを示すために使用される。
例えば、受信装置でコンテキストバッファー制御を使用し、subsequent_slice_idフィールドにより特定されたスライス(即ち、次のスライス)が入る場合、以下のようにカウンター(又はコンテキスト参照カウンターという)を減らすか、又はカウンターによりnum_context_reuse_minus1+1だけ参照した後、コンテキストバッファーで現コンテキストを削除するように使用することができる。即ち、次のスライスで使用するたびにカウンター値を1ずつ減らし、カウンター値が0になると、コンテキストバッファーで該当コンテキストを削除する。
NumContextReuse=num_context_reuse_minus1+1
If(subsequent_slice_id==slice_id)
NumContextReuse=NumContextReuse-1
実施例によるジオメトリデータユニットヘッダーは、dependent_neighbour_enabled_flagフィールドの値が1であると、num_neighbour_sliceフィールドをさらに含み、dependent_neighbour_enabled_flagフィールドの値が0であると、neighbour_occupancy_typeフィールドをさらに含む。
num_neighbour_sliceフィールドは、スライス外部のノード情報を参照するとき、該当ノードが含まれたスライスの数を示す。
neighbour_occupancy_typeフィールドはスライス外部のノード情報を参照しないとき、該当ノードに対してどのような仮定をおくかについて定義する。例えば、neighbour_occupancy_typeフィールドの値が0であると、該当隣接ノードがない場合、1は全て占有された場合、2は非占有の場合、そして3は中心ノードを基準として対称となるスライス内のノードの占有情報を使用する場合を示す。
実施例によるジオメトリデータユニットヘッダーはnum_neighbour_sliceフィールドの値だけ繰り返される繰り返し文を含む。このとき、iは0に初期化され、繰り返し文が行われるたびに1ずつ増加して、i値がnum_neighbour_sliceフィールドの値になるまで繰り返し文が繰り返されることを一実施例とする。この繰り返し文はneighbour_slice_idフィールドを含む。
neighbour_slice_idフィールドはスライス外部のノード情報を参照するとき、該当ノードが含まれたi番目のスライスを識別するための識別子を示す。
実施例によれば、図36のスライス関連情報及び/又はバッファー管理関連情報は図35のジオメトリスライスヘッダー(即ち、ジオメトリデータユニットヘッダー)の任意の位置に含まれる。
図37はこの明細書によるジオメトリスライスデータ(geometry_slice_data)の構文構造の一実施例を示す。実施例によるジオメトリスライスデータ(geometry_slice_data)は該当スライス(又はデータユニット)に属するジオメトリビットストリームを送信する。
実施例によるジオメトリスライスデータ(geometry_slice_data)は、MaxGeometryOctreeDepthの値だけ繰り返される第1繰り返し文を含む。このとき、深さは0に初期化され、繰り返し文が行われるたびに1ずつ増加し、深さがMaxGeometryOctreeDepthの値になるまで第1繰り返し文が繰り返されることを一実施例とする。第1繰り返し文はNumNodesAtDepthの値だけ繰り返される第2繰り返し文を含む。このとき、nodeidxは0に初期化され、繰り返し文が行われるたびに1ずつ増加し、nodeidxがNumNodesAtDepthの値になるまで第2繰り返し文が繰り返されることを一実施例とする。第2繰り返し文はxN=NodeX[depth][nodeidx]、yN=NodeY[depth][nodeidx]、zN=NodeZ[depth][nodeidx]、geometry_node(depth,nodeidx,xN,yN,zN)を含む。MaxGeometryOctreeDepthはジオメトリ八分木深さの最大値を示し、NumNodesAtDepth[depth]は該当深さで復号されるノードの数を示す。変数NodeX[depth][nodeidx]、NodeY[depth][nodeidx]、NodeZ[depth][nodeidx]は所定の深さで復号順にidx-thノードのx,y,z座標を示す。geometry_node(depth,nodeidx,xN,yN,zN)により該当深さの該当ノードのジオメトリビットストリームを送信する。
実施例によるジオメトリスライスデータ(geometry_slice_data)はlog2_trisoup_node_sizeフィールドの値が0より大きいと、geometry_trisoup_dataをさらに含む。即ち、三角形ノードのサイズが0より大きいと、geometry_trisoup_dataによりtrisoupジオメトリ符号化されたジオメトリビットストリームを送信する。
図38はこの明細書による特質スライスビットストリームの構文構造の一実施例を示す図である。
実施例による特質スライスビットストリーム(attribute_slice_bitstream)は特質スライスヘッダー(attribute_slice_header)と特質スライスデータ(attribute_slice_data)を含む。実施例によれば、特質スライスビットストリームは特質データユニット、特質スライスヘッダーは特質データユニットヘッダー、特質スライスデータは特質データユニットデータとも称される。
図39はこの明細書による特質スライスヘッダー(attribute_slice_header)の構文構造の一実施例を示す。
実施例による特質スライスヘッダー(attribute_slice_header)はash_attr_parameter_set_idフィールド、ash_attr_sps_attr_idxフィールド、ash_attr_geom_slice_idフィールド、ash_attr_layer_qp_delta_present_flagフィールド及びash_attr_region_qp_delta_present_flagフィールドを含む。
実施例による特質スライスヘッダー(attribute_slice_header)は特質パラメータセット(APS)のaps_slice_qp_delta_present_flagフィールドの値が真であると(例えば、1)、ash_attr_qp_delta_lumaフィールドをさらに含み、attribute_dimension_minus1 [ash_attr_sps_attr_idx]フィールドの値が0より大きいと、特質スライスヘッダーはash_attr_qp_delta_chromaフィールドをさらに含む。
ash_attr_parameter_set_idフィールドは現在アクティブAPSのaps_attr_parameter_set_idフィールドの値を示す。
ash_attr_sps_attr_idxフィールドは現在アクティブSPS内の特質セットを示す。
ash_attr_geom_slice_idフィールドは現在ジオメトリスライスヘッダーのgsh_slice_idフィールドの値を示す。
ash_attr_qp_delta_lumaフィールドはアクティブ特質パラメータセット内の初期スライスqpから導き出されたルマデルタ量子化パラメータ(qp)を示す。
ash_attr_qp_delta_chromaフィールドはアクティブ特質パラメータセット内の初期スライスqpから導き出されたクロムデルタ量子化パラメータ(qp)を示す。
このとき、変数InitialSliceQpYとInitialSliceQpCは以下のように導き出される。
InitialSliceQpY=aps_attrattr_Initial_qp+ash_attr_qp_delta_luma
InitialSliceQpC=aps_attrattr_Initial_qp+aps_attr_chroma_qp_offset+ash_attr_qp_delta_chroma
ash_attr_layer_qp_delta_present_flagフィールドは各レイヤーごとにash_attr_layer_qp_delta_lumaフィールドとash_attr_layer_qp_delta_chromaフィールドが該当特質スライスヘッダー(ASH)に存在するか否かを示す。例えば、ash_attr_layer_qp_delta_present_flagフィールドの値が1であると、ash_attr_layer_qp_delta_lumaフィールドとash_attr_layer_qp_delta_chromaフィールドが該当特質スライスヘッダーに存在し、0であると、存在しないことを示す。
ash_attr_layer_qp_delta_present_flagフィールドの値が真であると、特質スライスヘッダーはash_attr_num_layer_qp_minus1フィールドをさらに含む。
ash_attr_num_layer_qp_minus1フィールドplus1はash_attr_qp_delta_lumaフィールドとash_attr_qp_delta_chromaフィールドがシグナリングされるレイヤーの数を示す。ash_attr_num_layer_qpフィールドがシグナリングされないと、ash_attr_num_layer_qpフィールドの値は0になる。実施例によれば、レイヤーの数を明示するNumLayerQpはash_attr_num_layer_qp_minus1フィールドの値に0を加えて求められる(NumLayerQp=ash_attr_num_layer_qp_minus1+1)。
実施例によれば、ジオメトリスライスヘッダーはash_attr_layer_qp_delta_present_flagフィールドの値が真であると、NumLayerQpの値だけ繰り返し文を含む。このとき、iは0に初期化され、繰り返し文が行われるたびに1ずつ増加して、i値がNumLayerQpの値になるまで繰り返し文が繰り返されることを一実施例とする。この繰り返し文はash_attr_layer_qp_delta_luma[i]フィールドを含む。また、繰り返し文はattribute_dimension_minus1[ash_attr_sps_attr_idx]フィールドの値が0より大きいと、ash_attr_layer_qp_delta_chroma[i]フィールドをさらに含む。
ash_attr_layer_qp_delta_lumaフィールドは各レイヤーにおいてInitialSliceQpYからルマデルタ量子化パラメータ(qp)を示す。
ash_attr_layer_qp_delta_chromaフィールドは各レイヤーにおいてInitialSliceQpCからクロムデルタ量子化パラメータ(qp)を示す。
The variables SliceQpY[i] and SliceQpC[i] with i=0…1は以下のように導き出される。
for (i=0;i<NumLayerQPNumQPLayer;i++){
SliceQpY[i]=InitialSliceQpY+ash_attr_layer_qp_delta_luma[i]
SliceQpC[i]=InitialSliceQpC+ash_attr_layer_qp_delta_chroma[i]
実施例による特質スライスヘッダー(attribute_slice_header)はash_attr_region_qp_delta_present_flagフィールドの値が1であると、ash_attr_region_qp_delta、領域バウンディングボックスオリジン(region bounding box origin)、そしてサイズが現在特質スライスヘッダーに存在することを指示する。仮に、ash_attr_region_qp_delta_present_flagフィールドの値が0であると、ash_attr_region_qp_delta、region bounding box origin及びサイズが現在特質スライスヘッダーに存在しないことを指示する。
即ち、ash_attr_layer_qp_delta_present_flagフィールドの値が1であると、特質スライスヘッダーはash_attr_qp_region_box_origin_xフィールド、ash_attr_qp_region_box_origin_yフィールド、ash_attr_qp_region_box_origin_zフィールド、ash_attr_qp_region_box_widthフィールド、ash_attr_qp_region_box_heightフィールド、ash_attr_qp_region_box_depthフィールド及びash_attr_region_qp_deltaフィールドをさらに含む。
ash_attr_qp_region_box_origin_xフィールドはslice_origin_xに関連するregion bounding boxのxオフセットを指示する(indicates the x offset of the region bounding box relative to slice_origin_x)。
ash_attr_qp_region_box_origin_yフィールドはslice_origin_yに関連するregion bounding boxのyオフセットを指示する(indicates the y offset of the region bounding box relative to slice_origin_y)。
ash_attr_qp_region_box_origin_zフィールドはslice_origin_zに関連するregion bounding boxのzオフセットを指示する(indicates the z offset of the region bounding box relative to slice_origin_z)。
ash_attr_qp_region_box_size_widthフィールドはregion bounding boxの幅を指示する。
ash_attr_qp_region_box_size_heightフィールドはregion bounding boxの高さを指示する。
ash_attr_qp_region_box_size_depthフィールドはregion bounding boxの深さを指示する。
ash_attr_region_qp_deltaフィールドはash_attr_qp_region_boxフィールドにより指定された領域のSliceQpY[i] and SliceQpC[i]からdelta qpを示す。
実施例によれば、領域ボックスデルタ量子化パラメータ(region box delta quantization parameter)を明示する変数RegionboxDeltaQpは、ash_attr_region_qp_deltaフィールドの値と同じく設定される(RegionboxDeltaQp=ash_attr_region_qp_delta)。
図40は実施例によるスライス関連情報及び/又はバッファー管理関連情報を含む特質データユニットヘッダー(又は特質スライスヘッダーという)の構文構造の一実施例を示す。
実施例による特質データユニットヘッダーはslice_idフィールドとdependent_neighbour_enabled_flagフィールドを含む。
slice_idフィールドは該当データユニット(即ち、スライス)を識別するための識別子を示す。即ち、slice_idフィールドはスライス又はデータユニットを区分するための指示子を示し、スライスレイヤーに属するデータユニット(又はスライスという)に対する指示子を伝達することができる。又はslice_idフィールドは他の構文要素による参照のために該当スライスヘッダーを識別することができる。
例えば、dependent_neighbour_enabled_flagフィールドの値が1であると、コーディング過程でスライス外部の隣接情報が使用されることを示す。dependent_neighbour_enabled_flagフィールドの値が0であると、スライス外部の隣接情報を使用せず、内部情報のみで隣接関係性を推定することを示す。
実施例による特質データユニットヘッダーはsps_entropy_continuation_enabled_flagフィールドの値が偽であると(即ち、0)、ash_continuation_flagフィールドをさらに含み、ash_entropy_continuation_flagフィールドの値が真であると(即ち、1)、ash_prev_slice_idフィールドをさらに含む。
sps_entropy_continuation_enabled_flagフィールドはSPSに含まれ、このフィールドの値が0であると、各スライスの初期エントロピーコンテキスト状態は独立していることを明示する。
例えば、ash_entropy_continuation_flagフィールドの値が1であると、現在特質データユニットのエントロピーコーディングで使用されたパース状態は以前特質データユニットの最後のパース状態によって変わることを指示する。また、ash_entropy_continuation_flagフィールドの値が0であると、現在特質データユニットのエントロピーコーディングで使用されたパース状態は任意の以前データユニットによって変わらないことを指示する。実施例においては、現在特質データユニットがポイントクラウドフレーム内の1番目のデータユニットであると、ash_entropy_continuation_flagフィールドの値は0であることがビットストリーム適合性の要求条件である。
ash_prev_slice_idフィールドは、ビットストリーム順において先行(以前)の特質データユニットのash_slice_idフィールド(又はslice_idフィールド)の値を示す。
実施例による特質データユニットヘッダーは、attr_slice_segmentation_enabled_flagフィールドの値が1であると、context_reuse_flagフィールドをさらに含み、context_reuse_flagフィールドの値が1であると、num_context_reuse_minus1フィールドをさらに含む。
attr_slice_segmentation_enabled_flagフィールドの値が1であると、特質ビットストリームが複数のスライスに分けられて伝達されることを示す。
例えば、context_reuse_flagフィールドの値が1であると、現スライスのコンテキストが少なくとも1つの次のスライスで使用されることを示す。実施例においては、受信装置でコンテキストバッファー制御を使用する場合、少なくとも1つの次のスライスのために現スライスのコンテキストをコンテキストバッファーに格納することができる。context_reuse_flagフィールドの値が0であると、現スライスのコンテキストが次のスライスのために使用されないことを示す。
num_context_reuse_minus1フィールドに1を加えると、現スライスのコンテキストが次のスライスに使用される回数を示す。
例えば、受信装置でコンテキストバッファー制御を使用する場合、カウンター(コンテキスト参照カウンターという)によりnum_context_reuse_minus1フィールド+1だけ参照された後、コンテキストバッファーで現スライスのコンテキストを削除するように使用することができる。
実施例による特質データユニットヘッダーはnum_context_reuse_minus1フィールドの値だけ繰り返される繰り返し文を含む。このとき、iは0に初期化され、繰り返し文が行われるたびに1ずつ増加し、i値がnum_context_reuse_minus1フィールドの値になるまで繰り返し文が繰り返されることを一実施例とする。この繰り返し文はsubsequent_slice_idフィールドを含む。
subsequent_slice_idフィールドは現在コンテキストを使用するi番目の次のスライスを識別するための識別子を示す。即ち、subsequent_slice_idフィールドは現スライスのコンテキストを使用する次のスライスを示すために使用される。
例えば、受信装置でコンテキストバッファー制御を使用し、subsequent_slice_idフィールドにより特定されたスライス(即ち、次のスライス)が入る場合、以下のようにカウンター(又はコンテキスト参照カウンターという)を減らすか又はカウンターによりnum_context_reuse_minus1+1だけ参照された後、コンテキストバッファーで現コンテキストを削除するように使用することができる。
NumContextReuse=num_context_reuse_minus1+1
If(subsequent_slice_id==slice_id)
NumContextReuse=NumContextReuse-1
実施例による特質データユニットヘッダーはdependent_neighbour_enabled_flagフィールドの値が1であると、num_neighbour_sliceフィールドをさらに含み、dependent_neighbour_enabled_flagフィールドの値が0であると、neighbour_occupancy_typeフィールドをさらに含む。
num_neighbour_sliceフィールドはスライス外部のノード情報を参照するとき、該当ノードが含まれたスライスの数を示す。
neighbour_occupancy_typeフィールドはスライス外部のノード情報を参照しないとき、該当ノードに対してどのような仮定をおくかについて定義する。例えば、neighbour_occupancy_typeフィールドの値が0であると、該当隣接ノードがない場合、1は全て占有された場合、2は非-占有された場合、そして3は中心ノードに基づいて対称するスライス内のノードの占有情報を使用する場合を示す。
実施例による特質データユニットヘッダーはnum_neighbour_sliceフィールドの値だけ繰り返される繰り返し文を含む。このとき、iは0に初期化され、繰り返し文が行われるたびに1ずつ増加し、i値がnum_neighbour_sliceフィールドの値になるまで繰り返し文が繰り返されることを一実施例とする。この繰り返し文はneighbour_slice_idフィールドを含む。
neighbour_slice_idフィールドはスライス外部のノード情報を参照するとき、該当ノードが含まれたi番目のスライスを識別するための識別子を示す。
実施例によれば、図40のスライス関連情報及び/又はバッファー管理関連情報は図39の特質スライスヘッダー(即ち、特質データユニットヘッダー)の任意の位置に含まれる。
図41はこの明細書による特質スライスデータ(attribute_slice_data)の構文構造の一実施例を示す。実施例による特質スライスデータ(attribute_slice_data)は該当スライスに属する特質ビットストリームを送信する。実施例による特質スライスデータはポイントクラウドの一部又は全体に関連して特質又は特質に関連するデータを含む。
図41の特質スライスデータ(attribute_slice_data)において、dimension=attribute_dimension[ash_attr_sps_attr_idx]は、該当特質スライスヘッダ内のash_attr_sps_attr_idxフィールドにより識別される特質セットの特質次元(attribute_dimension)を示す。特質次元(attribute_dimension)は特質を構成するコンポーネントの数を意味する。実施例による特質は反射率、色相などを示す。よって、特質が有するコンポーネントの数は異なる。例えば、色相に対応する特質は3つの色相コンポーネント(例えば、RGB)を有する。よって、反射率に対応する特質はモノ次元特質(mono-dimensional attribute)となり、色相に対応する特質は3次元特質(three-dimensional attribute)となる。
実施例による特質は次元(demension)単位で特質符号化される。
例えば、反射率に対応する特質と色相に対応する特質はそれぞれ特質符号化される。また実施例による特質は次元に関係なく一緒に特質符号化される。例えば、反射率に対応する特質及び色相に対応する特質は一緒に特質符号化される。
図41において、zerorunは残余特質値(residual)前の0の数を示す(zerorun specifies the number of 0 prior to residual)。
また図41において、iはその特質のi番目のポイント値を意味し、attr_coding_typeフィールドとlifting_adaptive_prediction_thresholdフィールドはAPSにシグナリングされることを一実施例とする。
また図41の変数MaxNumPredictorsはポイントクラウドデータ復号過程で使用される変数であり、APSにシグナリングされたlifting_adaptive_prediction_thresholdフィールド値に基づいて以下のように得られる。
MaxNumPredictors=lifting_max_num_direct_predicotsフィールド+1
ここで、lifting_max_num_direct_predictorsフィールドはダイレクト予測のために使用される予測機の最大数を示す。
実施例によるpredIndex[i]はその特質のi番目のポイント値を復号するための予測機インデックス(predictor index又はprediction modeという)を示す(specifies the predictor index to decode the i-th point value of the attribute)。predIndex[i]の値は0からlifting_max_num_direct_predictorsフィールドの値までの範囲にある。
図42は実施例によるポイントクラウドデータ送信装置構造を示す。
実施例による送信装置は、図1の送信装置10000、ポイントクラウドビデオエンコーダー10002、送信機10003、図2の獲得-符号化-送信20000-20001-20002、図4のエンコーダー、図12の送信装置、図14のデバイス及び図20のエンコーダーなどに対応する。図42の各構成要素はハードウェア、ソフトウェア、プロセッサ及び/又はそれらの組み合わせに対応する。
実施例によるエンコーダー、送信部の動作は以下の通りである。
送信装置にポイントクラウドデータが入力されると、ジオメトリエンコーダー60010ではポイントクラウドデータのうち、位置情報(geometry data:e.g., XYZ座標、phi-theta座標など)を符号化し、特質エンコーダー60020ではポイントクラウドデータのうち、特質情報(attribute data:e.g., color, reflectance, intensity, grayscale, opacity, medium, material, glossinessなど)を符号化する。
圧縮された(符号化された)データは送信のための単位に分けられるが、サブ-ビットストリーム生成部60040を介してレイヤリング構造情報によりビットストリーム単位で必要な情報の選択に適切な単位に分けてパッキングすることができる。
実施例によれば、ジオメトリエンコーダー60010で出力されるジオメトリビットストリーム及び/又は特質エンコーダー60020で出力される特質ビットストリームはサブ-ビットストリーム生成部60040に入力される。サブ-ビットストリーム生成部60040はメタデータ生成部60030で出力されるスライス関連情報及び/又はバッファー管理関連情報に基づいて各々のビットストリームを複数のサブビットストリームに分割して複数のスライスで構成する。各ビットストリームの分割及びスライスの構成に関する詳しい内容は上述した図17乃至図24を参照し、ここでは詳しい説明を省略する。実施例によれば、スライス関連情報はレイヤリング構造情報を含み、スライス関連情報は図17乃至図24で説明したビットストリーム構成、整列、選択、スライス構成を示す情報であり、図27ないし図41などに示す情報を意味する。
実施例によれば、メタデータ生成部60030によりレイヤリング構造情報を含むスライス関連情報及び/又はバッファー管理関連情報が生成される。
スライス関連情報及び/又はバッファー管理関連情報はSPS、GPS、TPS、APS、ジオメトリスライスヘッダー、特質スライスヘッダー及びSEIメッセージの何れかに含まれて受信装置に送信される。スライス関連情報及び/又はバッファー管理関連情報はsps_entropy_continuation_enabled_flagフィールド、geom_slice_segmentation_enabled_flagフィールド、attr_slice_segmentation_enabled_flagフィールド、slice_idフィールド、gsh_entropy_continuation_flagフィールド、gsh_prev_slice_idフィールド、context_reuse_flagフィールド、num_context_reuse_minus1フィールド、subsequent_slice_idフィールド、dependent_neighbour_enabled_flagフィールド、num_neighbour_sliceフィールド、neighbour_slice_idフィールド、neighbour_occupancy_typeフィールド、ash_continuation_flagフィールド及びash_prev_slice_idフィールドの何れかを含む。上述した各フィールドの説明は図27乃至図41での説明を参照し、ここでは詳しい説明を省略する。
他の実施例においては、サブ-ビットストリーム生成部60040は各ビットストリームを分割し、分割処理を示すスライス関連情報(又はレイヤリング構造情報)を生成して、メタデータ生成部60030に伝達する。メタデータ生成部60030はジオメトリ符号化処理及び特質符号化処理を示す情報を各エンコーダー60010,60020から受信してメタデータ(パラメータ)として生成する。
実施例によれば、サブ-ビットストリーム生成部60040はジオメトリビットストリームから分割された複数のサブ-ビットストリームを複数のスライスにより送信するために、メタデータ生成部60030で提供されるスライス関連情報及び/又はバッファー関連情報に基づいてスライスセグメント過程を行う。また、サブ-ビットストリーム生成部60040は特質ビットストリームから分割された複数のサブ-ビットストリームを複数のスライスにより送信するために、メタデータ生成部60030で提供されるスライス関連情報及び/又はバッファー関連情報に基づいてスライスセグメント過程を行う。即ち、ジオメトリビットストリーム(又はジオメトリデータ)及び特質ビットストリーム(又は特質データ)をそれぞれ複数のスライスにより送信することにより、受信装置では選択的復号又は並列復号を行うことができる。
実施例によれば、ジオメトリデータを含む複数のスライスが先に送信され、その後、特質データを含む複数のスライスが送信される。詳しい内容は図23の説明を参照し、ここでは省略する。
他の実施例によれば、レイヤーによってジオメトリデータのスライスと特質データのスライスを送信してもよい。詳しい内容は図24の説明を参照し、ここでは省略する。
実施例によれば、複数のスライスは互いに独立してもよく、互いに依存関係を有してもよい。実施例によれば、八分木基盤のジオメトリコーディングの場合、以前ノードに関するコンテキスト情報を順に、そして累積して使用することにより圧縮性能を向上させることができる。また隣接サーチ、イントラー予測などの場合、先に復号された隣接(又は周辺部という)ノードの占有情報を使用するが、この場合、直前スライスの情報を使用することができる。又は並列プロセシングのために先行スライスの情報を使用することができる。この場合、スライス間の依存が発生する。他の実施例においては、少なくとも1つのスライスは他のスライスとの関係性なしに独立していてもよい。依存を有するスライス及び/又は独立的なスライスに関する説明は図20乃至図25の説明を参照し、ここでは省略する。
実施例によれば、各スライスに属するデータ(例えば、ジオメトリデータ又は特質データ)がエンコーダーで符号化されると、各スライスごとにコンテキストが生成される。このとき、コンテキストを連続して使用する場合、受信装置のコンテキストバッファー管理が必要である。実施例によれば、コンテキストバッファー管理のための詳しい内容は図25及び図26で説明したので、ここでは省略する。また受信装置のコンテキストバッファーの管理のためのシグナリング情報(例えば、スライス関連情報及び/又はバッファー管理関連情報)については図27乃至図41での説明を参照し、ここでは省略する。
マルチプレクサー60060はサブ-ビットストリーム生成部60040で出力される複数のセグメントとメタデータ生成部60050で生成されるシグナリング情報を多重化して送信機60070に出力する。マルチプレクサー60050の多重化はレイヤーごとに行われる。メタデータ生成部60030で生成されるスライス関連情報及び/又はバッファー管理関連情報は図27乃至図48を参照する。
実施例による送信機60060はマルチプレクサー60050で多重化されたデータ(又はスライス単位のビットストリーム)を送信する。実施例によるビットストリームはファイル又はセグメント(例えば、ストリーミングセグメント)などにカプセル化されて放送網及び/又はブロードバンド網などの様々なネットワークにより送信される。図示していないが、送信機60060はカプセル化動作を行うカプセル化部(又はカプセル化モジュール)を含む。
図43は実施例によるポイントクラウドデータ受信装置の構造を示す。
図43の実施例による受信装置は、図1の受信装置10004、受信機10005、ポイントクラウドビデオデコーダー10006、図2の送信-復号-レンダリング20002-20003-20004、図10のデコーダー、図11のデコーダー、図13の受信装置及び図14のデバイスなどに対応する。図43の各構成要素はハードウェア、ソフトウェア、プロセッサ及び/又はそれらの組み合わせに対応する。
実施例によるデコーダー/受信部の動作は以下の通りである。
受信装置の受信機65010にビットストリームが入力されると、受信機65010はビットストリームをデマルチプレクサー65020に出力し、デマルチプレクサー65020はジオメトリ情報と特質情報を含むビットストリームとスライス関連情報及び/又はバッファー管理関連情報を含むシグナリング情報を区分する。
区分されたジオメトリ情報と特質情報を含むビットストリームはサブ-ビットストリーム分類部(classifier)65040に出力され、区分されたシグナリング情報はメタデータパーサー65030に出力される。
サブ-ビットストリーム分類部65040は1つ以上のスライスの各ヘッダーの情報及び/又はスライス関連情報及び/又はバッファー管理関連情報に基づいてジオメトリ情報と特質情報を含むビットストリームを処理した後、ジオメトリ情報を含むビットストリーム(又はサブビットストリーム)はジオメトリデコーダー65060に出力し、特質情報を含むビットストリーム(又はサブビットストリーム)は特質デコーダー65080に出力する。
又はこの過程において受信機が必要とするレイヤーを選択してもよい。分類されたビットストリームはデータの特性によってジオメトリデコーダー65060と特質デコーダー65080でそれぞれジオメトリデータと特質データに復元された後、レンダラー65090で最終出力のためのフォーマットに変換することができる。
実施例によれば、サブ-ビットストリーム分類部65040はメタデータパーサー65030により得られたメタデータ(例えば、スライス関連情報及び/又はバッファー管理関連情報)に基づいてビットストリームを分類/選択する。
スライス関連情報及び/又はバッファー管理関連情報はSPS、GPS、TPS、APS、ジオメトリスライスヘッダー、特質スライスヘッダー及びSEIメッセージの何れかに含まれて受信される。スライス関連情報及び/又はバッファー管理関連情報はsps_entropy_continuation_enabled_flagフィールド、geom_slice_segmentation_enabled_flagフィールド、attr_slice_segmentation_enabled_flagフィールド、slice_idフィールド、gsh_entropy_continuation_flagフィールド、gsh_prev_slice_idフィールド、context_reuse_flagフィールド、num_context_reuse_minus1フィールド、subsequent_slice_idフィールド、dependent_neighbour_enabled_flagフィールド、num_neighbour_sliceフィールド、neighbour_slice_idフィールド、neighbour_occupancy_typeフィールド、ash_continuation_flagフィールド及びash_prev_slice_idフィールドの何れかを含む。上述した各フィールドの説明は図27乃至図41での説明を参照し、ここでは詳しい説明は省略する。
実施例によれば、ポイントクラウドデータは各ポイントの位置(即ち、ジオメトリ)情報及び色相/明るさ/反射度などの特質情報で構成され、これらをそれぞれ圧縮して受信装置に送信する。このとき、受信装置の性能或いは送信速度によって受信装置でポイントクラウドデータの一部のみを復号或いは表現(representation)するために、送信装置ではポイントクラウドデータ(又はコーディングされたビットストリーム)を複数のスライスに分けて伝達する方法が使用される。このとき、複数のスライスがシグナリングされ、スライス間の依存(dependency)が定義されることにより、現スライスは以前スライスで生成された情報を使用するが、この場合、受信装置のバッファー管理が必要である。
実施例によれば、ジオメトリデコーダー60060はメタデータパーサー65030で提供されるスライス関連情報及び/又はバッファー管理関連情報に基づいてジオメトリバッファー65050を調節する。ジオメトリバッファー65050は図25及び図26で説明したコンテキストバッファーであることを一実施例とする。例えば、現スライスのジオメトリコンテキストを次のスライスで使用する場合、現スライスのジオメトリコンテキストをジオメトリバッファー65050に格納し、コンテキストカウンター(例えば、N又はnum_reuse_minus1を参照)が0になるまで又はマッチングされる次のスライス識別子(slice_id)が入る場合、格納された情報を使用することができる。又は図26で説明したように、隣接ノード情報を使用する場合(例えば、dependent_neighbour_enabled_flag==1)、該当ノード情報をジオメトリバッファー65050に格納した後、必要時に使用することもできる。ジオメトリバッファー65050の管理(又は制御)の詳しい説明は図25及び図41での説明を参照し、ここでは省略する。
実施例によれば、特質デコーダー60680はメタデータパーサー65030で提供されるスライス関連情報及び/又はバッファー管理関連情報に基づいて特質バッファー65070を調節する。特質バッファー65070は図25及び図26で説明したコンテキスバッファーであることを一実施例とする。特質バッファー65070の管理(又は制御)は図25及び図41での説明を参照し、ここでは省略する。
上述したように、受信装置のバッファー(又はコンテキストバッファーという)の効率的な管理のために、シグナリングにより次のスライスで現スライスのコーディング情報/ノード情報(例えば、スライス関連情報及び/又はバッファー管理関連情報)を使用するか否かを知らせ、それに基づいて現スライスのコンテキストのバッファーへの格納及び削除などを管理することにより、受信機のバッファー管理を効率的に行うことができる。即ち、送信装置ではポイントクラウドデータを複数のスライスに分けて送信する場合にも連続するコーディング情報及び/又は隣接ノード情報の使用を許容することにより圧縮効率を向上させることができる。また受信装置では次のスライスで現スライスのコーディング情報/ノード情報(例えば、スライス関連情報及び/又はバッファー管理関連情報)を使用するか否かを分かることができるので、バッファー管理を効率的に行うことができる。例えば、受信装置では現スライスのコンテキストが次のスライスで使用されるか否かを予め判断することによりリソースを効率的に管理することができる。
上述したそれぞれのパート、モジュール又はユニットはメモリ(又は貯蔵ユニット)に貯蔵された連続する実行過程を行うソフトウェア、プロセッサ、ハードウェアパートである。上記実施例に記載された各段階は、プロセッサ、ソフトウェア、ハードウェアパートにより行われる。上記実施例に記載のそれぞれのモジュール/ブロック/ユニットは、プロセッサ、ソフトウェア、ハードウェアとして動作する。また実施例が提示する方法はコードとして実行される。このコードはプロセッサが読み取り可能な格納媒体に書き込まれ、よって装置が提供するプロセッサにより読み取られる。
また全明細書において、ある部分がある構成要素を“含む”とするとき、これは特に記載しない限り、他の構成要素を除くことではなく、他の構成要素をさらに含むことを意味する。また明細書に記載の“…部”などの用語は、少なくとも一つの機能や動作を処理する単位を意味し、これはハードウェアやソフトウェア又はハードウェアとソフトウェアの組み合わせにより具現される。
説明の便宜のために、各図を区分して説明したが、各図に述べられている実施例を併合して新しい実施例を具現するように設計することも可能である。また通常の技術者の必要によって、以前に説明した実施例を実行するためのプログラムが記録されているコンピューターで読み取り可能な記録媒体を設計することも実施例の権利範囲に属する。
実施例による装置及び方法は、上述したように、説明された実施例の構成と方法が限定して適用されることではなく、実施例は様々に変形可能に各実施例の全部又は一部が選択的に組み合わせられて構成されることもできる。
実施例の好ましい実施例について示して説明したが、実施例は上述した特定の実施例に限定されず、請求の範囲で請求する実施例の要旨から離脱せず、当該発明が属する技術分野において通常の知識を有する者により様々な変形実施が可能であり、かかる変形実施は実施例の技術的思想や見込みから個々に理解されてはいけない。
実施例による装置の様々な構成要素は、ハードウェア、ソフトウェア、ファームウェア又はそれらの組み合わせにより構成される。実施例の様々な構成要素は一つのチップ、例えば、一つのハードウェア回路で具現される。実施例において、実施例による構成要素はそれぞれ個々のチップで具現される。実施例において、実施例による装置の構成要素の何れかは一つ又はそれ以上のプログラムを実行できる一つ又はそれ以上のプロセッサで構成され、一つ又はそれ以上のプログラムは実施例による動作/方法のうちの何れか一つ又はそれ以上の動作/方法を行わせるか、実行させるための指示を含む。実施例による装置の方法/動作を行うための実行可能な指示は、一つ又はそれ以上のプロセッサにより実行されるために構成された一時的ではない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つ又は1つ以上のプロセッサ内で行われる。
また、この明細書で説明する実施例による動作は、実施例によって1つ以上のメモリ及び/又は1つ以上のプロセッサを含む送受信装置により行われる。1つ以上のメモリは実施例による動作を処理/制御するためのプログラムを格納し、1つ以上のプロセッサはこの明細書で説明する様々な動作を制御する。1つ以上のプロセッサはコントローラーとも称される。実施例において、動作はファームウェア、ソフトウェア及び/又はそれらの組み合わせにより行われ、ファームウェア、ソフトウェア及び/又はそれらの組み合わせはプロセッサに格納されるか、又はメモリに格納される。
第1、第2などの用語は実施例の様々な構成要素を説明するために使用される。しかし、実施例による様々な構成要素は上記用語により解釈が制限されてはいけない。かかる用語は一つの構成要素を他の構成要素と区別するために使用されることに過ぎない。例えば、第1ユーザ入力信号は第2ユーザ入力信号と称することができる。同様に、第2ユーザ入力信号は第1ユーザ入力信号と称することができる。かかる用語の使用は様々な実施例の範囲から離脱していない。第1ユーザ入力信号及び第2ユーザ入力信号はいずれもユーザ入力信号であるが、文脈上、明確に示していない限り、同一のユーザ入力信号を意味してはいない。
実施例を説明のために使用された用語は、特定の実施例を説明するために使用されており、実施例を制限されるものではない。実施例の説明及び請求範囲で使用したように、文脈上明確に称していない限り、単数は複数を含む。「及び/又は」表現は用語間の全ての可能な結合を含む意味で使用される。「含む」は特徴、数、段階、要素及び/又はコンポーネントが存在することを説明し、さらなる特徴、数、段階、要素及び/又はコンポーネントを含まないことを意味しない。実施例を説明するために使用される、「~である場合」、「~の時」などの条件表現は選択的な場合にのみ制限して解釈されない。特定の条件を満たすとき、特定の条件に対応して関連動作を行うか、又は関連定義が解釈されるように意図されている。また、この明細書で説明する実施例による動作は、実施例によってメモリ及び/又はプロセッサを含む送受信装置により行われる。メモリは実施例による動作を処理/制御するためのプログラムを格納し、プロセッサはこの明細書で説明した様々な動作を制御する。プロセッサはコントローラとも称される。実施例において、動作はファームウェア、ソフトウェア及び/又はそれらの組み合わせにより行われ、ファームウェア、ソフトウェア及び/又はそれらの組み合わせはプロセッサに格納されるか又はメモリに格納される。
〔発明の実施のための形態〕
発明の実施のための最善の形態について具体的に説明している。
〔産業上の利用可能性〕
この実施例の思想や範囲を外れることなく、この実施例を様々に変更/変形できることは当業者にとって明らかである。従って、これらの実施例は添付する請求範囲及びそれと同等な範囲内で提供される実施例の変更及び変形を含む。

Claims (15)

  1. ポイントクラウドデータ送信方法であって、
    ポイントクラウドデータのジオメトリデータを符号化する段階;
    前記ジオメトリデータに基づいて前記ポイントクラウドデータの特質データを符号化する段階;及び
    前記符号化されたジオメトリデータ、前記符号化された特質データ、及びシグナリングデータを送信する段階;を含んでなる、ポイントクラウドデータ送信方法。
  2. 前記符号化されたジオメトリデータは複数のスライスにセグメントされ、
    前記複数のスライスの何れかのコンテキストが少なくとも1つの他のスライスにより参照される、請求項1に記載のポイントクラウドデータ送信方法。
  3. 前記シグナリングデータはスライス関連情報とバッファー管理関連情報を含む、請求項2に記載のポイントクラウドデータ送信方法。
  4. 前記バッファー管理関連情報は、
    少なくとも現スライスのコンテキストが少なくとも1つの他のスライスで参照されるか否かを指示する情報、又は、
    現スライスのコンテキストが少なくとも1つの他のスライスで参照されれば、現スライスのコンテキストの参照回数を識別するための情報、を含む、請求項3に記載のポイントクラウドデータ送信方法。
  5. ポイントクラウドデータ送信装置であって、
    ポイントクラウドデータのジオメトリデータを符号化するジオメトリエンコーダー;
    前記ジオメトリデータに基づいて前記ポイントクラウドデータの特質データを符号化する特質エンコーダー;及び
    前記符号化されたジオメトリデータ、前記符号化された特質データ、及びシグナリングデータを送信する送信部;を備えてなる、ポイントクラウドデータ送信装置。
  6. 前記符号化されたジオメトリデータは複数のスライスにセグメントされ、
    前記複数のスライスの何れかのコンテキストが少なくとも1つの他のスライスにより参照される、請求項5に記載のポイントクラウドデータ送信装置。
  7. 前記シグナリングデータはスライス関連情報とバッファー管理関連情報を含む、請求項6に記載のポイントクラウドデータ送信装置。
  8. 前記バッファー管理関連情報は、
    少なくとも現スライスのコンテキストが少なくとも1つの他のスライスで参照されるか否かを指示する情報、又は、
    現スライスのコンテキストが少なくとも1つの他のスライスで参照されれば、現スライスのコンテキストの参照回数を識別するための情報、を含む、請求項7に記載のポイントクラウドデータ送信装置。
  9. ポイントクラウドデータ受信方法であって、
    ジオメトリデータ、特質データ及びシグナリングデータを受信する段階;
    前記シグナリングデータに基づいて前記ジオメトリデータを復号する段階;
    前記シグナリングデータと前記復号されたジオメトリデータに基づいて前記特質データを復号する段階;及び
    前記シグナリングデータに基づいて前記復号されたポイントクラウドデータをレンダリングする段階;を含んでなる、ポイントクラウドデータ受信方法。
  10. 前記ジオメトリデータは複数のスライスに含まれ、
    前記複数のスライスの何れかのスライスのコンテキストは少なくとも1つの他のスライスにより参照される、請求項9に記載のポイントクラウドデータ受信方法。
  11. 前記シグナリングデータはスライス関連情報とバッファー管理関連情報を含む、請求項10に記載のポイントクラウドデータ受信方法。
  12. 前記バッファー管理関連情報は、
    少なくとも現スライスのコンテキストが少なくとも1つの他のスライスで参照されるか否かを指示する情報、又は、
    現スライスのコンテキストが少なくとも1つの他のスライスで参照されれば、現スライスのコンテキストの参照回数を識別するための情報、を含む、請求項11に記載のポイントクラウドデータ受信方法。
  13. 前記ジオメトリ復号段階は、前記シグナリング関連情報とバッファー管理関連情報に基づいて現スライスのコンテキストのバッファー格納を制御する、請求項11に記載のポイントクラウドデータ受信方法。
  14. 前記ジオメトリ復号段階は、前記シグナリング関連情報とバッファー管理関連情報に基づいて現スライスのコンテキストが少なくとも1つの他のスライスで参照されないことが確認されれば、現スライスコンテキストをバッファーから削除する、請求項13に記載のポイントクラウドデータ受信方法。
  15. 前記ジオメトリ復号段階は、前記シグナリング関連情報とバッファー管理関連情報に基づいて現スライスのコンテキストが少なくとも1つの他のスライスで参照されることが確認されれば、前記少なくとも1つの他のスライスによる参照後、現スライスコンテキストをバッファーから削除する、請求項13に記載のポイントクラウドデータ受信方法。
JP2023527356A 2020-11-05 2021-11-05 ポイントクラウドデータ送信装置、ポイントクラウドデータ送信方法、ポイントクラウドデータ受信装置及びポイントクラウドデータ受信方法 Pending JP2023548393A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR10-2020-0146596 2020-11-05
KR20200146596 2020-11-05
PCT/KR2021/016037 WO2022098152A1 (ko) 2020-11-05 2021-11-05 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법

Publications (1)

Publication Number Publication Date
JP2023548393A true JP2023548393A (ja) 2023-11-16

Family

ID=81457286

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023527356A Pending JP2023548393A (ja) 2020-11-05 2021-11-05 ポイントクラウドデータ送信装置、ポイントクラウドデータ送信方法、ポイントクラウドデータ受信装置及びポイントクラウドデータ受信方法

Country Status (5)

Country Link
US (2) US11765387B2 (ja)
EP (1) EP4243413A1 (ja)
JP (1) JP2023548393A (ja)
CN (1) CN116458162A (ja)
WO (1) WO2022098152A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11954891B2 (en) * 2020-06-30 2024-04-09 Electronics And Telecommunications Research Institute Method of compressing occupancy map of three-dimensional point cloud
CN116458162A (zh) * 2020-11-05 2023-07-18 Lg电子株式会社 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
US11611775B2 (en) * 2021-01-19 2023-03-21 Tencent America LLC Method and apparatus for point cloud coding

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7813431B2 (en) * 2002-05-20 2010-10-12 Broadcom Corporation System, method, and apparatus for decoding flexibility ordered macroblocks
EP1365592A3 (en) * 2002-05-20 2005-02-09 Broadcom Corporation System, method, and apparatus for decoding flexibly ordered macroblocks
US20160234498A1 (en) * 2015-02-05 2016-08-11 Sharp Laboratories Of America, Inc. Methods and systems for palette table coding
US10368072B2 (en) * 2015-05-29 2019-07-30 Qualcomm Incorporated Advanced arithmetic coder
EP3516874A4 (en) 2016-12-14 2019-08-14 SZ DJI Technology Co., Ltd. SYSTEM AND METHOD FOR SUPPORTING VIDEOBITSTREAM SWITCHING
WO2020005758A1 (en) * 2018-06-29 2020-01-02 Interdigital Vc Holdings, Inc. Wavefront parallel processing of luma and chroma components
WO2020011717A1 (en) 2018-07-11 2020-01-16 Telefonaktiebolaget Lm Ericsson (Publ) Video based point cloud codec bitstream specification
WO2020013661A1 (ko) 2018-07-13 2020-01-16 한국전자통신연구원 스케일러블 포인트 클라우드 부호화/복호화 방법 및 장치
WO2020059611A1 (ja) 2018-09-20 2020-03-26 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
US11615557B2 (en) * 2020-06-24 2023-03-28 Apple Inc. Point cloud compression using octrees with slicing
CN116458162A (zh) * 2020-11-05 2023-07-18 Lg电子株式会社 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法

Also Published As

Publication number Publication date
US20220174317A1 (en) 2022-06-02
US20230379499A1 (en) 2023-11-23
EP4243413A1 (en) 2023-09-13
CN116458162A (zh) 2023-07-18
US11765387B2 (en) 2023-09-19
WO2022098152A1 (ko) 2022-05-12

Similar Documents

Publication Publication Date Title
KR102295825B1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
KR102358759B1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
JP7422883B2 (ja) ポイントクラウドデータ送信装置、ポイントクラウドデータ送信方法、ポイントクラウドデータ受信装置、及びポイントクラウドデータ受信方法
KR102406845B1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
KR102355634B1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
US20220360797A1 (en) Apparatus and method for processing point cloud data
US20220368751A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US11765387B2 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US20230291895A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
EP4161073A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US20240137578A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US20220230360A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
KR102548048B1 (ko) 포인트 클라우드 데이터 전송 장치, 전송 방법, 처리 장치 및 처리 방법
CN116349229A (zh) 点云数据发送装置和方法、点云数据接收装置和方法
US20220383552A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US20230386088A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US20220351421A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US20240179346A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
CN114402624A (zh) 点云数据处理设备和方法
US20240029313A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method