JP2024516244A - メッシュ圧縮におけるパッチの重複のないプロパティのチェック - Google Patents
メッシュ圧縮におけるパッチの重複のないプロパティのチェック Download PDFInfo
- Publication number
- JP2024516244A JP2024516244A JP2023566744A JP2023566744A JP2024516244A JP 2024516244 A JP2024516244 A JP 2024516244A JP 2023566744 A JP2023566744 A JP 2023566744A JP 2023566744 A JP2023566744 A JP 2023566744A JP 2024516244 A JP2024516244 A JP 2024516244A
- Authority
- JP
- Japan
- Prior art keywords
- patch
- boundary
- vertex
- determining
- line segment
- 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
- 230000006835 compression Effects 0.000 title description 37
- 238000007906 compression Methods 0.000 title description 37
- 238000000034 method Methods 0.000 claims abstract description 127
- 238000012545 processing Methods 0.000 claims abstract description 58
- 238000005192 partition Methods 0.000 claims abstract description 8
- 230000003190 augmentative effect Effects 0.000 claims description 20
- 230000004044 response Effects 0.000 claims description 17
- 230000008569 process Effects 0.000 description 43
- 238000010586 diagram Methods 0.000 description 22
- 230000015654 memory Effects 0.000 description 18
- 238000013139 quantization Methods 0.000 description 16
- 239000013598 vector Substances 0.000 description 16
- 230000033001 locomotion Effects 0.000 description 15
- 238000013507 mapping Methods 0.000 description 15
- 230000006837 decompression Effects 0.000 description 13
- 238000003860 storage Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 10
- 238000012360 testing method Methods 0.000 description 10
- 238000009499 grossing Methods 0.000 description 9
- 238000012856 packing Methods 0.000 description 8
- 239000000872 buffer Substances 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 230000002123 temporal effect Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 241000023320 Luma <angiosperm> Species 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 108050005509 3D domains Proteins 0.000 description 2
- 241001290864 Schoenoplectus Species 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000037406 food intake Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000005266 casting Methods 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method 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
- 230000007613 environmental effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000000779 smoke Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
- 239000004753 textile Substances 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000004804 winding Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/506—Illumination models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/30—Determination of transform parameters for the alignment of images, i.e. image registration
- G06T7/33—Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods
- G06T7/337—Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods involving reference images or patches
-
- 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
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/21—Collision detection, intersection
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
処理回路は、第1のパッチの第1の頂点に関連付けられた第1のUV座標と、第2のパッチの第2の頂点に関連付けられた第2のUV座標とを受け取る。第1のパッチ及び第2のパッチは3次元(3D)メッシュからのパーティションであり、3Dメッシュは、オブジェクトの表面をポリゴンで表し、パッチにパーティション分割される。第1のパッチは第1の頂点を含み、第1の頂点は、第1のUV座標に従って2次元(2D)マップ内の第1の2Dパッチの第1の2D頂点にマッピングされる。第2のパッチは第2の頂点を含み、第2の頂点は、第2のUV座標に従って2Dマップ内の第2の2Dパッチの第2の2D頂点にマッピングされる。処理回路は、第1の2Dパッチ及び第2の2Dパッチに様々な重複チェック技術を適用することができる。
Description
参照による組み込み
本願は、2022年10月19日に出願した、“CHECKING OVERLAPPING-FREE PROPERTY FOR PATCHES IN MESH COMPRESSION”という表題の米国特許出願第17/969,580号に対する優先権の利益を主張するものであり、この出願は2021年12月20日に出願した、“Checking Overlapping-free Property for Patches in Mesh Compression”という表題の米国仮出願第63/291,842号に対する優先権の利益を主張する。先行出願の開示は、それらの全体が参照により本明細書に組み込まれる。
本願は、2022年10月19日に出願した、“CHECKING OVERLAPPING-FREE PROPERTY FOR PATCHES IN MESH COMPRESSION”という表題の米国特許出願第17/969,580号に対する優先権の利益を主張するものであり、この出願は2021年12月20日に出願した、“Checking Overlapping-free Property for Patches in Mesh Compression”という表題の米国仮出願第63/291,842号に対する優先権の利益を主張する。先行出願の開示は、それらの全体が参照により本明細書に組み込まれる。
本開示は、概して、メッシュコーディングに関連する実施形態について説明する。
本明細書で提供する背景技術の説明は、本開示の内容を概ね提示することを目的としている。現在名前が記載されている発明者の成果(work)は、この背景技術の段落に記載されている限りにおいて、出願時に先行技術として認定され得ない記載の態様と同様に、明示的にも黙示的にも、本開示に対して先行技術として認められるものではない。
世界のオブジェクト、及び世界の環境等の世界を3次元(3D)空間で捉えて表現するために、様々な技術が開発されている。世界の3D表現により、より没入型の相互作用及びコミュニケーションが可能になる。いくつかの例では、点群及びメッシュを世界の3D表現として使用することができる。
本開示の態様は、メッシュコーディング(例えば、圧縮及び解凍(decompression:圧縮解除))のための方法及び機器を提供する。いくつかの例では、メッシュコーディングのための機器は処理回路を含む。処理回路は、第1のパッチの第1の頂点に関連付けられた第1のUV座標と、第2のパッチの第2の頂点に関連付けられた第2のUV座標とを受け取る。第1のパッチ及び第2のパッチは3次元(3D)メッシュからのパーティションであり、3Dメッシュは、オブジェクトの表面をポリゴンで表し、パッチにパーティション分割される。第1のパッチは第1の頂点を含み、第1の頂点は、第1のUV座標に従って2次元(2D)マップ内の第1の2Dパッチの第1の2D頂点にマッピングされる。第2のパッチは第2の頂点を含み、第2の頂点は、第2のUV座標に従って2Dマップ内の第2の2Dパッチの第2の2D頂点にマッピングされる。いくつかの実施形態では、処理回路は、2Dマップ内の第1の2Dパッチを取り囲む第1の領域を決定し、2Dマップ内の第2の2Dパッチを取り囲む第2の領域を決定する。処理回路は、第1の領域と第2の領域に重複がないと判定する。処理回路は、第1の領域と第2の領域に重複がないことに応じて、第1の2Dパッチと第2の2Dパッチに重複がないと判定する。
一実施形態では、第1の領域は第1の2Dパッチの第1の境界ボックスであり、第2の領域は第2の2Dパッチの第2の境界ボックスである。いくつかの例では、処理回路は、第1のUV座標における最小U座標値、最大U座標値、最小V座標値、及び最大V座標値に従って第1の境界ボックスを決定し、第2のUV座標における最小U座標値、最大U座標値、最小V座標値、及び最大V座標値に従って第2の境界ボックスを決定する。
別の実施形態では、第1の領域は、第1の2Dパッチに対する第1の拡大2Dパッチの第1の拡大境界ボックスであり、第2の領域は、第2の2Dパッチに対する第2の拡大2Dパッチの第2の拡大境界ボックスである。いくつかの例では、処理回路は、第1のUV座標における最小U座標値、最大U座標値、最小V座標値、及び最大V座標値に従って第1の境界ボックスを決定し、第2のUV座標における最小U座標値、最大U座標値、最小V座標値、及び最大V座標値に従って第2の境界ボックスを決定する。処理回路は、第1の境界ボックスの境界を拡大することによって第1の拡大境界ボックスを決定し、第2の境界ボックスの境界を拡大することによって第2の拡大境界ボックスを決定する。
いくつかの実施形態では、処理回路は、第1の2Dパッチと第2の2Dパッチとの両方に点が存在しないことに応じて、第1の2Dパッチと第2の2Dパッチに重複がないと判定する。一実施形態では、処理回路は、第1の2Dパッチ内の整数ピクセル位置にあるそれぞれの第1の点が第2の2Dパッチ内に存在するかどうかをチェックし、第1の2Dパッチ内のそれぞれの第1の点が第2の2Dパッチの境界上にあるかどうかをチェックする。
別の実施形態では、処理回路は、第1の2D頂点のそれぞれの第1の境界頂点が第2の2Dパッチ内に存在するかどうかをチェックし、第2の2D頂点のそれぞれの第2の境界頂点が第1の2Dパッチ内に存在するかどうかをチェックする。処理回路はまた、第1の2D頂点のそれぞれの第1の境界頂点が第2の2Dパッチの境界上にあるかどうかをチェックし、第2の2D頂点のそれぞれの第2の境界頂点が第1の2Dパッチの境界上にあるかどうかをチェックする。
いくつかの実施形態では、第1の2Dパッチと第2の2Dパッチに重複がないと判定するために、処理回路は、第1の2Dパッチの第1の境界と第2の2Dパッチの第2の境界とに交差がないと判定し、第1の2Dパッチ及び第2の2Dパッチのいずれも、第1の2Dパッチ及び第2の2Dパッチのいずれか(another)の内部に存在しないと判定する。
第1の境界と第2の境界とに交差がないかどうかをチェックするために、いくつかの例では、処理回路は、第1の境界の第1の線分と第2の境界の第2の線分とについて、第1の線分の第1の始点、第2の線分の第2の始点、及び第2の線分の第2の端部によって形成される第1の三角形の第1の向きを決定し、第1の線分の第1の終点、第2の線分の第2の始点、及び第2の線分の第2の端部によって形成される第2の三角形の第2の向きを決定し、第1の向きが第2の向きと異なることに応じて、第1の境界と第2の境界とが交差すると判定する。
いくつかの例では、処理回路は、第1の始点及び第1の終点のうちの少なくとも一方が第2の線分上にあることに応じて、第1の線分と第2の線分が交差すると判定し、第2の始点及び第2の終点のうちの少なくとも一方が第1の線分上にあることに応じて、第1の線分と第2の線分が交差すると判定する。
いくつかの例では、処理回路は、第2の線分の第2の始点、第1の線分の第1の始点、及び第1の線分の第1の端部によって形成される第3の三角形の第3の向きを決定し、第2の線分の第2の終点、第1の線分の第1の始点、及び第1の線分の第1の端部によって形成される第4の三角形の第4の向きを決定する。処理回路は、第3の向きが第4の向きと異なることに応じて、第1の線分と第2の線分が交差すると判定する。
いくつかの例では、第1の2Dパッチ及び第2の2Dパッチのいずれも第1の2Dパッチ及び第2の2Dパッチの他方(the other)の内側に存在しないと判定するために、処理回路は、第1の2Dパッチの第1の点が第2の2Dパッチの内側に存在しないと判定し、第2の2Dパッチの第2の点が第1の2Dパッチの内側に存在しないと判定する。
いくつかの実施形態では、処理回路は、第1の2Dパッチの第1の境界の第1の境界ピクセルに第1のサイズの第1の拡大を適用することによって、第1の拡大2Dパッチを決定し、第2の2Dパッチの第2の境界の第2の境界ピクセルに第1のサイズの第2の拡大を適用することによって、第2の拡大2Dパッチを決定する。処理回路は、第1の拡大2Dパッチと第2の拡大2Dパッチに重複がないかどうかをチェックすることができる。
第1の拡大2Dパッチと第2の拡大2Dパッチに重複がないかどうかをチェックするために、いくつかの例では、処理回路は、第1の2D頂点内の第1の境界頂点に、第1のサイズを2倍にする第2のサイズの第3の拡大を適用することによって、第1の2倍に拡大される正方形を決定し、第2の2D頂点内の第2の境界頂点に、第2のサイズの第4の拡大を適用することによって、第2の2倍に拡大される正方形を決定する。処理回路は、第1の境界における第1の境界エッジと、第1の2倍に拡大される正方形の第1の近傍境界エッジとを含む線分の第1のセットを決定し、第2の境界の第2の境界エッジと、第2の2倍に拡大される正方形の第2の近傍境界エッジとを含む線分の第2のセットを決定する。次に、処理回路は、第1のセットの線分と第2のセットの線分に交差がないかどうかを判定することができる。
いくつかの例では、処理回路は、第1の拡大2Dパッチが第2の拡大2Dパッチ内に存在しないかどうか、及び第2の拡大2Dパッチが第1の拡大2Dパッチ内に存在しないかどうかもチェックする。
一例では、第1の拡大2Dパッチと第2の拡大2Dパッチに重複がないと判定するために、処理回路は、第1の拡大2Dパッチの第1の境界ボックスと、第2の拡大2Dパッチの第2の境界ボックスとに重複がないかどうかをチェックすることができる。別の例では、処理回路は、第1の拡大2Dパッチと第2の拡大2Dパッチとの両方に点が存在しないことに応じて、第1の拡大2Dパッチと第2の拡大2Dパッチに重複がないと判定することができる。
本開示の態様は、命令を記憶する非一時的なコンピュータ可読媒体も提供し、命令がコンピュータによって実行されると、コンピュータに、メッシュコーディングのための方法のいずれか1つ又は組合せを実行させる。
開示する主題の更なる特徴、性質、及び様々な利点は、以下の詳細な説明及び添付の図面からより明らかになろう。
いくつかの例における通信システムのブロック図である。
いくつかの例におけるストリーミングシステムのブロック図である。
いくつかの例における点群フレームを符号化するためのエンコーダのブロック図である。
いくつかの例における点群フレームに対応する圧縮ビットストリームを復号化するためのデコーダのブロック図である。
いくつかの例におけるビデオデコーダのブロック図である。
いくつかの例におけるビデオエンコーダのブロック図である。
いくつかの例における点群フレームを符号化するためのエンコーダのブロック図である。
いくつかの例における点群フレームを搬送する圧縮ビットストリームを復号化するためのデコーダのブロック図である。
いくつかの例におけるアトラスへのメッシュのマッピングを示す図である。
いくつかの例における重複をチェックするために境界ボックスを使用する例を示す図である。
いくつかの例における重複をチェックするために境界ボックスを使用する例を示す図である。
いくつかの例におけるパッチ拡大の図である。
いくつかの例におけるパッチ拡大の図である。
一例におけるパッチ拡大に応じた新たな線分を示す図である。
いくつかの例におけるパッチ拡大後に重複する2つの非重複2Dパッチの図である。
いくつかの例におけるパッチ拡大後に重複する2つの非重複2Dパッチの図である。
いくつかの例におけるプロセス例の概要を示すフローチャートである。
いくつかの例におけるプロセス例の概要を示すフローチャートである。
いくつかの例におけるプロセス例の概要を示すフローチャートである。
いくつかの例におけるコンピュータシステムの概略図である。
本開示の態様は、3次元(3D)メディア処理の分野における技術を提供する。
3次元(3D)取り込み、3Dモデリング、及び3Dレンダリング等における進歩等の3Dメディア処理における技術開発により、いくつかのプラットフォーム及び装置に亘る3Dメディアコンテンツのユビキタスな存在が促進されている。一例では、赤ちゃんの最初の一歩をある大陸で取り込むことができ、メディア技術により、祖父母が別の大陸で赤ちゃんの様子を見て(おそらく対話し)、没入型の体験を楽しむことができる。本開示の一態様によれば、没入体験を向上させるために、3Dモデルは益々洗練されており、3Dモデルの作成及び消費は、データストレージ、データ送信リソース等のかなりの量のデータリソースを占有する。
本開示のいくつかの態様によれば、点群及びメッシュを3Dモデルとして使用して、没入型コンテンツを表現することができる。
点群は、一般に、3D空間内の点(point:ポイント)のセットを指すことができ、各点が、色、材料特性、テクスチャ情報、強度属性、反射率属性、動き関連属性、モダリティ属性、及び他の様々な属性等の関連する属性を有する。点群を使用すると、オブジェクト又はシーンをそのような点の構成として再構成することができる。
オブジェクトのメッシュ(メッシュモデルとも呼ばれる)は、オブジェクトの表面を記述するポリゴンを含むことができる。各ポリゴンは、3D空間内のポリゴンの頂点と、頂点をポリゴンにどのように接続するかの情報とによって規定することができる。頂点同士をどのように接続するかの情報を接続性情報と呼ぶ。いくつかの例では、メッシュは、頂点に関連付けられた色、及び法線等の属性を含むこともできる。
本開示のいくつかの態様によれば、点群圧縮(PCC)のためのいくつかのコーディングツールをメッシュ圧縮に使用することができる。例えば、メッシュを再メッシュして新しいメッシュを生成し、その新しいメッシュの接続性情報を推論することができる。新しいメッシュの頂点、及び新しいメッシュの頂点に関連付けられた属性は、点群内の点と見なすことができ、PCCコーデックを使用して圧縮することができる。
点群を使用して、オブジェクト又はシーンを点の構成として再構成することができる。点は、様々な設定の複数のカメラ、深度センサ、又はLidarを使用して取り込むことができ、再構成したシーン又はオブジェクトをリアルに表現するために、数千から最大数十億の点で構成され得る。パッチは、一般に、点群によって記述された表面の連続したサブセットを指し得る。一例では、パッチには、互いからの偏差が閾値量未満である表面法線ベクトルを有する点が含まれる。
PCCは、G-PCCと呼ばれるジオメトリベースの方式、及びV-PCCと呼ばれるビデオコーディングベースの方式等の様々な方式に従って実行することができる。本開示のいくつかの態様によれば、G-PCCは、3Dジオメトリを直接符号化し、ビデオコーディングと共有する部分があまりない純粋にジオメトリベースのアプローチであり、V-PCCは、ビデオコーディングに大きく基づいている。例えば、V-PCCは、3Dクラウドの点を2Dグリッド(画像)のピクセルにマッピングすることができる。V-PCC方式は、点群圧縮に汎用ビデオコーデックを利用することができる。本開示におけるPCCコーデック(エンコーダ/デコーダ)は、G-PCCコーデック(エンコーダ/デコーダ)又はV-PCCコーデックであり得る。
本開示の一態様によれば、V-PCC方式は、既存のビデオコーデックを使用して、点群のジオメトリ、占有、及びテクスチャを3つの別個のビデオシーケンスとして圧縮することができる。3つのビデオシーケンスを解釈するために必要な追加のメタデータは、個別に圧縮される。ビットストリーム全体のごく一部はメタデータであり、これは一例ではソフトウェア実装を使用して効率的に符号化/復号化することができる。情報の大部分はビデオコーデックによって処理される。
図1は、いくつかの例における通信システム(100)のブロック図を示す。通信システム(100)は、例えばネットワーク(150)を介して互いに通信することができる複数の端末装置を含む。例えば、通信システム(100)は、ネットワーク(150)を介して相互接続された一対の端末装置(110)及び(120)を含む。図1の例では、第1の端末装置ペア(110)及び(120)は、点群データの一方向送信を行うことができる。例えば、端末装置(110)は、端末装置(110)に接続されたセンサ(105)によって取り込まれた点群(例えば、構造を表す点)を圧縮することができる。圧縮した点群は、例えばビットストリームの形式で、ネットワーク(150)を介して他の端末装置(120)に送信することができる。端末装置(120)は、ネットワーク(150)から圧縮した点群を受信し、ビットストリームを解凍して点群を再構成し、再構成した点群を適切に表示することができる。一方向のデータ送信は、メディアサービス提供アプリケーション等で一般的であり得る。
図1の例では、端末装置(110)及び(120)はサーバ及びパーソナルコンピュータとして示され得るが、本発明の原理はこれに限定されない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、ゲーム端末、メディアプレーヤ、及び/又は専用の3次元(3D)機器への用途が見出される。ネットワーク(150)は、端末装置(110)と端末装置(120)との間で圧縮した点群を送信する任意の数のネットワークを表す。ネットワーク(150)は、例えば有線(wired)及び/又は無線通信ネットワークを含むことができる。ネットワーク(150)は、回線交換チャネル及び/又はパケット交換チャネルでデータを交換することができる。代表的なネットワークには、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、及びインターネット等が含まれる。
図2は、いくつかの例におけるストリーミングシステム(200)のブロック図を示す。ストリーミングシステム(200)は、点群の使用アプリケーションである。開示する主題は、3Dテレプレゼンスアプリケーション、及び仮想現実アプリケーション等の他の点群対応アプリケーションにも同様に適用可能である。
ストリーミングシステム(200)は、取込みサブシステム(213)を含むことができる。取込みサブシステム(213)は、点群ソース(201)、例えば、光検出測距(LIDAR)システム、3Dカメラ、3Dスキャナ、ソフトウェアで非圧縮の点群を生成する、例えば非圧縮の点群(202)を生成するグラフィックス生成コンポーネント等を含むことができる。一例では、点群(202)は、3Dカメラによって取り込まれた点を含む。点群(202)は、圧縮した点群(204)(圧縮した点群のビットストリーム)と比較した場合に、大量のデータ量を強調するために太線で示している。圧縮した点群(204)は、点群ソース(201)に結合されたエンコーダ(203)を含む電子装置(220)によって生成することができる。エンコーダ(203)は、以下でより詳細に説明するように、開示する主題の態様を可能にする、又は実現するためのハードウェア、ソフトウェア、又はそれらの組合せを含むことができる。圧縮した点群(204)(又は圧縮した点群(204)のビットストリーム)は、点群(202)のストリームと比較した場合にデータ量が少ないことを強調するために細線で示しており、将来の使用のためにストリーミングサーバ(205)に格納することができる。図2のクライアントサブシステム(206)及び(208)等の1つ又は複数のストリーミングクライアントサブシステムが、ストリーミングサーバ(205)にアクセスして、圧縮した点群(204)のコピー(207)及び(209)を取得することができる。クライアントサブシステム(206)は、例えば電子装置(230)内にデコーダ(210)を含むことができる。デコーダ(210)は、圧縮した点群の入力コピー(207)を復号化し、レンダリング装置(212)でレンダリングできる再構成した点群(211)の出力ストリームを作成する。
電子装置(220)及び(230)は、他のコンポーネント(図示せず)を含むことができることに留意されたい。例えば、電子装置(220)はデコーダ(図示せず)を含むことができ、電子装置(230)はエンコーダ(図示せず)も含むことができる。
いくつかのストリーミングシステムでは、圧縮した点群(204)、(207)、及び(209)(例えば、圧縮した点群のビットストリーム)は、特定の規格に従って圧縮することができる。いくつかの例では、点群の圧縮にビデオコーディング規格が使用される。これらの規格の例には、高効率ビデオ符号化(HEVC)、及び多用途ビデオ符号化(VVC)等が含まれる。
図3は、いくつかの実施形態による、点群フレームを符号化するためのV-PCCエンコーダ(300)のブロック図を示す。いくつかの実施形態では、V-PCCエンコーダ(300)は、通信システム(100)及びストリーミングシステム(200)で使用することができる。例えば、エンコーダ(203)は、V-PCCエンコーダ(300)と同様の方法で構成され、動作することができる。
V-PCCエンコーダ(300)は、点群フレームを非圧縮入力として受信し、圧縮した点群フレームに対応するビットストリームを生成する。いくつかの実施形態では、V-PCCエンコーダ(300)は、点群ソース(201)等の点群ソースから点群フレームを受信することができる。
図3の例では、V-PCCエンコーダ(300)は、パッチ生成モジュール(306)、パッチパッキングモジュール(308)、ジオメトリ画像生成モジュール(310)、テクスチャ画像生成モジュール(312)、パッチ情報モジュール(304)、占有マップモジュール(314)、平滑化モジュール(336)、画像パディングモジュール(316)及び(318)、グループ拡張モジュール(320)、ビデオ圧縮モジュール(322)、(323)及び(332)、補助パッチ情報圧縮モジュール(338)、エントロピー圧縮モジュール(334)、及びマルチプレクサ(324)を含む。
本開示の一態様によれば、V-PCCエンコーダ(300)は、圧縮した点群を解凍した点群に変換し直すために使用されるいくつかのメタデータ(例えば、占有マップ及びパッチ情報)とともに、3D点群フレームを画像ベースの表現に変換する。いくつかの例では、V-PCCエンコーダ(300)は、3D点群フレームをジオメトリ画像、テクスチャ画像、及び占有マップに変換し、次に、ビデオコーディング技術を使用して、ジオメトリ画像、テクスチャ画像、及び占有マップをビットストリームに符号化することができる。一般に、ジオメトリ画像は、ピクセルに投影された点に関連付けられたジオメトリ値で満たされたピクセルを含む2D画像であり、ジオメトリ値で満たされたピクセルはジオメトリサンプルと呼ばれ得る。テクスチャ画像は、ピクセルに投影された点に関連付けられたテクスチャ値で満たされたピクセルを含む2D画像であり、テクスチャ値で満たされたピクセルはテクスチャサンプルと呼ばれ得る。占有マップは、パッチによって占有されているか否かを示す値で満たされたピクセルを含む2D画像である。
パッチ生成モジュール(306)は、点群をパッチのセットにセグメント化し(例えば、パッチは、点群によって記述される表面の連続したサブセットとして規定される)、これらのパッチは、重複していても、重複していなくてもよく、各パッチは、2D空間の平面に対する深度フィールドによって記述され得る。いくつかの実施形態では、パッチ生成モジュール(306)は、再構成誤差を最小限に抑えながら、点群を滑らかな境界を有する最小数のパッチに分解することを目的とする。
いくつかの例では、パッチ情報モジュール(304)は、パッチのサイズ及び形状を示すパッチ情報を収集することができる。いくつかの例では、パッチ情報を、画像フレームにパッキングし、次に補助パッチ情報圧縮モジュール(338)によって符号化して、圧縮した補助パッチ情報を生成することができる。
いくつかの例では、パッチパッキングモジュール(308)は、未使用空間を最小限に抑えながら、抽出したパッチを2次元(2D)グリッドにマッピングし、グリッドの全てのM×M(例えば、16×16)ブロックが一意のパッチ関連付けられることを保証するように構成される。効率的なパッチ・パッキングは、未使用空間を最小限に抑えるか、又は時間的な一貫性を確保することにより、圧縮効率に直接影響を与える可能性がある。
ジオメトリ画像生成モジュール(310)は、所与のパッチ位置における点群のジオメトリに関連付けられた2Dジオメトリ画像を生成することができる。テクスチャ画像生成モジュール(312)は、所与のパッチ位置における点群のテクスチャに関連付けられた2Dテクスチャ画像を生成することができる。ジオメトリ画像生成モジュール(310)及びテクスチャ画像生成モジュール(312)は、パッキング処理中に計算された3Dから2Dへのマッピングを利用して、点群のジオメトリ及びテクスチャを画像として格納する。複数の点が同じサンプルに投影されるケースをより適切に処理するために、各パッチはレイヤーと呼ばれる2つの画像に投影される。一例では、ジオメトリ画像は、YUV420-8bit形式のW×Hのモノクロフレームで表される。テクスチャ画像を生成するために、テクスチャ生成手順は、再サンプリングした点に関連付けられる色を計算するために、再構成/平滑化したジオメトリを利用する。
占有マップモジュール(314)は、各ユニットにおけるパディング情報を記述する占有マップを生成することができる。例えば、占有画像には、グリッドのセル毎に、そのセルが空きスペースに属しているか又は点群に属しているかを示すバイナリマップが含まれる。一例では、占有マップは、ピクセル毎にそのピクセルがパディングされているか否かを記述するバイナリ情報を使用する。別の例では、占有マップは、ピクセルのブロック毎に、ピクセルのブロックがパディングされているか否かを記述するバイナリ情報を使用する。
占有マップモジュール(314)によって生成された占有マップは、可逆コーディング又は非可コーディングを使用して圧縮することができる。可逆コーディングを使用する場合に、エントロピー圧縮モジュール(334)は占有マップを圧縮するために使用される。非可逆コーディングを使用する場合に、ビデオ圧縮モジュール(332)は占有マップを圧縮するために使用される。
パッチパッキングモジュール(308)は、画像フレーム内にパッキングした2Dパッチ同士の間にいくつかの空きスペースを残してもよいことに留意されたい。画像パディングモジュール(316)及び(318)は、2Dビデオ及び画像コーデックに適し得る画像フレームを生成するために、空きスペースを埋める(パディングと呼ばれる)ことができる。画像パディングは背景充填とも呼ばれ、未使用のスペースを冗長な情報で埋めることができる。いくつかの例では、背景を適切に埋めると、ビットレートの増加は最小限に抑えられる一方、パッチ境界付近に重大なコーディング歪みが発生することはない。
ビデオ圧縮モジュール(322)、(323)、及び(332)は、HEVC、及びVVC等の適切なビデオコーディング規格に基づいて、埋め込み(padded)ジオメトリ画像、埋め込みテクスチャ画像、及び占有マップ等の2D画像を符号化することができる。一例では、ビデオ圧縮モジュール(322)、(323)、及び(332)は、別々に動作する個別のコンポーネントである。別の例では、ビデオ圧縮モジュール(322)、(323)、及び(332)を単一のコンポーネントとして実装できることに留意されたい。
いくつかの例では、平滑化モジュール(336)は、再構成したジオメトリ画像の平滑化画像を生成するように構成される。平滑化した画像は、テクスチャ画像生成(312)に提供することができる。次に、テクスチャ画像生成(312)は、再構成したジオメトリ画像に基づいてテクスチャ画像の生成を調整することができる。例えば、パッチ形状(例えば、ジオメトリ)が符号化及び復号化中に僅かに歪んでいる場合に、パッチ形状の歪みを修正するためにテクスチャ画像を生成するときに、その歪みが考慮され得る。
いくつかの実施形態では、グループ拡張(320)は、コーディング利得及び再構成した点群の視覚的品質を改善するために、オブジェクト境界の周囲のピクセルを冗長な低周波コンテンツでパディングするように構成される。
マルチプレクサ(324)は、圧縮ジオメトリ画像、圧縮テクスチャ画像、圧縮占有マップ、圧縮補助パッチ情報を圧縮ビットストリームに多重化することができる。
図4は、いくつかの例において、点群フレームに対応する圧縮ビットストリームを復号化するためのV-PCCデコーダ(400)のブロック図を示す。いくつかの例では、V-PCCデコーダ(400)は、通信システム(100)及びストリーミングシステム(200)で使用することができる。例えば、デコーダ(210)は、V-PCCデコーダ(400)と同様の方法で動作するように構成することができる。V-PCCデコーダ(400)は、圧縮ビットストリームを受信し、圧縮ビットストリームに基づいて再構成した点群を生成する。
図4の例では、V-PCCデコーダ(400)は、デマルチプレクサ(432)、ビデオ解凍モジュール(434)及び(436)、占有マップ解凍モジュール(438)、補助パッチ情報解凍モジュール(442)、ジオメトリ再構成モジュール(444)、平滑化モジュール(446)、テクスチャ再構成モジュール(448)、及び色平滑化モジュール(452)を含む。
デマルチプレクサ(432)は、圧縮ビットストリームを受け取り、圧縮テクスチャ画像、圧縮ジオメトリ画像、圧縮占有マップ、及び圧縮補助パッチ情報に分離することができる。
ビデオ解凍モジュール(434)及び(436)は、適切な規格(例えば、HEVC、VVC等)に従って圧縮画像を復号化し、解凍した画像を出力することができる。例えば、ビデオ解凍モジュール(434)は、圧縮テクスチャ画像を復号化し、解凍したテクスチャ画像を出力する。そして、ビデオ解凍モジュール(436)は、圧縮ジオメトリ画像を復号化し、解凍したジオメトリ画像を出力する。
占有マップ解凍モジュール(438)は、適切な規格(例えば、HEVC、VVC等)に従って圧縮占有マップを復号化し、解凍した占有マップを出力することができる。
補助パッチ情報解凍モジュール(442)は、適切な規格(例えば、HEVC、VVC等)に従って圧縮補助パッチ情報を復号化し、解凍した補助パッチ情報を出力することができる。
ジオメトリ再構成モジュール(444)は、解凍したジオメトリ画像を受信し、解凍した占有マップ及び解凍した補助パッチ情報に基づいて再構成した点群ジオメトリを生成することができる。
平滑化モジュール(446)は、パッチのエッジにおける不一致を平滑化することができる。平滑化手順は、圧縮アーティファクトによりパッチ境界で発生し得る潜在的な不連続性を軽減することを目的としている。いくつかの実施形態では、平滑化フィルタをパッチ境界上に位置するピクセルに適用して、圧縮/解凍によって引き起こされ得る歪みを軽減することができる。
テクスチャ再構成モジュール(448)は、解凍したテクスチャ画像及び平滑化ジオメトリに基づいて、点群内の点のテクスチャ情報を決定することができる。
色平滑化モジュール(452)は、カラーリングの不一致を平滑化することができる。3D空間内の隣接していないパッチが、2Dビデオ内で互いに隣り合ってパッキングされることがよくある。いくつかの例では、隣接しないパッチのピクセル値がブロックベースのビデオコーデックによって混合される可能性がある。色平滑化の目的は、パッチの境界に現れる目に見えるアーティファクトを軽減することである。
図5は、いくつかの例におけるビデオデコーダ(510)のブロック図を示す。ビデオデコーダ(510)は、V-PCCデコーダ(400)で使用することができる。例えば、ビデオ解凍モジュール(434)及び(436)、占有マップ解凍モジュール(438)は、ビデオデコーダ(510)と同様に構成することができる。
ビデオデコーダ(510)は、符号化ビデオシーケンス等の圧縮画像からシンボル(521)を再構成するためのパーサ(520)を含むことができる。これらのシンボルのカテゴリには、ビデオデコーダ(510)の動作を管理するために使用される情報が含まれる。パーサ(520)は、受信したコーディングしたビデオシーケンスを解析/エントロピー復号化することができる。コーディングしたビデオシーケンスのコーディングは、ビデオコーディング技術又は規格に従って行うことができ、可変長コーディング、ハフマンコーディング、コンテキスト依存性の有無にかかわらず算術コーディング等を含む様々な原理に従うことができる。パーサ(520)は、グループに対応する少なくとも1つのパラメータに基づいて、ビデオデコーダ内のピクセルのサブグループの少なくとも1つに対するサブグループパラメータのセットをコーディングしたビデオシーケンスから抽出することができる。サブグループには、ピクチャのグループ(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)等が含まれ得る。パーサ(520)は、変換係数、量子化パラメータ値、及び動きベクトル等の情報をコーディングしたビデオシーケンスから抽出することもできる。
パーサ(520)は、バッファメモリから受信したビデオシーケンスに対してエントロピー復号化/解析動作を行って、シンボル(521)を作成することができる。
シンボル(521)の再構成には、コーディングしたビデオピクチャ又はその一部(インターピクチャ及びイントラピクチャ、インターブロック及びイントラブロック等)のタイプ、及び他の要因に応じて、複数の異なるユニットが関与する可能性がある。どのユニットがどのように関与するかは、パーサ(520)によってコーディングしたビデオシーケンスから解析したサブグループ制御情報によって制御することができる。パーサ(520)と以下の複数のユニットとの間のそのようなサブグループ制御情報の流れは、明確にするために図示していない。
既に述べた機能ブロックを超えて、ビデオデコーダ(510)は、以下に説明するように概念的に多数の機能ユニットに細分化することができる。商業的な制約の下で動作する実際の実施態様では、これらのユニットの多くは互いに密接に連携し、少なくとも部分的に互いに統合することができる。しかしながら、開示する主題を説明する目的のためには、以下の機能ユニットへの概念的な細分化が適切である。
第1のユニットは、スケーラ/逆変換ユニット(551)である。スケーラ/逆変換ユニット(551)は、量子化した変換係数と、使用する変換、ブロックサイズ、量子化係数、量子化スケーリング行列等を含む制御情報とをシンボル(複数可)(521)としてパーサ(520)から受信する。スケーラ/逆変換ユニット(551)は、アグリゲータ(555)に入力できるサンプル値を含むブロックを出力することができる。
場合によっては、スケーラ/逆変換(551)の出力サンプルは、イントラコーディングしたブロック、つまり、以前に再構成したピクチャからの予測情報を使用していないが、現在のピクチャの以前に再構成した部分からの予測情報を使用できるブロックに関係する可能性がある。このような予測情報は、イントラピクチャ予測ユニット(552)によって提供され得る。場合によっては、イントラピクチャ予測ユニット(552)は、現在のピクチャバッファ(558)からフェッチした周囲の既に再構成した情報を使用して、再構成中のブロックと同じサイズ及び形状のブロックを生成する。現在のピクチャバッファ(558)は、例えば、部分的に再構成した現在のピクチャ及び/又は完全に再構成した現在のピクチャをバッファリングする。アグリゲータ(555)は、場合によっては、サンプル毎に、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって提供される出力サンプル情報に追加する。
他の場合には、スケーラ/逆変換ユニット(551)の出力サンプルは、インターコーディングされ、潜在的に動き補償したブロックに関係し得る。このような場合に、動き補償予測ユニット(553)は、参照ピクチャメモリ(557)にアクセスして、予測に使用されるサンプルをフェッチすることができる。ブロックに関係するシンボル(521)に従ってフェッチしたサンプルを動き補償した後に、これらのサンプルは、アグリゲータ(555)によってスケーラ/逆変換ユニット(551)の出力(この場合は残差サンプル又は残差信号と呼ばれる)に追加され、出力サンプル情報を生成することができる。動き補償予測ユニット(553)が予測サンプルをフェッチする参照ピクチャメモリ(557)内のアドレスは、例えば、X、Y、及び参照ピクチャ成分を有し得るシンボル(521)の形式で動き補償予測ユニット(553)に利用可能な動きベクトルによって制御することができる。動き補償には、サブサンプルの正確な動きベクトルが使用されている場合に参照ピクチャメモリ(557)からフェッチされるサンプル値の補間、及び動きベクトル予測メカニズム等が含まれることもある。
アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)において様々なループフィルタリング技術を受けることができる。ビデオ圧縮技術にはインループ(in-loop)フィルタ技術が含まれ得、インループフィルタ技術は、コーディングしたビデオシーケンス(コーディングしたビデオビットストリームとも呼ばれる)に含まれるパラメータによって制御され、パーサ(520)からのシンボル(521)としてループフィルタユニット(556)に利用可能になるが、コーディングしたピクチャ又はコーディングしたビデオシーケンスの以前の(復号順序での)部分の復号中に取得されたメタ情報に応答することもでき、また、以前に再構成した、ループフィルタリングしたサンプル値に応答することもできる。
ループフィルタユニット(556)の出力は、レンダリング装置に出力することができるとともに、将来のインターピクチャ予測で使用するために参照ピクチャメモリ(557)に格納することができるサンプルストリームとすることができる。
特定のコーディングしたピクチャは、完全に再構成されると、将来の予測のための参照ピクチャとして使用することができる。例えば、現在のピクチャに対応するコーディングしたピクチャが完全に再構成され、コーディングしたピクチャが(例えば、パーサ(520)によって)参照ピクチャとして識別されると、現在のピクチャバッファ(558)は、参照ピクチャメモリ(557)の一部となり得、そして、次のコーディングしたピクチャの再構成を開始する前に、新しい現在のピクチャバッファを再割り当てすることができる。
ビデオデコーダ(510)は、ITU-T Rec. H.265等の規格で所定のビデオ圧縮技術に従って復号化動作を行うことができる。コーディングしたビデオシーケンスは、コーディングしたビデオシーケンスがビデオ圧縮技術又は規格の構文とビデオ圧縮技術又は規格に文書化されたプロファイルとの両方に準拠するという意味で、使用しているビデオ圧縮技術又は規格によって指定された構文に準拠し得る。具体的には、プロファイルは、ビデオ圧縮技術又は規格で利用可能な全てのツールの中から、そのプロファイルで使用できる唯一のツールとして特定のツールを選択することができる。また、準拠するためには、コーディングしたビデオシーケンスの複雑さが、ビデオ圧縮技術又は規格のレベルによって規定された範囲内に収まることも必要である。場合によっては、レベルによって、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば、1秒あたりのメガサンプルで測定される)、及び最大参照ピクチャサイズ等が制限される。レベルによって設定される制限は、場合によっては、仮想参照デコーダ(HRD)仕様及びコーディングしたビデオシーケンスで信号通知されるHRDバッファ管理のメタデータを介してさらに制限されることがある。
図6は、本開示の一実施形態によるビデオエンコーダ(603)のブロック図を示す。ビデオエンコーダ(603)は、点群を圧縮するV-PCCエンコーダ(300)で使用することができる。一例では、ビデオ圧縮モジュール(322)及び(323)、並びにビデオ圧縮モジュール(332)は、エンコーダ(603)と同様に構成される。
ビデオエンコーダ(603)は、埋め込みジオメトリ画像、及び埋め込みテクスチャ画像等の画像を受信し、圧縮画像を生成することができる。
一実施形態によれば、ビデオエンコーダ(603)は、ソースビデオシーケンス(画像)のピクチャを符号化して、リアルタイムで、又はアプリケーションの要求に応じた他の時間制約の下でコーディングしたビデオシーケンス(圧縮画像)に圧縮することができる。適切なコーディング速度を強制することは、コントローラ(650)の1つの機能である。いくつかの実施形態では、コントローラ(650)は、以下に説明するように他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。明確にするために、結合は示していない。コントローラ(650)によって設定されるパラメータには、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化技術のラムダ値、・・・)、ピクチャサイズ、ピクチャのグループ(GOP)レイアウト、及び最大動きベクトル探索範囲等が含まれる。コントローラ(650)は、特定のシステム設計に最適化したビデオエンコーダ(603)に関連する他の適切な機能を有するように構成することができる。
いくつかの実施形態では、ビデオエンコーダ(603)は、コーディング・ループで動作するように構成される。過度に単純化した説明として、一例では、コーディング・ループは、ソースコーダ(630)(例えば、コーディングされる入力ピクチャ及び参照ピクチャに基づいて、シンボルストリーム等のシンボル、及び参照ピクチャを作成する役割を担う)、及びビデオエンコーダ(603)に埋め込まれた(ローカル)デコーダ(633)を含むことができる。デコーダ(633)は、(リモート)デコーダが作成するのと同様の方法でシンボルを再構成し、サンプルデータを作成する(開示する主題で考慮されるビデオ圧縮技術では、シンボルとコーディングしたビデオビットストリームとの間のあらゆる圧縮が可逆であるため)。再構成したサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(634)に入力される。シンボルストリームの復号化が、デコーダの位置(ローカル又はリモート)に関係なくビット正確な結果をもたらすので、参照ピクチャメモリ(634)内の内容もローカルエンコーダとリモートエンコーダとの間でビット正確である。換言すれば、エンコーダの予測部分は、復号化中に予測を使用するときにデコーダが「見る」のとまったく同じサンプル値を参照ピクチャサンプルとして「見る」ことになる。参照ピクチャの同期性(及び、例えばチャネルエラーにより同期性が維持できない場合には結果として生じるドリフト)のこの基本原理は、いくつかの関連技術でも同様に使用される。
「ローカル」デコーダ(633)の動作は、図5に関連して既に詳細に説明したビデオデコーダ(510)等の「リモート」デコーダの動作と同じであってもよい。図5も簡潔に参照する。ただし、シンボルが利用可能であり、エントロピーコーダ(645)及びパーサ(520)によるシンボルのコーディングしたビデオシーケンスへの符号化/復号化は可逆であり得るため、ビデオデコーダ(510)のエントロピー復号化部分には、パーサ(520)がローカルデコーダ(633)に完全に実装されていない可能性がある。
動作中に、いくつかの例では、ソースコーダ(630)は、「参照ピクチャ」として指定されたビデオシーケンスからの1つ又は複数の以前にコーディングしたピクチャを参照して入力ピクチャを予測的にコーディングする、動き補償予測コーディングを実行することができる。このようにして、コーディングエンジン(632)は、入力ピクチャのピクセルブロックと、入力ピクチャに対する予測参照として選択され得る参照ピクチャのピクセルブロックとの間の差をコーディングする。
ローカルビデオデコーダ(633)は、ソースコーダ(630)によって作成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャのコーディングしたビデオデータを復号化することができる。コーディングエンジン(632)の動作は、不可逆プロセスであることが有利である。コーディングしたビデオデータがビデオデコーダ(図6には図示せず)で復号化される場合に、再構成したビデオシーケンスは、典型的に、いくつかのエラーを含むソースビデオシーケンスのレプリカである可能性がある。ローカルビデオデコーダ(633)は、参照ピクチャに対してビデオデコーダによって実行され得る復号化プロセスを複製し、再構成した参照ピクチャを参照ピクチャキャッシュ(634)に格納させることができる。このようにして、ビデオエンコーダ(603)は、遠端ビデオデコーダ(送信エラーがない)によって取得される再構成した参照ピクチャとして共通の内容を有する再構成した参照ピクチャのコピーをローカルに格納することができる。
予測器(635)は、コーディングエンジン(632)に対して予測検索を行うことができる。すなわち、コーディングされる新しいピクチャについて、予測器(635)は、サンプルデータ(候補参照ピクセルブロックとして)、又は新しいピクチャの適切な予測参照として機能し得る参照ピクチャ動きベクトル、及びブロック形状等の特定のメタデータを求めて参照ピクチャメモリ(634)を検索することができる。予測器(635)は、適切な予測参照を見つけるために、サンプルブロック毎にピクセルブロック毎に(sample block-by-pixel block basis)動作することができる。場合によっては、予測器(635)によって得られた検索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(634)に格納した複数の参照ピクチャから引き出された予測参照を有し得る。
コントローラ(650)は、例えば、ビデオデータを符号化するために使用されるパラメータ及びサブグループパラメータの設定を含む、ソースコーダ(630)のコーディング動作を管理することができる。
前述の全ての機能ユニットの出力は、エントロピーコーダ(645)においてエントロピーコーディングを受けることができる。エントロピーコーダ(645)は、ハフマンコーディング、可変長コーディング、及び算術コーディング等の技術に従ってシンボルを可逆圧縮することによって、様々な機能ユニットによって生成されたシンボルをコーディングしたビデオシーケンスに変換する。
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理することができる。コーディング中に、コントローラ(650)は、各コーディングピクチャに特定のコーディングピクチャタイプを割り当てることができ、これは、それぞれのピクチャに適用され得るコーディング技術に影響を与える可能性がある。例えば、多くの場合に、ピクチャは、次のピクチャタイプのいずれかとして割り当てられ得る。
イントラピクチャ(Iピクチャ)は、シーケンス内の他のピクチャを予測ソースとして使用せずにコーディング及び復号化できるピクチャであり得る。一部のビデオコーデックでは、例えば、IDR(Independent Decoder Refresh)ピクチャを含む、様々なタイプのイントラピクチャが可能になる。当業者は、Iピクチャのこれらの変形と、それらのそれぞれの用途及び特徴を認識している。
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために最大1つの動きベクトル及び参照インデックスを使用するイントラ予測又はインター予測を使用してコーディング及び復号化され得るピクチャであり得る。
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために最大2つの動きベクトル及び参照インデックスを使用するイントラ予測又はインター予測を使用してコーディング及び復号化され得るピクチャであり得る。同様に、複数の予測ピクチャは、単一ブロックの再構成に関して、3つ以上の参照ピクチャ及び関連するメタデータを使用することができる。
ソースピクチャは、一般に、空間的に複数のサンプルブロック(例えば、それぞれ4×4、8×8、4×8、又は16×16サンプルのブロック)に再分割され、ブロック毎にコーディングされ得る。ブロックは、ブロックのそれぞれのピクチャに適用されるコーディング割り当てによって決定されるように、他の(既にコーディングした)ブロックを参照して予測的にコーディングされ得る。例えば、Iピクチャのブロックは、非予測的にコーディングしてもよく、又は同じピクチャの既にコーディングしたブロックを参照して予測的にコーディングしてもよい(空間予測又はイントラ予測)。Pピクチャのピクセルブロックは、以前にコーディングした1つの参照ピクチャを参照して、空間予測又は時間予測を介して予測的にコーディングされ得る。Bピクチャのブロックは、以前にコーディングした1つ又は2つの参照ピクチャを参照して、空間予測又は時間予測を介して予測的にコーディングされ得る。
ビデオエンコーダ(603)は、ITU-T Rec. H.265等の所定のビデオ圧縮技術又は規格に従ってコーディング動作を行うことができる。その動作において、ビデオエンコーダ(603)は、入力ビデオシーケンスにおける時間的及び空間的冗長性を利用する予測コーディング動作を含む、様々な圧縮動作を行うことができる。従って、コーディングしたビデオデータは、使用しているビデオコーディング技術又は規格によって指定された構文に準拠し得る。
ビデオは、時系列に並んだ複数のソースピクチャ(画像)の形式であってもよい。イントラピクチャ予測(イントラ予測と略されることが多い)は、所与のピクチャ内の空間相関を利用し、インターピクチャ予測はピクチャ同士の間の(時間的又は他の)相関を利用する。一例では、符号化/復号化中の特定のピクチャ(現在のピクチャと呼ばれる)は、ブロックにパーティション分割される。現在のピクチャ内のブロックが、ビデオ内の以前にコーディングし、依然としてバッファされている参照ピクチャ内の参照ブロックと類似している場合に、現在のピクチャ内のブロックは、動きベクトルと呼ばれるベクトルによってコーディングすることができる。動きベクトルは、参照ピクチャ内の参照ブロックを指し、複数の参照ピクチャが使用されている場合には、参照ピクチャを識別する3次元を有することができる。
いくつかの実施形態では、インターピクチャ予測において双方向予測技術を使用することができる。双方向予測技術によれば、ビデオ内の現在のピクチャよりも復号化順序で前にある第1の参照ピクチャ及び第2の参照ピクチャ(ただし、表示順でそれぞれ過去と未来の可能性がある)等の2つの参照ピクチャが使用される。現在のピクチャ内のブロックは、第1の参照ピクチャ内の第1の参照ブロックを指す第1の動きベクトルと、第2の参照ピクチャ内の第2の参照ブロックを指す第2の動きベクトルとによってコーディングすることができる。ブロックは、第1の参照ブロックと第2の参照ブロックとの組合せによって予測することができる。
さらに、マージモード技術をインターピクチャ予測に使用して、コーディング効率を向上させることができる。
本開示のいくつかの実施形態によれば、インターピクチャ予測及びイントラピクチャ予測等の予測は、ブロック単位で行われる。例えば、HEVC規格によれば、ビデオピクチャのシーケンス内のピクチャは圧縮のためにコーディングツリーユニット(CTU)にパーティション分割され、ピクチャ内のCTUは同じサイズ(64×64ピクセル、32×32ピクセル、又は16×16ピクセル等)である。一般に、CTUには3つのコーディングツリーブロック(CTB)が含まれ、これらは1つのルマCTB及び2つのクロマCTBである。各CTUは、1つ又は複数のコーディングユニット(CU)に再帰的に四分木分割することができる。例えば、64×64ピクセルのCTUは、64×64ピクセルの1つのCU、32×32ピクセルの4つのCU、又は16×16ピクセルの16個のCUに分割することができる。一例では、各CUを解析して、インター予測タイプ又はイントラ予測タイプ等のCUの予測タイプが決定される。CUは、時間的及び/又は空間的な予測可能性に応じて1つ又は複数の予測ユニット(PU)に分割される。一般に、各PUには、1つのルマ予測ブロック(PB)及び2つのクロマPBが含まれる。一実施形態では、コーディング(符号化/復号化)における予測演算は、予測ブロック単位で行われる。予測ブロックの一例としてルマ予測ブロックを使用すると、予測ブロックには、8×8ピクセル、16×16ピクセル、8×16ピクセル、及び16×8ピクセル等のピクセルの値(例えば、ルマ値)の行列が含まれる。
図7は、いくつかの例におけるG-PCCエンコーダ(700)のブロック図を示す。G-PCCエンコーダ(700)は、点群データを受信し、その点群データを圧縮して、圧縮した点群データを搬送するビットストリームを生成するように構成することができる。一実施形態では、G-PCCエンコーダ(700)は、位置量子化モジュール(710)、重複点除去モジュール(712)、8分木符号化モジュール(730)、属性転送モジュール(720)、レベルのディテール(LOD)生成モジュール(740)、属性予測モジュール(750)、残差量子化モジュール(760)、算術コーディングモジュール(770)、逆残差量子化モジュール(780)、加算モジュール(781)、及び再構成した属性値を記憶するメモリ(790)を含むことができる。
示されるように、入力点群(701)は、G-PCCエンコーダ(700)で受信され得る。点群(701)の位置(例えば、3D座標)は、量子化モジュール(710)に提供される。量子化モジュール(710)は、座標を量子化して量子化した位置を生成するように構成される。重複点除去モジュール(712)は、量子化した位置を受け取り、フィルタ処理を行って、重複点を特定して除去するように構成される。8分木符号化モジュール(730)は、重複点除去モジュール(712)からフィルタリングした位置を受け取り、8分木ベースの符号化プロセスを実行して、ボクセルの3Dグリッドを記述する占有コードのシーケンスを生成するように構成される。占有コードは算術コーディングモジュール(770)に提供される。
属性転送モジュール(720)は、入力点群の属性を受け取り、複数の属性値がそれぞれのボクセルに関連付けられている場合に、属性転送プロセスを実行して各ボクセルの属性値を決定するように構成される。属性転送プロセスは、8分木符号化モジュール(730)から出力された並べ替えられた点に対して行うことができる。転送動作後の属性は、属性予測モジュール(750)に提供される。LOD生成モジュール(740)は、8分木符号化モジュール(730)から出力された並べ替えられた点に対して動作し、それらの点を異なるLODに再構成するように構成される。LOD情報は属性予測モジュール(750)に供給される。
属性予測モジュール(750)は、LOD生成モジュール(740)からのLOD情報によって示されるLODベースの順序に従って点を処理する。属性予測モジュール(750)は、メモリ(790)に格納した現在点の隣接点のセットの再構成した属性に基づいて、現在点の属性予測を生成する。その後、予測残差は、属性転送モジュール(720)から受信した元の属性値及びローカルに生成した属性予測に基づいて取得することができる。候補インデックスがそれぞれの属性予測プロセスで使用される場合に、選択した予測候補に対応するインデックスが算術コーディングモジュール(770)に提供され得る。
残差量子化モジュール(760)は、属性予測モジュール(750)から予測残差を受け取り、量子化を実行して量子化した残差を生成するように構成される。量子化した残差は算術コーディングモジュール(770)に提供される。
逆残差量子化モジュール(780)は、残差量子化モジュール(760)から量子化した残差を受け取り、残差量子化モジュール(760)で実行される量子化操作の逆を実行することによって再構成した予測残差を生成するように構成される。加算モジュール(781)は、逆残差量子化モジュール(780)から再構成した予測残差を受け取り、属性予測モジュール(750)からそれぞれの属性予測を受け取るように構成される。再構成した予測残差と属性予測を組み合わせることで、再構成した属性値が生成され、メモリ(790)に格納される。
算術コーディングモジュール(770)は、占有コード、候補インデックス(使用される場合)、量子化した残差(生成される場合)、及び他の情報を受け取り、受け取った値又は情報をさらに圧縮するためにエントロピー符号化を行うように構成される。その結果、圧縮情報を搬送する圧縮ビットストリーム(702)を生成することができる。ビットストリーム(702)は、圧縮ビットストリームを復号化するデコーダに送信又は提供してもよく、或いはストレージ装置に格納してもよい。
図8は、一実施形態によるG-PCCデコーダ(800)のブロック図を示す。G-PCCデコーダ(800)は、圧縮したビットストリームを受け取り、点群データ解凍を行ってビットストリームを解凍し、復号化した点群データを生成するように構成することができる。一実施形態では、G-PCCデコーダ(800)は、算術復号化モジュール(810)、逆残差量子化モジュール(820)、8分木復号化モジュール(830)、LOD生成モジュール(840)、属性予測モジュール(850)、及び再構成した属性値を格納するメモリ(860)を含むことができる。
示されるように、圧縮ビットストリーム(801)は、算術復号化モジュール(810)で受信することができる。算術復号化モジュール(810)は、圧縮ビットストリーム(801)を復号化して、量子化した残差(生成される場合)及び点群の占有コードを取得するように構成される。8分木復号化モジュール(830)は、占有コードに従って点群内の点の再構成した位置を決定するように構成される。LOD生成モジュール(840)は、再構成した位置に基づいて点を異なるLODに再編成し、LODに基づく順序を決定するように構成される。逆残差量子化モジュール(820)は、算術復号化モジュール(810)から受信した量子化した残差に基づいて、再構成した残差を生成するように構成される。
属性予測モジュール(850)は、LODベースの順序に従って点の属性予測を決定する属性予測プロセスを行うように構成される。例えば、現在点の属性予測は、メモリ(860)に格納した現在点の隣接点の再構成した属性値に基づいて決定することができる。いくつかの例では、属性予測をそれぞれの再構成した残差と組み合わせて、現在の点の再構成した属性を生成することができる。
属性予測モジュール(850)から生成された再構成した属性のシーケンスは、8分木復号化モジュール(830)から生成された再構成位置とともに、一例では、G-PCCデコーダ(800)から出力される復号化した点群(802)に対応する。さらに、再構成した属性もメモリ(860)に格納され、その後、後続の点の属性予測を導出するために使用することができる。
様々な実施形態では、エンコーダ(300)、デコーダ(400)、エンコーダ(700)、及び/又はデコーダ(800)は、ハードウェア、ソフトウェア、又はそれらの組合せで実装することができる。例えば、エンコーダ(300)、デコーダ(400)、エンコーダ(700)、及び/又はデコーダ(800)は、特定用途向け集積回路(ASIC)、及びフィールドプログラマブルゲートアレイ(FPGA)等の、ソフトウェアの有無にかかわらず動作する1つ又は複数の集積回路(IC)等の処理回路を用いて実装することができる。別の例では、エンコーダ(300)、デコーダ(400)、エンコーダ(700)、及び/又はデコーダ(800)は、不揮発性(又は非一時的)コンピュータ可読記憶媒体に格納された命令を含むソフトウェア又はファームウェアとして実装することができる。命令は、1つ又は複数のプロセッサ等の処理回路によって実行されると、処理回路にエンコーダ(300)、デコーダ(400)、エンコーダ(700)、及び/又はデコーダ(800)の機能を実行させる。
本明細書で開示する属性予測技術を実現するように構成された属性予測モジュール(750)及び(850)は、図7及び図8に示されるものと同様の又は異なる構造を有し得る他のデコーダ又はエンコーダに含めることができることに留意されたい。さらに、エンコーダ(700)及びデコーダ(800)は、同じ装置に含めることができ、又は様々な例では別個の装置に含めることができる。
本開示のいくつかの態様によれば、メッシュ圧縮は、PCCコーディングツールとは異なるコーディングツールを使用することができ、又は上記のPCC(例えば、G-PCC、V-PCC)エンコーダ、及び上記のPCC(例えば、G-PCC、V-PCC)エンコーダ等のPCCコーディングツールを使用することができる。
オブジェクトのメッシュ(メッシュモデル、メッシュフレームとも呼ばれる)は、オブジェクトの表面を記述するポリゴンを含むことができる。各ポリゴンは、3D空間内のポリゴンの頂点と、頂点をポリゴンに接続する辺(edge:エッジ)とによって規定することができる。頂点がどのように接続されるかに関する情報(例えば、辺の情報)は、接続性情報と呼ばれる。いくつかの例では、オブジェクトのメッシュは、オブジェクトの表面を記述する接続された三角形によって形成される。辺を共有する2つの三角形は、接続された2つの三角形と呼ばれる。他のいくつかの例では、オブジェクトのメッシュは、接続された四角形によって形成される。辺を共有する2つの四角形は、接続された2つの四角形と呼ぶことができる。メッシュは他の適切なポリゴンによって形成できることに留意されたい。
いくつかの例では、メッシュは、頂点に関連付けられた色、及び法線等の属性を含むこともできる。2D属性マップでメッシュをパラメータ化するマッピング情報を利用することで、属性をメッシュの表面に関連付けることができる。マッピング情報は、通常、メッシュ頂点に関連付けられたUV座標又はテクスチャ座標と呼ばれるパラメトリック座標のセットによって記述される。2D属性マップ(いくつかの例ではテクスチャマップと呼ばれる)は、テクスチャ、法線、変位等の高解像度の属性情報を格納するために使用される。このような情報は、テクスチャマッピング及びシェーディング等の様々な目的に使用することができる。
いくつかの実施形態では、メッシュは、幾何学的情報、接続性情報、マッピング情報、頂点属性、及び属性マップと呼ばれる成分を含むことができる。いくつかの例では、幾何学的情報は、メッシュの頂点に関連付けられた3D位置のセットによって記述される。一例では、(x,y,z)座標を使用して頂点の3D位置を記述することができ、その(x,y,z)座標は3D座標とも呼ばれる。いくつかの例では、接続性情報には、頂点を接続して3D表面を作成する方法を記述する頂点インデックスのセットが含まれる。いくつかの例では、マッピング情報は、メッシュ表面を平面の2D領域にマッピングする方法を記述する。一例では、マッピング情報は、接続性情報とともにメッシュ頂点に関連付けられたUVパラメトリック/テクスチャ座標(u,v)のセットによって記述される。いくつかの例では、頂点属性には、メッシュ頂点に関連付けられたスカラ属性値又はベクトル属性値が含まれる。いくつかの例では、属性マップには、メッシュ表面に関連付けられ、且つ2D画像/ビデオとして格納される属性が含まれる。一例では、ビデオ(例えば、2D画像/ビデオ)とメッシュ表面との間のマッピングは、マッピング情報によって規定される。
本開示の一態様によれば、UVマッピング又はメッシュパラメータ化と呼ばれるいくつかの技術は、3D領域のメッシュの表面を2D領域にマッピングするために使用される。いくつかの例では、メッシュは、3D領域内のパッチにパーティション分割される。パッチは、境界エッジで形成された境界を有するメッシュの連続したサブセットである。パッチの境界エッジ(辺)は、パッチの1つのポリゴンにのみ属し、且つパッチ内の2つの隣接するポリゴンによって共有されないエッジ(辺)である。いくつかの例では、パッチ内の境界エッジの頂点はパッチの境界頂点と呼ばれ、パッチ内の非境界頂点はパッチの内部頂点と呼ばれ得る。
いくつかの例では、オブジェクトのメッシュは接続された三角形によって形成され、メッシュはパッチにパーティション分割することができ、各パッチは接続された三角形のサブセットである。パッチの境界エッジ(辺)は、パッチ内の1つの三角形にのみ属し、且つパッチ内の隣接する三角形によって共有されないエッジ(辺)である。いくつかの例では、パッチ内の境界エッジの頂点はパッチの境界頂点と呼ばれ、パッチ内の非境界頂点はパッチの内部頂点と呼ばれ得る。境界ループには一連の境界頂点(a sequence of boundary vertices)が含まれており、一連の境界頂点によって形成される境界エッジは、境界ループと呼ばれるループを形成することができる。
本開示の一態様によれば、いくつかの例では、パッチはそれぞれ2D形状(2Dパッチ、UVパッチとも呼ばれる)にパラメータ化される。いくつかの例では、2D形状は、アトラスとも呼ばれるマップにパックする(例えば、向き合わせして配置する)ことができる。いくつかの例では、マップは、2D画像又はビデオ処理技術を使用してさらに処理することができる。
一例では、UVマッピング技術は、3Dメッシュのパッチに対応する2DのUVアトラス(UVマップとも呼ばれる)及び1つ又は複数のテクスチャアトラス(テクスチャマップとも呼ばれる)を生成する。UVアトラスには、3Dメッシュの3D頂点の2D領域(例えば、長方形)内の2D点への割り当てが含まれる。UVアトラスは、3D表面の座標と2D領域の座標との間のマッピングである。一例では、UVアトラスの2D座標(u,v)の点は、3D領域の頂点の座標(x,y,z)によって形成される値を有する。一例では、テクスチャアトラスには3Dメッシュの色情報が含まれる。例えば、テクスチャアトラスの2D座標(u,v)の点(UVアトラスでは3D値(x,y,z)を有する)には、3D領域の(x,y,z)の点の色属性を指定する色がある。いくつかの例では、3D領域の座標(x,y,z)は3D座標又はxyz座標と呼ばれ、2D座標(u,v)はuv座標又はUV座標と呼ばれる。
本開示のいくつかの態様によれば、メッシュ圧縮は、1つ又は複数の2Dマップ(いくつかの例では2Dアトラスとも呼ばれる)を使用してメッシュを表現し、その後、画像コーデック又はビデオコーデックを使用して2Dマップを符号化することによって実行され得る。2Dマップを生成するには、様々な技術を使用することができる。
図9は、いくつかの例における3Dメッシュ(910)の2Dアトラス(920)へのマッピングを示す図を示す。図9の例では、3Dメッシュ(910)は、4つのパッチA~Dを形成する4つの頂点1~4を含む。各パッチには、頂点のセットと関連する属性情報とがある。例えば、パッチAは、三角形に接続される頂点1、2、及び3によって形成される。パッチBは、三角形に接続される頂点1、3、及び4によって形成される。パッチCは、三角形に接続される頂点1、2、及び4によって形成される。パッチDは、三角形に接続される頂点2、3、及び4によって形成される。いくつかの例では、頂点1、2、3、及び4はそれぞれの属性を有することができ、頂点1、2、3、及び4によって形成される三角形はそれぞれの属性を有することができる。
一例では、3DのパッチA、B、C、及びDは、マップ(920)とも呼ばれる2Dアトラス(920)等の2D領域にマッピングされる。例えば、パッチAはマップ(920)内の2D形状(UVパッチ、又は2Dパッチとも呼ばれる)A’にマッピングされ、パッチBはマップ(920)内の2D形状(UVパッチ、又は2Dパッチとも呼ばれる)B’にマッピングされ、パッチCはマップ(920)内の2D形状(UVパッチ、又は2Dパッチとも呼ばれる)C’にマッピングされ、パッチDはマップ(920)内の2D形状(UVパッチ、又は2Dパッチとも呼ばれる)D’にマッピングされる。いくつかの例では、3D領域の座標は(x,y,z)座標と呼ばれ、マップ(920)等の2D領域の座標はUV座標と呼ばれる。3Dメッシュ内の頂点は、マップ(920)内の対応するUV座標を有することができる。
マップ(920)は、幾何学的情報を有するジオメトリマップであってもよく、或いは色、法線、テキスタイル、又は他の属性情報を有するテクスチャマップであってもよく、或いは占有情報を含む占有マップであってもよい。
図9の例では各パッチを三角形で表しているが、パッチは、メッシュの連続したサブセットを形成するために接続される任意の適切な数の頂点を含むことができることに留意されたい。いくつかの例では、パッチ内の頂点が三角形に接続される。パッチ内の頂点は、他の適切な形状を使用して接続できることに留意されたい。
一例では、頂点の幾何学形状情報を2Dジオメトリマップに格納することができる。例えば、2Dジオメトリマップには、2Dジオメトリマップ内の対応する点のサンプリング点の(x,y,z)座標が格納される。例えば、2Dジオメトリマップ内の(u,v)位置の点は、3Dメッシュ内の対応するサンプリング点のx、y、及びz値にそれぞれ対応する3つの成分のベクトル値を有する。
本開示の一態様によれば、マップ内の領域は完全に占有されていない可能性がある。例えば、図9では、2D形状A’、B’、C’、及びD’の外側の領域は未規定である。復号化後の2D形状A’、B’、C’、及びD’の外側の領域のサンプル値は破棄することができる。場合によっては、占有マップは、ピクセルがパッチに属しているか又は未規定であるかを識別するためのバイナリ値を格納する等、各ピクセルのいくつかの追加情報を格納するために使用される。
本開示の一態様によれば、動的メッシュは、成分(幾何学的情報、接続性情報、マッピング情報、頂点属性及び属性マップ)のうちの少なくとも1つが時間とともに変化するメッシュである。動的メッシュは、一連のメッシュ(メッシュフレームとも呼ばれる)によって記述することができる。いくつかの例では、動的メッシュ内のメッシュフレームは、異なる時間におけるオブジェクトの表面の表現とすることができ、各メッシュフレームは、特定の時間(時間インスタンスとも呼ばれる)におけるオブジェクトの表面の表現である。動的メッシュには、時間の経過とともに変化する大量の情報が含まれる可能性があるため、動的メッシュは、大量のデータが必要になる場合がある。メッシュの圧縮技術により、メッシュ表現でのメディアコンテンツの効率的な格納及び送信が可能になる。
いくつかの例では、動的メッシュは、一定の接続性情報、時間変化するジオメトリ、及び時間変化する頂点属性を有することができる。いくつかの例では、動的メッシュは時間とともに変化する接続性情報を有することができる。一例では、デジタルコンテンツ作成ツールは、通常、時間とともに変化する属性マップと時間とともに変化する接続性情報とを含む動的メッシュを生成する。いくつかの例では、動的メッシュを生成するために体積(volumetric)取得技術が使用される。体積取得技術は、特にリアルタイムの制約下で、時間とともに変化する接続性情報を含む動的メッシュを生成することができる。
いくつかの例では、3Dメッシュの属性情報及び幾何学的情報は、属性マップ及びジオメトリマップ等の2D画像として表される。一般に、3Dメッシュはパッチにパーティション分割され、パッチは、UVパッチ又は2Dパッチとも呼ばれる2D形状にパラメータ化することができる。一般に、3Dメッシュの属性情報又は幾何学的情報を表す2D画像は、2D画像内にパックされた2Dパッチを含み、各2Dパッチは、3Dメッシュの表面領域の属性情報又は幾何学的情報を表す。いくつかの例では、2Dパッチは、2D画像内で互いに重複しないことが必要である。
本開示のいくつかの態様は、パッチ・パッキングの重複していない(overlapping-free:オーバーラップフリー)(重複のない(not
overlapping))特性を維持するためのチェック技術を提供する。オーバーラップフリー特性を維持するためのチェック技術は、メッシュ圧縮におけるパッチ・パッキング、メッシュパラメータ化、ボリュメトリックビデオにおけるアトラス・パッキング、汎用設定におけるオブジェクト・パッキング等の様々なメッシュ処理に使用することができる。オーバーラップフリー特性を維持するためのチェック技術は、境界ボックスチェック技術、パッチ重複チェック技術、及び拡大パッチ重複チェック技術に分類することができる。
overlapping))特性を維持するためのチェック技術を提供する。オーバーラップフリー特性を維持するためのチェック技術は、メッシュ圧縮におけるパッチ・パッキング、メッシュパラメータ化、ボリュメトリックビデオにおけるアトラス・パッキング、汎用設定におけるオブジェクト・パッキング等の様々なメッシュ処理に使用することができる。オーバーラップフリー特性を維持するためのチェック技術は、境界ボックスチェック技術、パッチ重複チェック技術、及び拡大パッチ重複チェック技術に分類することができる。
本開示の一態様によれば、2つの2Dパッチに重複がないかどうかをチェックするために、境界ボックスチェックを使用することができる。2Dパッチの境界ボックスは、2Dパッチ全体を含む最小限の領域を有する長方形である。2つの2Dパッチの境界ボックスに重複がない場合に、2つの2Dパッチには重複がない。
図10A~図10Bは、いくつかの例における重複をチェックするために境界ボックスを使用する例を示している。図10Aは、UVアトラス(1000)における第1の2Dパッチ(1010)及び第2の2Dパッチ(1020)を示す。第1の2Dパッチ(1010)と第2の2Dパッチ(1020)に重複がないかをチェックするために、第1の2Dパッチ(1010)及び第2の2Dパッチ(1020)の境界ボックスが決定される。
図10Bは、第1の2Dパッチ(1010)に対する第1の境界ボックス(1011)と、第2の2Dパッチ(1020)に対する第2の境界ボックス(1021)とを示す。第1の境界ボックス(1011)は、第1の2Dパッチ(1010)内の全ての点の最小U値、第1の2Dパッチ(1010)内の全ての点の最大U値、第1の2Dパッチ(1010)内の全ての点の最小V値、及び第1の2Dパッチ(1010)内の全ての点の最大V値に基づいて決定される。第2の境界ボックス(1021)は、第2の2Dパッチ(1020)内の全ての点の最小U値、第2の2Dパッチ(1020)内の全ての点の最大U値、第2の2Dパッチ(1020)内の全ての点の最小V値、及び第2の2Dパッチ(1020)内の全ての点の最大V値に基づいて決定される。
いくつかの例では、2つの境界ボックスのコーナ部の座標を使用して、2つの境界ボックスに重複がないかどうかをチェックする。
一般に、第1の2Dパッチは第1の領域に含まれ、第2の2Dパッチは第2の領域に含まれる。第1の領域と第2の領域に重複がない場合に、第1の2Dパッチと第2の2Dパッチに重複がない。
境界ボックスチェック技術は計算効率がよい。しかしながら、重複しない2つの2Dパッチに重複した境界ボックスが存在する場合がある。
本開示の一態様によれば、パッチ重複チェック技術を使用して、頂点のUV座標等の2Dパッチ自体の幾何学的情報に基づいて任意の2Dパッチの重複をチェックすることができる。
いくつかの例では、いくつかのパッチ重複チェック技術は、2つの2Dパッチの点に基づいて重複チェックを行うことができる。例えば、2つの2Dパッチの内部に点が存在しない場合に限り、2つの2Dパッチは重複しない。点が2Dパッチの境界上又は2Dパッチの内部にある場合に、その点は、2Dパッチの内側にあるものとみなされる。
いくつかの例では、第1の2Dパッチの内側の整数ピクセル座標を有する全ての点をそれぞれチェックして、それらの点が第2の2Dパッチの内側にあるかどうかを判定する。第1の2Dパッチ内のどの点も第2の2Dパッチの内側に存在しない場合に、第1の2Dパッチと第2の2Dパッチに重複がない。レイ・キャスティング(ray casting)アルゴリズム、ワインディング・ナンバ(winding
number)アルゴリズム等の様々なポリゴン・アルゴリズムを使用して、点が2Dパッチの内側に存在するかどうかをチェックすることができる。ポリゴン・アルゴリズムの中には、点が2Dパッチの境界上にあるかどうかをチェックしないものがある。点が2Dパッチの境界上にあるかどうかをチェックするには、その点をチェックして、その点が2Dパッチの境界エッジのうちの1つにあるかどうかを判定する。2Dパッチの境界エッジ(辺)は、2Dパッチの境界の線分である。
number)アルゴリズム等の様々なポリゴン・アルゴリズムを使用して、点が2Dパッチの内側に存在するかどうかをチェックすることができる。ポリゴン・アルゴリズムの中には、点が2Dパッチの境界上にあるかどうかをチェックしないものがある。点が2Dパッチの境界上にあるかどうかをチェックするには、その点をチェックして、その点が2Dパッチの境界エッジのうちの1つにあるかどうかを判定する。2Dパッチの境界エッジ(辺)は、2Dパッチの境界の線分である。
いくつかの例では、いくつかのパッチ重複チェック技術は、2Dパッチの境界に基づいて重複チェックを行うことができる。例えば、2つの2Dパッチの境界が交差せず、一方の2Dパッチが他方の2Dパッチの内側に存在しない場合に、2つの2Dパッチには重複がない。こうして、いくつかの例では、2つのテストを行い、第1のテストは、2つの2Dパッチの境界が交差しないことをテストし、第2のテストは、一方の2Dパッチが他方の2Dパッチの内側に存在しないことをテストする。両方のテストに合格すると、2つの2Dパッチには重複がない。
いくつかの例では、パラメータ化中に、3Dのパッチは2Dパッチにパラメータ化され、パッチの3D頂点は、3D頂点に関連付けられたUV座標に従って2D頂点にマッピングされ、2Dパッチの境界は、2Dパッチの2D境界頂点を接続する境界エッジ(辺)を含む。各境界エッジは始点及び終点を有する線分であり、始点及び終点は2D境界頂点であり、境界エッジの線分を順番に接続して、境界が形成される。例えば、現在の線分の始点は順番で以前の線分の終点であり、現在の線分の終点は順番で次の線分の始点である。
一例では、2つの2Dパッチの境界が交差するか否かをチェックするために、第1の2Dパッチの第1の境界エッジをチェックして、第1の境界エッジのいずれかが第2の2Dパッチの第2の境界エッジのエッジと交差するかどうかを判定する。例えば、第1の境界エッジ内の各第1の境界エッジについて、第1の境界エッジと第2の境界エッジの各第2の境界エッジとをチェックして、第1の境界エッジと第2の境界エッジが交差するかどうかを判定する。
第1の境界エッジと第2の境界エッジが交差するかどうかを判定するために、向きベースの技術を使用することができる。第1の境界エッジ(辺)は、第1の始点及び第1の終点を有する第1の線分であり、第2の境界エッジ(辺)は、第2の始点及び第2の終点を有する第2の線分である。向きベースの技術には、2つのチェックステップが含まれる。第1のチェックステップでは、第1の始点、第2の始点、及び第2の終点によって形成される第1の三角形の第1の向きが決定され、第1の終点、第2の始点、及び第2の終点によって形成される第2の三角形の第2の向きが決定される。第1の向きは、第1の始点から第2の始点、そして第2の終了点への回転が時計回りであるか又は反時計回りであるかを示す。第2の向きは、第1の終点から第2の始点、そして第2の終点への回転が時計回りであるか又は反時計回りであるかを示す。第1の向きと第2の向きが異なる場合に、2つの2Dパッチの境界は交差する。
いくつかの例では、第2の始点、第1の始点、及び第1の終点によって形成される第3の三角形の第3の向きが決定され、第2の終点、第1の終点、及び第1の終点によって形成される第4の三角形の第4の向きが決定される。第3の向きは、第2の始点から第1の始点、さらに第1の終点への回転が時計回りであるか又は反時計回りであるかを示す。第4の向きは、第2の終点から第1の始点、そして第1の終点への回転が時計回りか又は反時計回りかを示す。第3の向きと第4の向きが異なる場合に、2つの2Dパッチの境界は交差する。
いくつかの例では、第1の向きと第2の向きが同じであり、第3の向きと第4の向きが同じである場合に、第2のチェックステップが実行される。
第2のチェックステップでは、第1の始点及び第1の終点をチェックして、第1の始点及び第1の終点が第2線分上にあるかどうかを判定する。第1の始点及び第1の終点がいずれも第2の線分上にない場合に、第2の始点及び第2の終点をチェックして、第2の始点及び第2の終点が第1の線分上にあるかどうかを判定する。第1の始点及び第1の終点がいずれも第2の線分上になく、第2の始点及び第2の終点がいずれも第1の線分上にない場合に、第1の線分(例えば、第1の境界エッジ)と第2の線分(例えば、第2の境界エッジ)は交差しない。
第1の2Dパッチの第1の境界エッジのいずれも第2の2Dパッチの第2の境界エッジと交差しない場合に、2つの2Dパッチのうちの一方が他方の2Dパッチの内側に完全に存在するか、又は2つの2Dパッチには重複がない。一方の2Dパッチが他の2Dパッチの内側に完全に存在するかどうかをチェックするために、第1の2Dパッチの第1の点(任意の点又は頂点)をチェックして、第1の点が第2の2Dパッチの内側にあるかどうかを判定し、そして第2の2Dパッチの第2の点(任意の点又は頂点)をチェックして、第2の点が第1の2Dパッチの内側にあるかどうかを判定する。
第1及び第2の2Dパッチの境界エッジに交差がなく(交差しない)、第1の点が第2の2Dパッチの内側になく、第2の点が第1の2Dパッチ内にない場合に、第1の2Dパッチと第2の2Dパッチには重複がない。
本開示の別の態様によれば、拡大パッチ重複チェック技術は、2Dパッチを拡張又は拡大して、拡大2Dパッチに重複がないかどうかをチェックするアプリケーションシナリオで使用することができる。
2Dパッチの境界頂点は、境界エッジの始点(及び終点)として規定され、境界ピクセルは境界エッジ上のピクセルであり、境界ピクセルは必ずしも境界頂点である必要はない。
いくつかの例では、2Dパッチ拡大は、2D画像内の全ての2Dパッチに対して行われる。2DパッチをサイズN(Nは正の整数)だけ拡大するために、各境界ピクセルの[2N+1,2N+1]近傍(neighborhood)のピクセルが2Dパッチに含まれ、[2N+1,2N+1]近傍は境界ピクセルを中心に配置される。例えば、N=1、2N+1=3の場合に、各境界ピクセルは、境界ピクセルを中心とする[3,3]近傍を有することができる。各境界ピクセルの[3,3]近傍のピクセルは、拡大2Dパッチに含まれる。
図11Aは、2Dマップ(1100)内の2Dパッチ(1110)の図を示し、図11Bは、一例における2Dマップ(1100)内の拡大2Dパッチ(1120)の図を示す。図11Aの例では、2Dパッチ(1110)は三角形の形状を有する。図11Bでは、拡大2Dパッチ(1120)の境界が実線で示され、拡大2Dパッチ(1120)の内側の元の2Dパッチ(1110)の境界が点線で示される。
一例では、2つの拡大2Dパッチに重複がないかどうかをチェックするために、拡大2Dパッチの新しい境界頂点が決定される。次に、拡大2Dパッチの新しい境界エッジを決定することができ、パッチ重複チェック技術を拡大2Dパッチに対して使用することができる。
一例では、境界ボックスチェック技術を使用することができる。拡大により、第1の拡大2Dパッチの第1の拡大境界ボックスは、第1の2Dパッチの第1の境界ボックスからそれぞれ左、右、上、下にNだけ拡大される。第2の拡大2Dパッチの第2の拡大境界ボックスは、第2の2Dパッチの第2の境界ボックスからそれぞれ左、右、上、下にNだけ拡大される。次に、境界ボックスチェック技術を、第1の拡大境界ボックス及び第2の拡大境界ボックスに適用することができる。第1の拡大境界ボックスと第2の拡大境界ボックスとに重複がない場合に、第1の拡大2Dパッチと第2の拡大2Dパッチに重複がない。
別の例では、2つの拡大2Dパッチに重複がないことをチェックすることは、2つの拡大2Dパッチの点に基づいて行うことができる。例えば、2つの拡大2Dパッチは、両方の拡大2Dパッチの内側に点が存在しない場合に限り、重複しない。
いくつかの例では、第1の拡大2Dパッチの内側の整数ピクセル座標を有する全ての点をそれぞれチェックして、それらの点が第2の拡大2Dパッチの内側にあるかどうかを判定する。第1の拡大2Dパッチの内側の点がいずれも第2の拡大2Dパッチの内側に存在しない場合に、第1の拡大2Dパッチと第2の拡大2Dパッチに重複がない。
境界ピクセルは、2Dパッチの境界上のピクセルであり、必ずしも境界頂点である必要はないことに留意されたい。境界頂点は、2Dパッチの境界エッジの始点(又は終点)である。
本開示の一態様は、線分処理に基づく拡大パッチ重複チェック技術を提供する。いくつかの例では、追加の線分を2Dパッチの境界エッジの元のセットに追加して、2Dパッチの新しい境界エッジのセットを形成することができる。例えば、追加の線分を第1の2Dパッチの第1の元の境界エッジのセットに追加して、第1の2Dパッチの第1の新しい境界エッジのセットが形成され、そして追加の線分を第2の2Dパッチの第2の元の境界エッジのセットに追加して、第2の2Dパッチの第2の新しい境界エッジのセットが形成される。第1の2Dパッチ及び第2の2Dパッチの2つの拡大2Dパッチに重複がないかどうかをチェックすることは、第1の新しい境界エッジのセットからの線分が第2の新しい境界エッジのセットからの線分と交差するかどうかをチェックすることによって行うことができる。
いくつかの例では、追加の線分は、図12に示されるように、2Dパッチの2D境界頂点の2倍近傍(double neighborhood)境界である。
図12は、一例における2Dパッチの境界頂点に対する新しい線分を示す図を示す。図12は、2Dパッチ(図示せず)の境界頂点(1201)を示す。一例では、サイズN(Nは正の整数)のパッチ拡大を行って、拡大2Dパッチ(図示せず)が生成される。図12は、境界頂点(1201)を中心とするサイズ[2N+1,2N+1]の第1の近傍(1210)と、境界頂点(1201)を中心とするサイズ[4N+1,4N+1]の第2の近傍(1220)も示している。境界頂点(1201)の第1の近傍(1210)は、拡大2Dパッチに含まれるピクセルを含む。第2の近傍(1220)は、境界頂点(1201)の2倍近傍(1220)と呼ばれる。2倍近傍(1220)は、正方形の形状を有し、4つの頂点(1221)~(1224)を含む。
一例では、境界頂点(1201)はUV座標(u,v)を有し、次にそれぞれ頂点(1221)はUV座標(u-2N,v+2N)を有し、頂点1224はUV座標(u-2N,v-2N)を有し、頂点(1223)はUV座標(u+2N,v-2N)を有し、頂点(1222)はUV座標(u+2N、v+2N)を有する。
図12の例では、2倍近傍(1220)の境界の4つの線分(1231)~(1234)は、境界頂点(1201)に応じて新しいエッジのセットに追加される追加の線分である。線分(1231)は頂点(1221)と頂点(1222)を接続する。線分(1232)は頂点(1222)と頂点(1223)を接続する。線分(1233)は頂点(1223)と頂点(1224)を接続する。線分(1234)は頂点(1224)と頂点(1221)を接続する。
いくつかの例では、パッチの拡大に応答して、第1の2Dパッチの第1の新しい境界エッジのセットが、第1の2Dパッチの境界頂点の2倍拡大近傍に基づく追加の線分を用いて、第1の2Dパッチの第1の元の境界エッジのセットから更新される。第2の2Dパッチの第2の新しい境界エッジのセットが、第2の2Dパッチ境界頂点の2倍拡大近傍に基づく追加の線分を用いて、第2の2Dパッチの第2の元の境界エッジのセットから更新される。次に、いくつかの例では、2つのテストが行われる。第1のテストでは、第1の新しい境界エッジのセット(元の境界エッジと、第1の2Dパッチの境界頂点の2倍拡大近傍に基づく追加の線分とを含む)と、第2の新しい境界エッジのセット(元の境界エッジと、第2の2Dパッチの境界頂点の2倍拡大近傍に基づく追加の線分とを含む)とが交差しないことをテストすることができる。第2のテストでは、一方の拡大2Dパッチが他方の拡大2Dパッチの内側に存在しないことをテストすることができる。両方のテストに合格すると、2つの拡大2Dパッチには重複がない。
図13A~図13Bは、2つの非重複2Dパッチの図を示し、2つの非重複2Dパッチはいくつかの例においてパッチ拡大後に重複する。図13Aは、2Dマップ(1300)内の第1の2Dパッチ(1310)及び第2の2Dパッチ(1320)を示す。第1の2Dパッチ(1310)及び第2の2Dパッチ(1320)は、2つの非重複2Dパッチである。
図13Bは、2Dマップ(1300)内の第1の2Dパッチ(1310)及び第2の2Dパッチ(1320)、並びに第1の2Dパッチ(1310)の境界頂点の2倍拡大近傍及び第2の2Dパッチ(1320)の境界頂点の2倍拡大近傍を示す。例えば、第1の2Dパッチ(1310)の境界頂点の2倍拡大近傍には、3つの正方形(1311)~(1313)が含まれ、第2の2Dパッチ(1320)の境界頂点の2倍拡大近傍には、3つの正方形(1321)~(1323)が含まれる。拡大2Dパッチの重複は、1350によって示されるように、2倍拡大近傍(1313)の境界が第2の2Dパッチ(1320)の元の境界エッジと交差することによって決定され得る。
図14は、本開示の一実施形態によるプロセス(1400)の概要を示すフローチャートを示す。プロセス(1400)は、メッシュ処理中に使用することができる。様々な実施形態において、プロセス(1400)は処理回路によって実行される。いくつかの実施形態では、プロセス(1400)はソフトウェア命令で実装され、こうして、処理回路がソフトウェア命令を実行するとき、処理回路はプロセス(1400)を実行する。処理は、(S1401)で開始され、(S1410)に進む。
(S1410)において、第1のパッチの第1の頂点に関連付けられた第1のUV座標と、第2のパッチの第2の頂点に関連付けられた第2のUV座標とを受け取る。第1のパッチ及び第2のパッチは3Dメッシュからのパーティションであり、3Dメッシュは、オブジェクトの表面をポリゴンで表し、パッチにパーティション分割される。第1のパッチは第1の頂点を含み、第1の頂点は、第1のUV座標に従って2Dマップ内の第1の2Dパッチの第1の2D頂点にマッピングされる。第2のパッチは第2の頂点を含み、第2の頂点は、第2のUV座標に従って2Dマップ内の第2の2Dパッチの第2の2D頂点にマッピングされる。
(S1420)において、2Dマップ内の第1の2Dパッチを取り囲む第1の領域が決定される。
(S1430)において、2Dマップ内の第2の2Dパッチを取り囲む第2の領域が決定される。
(S1440)において、第1の領域と第2の領域に重複がないことに応じて、第1の2Dパッチと第2の2Dパッチに重複がないと判定される。
いくつかの実施形態では、第1の領域は第1の2Dパッチの第1の境界ボックスであり、第2の領域は第2の2Dパッチの第2の境界ボックスである。いくつかの例では、第1の境界ボックスは、第1のUV座標における最小U座標値、最大U座標値、最小V座標値、及び最大V座標値に従って決定され、第2の境界ボックスは、第2のUV座標における最小U座標値、最大U座標値、最小V座標値、及び最大V座標値に従って決定される。
いくつかの実施形態では、第1の領域は、第1の2Dパッチに対する第1の拡大2Dパッチの第1の拡大境界ボックスであり、第2の領域は、第2の2Dパッチに対する第2の拡大2Dパッチの第2の拡大境界ボックスである。いくつかの例では、第1の境界ボックスは、第1のUV座標における最小U座標値、最大U座標値、最小V座標値、及び最大V座標値に従って決定される。第2の境界ボックスは、第2のUV座標における最小U座標値、最大U座標値、最小V座標値、及び最大V座標値に従って決定される。第1の拡大境界ボックスは、第1の境界ボックスの境界を拡大することによって決定され、第2の拡大境界ボックスは、第2の境界ボックスの境界を拡大することによって決定される。
そして、プロセスは、(S1499)に進み、終了する。
プロセス(1400)は、適切に適応させることができる。プロセス(1400)のステップは変更及び/又は省略することができる。追加のステップを加えてもよい。任意の適切な順序の実施態様を使用してもよい。
図15は、本開示の一実施形態によるプロセス(1500)の概要を示すフローチャートを示す。プロセス(1500)は、メッシュ処理中に使用することができる。様々な実施形態において、プロセス(1500)は処理回路によって実行される。いくつかの実施形態では、プロセス(1500)はソフトウェア命令で実装され、こうして、処理回路がソフトウェア命令を実行するとき、処理回路はプロセス(1500)を実行する。プロセスは、(S1501)で開始され、(S1510)に進む。
(S1510)において、第1のパッチの第1の頂点に関連付けられた第1のUV座標と、第2のパッチの第2の頂点に関連付けられた第2のUV座標とを受け取る。第1のパッチ及び第2のパッチは3Dメッシュからのパーティションであり、3Dメッシュは、オブジェクトの表面をポリゴンで表し、パッチにパーティション分割される。第1のパッチは第1の頂点を含み、第1の頂点は、第1のUV座標に従って2Dマップ内の第1の2Dパッチの第1の2D頂点にマッピングされる。第2のパッチは第2の頂点を含み、第2の頂点は、第2のUV座標に従って2Dマップ内の第2の2Dパッチの第2の2D頂点にマッピングされる。
(S1520)では、第1の2Dパッチと第2の2Dパッチとの両方に点が存在しないことに応じて、第1の2Dパッチと第2の2Dパッチに重複がないと判定される。
いくつかの実施形態では、第1の2Dパッチ内の整数ピクセル位置にあるそれぞれの第1の点が第2の2Dパッチ内に存在するかどうかがチェックされる。さらに、第1の2Dパッチ内のそれぞれの第1の点が第2の2Dパッチの境界上にあるかどうかがチェックされる。一例では、第1の2Dパッチ内の整数ピクセル位置にある第1の点のいずれも第2の2Dパッチ内に存在せず、第1の2Dパッチ内の第1の点のいずれも第2の2Dパッチの境界上にない場合に、第1の2Dパッチと及び第2の2Dパッチには重複がない。
いくつかの実施形態では、第1の2D頂点内のそれぞれの第1の境界頂点が第2の2Dパッチ内に存在するかどうかがチェックされ、第2の2D頂点内のそれぞれの第2の境界頂点が第1の2Dパッチ内に存在するかどうかがチェックされる。一例では、第1の2D頂点内の第1の境界頂点のいずれも第2の2Dパッチ内に存在せず、第2の2D頂点内の第2の境界頂点のいずれも第1の2Dパッチ内に存在しない場合に、第1の2Dパッチと第2の2Dパッチに重複がない。いくつかの例では、第1の2D頂点内のそれぞれの第1の境界頂点が第2の2Dパッチの境界上にあるかどうかがチェックされ、そして、第2の2D頂点内のそれぞれの第2の境界頂点が第1の2Dパッチの境界上にあるかどうかがチェックされる。
いくつかの実施形態では、第1の2Dパッチの第1の境界と第2の2Dパッチの第2の境界とには交差がない(例えば交差しない)と判定される。さらに、第1の2Dパッチ及び第2の2Dパッチのいずれも、第1の2Dパッチ及び第2の2Dパッチのいずれか(another)の内側には存在しない。その場合に、第1の2Dパッチと第2の2Dパッチに重複がない。
第1の境界と第2の境界が交差しないことを判定するために、いくつかの例では、第1の境界の第1の線分と第2の境界の第2の線分とについて、第1の線分の第1の始点、第2の線分の第2の始点、及び第2の線分の第2の端部(second end)によって形成される第1の三角形の第1の向きが決定され、第1の線分の第1の終点、第2の線分の第2の始点、及び第2の線分の第2の端部によって形成される第2の三角形の第2の向きが決定される。第1の境界及び第2の境界は、第1の向きが第2の向きと異なることに応じて交差する。
いくつかの例では、第1の始点及び第1の終点のうちの少なくとも一方が第2の線分上にあることに応じて、第1の線分と第2の線分は交差する。同様に、第2の始点及び第2の終点の少なくとも一方が第1の線分上にあることに応じて、第1の線分と第2の線分は交差する。
いくつかの例では、第1の線分と第2の線分は役割を切り替えることができる。例えば、第2の線分の第2の始点、第1の線分の第1の始点、及び第1の線分の第1の端部(first end)によって形成される第3の三角形の第3の向きが決定され、第2の線分の第2の終点、第1の線分の第1の始点、及び第1の線分の第1の端部によって形成される第4の三角形の第4の向きが決定される。第1の境界及び第2の境界は、第3の向きが第4の向きと異なることに応じて交差する。
いくつかの例では、第1の2Dパッチ及び第2の2Dパッチのいずれも第1の2Dパッチ及び第2の2Dパッチの他方(the other)の内側に存在しないと判定するために、第1の2Dパッチの第1の点が第2の2Dパッチの内側に存在しないと判定され、第2の2Dパッチの第2の点が第1の2Dパッチの内側に存在しないと判定される。
いくつかの例では、第1の2Dパッチは第3の2Dパッチの第1の拡大2Dパッチであり、第2の2Dパッチは第4の2Dパッチの第2の拡大2Dパッチであることに留意されたい。
そして、プロセスは、(S1599)に進み、終了する。
プロセス(1500)は、適切に適応させることができる。プロセス(1500)のステップは変更及び/又は省略することができる。追加のステップを加えてもよい。任意の適切な順序の実施態様を使用してもよい。
図16は、本開示の一実施形態によるプロセス(1600)の概要を示すフローチャートを示す。プロセス(1600)は、メッシュ処理中に使用することができる。様々な実施形態において、プロセス(1600)は処理回路によって実行される。いくつかの実施形態では、プロセス(1600)はソフトウェア命令で実装され、こうして、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(1600)を実行する。プロセスは、(S1601)で開始され、(S1610)に進む。
(S1610)において、第1のパッチの第1の頂点に関連付けられた第1のUV座標と、第2のパッチの第2の頂点に関連付けられた第2のUV座標とが受け取られる。第1のパッチ及び第2のパッチは3Dメッシュからのパーティションであり、3Dメッシュは、オブジェクトの表面をポリゴンで表し、パッチにパーティション分割される。第1のパッチは第1の頂点を含み、第1の頂点は、第1のUV座標に従って2Dマップ内の第1の2Dパッチの第1の2D頂点にマッピングされる。第2のパッチは第2の頂点を含み、第2の頂点は、第2のUV座標に従って2Dマップ内の第2の2Dパッチの第2の2D頂点にマッピングされる。
(S1620)において、第1の拡大2Dパッチは、第1の2Dパッチの第1の境界の第1の境界ピクセルに第1のサイズ(例えば、Nのサイズ、Nは正の整数)の第1の拡大を適用することによって決定される。第1の境界ピクセルの第1の拡大により、第1の境界ピクセルを中心とする近傍の正方形内のピクセルが、第1の拡大2Dパッチに含まれるようにする。近傍の正方形の一辺の大きさは2N+1である。
(S1630)において、第2の拡大2Dパッチは、第2の2Dパッチの第2の境界の第2の境界ピクセルに第1のサイズの第2の拡大を適用することによって決定される。
(S1640)において、第1の拡大2Dパッチと第2の拡大2Dパッチに重複がないかどうかをチェックする。
いくつかの実施形態では、第1の拡大2Dパッチと第2の拡大2Dパッチに重複がないとチェックするために、第1の2D頂点内の第1の境界頂点に第2のサイズの第3の拡大を適用することによって、第1の2倍に拡大される正方形が決定され、第2のサイズは第1のサイズの2倍になる。第1の境界頂点上の第1の2倍に拡大される正方形は、第1の境界頂点を中心とし、第1の2倍に拡大される正方形の辺のサイズは4N+1である。次に、第2の2D頂点内の第2の境界頂点に第2のサイズの第4の拡大を適用することによって、第2の2倍に拡大される正方形が決定される。線分の第1のセットは、第1の境界における第1の境界エッジ(辺)と、第1の2倍に拡大される正方形の第1の近傍境界エッジ(辺)とを含むように決定される。線分の第2のセットは、第2の境界の第2の境界エッジ(辺)と、第2の2倍に拡大される正方形の第2の近傍境界エッジ(辺)とを含むように決定される。次に、第1のセットの線分及び第2のセットの線分において、第1のセットの線分と第2のセットの線分に交差がないかどうかがチェックされる。一例では、第1のセットの線分と第2のセットの線分が交差しないときに、第1の拡大2Dパッチと第2の拡大2Dパッチに重複がない。
いくつかの例では、第1の拡大2Dパッチは第2の拡大2Dパッチ内に存在しないと判定され、第2の拡大2Dパッチは第1の拡大2Dパッチ内に存在しないと判定される。
第1の拡大2Dパッチと第2の拡大2Dパッチが重複していないとチェックするために、一例では、第1の拡大2Dパッチの第1の境界ボックスと第2の拡大2Dパッチの第2の境界ボックスをチェックして、第1の境界ボックスと第2の境界ボックスに重複がないかどうかを判定する。第1の境界ボックスと第2の境界ボックスが重複しない場合に、第1の拡大2Dパッチと第2の拡大2Dパッチに重複がない。別の例では、第1の拡大2Dパッチと第2の拡大2Dパッチとの両方に点が存在しないことに応じて、第1の拡大2Dパッチと第2の拡大2Dパッチに重複がないと判定される。
そして、プロセスは、(S1699)に進み、終了する。
プロセス(1600)は、適切に適応させることができる。プロセス(1600)のステップは変更及び/又は省略することができる。追加のステップを加えてもよい。 任意の適切な順序の実施態様を使用してもよい。
本開示で開示する技術は、個別に使用することも、任意の順序で組み合わせて使用することもできる。さらに、技術(例えば、方法、実施形態)、エンコーダ、及びデコーダのそれぞれは、処理回路(例えば、1つ又は複数のプロセッサ又は1つ又は複数の集積回路)によって実装され得る。いくつかの例では、1つ又は複数のプロセッサは、非一時的なコンピュータ可読媒体に格納されたプログラムを実行する。
上述の技術は、コンピュータ可読命令を使用するコンピュータソフトウェアとして実装することができ、1つ又は複数のコンピュータ可読媒体に物理的に記憶させることができる。例えば、図17は、開示する主題の特定の実施形態を実装するのに適したコンピュータシステム(1700)を示す。
コンピュータソフトウェアは、任意の適切な機械コード又はコンピュータ言語を使用してコーディングすることができ、アセンブリ、コンパイル、リンク、又は同様のメカニズムを受けて、1つ又は複数のコンピュータ中央処理装置(CPU)、グラフィックス処理装置(GPU)等によって直接実行できる、又はマイクロコードの解釈を通じて実行できる命令を含むコードを作成することができる。
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーム装置、モノのインターネット装置等を含む、様々な種類のコンピュータ又はそのコンポーネント上で実行することができる。
図17に示されるコンピュータシステム(1700)のコンポーネントは、本質的に例示であり、本開示の実施形態を実施するコンピュータソフトウェアの使用又は機能の範囲に関していかなる限定を示唆するものではない。また、コンポーネントの構成は、コンピュータシステム(1700)の例示的な実施形態に示されるコンポーネントのいずれか1つ又は組合せに関連する依存性又は要件を有するものとして解釈すべきではない。
コンピュータシステム(1700)は、特定のヒューマンインターフェイス入力装置を含むことができる。このようなヒューマンインターフェイス入力装置は、例えば、触覚入力(キーストローク、スワイプ、データグローブの動き等)、音声入力(音声、拍手等)、視覚入力(ジェスチャー等)、嗅覚入力(図示せず)等を介した1人又は複数の人間ユーザによる入力に応答することができる。ヒューマンインターフェイス装置は、オーディオ(音声、音楽、環境音等)、画像(スキャン画像、静止画カメラから取得した写真画像等)、動画(2次元動画、立体視動画を含む3次元動画等)等、人間による意識的な入力に必ずしも直接関係しない特定のメディアを取り込むために使用することもできる。
ヒューマンインターフェイス入力装置は、キーボード(1701)、マウス(1702)、トラックパッド(1703)、タッチスクリーン(1710)、データグローブ(図示せず)、ジョイスティック(1705)、マイク(1706)、スキャナ(1707)、カメラ(1708)のうちの1つ又は複数を含むことができ、それぞれ1つのみが示される。
コンピュータシステム(1700)は、特定のヒューマンインターフェイス出力装置を含むこともできる。このようなヒューマンインターフェイス出力装置は、例えば、触覚出力、音、光、及び匂い/味を通じて、1人又は複数の人間のユーザの感覚を刺激することができる。このようなヒューマンインターフェイス出力装置には、触覚出力装置(例えば、タッチスクリーン(1710)、データグローブ(図示せず)、又はジョイスティック(1705)による触覚フィードバックが含まれる場合があるが、入力装置として機能しない触覚フィードバック装置も存在し得る)、音声出力装置(スピーカ(1709)、ヘッドフォン(図示せず)等)、視覚出力装置(CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーン等のスクリーン(1710)等、それぞれタッチスクリーン入力機能の有無があり、それぞれ触覚フィードバック機能の有無があり、そのうちのいくつかは、ステレオグラフィック出力;仮想現実メガネ(図示せず)ホログラフィックディスプレイ及びスモークタンク(図示せず)等の手段を通じて2次元の視覚出力又は3次元以上の出力を出力できるものもある)、及びプリンタ(図示せず)が含まれ得る。
コンピュータシステム(1700)は、人間がアクセス可能な記憶装置及びCD/DVDを含むCD/DVD ROM/RW(2020)等の光媒体又は同様の媒体(1721)等の関連媒体、サムドライブ(1722)、リムーバブルハードドライブ又はソリッドステートドライブ(1723)、テープ及びフロッピーディスク等のレガシー磁気媒体(図示せず)、セキュリティドングル(図示せず)等の特殊なROM/ASIC/PLDベースの装置等も含むことができる。
当業者はまた、本明細書で開示する主題に関連して使用する「コンピュータ可読媒体」という用語が、送信媒体、搬送波、又は他の一時的な信号を包含しないことを理解すべきである。
コンピュータシステム(1700)は、1つ又は複数の通信ネットワーク(1755)へのインターフェイス(1754)を含むこともできる。ネットワークは、例えば、無線、有線、光等であってもよい。さらに、ネットワークは、ローカル、広域、大都市、車両及び産業用、リアルタイム、遅延耐性等であってもよい。ネットワークの例には、イーサネット等のローカルエリアネットワーク、無線LAN、GSM、3G、4G、5G、LTE等を含むセルラーネットワーク、ケーブルTV、衛星TV、及び地上波放送TVを含むTV有線又は無線広域デジタルネットワーク、CANBusを含む車両及び産業用等が含まれる。特定のネットワークは、一般に、特定の汎用データポート又は周辺バス(1749)(例えば、コンピュータシステム(1700)のUSBポート等)に接続される外部ネットワークインターフェイスアダプタを必要とする。他のものは一般に、後述するようにシステムバスに接続することによってコンピュータシステム(1700)のコアに統合される(例えば、イーサネットインターフェイスのPCコンピュータシステムへの統合、又はセルラーネットワークインターフェイスのスマートフォンコンピュータシステムへの統合)。これらのネットワークのいずれかを使用して、コンピュータシステム(1700)は他のエンティティと通信することができる。このような通信は、例えばローカル又はワイドエリアデジタルネットワークを使用して他のコンピュータシステムへの、一方向、受信専用(テレビ放送等)、一方向送信専用(CANBusから特定のCANBus装置等)、又は双方向の通信にすることができる。特定のプロトコル及びプロトコルスタックは、上で説明したように、これらのネットワーク及びネットワークインターフェイスのそれぞれで使用することができる。
前述のヒューマンインターフェイス装置、人間がアクセス可能な記憶装置、及びネットワークインターフェイスは、コンピュータシステム(1700)のコア(1740)に取り付けることができる。
コア(1740)は、1つ又は複数の中央処理装置(CPU)(1741)、グラフィックス処理装置(GPU)(1742)、フィールドプログラマブルゲート領域(FPGA)(1743)の形態の特殊なプログラマブル処理装置、特定のタスク用のハードウェアアクセラレータ(1744)、及びグラフィックスアダプタ(1750)等を含むことができる。これらの装置は、読み取り専用メモリ(ROM)(1745)、ランダムアクセスメモリ(1746)、ユーザがアクセスできない内部ハードドライブ、及びSSD等の内部大容量記憶装置(1747)とともに、システムバス(1748)を介して接続することができる。いくつかのコンピュータシステムでは、システムバス(1748)は、追加のCPU、及びGPU等による拡張を可能にするために、1つ又は複数の物理プラグの形式でアクセス可能にすることができる。周辺装置は、コアのシステムバス(1748)に直接接続することもでき、又は周辺バス(1749)を介して接続することもできる。一例では、スクリーン(1710)をグラフィックスアダプタ(1750)に接続することができる。周辺バスのアーキテクチャには、PCI、USB等が含まれる。
CPU(1741)、GPU(1742)、FPGA(1743)、及びアクセラレータ(1744)は、組合せて、前述のコンピュータコードを構成できる特定の命令を実行することができる。そのコンピュータコードは、ROM(1745)又はRAM(1746)に格納され得る。移行データはRAM(1746)に格納することもできるが、永続データは例えば内部大容量記憶装置(1747)に格納することができる。任意のメモリ装置への高速ストレージ及び取得は、1つ又は複数のCPU(1741)、GPU(1742)、大容量記憶装置(1747)、ROM(1745)、及びRAM(1746)等に密接に関連するキャッシュメモリの使用によって有効にすることができる。
コンピュータ可読媒体は、コンピュータによって実施される様々な動作を行うためのコンピュータコードをその上に有することができる。媒体及びコンピュータコードは、本開示の目的のために特別に設計及び構築されたものであってもよく、又はコンピュータソフトウェア技術の当業者によく知られ利用可能な種類のものであってもよい。
限定ではなく例として、アーキテクチャ(1700)、特にコア(1740)を有するコンピュータシステムは、プロセッサ(CPU、GPU、FPGA、及びアクセラレータ等)が1つ又は複数の有形のコンピュータ可読媒体に組み込まれたソフトウェアを実行する結果として機能を提供することができる。このようなコンピュータ可読媒体は、上で紹介したようにユーザがアクセス可能な大容量記憶装置に関連付けられた媒体であってもよく、コア内部大容量記憶装置(1747)又はROM(1745)等の非一時的な性質を有するコア(1740)の特定の記憶装置であってもよい。本開示の様々な実施形態を実装するソフトウェアは、そのような装置に格納され、コア(1740)によって実行され得る。コンピュータ可読媒体には、特定のニーズに応じて、1つ又は複数のメモリ装置又はチップを含めることができる。ソフトウェアは、コア(1740)、特にその中のプロセッサ(CPU、GPU、及びFPGA等を含む)に、RAM(1746)に格納したデータ構造の規定を含み且つソフトウェアによって規定されたプロセスに従ってそのようなデータ構造を変更する、本明細書で説明した特定のプロセス又は特定のプロセスの特定の部分を実行させることができる。加えて、又は代替として、コンピュータシステムは、回路にハードワイヤード又は他の方法で組み込まれたロジック(例えば、アクセラレータ(1744))の結果として機能を提供することができ、これは、本明細書で説明した特定のプロセス又は特定のプロセスの特定の部分を実行するためにソフトウェアの代わりに、又はソフトウェアと一緒に動作することができる。ソフトウェアへの参照には、必要に応じてロジックが含まれる場合もあり、その逆も同様である。コンピュータ可読媒体への言及は、必要に応じて、実行用のソフトウェアを格納する回路(集積回路(IC)等)、実行用のロジックを具体化した回路、又はその両方を包含することができる。本開示は、ハードウェアとソフトウェアの任意の適切な組合せを包含する。
本開示はいくつかの例示的な実施形態について説明してきたが、本開示の範囲内に含まれる変更、置換、及び様々な代替均等物が存在する。こうして、当業者であれば、本明細書では明示的に図示又は説明していないが、本開示の原理を具体化し、こうして本開示の精神及び範囲内にある多くのシステム及び方法を想起することができることが理解されよう。
Claims (21)
- メッシュ処理のための方法であって、当該方法は、
第1のパッチの第1の頂点に関連付けられた第1のUV座標と、第2のパッチの第2の頂点に関連付けられた第2のUV座標とを受け取るステップであって、前記第1のパッチ及び前記第2のパッチは3次元(3D)メッシュからのパーティションであり、前記3Dメッシュは、オブジェクトの表面をポリゴンで表し、パッチにパーティション分割されており、前記第1のパッチは前記第1の頂点を含み、該第1の頂点は、前記第1のUV座標に従って2次元(2D)マップ内の第1の2Dパッチの第1の2D頂点にマッピングされ、前記第2のパッチは前記第2の頂点を含み、該第2の頂点は、前記第2のUV座標に従って前記2Dマップ内の第2の2Dパッチの第2の2D頂点にマッピングされる、ステップと、
前記2Dマップ内の前記第1の2Dパッチを取り囲む第1の領域を決定するステップと、
前記2Dマップ内の前記第2の2Dパッチを取り囲む第2の領域を決定するステップと、
前記第1の領域と前記第2の領域に重複がないと判定するステップと、
前記第1の領域と前記第2の領域に重複がないことに応じて、前記第1の2Dパッチと第2の2Dパッチに重複がないと判定するステップと、を含む、
方法。 - 前記第1の領域は、前記第1の2Dパッチの第1の境界ボックスであり、前記第2の領域は、前記第2の2Dパッチの第2の境界ボックスである、請求項1に記載の方法。
- 前記第1のUV座標における最小U座標値、最大U座標値、最小V座標値、及び最大V座標値に従って前記第1の境界ボックスを決定するステップと、
前記第2のUV座標における最小U座標値、最大U座標値、最小V座標値、及び最大V座標値に従って前記第2の境界ボックスを決定するステップと、をさらに含む、請求項2に記載の方法。 - 前記第1の領域は、前記第1の2Dパッチに対する第1の拡大2Dパッチの第1の拡大境界ボックスであり、前記第2の領域は、前記第2の2Dパッチに対する第2の拡大2Dパッチの第2の拡大境界ボックスである、請求項1に記載の方法。
- 前記第1のUV座標における最小U座標値、最大U座標値、最小V座標値、及び最大V座標値に従って第1の境界ボックスを決定するステップと、
前記第2のUV座標における最小U座標値、最大U座標値、最小V座標値、及び最大V座標値に従って第2の境界ボックスを決定するステップと、
前記第1の境界ボックスの境界を拡大することによって、前記第1の拡大境界ボックスを決定するステップと、
前記第2の境界ボックスの境界を拡大することによって、前記第2の拡大境界ボックスを決定するステップと、をさらに含む、請求項4に記載の方法。 - メッシュ処理のための方法であって、当該方法は、
第1のパッチの第1の頂点に関連付けられた第1のUV座標と、第2のパッチの第2の頂点に関連付けられた第2のUV座標とを受け取るステップであって、前記第1のパッチ及び前記第2のパッチは3次元(3D)メッシュからのパーティションであり、前記3Dメッシュは、オブジェクトの表面をポリゴンで表し、パッチにパーティション分割されており、前記第1のパッチは前記第1の頂点を含み、該第1の頂点は、前記第1のUV座標に従って2次元(2D)マップ内の第1の2Dパッチの第1の2D頂点にマッピングされ、前記第2のパッチは前記第2の頂点を含み、該第2の頂点は、前記第2のUV座標に従って前記2Dマップ内の第2の2Dパッチの第2の2D頂点にマッピングされる、ステップと、
前記第1の2Dパッチと前記第2の2Dパッチとの両方に点が存在するかどうかを判定するステップと、
前記第1の2Dパッチと前記第2の2Dパッチとの両方に点が存在しないという判定に応答して、前記第1の2Dパッチと第2の2Dパッチに重複がないと判定するステップと、を含む、
方法。 - 前記第1の2Dパッチ内の整数ピクセル位置にあるそれぞれの第1の点が前記第2の2Dパッチ内に存在するかどうかをチェックするステップをさらに含む、請求項6に記載の方法。
- 前記第1の2Dパッチ内の前記それぞれの第1の点が前記第2の2Dパッチの境界上にあるかどうかをチェックするステップをさらに含む、請求項7に記載の方法。
- 前記第1の2D頂点のそれぞれの第1の境界頂点が前記第2の2Dパッチ内に存在するかどうかをチェックするステップと、
前記第2の2D頂点のそれぞれの第2の境界頂点が前記第1の2Dパッチ内に存在するかどうかをチェックするステップと、をさらに含む、請求項6に記載の方法。 - 前記第1の2D頂点の前記それぞれの第1の境界頂点が前記第2の2Dパッチの境界上にあるかどうかをチェックするステップと、
前記第2の2D頂点の前記それぞれの第2の境界頂点が前記第1の2Dパッチの境界上にあるかどうかをチェックするステップと、をさらに含む、請求項9に記載の方法。 - 前記第1の2Dパッチの第1の境界と前記第2の2Dパッチの第2の境界とに交差がないと判定するステップと、
前記第1の2Dパッチ及び前記第2の2Dパッチのいずれも、前記第1の2Dパッチ及び前記第2の2Dパッチのいずれかの内側に存在しないと判定するステップと、をさらに含む、請求項6に記載の方法。 - 前記第1の境界と前記第2の境界に交差がないと判定するステップは、
前記第1の境界の第1の線分と前記第2の境界の第2の線分とについて、
前記第1の線分の第1の始点、前記第2の線分の第2の始点、及び前記第2の線分の第2の端部によって形成される第1の三角形の第1の向きを決定するステップと、
前記第1の線分の第1の終点、前記第2の線分の前記第2の始点、及び前記第2の線分の前記第2の端部によって形成される第2の三角形の第2の向きを決定するステップと、
前記第1の向きが前記第2の向きと異なることに応じて、前記第1の境界と前記第2の境界が交差すると判定するステップと、を含む、請求項11に記載の方法。 - 前記第1の始点及び前記第1の終点のうちの少なくとも一方が前記第2の線分上にあることに応じて、前記第1の線分と前記第2の線分が交差すると判定するステップと、
前記第2の始点及び前記第2の終点のうちの少なくとも一方が前記第1の線分上にあることに応じて、前記第1の線分と前記第2の線分が交差すると判定するステップと、をさらに含む、請求項12に記載の方法。 - 前記第2の線分の前記第2の始点、前記第1の線分の前記第1の始点、及び前記第1の線分の第1の端部によって形成される第3の三角形の第3の向きを決定するステップと、
前記第2の線分の第2の終点、前記第1の線分の前記第1の始点、及び前記第1の線分の前記第1の端部によって形成される第4の三角形の第4の向きを決定するステップと、
前記第3の向きが前記第4の向きと異なることに応じて、前記第1の境界と前記第2の境界が交差すると判定するステップと、をさらに含む、請求項12に記載の方法。 - 前記第1の2Dパッチ及び前記第2の2Dパッチのいずれも、前記第1の2Dパッチ及び前記第2の2Dパッチの他方の内側に存在しないと判定するステップは、
前記第1の2Dパッチの第1の点が前記第2の2Dパッチの内側に存在しないと判定するステップと、
前記第2の2Dパッチの第2の点が前記第1の2Dパッチの内側に存在しないと判定するステップと、をさらに含む、請求項11に記載の方法。 - 前記第1の2Dパッチは第3の2Dパッチの第1の拡大2Dパッチであり、前記第2の2Dパッチは第4の2Dパッチの第2の拡大2Dパッチである、請求項6に記載の方法。
- メッシュ処理のための方法であって、当該方法は、
第1のパッチの第1の頂点に関連付けられた第1のUV座標と、第2のパッチの第2の頂点に関連付けられた第2のUV座標とを受け取るステップであって、前記第1のパッチ及び前記第2のパッチは3次元(3D)メッシュからのパーティションであり、前記3Dメッシュは、オブジェクトの表面をポリゴンで表し、パッチにパーティション分割されており、前記第1のパッチは前記第1の頂点を含み、該第1の頂点は、前記第1のUV座標に従って2次元(2D)マップ内の第1の2Dパッチの第1の2D頂点にマッピングされ、前記第2のパッチは前記第2の頂点を含み、該第2の頂点は、前記第2のUV座標に従って前記2Dマップ内の第2の2Dパッチの第2の2D頂点にマッピングされる、ステップと、
前記第1の2Dパッチの第1の境界の第1の境界ピクセルに第1のサイズの第1の拡大を適用することによって、第1の拡大2Dパッチを決定するステップと、
前記第2の2Dパッチの第2の境界の第2の境界ピクセルに第1のサイズの第2の拡大を適用することによって、第2の拡大2Dパッチを決定するステップと、
前記第1の拡大2Dパッチと前記第2の拡大2Dパッチに重複がないかどうかをチェックするステップと、を含む、
方法。 - 前記第1の2Dパッチと前記第2の2Dパッチに重複がないかどうかをチェックするステップは、
前記第1の2D頂点内の第1の境界頂点に、前記第1のサイズを2倍にする第2のサイズの第3の拡大を適用することによって、第1の2倍に拡大される正方形を決定するステップと、
前記第2の2D頂点内の第2の境界頂点に、前記第2のサイズの第4の拡大を適用することによって、第2の2倍に拡大される正方形を決定するステップと、
前記第1の境界における第1の境界エッジと、前記第1の2倍に拡大される正方形の第1の近傍境界エッジとを含む線分の第1のセットを決定するステップと、
前記第2の境界の第2の境界エッジと、前記第2の2倍に拡大される正方形の第2の近傍境界エッジとを含む線分の第2のセットを決定するステップと、
前記第1のセットの線分と前記第2のセットの線分に交差がないかどうかをチェックするステップと、をさらに含む、請求項17に記載の方法。 - 前記第1の拡大2Dパッチが前記第2の拡大2Dパッチ内に存在しないかどうかを判定するステップと、
前記第2の拡大2Dパッチが前記第1の拡大2Dパッチ内に存在しないかどうかを判定するステップと、をさらに含む、請求項18に記載の方法。 - 前記第1の拡大2Dパッチと前記第2の拡大2Dパッチに重複がないとチェックするステップは、
前記第1の拡大2Dパッチの第1の境界ボックスと前記第2の拡大2Dパッチの第2の境界ボックスとに重複がないと判定するステップ、及び/又は
前記第1の拡大2Dパッチと前記第2の拡大2Dパッチとの両方に点が存在しないことに応じて、前記第1の拡大2Dパッチと前記第2の拡大2Dパッチに重複がないと判定するステップのうちの少なくとも一方を含む、請求項17に記載の方法。 - 命令を記憶する非一時的なコンピュータ可読媒体であって、前記命令がコンピュータによって実行されると、該コンピュータに、請求項1乃至5のいずれか一項に記載の方法、請求項6乃至16のいずれか一項に記載の方法、又は請求項17乃至20のいずれか一項に記載の方法を実行させる、
非一時的なコンピュータ可読媒体。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163291842P | 2021-12-20 | 2021-12-20 | |
US63/291,842 | 2021-12-20 | ||
US17/969,580 | 2022-10-19 | ||
US17/969,580 US20230196663A1 (en) | 2021-12-20 | 2022-10-19 | Checking overlapping-free property for patches in mesh compression |
PCT/US2022/078724 WO2023122377A1 (en) | 2021-12-20 | 2022-10-26 | Checking overlapping-free property for patches in mesh compression |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2024516244A true JP2024516244A (ja) | 2024-04-12 |
Family
ID=86768568
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023566744A Pending JP2024516244A (ja) | 2021-12-20 | 2022-10-26 | メッシュ圧縮におけるパッチの重複のないプロパティのチェック |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230196663A1 (ja) |
JP (1) | JP2024516244A (ja) |
KR (1) | KR20230145176A (ja) |
CN (1) | CN116917950A (ja) |
WO (1) | WO2023122377A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11816868B2 (en) * | 2020-08-14 | 2023-11-14 | Tencent America LLC | Coding of multiple-component attributes for point cloud coding |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5995109A (en) * | 1997-04-08 | 1999-11-30 | Lsi Logic Corporation | Method for rendering high order rational surface patches |
US7019748B2 (en) * | 2001-08-15 | 2006-03-28 | Mitsubishi Electric Research Laboratories, Inc. | Simulating motion of static objects in scenes |
US8482569B2 (en) * | 2008-08-28 | 2013-07-09 | Pixar | Mesh transfer using UV-space |
GB2578592B (en) * | 2018-10-31 | 2023-07-05 | Sony Interactive Entertainment Inc | Apparatus and method of video playback |
-
2022
- 2022-10-19 US US17/969,580 patent/US20230196663A1/en active Pending
- 2022-10-26 KR KR1020237031363A patent/KR20230145176A/ko unknown
- 2022-10-26 WO PCT/US2022/078724 patent/WO2023122377A1/en active Application Filing
- 2022-10-26 JP JP2023566744A patent/JP2024516244A/ja active Pending
- 2022-10-26 CN CN202280019068.7A patent/CN116917950A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
KR20230145176A (ko) | 2023-10-17 |
US20230196663A1 (en) | 2023-06-22 |
CN116917950A (zh) | 2023-10-20 |
WO2023122377A1 (en) | 2023-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7252372B2 (ja) | 点群コーディングのための方法及び装置 | |
JP2023552116A (ja) | メッシュ解凍のための方法、処理回路構成を含む装置、並びに関連するプログラム及び記憶媒体 | |
JP7476432B2 (ja) | メッシュ復元のための方法、装置及びコンピュータプログラム | |
JP2024516059A (ja) | エンコーダによるメッシュ圧縮のための適応サンプリングの方法および装置 | |
JP2024515984A (ja) | メッシュ圧縮のための境界ジオメトリ情報の予測コーディング | |
JP2024516244A (ja) | メッシュ圧縮におけるパッチの重複のないプロパティのチェック | |
US20230090677A1 (en) | Coding connectivity in vertex reordering methods for mesh compression | |
JP2024509605A (ja) | ポイントクラウド圧縮に基づく動的メッシュ圧縮 | |
KR20230148257A (ko) | 지오메트릭과 시맨틱 정보를 사용한 맨해튼 레이아웃 추정 | |
JP2023552114A (ja) | メッシュ展開のための方法、装置及びプログラム | |
JP2024518767A (ja) | 3次元(3d)メッシュフレームの第1の部分を2次元(2d)占有マップに投影するための方法、デバイスおよびコンピュータプログラム | |
JP7497443B2 (ja) | 点群コーディングのための方法、装置、およびコンピュータプログラム | |
JP2024516057A (ja) | デコーダによるメッシュ圧縮のための適応サンプリング方法および装置 | |
JP7544973B2 (ja) | 動的メッシュ圧縮のための方法および装置 | |
JP7529923B2 (ja) | 非マニホールドメッシュにおける境界ループの検出のための方法、装置、およびコンピュータプログラム | |
JP7537033B2 (ja) | メッシュ展開のための方法、装置、およびコンピュータプログラム | |
JP7504298B2 (ja) | 3次元(3d)メッシュのuv座標を処理するための方法、装置及びコンピュータプログラム | |
US20230074762A1 (en) | Vertex reordering for mesh compression | |
US20230222697A1 (en) | Mesh compression with deduced texture coordinates | |
EP4453889A1 (en) | Checking overlapping-free property for patches in mesh compression | |
JP2024509886A (ja) | メッシュ圧縮のための頂点接続性コーディング |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20231030 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240820 |