JP2024515984A - メッシュ圧縮のための境界ジオメトリ情報の予測コーディング - Google Patents
メッシュ圧縮のための境界ジオメトリ情報の予測コーディング Download PDFInfo
- Publication number
- JP2024515984A JP2024515984A JP2023566651A JP2023566651A JP2024515984A JP 2024515984 A JP2024515984 A JP 2024515984A JP 2023566651 A JP2023566651 A JP 2023566651A JP 2023566651 A JP2023566651 A JP 2023566651A JP 2024515984 A JP2024515984 A JP 2024515984A
- Authority
- JP
- Japan
- Prior art keywords
- geometry
- coordinates
- patch
- mesh
- geometric
- 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
Links
- 238000007906 compression Methods 0.000 title description 52
- 230000006835 compression Effects 0.000 title description 50
- 238000000034 method Methods 0.000 claims abstract description 82
- 238000004891 communication Methods 0.000 claims description 18
- 238000013139 quantization Methods 0.000 claims description 17
- 238000005070 sampling Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 21
- 230000033001 locomotion Effects 0.000 description 19
- 230000006837 decompression Effects 0.000 description 14
- 239000013598 vector Substances 0.000 description 14
- 230000008569 process Effects 0.000 description 13
- 238000012545 processing Methods 0.000 description 13
- 238000013507 mapping Methods 0.000 description 11
- 238000009499 grossing Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000012856 packing Methods 0.000 description 6
- 230000002123 temporal effect Effects 0.000 description 6
- 241000023320 Luma <angiosperm> Species 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000011960 computer-aided design Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000000779 smoke Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/001—Model-based coding, e.g. wire frame
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/60—Analysis of geometric attributes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/28—Quantising the image, e.g. histogram thresholding for discrimination between background and foreground patterns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/20—Scenes; Scene-specific elements in augmented reality scenes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/64—Three-dimensional objects
- G06V20/647—Three-dimensional objects by matching two-dimensional images to three-dimensional objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
- G06V40/161—Detection; Localisation; Normalisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20112—Image segmentation details
- G06T2207/20164—Salient point detection; Corner detection
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Computer Graphics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Oral & Maxillofacial Surgery (AREA)
- Human Computer Interaction (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本開示は、境界ジオメトリ情報の予測コーディングを用いて3Dメッシュを符号化又は復号するための方法及びシステムに関する。例示的な復号方法は、3次元メッシュのためのジオメトリパッチを含むコーディングされたビットストリームを受信するステップと、コーディングされたビットストリームから、3次元メッシュ内の境界頂点についてのジオメトリ座標のセットに対応する点のセットを含むジオメトリパッチについての再構成されたジオメトリ画像を抽出するステップと、ジオメトリ座標のセットに基づいて、境界頂点についての3Dジオメトリ座標を導出するステップと、境界頂点についての予測残差を取得するステップと、デバイスによって、導出された3Dジオメトリ座標及び予測残差に基づいて境界頂点のジオメトリ情報を再構成するステップとを含む。
Description
[参照による援用]
本出願は、2022年3月15日に出願された米国仮特許出願第63/319,976号に基づくものであり、その優先権の利益を主張しており、その全内容を参照により援用する。本出願はまた、2022年10月26日に出願された米国特許出願第17/973,792号に基づくものであり、その優先権の利益を主張しており、その全内容を参照により援用する。
本出願は、2022年3月15日に出願された米国仮特許出願第63/319,976号に基づくものであり、その優先権の利益を主張しており、その全内容を参照により援用する。本出願はまた、2022年10月26日に出願された米国特許出願第17/973,792号に基づくものであり、その優先権の利益を主張しており、その全内容を参照により援用する。
[技術分野]
本開示は、概して、メッシュ符号化(又は圧縮)及びメッシュ復号(又は解凍)プロセスに関し、特に、メッシュ圧縮のための境界ジオメトリ(幾何学)情報の予測コーディングのための方法及びシステムに関する。
本開示は、概して、メッシュ符号化(又は圧縮)及びメッシュ復号(又は解凍)プロセスに関し、特に、メッシュ圧縮のための境界ジオメトリ(幾何学)情報の予測コーディングのための方法及びシステムに関する。
本明細書で提供されるこの背景説明は、本開示の文脈を一般的に提示するためのものである。現在名前を挙げられている発明者の研究は、その研究がこの背景技術に記載された範囲において、出願時に先行技術として通常見なされ得ない記載の態様とともに、明示的にも暗黙的にも本開示に対する先行技術として認められない。
3次元(3D, three-dimension)空間内の現実世界のオブジェクト、環境等をキャプチャし、表現し、シミュレートするために、様々な技術が開発されている。世界の3D表現は、より没入型の形式のインタラクティブ通信を可能にできる。オブジェクト及び環境の例示的な3D表現は、点群及びメッシュを含むが、これらに限定されない。オブジェクト及び環境の一連の3D表現は、ビデオシーケンスを形成し得る。オブジェクト及び環境の3D表現のシーケンス内の冗長性及び相関性は、このようなビデオシーケンスをよりコンパクトなデジタル形式に圧縮及びコーディングするために利用され得る。
本開示は、概して、3Dメッシュのコーディング(圧縮)及び復号(解凍)に関し、具体的には、メッシュ圧縮のための境界ジオメトリ情報の予測コーディングに関する。
本開示は、3次元メッシュのためのジオメトリパッチを復号するための方法の実施形態を記載する。当該方法は、デバイスによって、3次元メッシュのためのジオメトリパッチを含むコーディングされたビットストリームを受信するステップを含む。デバイスは、命令を記憶するメモリと、メモリと通信するプロセッサとを含む。当該方法はまた、デバイスによって、コーディングされたビットストリームから、3次元メッシュ内の境界頂点についてのジオメトリ座標のセットに対応する点のセットを含むジオメトリパッチについての再構成されたジオメトリ画像を抽出するステップと、デバイスによって、ジオメトリ座標のセットに基づいて、境界頂点についての3Dジオメトリ座標を導出するステップと、デバイスによって、境界頂点についての予測残差を取得するステップと、デバイスによって、導出された3Dジオメトリ座標及び予測残差に基づいて境界頂点のジオメトリ情報を再構成するステップとを含む。
本開示は、3次元メッシュのためのジオメトリパッチを復号するための方法の別の実施形態を記載する。当該方法は、デバイスによって、コーディングされたビットストリームを受信するステップを含む。デバイスは、命令を記憶するメモリと、メモリと通信するプロセッサとを含む。当該方法はまた、デバイスによって、コーディングされたビットストリームから、境界頂点についての複数のジオメトリ予測を抽出するステップであって、各ジオメトリ予測は予測ジオメトリ座標のセットを含む、ステップと、デバイスによって、複数のジオメトリ予測に基づいて、境界頂点についての予測ジオメトリ値を決定するステップと、デバイスによって、境界頂点についての予測残差を取得するステップと、デバイスによって、予測ジオメトリ値及び予測残差に基づいて、境界頂点のジオメトリ情報を再構成するステップとを含む。
別の態様によれば、本開示の実施形態は、3Dメッシュを符号化又は復号するための装置を提供する。当該装置は、命令を記憶するメモリと、メモリと通信するプロセッサとを含む。プロセッサが命令を実行すると、プロセッサは、装置に上記の方法を実行させるように構成される。
別の態様では、本開示の実施形態は、ビデオ復号及び/又は符号化のためにコンピュータによって実行されると、コンピュータに上記の方法を実行させる命令を記憶する非一時的コンピュータ可読媒体を提供する。
上記及び他の態様並びにこれらの実装は、図面、詳細な説明及び特許請求の範囲においてより詳細に説明される。
開示される主題の更なる特徴、性質及び様々な利点は、以下の詳細な説明及び添付の図面からより明らかになる。
一実施形態による通信システムの簡略化されたブロック図の概略図である。
一実施形態によるストリーミングシステムの簡略化されたブロック図の概略図である。
いくつかの実施形態による、メッシュフレームを符号化するためのエンコーダのブロック図を示す。
いくつかの実施形態による、メッシュフレームに対応する圧縮されたビットストリームを復号するためのデコーダのブロック図を示す。
一実施形態によるビデオデコーダの簡略化されたブロック図の概略図である。
一実施形態によるビデオエンコーダの簡略化されたブロック図の概略図である。
いくつかの実施形態による、メッシュフレームを符号化するためのエンコーダのブロック図を示す。
本開示のいくつかの実施形態による、メッシュ圧縮のためのフレームワークの図を示す。
本開示のいくつかの実施形態による、メッシュ圧縮のためのフレームワークの別の図を示す。
本開示のいくつかの実施形態によるメッシュ圧縮のためのフレームワークの別の図である。
いくつかの実施形態によるプロセスの例を概説するフローチャートを示す。
一実施形態によるコンピュータシステムの概略図である。
本明細書及び特許請求の範囲を通じて、用語は、明示的に述べられた意味を超えて、文脈において示唆又は暗示される微妙な意味を有することがある。本明細書で使用される「一実施形態では」又は「いくつかの実施形態では」という語句は、必ずしも同じ実施形態を示すとは限らず、本明細書で使用される「別の実施形態では」又は「他の実施形態では」という語句は、必ずしも異なる実施形態を示すとは限らない。同様に、本明細書で使用される「1つの実装では」又は「いくつかの実装では」という語句は、必ずしも同じ実装を示すとは限らず、本明細書で使用される「別の実装では」又は「他の実装では」という句は、必ずしも異なる実装を示すとは限らない。例えば、特許請求の範囲の主題は、例示的な実施形態/実装の組み合わせを全体的又は部分的に含むことが意図される。
一般的に、用語は、文脈における用法から少なくとも部分的に理解されることがある。例えば、本明細書で使用される「及び」、「又は」、又は「及び/又は」のような用語は、このような用語が使用される文脈に少なくとも部分的に依存し得る様々な意味を含んでもよい。典型的には、「又は」は、A、B又はCのようなリストを関連付けるために使用される場合、本明細書において包括的な意味で使用されるA、B及びCと、本明細書において排他的な意味で使用されるA、B又はCとを意味することが意図される。さらに、本明細書で使用される「1つ以上」又は「少なくとも1つ」という用語は、文脈に少なくとも部分的に依存して、単数形でいずれかの特徴、構造又は特性を記述するために使用されてもよく、或いは、複数形で特徴、構造又は特性の組み合わせを記述するために使用されてもよい。同様に、「1つの(a)」、「1つの(an)」又は「その(the)」のような用語も同様に、文脈に少なくとも部分的に依存して、単数の用法を伝えること又は複数の用法を伝えることが理解され得る。さらに、「に基づいて」又は「によって決定される」という用語は、必ずしも要素の排他的なセットを伝えることを意図するものではないと理解されてもよく、代わりに、少なくとも部分的に文脈に依存して、必ずしも明示的に記載されていない更なる要素の存在を許容してもよい。
3Dキャプチャ、3Dモデリング及び3Dレンダリング等における進歩のように、3Dメディア処理における技術開発は、いくつかのプラットフォーム及びデバイスにわたる3Dコンテンツのユビキタスな作成を促進している。このような3Dコンテンツは、例えば、没入型視聴/レンダリング及びインタラクティブ体験を提供するために、様々な形式のメディアを生成するように処理され得る情報を含む。3Dコンテンツの用途は豊富であり、仮想現実、拡張現実、メタバース相互作用、ゲーム、没入型ビデオ会議、ロボット工学、コンピュータ支援設計(CAD, computer-aided design)等を含むが、これらに限定されない。本開示の態様によれば、没入型体験を改善するために、3Dモデルはますます洗練されてきており、3Dモデルの作成及び消費は、データ記憶、データ伝送リソース及びデータ処理リソースのようなかなりの量のデータリソースを必要とする。
2Dピクセルアレイ(画像等)の形式のデータセットによって一般的に表される従来の2次元(2D, 2-dimensional)コンテンツと比較して、3次元フル解像度ピクセレーションを有する3Dコンテンツは、かなりリソース集約的になる可能性があり、それにもかかわらず、ほとんどではないにしても多くの実用的な用途において不要である。ほとんどの3D没入型アプリケーションでは、本開示のいくつかの態様によれば、3Dコンテンツのよりデータ集約的でない表現が使用され得る。例えば、ほとんどのアプリケーションでは、3Dシーン(LIDARデバイスのようなセンサによってキャプチャされた現実世界のシーン、又はソフトウェアツールによって生成されたアニメーション3Dシーンのいずれか)内のオブジェクトのボリュメトリック情報(volumetric information)ではなく、トポグラフィー情報(topographical information)のみが必要になり得る。したがって、より効率的な形式のデータセットが、3Dオブジェクト及び3Dシーンを表すために使用され得る。例えば、3Dメッシュは、3Dシーン内の3Dオブジェクトのような没入型3Dコンテンツを表すための3Dモデルの一種として使用され得る。
1つ以上のオブジェクトのメッシュ(代替としてメッシュモデルと呼ばれる)は、頂点の集合を含んでもよい。頂点は、互いに接続して辺(エッジ)を形成してもよい。辺は更に接続して面を形成してもよい。面は多角形(ポリゴン)を更に形成してもよい。様々なオブジェクトの3D表面は、例えば、面及び多角形に分解されてもよい。頂点、辺、面、多角形又は表面のそれぞれは、色、法線、テクスチャ等のような様々な属性に関連付けられてもよい。表面の法線は表面法線と呼ばれてもよく、及び/又は、頂点の法線は頂点法線と呼ばれてもよい。頂点が辺、面又は多角形にどのように接続されるかの情報は、接続性情報と呼ばれてもよい。接続性情報は、同じセットの頂点が異なる面、表面及び多角形を形成することができるので、メッシュの構成要素を一意に定義するために重要である。一般的に、3D空間における頂点の位置は、その3D座標によって表されてもよい。面は、3D座標のセットにそれぞれ関連付けられた連続的に接続された頂点のセットによって表されてもよい。同様に、辺は、その3D座標にそれぞれ関連付けられた2つの頂点によって表されてもよい。頂点、辺及び面は、3Dメッシュデータセットにおいてインデックス付けされてもよい。
メッシュは、これらの基本要素のタイプのうちの1つ以上の集合によって定義及び記述されてもよい。しかし、メッシュを完全に記述するために、上記の全てのタイプの要素が必要であるとは限らない。例えば、メッシュは、単に頂点及びこれらの接続性を使用することによって完全に記述されてもよい。別の例では、メッシュは、単に面及び面の共通頂点のリストを使用することによって完全に記述されてもよい。したがって、メッシュは、代替のデータセット構成及びフォーマットによって記述される様々な代替のタイプのものとすることができる。例示的なメッシュタイプは、面・頂点(face-vertex)メッシュ、ウィングドエッジ(winged-edge)メッシュ、ハーフエッジ(half-edge)メッシュ、クアッドエッジ(quad-edge)メッシュ、コーナーテーブル(corner-table)メッシュ、頂点・頂点(vertex-vertex)メッシュ等を含むが、これらに限定されない。対応して、メッシュデータセットは、.raw、.blend、.fbx、.3ds、.dae、.dng、3dm、.dsf、.dwg、.obj、.ply、.pmd、.stl、amf、.wrl、.wrz、.x3d、.x3db、.x3dv、.x3dz、.x3dbz、.x3dvz、.c4d、.lwo、.smb、.msh、.mesh、.veg、.z3d、.vtk、.l4d等を含むが、これらに限定されないファイル拡張子を有する代替ファイルフォーマットに準拠した情報とともに記憶されてもよい。色、法線、テクスチャ等のようなこれらの要素の属性は、様々な方式でメッシュデータセットに含まれてもよい。
いくつかの実装では、メッシュの頂点は、UV空間と呼ばれるピクセル化された2D空間にマッピングされてもよい。したがって、メッシュの各頂点は、UV空間内のピクセルにマッピングされてもよい。いくつかの実装では、1つの頂点は、UV空間内の1つより多いピクセルにマッピングされてもよく、例えば、境界における頂点は、UV空間内の2つ又は3つのピクセルにマッピングされてもよい。同様に、メッシュ内の面又は表面は、メッシュ内の記録された頂点の中にあってもなくてもよい複数の3D点にサンプリングされてもよく、これらの複数の3D点はまた、2次元UV空間内のピクセルにマッピングされてもよい。メッシュ内の面又は表面の頂点及びサンプリングされた3D点をUV空間にマッピングし、UV空間において後続のデータ分析及び処理を行うことは、以下に更に詳細に説明するように、メッシュ又はメッシュのシーケンスの3Dデータセットのデータ記憶、圧縮及びコーディングを容易にし得る。マッピングされたUV空間データセットは、UV画像又は2Dマップ又はメッシュの2D画像と呼ばれてもよい。
3Dメッシュ内の頂点及びサンプリングされた表面点の2D UV空間へのマッピングに続いて、いくつかのピクセルは、3Dメッシュの頂点及びサンプリングされた表面点にマッピングされてもよいが、他のピクセルはマッピングされなくてもよい。メッシュの2D画像内のそれぞれのマッピングされたピクセルは、3Dメッシュ内の対応するマッピングされた頂点又は表面点の情報に関連付けられてもよい。UV空間内のピクセルに含まれる情報のタイプに依存して、メッシュの様々な2D画像又は2Dマップが構築されてもよい。複数の2Dマップの集合は、メッシュの代替表現及び/又は共同表現として使用されてもよい。
例えば、メッシュのための最も簡単な2Dマップは、占有マップとして構築されてもよい。占有マップは、メッシュの3D頂点又はサンプリングされた表面点にマッピングされる、UV空間内のピクセルを示してもよい。占有の指示は、例えば、マッピング又は占有を示すバイナリ値「1」及び非マッピング又は非占有を示すバイナリ値「0」を有する2Dピクセルのそれぞれにおけるバイナリインジケータによって表されてもよい。したがって、占有マップは、2D画像として構築されてもよい。通常の2D画像は、例えば8ビットの色深度を有する3つのチャネル(RGB、YUV、YCrCb等)のアレイを含むが、このようなメッシュの2D占有マップは、単一ビットのバイナリチャネルのみを必要とする。
別の例では、メッシュについて2Dジオメトリマップが構築されてもよい。2Dジオメトリマップは、単一のバイナリチャネルを含む代わりに、完全な3チャネル画像であり、占有されるピクセルのそれぞれにおける3色チャネルは、メッシュ内の対応するマッピングされた頂点又はサンプリングされた3D点の3つの3D座標に対応する。
いくつかの実装では、メッシュについて他の2Dマップが構築されてもよい。例えば、メッシュの頂点及びサンプリングされた3D点のそれぞれについての属性のセットが、メッシュデータセットから抽出されてもよく、2Dマップ画像の3つのカラーチャネルにコーディングされてもよい。このような2Dマップは、メッシュの属性マップと呼ばれてもよい。特定の属性マップは、UV空間内の占有されるピクセルのそれぞれについて3チャネルの色を含んでもよい。別の例では、メッシュのそれぞれのマッピングされた頂点又はサンプリングされた3D点に関連付けられるテクスチャ属性は、3チャネル値にパラメータ化され、2D属性マップにコーディングされてもよい。別の例では、メッシュのそれぞれのマッピングされた頂点又はサンプリングされた3D点に関連付けられる法線属性は、3チャネル値にパラメータ化され、2D属性マップにコーディングされてもよい。いくつかの例示的な実装では、メッシュの頂点及びサンプリングされた表面点の全ての必要な属性情報を保持するために、複数の2D属性マップが構築されてもよい。
上記の2Dマップは単なる例である。メッシュについての他のタイプの2Dマップが構築できる。さらに、他のデータセットが3Dメッシュから抽出されて、上記の2Dマップとともに進めて、元の3Dメッシュを一緒に表してもよい。例えば、頂点の間の接続又は接続性情報は、リスト、テーブル等の形式で、2Dマップとは別に別個にグループ化され、編成されてもよい。接続性情報は、例えば、頂点インデックスを使用して頂点を参照してもよい。頂点インデックスは、2Dマップ内のこれらの対応するピクセル位置にマッピングされてもよい。別の例では、表面テクスチャ、色、法線、変位及び他の情報が、2Dマップとしてではなく、2Dマップとは別に別個に抽出され、編成されてもよい。他のメタデータが3Dメッシュから更に抽出されて、2Dマップ及び上記の他のデータセットとともに3Dメッシュを表してもよい。
上記の例示的な実装は静的であるメッシュに焦点を当てているが、本開示の態様によれば、3Dメッシュは動的でもよい。動的メッシュは、例えば、構成要素(ジオメトリ情報、接続性情報、マッピング情報、頂点属性及び属性マップ)のうちの少なくとも1つが時間とともに変化するメッシュを示してもよい。したがって、動的メッシュは、ビデオを形成する2D画像フレームの時限シーケンスに類似した、1つ又は複数のメッシュ(メッシュフレームとも呼ばれる)のシーケンスによって記述できる。
いくつかの例示的な実装では、動的メッシュは、一定の接続性情報と、時間変化するジオメトリと、時間変化する頂点属性とを有してもよい。いくつかの他の例では、動的メッシュは、時間変化する接続性情報を有することができる。いくつかの例では、デジタル3Dコンテンツ作成ツールが、時間変化する属性マップ及び時間変化する接続性情報を有する動的メッシュを生成するために使用されてもよい。いくつかの他の例では、ボリュメトリック取得/検出/センシング技術が、動的メッシュを生成するために使用される。ボリュメトリック取得技術は、特にリアルタイム制約下で、時間変化する接続性情報を有する動的メッシュを生成することができる。
動的メッシュは、時間とともに変化するかなりの量の情報を含む可能性があるので、大量のデータを必要とし得る。しかし、メッシュフレーム内(イントラ圧縮)及びメッシュフレーム間(インター圧縮)の冗長性を利用するための圧縮が実行されてもよい。様々なメッシュ圧縮プロセスが、特にメッシュシーケンスについて、メッシュ表現におけるメディアコンテンツの効率的な記憶及び伝送を可能にするために実装されてもよい。
本開示の態様は、メッシュ圧縮のための例示的なアーキテクチャ及び技術を提供する。当該技術は、静的メッシュ圧縮、動的メッシュ圧縮、一定の接続性情報を有する動的メッシュの圧縮、時間変化する接続性情報を有する動的メッシュの圧縮、時間変化する属性マップを有する動的メッシュの圧縮等を含むが、これらに限定されない様々なメッシュ圧縮のために使用されてもよい。当該技術は、リアルタイム没入型通信、ストレージ、自由視点ビデオ、拡張現実(AR, augmented reality)、仮想現実(VR, virtual reality)等のように、様々なアプリケーションのための非可逆圧縮及び可逆圧縮において使用されてもよい。アプリケーションは、ランダムアクセス及びスケーラブル/プログレッシブコーディングのような機能を含んでもよい。
本開示は、3Dメッシュに適用可能な技術及び実装を明示的に記載するが、本明細書で説明する様々な実装の基礎となる原理は、点群(PC, Point Cloud)データ構造を含むが、これに限定されない他のタイプの3Dデータ構造に適用可能である。簡潔にするために、以下の3Dメッシュへの言及は、一般的であることが意図されており、点群及び他の3Dボリュメトリックデータセットのような他のタイプの3D表現を含む。
まず、例示的なアーキテクチャレベルの実装を参照すると、図1は、本開示の例示的な実施形態による通信システム(100)の簡略化ブロック図を示す。通信システム(100)は、例えば通信ネットワーク(150)(代替としてネットワークと呼ばれる)を介して相互に通信することができる複数の端末デバイスを含む。例えば通信システム(100)は、ネットワーク(150)を介して相互接続される端末デバイス(110)及び(120)のペアを含んでもよい。図1の例では、端末デバイス(110)及び(120)の第1のペアは、3Dメッシュの一方向伝送を実行してもよい。例えば端末デバイス(110)は、3Dメッシュ又は3Dメッシュのシーケンスを圧縮してもよく、3Dメッシュ又は3Dメッシュのシーケンスは、端末デバイス(110)によって生成されてもよく、或いは、記憶のために取得されてもよく、或いは、端末デバイス(110)に接続された3Dセンサ(105)によってキャプチャされてもよい。圧縮された3Dメッシュ又は3Dメッシュのシーケンスは、例えばビットストリーム(コーディングされたビットストリームとも呼ばれる)の形式で、ネットワーク(150)を介して他の端末デバイス(120)に送信されてもよい。端末デバイス(120)は、ネットワーク(150)から圧縮された3Dメッシュ又は3Dメッシュのシーケンスを受信し、ビットストリームを解凍して元の3Dメッシュ又は3Dメッシュのシーケンスを再構成し、表示又は他の目的/用途のために再構成された3Dメッシュ又は3Dメッシュのシーケンスを適切に処理してもよい。一方向データ伝送はメディアサービングアプリケーション等において一般的なものでもよい。
図1の例では、端末デバイス(110)及び(120)の一方又は双方は、サーバ、固定又は移動式パーソナルコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、ゲーム端末、メディアプレーヤ及び/又は専用の3次元(3D, three-dimensional)機器等として実装されてもよく、本開示の原理はこれらに限定されなくてもよい。ネットワーク(150)は、端末デバイス(110)及び(120)の間で圧縮された3Dを伝送する任意の種類のネットワーク又はネットワークの組み合わせを表してもよい。ネットワーク(150)は、例えば有線(ワイヤード)及び.又は無線通信ネットワークを含むことができる。ネットワーク(150)は、回線交換及び/又はパケット交換チャネルでデータを交換してもよい。代表的なネットワークは、バックホール電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、セルラーネットワーク及び/又はインターネットを含む。本開示の目的で、ネットワーク(150)のアーキテクチャ及びトポロジは、本明細書で以下に説明されない限り、本開示の動作にとって重要ではなくてもよい。
図2は、本開示の実施形態によるストリーミングシステム(200)の例示的な簡略化ブロック図を示す。図2は、3Dメッシュ及び圧縮された3Dメッシュに関連する開示の実装のための例示的なアプリケーションを示す。開示される主題は、3Dテレプレゼンスアプリケーション、仮想現実アプリケーション等のような、他の3Dメッシュ又は点群対応型アプリケーションにも同様に適用可能とすることができる。
ストリーミングシステム(200)は、キャプチャ又はストレージサブシステム(213)を含んでよい。キャプチャ又はストレージサブシステム(213)は、3Dメッシュ生成器又は記憶媒体(201)、例えば、圧縮されていない3Dメッシュ(202)又は点群(202)を生成又は提供する3Dメッシュ若しくは点群生成ツール/ソフトウェア、グラフィックス生成構成要素、又は光検出及び測距(LIDAR)システム、3Dカメラ、3Dスキャナ、3Dメッシュストア等のような点群センサを含んでもよい。いくつかの例示的な実装では、3Dメッシュ(202)は、点群の3Dメッシュ又は3D点(双方とも3Dメッシュと呼ばれる)の頂点を含む。3Dメッシュ(202)は、圧縮された3Dメッシュ(204)(圧縮された3Dメッシュのビットストリーム)と比較して高いデータ量を強調するために太線で示されている。圧縮された3Dメッシュ(204)は、3Dメッシュ(202)に結合されたエンコーダ(203)を含む電子デバイス(220)によって生成されてもよい。エンコーダ(203)は、以下でより詳細に説明されるように、開示される主題の態様を可能にするか或いは実装するために、ハードウェア、ソフトウェア又はそれらの組み合わせを含むことができる。圧縮された3Dメッシュ(204)(又は圧縮された3Dメッシュのビットストリーム(204))は、圧縮されていない3Dメッシュ(202)のストリームと比較して低いデータ量を強調するために細線として表されており、将来の使用のためにストリーミングサーバ(205)に記憶されることができる。図2のクライアントサブシステム(206)及び(208)のような1つ以上のストリーミングクライアントサブシステムは、ストリーミングサーバ(205)にアクセスして、圧縮された3Dメッシュ(204)のコピー(207)及び(209)を取り出すことができる。クライアントサブシステム(206)は、例えば電子デバイス(230)内にデコーダ(210)を含んでもよい。デコーダ(210)は、圧縮された3Dメッシュの入力コピー(207)を復号し、レンダリングデバイス(212)でレンダリングできるか或いは他の用途のための再構成された3Dメッシュ(211)の出力ストリームを作成する。
電子デバイス(220)及び(230)は、他の構成要素(図示せず)を含むことができる点に留意する。例えば、電子デバイス(220)はデコーダ(図示せず)を含むことができ、同様に、電子デバイス(230)はエンコーダ(図示せず)を含むこともできる。
いくつかのストリーミングシステムでは、圧縮された3Dメッシュ(204)、(207)及び(209)(例えば圧縮された3Dメッシュのビットストリーム)は定の標準に従って圧縮できる。いくつかの例では、以下に更に詳細に説明するように、3Dメッシュがビデオ圧縮に適した2D表現にマッピングされるように最初に投影された後に、3Dメッシュの圧縮における冗長性及び相関性を利用するために、ビデオコーディング標準が使用される。これらの標準の非限定的な例は、以下に更に詳細に説明するように、HEVC(High Efficiency Video Coding)、VVC(Versatile Video Coding)等を含む。
圧縮された3Dメッシュ又は3Dメッシュのシーケンスは、エンコーダによって生成されてもよく、デコーダは、圧縮又はコーディングされた3Dメッシュを解凍するように構成されてもよい。図3は、このようなエンコーダ(301)及びデコーダ(303)における3Dメッシュのハイレベルの例示的なデータフローを示す。図3に示すように、生の入力3Dメッシュ又は3Dメッシュのシーケンス(302)は、トラック再メッシュ化、パラメータ化及び/又はボクセル化によって前処理されて、3Dメッシュを2D UV空間(304)にマッピングするためのマッピングユニットへの入力データを生成してもよく、これは、いくつかの実装では、UVアトラスを有するメッシュを含んでもよい。3Dメッシュは、頂点の中にない可能性がある3D表面点を含むようにサンプリングされ、これらのサンプリングされた3D表面点をUV空間へのマッピングに追加してもよい。エンコーダ301において、占有マップ(310)、ジオメトリマップ(312)、属性マップ(314)を含むが、これらに限定されない様々な2Dマップが生成されてもよい。これらの画像タイプのマップは、例えば、ビデオコーディング/圧縮技術を使用してエンコーダ301によって圧縮されてもよい。例えば、ビデオコーダは、イントラ予測技術及び他の3Dメッシュ参照フレームによるインター予測を使用して3Dメッシュフレームを圧縮するのを助けてもよい。他の非画像又は非マップデータ又はメタデータ(316)も、非限定的な例として、エントロピーコーディングを介して、冗長性を除去して圧縮された非マップデータを生成するために様々な方式でコーディングされてもよい。エンコーダ301は、次いで、圧縮された2Dマップと非マップデータとを結合又は多重化し、結合されたデータを更にコーディングして、符号化ビットストリーム(又はコーディングされたビットストリームと呼ばれる)を生成してもよい。符号化ビットストリームは、次いで、デコーダ303による使用のために記憶又は伝送されてもよい。デコーダは、ビットストリームを復号し、復号されたビットストリームを逆多重化して、圧縮された2Dマップ及び非マップデータを取得し、解凍を実行して、復号された占有マップ(320)、復号されたジオメトリマップ(322)、復号された属性マップ(324)並びに復号された非マップデータ及びメタデータ(326)を生成するように構成されてもよい。次いで、デコーダ303は、復号された2Dマップ(320、322及び324)及び復号された非マップデータ(326)から3Dメッシュ又は3Dメッシュのシーケンス(330)を再構成するように更に構成されてもよい。
更に詳細には、図4は、本開示のいくつかの実施形態による、3Dメッシュフレームを符号化するための例示的な3Dメッシュエンコーダ(400)のブロック図を示す。いくつかの例示的な実装では、メッシュエンコーダ(400)は通信システム(100)及びストリーミングシステム(200)で使用されてもよい。例えばエンコーダ(203)は、メッシュエンコーダ(400)と同様の方式で構成されて動作できる。
メッシュエンコーダ(400)は、3Dメッシュフレームを非圧縮入力として受信し、圧縮された3Dメッシュフレームに対応するビットストリームを生成してもよい。いくつかの例示的な実装では、メッシュエンコーダ(400)は、図2のメッシュ又は点群ソース(201)等のような任意のソースから3Dメッシュフレームを受信してもよい。
図4の例では、メッシュエンコーダ(400)は、パッチ生成モジュール(406)(代替としてチャート生成モジュールと呼ばれる)、パッチパッキングモジュール(408)、ジオメトリ画像生成モジュール(410)、テクスチャ画像生成モジュール(412)、パッチ情報モジュール(404)、占有マップモジュール(414)、平滑化モジュール(436)、画像パディングモジュール(416)及び(418)、グループ拡張モジュール(420)、ビデオ圧縮モジュール(422)、(423)及び(432)、補助パッチ情報圧縮モジュール(438)、エントロピー圧縮モジュール(434)並びにマルチプレクサ(424)を含んでもよい。
本開示の様々な実施形態では、モジュールは、ソフトウェアモジュール、ハードウェアモジュール又はこれらの組み合わせを示してもよい。ソフトウェアモジュールは、所定の機能を有し、他の関連部分と協働して所定の目標(本開示に記載される機能等)を達成するコンピュータプログラム又はコンピュータプログラムの一部を含んでもよい。ハードウェアモジュールは、本開示に記載される機能を実行するように構成された処理回路及び/又はメモリを使用して実装されてもよい。各モジュールは、1つ以上のプロセッサ(又はプロセッサ及びメモリ)を使用して実装されてもよい。同様に、プロセッサ(又はプロセッサ及びメモリ)は、1つ以上のモジュールを実装するために使用できる。さらに、各モジュールは、モジュールの機能を含む全体のモジュールの一部でもよい。ここでの説明は、モジュールという用語及び他の等価な用語(例えば、ユニット)にも適用されてもよい。
本開示の態様によれば、上記のように、メッシュエンコーダ(400)は、圧縮された3Dメッシュを解凍された3Dメッシュに変換することを支援するために使用されるいくつかの非マップのメタデータ(例えばパッチ及びチャート情報)とともに、3Dメッシュフレームを画像ベースの表現(例えば2Dマップ)に変換する。いくつかの例では、メッシュエンコーダ(400)は、3Dメッシュフレームをジオメトリマップ又は画像、テクスチャマップ又は画像及び占有マップ又は画像に変換し、次いで、ビデオコーディング技術を使用して、メタデータ及び他の圧縮された非マップデータとともに、ジオメトリ画像、テクスチャ画像及び占有マップをビットストリームに符号化してもよい。一般的に、上記のように、2Dジオメトリ画像は、2Dピクセルに投影(「投影」という用語は「マップ」を意味するために使用される)された3D点に関連付けられるジオメトリ値で満たされる(fill)2Dピクセルを有する2D画像であり、ジオメトリ値で満たされる2Dピクセルは、ジオメトリサンプルと呼ばれてもよい。テクスチャ画像は、2Dピクセルに投影された3D点に関連付けられるテクスチャ値で満たされるピクセルを有する2D画像であり、テクスチャ値で満たされる2Dピクセルは、テクスチャサンプルと呼ばれてもよい。占有マップは、3D点によって占有されているか或いは占有されていないことを示す値で満たされる2Dピクセルを有する2D画像である。
パッチ生成モジュール(406)は、3Dメッシュをチャート又はパッチのセット(例えばパッチは、3Dメッシュ又は点群によって記述される表面の連続したサブセットとして定義される)にセグメント化し、チャート又はパッチは、オーバーラップしていてもしてなくてもよく、それにより、各パッチが2D空間内の平面に対する深度フィールドによって記述されてもよい(例えば、表面上のより深い3D点が対応する2Dマップの中心から更に離れるように表面を平坦化する)。いくつかの実施形態では、パッチ生成モジュール(406)は、再構成誤差を最小化しつつ、3Dメッシュを、滑らかな境界を有する最小数のパッチに分解することを目的としている。
パッチ情報モジュール(404)は、パッチのサイズ及び形状を示すパッチ情報を収集することができる。いくつかの例では、パッチ情報がデータフレームにパックされ、次いで、補助パッチ情報圧縮モジュール(438)によって符号化されて、圧縮された補助パッチ情報を生成できる。補助パッチ圧縮は、様々な種類の算術コーディングを含むが、これらに限定されない様々な形式で実装されてもよい。
パッチ又はチャートパッキングモジュール(408)は、未使用空間を最小化しつつ、抽出されたパッチをUV空間の2Dグリッドにマップするように構成されてもよい。いくつかの例示的な実装では、2D UV空間のピクセルは、パッチ又はチャートのマッピングのためにピクセルのブロックに粒度化されてもよい。ブロックサイズは予め定義されてもよい。例えば、ブロックサイズはM×M(例えば16×16)でもよい。このような粒度を用いて、M×Mの全ての2D UVグリッドのブロックは、一意のパッチに関連付けられる。言い換えると、各パッチは、2の2D粒度で2D UV空間にマッピングされる。効率的なパッチパッキングは、未使用空間を最小化すること又は時間的一貫性を確保することのいずれかによって、圧縮効率に直接影響を与えることができる。2D UV空間へのパッチ又はチャートのパッキングの例示的な実装は、以下で更に詳細に与えられる。
ジオメトリ画像生成モジュール(410)は、2Dグリッドにおける所与のパッチ位置で3Dメッシュのジオメトリに関連付けられる2Dジオメトリ画像を生成することができる。テクスチャ画像生成モジュール(412)は、2Dグリッドにおける所与のパッチ位置で3Dメッシュのテクスチャに関連付けられる2Dテクスチャ画像を生成することができる。ジオメトリ画像生成モジュール(410)及びテクスチャ画像生成モジュール(412)は、基本的に、上記のパッキングプロセス中に計算された3Dから2Dへのマッピングを利用して、上記のように、3Dメッシュのジオメトリ及びテクスチャを2D画像として記憶する。
いくつかの実装では、複数の点が同じサンプルに投影される(例えば、パッチがメッシュの3D空間内でオーバーラップする)場合により良く対処するために、2D画像がレイヤ化されてもよい。言い換えると、各パッチは、例えば、複数の点が異なるレイヤ内の同じ点に投影できるように、レイヤと呼ばれる2つの画像上に投影されてもよい。
いくつかの例示的な実装では、ジオメトリ画像は、幅×高さ(W×H)の単色フレームによって表されてもよい。したがって、3つのルマチャネル又はクロマチャネルの3つのジオメトリ画像が、3D座標を表すために使用されてもよい。いくつかの例示的な実装では、ジオメトリ画像は、特定の色深度(例えば、8ビット、12ビット、16ビット等)で3つのチャネル(RGB、YUV、YCrCb等)を有する2D画像によって表されてもよい。したがって、3つのカラーチャネルを有する1つのジオメトリ画像が、3D座標を表すために使用されてもよい。
テクスチャ画像を生成するために、テクスチャ生成手順は、元の3Dメッシュからサンプリングされた点に関連付けられるべき色を計算するために、再構成/平滑化されたジオメトリを利用する(例えば、元の3Dメッシュの頂点の中にない3D表面点を生成する図3の「サンプリング」を参照する)。
占有マップモジュール(414)は、各ユニットでパディング情報を記述する占有マップを生成するように構成されてもよい。例えば上記のように、占有画像は、2Dグリッドのセル毎に、セルが空の空間に属するか3Dメッシュに属するかを示すバイナリマップを含んでもよい。いくつかの例示的な実装は、占有マップは、ピクセル毎にピクセルがパディングされているか否かを記述するためのバイナリ情報を使用してもよい。いくつかの他の例示的な実装では、占有マップは、ピクセルのブロック毎(例えば各M×Mブロック)にピクセルのブロックがパディングされているか否かを記述するためのバイナリ情報を使用してもよい。
占有マップモジュール(414)によって生成された占有マップは、可逆コーディング又は非可逆コーディングを使用して圧縮されてもよい。可逆コーディングが使用されるとき、エントロピー圧縮モジュール(434)が占有マップを圧縮するために使用されてもよい。非可逆コーディングが使用されるとき、ビデオ圧縮モジュール(432)が占有マップを圧縮するために使用されてもよい。
パッチパッキングモジュール(408)は、画像フレームにパックされた2Dパッチの間にいくつかの空の空間を残してもよい点に留意する。画像パディングモジュール(316)及び(318)は、2Dビデオ及び画像コーデックに適し得る画像フレームを生成するために、空の空間を満たしてもよい(パディングと呼ばれる)。画像パディングは、冗長的情報で未使用の空間を満たすことができるバックグラウンド充填(background filling)とも呼ばれる。いくつかの例では、良好に実施されるバックグラウンド充填は、ビットレートを最小限に増加させるが、パッチ境界付近に大幅なコーディングの歪みを導入するのを回避する。
ビデオ圧縮モジュール(422)、(423)及び(432)は、HEVC、VVC等のような適切なビデオコーディング標準に基づいて、パディングされたジオメトリ画像、パディングされたテクスチャ画像及び占有マップのような2D画像を符号化することができる。いくつかの例示的な実装では、ビデオ圧縮モジュール(422)、(423)及び(432)は別個に動作する個々の構成要素である。いくつかの他の例示的な実装では、ビデオ圧縮モジュール(422)、(423)及び(432)は単一の構成要素として実装できる点に留意する。
いくつかの例示的な実装では、平滑化モジュール(436)は、再構成されたジオメトリ画像の平滑化された画像を生成するように構成されてもよい。平滑化された画像は、テクスチャ画像生成(412)に提供できる。次いで、テクスチャ画像生成(412)は、再構成されたジオメトリ画像に基づいてテクスチャ画像の生成を調整してもよい。例えばパッチ形状(例えばジオメトリ)が符号化及び復号中にわずかに歪むとき、その歪みは、テクスチャ画像を生成してパッチ形状の歪みを補正するときに考慮されてもよい。
いくつかの実施形態では、グループ拡張(420)は、再構成された3Dメッシュの視覚的品質だけでなく、コーディング利得を改善するために、冗長な低頻度コンテンツでオブジェクト境界の周囲のピクセルをパディングするように構成される。
マルチプレクサ(424)は、圧縮されたジオメトリ画像、圧縮されたテクスチャ画像、圧縮された占有マップ、圧縮された補助パッチ情報を、圧縮されたビットストリーム(或いはコーディングされたビットストリームと呼ばれる)に多重化するように構成されてもよい。
図5は、本開示いくつかの実施形態による、3Dメッシュフレームに対応する圧縮されたビットストリームを復号するための例示的なメッシュデコーダ(500)のブロック図を示す。いくつかの例示的な実装では、メッシュデコーダ(500)は、通信システム(100)及びストリーミングシステム(200)において使用できる。例えばデコーダ(210)は、メッシュデコーダ(500)と同様の方式で動作するように構成できる。メッシュデコーダ(500)は、圧縮されたビットストリームを受信し、例えば、圧縮されたジオメトリ画像、圧縮されたテクスチャ画像、圧縮された占有マップ、圧縮された補助パッチ情報を含む圧縮されたビットストリームに基づいて再構成された3Dメッシュを生成する。
図5の例では、メッシュデコーダ(500)は、デマルチプレクサ(532)、ビデオ解凍モジュール(534)及び(536)、占有マップ解凍モジュール(538)、補助パッチ情報解凍モジュール(542)、ジオメトリ再構成モジュール(544)、平滑化モジュール(546)、テクスチャ再構成モジュール(548)並びに色平滑化モジュール(552)を含む。
デマルチプレクサ(532)は、圧縮されたビットストリームを受信し、圧縮されたテクスチャ画像、圧縮されたジオメトリ画像、圧縮された占有マップ及び圧縮された補助パッチ情報に分離してもよい。
ビデオ解凍モジュール(534)及び(536)は、適切な標準(例えばHEVC、VVC等)に従って、圧縮された画像を復号し、解凍された画像を出力することができる。例えばビデオ解凍モジュール(534)は、圧縮されたテクスチャ画像を復号し、解凍されたテクスチャ画像を出力してもよい。ビデオ解凍モジュール(536)は、圧縮されたジオメトリ画像を更に復号し、解凍されたジオメトリ画像を出力してもよい。
占有マップ解凍モジュール(538)は、適切な標準(例えばHEVC、VVC等)に従って、圧縮された占有マップを復号し、解凍された占有マップを出力してもよい。
補助パッチ情報解凍モジュール(542)は、適切な復号アルゴリズムに従って、圧縮された補助パッチ情報を復号し、解凍された補助パッチ情報を出力するように構成されてもよい。
ジオメトリ再構成モジュール(544)は、解凍されたジオメトリ画像を受信し、解凍された占有マップ及び解凍された補助パッチ情報に基づいて、再構成された3Dメッシュジオメトリを生成するように構成されてもよい。
平滑化モジュール(546)は、パッチのエッジにおける不一致(incongruence)を平滑化するように構成されてもよい。平滑化手順は、圧縮アーチファクトに起因してパッチ境界で発生する可能性がある潜在的な不連続性を緩和することを目的とてもよい。いくつかの例示的な実装では、圧縮/解凍によって生じる可能性がある歪みを緩和するために、パッチ境界に位置するピクセルに平滑化フィルタが適用されてもよい。
テクスチャ再構成モジュール(548)は、解凍されたテクスチャ画像及び平滑化ジオメトリに基づいて、3Dメッシュ内の点のテクスチャ情報を決定するように構成されてもよい。
色平滑化モジュール(552)は、カラーリングの不一致を平滑化するように構成されてもよい。3D空間内の隣接しないパッチは、2Dビデオでは互いに隣り合ってパックされることが多い。いくつかの例では、隣接しないパッチからのピクセル値が、ブロックベースのビデオコーデックによって混同される可能性がある。色平滑化の目的は、パッチ境界に現れる、目に見えるアーチファクトを低減することでもよい。
図6は、本開示の実施形態による例示的なビデオデコーダ(610)のブロック図を示す。ビデオデコーダ(610)は、メッシュデコーダ(500)において使用されてもよい。例えばビデオ解凍モジュール(534)及び(536)、占有マップ解凍モジュール(538)は、ビデオデコーダ(610)と同様に構成されてもよい。
ビデオデコーダ(610)は、コーディングされたビデオシーケンスのような圧縮画像からシンボル(621)を再構成するためのパーサ(620)を含んでもよい。これらのシンボルのカテゴリは、ビデオデコーダ(610)の動作を管理するために使用される情報を含む。パーサ(620)は、受信された、コーディングされたビデオシーケンスを構文解析/エントロピー復号してもよい。コーディングされたビデオシーケンスのコーディングは、ビデオコーディング技術又は標準に従うものとすることができ、可変長コーディング、ハフマンコーディング、コンテキスト感知性(context sensitivity)を伴うか伴わない算術コーディング等を含む様々な原理に従うことができる。パーサ(620)は、コーディングされたビデオシーケンスから、ビデオデコーダ内のピクセルのサブグループのうちの少なくとも1つのサブグループについてのサブグループパラメータのセットを、グループに対応する少なくとも1つのパラメータに基づいて抽出してもよい。サブグループは、グループオブピクチャ(GOP, Groups of Pictures)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CU, Coding Units)、ブロック、変換ユニット(TU, Transform Units)、予測ユニット(PU, Prediction Units)等を含むことができる。パーサ(620)はまた、変換係数、量子化パラメータ値、動きベクトル等のようなコーディングされたビデオシーケンス情報から抽出してもよい。
パーサ(620)は、シンボル(621)を生成するように、バッファメモリから受信したビデオシーケンスに対してエントロピー復号/構文解析動作を実行してもよい。
シンボル(621)の再構成は、コーディングされたビデオピクチャ又はその一部のタイプ(例えばインター及びイントラピクチャ、インター及びイントラブロック)及び他のファクタに依存して、複数の異なるユニットに関与することができる。どのユニットがどのように関与するかは、コーディングされたビデオシーケンスからパーサ(620)によって構文解析されたサブグループ制御情報によって制御されてもよい。パーサ(620)と以下の複数のユニットとの間のこのようなサブグループ制御情報のフローは、明確性のために図示されていない。
上記の機能ブロックの他に、ビデオデコーダ(610)は、以下に説明するように、複数の機能ユニットに概念的に細分できる。商業的制約の下で動作する実用的な実装では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的に相互に統合されることができる。以下の機能ユニットへの概念的な細分は、単に開示される主題を説明する目的のために行われている。
ビデオデコーダ(610)は、スケーラ/逆変換ユニット(651)を含んでもよい。スケーラ/逆変換ユニット(651)は、パーサ(620)からのシンボル(621)として、どの変換を使用すべきか、ブロックサイズ、量子化係数、量子化スケーリング行列等を含む制御情報だけでなく、量子化された変換係数も受信する。スケーラ/逆変換ユニット(651)は、アグリゲータ(655)に入力することができるサンプル値を含むブロックを出力してもよい。
場合によっては、スケーラ/逆変換(651)の出力サンプルは、イントラコーディングされたブロック、すなわち、以前に再構成されたピクチャからの予測情報を使用していないが、現在ピクチャの以前に再構成された部分からの予測情報を使用することができるブロックに関連するものとすることができる。このような予測情報は、イントラピクチャ予測ユニット(652)によって提供できる。場合によっては、イントラピクチャ予測ユニット(652)は、現在ピクチャバッファ(658)からフェッチされた周囲の既に再構成された情報を使用して、再構成中のブロックの同じサイズ及び形状のブロックを生成してもよい。現在ピクチャバッファ(558)は、例えば部分的に再構成された現在ピクチャ及び/又は完全に再構成された現在ピクチャをバッファしてもよい。アグリゲータ(655)は、場合によっては、サンプル毎に、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(651)によって提供される出力サンプル情報に追加してもよい。
他の場合には、スケーラ/逆変換ユニット(651)の出力サンプルは、インターコーディングされて潜在的に動き補償されるブロックに関連するものとすることができる。このような場合、動き補償予測ユニット(653)は、予測に使用されるサンプルをフェッチするために参照ピクチャメモリ(657)にアクセスすることができる。ブロックに関連するシンボル(621)に従って、フェッチされたサンプルを動き補償した後に、これらのサンプルは、アグリゲータ(655)によって、出力サンプル情報を生成するために、スケーラ/逆変換ユニット(651)の出力(この場合、残差サンプル又は残差信号と呼ばれる)に追加されてもよい。動き補償予測ユニット(653)が予測サンプルをフェッチする参照ピクチャメモリ(657)内のアドレスは、例えばX、Y及び照ピクチャ成分を有することができるシンボル(521)の形式で、動き補償予測ユニット(653)に利用可能な動きベクトルによって制御できる。動き補償はまた、サブサンプルの正確な動きベクトルが使用されているときに参照ピクチャメモリ(657)からフェッチされるサンプル値の補間、動きベクトル予測メカニズム等も含んでもよい。
アグリゲータ(655)の出力サンプルは、ループフィルタユニット(656)内の様々なループフィルタリング技術の対象となってもよい。ビデオ圧縮技術は、コーディングされたビデオシーケンス(コーディングされたビデオビットストリームとも呼ばれる)に含まれるパラメータによって制御され、且つ、パーサ(620)からシンボル(621)としてループフィルタユニット(656)に利用可能にされるが、コーディングされたピクチャ又はコーディングされたビデオシーケンスの(復号順序で)以前の部分の復号中に取得されたメタ情報に応答することもできるとともに、以前に再構成されてループフィルタリングされたサンプル値に応答することができる、ループ内フィルタ技術を含んでもよい。
ループフィルタユニット(656)の出力は、レンダデバイスに出力でき、将来のインターピクチャ予測で使用するために参照ピクチャメモリ(657)内に記憶できるサンプルストリームでもよい。
特定のコーディングされたピクチャは、いったん完全に再構成されると、将来の予測のための参照ピクチャとして使用されてもよい。例えば現在ピクチャに対応するコーディングされたピクチャが完全に再構成され、コーディングされたピクチャが(例えばパーサ(620)によって)参照ピクチャとして識別されると、現在ピクチャバッファ(658)は参照ピクチャメモリ(657)の一部となってもよく、フレッシュな現在ピクチャバッファは、後続のコーディングされたピクチャの再構成を開始する前に再割り当てされてもよい。
ビデオデコーダ(610)は、ITU-T Rec. H.265のような標準における所定のビデオ圧縮技術に従って復号動作を実行してもよい。コーディングされたビデオシーケンスは、コーディングされたビデオシーケンスが、ビデオ圧縮技術又は標準のシンタックスと、ビデオ圧縮技術又は標準で文書化されるプロファイルとの双方を守るという意味で、使用されているビデオ圧縮技術又は標準によって指定されたシンタックスに準拠してもよい。具体的には、プロファイルは、そのプロファイルの下での使用に利用可能な唯一のツールとして、特定のツールを選択してもよい。また、コーディングされたビデオシーケンスの複雑さが、ビデオ圧縮技術又は標準のレベルによって定義される範囲内にあることが、準拠には必要となり得る。場合によっては、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば毎秒メガサンプルで測定される)、最大参照ピクチャサイズ等を制限する。レベルによって設定される限界は、場合によっては、コーディングされたビデオシーケンスでシグナリングされる仮想参照デコーダ(HRD, Hypothetical Reference Decoder)のバッファ管理のためのHRD仕様及びメタデータを通じて更に制限される可能性がある。
図7は、本開示の一実施形態によるビデオエンコーダ(703)のブロック図を示す。ビデオエンコーダ(703)は、3Dメッシュ又は点群を圧縮するメッシュエンコーダ(400)において使用されてもよい。いくつかの例示的な実装では、ビデオ圧縮モジュール(422)及び(423)と、ビデオ圧縮モジュール(432)は、エンコーダ(703)と同様に構成される。
ビデオエンコーダ(703)は、パディングされたジオメトリ画像、パディングされたテクスチャ画像等のような2D画像を受信して、圧縮された画像を生成してもよい。
本開示の例示的な実施形態によれば、ビデオエンコーダ(703)は、リアルタイムで或いはアプリケーションによって要求される任意の他の時間制約の下で、ソースビデオシーケンスのピクチャ(画像)をコーディング及び圧縮して、コーディングされたビデオシーケンス(圧縮された画像)にしてもよい。適切なコーディング速度を実施することは、コントローラ(750)の1つの機能である。いくつかの実施形態では、コントローラ(750)は、以下に説明するように、他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。この結合は、明確性のために図示されていない。コントローラ(750)によって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化技術のラムダ値等)、ピクチャサイズ、グループオブピクチャ(GOP, group of pictures)のレイアウト、最大動きベクトル探索範囲等を含むことができる。コントローラ(750)は、特定のシステム設計のために最適化された、ビデオエンコーダ(703)に関係する他の適切な機能を有するように構成されてもよい。
いくつかの例示的な実装では、ビデオエンコーダ(703)は、コーディングループで動作するように構成されてもよい。過度に簡略化された説明として、一例では、コーディングループは、ソースコーダ(730)(例えばコーディングされるべき入力ピクチャ及び参照ピクチャに基づいて、シンボルストリームのようなシンボルを作成することを担う)と、ビデオエンコーダ(703)に組み込まれた(ローカル)デコーダ(733)とを含んでもよい。(シンボルとコーディングされたビデオビットストリームとの間のいずれかの圧縮は、開示される主題において考慮されるビデオ圧縮技術で可逆であるので)デコーダ(733)は、(リモート)デコーダが作成するのと同様の方式で、シンボルを再構成してサンプルデータを作成してもよい。再構成されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(734)に入力されてもよい。シンボルストリームの復号は、デコーダ位置(ローカル又はリモート)とは独立のビット正確な結果をもたらすので、参照ピクチャメモリ(734)内のコンテンツも、ローカルエンコーダとリモートエンコーダとの間でビット正確である。言い換えると、エンコーダの予測部分は、デコーダが復号中に予測を使用するときに「見る」のと全く同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャのシンクロニシティ(synchronicity)のこの基本原理(及び例えばチャネル誤差のためにシンクロニシティを維持することができない場合の結果として生じるドリフト)は、いくつかの関連する技術でも同様に使用される。
「ローカル」デコーダ(733)の動作は、ビデオデコーダ(610)のような「リモート」デコーダと同じものとすることができ、これは、既に図6に関連して上記に説明されている。しかし、図6も簡単に参照すると、シンボルが利用可能であり、エントロピーコーダ(745)及びパーサ(620)によるコーディングされたビデオシーケンスへのシンボルの符号化/復号は可逆となり得るので、パーサ(620)を含むビデオデコーダ(610)のエントロピー復号部分は、ローカルデコーダ(733)では完全には実装されなくてもよい。
本開示における様々な実施形態では、デコーダに存在する構文解析/エントロピー復号を除くいずれかのデコーダ技術も、対応するエンコーダにおいて、実質的に同一の機能形式で必ず存在する必要があってもよい。このため、様々な実施形態において開示される主題は、デコーダ動作に焦点を当てることがある。エンコーダ技術の説明は、包括的に記載されるデコーダ技術の逆であるので、省略されることがある。特定の領域においてのみ、より詳細な説明が必要とされ、以下に提供される。
いくつかの例では、動作中に、ソースコーダ(730)は、動き補償予測コーディングを実行してもよく、動き補償予測コーディングは、「参照ピクチャ」として指定されたビデオシーケンスからの1つ以上の以前にコーディングされたピクチャに関連して予測的に入力ピクチャをコーディングする。このように、コーディングエンジン(732)は、入力ピクチャのピクセルブロックと、入力ピクチャに対する予測参照として選択され得る参照ピクチャのピクセルブロックとの間の差をコーディングしてもよい。
ローカルビデオデコーダ(733)は、ソースコーダ(730)によって作成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャのコーディングされたビデオデータを復号してもよい。コーディングエンジン(732)の動作は、有利には、非可逆プロセスでもよい。コーディングされたビデオデータがビデオデコーダ(図7には図示せず)で復号されてもよいとき、再構成ビデオシーケンスは、典型的には、いくつかの誤差を伴うソースビデオシーケンスのレプリカでもよい。ローカルビデオデコーダ(733)は、参照ピクチャに対してビデオデコーダによって実行され得る復号プロセスを複製し、再構成参照ピクチャを参照ピクチャキャッシュ(734)に記憶させてもよい。このように、ビデオエンコーダ(703)は、(伝送誤差なしに)遠端ビデオデコーダによって取得される再構成参照ピクチャとして、共通のコンテンツを有する再構成参照ピクチャのコピーを、ローカルに記憶してもよい。
予測器(735)は、コーディングエンジン(732)について予測探索を実行してもよい。すなわち、コーディングされるべき新たなピクチャについて、予測器(735)は、参照ピクチャメモリ(734)から、サンプルデータ(候補参照ピクセルブロックとして)又は参照ピクチャ動きベクトル、ブロック形状等のような特定のメタデータを探索してもよく、これらのデータは、新たなピクチャのための適切な予測参照として機能してもよい。予測器(735)は、適切な予測参照を見つけるために、サンプルブロックとピクセルブロック毎(sample block-by-pixel block basis)に動作してもよい。場合によっては、予測器(735)によって取得される検索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(734)に記憶された複数の参照ピクチャから引き出された予測参照を有してよい。
コントローラ(750)は、例えばビデオデータを符号化するために使用されるパラメータ及びサブグループパラメータの設定を含む、ソースコーダ(730)のコーディング動作を管理してもよい。
全ての上記の機能ユニットの出力は、エントロピーコーダ(745)におけるエントロピーコーディングの対象となってもよい。エントロピーコーダ(745)は、ハフマンコーディング、可変長コーディング、算術コーディング等のような技術に従ってシンボルを可逆圧縮することによって、様々な機能ユニットによって生成されたシンボルを、コーディングされたビデオシーケンスに変換してもよい。
コントローラ(750)は、ビデオエンコーダ(703)の動作を管理してもよい。コーディングの間、コントローラ(750)は、各コーディングされたピクチャに、特定のコーディングピクチャタイプを割り当ててもよく、コーディングピクチャタイプは、それぞれのピクチャに適用され得るコーディングに影響を与えてもよい。例えばピクチャは、しばしば、以下のピクチャタイプのうちの1つとして割り当てられてもよい。
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内のいずれの他のピクチャも使用せずにコーディング及び復号され得るものでもよい。いくつかのビデオコーデックは、例えば独立デコーダリフレッシュ(「IDR, Independent Decoder Refresh」)ピクチャを含む、異なるタイプのイントラピクチャを許容する。当業者は、Iピクチャのこれらの変形並びにそれらのそれぞれの用途及び特徴を認識する。
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、最大で1つの動きベクトル及び参照インデックスを用いて、イントラ予測又はインター予測を使用して、コーディング及び復号され得るものでもよい。
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、最大で2つの動きベクトル及び参照インデックスを用いて、イントラ予測又はインター予測を使用して、コーディング及び復号され得るものでもよい。同様に、複数の予測ピクチャが、単一のブロックの再構成のために、2つより多くの参照ピクチャ及び関連するメタデータを使用することができる。
ソースピクチャは、一般的に、空間的に複数のサンプルブロック(例えばそれぞれ4×4、8×8、4×8又は16×16サンプルのブロック)に細分され、ブロック毎にコーディングされてもよい。ブロックは、ブロックのそれぞれのピクチャに適用されるコーディング割り当てによって決定されるように、他の(既にコーディングされた)ブロックに関連して予測的にコーディングされてもよい。例えばIピクチャのブロックは、非予測的にコーディングされてもよく、或いは、これらは、同じピクチャの既にコーディングされたブロックに関連して予測的にコーディングされてもよい(空間予測又はイントラ予測)。Pピクチャのピクセルブロックは、以前にコーディングされた1つの参照ピクチャを参照して、空間予測を介して或いは時間予測を介して予測的にコーディングされてもよい。Bピクチャのブロックは、1つ又は2つの以前にコーディングされた参照ピクチャを参照して、空間予測を介して或いは時間予測を介して予測的にコーディングされてもよい。
ビデオエンコーダ(703)は、ITU-T Rec. H.265のような所定のビデオコーディング技術又は標準に従ってコーディング動作を実行してもよい。その動作において、ビデオエンコーダ(703)は、入力ビデオシーケンスにおける時間的及び空間的冗長性を利用する予測コーディング動作を含む様々な圧縮動作を実行してもよい。したがって、コーディングされたビデオデータは、使用されているビデオコーディング技術又は標準によって指定されたシンタックスに従ってもよい。
ビデオは、時間シーケンスにおける複数のソースピクチャ(画像)の形式でもよい。イントラピクチャ予測(しばしば、イントラ予測と略される)は、所与のピクチャにおける空間的相関を使用し、インターピクチャ予測は、ピクチャの間の(時間的又は他の)相関を使用する。一例では、符号化/復号中の特定のピクチャは、現在ピクチャと呼ばれ、ブロックに分割される。現在ピクチャ内のブロックが、ビデオ内の以前にコーディングされて依然としてバッファされている参照ピクチャ内の参照ブロックに類似するとき、現在ピクチャ内のブロックは、動きベクトルと呼ばれるベクトルによってコーディングできる。動きベクトルは、参照ピクチャ内の参照ブロックを示し、複数の参照ピクチャが使用されている場合には、参照ピクチャを識別する第3次元を有することができる。
いくつかの実施形態では、インターピクチャ予測において双予測技術が使用できる。双予測技術によれば、第1の参照ピクチャと第2の参照ピクチャのように、双方とも、復号順序でビデオ内の現在ピクチャに先行する(ただし、表示順序では、それぞれ、過去及び将来でもよい)2つの参照ピクチャが使用される。現在ピクチャ内のブロックは、第1の参照ピクチャ内の第1の参照ブロックを示す第1の動きベクトルと、第2の参照ピクチャ内の第2の参照ブロックを示す第2の動きベクトルとによってコーディングできる。ブロックは、第1の参照ブロックと第2の参照ブロックの組み合わせによって予測できる。
さらに、コーディング効率を改善するために、インターピクチャ予測においてマージモード技術が使用できる。
本開示のいくつかの実施形態によれば、インターピクチャ予測及びイントラピクチャ予測のような予測は、ブロックの単位で実行される。例えばHEVC標準によれば、ビデオピクチャのシーケンス内のピクチャは、圧縮のためにコーディングツリーユニット(CTU, coding tree unit)に分割され、ピクチャ内のCTUは、64×64ピクセル、32×32ピクセル又は16×16ピクセルのように、同じサイズを有する。一般的に、CTUは、3つのコーディングツリーブロック(CTB, coding tree block)を含み、3つのCTBは、1つのルマ(luma)CTB及び2つのクロマ(chroma)CTBである。各CTUは、1つ又は複数のコーディングユニット(CU, coding unit)に再帰的に四分木分割できる。例えば64×64ピクセルのCTUは、64×64ピクセルの1つのCU又は32×32ピクセルの4つのCU又は16×16ピクセルの16個のCUに分割できる。一例では、CUを分析して、インター予測タイプ又はイントラ予測タイプのような、CUの予測タイプを決定する。CUは、時間的及び/又は空間的予測可能性に依存して、1つ以上の予測ユニット(PU, prediction unit)に分割される。一般的に、各PUはルマ予測ブロック(PU)と2つのクロマPBを含む。一実施形態では、コーディング(符号化/復号)における予測動作は、予測ブロックのユニットにおいて実行される。予測ブロックの例としてルマ予測ブロックを使用して、予測ブロックは、8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8ピクセル等のような、ピクセルについての値(例えばルマ値)の行列を含む。
様々な実施形態では、上記のメッシュエンコーダ(400)及びメッシュデコーダ(500)は、ハードウェア、ソフトウェア又はこれらの組み合わせで実装できる。例えば、メッシュエンコーダ(400)及びメッシュデコーダ(500)は、特定用途向け集積回路(ASIC, application specific integrated circuit)、フィールドプログラマブルゲートアレイ(FPGA, field programmable gate array)等のように、ソフトウェアとともに或いはソフトウェアなしで動作する1つ以上の集積回路(IC, integrated circuit)のような処理回路を用いて実装できる。別の例では、メッシュエンコーダ(400)及びメッシュデコーダ(500)は、不揮発性(又は非一時的)コンピュータ可読記憶媒体に記憶された命令を含むソフトウェア又はファームウェアとして実装できる。命令は、1つ以上のプロセッサのような処理回路によって実行されると、処理回路にメッシュエンコーダ(400)及び/又はメッシュデコーダ(500)の機能を実行させる。
図8は、3Dのx-y-z座標系(819)における3Dパッチ(810)をu-v座標系(859)における2D UV平面(850)にマッピングする例を示す。いくつかの実装では、3Dパッチ(又は単にパッチ)は、一般的に、3D空間内のメッシュに対応する頂点のセットによって記述される表面の連続サブセットを示してもよい。非限定的な例では、パッチは、3D座標、法線ベクトル、色、テクスチャ及び他の情報を有する頂点を含む。いくつかの実装では、2Dジオメトリパッチ(又は単にジオメトリパッチ若しくはパッチ)は、2D UV平面内の投影された形状を示してもよく、投影された形状はパッチに対応し、ジオメトリパッチはパッチに対応する。
UV平面内の投影された形状において、それぞれのマッピングされた点(ui,vi)は、位置(xi,yi,zii)を有する3D頂点に対応し、i=1,2,3,4等である。例えば、3D座標(x1,y1,z1)を有する第1の頂点(811)は、2D座標(u1,v1)を有する第1の点(851)にマッピングされ、3D座標(x2,y2,z2)を有する第2の頂点(812)は、2D座標(u2,v2)を有する第2の点(852)にマッピングされ、3D座標(x3,y3,z3)を有する第3の頂点(813)は、2D座標(u3,v3)を有する第3の点(853)にマッピングされ、3D座標(x4,y4,z4)を有する第4の頂点(814)は、2D座標(u4,v4)を有する第4の点(854)にマッピングされる。
頂点ジオメトリ(すなわち、xi、yi及びziの値)のコーディングは、次いで、2D平面内の3チャネル値のコーディングに変換され、(u,v)位置における各3チャネル値は、関連付けられた3D位置に対応する。例えば、第1の位置(851)のピクセル値は、第1の頂点(811)の3D座標に対応する3チャネル値(又は3つのチャネル値)を含み、3チャネル値の第1のチャネル値はx1の値に対応し、3チャネル値の第2のチャネル値はy1の値に対応し、3チャネル値の第3のチャネル値はz1の値に対応する。
したがって、1つ以上のパッチを有する投影/マッピングされた2D平面は、ジオメトリ画像と呼ばれ、したがって、任意の画像又はビデオコーデック、例えば、4:4:4カラーフォーマットをサポートするビデオコーデックを使用してコーディングされてもよい。
いくつかの実装では、UV平面上の投影/マッピングされた点のピクセル値は、3D頂点からUV平面までの距離に対応してもよい。したがって、頂点位置情報を見つけるために、異なる方向の複数の平面がこのような投影のために使用されてもよい。この場合、UV平面内の各位置(又は点と呼ばれる)は1チャネル値であり、距離を記録する。このような画像はデプス画像(深度画像)と呼ばれる。デプス画像は、任意の画像又はビデオコーデック、例えば、YUV4:2:0又はYUV4:0:0カラーフォーマットをサポートするビデオコーデックを使用してコーディングされてもよい。
図9及び図10は、境界頂点を示す。境界頂点は、3D空間内の単一の頂点でもよく、2D UV空間内の1つより多くの点にマッピングされてもよい。
図9を参照すると、境界頂点(911、912、913、914、915及び916)は、2D UV空間内で定義されてもよい。境界頂点は、接続成分(例えば、パッチ/チャート)の境界エッジ(例えば、921及び922)上に位置し、非境界頂点(例えば、931)は、接続成分(パッチ/チャート)の内側に位置する。
いくつかの実装では、境界エッジは、エッジが1つの三角形にのみ現れるか否かを検査することによって決定されてもよく、エッジが1つの三角形にのみ現れるとき、エッジは境界エッジであり、エッジが2つより多くの三角形に現れるとき、エッジは境界エッジではない。
いくつかの実装では、境界頂点の以下の情報、すなわち、ジオメトリ情報、すなわち3D xyz座標、及び/又は2D UV座標の一部又は全部が重要であり、ビットストリームにコーディングされてシグナリングされてもよい。
いくつかの実装では、頂点は、1つより多くのメッシュ表面ポリゴンによって共有されてもよい。メッシュが複数のパッチに分割されるとき、このような頂点は、共通の頂点として複数のパッチの境界上に現れてもよい。
非限定的な例として、図10を参照すると、2つの隣接する3Dパッチ(1010及び1020)は、2D UV平面(1050)にマッピングされてもよい。UV平面内の投影された形状において、各点(ui,vi)は、3D座標(xi,yi,zi)によって表される3D空間内の位置を有する3D頂点に対応し、iは、1、2、3、4等のような正の整数である。次いで、頂点ジオメトリのコーディングは、2D平面内の3チャネル値のコーディングに変換され、(u,v)位置における各3チャネル値は、関連する3D位置(x,y,z)に対応する。したがって、1つ以上のパッチを有する投影された2D平面は、ジオメトリ画像と呼ばれ、したがって、任意の画像又はビデオコーデック、例えば、4:4:4カラーフォーマットをサポートするビデオコーデックを使用してコーディングされてもよい。
特に、2つの3Dパッチの境界上の頂点は、双方のパッチによって共有される共通の頂点になる。このような頂点が2D平面上に投影されたとき、これは1つより多くのUV座標を有する。例えば、3D空間内の第1の頂点(1011)は、2D UV空間内の第1の点(1051)にマッピングされてもよく、3D空間内の第2の頂点(1012)は、2D UV空間内の第2の点(1052)及び第5の点(1062)にマッピングされてもよく、3D空間内の第3の頂点(1013)は、2D UV空間内の第3の点(1053)及び第6の点(1063)にマッピングされてもよく、3D空間内の第4の頂点(1014)は、2D UV空間内の第4の点(1054)にマッピングされてもよい。言い換えると、UV平面上の、自身の境界ジオメトリ値を有する複数の点は、同じ3D頂点に対応してもよく、したがって、これら自身の境界ジオメトリ値は、同じジオメトリ情報を有するように等しくなるべきである。例えば、(1012)(x2,y2,z2)及び(1013)(x3,y3,z3)は、パッチ1010及びパッチ1020の双方の境界上にある。これらの2つのパッチが2D平面に投影されたとき、パッチ1010について、これらの2つの境界頂点についての対応するUV座標は、それぞれ(1052)(u2,v2)及び(1053)(u3,v3)であり、パッチ1020について、これらの2つの境界頂点についての対応するUV座標は、それぞれ(1062)(u2’,v2’)及び(1063)(u3’,v3’)である。この場合、位置(1062)(u’',v2’)は(1052)(u2,v2)とは異なり、位置(1053)(u3,v3)は(1063)(u3’,v3’)とは異なる点に留意する。
いくつかの実装では、境界頂点のジオメトリ情報が復号中の高品質3Dメッシュ再構成にとって重要であることを考慮して、境界頂点のジオメトリ情報を符号化、シグナリング及び復号する際にいくつかの課題/問題が存在する。1つの境界頂点が2つのパッチに現れるとき、1つの境界頂点は2D UV平面内の2つの点に対応し、2つの点の境界ジオメトリ値は、圧縮が適用されないときに同じになるべきである。しかし、圧縮が異なるパッチに適用された後に、同じ頂点の対のジオメトリ情報は異なるようになる可能性があり、これは、いくつかの圧縮方法、例えば、量子化プロセスの非可逆性質に起因し得る。これは、復号後のメッシュ再構成に影響を与える可能性がある。典型的には、境界頂点についての歪んだジオメトリによって、表面がもはや1つのパッチから別のパッチに滑らかに接続されなくなるので、再構築されたメッシュ表面においていくつかのクラックが見えるようになる可能性がある。
いくつかの実装では、境界ジオメトリ情報は、可逆(無損失)プロセス又はほぼ可逆プロセスを使用してコーディングされてもよい。いくつかの実装では、境界ジオメトリ情報は、各パッチ内の他の頂点とは別個にコーディングされてもよい。上記の実装のうちのいくつかは、3Dメッシュ圧縮の符号化/復号効率に影響を与える可能性がある。
本開示は、境界ジオメトリ情報の予測コーディングを用いて3Dメッシュを符号化又は復号し、上記で説明した少なくとも1つの課題/問題に対処し、したがって、ジオメトリ情報を圧縮する際の効率を改善し、及び/又は、効率的な3Dメッシュ圧縮技術を進歩させるための様々な実施形態について説明する。
図11は、境界ジオメトリ情報の予測コーディングを用いて3Dメッシュを復号するための上記の実装の基礎となる原理に従う例示的な方法のフローチャート1100を示す。例示的な復号方法のフローはS1101において開始し、以下のステップの一部又は全部を含んでもよい。S1110において、3次元メッシュのためのジオメトリパッチを含むコーディングされたビットストリームを受信する。S1120において、コーディングされたビットストリームから、3次元メッシュ内の境界頂点についてのジオメトリ座標のセットに対応する点のセットを含むジオメトリパッチについての再構成されたジオメトリ画像を抽出する。S1130において、ジオメトリ座標のセットに基づいて、境界頂点についての3Dジオメトリ座標を導出する。S1140において、境界頂点についての予測残差を取得する。S1150において、導出された3Dジオメトリ座標及び予測残差に基づいて境界頂点のジオメトリ情報を再構成する。例示的な方法は、S1199において終了する。
いくつかの実装では、点のセットに関連付けられるジオメトリ座標のセットは、複数の3Dジオメトリ座標(x,y,z)を含んでもよく、点のセット内の各点は、UV平面内の2D座標(u,v)及びピクセル値(例えば、RGBチャネル)を含む。各点のピクセル値(例えば、RGBチャネル)は、ジオメトリ座標のセット内の各ジオメトリ座標(x,y,z)に対応する。
いくつかの実装では、コーディングされたビットストリームは、コーディングされたジオメトリマップ又はコーディングされたメタデータのうちの少なくとも1つを含む。例えば、コーディングされたビットストリームは、図4における圧縮されたビットストリームでもよく、これは1つ以上の圧縮されたジオメトリ画像/マップ、1つ以上の圧縮されたテクスチャ画像/マップ、1つ以上の圧縮された占有マップ、及び/又は、圧縮された補助パッチ情報を含んでもよい。占有マップ情報は、各パッチの境界頂点がシグナリングされたときにデコーダ側から推論され得るので、いくつかのコーディングされたビットストリームは、占有マップを有さなくてもよい。いくつかの実装では、ジオメトリパッチは、コーディングされたジオメトリマップに対応するパッチのうちの1つである。
いくつかの実装では、導出された3Dジオメトリ座標及び予測残差に基づいて境界頂点のジオメトリ情報を再構成することは、P+Q*QSに従って境界頂点のジオメトリ情報を再構成することを含み、Pは導出された3Dジオメトリ座標であり、Qは予測残差であり、QSは量子化ステップサイズである。
いくつかの実装では、量子化ステップサイズは、シーケンスヘッダ、フレームヘッダ又はスライスヘッダのうちの少なくとも1つを含むハイレベルシンタックス(HLS, high-level syntax)においてシグナリングされる。
いくつかの実装では、コーディングされたビットストリームから、3次元メッシュ内の境界頂点についてのジオメトリ座標のセットに対応する点のセットを含むジオメトリパッチについての再構成されたジオメトリ画像を抽出することは、コーディングされたビットストリームから、ジオメトリ画像を再構成し、再構成されたジオメトリ画像内の点のセットのピクセル値に基づいて、境界頂点についてのジオメトリ座標のセットを取得することを含む。
いくつかの実装では、ジオメトリ座標のセットに基づいて、境界頂点についての3Dジオメトリ座標を導出することは、ジオメトリ座標のセットの平均を計算して、平均化された3Dジオメトリ座標を取得し、平均化された3Dジオメトリ座標を、境界頂点についての導出された3Dジオメトリ座標として決定することを含む。
いくつかの実装では、ジオメトリ座標のセットに基づいて、境界頂点についての3Dジオメトリ座標を導出することは、ジオメトリ座標のセットの加重平均を計算して、加重平均された3Dジオメトリ座標を取得し、加重平均された3Dジオメトリ座標を、境界頂点についての導出された3Dジオメトリ座標として決定することを含む。
いくつかの実装では、ジオメトリ座標のセットは、第1のパッチについての第1のジオメトリ座標と、第2のパッチに対応する第2のジオメトリ座標とを含み、第1のパッチは、第2のパッチよりも大きいサンプリングレートを有し、加重平均について、第1のジオメトリ座標の第1の重みは第2のジオメトリ座標の第2の重みよりも大きい。
いくつかの実装では、ジオメトリ座標のセットは、第1のパッチについての第1のジオメトリ座標と、第2のパッチに対応する第2のジオメトリ座標とを含み、第1のパッチは、第2のパッチよりも大きいパッチサイズを有し、加重平均について、第1のジオメトリ座標の第1の重みは第2のジオメトリ座標の第2の重みよりも大きい。
いくつかの実装では、ジオメトリ座標のセットは、第1のパッチについての第1のジオメトリ座標と、第2のパッチに対応する第2のジオメトリ座標とを含み、第1のパッチは、第2のパッチよりも大きい量子化レベルを有し、加重平均について、第1のジオメトリ座標の第1の重みは第2のジオメトリ座標の第2の重みよりも小さい。
いくつかの実装では、ジオメトリ座標のセットに基づいて、境界頂点についての3Dジオメトリ座標を導出することは、ジオメトリ座標のセットに基づいて候補リストを確立し、コーディングされたビットストリームから、候補リストに対応するインデックスを取得し、インデックス及び候補リストに基づいて、境界頂点についての導出された3Dジオメトリ座標を決定することを含む。
いくつかの実装では、候補リスト内のジオメトリ座標の順序は、これらの復号順序に従って決定される。
いくつかの実装では、コーディングされたビットストリームから、3次元メッシュ内の境界頂点についてのジオメトリ座標のセットに対応する点のセットを含むジオメトリパッチについての再構成されたジオメトリ画像を抽出することは、第2の境界頂点のジオメトリ情報を再構成し、第2の境界頂点は、境界頂点が再構成される前に再構成され、第2の境界頂点のジオメトリ情報をジオメトリ座標のセット内のジオメトリ座標として決定することを含む。
いくつかの実装では、第2の境界頂点は、境界頂点の隣接頂点である。
いくつかの実装では、境界ジオメトリ情報の予測コーディングを用いて3Dメッシュを復号するための別の例示的な方法は、以下のステップの一部又は全部を含んでもよい。コーディングされたビットストリームから、境界頂点についての複数のジオメトリ予測を抽出し、各ジオメトリ予測は予測ジオメトリ座標のセットを含む。複数のジオメトリ予測に基づいて、境界頂点についての予測ジオメトリ値を決定する。境界頂点についての予測残差を取得する。予測ジオメトリ値及び予測残差に基づいて、境界頂点のジオメトリ情報を再構成する。
いくつかの実装では、コーディングされたビットストリームは、コーディングされたジオメトリマップ又はコーディングされたメタデータのうちの少なくとも1つを含む。例えば、コーディングされたビットストリームは、図4における圧縮されたビットストリームでもよく、これは1つ以上の圧縮されたジオメトリ画像/マップ、1つ以上の圧縮されたテクスチャ画像/マップ、1つ以上の圧縮された占有マップ、及び/又は、圧縮された補助パッチ情報を含んでもよい。占有マップ情報は、各パッチの境界頂点がシグナリングされたときにデコーダ側から推論され得るので、いくつかのコーディングされたビットストリームは、占有マップを有さなくてもよい。いくつかの実装では、ジオメトリパッチは、コーディングされたジオメトリマップに対応するパッチのうちの1つである。
いくつかの実装では、予測ジオメトリ値及び予測残差に基づいて、境界頂点のジオメトリ情報を再構成することは、P+Q*QSに従って境界頂点のジオメトリ情報を再構成することを含み、Pは予測ジオメトリ値であり、Qは予測残差であり、QSは量子化ステップサイズである。いくつかの実装では、予測ジオメトリ値(P)は、3D座標(x_P、y_P、z_P)のセットを含み、及び/又は、予測残差(Q)は、3D座標(x_Q、y_Q、z_Q)のセットを含む。量子化ステップサイズ(QS)は、全ての3つの3D座標について同じである単一の値(QS_common)でもよく、或いは、3つの値(QS_x、QS_y、QS_z)のセットでもよく、3つの値のそれぞれは3D座標内の1つの座標に対応する。再構成されたジオメトリ情報は、(x_P+x_Q*QS_common,y_P+y_Q*QS_common,z_P+z_Q*QS_common)又は(x_P+x_Q*QS_x,y_P+y_Q*QS_y,z_P+z_Q*QS_z)でもよい。
いくつかの実装では、量子化ステップサイズは、シーケンスヘッダ、フレームヘッダ又はスライスヘッダのうちの少なくとも1つを含むハイレベルシンタックス(HLS, high-level syntax)においてシグナリングされる。
いくつかの実装では、コーディングされたビットストリームから、境界頂点についての複数のジオメトリ予測を抽出することは、コーディングされたビットストリームから、ジオメトリ画像を再構築し、境界頂点に対応するジオメトリ画像内の複数のピクセルにそれぞれ基づいて、境界頂点についての複数のジオメトリ予測を取得することを含む。
いくつかの実装では、複数のジオメトリ予測に基づいて、境界頂点についての予測ジオメトリ値を決定することは、複数のジオメトリ予測の平均を計算して、平均ジオメトリ予測を取得し、平均ジオメトリ予測を境界頂点についての予測ジオメトリ値として決定することを含む。
いくつかの実装では、複数のジオメトリ予測に基づいて、境界頂点についての予測ジオメトリ値を決定することは、複数のジオメトリ予測の加重平均を計算して、加重平均ジオメトリ予測を取得し、加重平均ジオメトリ予測を境界頂点についての予測ジオメトリ値として決定することを含む。
いくつかの実装では、複数のジオメトリ予測は、第1のパッチについての第1のジオメトリ予測と、第2のパッチに対応する第2のジオメトリ予測とを含み、第1のパッチは、第2のパッチよりも大きいサンプリングレートを有し、加重平均について、第1のジオメトリ予測の第1の重みは第2のジオメトリ予測の第2の重みよりも大きい。
いくつかの実装では、複数のジオメトリ予測は、第1のパッチについての第1のジオメトリ予測と、第2のパッチに対応する第2のジオメトリ予測とを含み、第1のパッチは、第2のパッチよりも大きいパッチサイズを有し、加重平均について、第1のジオメトリ予測の第1の重みは第2のジオメトリ予測の第2の重みよりも大きい。
いくつかの実装では、複数のジオメトリ予測は、第1のパッチについての第1のジオメトリ予測と、第2のパッチに対応する第2のジオメトリ予測とを含み、第1のパッチは、第2のパッチよりも大きい量子化レベルを有し、加重平均について、第1のジオメトリ予測の第1の重みは第2のジオメトリ予測の第2の重みよりも小さい。
いくつかの実装では、複数のジオメトリ予測に基づいて、境界頂点についての予測ジオメトリ値を決定することは、複数のジオメトリ予測に基づいて予測候補リストを確立し、コーディングされたビットストリームから、予測候補リストに対応するインデックスを取得し、インデックス及び予測候補リストに基づいて予測ジオメトリ値を決定することを含む。
いくつかの実装では、予測候補リスト内のジオメトリ予測の順序は、ジオメトリ予測の復号順序に従って決定される。
いくつかの実装では、コーディングされたビットストリームから、境界頂点についての複数のジオメトリ予測を抽出することは、第2の境界頂点のジオメトリ情報を再構成し、第2の境界頂点は、境界頂点が再構成される前に再構成されること、及び/又は、第2の境界頂点のジオメトリ情報を複数のジオメトリ予測におけるジオメトリ予測として決定することを含む。
いくつかの実装では、第2の境界頂点は、境界頂点の隣接頂点である。
1つ以上の実施形態又は実装における様々なステップは、個別に、或いは、任意の形式の組み合わせによって適用されてもよい。本開示における様々な実施形態は、動的メッシュ又は静的メッシュに適用されてもよい。静的メッシュでは、メッシュの1つのフレームのみが存在してもよく、或いは、メッシュコンテンツは時間とともに変化しない。本開示における様々な実施形態は、デプス画像/属性画像/テクスチャ画像/等のコーディングに拡張されてもよい。
いくつかの実装では、xyz座標を含む境界頂点のジオメトリ情報(又は境界ジオメトリ情報と呼ばれる)は、再構成されたジオメトリ画像(対応するuv座標が与えられる)から、或いは、別の境界頂点についての以前に再構成された境界情報から予測されてもよい。
いくつかの実装では、エンコーダ側で、境界ジオメトリの予測残差は、予測値から元のジオメトリを減算することによって導出されてもよく、すなわち、Ri=Oi-Piであり、Oiは第iの境界頂点の元のxyz座標であり、Piは第iの境界頂点の予測されたxyz座標であり、Riは第iの境界頂点のxyz座標の予測残差である。次いで、予測残差が量子化され、エントロピーコーディングされてもよい。
いくつかの実装では、予測残差は、スカラー値によって量子化されてもよく、すなわち、Qi=round(Ri/QS)であり、QSは量子化ステップサイズを表す。QSは、ハイレベルシンタックス(HLS, high-level syntax)、例えば、シーケンスヘッダ、フレームヘッダ、スライスヘッダ等においてシグナリングされてもよい。
いくつかの実装では、デコーダ側で、再構成されたジオメトリ情報は、Reci=Pi+Qi*QSによって導出されてもよい。
いくつかの実装では、境界ジオメトリ情報の予測は、以下の例示的な方法のうちの少なくとも1つに従って実行されてもよい。
1つの例示的な方法では、境界ジオメトリ情報の予測は、再構成されたジオメトリ画像から導出されてもよく、すなわち、Pi=GIM_REC(ui,vi)であり、GIM_RECは、再構成されたジオメトリ画像を示し、Piは第iの頂点境界の予測されたジオメトリxyz座標であり、(ui,vi)は第iの境界頂点のジオメトリ画像におけるUV座標である。
1つの境界頂点(xyz)が複数のuv座標に対応してもよいことを考慮して、複数仮説予測のうちの1つ以上が、複数のuv座標による複数のPi=GIM_REC(ui,vi)に基づく予測を取得するために使用されてもよい。
いくつかの実装では、複数の予測の平均値が、第iの境界頂点の予測として使用されてもよく、すなわち、
であり、Nは同じxyzジオメトリ位置に対応するuv座標の総数であり、(uj,vj)は第jの対応関係である。
いくつかの実装では、予測候補リストが確立されてもよく、1つの項目が、境界頂点の予測として予測候補リストから選択されてもよい。1つのこのような予測子頂点は、複数の予測のうちの1つに由来してもよい。非限定的な例では、複数の予測の符号化/復号順序が、リスト内の複数の候補の順序を確立するために使用されてもよい。現在の頂点のジオメトリ情報を予測するために1つより多くの予測子が許容されるとき、リスト内のどれが選択されるかを示すために、インデックスがビットストリームでシグナリングされる。
いくつかの実装では、複数の予測の加重平均が、第iの境界頂点の予測として使用されてもよく、すなわち、
であり、wjは第jの対応関係の重み係数であり、これは、対応するパッチのサンプリングレート、対応するパッチサイズ等のような多くの他のファクタのうちの少なくとも1つに基づいて決定されてもよい。非限定的な例では、パッチのサンプリングレートが大きいほど、対応する重み係数は高くなり、及び/又は、パッチのパッチサイズが大きいほど、対応する重み係数は高くなる。
いくつかの実装では、境界ジオメトリ情報の予測は、以前の再構成された境界頂点から導出されてもよい。
非限定的な例として、エンコーダ側では、境界頂点のジオメトリ情報は、現在の境界頂点をコーディングするときにコーディングされており利用可能になっている別の境界頂点のジオメトリ情報によって予測されるものとして符号化されてもよく、すなわち、Pi=Recjであり、j<iであり、iは現在の境界頂点に対応し、jはコーディングされている境界頂点に対応し、現在の境界頂点をコーディングするときに利用可能になっている。デコーダ側では、境界頂点のジオメトリ情報は、現在の境界頂点を復号するときに復号(又は再構成)されており利用可能になっている別の境界頂点のジオメトリ情報によって予測されるものとして復号されてもよく、すなわち、Pi=Recjであり、j<iであり、iは現在の境界頂点に対応し、jは再構成されている境界頂点に対応する。
別の非限定的な例では、境界頂点のジオメトリ情報は、同じパッチのその隣接する境界頂点に基づいて予測されてもよい。3D空間では、境界頂点のセットがパッチの境界を形成する。これらの頂点の中で、2つの隣接する頂点は位置が互いに近いため、これらのジオメトリ情報も互いに近く、高い予測効率をもたらす。
別の非限定的な例では、境界頂点のジオメトリ情報は、現在の境界頂点のジオメトリ情報をコーディングするときにコーディングされており利用可能になっている複数の境界頂点のジオメトリ情報によって予測されてもよい。複数の対応する境界頂点が(複数のUV座標を通じて)現在の境界頂点を予測するために利用可能であるとき、以下の予測メカニズムが適用されてもよい。
1つの予測メカニズムでは、予測候補リストが確立されてもよい。1つのこのような予測子頂点は、1つの以前にコーディングされたパッチに由来してもよい。非限定的な例では、パッチの符号化/復号順序は、リスト内の複数の候補の順序を確立するために使用されてもよい。現在の頂点のジオメトリ情報を予測するために1つより多くの予測子が許容されるとき、リスト内のどれが選択されるかを示すために、インデックスがビットストリームでシグナリングされる。
別の予測メカニズムでは、複数の候補(適用可能な場合)の平均又は加重平均が、現在の境界頂点を予測するために生成されてもよい。各候補についての重み付けパラメータは、1つ以上のファクタに従って決定されてもよい。非限定的な例では、重み係数は、候補予測子がコーディングされるときの量子化レベル(QS等)に基づいて決定されてもよい。例えば、より大きい量子化ステップサイズ(QS)に対応する、重く量子化された候補は、より小さい重みに対応してもよい。
本開示で開示された技術は、任意の順序で別個に或いは組み合わせて使用されてよい。さらに、本技術(例えば方法、実施形態)、エンコーダ及びデコーダのそれぞれは、処理回路(例えば1つ以上のプロセッサ又は1つ以上の集積回路)によって実装されてもよい。いくつかの例では、1つ以上のプロセッサは、非一時的なコンピュータ可読媒体に記憶されているプログラムを実行する。
上記の技術は、コンピュータ可読命令を使用してコンピュータソフトウェアとして実装され、1つ以上のコンピュータ可読媒体に物理的に記憶できる。例えば図12は、開示される主題の特定の実施形態を実装するのに適したコンピュータシステム(1300)を示す。
コンピュータソフトウェアは、アセンブリ、コンパイル、リンキング又は同様のメカニズムの対象となり得る任意の適切な機械コード又はコンピュータ言語を使用してコーディングされ、1つ以上のコンピュータ中央処理装置(CPU, central processing unit)、グラフィクス処理ユニット(GPU, Graphics Processing Unit)等によって直接的に或いは解釈、マイクロコード実行等を通じて実行できる命令を含む、コードを作成することができる。
命令は、例えばパーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイス等を含む様々なタイプのコンピュータ又はその構成要素において実行できる。
コンピュータシステム(1300)について図12に示す構成要素は、本質的に例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用範囲又は機能に関して、如何なる制限も示唆するように意図されていない。また、構成要素の構成は、コンピュータシステム(1300)の例示的な実施形態に示される構成要素の任意の1つ又は組み合わせに関する如何なる依存性又は要件も有するものとして解釈されるべきではない。
コンピュータシステム(1300)は、特定のヒューマンインタフェース入力デバイスを含んでもよい。このようなヒューマンインタフェース入力デバイスは、例えば触覚入力(キーストローク、スワイプ、データグローブの動き等)、オーディオ入力(声、拍手等)、視覚入力(ジェスチャ等)、嗅覚入力(図示せず)を通じて、1人以上の人間のユーザによる入力に応答してもよい。また、ヒューマンインタフェース入力デバイスは、オーディオ(音声、音楽、環境音等)、画像(スキャンされた画像、静止画像カメラから得られる写真画像等)、ビデオ(2次元ビデオ、立体映像を含む3次元ビデオ等)のような、人間による意識的入力に必ずしも直接関係しているとは限らない、特定の媒体をキャプチャするためにも使用できる。
ヒューマンインタフェース入力デバイスは、キーボード(1301)、マウス(1302)、トラックパッド(1303)、タッチ画面(1310)、データグローブ(図示せず)、ジョイスティック(1305)、マイクロホン(1306)、スキャナ(1307)及びカメラ(1308)(それぞれの1つのみが図示される)のうちの1つ以上を含んでもよい。
コンピュータシステム(1300)はまた、特定のヒューマンインタフェース出力デバイスも含んでもよい。このようなヒューマンインタフェース出力デバイスは、例えば触覚出力、音響、光及び嗅覚/味覚を通じて、1人以上の人間のユーザの感覚を刺激してもよい。このようなヒューマンインタフェース出力デバイスは、触覚出力デバイス(例えばタッチ画面(1310)、データグローブ(図示せず)又はジョイスティック(1305)による触覚フィードバックであるが、入力デバイスとして機能しない触覚フィードバックデバイスが存在する可能性もある)、オーディオ出力デバイス(スピーカー(1309)、ヘッドフォン(図示せず)等)、視覚出力デバイス(各々タッチ画面入力機能の有無にかかわらず、各々触覚フィードバック機能の有無にもかかわらないが、その一部は、立体画像出力や仮想現実グラス(図示せず)、ホログラフィックディスプレイ及びスモークタンク(図示せず)のような手段を通じて、2次元視覚出力又は3次元超の出力を出力することができる、CRT画面、LCD画面、プラズマ画面、OLED画面を含む画面(1310)等)及びプリンタ(図示せず)を含んでよい。
コンピュータシステム(1300)はまた、CD/DVDを有するCD/DVD ROM/RW(1320)を含む光媒体又は類似の媒体(1321)、サムドライブ(1322)、取り外し可能ハードドライブ又はソリッドステートドライブ(133)、テープ及びフロッピーディスク(図示せず)のようなレガシー磁気媒体、セキュリティドングル(図示せず)のような特別なROM/ASIC/PLDベースのデバイスのような、ヒューマンアクセス可能なストレージデバイス及びそれらの関連する媒体も含むことができる。
当業者はまた、現在開示されている主題に関連して使用されるとき、「コンピュータ可読媒体」という用語が、伝送媒体、搬送波又は他の一時的信号を包含しないことを理解すべきである。
コンピュータシステム(1300)はまた、1つ以上の通信ネットワーク(1355)へのインタフェース(1354)も含むことができる。ネットワークは、例えば無線、有線、光とすることができる。ネットワークは更に、ローカル、ワイドエリア、メトロポリタン、車両及び産業用、リアルタイム、遅延耐性等とすることができる。ネットワークの例は、イーサネット(登録商標)、無線LAN等のローカルエリアネットワーク、GSM(登録商標)、3G、4G、5G、LTE等を含むセルラーネットワーク、ケーブルTV、衛星TV及び地上放送TVを含むTV有線又は無線ワイドエリアデジタルネットワーク、CANBus等を含む車両及び産業用ネットワークを含む。特定のネットワークは、一般的に、特定の汎用データポート又は周辺バス(1349)に取り付けられ外部ネットワークインタフェースアダプタ(例えばコンピュータシステム(1300)のUSBポート等)を必要とし、他のものは、一般的に、後述するシステムバスへの取り付けによって(例えばPCコンピュータシステムへのイーサネット(登録商標)インタフェース又はスマートフォンコンピュータシステムへのセルラーネットワークインタフェース)、コンピュータシステム(1300)のコアに統合される。これらのネットワークのいずれかを使用して、コンピュータシステム(1300)は、他のエンティティと通信することができる。このような通信は、例えばローカル又はワイドエリアデジタルネットワークを使用して、他のコンピュータシステムに対する、単方向の受信専用(例えば放送TV)、単方向の送信専用(例えば特定のCANbusから特定のCANbusデバイスへ)又は双方向とすることができる。上記のように、特定のプロトコル及びプロトコルスタックが、これらのネットワーク及びネットワークインタフェースのそれぞれにおいて使用ができる。
上記のヒューマンインタフェースデバイス、ヒューマンアクセス可能なストレージデバイス及びネットワークインタフェースは、コンピュータシステム(1300)のコア(1340)に取り付けられることができる。
コア(1340)は、1つ以上の中央処理装置(CPU)(1341)、グラフィクス処理ユニット(GPU)(1342)、フィールドプログラマブルゲートアレイ(FPGA)(1343)の形式の専用のプログラマブル処理ユニット、特定のタスク用のハードウェアアクセラレータ(1344)、グラフィクスアダプタ(1350)等を含むことができる。これらのデバイスは、読取専用メモリ(ROM)(1345)、ランダムアクセスメモリ(RAM)(1346)、内部非ユーザアクセス可能ハードドライブ、SSD等の内部大容量ストレージ(1347)とともに、システムバス(1348)を通じて接続されてもよい。いくつかのコンピュータシステムでは、システムバス(1348)は、更なるCPU、GPU等による拡張を可能にするために、1つ以上の物理的プラグの形式でアクセス可能である。周辺デバイスは、コアのシステムバス(1348)に直接に或いは周辺バス(1349)を通じて取り付けられることができる。一例では、画面(1310)がグラフィクスアダプタ(1350)に接続できる。周辺バスのアーキテクチャは、PCI、USB等を含む。
CPU(1341)、GPU(1342)、FPGA(1343)及びアクセラレータ(1344)は、組み合わされて上記のコンピュータコードを構成することができる、特定の命令を実行できる。そのコンピュータコードは、ROM(1345)又はRAM(1346)に記憶できる。また、一時的なデータはRAM(1346)に記憶でき、一方、永久的なデータは、例えば内部大容量ストレージ(1347)に記憶できる。1つ以上のCPU(1341)、GPU(1342)、大容量ストレージ(1347)、ROM(1345)、RAM(1346)等と密接に関連付けることができるキャッシュメモリの使用を通じて、メモリデバイスのいずれかに対する高速記憶及び取り出しを可能にできる。
コンピュータ可読媒体は、様々なコンピュータ実装される動作を実行するためのコンピュータコードをその上に有することができる。媒体及びコンピュータコードは、本開示の目的のために特別に設計及び構築されたものとすることができ、或いは、これらは、コンピュータソフトウェア技術の当業者に周知且つ利用可能な種類のものとすることができる。
限定ではなく例として、アーキテクチャ(1300)及び特にコア(1340)を有するコンピュータシステムは、プロセッサ(CPU、GPU、FPGA、アクセラレータ等を含む)が1つ以上の有形のコンピュータ可読媒体に具現化されたソフトウェアを実行する結果としての機能を提供することができる。このようなコンピュータ可読媒体は、上記で紹介したようなユーザアクセス可能な大容量ストレージ、並びにコア内部大容量ストレージ(1347)又はROM(1345)のような非一時的な性質のコア(1340)の特定のストレージに関連付けられる媒体とすることができる。本開示の様々な実施形態を実装するソフトウェアは、このようなデバイスに記憶され、コア(1340)によって実行できる。コンピュータ可読媒体は、特定のニーズに従って、1つ以上のメモリデバイス又はチップを含むことができる。ソフトウェアは、コア(1340)及び特にその中のプロセッサ(CPU、GPU、FPGA等を含む)に、RAM(1346)に記憶されるデータ構造を定義することと、ソフトウェアによって定義されるプロセスに従ってそのようなデータ構造を修正することとを含む、本明細書で説明される特定のプロセス又は特定のプロセスの特定の部分を実行させることができる。さらに或いは代替として、コンピュータシステムは、論理ハードワイヤ又は他の方法で回路(例えばアクセラレータ(1344))内に具現化された結果として機能を提供することができ、この回路は、ソフトウェアの代わりに或いはソフトウェアとともに動作して、本明細書で説明される特定のプロセス又は特定のプロセスの特定の部分を実行することができる。ソフトウェアへの言及はロジックを含み、また、必要に応じて、その逆も可能である。コンピュータ可読媒体への参照は、実行のためのソフトウェアを記憶する回路(集積回路(IC)等)、実行のためのロジックを具体化する回路又は適切な場合にはその双方を包含することができる。本開示は、ハードウェアとソフトウェアの任意の適切な組み合わせを包含する。
本開示は、いくつかの例示的な実施形態について説明しているが、本開示の範囲内にある変更、置換及び様々な代替均等物が存在する。したがって、当業者は、本明細書に明示的に示されていないか或いは説明されていないが、本開示の原理を具体化しており、よって、本開示の精神及び範囲内にある、様々システム及び方法を考案することができることが理解される。
Claims (17)
- 3次元メッシュのためのジオメトリパッチを復号するための方法であって、
命令を記憶するメモリと、前記メモリと通信するプロセッサとを含むデバイスによって、3次元メッシュのためのジオメトリパッチを含むコーディングされたビットストリームを受信するステップと、
前記デバイスによって、前記コーディングされたビットストリームから、前記3次元メッシュ内の境界頂点についてのジオメトリ座標のセットに対応する点のセットを含む前記ジオメトリパッチについての再構成されたジオメトリ画像を抽出するステップと、
前記デバイスによって、前記ジオメトリ座標のセットに基づいて、前記境界頂点についての3Dジオメトリ座標を導出するステップと、
前記デバイスによって、前記境界頂点についての予測残差を取得するステップと、
前記デバイスによって、前記導出された3Dジオメトリ座標及び前記予測残差に基づいて前記境界頂点のジオメトリ情報を再構成するステップと
を含む方法。 - 前記コーディングされたビットストリームは、
コーディングされたジオメトリマップ又は
コーディングされたメタデータ
のうちの少なくとも1つを含む、請求項1に記載の方法。 - 前記導出された3Dジオメトリ座標及び前記予測残差に基づいて前記境界頂点の前記ジオメトリ情報を再構成するステップは、
P+Q*QSに従って前記境界頂点の前記ジオメトリ情報を再構成するステップであって、Pは前記導出された3Dジオメトリ座標であり、Qは前記予測残差であり、QSは量子化ステップサイズである、ステップを含む、請求項1に記載の方法。 - 前記量子化ステップサイズは、シーケンスヘッダ、フレームヘッダ又はスライスヘッダのうちの少なくとも1つを含むハイレベルシンタックス(HLS)においてシグナリングされる、請求項3に記載の方法。
- 前記コーディングされたビットストリームから、前記3次元メッシュ内の前記境界頂点についての前記ジオメトリ座標のセットに対応する前記点のセットを含む前記ジオメトリパッチについての前記再構成されたジオメトリ画像を抽出するステップは、
前記コーディングされたビットストリームから、ジオメトリ画像を再構成するステップと、
前記再構成されたジオメトリ画像内の前記点のセットのピクセル値に基づいて、前記境界頂点についての前記ジオメトリ座標のセットを取得するステップと
を含む、請求項1に記載の方法。 - 前記ジオメトリ座標のセットに基づいて、前記境界頂点についての前記3Dジオメトリ座標を導出するステップは、
前記ジオメトリ座標のセットの平均を計算して、平均化された3Dジオメトリ座標を取得するステップと、
前記平均化された3Dジオメトリ座標を、前記境界頂点についての前記導出された3Dジオメトリ座標として決定するステップと
を含む、請求項1に記載の方法。 - 前記ジオメトリ座標のセットに基づいて、前記境界頂点についての前記3Dジオメトリ座標を導出するステップは、
前記ジオメトリ座標のセットの加重平均を計算して、加重平均された3Dジオメトリ座標を取得するステップと、
前記加重平均された3Dジオメトリ座標を、前記境界頂点についての前記導出された3Dジオメトリ座標として決定するステップと
を含む、請求項1に記載の方法。 - 前記ジオメトリ座標のセットは、第1のパッチについての第1のジオメトリ座標と、第2のパッチに対応する第2のジオメトリ座標とを含み、
前記第1のパッチは、前記第2のパッチよりも大きいサンプリングレートを有し、
前記加重平均について、前記第1のジオメトリ座標の第1の重みは前記第2のジオメトリ座標の第2の重みよりも大きい、請求項7に記載の方法。 - 前記ジオメトリ座標のセットは、第1のパッチについての第1のジオメトリ座標と、第2のパッチに対応する第2のジオメトリ座標とを含み、
前記第1のパッチは、前記第2のパッチよりも大きいパッチサイズを有し、
前記加重平均について、前記第1のジオメトリ座標の第1の重みは前記第2のジオメトリ座標の第2の重みよりも大きい、請求項7に記載の方法。 - 前記ジオメトリ座標のセットは、第1のパッチについての第1のジオメトリ座標と、第2のパッチに対応する第2のジオメトリ座標とを含み、
前記第1のパッチは、前記第2のパッチよりも大きい量子化レベルを有し、
前記加重平均について、前記第1のジオメトリ座標の第1の重みは前記第2のジオメトリ座標の第2の重みよりも小さい、請求項7に記載の方法。 - 前記ジオメトリ座標のセットに基づいて、前記境界頂点についての前記3Dジオメトリ座標を導出するステップは、
前記ジオメトリ座標のセットに基づいて候補リストを確立するステップと、
前記コーディングされたビットストリームから、前記候補リストに対応するインデックスを取得するステップと、
前記インデックス及び前記候補リストに基づいて、前記境界頂点についての前記導出された3Dジオメトリ座標を決定するステップと
を含む、請求項1に記載の方法。 - 前記候補リスト内のジオメトリ座標の順序は、これらの復号順序に従って決定される、請求項11に記載の方法。
- 前記コーディングされたビットストリームから、前記3次元メッシュ内の前記境界頂点についての前記ジオメトリ座標のセットに対応する前記点のセットを含む前記ジオメトリパッチについての前記再構成されたジオメトリ画像を抽出するステップは、
第2の境界頂点のジオメトリ情報を再構成するステップであって、前記第2の境界頂点は、前記境界頂点が再構成される前に再構成される、ステップと、
前記第2の境界頂点の前記ジオメトリ情報を前記ジオメトリ座標のセット内のジオメトリ座標として決定するステップと
を含む、請求項1に記載の方法。 - 前記第2の境界頂点は、前記境界頂点の隣接頂点である、請求項13に記載の方法。
- 3次元メッシュのためのジオメトリパッチを復号するための装置であって、
命令を記憶するメモリと
前記メモリと通信するプロセッサと
を含み、前記プロセッサが前記命令を実行すると、前記プロセッサは、当該装置に請求項1乃至14のうちのいずれか1項に記載の方法を実行させるように構成される、装置。 - 命令を含むコンピュータプログラムであって、
前記命令がプロセッサによって実行されると、前記命令は、前記プロセッサに請求項1乃至14のうちのいずれか1項に記載の方法を実行させるように構成される、コンピュータプログラム。 - 3次元メッシュのためのジオメトリパッチを符号化するための方法であって、
命令を記憶するメモリと、前記メモリと通信するプロセッサとを含むデバイスによって、3次元メッシュのためのジオメトリパッチを含むコーディングされたビットストリームを送信するステップを含み、
前記コーディングされたビットストリームは、前記3次元メッシュ内の境界頂点についてのジオメトリ座標のセットに対応する点のセットを含む前記ジオメトリパッチについての再構成されたジオメトリ画像を含み、
前記境界頂点についての3Dジオメトリ座標は、前記ジオメトリ座標のセットに基づいて導出され、
前記デバイスによって、前記境界頂点のジオメトリ情報は、前記導出された3Dジオメトリ座標及び前記境界頂点についての予測残差に基づいて再構成される、方法。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202263319976P | 2022-03-15 | 2022-03-15 | |
US63/319,976 | 2022-03-15 | ||
US17/973,792 US20230298216A1 (en) | 2022-03-15 | 2022-10-26 | Predictive coding of boundary geometry information for mesh compression |
US17/973,792 | 2022-10-26 | ||
PCT/US2022/048355 WO2023177422A1 (en) | 2022-03-15 | 2022-10-31 | Predictive coding of boundary geometry information for mesh compression |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2024515984A true JP2024515984A (ja) | 2024-04-11 |
Family
ID=88023883
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023566651A Pending JP2024515984A (ja) | 2022-03-15 | 2022-10-31 | メッシュ圧縮のための境界ジオメトリ情報の予測コーディング |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230298216A1 (ja) |
JP (1) | JP2024515984A (ja) |
KR (1) | KR20230146629A (ja) |
WO (1) | WO2023177422A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240020935A1 (en) * | 2022-07-15 | 2024-01-18 | The Boeing Company | Modeling system for 3d virtual model |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180053324A1 (en) * | 2016-08-19 | 2018-02-22 | Mitsubishi Electric Research Laboratories, Inc. | Method for Predictive Coding of Point Cloud Geometries |
US11016470B2 (en) * | 2018-11-09 | 2021-05-25 | Autodesk, Inc. | Conversion of mesh geometry to watertight boundary representation |
US11127166B2 (en) * | 2019-03-01 | 2021-09-21 | Tencent America LLC | Method and apparatus for enhanced patch boundary identification for point cloud compression |
US11798196B2 (en) * | 2020-01-08 | 2023-10-24 | Apple Inc. | Video-based point cloud compression with predicted patches |
EP4081828A4 (en) * | 2020-01-14 | 2023-05-24 | Huawei Technologies Co., Ltd. | SCALING PARAMETERS FOR V-PCC |
US20230290010A1 (en) * | 2022-03-11 | 2023-09-14 | Apple Inc. | Motion compression for efficient dynamic mesh coding |
-
2022
- 2022-10-26 US US17/973,792 patent/US20230298216A1/en active Pending
- 2022-10-31 WO PCT/US2022/048355 patent/WO2023177422A1/en active Application Filing
- 2022-10-31 KR KR1020237031887A patent/KR20230146629A/ko unknown
- 2022-10-31 JP JP2023566651A patent/JP2024515984A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2023177422A1 (en) | 2023-09-21 |
KR20230146629A (ko) | 2023-10-19 |
US20230298216A1 (en) | 2023-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230063575A1 (en) | Patch zippering for mesh compression | |
KR20230091987A (ko) | 인코더에 의한 메시 압축을 위한 적응적 샘플링 방법 및 장치 | |
US20230298216A1 (en) | Predictive coding of boundary geometry information for mesh compression | |
JP7476432B2 (ja) | メッシュ復元のための方法、装置及びコンピュータプログラム | |
KR20230145176A (ko) | 메시 압축에서 패치들에 대한 무중첩 속성 체크 | |
JP2024509623A (ja) | メッシュ展開のための方法、装置、およびコンピュータプログラム | |
US11967025B2 (en) | Detection of boundary loops in non-manifold meshes | |
US11924434B2 (en) | 2D atlas adaptive sampling in 3D mesh compression | |
US20230306645A1 (en) | Convolutional Approach to Fast and Compact Packing of 3D Mesh Into 2D Maps | |
US20230281876A1 (en) | Mesh compression with constrained geometry dynamic range | |
US20230177738A1 (en) | Dynamic mesh compression based on point cloud compression | |
US20230090677A1 (en) | Coding connectivity in vertex reordering methods for mesh compression | |
JP2023552414A (ja) | メッシュ圧縮のための頂点の並べ替え | |
KR20230137993A (ko) | 추론된 텍스처 좌표들을 갖는 메시 압축 | |
CN117083636A (zh) | 用于网格压缩的边界几何信息的预测编码 | |
KR20230132818A (ko) | 차트 기반 메시 압축을 위한 방법 및 장치 | |
JP2023548237A (ja) | 3次元(3d)メッシュのuv座標を処理するための方法、装置及びコンピュータプログラム | |
EP4182890A1 (en) | Methods and apparatuses for dynamic mesh compression |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20231027 |