JP7596019B2 - Method, device and computer program for projecting a first portion of a three-dimensional (3D) mesh frame onto a two-dimensional (2D) occupancy map - Patents.com - Google Patents
Method, device and computer program for projecting a first portion of a three-dimensional (3D) mesh frame onto a two-dimensional (2D) occupancy map - Patents.com Download PDFInfo
- Publication number
- JP7596019B2 JP7596019B2 JP2023565409A JP2023565409A JP7596019B2 JP 7596019 B2 JP7596019 B2 JP 7596019B2 JP 2023565409 A JP2023565409 A JP 2023565409A JP 2023565409 A JP2023565409 A JP 2023565409A JP 7596019 B2 JP7596019 B2 JP 7596019B2
- Authority
- JP
- Japan
- Prior art keywords
- zero
- valued
- mesh
- occupancy
- correlation matrix
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/001—Model-based coding, e.g. wire frame
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
本出願は、参照によりその全体が本明細書に組み込まれる、2022年10月27日に出願された、「Convolutional Approach to Fast and Compact Packing of 3D Mesh into 2D Maps」と題する米国非仮出願第18/050,372号、および2022年3月25日に出願された、「Using Image Filtering for Fast and Compact Packing of Charts」と題する米国仮特許出願第63/323,853号に基づき、これらの優先権の利益を主張する。 This application claims the benefit of priority to U.S. Nonprovisional Application No. 18/050,372, entitled "Convolutional Approach to Fast and Compact Packing of 3D Mesh into 2D Maps," filed October 27, 2022, and U.S. Provisional Application No. 63/323,853, entitled "Using Image Filtering for Fast and Compact Packing of Charts," filed March 25, 2022, which are incorporated herein by reference in their entireties.
本開示は、一般に、3次元(3D)メッシュのコーディングおよびデコーディングに関し、特に、3Dメッシュの部分の2次元(2D)空間内のマップへの高速かつ効率的なパッキングに関する。 This disclosure relates generally to coding and decoding three-dimensional (3D) meshes, and in particular to fast and efficient packing of portions of a 3D mesh into a map in two-dimensional (2D) space.
本明細書で提供される背景技術の説明は、本開示の文脈を一般的に提示することを目的としている。本発明者らの研究は、その研究がこの背景技術の項に記載されている限りにおいて、またそれ以外の本出願の出願時に先行技術として認められない可能性のある説明の態様と共に、本開示に対する先行技術としては明示的にも暗黙的にも認められない。 The discussion of the background art provided herein is intended to generally present the context of the present disclosure. The inventors' work is not expressly or implicitly admitted as prior art to the present disclosure, to the extent that that work is described in this Background section, together with aspects of the description that may not otherwise be admitted as prior art at the time of filing of this application.
3D空間内の実世界の物体、環境などを取り込み、表し、シミュレートするために様々な技術が開発されている。世界の3D表現は、より没入型の相互的なコミュニケーションを可能にすることができる。物体および環境の例示的な3D表現は、点群およびメッシュを含むが、これらに限定されない。物体および環境の一連の3D表現は、ビデオシーケンスを形成しうる。物体および環境の3D表現のシーケンス内の冗長性および相関は、そのようなビデオシーケンスをよりコンパクトなデジタル形式に圧縮し、コーディングするために利用されうる。 Various techniques have been developed to capture, represent, and simulate real-world objects, environments, and the like in 3D space. A 3D representation of the world can enable more immersive interactive communication. Exemplary 3D representations of objects and environments include, but are not limited to, point clouds and meshes. A series of 3D representations of objects and environments may form a video sequence. Redundancy and correlation within a sequence of 3D representations of objects and environments may be exploited to compress and code such video sequences into a more compact digital format.
本開示は、一般に、3Dメッシュのコーディングおよびデコーディングに関し、特に、3Dメッシュの部分のUVマップom 2Dへの高速かつ効率的なパッキングに関する。 This disclosure relates generally to coding and decoding of 3D meshes, and in particular to fast and efficient packing of portions of a 3D mesh into a UV map om 2D.
1つの例示的な実装形態では、3次元(3D)メッシュフレームの第1の部分を2次元(2D)占有マップに投影するための方法が開示される。方法は、初期2D占有マップを取得するステップであって、初期2D占有マップが、0個以上のピクセルであって、0個以上のピクセルが3Dメッシュフレームの少なくとも1つの他の部分にマッピングされていることを指示する第1の予め定義された値を有し、少なくとも1つの他の部分が3Dメッシュフレームの第1の部分とオーバーラップしていない、0個以上のピクセルと、残りのピクセルであって、残りのピクセルが3Dメッシュフレームにマッピングされていないことを指示する第2の予め定義された値を有する、残りのピクセルとを含みうる、ステップ、を含みうる。方法は、3Dメッシュフレームの第1の部分の2D占有行列を生成するステップであって、第1の予め定義された値が占有ピクセルに対応し、第2の予め定義された値が非占有ピクセルに対応する、ステップと、初期2D占有マップと2D占有行列との間の相関行列を計算するステップと、相関行列内のゼロ値のターゲット要素を識別するステップと、2D占有行列と同じサイズを有する初期2D占有マップ内のパッチ内の第2の予め定義された値を有するピクセルを、2D占有行列内の対応する要素に置き換えることによって更新された2D占有マップを生成するステップであって、パッチが、相関行列内のゼロ値のターゲット要素の位置と一致するパッキング位置にある初期2D占有マップ内に位置している、ステップと、をさらに含みうる。 In one exemplary implementation, a method for projecting a first portion of a three-dimensional (3D) mesh frame onto a two-dimensional (2D) occupancy map is disclosed. The method may include obtaining an initial 2D occupancy map, where the initial 2D occupancy map may include zero or more pixels having a first predefined value indicating that the zero or more pixels are mapped to at least one other portion of the 3D mesh frame, where the at least one other portion does not overlap the first portion of the 3D mesh frame, and remaining pixels having a second predefined value indicating that the remaining pixels are not mapped to the 3D mesh frame. The method may further include generating a 2D occupancy matrix for a first portion of the 3D mesh frame, where a first predefined value corresponds to an occupied pixel and a second predefined value corresponds to an unoccupied pixel; calculating a correlation matrix between the initial 2D occupancy map and the 2D occupancy matrix; identifying a zero-valued target element in the correlation matrix; and generating an updated 2D occupancy map by replacing pixels having the second predefined value in a patch in the initial 2D occupancy map having the same size as the 2D occupancy matrix with a corresponding element in the 2D occupancy matrix, where the patch is located in the initial 2D occupancy map in a packing position that coincides with the position of the zero-valued target element in the correlation matrix.
上記の実装形態では、相関行列は、畳み込みカーネルとしての2D占有行列と初期2D占有マップとの間の畳み込みとして計算される。 In the above implementation, the correlation matrix is computed as the convolution between the 2D occupancy matrix as the convolution kernel and the initial 2D occupancy map.
上記の実装形態のうちのいずれか1つでは、畳み込みは、高速フーリエ変換を使用して計算される。 In any one of the above implementations, the convolution is calculated using a Fast Fourier Transform.
上記の実装形態のうちのいずれか1つでは、相関行列内のゼロ値のターゲット要素を識別するステップは、相関行列内の複数のゼロ値の要素を識別するステップと、相関行列内の複数のゼロ値の要素のうちの1つをゼロ値のターゲット要素として選択するステップとを含んでもよい。 In any one of the above implementations, identifying the zero-valued target element in the correlation matrix may include identifying a plurality of zero-valued elements in the correlation matrix and selecting one of the plurality of zero-valued elements in the correlation matrix as the zero-valued target element.
上記の実装形態のうちのいくつかでは、相関行列内の複数のゼロ値の要素のうちの1つをゼロ値のターゲット要素として選択するステップは、幅寸法で最小インデックスを有する相関行列内の複数のゼロ値の要素のうちのゼロ値の要素を選択するステップを含んでもよい。 In some of the above implementations, selecting one of the plurality of zero-valued elements in the correlation matrix as the zero-valued target element may include selecting a zero-valued element of the plurality of zero-valued elements in the correlation matrix that has a smallest index in a width dimension.
上記の実装形態のうちのいくつかでは、相関行列内の複数のゼロ値の要素のうちの1つをゼロ値のターゲット要素として選択するステップは、高さ寸法で最小インデックスを有する相関行列内の複数のゼロ値の要素のうちのゼロ値の要素を選択するステップを含んでもよい。 In some of the above implementations, selecting one of the plurality of zero-valued elements in the correlation matrix as the zero-valued target element may include selecting a zero-valued element of the plurality of zero-valued elements in the correlation matrix that has a smallest index in the height dimension.
上記の実装形態のうちのいくつかでは、相関行列内の複数のゼロ値の要素のうちの1つをゼロ値のターゲット要素として選択するステップは、幅インデックスと高さインデックスとの最小和を有する相関行列内の複数のゼロ値の要素のうちのゼロ値の要素を選択するステップを含んでもよい。 In some of the above implementations, selecting one of the plurality of zero-valued elements in the correlation matrix as the zero-valued target element may include selecting a zero-valued element of the plurality of zero-valued elements in the correlation matrix that has a minimum sum of a width index and a height index.
上記の実装形態のうちのいくつかでは、相関行列内の複数のゼロ値の要素のうちの1つをゼロ値のターゲット要素として選択するステップは、高さインデックスおよび幅インデックスの最適化関数に基づいて複数のゼロ値の要素のうちのゼロ値の要素を選択するステップを含んでもよい。 In some of the above implementations, selecting one of the plurality of zero-valued elements in the correlation matrix as a zero-valued target element may include selecting the zero-valued element of the plurality of zero-valued elements based on an optimization function of a height index and a width index.
上記の実装形態では、最適化関数は、lpノルム関数を含む。 In the above implementation, the optimization function includes an lp- norm function.
上記の実装形態のうちのいくつかでは、相関行列内の複数のゼロ値の要素のうちの1つをゼロ値のターゲット要素として選択するステップは、2D占有行列の初期2D占有マップへの好ましいパッキング位置を決定するステップと、好ましいパッキング位置に従って相関行列内の複数のゼロ値の要素内の複数のゼロ値の要素からゼロ値のターゲット要素を選択するステップと、を含んでもよい。 In some of the above implementations, selecting one of the plurality of zero-valued elements in the correlation matrix as a zero-valued target element may include determining a preferred packing location of the 2D occupancy matrix into an initial 2D occupancy map, and selecting a zero-valued target element from the plurality of zero-valued elements in the plurality of zero-valued elements in the correlation matrix according to the preferred packing location.
上記の実装形態のうちのいくつかでは、好ましいパッキング位置に従って相関行列内の複数のゼロ値の要素内の複数のゼロ値の要素からゼロ値のターゲット要素を選択するステップは、可能な場合に、ゼロ値のターゲット要素として、好ましいパッキング位置と一致する複数のゼロ値の要素から選択するステップと、そうでない場合に、好ましいパッキング位置および好ましいパッキング位置の近傍にあるゼロ値の要素の位置の最適化関数に基づいて好ましいパッキング位置の近傍にある複数のゼロ値の要素から選択するステップを含んでもよい。 In some of the above implementations, the step of selecting a zero-valued target element from the plurality of zero-valued elements in the plurality of zero-valued elements in the correlation matrix according to a preferred packing position may include the step of selecting, if possible, as the zero-valued target element from the plurality of zero-valued elements that coincide with the preferred packing position, and otherwise selecting from the plurality of zero-valued elements that are proximate to the preferred packing position based on an optimization function of the preferred packing position and the positions of the zero-valued elements proximate to the preferred packing position.
上記の実装形態では、最適化関数は、好ましいパッキング位置と、複数のゼロ値の要素の中のゼロ値の要素の位置との間の位置差のlpノルム関数を含んでもよい。 In the above implementation, the optimization function may include an lp norm function of the position difference between the preferred packing position and the position of the zero-valued element among the plurality of zero-valued elements.
上記の実装形態のうちのいずれか1つでは、相関行列内のゼロ値のターゲット要素を識別するステップは、相関行列の第1の識別されたゼロ値の要素をゼロ値のターゲット要素として決定するステップを含んでもよく、方法は、相関行列の第1の識別されたゼロ値の要素が見つかると、相関行列の計算を終了するステップをさらに含む。 In any one of the above implementations, identifying the zero-valued target element in the correlation matrix may include determining a first identified zero-valued element of the correlation matrix as the zero-valued target element, and the method further includes terminating the calculation of the correlation matrix upon finding the first identified zero-valued element of the correlation matrix.
いくつかの例では、上記の実装形態のいずれか1つのステップは、3Dメッシュフレームのすべての部分が更新された2D占有マップにマッピングされるまで繰り返されうる。 In some examples, the steps of any one of the above implementations may be repeated until all portions of the 3D mesh frame are mapped to the updated 2D occupancy map.
上記の実装形態では、方法は、ビデオエンコーダを使用して更新された2D占有マップをビットストリームに圧縮し、3Dメッシュフレームのすべての部分の2D占有行列のサイズおよびパッキング位置の情報を圧縮するステップをさらに含んでもよい。 In the above implementation, the method may further include compressing the updated 2D occupancy map into a bitstream using a video encoder and compressing information of the sizes and packing positions of the 2D occupancy matrices for all portions of the 3D mesh frame.
上記の実装形態のうちのいずれか1つでは、初期2D占有マップおよび2D占有行列は、第1の予め定義された値および第2の予め定義された値を含む2進値を含む。 In any one of the above implementations, the initial 2D occupancy map and the 2D occupancy matrix include binary values that include a first predefined value and a second predefined value.
本開示の態様はまた、上記の方法実装形態のいずれかを実行するように構成された回路を含む電子デバイスまたは装置も提供する。 Aspects of the present disclosure also provide an electronic device or apparatus that includes circuitry configured to perform any of the above method implementations.
本開示の態様はまた、3Dメッシュ処理のためのコンピュータによって実行されると、コンピュータに、上記の方法実装形態のいずれか1つを行わせるコンピュータ命令を記憶するための非一時的コンピュータ可読媒体も提供する。 Aspects of the present disclosure also provide a non-transitory computer-readable medium for storing computer instructions that, when executed by a computer for 3D mesh processing, cause the computer to perform any one of the above method implementations.
開示の主題のさらなる特徴、性質、および様々な利点は、以下の詳細な説明および添付の図面からより明らかになるであろう。 Further features, nature and various advantages of the disclosed subject matter will become more apparent from the following detailed description and accompanying drawings.
本明細書および特許請求の範囲全体を通して、用語は、明示的に記載される意味を超えて文脈内で示唆または暗示される微妙な意味を有する場合がある。本明細書で使用される「一実施形態では」または「いくつかの実施形態では」という語句は、必ずしも同じ実施形態を指すものではなく、本明細書で使用される「別の実施形態では」または「他の実施形態では」という語句は、必ずしも異なる実施形態を指すものではない。同様に、本明細書で使用される「一実装形態では」または「いくつかの実装形態では」という語句は、必ずしも同じ実装形態を指すものではなく、本明細書で使用される「別の実装形態では」または「他の実装形態では」という語句は、必ずしも異なる実装形態を指すものではない。例えば、特許請求される主題は、例示的な実施形態/実装形態の全部または一部の組み合わせを含むことが意図されている。 Throughout this specification and the claims, terms may have subtle meanings that are suggested or implied in the context beyond the meaning explicitly stated. The phrases "in one embodiment" or "in some embodiments" used herein do not necessarily refer to the same embodiment, and the phrases "in another embodiment" or "in other embodiments" used herein do not necessarily refer to different embodiments. Similarly, the phrases "in one implementation" or "in some implementations" used herein do not necessarily refer to the same implementation, and the phrases "in another implementation" or "in other implementations" used herein do not necessarily refer to different implementations. For example, the claimed subject matter is intended to include all or part of the exemplary embodiments/implementations.
一般に、用語は、文脈における用法から少なくとも部分的に理解されうる。例えば、本明細書で使用される「および」、「または」、または「および/または」などの用語は、そのような用語が使用される文脈に少なくとも部分的に依存しうる様々な意味を含む場合がある。典型的には、A、B、またはCなどのリストを関連付けるために使用される場合の「または」は、ここでは包括的な意味で使用されるA、B、およびC、ならびにここでは排他的な意味で使用されるA、B、またはCを意味することを意図されている。加えて、本明細書で使用される「1つまたは複数」または「少なくとも1つ」という用語は、文脈に少なくとも部分的に依存して、単数の意味で任意の特徴、構造、または特性を記述するために使用されてもよいし、複数の意味で特徴、構造、または特性の組み合わせを記述するために使用されてもよい。同様に、「a」、「an」、または「the」などの用語もやはり、文脈に少なくとも部分的に依存して、単数の用法を伝えるか、または複数の用法を伝えると理解されてもよい。加えて、「に基づいて」または「によって決定される」という用語は、必ずしも排他的な要因のセットを伝えることを意図されていないと理解される場合もあり、代わりに、やはり文脈に少なくとも部分的に依存して、必ずしも明示的に記述されていないさらなる要因の存在を許容する場合もある。 In general, terms may be understood at least in part from their usage in context. For example, terms such as "and", "or", or "and/or" as used herein may include various meanings that may depend at least in part on the context in which such terms are used. Typically, "or" when used to relate a list such as A, B, or C is intended to mean A, B, and C, which are used here in an inclusive sense, as well as A, B, or C, which are used here in an exclusive sense. In addition, the terms "one or more" or "at least one" as used herein may be used to describe any feature, structure, or characteristic in a singular sense or may be used to describe a combination of features, structures, or characteristics in a plural sense, depending at least in part on the context. Similarly, terms such as "a", "an", or "the" may also be understood to convey a singular usage or a plural usage, depending at least in part on the context. In addition, the terms "based on" or "determined by" may be understood as not necessarily intended to convey an exclusive set of factors, but may instead allow for the existence of additional factors not necessarily expressly recited, again depending at least in part on the context.
3Dキャプチャ、3Dモデリング、および3Dレンダリングなどの前進といった、3Dメディア処理における技術開発は、いくつかのプラットフォームおよびデバイスを横断した3Dコンテンツのユビキタスな作成を促進してきた。そのような3Dコンテンツは、例えば、没入型の視聴/レンダリングおよびインタラクティブな体験を提供するための様々な形態のメディアを生成するように処理されうる情報を含む。3Dコンテンツの用途は豊富であり、仮想現実、拡張現実、メタバースインタラクション、ゲーム、没入型ビデオ会議、ロボット工学、コンピュータ支援設計(CAD)などを含むが、これらに限定されない。本開示の一態様によれば、没入型体験を改善するために、3Dモデルがより一層高度になってきており、3Dモデルの作成および消費は、データストレージ、データ伝送リソース、データ処理リソースなど、かなりの量のデータリソースを要求する。 Technological developments in 3D media processing, such as advances in 3D capture, 3D modeling, and 3D rendering, have facilitated the ubiquitous creation of 3D content across several platforms and devices. Such 3D content includes, for example, information that can be processed to generate various forms of media to provide immersive viewing/rendering and interactive experiences. Applications of 3D content are abundant and include, but are not limited to, virtual reality, augmented reality, metaverse interaction, gaming, immersive video conferencing, robotics, computer-aided design (CAD), and the like. According to one aspect of the present disclosure, to improve the immersive experience, 3D models are becoming more and more sophisticated, and the creation and consumption of 3D models demands a significant amount of data resources, such as data storage, data transmission resources, and data processing resources.
2Dピクセルアレイの形態のデータセットによって一般に表される従来の2次元(2D)コンテンツ(画像など)と比較して、3次元フル解像度ピクセレーションを伴う3Dコンテンツは、法外にリソース集約的でありうるが、ほとんどではないにしても多くの実際的な用途においては不要である。ほとんどの3D没入型用途では、本開示のいくつかの態様によれば、3Dコンテンツのデータ集約度が低い表現が採用されうる。例えば、ほとんどの用途では、3Dシーン(LIDARデバイスなどのセンサによって取り込まれた現実世界のシーンまたはソフトウェアツールによって生成されたアニメーションの3Dシーンのどちらか)内のオブジェクトのボリューム情報ではなくトポグラフィ情報のみが必要でありうる。よって、より効率的な形態のデータセットが、3Dオブジェクトおよび3Dシーンを表すために使用されてもよい。例えば、3Dシーン内の3Dオブジェクトなどの没入型3Dコンテンツを表現するためのタイプの3Dモデルとして3Dメッシュが使用されてもよい。 Compared to traditional two-dimensional (2D) content (such as images), which are typically represented by datasets in the form of 2D pixel arrays, 3D content with three-dimensional full resolution pixelation may be prohibitively resource intensive, but is unnecessary in many, if not most, practical applications. In most 3D immersive applications, in accordance with some aspects of the present disclosure, a less data-intensive representation of the 3D content may be employed. For example, most applications may require only topographical information, not volumetric information, of objects in a 3D scene (either a real-world scene captured by a sensor such as a LIDAR device or an animated 3D scene generated by a software tool). Thus, more efficient forms of datasets may be used to represent 3D objects and 3D scenes. For example, a 3D mesh may be used as a type of 3D model to represent immersive 3D content, such as a 3D object in a 3D scene.
1つまたは複数のオブジェクトのメッシュ(あるいはメッシュモデルと呼ばれる)は、頂点の集まりを含みうる。頂点は互いに接続してエッジを形成しうる。エッジはさらに接続して面を形成しうる。面はさらにポリゴンを形成しうる。様々なオブジェクトの3D表面は、例えば、面およびポリゴンに分解されうる。頂点、エッジ、面、ポリゴン、または表面の各々が、色、表面法線、テクスチャなどといった様々な属性と関連付けられうる。表面の法線は表面法線と呼ばれる場合があり、かつ/または頂点の法線は頂点法線と呼ばれる場合がある。頂点がどのように接続されてエッジ、面、またはポリゴンになっているかの情報は、接続性情報と呼ばれる場合がある。同じ頂点のセットが異なる面、表面、およびポリゴンを形成することができるため、接続性情報はメッシュの構成要素を一意に定義するために重要である。一般に、3D空間内の頂点の位置は、その3D座標によって表されうる。面は、各々が3D座標のセットと関連付けられた、順次接続された頂点のセットによって表されうる。同様に、エッジは、その3D座標と各々関連付けられた2つの頂点によって表されうる。頂点、エッジ、および面は、3Dメッシュデータセットにおいてインデックス付けされうる。 A mesh (or alternatively called a mesh model) of one or more objects may include a collection of vertices. The vertices may connect together to form edges. The edges may further connect to form faces. The faces may further form polygons. The 3D surfaces of various objects may be decomposed, for example, into faces and polygons. Each of the vertices, edges, faces, polygons, or surfaces may be associated with various attributes, such as color, surface normal, texture, and the like. The normal of a surface may be referred to as a surface normal, and/or the normal of a vertex may be referred to as a vertex normal. Information about how vertices are connected into an edge, face, or polygon may be referred to as connectivity information. The same set of vertices may form different faces, surfaces, and polygons, so connectivity information is important to uniquely define components of a mesh. In general, the location of a vertex in 3D space may be represented by its 3D coordinates. A face may be represented by a set of sequentially connected vertices, each associated with a set of 3D coordinates. Similarly, an edge may be represented by two vertices, each associated with its 3D coordinates. Vertices, edges, and faces can be indexed in the 3D mesh data set.
メッシュは、これらの基本要素タイプのうちの1つまたは複数の集まりによって定義および記述されうる。しかしながら、メッシュを十分に説明するのに上記のすべてのタイプの要素が必要なわけではない。例えば、メッシュは、頂点および頂点の接続性だけを使用することによって十分に説明されうる。別の例では、メッシュは、面および面の共通頂点のリストだけを使用することによって十分に説明されうる。よって、メッシュは、代替的なデータセット構成およびフォーマットによって記述される様々な代替タイプのものでありうる。メッシュタイプの例は、面-頂点メッシュ、ウィングドエッジメッシュ、ハーフエッジメッシュ、クアッドエッジメッシュ、コーナテーブルメッシュ、頂点-頂点メッシュなどを含むが、これらに限定されない。これに対応して、メッシュデータセットは、.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などを含むがこれらに限定されないファイル拡張子を有する代替的なファイルフォーマットに準拠した情報と共に記憶されうる。色、表面法線、テクスチャなどといったこれらの要素の属性は、様々なやり方でメッシュデータセットに含められうる。 A mesh may be defined and described by a collection of one or more of these basic element types. However, not all of the above types of elements are required to fully describe a mesh. For example, a mesh may be fully described by using only vertices and vertex connectivity. In another example, a mesh may be fully described by using only faces and a list of their common vertices. Thus, meshes may be of a variety of alternative types described by alternative dataset configurations and formats. Examples of mesh types include, but are not limited to, face-vertex meshes, winged edge meshes, half edge meshes, quad edge meshes, corner table meshes, vertex-vertex meshes, etc. Correspondingly, mesh datasets may be of any of the following file formats: .raw, .blend, .fbx, .3ds, .dae, .dng, 3dm, .dsf, .dwg, .obj, .ply, .pmd, .stl, amf, .wrl, .wrz, .x3d, .x3d, .x4, .x5, .x6, .x8, .x9, .x10, .x11, .x20, .x3d, .x4, .x12, .x13, .x14, .x15, .x16, .x17, .x18, .x19, .x21, .x22, .x23, .x24, .x25, .x26, .x27, .x28, .x29, .x30, .x31, .x32, .x33, .x44, .x45, .x46, .x47, .x48, .x49, .x51, .x52, .x53, .x5 The mesh data set may be stored with information conforming to alternative file formats having file extensions including, but not limited to, .x3db, .x3dv, .x3dz, .x3dbz, .x3dvz, .c4d, .lwo, .smb, .msh, .mesh, .veg, .z3d, .vtk, .l4d, etc. Attributes of these elements, such as color, surface normals, texture, etc., may be included in the mesh data set in a variety of ways.
いくつかの実装形態では、メッシュの頂点は、UV空間と呼ばれるピクセル化2D空間にマッピングされうる。よって、メッシュの各頂点は、UV空間内のピクセルにマッピングされうる。いくつかの実装形態では、1つの頂点がUV空間内の複数のピクセルにマッピングされてもよく、例えば、境界の頂点がUV空間内の2つまたは3つのピクセルにマッピングされうる。同様に、メッシュ内の面または表面は、メッシュ内の記録された頂点の中にある場合もない場合もある複数の3D点にサンプリングされてもよく、これら複数の3D点もまた、2次元UV空間内のピクセルにマッピングされうる。メッシュ内の面または表面の頂点およびサンプリングされた3D点のUV空間へのマッピング、ならびにUV空間における後続のデータ解析および処理は、以下でさらに詳細に説明されるように、メッシュまたはメッシュのシーケンスの3Dデータセットのデータの記憶、圧縮、およびコーディングを容易にしうる。マッピングされたUV空間データセットは、メッシュのUV画像、または2Dマップ、または2D画像と呼ばれる場合がある。 In some implementations, the vertices of the mesh may be mapped to a pixelated 2D space called UV space. Thus, each vertex of the mesh may be mapped to a pixel in UV space. In some implementations, a vertex may be mapped to multiple pixels in UV space, e.g., a boundary vertex may be mapped to two or three pixels in UV space. Similarly, a face or surface in the mesh may be sampled to multiple 3D points that may or may not be among the recorded vertices in the mesh, and these multiple 3D points may also be mapped to pixels in the two-dimensional UV space. The mapping of the vertices and sampled 3D points of the faces or surfaces in the mesh to UV space, and subsequent data analysis and processing in UV space, may facilitate data storage, compression, and coding of a 3D dataset of a mesh or sequence of meshes, as described in more detail below. The mapped UV space dataset may be referred to as a UV image, or a 2D map, or a 2D image of the mesh.
3Dメッシュ内の頂点およびサンプリングされた表面点の2D UV空間へのマッピングに続いて、一部のピクセルは3Dメッシュの頂点およびサンプリングされた表面点にマッピングされうるが、他のピクセルはマッピングされていない(またはマッピングされない)場合がある。メッシュの2D画像内のマッピングされた各ピクセルは、3Dメッシュ内の対応するマッピングされた頂点または表面点の情報と関連付けられうる。UV空間内のピクセルに対して含まれる情報のタイプに応じて、メッシュの様々な2D画像または2Dマップが構成されうる。複数の2Dマップの集まりが、メッシュの代替表現または/または結合表現として使用されうる。 Following mapping of the vertices and sampled surface points in the 3D mesh to the 2D UV space, some pixels may be mapped to the vertices and sampled surface points of the 3D mesh, while other pixels may not (or may not) be mapped. Each mapped pixel in the 2D image of the mesh may be associated with information of the corresponding mapped vertex or surface point in the 3D mesh. Depending on the type of information contained for a pixel in UV space, various 2D images or maps of the mesh may be constructed. A collection of multiple 2D maps may be used as alternative and/or combined representations of the mesh.
例えば、メッシュの最も単純な2Dマップは占有マップとして構成されてもよい。占有マップは、メッシュの3D頂点またはサンプリングされた表面点にマッピングされたUV空間内のピクセルを指示しうる。占有の指示は、例えば、マッピングまたは占有を指示する2進値「1」と、非マッピングまたは非占有(マッピングされていない)を指示する2進値「0」とを有する2Dピクセルの各々におけるバイナリインジケータによって表されうる。よって、占有マップは2D画像として構成されうる。通常の2D画像は、例えば8ビットの色深度を有する3つのチャネル(RGB、YUV、YCrCbなど)の配列を含むが、メッシュのそのような2D占有マップは、単一ビットのバイナリチャネルしか必要としない。値「1」を有する2D画像内のピクセルはマッピングされ、占有されており、そうでない場合、ピクセルはマッピングされず、占有されていない。 For example, the simplest 2D map of a mesh may be constructed as an occupancy map. The occupancy map may indicate which pixels in UV space are mapped to the 3D vertices or sampled surface points of the mesh. The occupancy indication may be represented by a binary indicator at each of the 2D pixels, for example with a binary value of "1" indicating mapping or occupation and a binary value of "0" indicating non-mapping or non-occupied (unmapped). Thus, the occupancy map may be constructed as a 2D image. While a typical 2D image includes an array of three channels (RGB, YUV, YCrCb, etc.) with, for example, 8-bit color depth, such a 2D occupancy map of a mesh only requires a single-bit binary channel. A pixel in the 2D image with a value of "1" is mapped and occupied, otherwise the pixel is not mapped and unoccupied.
別の例では、メッシュに対して2Dジオメトリマップが構成されうる。2Dジオメトリマップは、単一のバイナリチャネルを含む代わりに、占有ピクセルの各々における3色チャネルがメッシュ内の対応するマッピングされた頂点またはサンプリングされた3D点の3つの3D座標に対応する完全な3チャネル画像になる。 In another example, a 2D geometry map may be constructed for a mesh. Instead of containing a single binary channel, the 2D geometry map becomes a full three-channel image where the three color channels at each occupied pixel correspond to the three 3D coordinates of the corresponding mapped vertex or sampled 3D point in the mesh.
いくつかの実装形態では、メッシュに対して他の2Dマップが構成されうる。例えば、メッシュの頂点およびサンプリングされた3D点の各々の属性のセットがメッシュデータセットから抽出されてもよく、2Dマップ画像の3つの色チャネルにコーディングされてもよい。そのような2Dマップは、メッシュの属性マップと呼ばれる場合がある。特定の属性マップは、UV空間内の占有ピクセルの各々について3チャネルの色を含みうる。別の例では、メッシュの各マッピングされた頂点またはサンプリングされた3D点と関連付けられたテクスチャ属性が、3チャネル値にパラメータ化され、2D属性マップにコーディングされうる。別の例では、メッシュの各マッピングされた頂点またはサンプリングされた3D点と関連付けられた通常の属性が、3チャネル値にパラメータ化され、2D属性マップにコーディングされうる。いくつかの例示的な実装形態では、メッシュの頂点およびサンプリングされた表面点のすべての必要な属性情報を保持するために、複数の2D属性マップを構成されうる。 In some implementations, other 2D maps may be constructed for the mesh. For example, a set of attributes for each of the vertices and sampled 3D points of the mesh may be extracted from the mesh dataset and coded into three color channels of a 2D map image. Such a 2D map may be referred to as an attribute map of the mesh. A particular attribute map may include three channels of color for each occupied pixel in UV space. In another example, texture attributes associated with each mapped vertex or sampled 3D point of the mesh may be parameterized into a three-channel value and coded into a 2D attribute map. In another example, regular attributes associated with each mapped vertex or sampled 3D point of the mesh may be parameterized into a three-channel value and coded into a 2D attribute map. In some example implementations, multiple 2D attribute maps may be constructed to hold all the necessary attribute information for the vertices and sampled surface points of the mesh.
上記の2Dマップは単なる例である。メッシュについての他のタイプの2Dマップを構成することができる。加えて、他のデータセットが、3Dメッシュから抽出されて、上記の2Dマップと協調して元の3Dメッシュを一緒に表してもよい。例えば、頂点間の接続または接続性情報は、リスト、テーブルなどの形式で2Dマップとは別にグループ化され、編成されてもよい。接続性情報は、例えば、頂点インデックスを使用して頂点を参照しうる。頂点インデックスは、2Dマップ内の対応するピクセル位置にマッピングされうる。別の例では、表面テクスチャ、色、法線、変位、および他の情報が、2Dマップとしてではなく、2Dマップとは別に抽出され、編成されうる。他のメタデータが、3Dメッシュからさらに抽出されて、2Dマップおよび上記の他のデータセットと共に3Dメッシュを表してもよい。 The above 2D maps are merely examples. Other types of 2D maps for a mesh may be constructed. Additionally, other data sets may be extracted from the 3D mesh to represent the original 3D mesh together in concert with the above 2D maps. For example, connection or connectivity information between vertices may be grouped and organized separately from the 2D map in the form of a list, table, or the like. The connectivity information may, for example, reference vertices using a vertex index. The vertex index may be mapped to a corresponding pixel location in the 2D map. In another example, surface texture, color, normals, displacement, and other information may be extracted and organized separately from the 2D map rather than as a 2D map. Other metadata may be further extracted from the 3D mesh to represent the 3D mesh together with the 2D map and the other data sets described above.
上記の例示的な実装形態は静的なメッシュに焦点を当てているが、本開示の一態様によれば、3Dメッシュは動的であってもよい。動的メッシュは、例えば、構成要素(ジオメトリ情報、接続性情報、マッピング情報、頂点属性、および属性マップ)のうちの少なくとも1つが時間と共に変化するメッシュを指しうる。よって、動的メッシュは、ビデオを形成する2D画像フレームの時限シーケンスと同様の、メッシュのシーケンスまたはメッシュ(メッシュフレームとも呼ばれる)によって記述することができる。 While the above example implementations focus on static meshes, in accordance with one aspect of the present disclosure, the 3D mesh may be dynamic. A dynamic mesh may refer to a mesh in which at least one of its components (geometry information, connectivity information, mapping information, vertex attributes, and attribute maps) changes over time, for example. Thus, a dynamic mesh may be described by a sequence of meshes or meshes (also called mesh frames), similar to a timed sequence of 2D image frames that form a video.
いくつかの例示的な実装形態では、動的メッシュは、一定の接続性情報、時変ジオメトリ、および時変頂点属性を有しうる。いくつかの他の例では、動的メッシュは、時変接続性情報を有することができる。いくつかの例では、時変属性マップおよび時変接続性情報を有する動的メッシュを生成するためにデジタル3Dコンテンツ作成ツールが使用されうる。いくつかの他の例では、動的メッシュを生成するためにボリューム取得/検出/感知技術が使用される。ボリューム取得技術は、特にリアルタイム制約の下で、時変接続性情報を有する動的メッシュを生成することができる。 In some example implementations, the dynamic mesh may have constant connectivity information, time-varying geometry, and time-varying vertex attributes. In some other examples, the dynamic mesh may have time-varying connectivity information. In some examples, digital 3D content creation tools may be used to generate the dynamic mesh with time-varying attribute maps and time-varying connectivity information. In some other examples, volume acquisition/detection/sensing techniques are used to generate the dynamic mesh. Volume acquisition techniques can generate dynamic meshes with time-varying connectivity information, especially under real-time constraints.
動的メッシュは、動的メッシュが経時的に変化するかなりの量の情報を含みうるので、大量のデータを必要としうる。しかしながら、メッシュフレーム内(イントラ圧縮)およびメッシュフレーム間(インター圧縮)の冗長性を利用するために圧縮が行われてもよい。特にメッシュシーケンスについて、メッシュ表現におけるメディアコンテンツの効率的な記憶および伝送を可能にするために、様々なメッシュ圧縮プロセスが実施されうる。 Dynamic meshes may require large amounts of data as dynamic meshes may contain a significant amount of information that changes over time. However, compression may be performed to exploit redundancy within mesh frames (intra-compression) and between mesh frames (inter-compression). Various mesh compression processes may be implemented to allow efficient storage and transmission of media content in mesh representations, particularly for mesh sequences.
本開示の態様は、メッシュ圧縮のための例示的なアーキテクチャおよび技術を提供する。これらの技術は、静的メッシュ圧縮、動的メッシュ圧縮、一定の接続性情報を有する動的メッシュの圧縮、時変接続性情報を有する動的メッシュの圧縮、時変属性マップを有する動的メッシュの圧縮などを含むがこれらに限定されない様々なメッシュ圧縮に使用されうる。これらの技術は、リアルタイム没入型コミュニケーション、ストレージ、自由視点ビデオ、拡張現実(AR)、仮想現実(VR)などといった様々な用途のための非可逆圧縮および可逆圧縮に使用されうる。これらの用途は、ランダムアクセスやスケーラブル/プログレッシブコーディングなどの機能を含むことができる。 Aspects of the present disclosure provide example architectures and techniques for mesh compression. These techniques may be used for various mesh compressions, including but not limited to static mesh compression, dynamic mesh compression, compression of dynamic meshes with constant connectivity information, compression of dynamic meshes with time-varying connectivity information, compression of dynamic meshes with time-varying attribute maps, etc. These techniques may be used for lossy and lossless compression for various applications such as real-time immersive communication, storage, free viewpoint video, augmented reality (AR), virtual reality (VR), etc. These applications may include features such as random access and scalable/progressive coding.
本開示は、3Dメッシュに適用可能な技術および実装形態を明示的に説明しているが、本明細書で説明される様々な実装形態の基礎となる原理は、点群(Point Cloud(PC))データ構造を含むがこれに限定されない他のタイプの3Dデータ構造に適用可能である。簡単にするために、以下の3Dメッシュへの言及は一般的であることを意図されており、点群や他の3Dボリュームデータセットなどの他のタイプの3D表現を含む。 Although this disclosure explicitly describes techniques and implementations applicable to 3D meshes, the principles underlying the various implementations described herein are applicable to other types of 3D data structures, including, but not limited to, Point Cloud (PC) data structures. For simplicity, references to 3D meshes below are intended to be general and include other types of 3D representations, such as point clouds and other 3D volumetric datasets.
まず、例示的なアーキテクチャレベルの実装形態を見ると、図1は、本開示の例示的な実施形態による通信システム(100)の簡略ブロック図を例示している。通信システム(100)は、例えば通信ネットワーク(150)(代替的にネットワークとも呼ばれる)を介して互いに通信することができる複数の端末デバイスを含んでもよい。例えば、通信システム(100)は、ネットワーク(150)を介して相互接続された端末デバイス(110)および(120)のペアを含んでもよい。図1の例では、端末デバイス(110)および(120)の第1のペアは、3Dメッシュの単方向伝送を行いうる。例えば、端末デバイス(110)は、端末デバイス(110)によって生成されうるか、ストレージから取得されうるか、または端末デバイス(110)に接続された3Dセンサ(105)によって取り込まれうる3Dメッシュまたは3Dメッシュのシーケンスを圧縮してもよい。圧縮された3Dメッシュまたは3Dメッシュのシーケンスは、例えばビットストリーム(コーディングされたビットストリームとも呼ばれる)の形式で、ネットワーク(150)を介して他方の端末デバイス(120)に伝送されうる。端末デバイス(120)は、ネットワーク(150)から圧縮された3Dメッシュまたは3Dメッシュのシーケンスを受信し、ビットストリームを解凍して元の3Dメッシュまたは3Dメッシュのシーケンスを再構成し、再構成された3Dメッシュまたは3Dメッシュのシーケンスを表示または他の目的/使用のために適切に処理しうる。単方向データ伝送は、メディアサービング用途などにおいて一般的でありうる。 Turning first to an exemplary architecture-level implementation, FIG. 1 illustrates a simplified block diagram of a communication system (100) according to an exemplary embodiment of the present disclosure. The communication system (100) may include multiple terminal devices that can communicate with each other, for example, via a communication network (150) (alternatively referred to as a network). For example, the communication system (100) may include a pair of terminal devices (110) and (120) interconnected via the network (150). In the example of FIG. 1, a first pair of terminal devices (110) and (120) may perform unidirectional transmission of a 3D mesh. For example, the terminal device (110) may compress a 3D mesh or a sequence of 3D meshes that may be generated by the terminal device (110), retrieved from storage, or captured by a 3D sensor (105) connected to the terminal device (110). The compressed 3D mesh or sequence of 3D meshes may be transmitted to the other terminal device (120) via the network (150), for example in the form of a bitstream (also called a coded bitstream). The terminal device (120) may receive the compressed 3D mesh or sequence of 3D meshes from the network (150), decompress the bitstream to reconstruct the original 3D mesh or sequence of 3D meshes, and process the reconstructed 3D mesh or sequence of 3D meshes appropriately for display or other purposes/uses. Unidirectional data transmission may be common, for example, in media serving applications.
図1の例では、端末デバイス(110)および(120)のどちらか一方または両方が、サーバ、固定またはモバイルのパーソナルコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、ゲーム端末、メディアプレーヤ、および/または専用3次元(3D)機器などとして実装されてもよいが、本開示の原理はそのように限定されない。ネットワーク(150)は、端末デバイス(110)および(120)間で圧縮された3Dメッシュを伝送する任意のタイプのネットワークまたはネットワークの組み合わせを表しうる。ネットワーク(150)は、例えば、有線(有線接続)および/または無線通信ネットワークを含むことができる。ネットワーク(150)は、回線交換チャネルおよび/またはパケット交換チャネルでデータを交換しうる。代表的なネットワークは、長距離電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、セルラーネットワーク、および/またはインターネットを含む。本開示の目的では、ネットワーク(150)のアーキテクチャおよびトポロジーは、本明細書で以下に説明されない限り、本開示の動作にとって重要ではない場合がある。 In the example of FIG. 1, either or both of terminal devices (110) and (120) may be implemented as servers, fixed or mobile personal computers, laptop computers, tablet computers, smart phones, gaming consoles, media players, and/or dedicated three-dimensional (3D) appliances, etc., although the principles of the present disclosure are not so limited. Network (150) may represent any type of network or combination of networks that transmits the compressed 3D mesh between terminal devices (110) and (120). Network (150) may include, for example, wired (wired connection) and/or wireless communication networks. Network (150) may exchange data over circuit-switched and/or packet-switched channels. Representative networks include long-haul telecommunications networks, local area networks, wide area networks, cellular networks, and/or the Internet. For purposes of the present disclosure, the architecture and topology of network (150) may not be important to the operation of the present disclosure, unless otherwise described herein below.
図2は、本開示の一実施形態によるストリーミングシステム(200)の例示的な簡略ブロック図を示している。図2は、3Dメッシュおよび圧縮された3Dメッシュに関連する開示の実装形態のための例示的な用途を示している。開示の主題は、3Dテレプレゼンス用途、仮想現実用途などといった他の3Dメッシュまたは点群対応用途に等しく適用可能でありうる。 Figure 2 illustrates an example simplified block diagram of a streaming system (200) according to one embodiment of the present disclosure. Figure 2 illustrates an example application for the disclosed implementations related to 3D meshes and compressed 3D meshes. The disclosed subject matter may be equally applicable to other 3D mesh or point cloud enabled applications, such as 3D telepresence applications, virtual reality applications, etc.
ストリーミングシステム(200)は、キャプチャまたはストレージサブシステム(213)を含んでもよい。キャプチャまたはストレージサブシステム(213)は、圧縮されていない3Dメッシュ(202)または点群(202)を生成または提供する、3Dメッシュ生成器もしくは記憶媒体(201)、例えば、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)を作成するように構成されうる。 The streaming system (200) may include a capture or storage subsystem (213). The capture or storage subsystem (213) may include a 3D mesh generator or storage medium (201), e.g., a 3D mesh or point cloud generation tool/software, a graphics generation component, or a point cloud sensor such as a light detection and ranging (LIDAR) system, a 3D camera, a 3D scanner, a 3D mesh store, etc., that generates or provides an uncompressed 3D mesh (202) or point cloud (202). In some example implementations, the 3D mesh (202) includes the vertices of the 3D mesh or the 3D points of the point cloud (both referred to as a 3D mesh). The 3D mesh (202) is illustrated with a bold line to emphasize the high data volume compared to the compressed 3D mesh (204) (compressed 3D mesh bitstream). The compressed 3D mesh (204) may be generated by an electronic device (220) including an encoder (203) coupled to the 3D mesh (202). The encoder (203) may include hardware, software, or a combination thereof to enable or implement aspects of the disclosed subject matter, as described in more detail below. The compressed 3D mesh (204) (or a bitstream of the compressed 3D mesh (204)), illustrated as a thin line to emphasize its low data volume compared to the stream of the uncompressed 3D mesh (202), may be stored in a streaming server (205) for future use. One or more streaming client subsystems, such as the client subsystems (206) and (208) of FIG. 2, may access the streaming server (205) to retrieve copies (207) and (209) of the compressed 3D mesh (204). The client subsystem (206) may include, for example, a decoder (210) in the electronic device (230). The decoder (210) may be configured to decode an input compressed copy of the 3D mesh (207) and create an output stream of reconstructed 3D meshes (211) that can be rendered on a rendering device (212) or for other uses.
電子デバイス(220)および(230)は、他の構成要素(図示せず)を含むことができることに留意されたい。例えば、電子デバイス(220)はデコーダ(図示せず)も含むことができ、電子デバイス(230)はエンコーダ(図示せず)も含むことができる。 It should be noted that electronic devices (220) and (230) may include other components (not shown). For example, electronic device (220) may also include a decoder (not shown), and electronic device (230) may also include an encoder (not shown).
いくつかのストリーミングシステムでは、圧縮された3Dメッシュ(204)、(207)、および(209)(例えば、圧縮された3Dメッシュのビットストリーム)を、特定の規格に従って圧縮することができる。いくつかの例では、以下でさらに詳細に説明されるように、3Dメッシュがまず投影されてビデオ圧縮に適した2D表現にマッピングされた後に、3Dメッシュの圧縮における冗長性および相関を利用するためにビデオコーディング規格が使用される。それらの規格の非限定的な例は、以下でさらに詳細に説明されるように、高効率ビデオコーディング(HEVC)、多用途ビデオコーディング(VVC)などを含む。 In some streaming systems, the compressed 3D meshes (204), (207), and (209) (e.g., bitstreams of the compressed 3D meshes) may be compressed according to a particular standard. In some examples, as described in more detail below, a video coding standard is used to exploit redundancy and correlation in compressing the 3D mesh after the 3D mesh is first projected and mapped to a 2D representation suitable for video compression. Non-limiting examples of such standards include High Efficiency Video Coding (HEVC), Versatile Video Coding (VVC), etc., as described in more detail below.
圧縮された3Dメッシュまたは3Dメッシュのシーケンスはエンコーダによって生成されうるが、デコーダは、圧縮またはコーディングされた3Dメッシュを解凍するように構成されうる。図3は、そのようなエンコーダ(301)およびデコーダ(303)における3Dメッシュの高レベルの例示的なデータフローを示している。図3に示されるように、生の入力3Dメッシュまたは3Dメッシュのシーケンス(302)は、いくつかの実装形態では、UVアトラスを伴うメッシュを含みうる2D UV空間に3Dメッシュをマッピングするためのマッピングユニット(304)への入力データを生成するために、トラック再メッシュ化、パラメータ化、および/またはボクセル化によって前処理されうる。3Dメッシュは、頂点の中にない可能性のある3D表面点を含むようにサンプリングされ、これらのサンプリングされた3D表面点をマッピングにおいてUV空間に追加しうる。占有マップ(310)、ジオメトリマップ(312)、属性マップ(314)を含むがこれらに限定されない様々な2Dマップが、エンコーダ301で生成されうる。これらの画像タイプのマップは、例えば、ビデオコーディング/圧縮技術を使用してエンコーダ301によって圧縮されうる。例えば、ビデオコーダは、イントラ予測技術および他の3Dメッシュ参照フレームによるインター予測を使用して3Dメッシュフレームを圧縮するのを支援してもよい。他の非画像または非マップのデータまたはメタデータ(316)もまた、非限定的な例として、エントロピーコーディングを介して冗長性を除去して圧縮された非マップデータを生成するために様々なやり方でコーディングされうる。次いで、エンコーダ301は、圧縮された2Dマップおよび非マップデータを結合または多重化し、結合されたデータをさらにコーディングして、エンコーディングされたビットストリーム(代替的にコーディングされたビットストリームと呼ばれる)を生成しうる。次いで、エンコーディングされたビットストリームは、デコーダ303による使用のために記憶または送信されうる。デコーダは、ビットストリームをデコーディングし、デコーディングされたビットストリームを逆多重化して圧縮された2Dマップおよび非マップデータを取得し、解凍を行って、デコーディングされた占有マップ(320)、デコーディングされたジオメトリマップ(322)、デコーディングされた属性マップ(324)、ならびにデコーディングされた非マップデータおよびメタデータ(326)を生成するように構成されうる。次いで、デコーダ303は、デコーディングされた2Dマップ(320、322、324)およびデコーディングされた非マップデータ(326)から3Dメッシュまたは3Dメッシュのシーケンス(330)を再構成するようにさらに構成されうる。 While a compressed 3D mesh or sequence of 3D meshes may be generated by an encoder, a decoder may be configured to decompress the compressed or coded 3D meshes. FIG. 3 illustrates a high-level exemplary data flow of 3D meshes in such an encoder (301) and decoder (303). As shown in FIG. 3, a raw input 3D mesh or sequence of 3D meshes (302) may be pre-processed by track remeshing, parameterization, and/or voxelization to generate input data to a mapping unit (304) for mapping the 3D mesh to a 2D UV space, which may in some implementations include a mesh with a UV atlas. The 3D mesh may be sampled to include 3D surface points that may not be among the vertices, and these sampled 3D surface points may be added to the UV space in the mapping. Various 2D maps may be generated in the encoder 301, including, but not limited to, an occupancy map (310), a geometry map (312), and an attribute map (314). These image type maps may be compressed by the encoder 301, for example, using video coding/compression techniques. For example, a video coder may assist in compressing the 3D mesh frames using intra prediction techniques and inter prediction with other 3D mesh reference frames. Other non-image or non-map data or metadata (316) may also be coded in various ways to remove redundancy via entropy coding, as a non-limiting example, to generate compressed non-map data. The encoder 301 may then combine or multiplex the compressed 2D map and non-map data and further code the combined data to generate an encoded bitstream (alternatively referred to as a coded bitstream). The encoded bitstream may then be stored or transmitted for use by the decoder 303. The decoder may be configured to decode the bitstream, demultiplex the decoded bitstream to obtain compressed 2D maps and non-mapped data, and perform decompression to generate a decoded occupancy map (320), a decoded geometry map (322), a decoded attribute map (324), and decoded non-mapped data and metadata (326). The decoder 303 may then be further configured to reconstruct a 3D mesh or sequence of 3D meshes (330) from the decoded 2D maps (320, 322, 324) and the decoded non-mapped data (326).
さらに詳細に、図4は、本開示のいくつかの実施形態による、3Dメッシュフレームをエンコーディングするための例示的な3Dメッシュエンコーダ(400)のブロック図を示している。いくつかの例示的な実装形態では、メッシュエンコーダ(400)は、通信システム(100)およびストリーミングシステム(200)で使用されうる。例えば、エンコーダ(203)は、メッシュエンコーダ(400)と同様に構成され、動作することができる。 In more detail, FIG. 4 illustrates a block diagram of an example 3D mesh encoder (400) for encoding 3D mesh frames, according to some embodiments of the present disclosure. In some example implementations, the mesh encoder (400) may be used in the communication system (100) and the streaming system (200). For example, the encoder (203) may be configured and operate similarly to the mesh encoder (400).
メッシュエンコーダ(400)は、3Dメッシュフレームを圧縮されていない入力として受信し、圧縮された3Dメッシュフレームに対応するビットストリームを生成しうる。いくつかの例示的な実装形態では、メッシュエンコーダ(400)は、図2のメッシュまたは点群ソース(201)などといった任意のソースから3Dメッシュフレームを受信しうる。 The mesh encoder (400) may receive a 3D mesh frame as an uncompressed input and generate a bitstream corresponding to the compressed 3D mesh frame. In some example implementations, the mesh encoder (400) may receive the 3D mesh frame from any source, such as the mesh or point cloud source (201) of FIG. 2.
図4の例では、メッシュエンコーダ(400)は、パッチ生成モジュール(406)(代替的にチャート生成モジュールとも呼ばれる)、パッチパッキングモジュール(408)、ジオメトリ画像生成モジュール(410)、テクスチャ画像生成モジュール(412)、パッチ情報モジュール(404)、占有マップモジュール(414)、平滑化モジュール(436)、画像パディングモジュール(416)および(418)、グループ拡張モジュール(420)、ビデオ圧縮モジュール(422)、(423)、および(432)、補助パッチ情報圧縮モジュール(438)、エントロピー圧縮モジュール(434)、ならびにマルチプレクサ(424)を含みうる。 In the example of FIG. 4, the mesh encoder (400) may include a patch generation module (406) (alternatively referred to as a chart generation module), a patch packing module (408), a geometry image generation module (410), a texture image generation module (412), a patch information module (404), an occupancy map module (414), a smoothing module (436), image padding modules (416) and (418), a group expansion module (420), video compression modules (422), (423), and (432), an auxiliary patch information compression module (438), an entropy compression module (434), and a multiplexer (424).
本開示の様々な実施形態において、モジュールは、ソフトウェアモジュール、ハードウェアモジュール、またはそれらの組み合わせを指しうる。ソフトウェアモジュールは、予め定義された機能を有し、本開示に記載される機能など、予め定義された目標を達成するために他の関連部分と協働するコンピュータプログラムまたはコンピュータプログラムの一部を含みうる。ハードウェアモジュールは、本開示に記載される機能を行うように構成された処理回路および/またはメモリを使用して実装されうる。各モジュールは、1つまたは複数のプロセッサ(またはプロセッサおよびメモリ)を使用して実装することができる。同様に、プロセッサ(またはプロセッサおよびメモリ)を使用して1つまたは複数のモジュールを実装することができる。さらに、各モジュールは、モジュールの機能を含む全体モジュールの一部とすることができる。ここでの説明は、モジュールという用語および他の同等の用語(例えば、ユニット)にも適用されうる。 In various embodiments of the present disclosure, a module may refer to a software module, a hardware module, or a combination thereof. A software module may include a computer program or a portion of a computer program that has a predefined function and cooperates with other relevant parts to achieve a predefined goal, such as the functions described in this disclosure. A hardware module may be implemented using processing circuitry and/or memory configured to perform the functions described in this disclosure. Each module may be implemented using one or more processors (or a processor and memory). Similarly, one or more modules may be implemented using a processor (or a processor and memory). Furthermore, each module may be part of an overall module that includes the functionality of the module. The description herein may also apply to the term module and other equivalent terms (e.g., unit).
本開示の一態様によれば、上述されたように、メッシュエンコーダ(400)は、3Dメッシュフレームを、圧縮された3Dメッシュを解凍された3Dメッシュに戻す変換を支援するために使用される何らかの非マップメタデータ(例えば、パッチやチャート情報)と共に、画像ベースの表現(例えば、2Dマップ)に変換する。いくつかの例では、メッシュエンコーダ(400)は、3Dメッシュフレームを2Dジオメトリマップまたは画像、テクスチャマップまたは画像および占有マップまたは画像に変換し、次いでビデオコーディング技術を使用して、ジオメトリ画像、テクスチャ画像および占有マップをメタデータおよび他の圧縮された非マップデータと共にビットストリームにエンコーディングしうる。一般に、上述されたように、2Dジオメトリ画像は、2Dピクセルに投影された(「投影された」という用語は「マッピングされた」を意味するために使用される)3D点と関連付けられたジオメトリ値で満たされた2Dピクセルを有する2D画像であり、ジオメトリ値で満たされた2Dピクセルはジオメトリサンプルと呼ばれる場合がある。テクスチャ画像は、2Dピクセルに投影された3D点と関連付けられたテクスチャ値で満たされたピクセルを有する2D画像であり、テクスチャ値で満たされた2Dピクセルはテクスチャサンプルと呼ばれる場合がある。占有マップは、3D点による占有または非占有を指示する値で満たされた2Dピクセルを有する2D画像である。 According to one aspect of the disclosure, as described above, the mesh encoder (400) converts the 3D mesh frame into an image-based representation (e.g., a 2D map) along with any non-mapped metadata (e.g., patch or chart information) used to aid in converting the compressed 3D mesh back to a decompressed 3D mesh. In some examples, the mesh encoder (400) converts the 3D mesh frame into a 2D geometry map or image, texture map or image, and occupancy map or image, and then may encode the geometry image, texture image, and occupancy map along with metadata and other compressed non-mapped data into a bitstream using video coding techniques. In general, as described above, a 2D geometry image is a 2D image having 2D pixels filled with geometry values associated with 3D points projected (the term "projected" is used to mean "mapped") to the 2D pixels, where the 2D pixels filled with geometry values may be referred to as geometry samples. A texture image is a 2D image having pixels filled with texture values associated with 3D points projected to the 2D pixels, where the 2D pixels filled with texture values may be referred to as texture samples. An occupancy map is a 2D image with 2D pixels filled with values that indicate occupancy or non-occupancy by 3D points.
パッチ生成モジュール(406)は、各パッチが2D空間内の平面に対する深度場(例えば、表面上のより深い3D点が対応する2Dマップの中心からさらに離れるように表面を平坦化すること)によって記述されうるように、3Dメッシュを、オーバーラップする場合もオーバーラップしない場合もある、チャートまたはパッチのセット(例えば、パッチは、3Dメッシュまたは点群によって記述される表面の連続したサブセットとして定義される)にセグメント化する。いくつかの実施形態では、パッチ生成モジュール(406)は、3Dメッシュを、滑らかな境界を有する最小数のパッチに分解し、その一方で再構成誤差も最小限に抑えることを目的とする。 The patch generation module (406) segments the 3D mesh into a set of overlapping or non-overlapping charts or patches (e.g., a patch is defined as a contiguous subset of the surface described by the 3D mesh or point cloud), such that each patch can be described by a depth field relative to a plane in 2D space (e.g., by flattening the surface so that deeper 3D points on the surface are further away from the center of the corresponding 2D map). In some embodiments, the patch generation module (406) aims to decompose the 3D mesh into a minimum number of patches with smooth boundaries while also minimizing the reconstruction error.
パッチ情報モジュール(404)は、パッチのサイズおよび形状を指示するパッチ情報を収集することができる。いくつかの例では、パッチ情報をデータフレームにパッキングし、次いで補助パッチ情報圧縮モジュール(438)によってエンコーディングして、圧縮された補助パッチ情報を生成することができる。補助パッチ圧縮は、様々なタイプの算術コーディングを含むがこれに限定されない、様々な形態で実施されうる。 The patch information module (404) can collect patch information indicating the size and shape of the patch. In some examples, the patch information can be packed into a data frame and then encoded by the auxiliary patch information compression module (438) to generate compressed auxiliary patch information. The auxiliary patch compression can be implemented in a variety of forms, including, but not limited to, various types of arithmetic coding.
パッチまたはチャートパッキングモジュール(408)は、未使用の空間を最小限に抑えながら、抽出されたパッチをUV空間の2Dグリッド上にマッピングするように構成されうる。いくつかの例示的な実装形態では、2D UV空間のピクセルは、パッチまたはチャートのマッピングのためにピクセルのブロックに粒状化されうる。ブロックサイズは予め定義されうる。例えば、ブロックサイズはM×M(例えば、16×16)であってもよい。そのような粒度では、2D UVグリッドのすべてのM×Mブロックが固有のパッチと関連付けられることが保証されうる。言い換えれば、各パッチは、M×Mの2D粒度で2D UV空間にマッピングされる。効率的なパッチパッキングは、未使用の空間を最小化すること、または時間的一貫性を保証することのいずれかによって、圧縮効率に直接影響を及ぼすことができる。パッチまたはチャートの2D UV空間へのパッキングの例示的な実装形態が以下でさらに詳細に与えられる。 The patch or chart packing module (408) may be configured to map the extracted patches onto a 2D grid in UV space while minimizing unused space. In some example implementations, pixels in the 2D UV space may be granulated into blocks of pixels for patch or chart mapping. The block size may be predefined. For example, the block size may be M×M (e.g., 16×16). With such granularity, it may be guaranteed that every M×M block of the 2D UV grid is associated with a unique patch. In other words, each patch is mapped to the 2D UV space with a 2D granularity of M×M. Efficient patch packing can directly impact compression efficiency by either minimizing unused space or ensuring temporal consistency. An example implementation of packing patches or charts into the 2D UV space is given in further detail below.
ジオメトリ画像生成モジュール(410)は、2Dグリッド内の所与のパッチ位置における3Dメッシュのジオメトリと関連付けられた2Dジオメトリ画像を生成することができる。テクスチャ画像生成モジュール(412)は、2Dグリッド内の所与のパッチ位置における3Dメッシュのテクスチャと関連付けられた2Dテクスチャ画像を生成することができる。ジオメトリ画像生成モジュール(410)およびテクスチャ画像生成モジュール(412)は、本質的に、上述されたように、上記のパッキングプロセス中に計算された3Dから2Dへのマッピングを利用して、3Dメッシュのジオメトリおよびテクスチャを2D画像として記憶する。いくつかの実装形態では、複数の点が同じサンプルに投影されている(例えば、パッチがメッシュの3D空間においてオーバーラップする)事例をより適切に扱うために、2D画像は階層化されうる。言い換えれば、各パッチは、複数の点を異なる層内の同じ点に投影することができるように、層と呼ばれる、例えば2つの画像上に投影されうる。 The geometry image generation module (410) can generate a 2D geometry image associated with the geometry of the 3D mesh at a given patch location in the 2D grid. The texture image generation module (412) can generate a 2D texture image associated with the texture of the 3D mesh at a given patch location in the 2D grid. The geometry image generation module (410) and the texture image generation module (412) essentially store the geometry and texture of the 3D mesh as a 2D image, utilizing the 3D to 2D mapping calculated during the packing process described above, as described above. In some implementations, the 2D images can be layered to better handle cases where multiple points are projected onto the same sample (e.g., patches overlap in the 3D space of the mesh). In other words, each patch can be projected onto, for example, two images, called layers, such that multiple points can be projected onto the same point in different layers.
いくつかの例示的な実装形態では、ジオメトリ画像は、幅×高さ(W×H)の単色フレームによって表されうる。よって、3つのルーマチャネルまたはクロマチャネルの3つのジオメトリ画像が、3D座標を表すために使用されうる。いくつかの例示的な実装形態では、ジオメトリ画像は、特定の色深度(例えば、8ビット、12ビット、16ビットなど)を有する3つのチャネル(RGB、YUV、YCrCbなど)を有する2D画像によって表されうる。よって、3つの色チャネルを有する1つのジオメトリ画像が、3D座標を表すために使用されうる。 In some example implementations, the geometry image may be represented by a monochromatic frame of width x height (W x H). Thus, three geometry images of three luma or chroma channels may be used to represent the 3D coordinates. In some example implementations, the geometry image may be represented by a 2D image with three channels (RGB, YUV, YCrCb, etc.) with a particular color depth (e.g., 8 bits, 12 bits, 16 bits, etc.). Thus, one geometry image with three color channels may be used to represent the 3D coordinates.
テクスチャ画像を生成するために、テクスチャ生成手順は、元の3Dメッシュからのサンプリングされた点と関連付けられるべき色を計算するために、再構成/平滑化されたジオメトリを利用する(例えば、元の3Dメッシュの頂点の中にない3D表面点を生成することになる、図3の「サンプリング」を参照されたい)。 To generate the texture image, the texture generation procedure utilizes the reconstructed/smoothed geometry to compute the colors to be associated with sampled points from the original 3D mesh (e.g., see "Sampling" in Figure 3, which will generate 3D surface points that are not among the vertices of the original 3D mesh).
占有マップモジュール(414)は、各ユニットにおけるパディング情報を記述する占有マップを生成するように構成されうる。例えば、上述されたように、占有画像は、2Dグリッドの各セルについて、セルが空の空間に属するか、それとも3Dメッシュに属するかを指示するバイナリマップを含んでもよい。いくつかの例示的な実装形態では、占有マップは、バイナリ情報を使用して、ピクセルがパディングされているか否かをピクセルごとに記述しうる。いくつかの他の例示的な実装形態では、占有マップは、バイナリ情報を使用して、ピクセルのブロックがパディングされているか否かをピクセルのブロック(例えば、各M×Mブロック)ごとに記述しうる。 The occupancy map module (414) may be configured to generate an occupancy map that describes the padding information in each unit. For example, as described above, the occupancy image may include a binary map that indicates, for each cell of a 2D grid, whether the cell belongs to empty space or to a 3D mesh. In some example implementations, the occupancy map may use binary information to describe, on a pixel-by-pixel basis, whether the pixel is padded or not. In some other example implementations, the occupancy map may use binary information to describe, on a block-by-block basis (e.g., each M×M block), whether the block-of-pixels is padded or not.
占有マップモジュール(414)によって生成された占有マップは、可逆コーディングまたは非可逆コーディングを使用して圧縮されうる。可逆コーディングが使用される場合、占有マップを圧縮するためにエントロピー圧縮モジュール(434)が使用されうる。非可逆コーディングが使用される場合、占有マップを圧縮するためにビデオ圧縮モジュール(432)が使用されうる。 The occupancy map generated by the occupancy map module (414) may be compressed using lossless or lossy coding. If lossless coding is used, an entropy compression module (434) may be used to compress the occupancy map. If lossy coding is used, a video compression module (432) may be used to compress the occupancy map.
パッチパッキングモジュール(408)は、画像フレーム内にパッキングされた2Dパッチ間にいくつかの空の空間を残しうることに留意されたい。画像パディングモジュール(416)および(418)は、2Dビデオおよび画像コーデックに適しうる画像フレームを生成するために空の空間を埋めてもよい(パディングと呼ばれる)。画像パディングは、背景埋めとも呼ばれ、未使用の空間を冗長な情報で埋めることができる。いくつかの例では、うまく実施された背景埋めは、パッチ境界の周りに大きなコーディング歪みを導入することを回避しつつ、ビットレートを最小限増加させる。 Note that the patch packing module (408) may leave some empty space between the 2D patches packed into the image frame. The image padding modules (416) and (418) may fill the empty space (called padding) to generate an image frame that may be suitable for 2D video and image codecs. Image padding, also known as background filling, may fill the unused space with redundant information. In some examples, well-implemented background filling provides a minimal increase in bitrate while avoiding introducing significant coding artifacts around patch boundaries.
ビデオ圧縮モジュール(422)、(423)、および(432)は、HEVC、VVCなどといった適切なビデオコーディング規格に基づいて、パディングされたジオメトリ画像、パディングされたテクスチャ画像、占有マップなどの2D画像をエンコーディングすることができる。いくつかの例示的な実装形態では、ビデオ圧縮モジュール(422)、(423)、および(432)は、別々に動作する個々の構成要素である。ビデオ圧縮モジュール(422)、(423)、および(432)は、いくつかの他の例示的な実装形態では、単一の構成要素として実装することができることに留意されたい。 The video compression modules (422), (423), and (432) can encode 2D images, such as padded geometry images, padded texture images, occupancy maps, etc., based on an appropriate video coding standard, such as HEVC, VVC, etc. In some exemplary implementations, the video compression modules (422), (423), and (432) are individual components that operate separately. It should be noted that the video compression modules (422), (423), and (432) can be implemented as a single component in some other exemplary implementations.
いくつかの例示的な実装形態では、平滑化モジュール(436)は、再構成されたジオメトリ画像の平滑化画像を生成するように構成されうる。平滑化画像は、テクスチャ画像生成(412)に提供することができる。次いで、テクスチャ画像生成(412)は、再構成されたジオメトリ画像に基づいてテクスチャ画像の生成を調整しうる。例えば、パッチ形状(例えば、ジオメトリ)がエンコーディングおよびデコーディング中にわずかに歪んだ場合、パッチ形状における歪みを補正するためにテクスチャ画像を生成するときに歪みが考慮に入れられてもよい。 In some example implementations, the smoothing module (436) may be configured to generate a smoothed image of the reconstructed geometry image. The smoothed image may be provided to the texture image generation (412). The texture image generation (412) may then adjust the generation of the texture image based on the reconstructed geometry image. For example, if the patch shape (e.g., geometry) is slightly distorted during encoding and decoding, the distortion may be taken into account when generating the texture image to correct for the distortion in the patch shape.
いくつかの実施形態では、グループ拡張(420)は、再構成された3Dメッシュのコーディング利得ならびに視覚的品質を改善するために、オブジェクト境界の周りのピクセルを冗長な低周波コンテンツでパディングするように構成される。 In some embodiments, group expansion (420) is configured to pad pixels around object boundaries with redundant low-frequency content to improve the coding gain as well as the visual quality of the reconstructed 3D mesh.
マルチプレクサ(424)は、圧縮されたジオメトリ画像、圧縮されたテクスチャ画像、圧縮された占有マップ、圧縮された補助パッチ情報を、圧縮されたビットストリームに多重化するように構成されうる。 The multiplexer (424) may be configured to multiplex the compressed geometry images, the compressed texture images, the compressed occupancy maps, and the compressed auxiliary patch information into a compressed bitstream.
図5は、本開示のいくつかの実施形態による、3Dメッシュフレームに対応する圧縮されたビットストリームをデコーディングするための例示的なメッシュデコーダ(500)のブロック図を示している。いくつかの例示的な実装形態では、メッシュデコーダ(500)は、通信システム(100)およびストリーミングシステム(200)で使用することができる。例えば、デコーダ(210)は、メッシュデコーダ(500)と同様に動作するように構成することができる。メッシュデコーダ(500)は、圧縮されたビットストリームを受信し、例えば、圧縮されたジオメトリ画像、圧縮されたテクスチャ画像、圧縮された占有マップ、圧縮された補助パッチ情報を含む圧縮されたビットストリームに基づいて再構成された3Dメッシュを生成する。 Figure 5 illustrates a block diagram of an example mesh decoder (500) for decoding a compressed bitstream corresponding to a 3D mesh frame, according to some embodiments of the present disclosure. In some example implementations, the mesh decoder (500) can be used in the communication system (100) and the streaming system (200). For example, the decoder (210) can be configured to operate similarly to the mesh decoder (500). The mesh decoder (500) receives a compressed bitstream and generates a reconstructed 3D mesh based on the compressed bitstream, including, for example, compressed geometry images, compressed texture images, compressed occupancy maps, and compressed auxiliary patch information.
図5の例では、メッシュデコーダ(500)は、デマルチプレクサ(532)、ビデオ解凍モジュール(534)および(536)、占有マップ解凍モジュール(538)、補助パッチ情報解凍モジュール(542)、ジオメトリ再構成モジュール(544)、平滑化モジュール(546)、テクスチャ再構成モジュール(548)、ならびに色平滑化モジュール(552)を含みうる。 In the example of FIG. 5, the mesh decoder (500) may include a demultiplexer (532), video decompression modules (534) and (536), an occupancy map decompression module (538), an auxiliary patch information decompression module (542), a geometry reconstruction module (544), a smoothing module (546), a texture reconstruction module (548), and a color smoothing module (552).
デマルチプレクサ(532)は、圧縮されたビットストリームを受信し、圧縮されたテクスチャ画像、圧縮されたジオメトリ画像、圧縮された占有マップ、および圧縮された補助パッチ情報に分離しうる。 The demultiplexer (532) may receive the compressed bitstream and separate it into compressed texture images, compressed geometry images, compressed occupancy maps, and compressed auxiliary patch information.
ビデオ解凍モジュール(534)および(536)は、適切な規格(例えば、HEVC、VVCなど)に従って圧縮画像をデコーディングし、解凍画像を出力することができる。例えば、ビデオ解凍モジュール(534)は、圧縮されたテクスチャ画像をデコーディングし、解凍されたテクスチャ画像を出力しうる。ビデオ解凍モジュール(536)は、圧縮されたジオメトリ画像をさらにデコーディングし、解凍されたジオメトリ画像を出力しうる。 The video decompression modules (534) and (536) may decode the compressed images according to an appropriate standard (e.g., HEVC, VVC, etc.) and output decompressed images. For example, the video decompression module (534) may decode the compressed texture image and output a decompressed texture image. The video decompression module (536) may further decode the compressed geometry image and output a decompressed geometry image.
占有マップ解凍モジュール(538)は、適切な規格(例えば、HEVC、VVCなど)に従って圧縮された占有マップをデコーディングし、解凍された占有マップを出力するように構成されうる。 The occupancy map decompression module (538) may be configured to decode the compressed occupancy map according to an appropriate standard (e.g., HEVC, VVC, etc.) and output a decompressed occupancy map.
補助パッチ情報解凍モジュール(542)は、適切なデコーディングアルゴリズムに従って圧縮された補助パッチ情報をデコーディングし、解凍された補助パッチ情報を出力するように構成されうる。 The auxiliary patch information decompression module (542) may be configured to decode the compressed auxiliary patch information according to a suitable decoding algorithm and output the decompressed auxiliary patch information.
ジオメトリ再構成モジュール(544)は、解凍されたジオメトリ画像を受信し、解凍された占有マップおよび解凍された補助パッチ情報に基づいて再構成された3Dメッシュジオメトリを生成するように構成されうる。 The geometry reconstruction module (544) may be configured to receive the decompressed geometry image and generate a reconstructed 3D mesh geometry based on the decompressed occupancy map and the decompressed auxiliary patch information.
平滑化モジュール(546)は、パッチのエッジにおける不調和を平滑化するように構成されうる。平滑化手順は、圧縮アーティファクトに起因してパッチ境界に生じうる潜在的な不連続性を緩和することを目的としうる。いくつかの例示的な実装形態では、圧縮/解凍によって引き起こされうる歪みを軽減するために、パッチ境界上に位置するピクセルに対して平滑化フィルタが適用されうる。 The smoothing module (546) may be configured to smooth out discontinuities at the edges of the patches. The smoothing procedure may aim to mitigate potential discontinuities that may arise at the patch boundaries due to compression artifacts. In some example implementations, a smoothing filter may be applied to pixels located on the patch boundaries to reduce distortions that may be caused by compression/decompression.
テクスチャ再構成モジュール(548)は、解凍されたテクスチャ画像および平滑化ジオメトリに基づいて、3Dメッシュ内の点のテクスチャ情報を決定するように構成されうる。 The texture reconstruction module (548) may be configured to determine texture information for points in the 3D mesh based on the decompressed texture image and the smoothed geometry.
色平滑化モジュール(552)は、着色の不調和を平滑化するように構成されうる。3D空間内の近傍でないパッチが2Dビデオ内で互いに隣接してパッキングされることがよくある。いくつかの例では、近傍でないパッチからのピクセル値が、ブロックベースのビデオコーデックによって混同される場合がある。色平滑化の目標は、パッチ境界に現れる可視アーティファクトを低減することでありうる。 The color smoothing module (552) may be configured to smooth out coloration inconsistencies. Patches that are not neighbors in 3D space are often packed adjacent to each other in 2D video. In some examples, pixel values from non-neighboring patches may be confused by a block-based video codec. The goal of color smoothing may be to reduce visible artifacts that appear at patch boundaries.
図6は、本開示の一実施形態による例示的なビデオデコーダ(610)のブロック図を示している。ビデオデコーダ(610)は、メッシュデコーダ(500)で使用されてもよい。例えば、ビデオ解凍モジュール(534)および(536)、占有マップ解凍モジュール(538)は、ビデオデコーダ(610)と同様に構成されてもよい。 Figure 6 illustrates a block diagram of an exemplary video decoder (610) according to one embodiment of the present disclosure. The video decoder (610) may be used in the mesh decoder (500). For example, the video decompression modules (534) and (536) and the occupancy map decompression module (538) may be configured similarly to the video decoder (610).
ビデオデコーダ(610)は、コーディングされたビデオシーケンスなどの圧縮画像からシンボル(621)を再構成するためのパーサ(620)を含んでもよい。それらのシンボルのカテゴリは、ビデオデコーダ(610)の動作を管理するために使用される情報を含みうる。パーサ(620)は、受信されるコーディングされたビデオシーケンスをパース/エントロピーデコーディングしうる。コーディングされたビデオシーケンスのコーディングは、ビデオコーディング技術または規格に従ったものとすることができ、可変長コーディング、ハフマンコーディング、コンテキスト依存性ありまたはなしの算術コーディングなどを含む様々な原理に従うことができる。パーサ(620)は、コーディングされたビデオシーケンスから、グループに対応する少なくとも1つのパラメータに基づいて、ビデオデコーダ内のピクセルのサブグループのうちの少なくとも1つのサブグループパラメータのセットを抽出しうる。サブグループは、Group of Pictures(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含むことができる。パーサ(620)はまた、コーディングされたビデオシーケンスから、変換係数、量子化パラメータ値、動きベクトルなどの情報も抽出しうる。 The video decoder (610) may include a parser (620) for reconstructing symbols (621) from a compressed image, such as a coded video sequence. The categories of the symbols may include information used to manage the operation of the video decoder (610). The parser (620) may parse/entropy decode the received coded video sequence. The coding of the coded video sequence may be according to a video coding technique or standard and may follow various principles including variable length coding, Huffman coding, arithmetic coding with or without context dependency, etc. The parser (620) may extract from the coded video sequence at least one set of subgroup parameters for a subgroup of pixels in the video decoder based on at least one parameter corresponding to the group. The subgroup may include a Group of Pictures (GOP), a picture, a tile, a slice, a macroblock, a coding unit (CU), a block, a transform unit (TU), a prediction unit (PU), etc. The parser (620) may also extract information from the coded video sequence, such as transform coefficients, quantization parameter values, and motion vectors.
パーサ(620)は、シンボル(621)を作成するために、バッファメモリから受信された画像シーケンスに対してエントロピーデコーディング/パース動作を行いうる。 The parser (620) may perform an entropy decoding/parsing operation on the image sequence received from the buffer memory to create symbols (621).
シンボル(621)の再構成は、コーディングされたビデオピクチャまたはその部分のタイプ(インターピクチャおよびイントラピクチャ、インターブロックおよびイントラブロックなど)、ならびに他の要因に応じて、複数の異なるユニットを必要としうる。どのユニットがどのように必要とされるかは、パーサ(620)によってコーディングされたビデオシーケンスからパースされたサブグループ制御情報によって制御されうる。パーサ(620)と以下の複数のユニットとの間のそのようなサブグループ制御情報の流れは、簡潔にするために図示されていない。 The reconstruction of the symbols (621) may require a number of different units depending on the type of coded video picture or portion thereof (inter-picture and intra-picture, inter-block and intra-block, etc.), as well as other factors. Which units are required and how may be controlled by subgroup control information parsed from the coded video sequence by the parser (620). The flow of such subgroup control information between the parser (620) and the following units is not shown for the sake of simplicity.
すでに述べられた機能ブロック以外に、ビデオデコーダ(610)は、以下で説明されるように、概念的にいくつかの機能ユニットに細分されることができる。商業的制約の下で動作する実際の実装形態では、これらのユニットの多くが互いに密接に相互作用し、少なくとも部分的に、互いに統合されることができる。以下の機能ユニットへの概念的細分は、開示の主題を説明する目的でのみ行われている。 Besides the functional blocks already mentioned, the video decoder (610) can be conceptually subdivided into several functional units, as described below. In an actual implementation operating under commercial constraints, many of these units will closely interact with each other and may be, at least in part, integrated with each other. The following conceptual subdivision into functional units is made solely for purposes of illustrating the subject matter of the disclosure.
ビデオデコーダ(610)は、スケーラ/逆変換ユニット(651)を含んでもよい。スケーラ/逆変換ユニット(651)は、量子化変換係数、ならびにどの変換を使用するか、ブロックサイズ、量子化係数/パラメータ、量子化スケーリング行列などを含む制御情報を、パーサ(620)から(1つまたは複数の)シンボル(621)として受信しうる。スケーラ/逆変換ユニット(651)は、アグリゲータ(655)に入力されることができるサンプル値を含むブロックを出力しうる。 The video decoder (610) may include a scalar/inverse transform unit (651), which may receive quantized transform coefficients as well as control information including which transform to use, block size, quantization coefficients/parameters, quantization scaling matrices, etc., as symbol(s) (621) from the parser (620). The scalar/inverse transform unit (651) may output blocks including sample values that may be input to the aggregator (655).
場合によっては、スケーラ/逆変換(651)の出力サンプルは、イントラコーディングされたブロック、すなわち、以前に再構成されたピクチャからの予測情報を使用しないが、現在のピクチャの以前に再構成された部分からの予測情報を使用することができるブロックに関係することができる。そのような予測情報は、イントラピクチャ予測ユニット(652)によって提供されることができる。場合によっては、イントラピクチャ予測ユニット(652)は、現在のピクチャバッファ(658)からフェッチされた周囲のすでに再構成された情報を使用して、再構成中のブロックと同じサイズおよび形状のブロックを生成してもよい。現在のピクチャバッファ(658)は、例えば、部分的に再構成された現在のピクチャおよび/または完全に再構成された現在のピクチャをバッファリングしてもよい。アグリゲータ(655)は、場合によっては、サンプルごとに、イントラ予測ユニット(652)が生成した予測情報を、スケーラ/逆変換ユニット(651)によって提供されたものとして出力サンプル情報に追加してもよい。 In some cases, the output samples of the scalar/inverse transform (651) may relate to intra-coded blocks, i.e., blocks that do not use prediction information from a previously reconstructed picture, but may use prediction information from a previously reconstructed portion of the current picture. Such prediction information may be provided by an intra-picture prediction unit (652). In some cases, the intra-picture prediction unit (652) may generate a block of the same size and shape as the block being reconstructed using surrounding already reconstructed information fetched from the current picture buffer (658). The current picture buffer (658) may, for example, buffer the partially reconstructed current picture and/or the fully reconstructed current picture. The aggregator (655) may, in some cases, add, on a sample-by-sample basis, the prediction information generated by the intra-prediction unit (652) to the output sample information as provided by the scalar/inverse transform unit (651).
他の場合には、スケーラ/逆変換ユニット(651)の出力サンプルは、インターコーディングされ、潜在的に動き補償されたブロックに関係することができる。そのような場合、動き補償予測ユニット(653)は、参照ピクチャメモリ(657)にアクセスして、予測に使用されるサンプルをフェッチすることができる ブロックに関係するシンボル(621)に従ってフェッチされたサンプルを動き補償した後、これらのサンプルは、出力サンプル情報を生成するために、アグリゲータ(655)によってスケーラ/逆変換ユニット(651)の出力に追加されうる(この場合、残差サンプルまたは残差信号と呼ばれる)。動き補償予測ユニット(653)がそこから予測サンプルをフェッチする参照ピクチャメモリ(657)内のアドレスは、例えば、X成分、Y成分、および参照ピクチャ成分を有することができるシンボル(621)の形式で動き補償予測ユニット(653)が利用可能な、動きベクトルによって制御されることができる。動き補償はまた、サブサンプルの正確な動きベクトルが使用されているときに参照ピクチャメモリ(657)からフェッチされたサンプル値の補間、動きベクトル予測メカニズムなども含んでもよい。 In other cases, the output samples of the scalar/inverse transform unit (651) may relate to an inter-coded, potentially motion-compensated block. In such cases, the motion-compensated prediction unit (653) may access the reference picture memory (657) to fetch samples used for prediction. After motion-compensating the fetched samples according to the symbols (621) relating to the block, these samples may be added by the aggregator (655) to the output of the scalar/inverse transform unit (651) to generate output sample information (in this case referred to as residual samples or residual signals). The addresses in the reference picture memory (657) from which the motion-compensated prediction unit (653) fetches prediction samples may be controlled by motion vectors available to the motion-compensated prediction unit (653) in the form of symbols (621), which may have, for example, an X component, a Y component, and a reference picture component. Motion compensation may also include interpolation of sample values fetched from the reference picture memory (657) when sub-sample accurate motion vectors are used, motion vector prediction mechanisms, etc.
アグリゲータ(655)の出力サンプルは、ループフィルタユニット(656)において様々なループフィルタリング技術を受けてもよい。ビデオ圧縮技術は、(コーディングされたビデオビットストリームとも呼ばれる)コーディングされたビデオシーケンスに含まれ、パーサ(620)からシンボル(621)としてループフィルタユニット(656)に供されるパラメータによって制御されるインループフィルタ技術を含みうるが、コーディングされたピクチャまたはコーディングされたビデオシーケンスの(デコーディング順序で)前の部分のデコーディング中に取得されたメタ情報に応答してもよく、以前に再構成およびループフィルタリングされたサンプル値に応答してもよい。 The output samples of the aggregator (655) may be subjected to various loop filtering techniques in the loop filter unit (656). Video compression techniques may include in-loop filter techniques controlled by parameters included in the coded video sequence (also called coded video bitstream) and provided to the loop filter unit (656) as symbols (621) from the parser (620), but may also be responsive to meta-information obtained during decoding of a previous part (in decoding order) of the coded picture or coded video sequence, or to previously reconstructed and loop filtered sample values.
ループフィルタユニット(656)の出力は、レンダリングデバイスに出力されることもでき、将来のインターピクチャ予測で使用するために参照ピクチャメモリ(657)に記憶されることもできるサンプルストリームでありうる。 The output of the loop filter unit (656) may be a sample stream that can be output to a rendering device or stored in a reference picture memory (657) for use in future inter-picture prediction.
特定のコーディングされたピクチャは、完全に再構成されると、将来の予測のための参照ピクチャとして使用されうる。例えば、現在のピクチャに対応するコーディングされたピクチャが完全に再構成され、コーディングされたピクチャが(例えばパーサ(620)によって)参照ピクチャとして識別されると、現在のピクチャバッファ(658)は、参照ピクチャメモリ(657)の一部になってもよく、後続のコーディングされたピクチャの再構成を開始する前に新規の現在のピクチャバッファが再割り当てされてもよい。 Once a particular coded picture is fully reconstructed, it may be used as a reference picture for future predictions. For example, once a coded picture corresponding to a current picture is fully reconstructed and the coded picture is identified as a reference picture (e.g., by the parser (620)), the current picture buffer (658) may become part of the reference picture memory (657), and a new current picture buffer may be reallocated before beginning reconstruction of a subsequent coded picture.
ビデオデコーダ(610)は、ITU-T勧告H.265などの規格の所定のビデオ圧縮技術に従ってデコーディング動作を行いうる。コーディングされたビデオシーケンスは、コーディングされたビデオシーケンスがビデオ圧縮技術または規格の構文と、ビデオ圧縮技術または規格に文書化されたプロファイルの両方に忠実であるという意味において、使用されているビデオ圧縮技術または規格によって指定された構文に準拠しうる。具体的には、プロファイルは、ビデオ圧縮技術または規格において利用可能なすべてのツールから、そのプロファイルの下で利用可能な限られたツールとして特定のツールを選択しうる。また、コーディングされたビデオシーケンスの複雑さがビデオ圧縮技術または規格のレベルによって定義された範囲内にあることも、コンプライアンスのために必要でありうる。場合によっては、レベルが、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば毎秒メガサンプル単位で測定される)、最大参照ピクチャサイズなどを制限する。レベルによって設定される限界は、場合によっては、仮想参照デコーダ(HRD)の仕様、およびコーディングされたビデオシーケンス内でシグナリングされるHRDバッファ管理のためのメタデータによってさらに制限されうる。 The video decoder (610) may perform decoding operations according to a given video compression technique of a standard such as ITU-T Recommendation H.265. The coded video sequence may comply with the syntax specified by the video compression technique or standard being used in the sense that the coded video sequence adheres to both the syntax of the video compression technique or standard and the profile documented in the video compression technique or standard. In particular, the profile may select a particular tool from all tools available in the video compression technique or standard as the limited tools available under that profile. It may also be required for compliance that the complexity of the coded video sequence is within a range defined by the level of the video compression technique or standard. In some cases, the level limits the maximum picture size, maximum frame rate, maximum reconstruction sample rate (e.g., measured in megasamples per second), maximum reference picture size, etc. The limits set by the level may be further limited in some cases by the specification of a hypothetical reference decoder (HRD) and metadata for HRD buffer management signaled within the coded video sequence.
図7は、本開示の一実施形態によるビデオエンコーダ(703)のブロック図を示している。ビデオエンコーダ(703)は、3Dメッシュまたは点群を圧縮するメッシュエンコーダ(400)で使用することができる。いくつかの例示的な実装形態では、ビデオ圧縮モジュール(422)および(423)、ならびにビデオ圧縮モジュール(432)は、エンコーダ(703)と同様に構成される。 Figure 7 illustrates a block diagram of a video encoder (703) according to one embodiment of the present disclosure. The video encoder (703) may be used in the mesh encoder (400) to compress a 3D mesh or point cloud. In some example implementations, the video compression modules (422) and (423) and the video compression module (432) are configured similarly to the encoder (703).
ビデオエンコーダ(703)は、パディングされたジオメトリ画像、パディングされたテクスチャ画像などといった2D画像を受信し、圧縮画像を生成しうる。 The video encoder (703) may receive 2D images, such as padded geometry images, padded texture images, etc., and generate compressed images.
本開示の例示的な実施形態によれば、ビデオエンコーダ(703)は、リアルタイムで、または用途によって必要とされる任意の他の時間制約の下で、ソースビデオシーケンスのピクチャ(画像)をコーディングされたビデオシーケンス(圧縮画像)にコーディングおよび圧縮しうる。適切なコーディング速度を実施することが、コントローラ(750)の1つの機能である。いくつかの実施形態では、コントローラ(750)は、以下で説明される他の機能ユニットを制御し、他の機能ユニットに機能的に結合されている。簡潔にするために結合は図示されていない。コントローラ(750)によって設定されるパラメータは、レート制御関連のパラメータ(ピクチャスキップ、量子化、レート歪み最適化技術のラムダ値、…)、ピクチャサイズ、Group of Pictures(GOP)レイアウト、最大動きベクトル探索範囲などを含むことができる。コントローラ(750)は、特定のシステム設計のために最適化されたビデオエンコーダ(703)に関係する他の適切な機能を有するように構成されうる。 According to an exemplary embodiment of the present disclosure, the video encoder (703) may code and compress pictures of a source video sequence into a coded video sequence (compressed images) in real time or under any other time constraint required by the application. Enforcing an appropriate coding rate is one function of the controller (750). In some embodiments, the controller (750) controls and is operatively coupled to other functional units described below. Coupling is not shown for simplicity. Parameters set by the controller (750) may include rate control related parameters (picture skip, quantization, lambda value for rate distortion optimization techniques, ...), picture size, Group of Pictures (GOP) layout, maximum motion vector search range, etc. The controller (750) may be configured with other appropriate functions related to the video encoder (703) optimized for a particular system design.
いくつかの例示的な実装形態では、ビデオエンコーダ(703)は、コーディングループで動作するように構成されてもよい。過度に単純化された説明として、一例では、コーディングループは、(例えば、コーディングされるべき入力ピクチャ、および参照ピクチャに基づいて、シンボルストリームなどのシンボルを作成する役割を担う)ソースコーダ(730)と、ビデオエンコーダ(703)に組み込まれた(ローカル)デコーダ(733)とを含んでもよい。デコーダ(733)は、(リモート)デコーダも作成することになるのと同様の方式で、シンボルを再構成してサンプルデータを作成しうる(開示の主題で考慮されるビデオ圧縮技術においてはシンボルとコーディングされたビデオビットストリームとの間のいかなる圧縮も可逆であるため)。再構成されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(734)に入力されうる。シンボルストリームのデコーディングは、デコーダの位置(ローカルかリモートか)に関係なくビットイグザクトな結果をもたらすため、参照ピクチャメモリ(734)内の内容も、ローカルエンコーダとリモートエンコーダとの間でビットイグザクトである。言い換えれば、エンコーダの予測部分は、デコーディング中に予測を使用するときにデコーダが「見る」ことになるのと全く同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャ同期性のこの基本原理(および、例えばチャネル誤差が原因で同期性が維持されることができない場合に結果として生じるドリフト)は、いくつかの関連技術においても使用される。 In some example implementations, the video encoder (703) may be configured to operate in a coding loop. As an oversimplified explanation, in one example, the coding loop may include a source coder (730) (responsible for creating symbols, such as a symbol stream, based on an input picture to be coded and a reference picture, for example) and a (local) decoder (733) embedded in the video encoder (703). The decoder (733) may reconstruct the symbols to create sample data in a manner similar to that which a (remote) decoder would also create (since any compression between the symbols and the coded video bitstream is lossless in the video compression techniques contemplated by the disclosed subject matter). The reconstructed sample stream (sample data) may be input to a reference picture memory (734). Since decoding of the symbol stream results in a bit-exact result regardless of the location of the decoder (local or remote), the contents in the reference picture memory (734) are also bit-exact between the local and remote encoders. In other words, the prediction part of the encoder "sees" exactly the same sample values as the reference picture samples that the decoder will "see" when using prediction during decoding. This basic principle of reference picture synchrony (and the resulting drift when synchrony cannot be maintained, e.g., due to channel error) is also used in several related technologies.
「ローカル」デコーダ(733)の動作は、図6と併せて上記で詳細にすでに説明されている、ビデオデコーダ(610)などの「リモート」デコーダの動作と同じでありうる。図6も簡単に参照すると、しかしながら、シンボルが利用可能であり、エントロピーコーダ(745)およびパーサ(620)によるシンボル対コーディングされたビデオシーケンスのエンコーディング/デコーディングが可逆でありうるため、およびパーサ(620)を含むビデオデコーダ(610)のエントロピーデコーディング部分は、ローカルデコーダ(733)においては完全に実装されない場合がある。 The operation of the "local" decoder (733) may be the same as that of a "remote" decoder, such as the video decoder (610), already described in detail above in conjunction with FIG. 6. Referring briefly to FIG. 6 as well, however, because symbols are available and the encoding/decoding of the symbol-pair coded video sequence by the entropy coder (745) and parser (620) may be lossless, the entropy decoding portion of the video decoder (610), including the parser (620), may not be fully implemented in the local decoder (733).
本開示の様々な実施形態において、デコーダ内に存在するパース/エントロピーデコーディングを除く任意のデコーダ技術は必然的に、対応するエンコーダにおいても、実質的に同一の機能形式で存在する必要がありうるということである。このため、開示の主題はデコーダ動作に焦点を当てている。エンコーダ技術の説明は、包括的に説明されるデコーダ技術の逆であるので、省略される場合がある。特定の領域においてのみ、より詳細な説明が必要とされ、以下で提供される。 In various embodiments of the present disclosure, any decoder techniques, other than parsing/entropy decoding, present in a decoder may necessarily need to be present in a corresponding encoder in substantially the same functional form. For this reason, the subject matter of the disclosure focuses on the decoder operation. Descriptions of encoder techniques may be omitted, as they are the inverse of the decoder techniques, which are described generically. Only in certain areas are more detailed descriptions required and are provided below.
いくつかの例では、動作中、ソースコーダ(730)は、「参照ピクチャ」として指定されたビデオシーケンスからの1つまたは複数の以前にコーディングされたピクチャを参照して予測的に入力ピクチャをコーディングする、動き補償予測コーディングを行ってもよい。このようにして、コーディングエンジン(732)は、入力ピクチャのピクセルブロックと、入力ピクチャへの(1つまたは複数の)予測参照として選択されうる(1つまたは複数の)参照ピクチャのピクセルブロックとの間の差分をコーディングしうる。 In some examples, during operation, the source coder (730) may perform motion-compensated predictive coding, which predictively codes an input picture with reference to one or more previously coded pictures from the video sequence designated as "reference pictures." In this manner, the coding engine (732) may code differences between pixel blocks of the input picture and pixel blocks of the reference picture(s) that may be selected as the predictive reference(s) to the input picture.
ローカルビデオデコーダ(733)は、ソースコーダ(730)によって作成されたシンボルに基づいて、参照ピクチャとして指定されうるピクチャのコーディングされたビデオデータをデコーディングしうる。コーディングエンジン(732)の動作は、有利には、非可逆プロセスであってもよい。コーディングされたビデオデータがビデオデコーダ(図7には図示せず)でデコーディングされうる場合、再構成されたビデオシーケンスは、典型的には、いくつかの誤差を伴うソースビデオシーケンスの複製でありうる。ローカルビデオデコーダ(733)は、参照ピクチャに対してビデオデコーダによって行われうるデコーディングプロセスを複製し、再構成された参照ピクチャを参照ピクチャキャッシュ(734)に記憶させうる。このようにして、ビデオエンコーダ(703)は、(送信誤差なしで)遠端ビデオデコーダによって取得される再構成された参照ピクチャと共通の内容を有する再構成された参照ピクチャのコピーをローカルに記憶しうる。 The local video decoder (733) may decode the coded video data of pictures that may be designated as reference pictures based on the symbols created by the source coder (730). The operation of the coding engine (732) may advantageously be a lossy process. If the coded video data may be decoded in a video decoder (not shown in FIG. 7), the reconstructed video sequence may typically be a copy of the source video sequence with some errors. The local video decoder (733) may replicate the decoding process that may be performed by the video decoder on the reference pictures and store the reconstructed reference pictures in a reference picture cache (734). In this way, the video encoder (703) may locally store copies of reconstructed reference pictures that have common content with the reconstructed reference pictures obtained by the far-end video decoder (without transmission errors).
予測器(735)は、コーディングエンジン(732)の予測探索を行いうる。すなわち、コーディングされるべき新しいピクチャについて、予測器(735)は、新しいピクチャの適切な予測参照として機能しうる、(候補参照ピクセルブロックとしての)サンプルデータまたは参照ピクチャ動きベクトル、ブロック形状などといった特定のメタデータを求めて、参照ピクチャメモリ(734)を探索しうる。予測器(735)は、適切な予測参照を見つけるために、ピクセルブロックごとサンプルブロックごとに動作しうる。場合によっては、予測器(735)によって取得された探索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(734)に記憶された複数の参照ピクチャから選び出された予測参照を有しうる。 The predictor (735) may perform a prediction search for the coding engine (732). That is, for a new picture to be coded, the predictor (735) may search the reference picture memory (734) for sample data (as candidate reference pixel blocks) or specific metadata such as reference picture motion vectors, block shapes, etc., that may serve as suitable prediction references for the new picture. The predictor (735) may operate pixel block by pixel block to find a suitable prediction reference. In some cases, as determined by the search results obtained by the predictor (735), the input picture may have a prediction reference drawn from multiple reference pictures stored in the reference picture memory (734).
コントローラ(750)は、例えば、ビデオデータをエンコーディングするために使用されるパラメータおよびサブグループパラメータの設定を含む、ソースコーダ(730)のコーディング動作を管理しうる。 The controller (750) may manage the coding operations of the source coder (730), including, for example, setting parameters and subgroup parameters used to encode the video data.
すべての前述の機能ユニットの出力は、エントロピーコーダ(745)においてエントロピーコーディングを施されうる。エントロピーコーダ(745)は、ハフマンコーディング、可変長コーディング、算術コーディングなどといった技術に従ったシンボルの可逆圧縮により、様々な機能ユニットによって生成されたシンボルをコーディングされたビデオシーケンスに変換しうる。 The output of all the aforementioned functional units may be subjected to entropy coding in an entropy coder (745), which may convert the symbols produced by the various functional units into a coded video sequence by lossless compression of the symbols according to techniques such as Huffman coding, variable length coding, arithmetic coding, etc.
コントローラ(750)は、ビデオエンコーダ(703)の動作を管理しうる。コントローラ(750)は、コーディング中に、各コーディングされたピクチャに特定のコーディングされたピクチャタイプを割り当ててもよく、ピクチャタイプは、それぞれのピクチャに適用されうるコーディング技術に影響を及ぼす場合がある。例えば、ピクチャは、多くの場合、以下のピクチャタイプのうちの1つとして割り当てられうる。 The controller (750) may manage the operation of the video encoder (703). The controller (750) may assign a particular coded picture type to each coded picture during coding, which may affect the coding technique that may be applied to the respective picture. For example, pictures may often be assigned as one of the following picture types:
イントラピクチャ(Iピクチャ)は、シーケンス内の他のピクチャを予測のソースとして使用せずにコーディングおよびデコーディングされうるピクチャでありうる。いくつかのビデオコーデックは、例えば、独立したデコーダリフレッシュ(「IDR」)ピクチャを含む、異なるタイプのイントラピクチャを可能にする。当業者は、Iピクチャのそれらの変形形態、ならびにそれらのそれぞれの用途および特徴を認識している。 An intra picture (I-picture) may be a picture that can be coded and decoded without using other pictures in a sequence as a source of prediction. Some video codecs allow different types of intra pictures, including, for example, independent decoder refresh ("IDR") pictures. Those skilled in the art are aware of these variations of I-pictures, as well as their respective uses and characteristics.
予測ピクチャ(Pピクチャ)は、最大でも1つの動きベクトルおよび参照インデックスを使用して各ブロックのサンプル値を予測するイントラ予測またはインター予測を使用してコーディングおよびデコーディングされうるピクチャでありうる。 A predicted picture (P picture) may be a picture that can be coded and decoded using intra- or inter-prediction, which predicts sample values for each block using at most one motion vector and reference index.
双方向予測ピクチャ(Bピクチャ)は、最大でも2つの動きベクトルおよび参照インデックスを使用して各ブロックのサンプル値を予測するイントラ予測またはインター予測を使用してコーディングおよびデコーディングされうるピクチャでありうる。同様に、複数予測ピクチャは、単一のブロックの再構成のために3つ以上の参照ピクチャおよび関連付けられたメタデータを使用することができる。 A bidirectionally predicted picture (B-picture) may be a picture that can be coded and decoded using intra- or inter-prediction, which uses at most two motion vectors and reference indexes to predict the sample values of each block. Similarly, a multi-predictive picture may use more than two reference pictures and associated metadata for the reconstruction of a single block.
ソースピクチャは、一般に、複数のサンプルブロック(例えば、各々4×4サンプル、8×8サンプル、4×8サンプル、または16×16サンプルのブロック)に空間的に細分され、ブロックごとにコーディングされうる。ブロックは、ブロックのそれぞれのピクチャに適用されたコーディング割り当てによって決定されるように他の(すでにコーディングされた)ブロックを参照して予測的にコーディングされてもよい。例えば、Iピクチャのブロックは、非予測的にコーディングされてもよいし、同じピクチャのすでにコーディングされたブロックを参照して予測的にコーディングされてもよい(空間予測またはイントラ予測)。Pピクチャのピクセルブロックは、1つの以前にコーディングされた参照ピクチャを参照して、空間予測を介するかまたは時間予測を介して、予測的にコーディングされうる。Bピクチャのブロックは、1つまたは2つの以前にコーディングされた参照ピクチャを参照して、空間予測を介するかまたは時間予測を介して、予測的にコーディングされうる。 A source picture is generally spatially subdivided into multiple sample blocks (e.g., blocks of 4x4, 8x8, 4x8, or 16x16 samples each) and may be coded block by block. Blocks may be predictively coded with reference to other (already coded) blocks as determined by the coding assignment applied to the block's respective picture. For example, blocks of an I picture may be non-predictively coded or predictively coded with reference to already coded blocks of the same picture (spatial or intra prediction). Pixel blocks of a P picture may be predictively coded via spatial prediction or via temporal prediction with reference to one previously coded reference picture. Blocks of a B picture may be predictively coded via spatial prediction or via temporal prediction with reference to one or two previously coded reference pictures.
ビデオエンコーダ(703)は、ITU-T勧告H.265などの所定のビデオコーディング技術または規格に従ってコーディング動作を行いうる。その動作において、ビデオエンコーダ(703)は、入力ビデオシーケンスにおける時間的冗長性および空間的冗長性を利用する予測コーディング動作を含む、様々な圧縮動作を行いうる。したがって、コーディングされたビデオデータは、使用されているビデオコーディング技術または規格によって指定された構文に準拠しうる。 The video encoder (703) may perform coding operations according to a given video coding technique or standard, such as ITU-T Recommendation H.265. In its operations, the video encoder (703) may perform various compression operations, including predictive coding operations that exploit temporal and spatial redundancy in the input video sequence. Thus, the coded video data may conform to a syntax specified by the video coding technique or standard being used.
ビデオは、時系列の複数のソースピクチャ(画像)の形式でありうる。イントラピクチャ予測(しばしばイントラ予測と略される)は、所与のピクチャにおける空間相関を利用し、インターピクチャ予測は、ピクチャ間の(時間または他の)相関を利用する。一例では、現在のピクチャと呼ばれる、エンコーディング中/デコーディング中の特定のピクチャは、ブロックに分割される。現在のピクチャ内のブロックが、ビデオ内の以前にコーディングされ、まだバッファリングされている参照ピクチャ内の参照ブロックに類似しているとき、現在のピクチャ内のブロックは、動きベクトルと呼ばれるベクトルによってコーディングされることができる。動きベクトルは、参照ピクチャ内の参照ブロックを指し示し、複数の参照ピクチャが使用されている場合、参照ピクチャを識別する第3の次元を有することができる。 Video may be in the form of multiple source pictures (images) in a time sequence. Intra-picture prediction (often abbreviated as intra prediction) exploits spatial correlation in a given picture, while inter-picture prediction exploits correlation (temporal or other) between pictures. In one example, a particular picture being encoded/decoded, called the current picture, is divided into blocks. When a block in the current picture is similar to a reference block in a previously coded and still buffered reference picture in the video, the block in the current picture can be coded by a vector called a motion vector. The motion vector points to a reference block in the reference picture and may have a third dimension that identifies the reference picture if multiple reference pictures are used.
いくつかの実施形態では、双予測技術がインターピクチャ予測において使用されることができる。双予測技術によれば、どちらもビデオ内で現在のピクチャにデコーディング順序で先行する(が、表示順序ではそれぞれ過去と未来とにありうる)第1の参照ピクチャおよび第2の参照ピクチャなどの2つの参照ピクチャが使用される。現在のピクチャ内のブロックは、第1の参照ピクチャ内の第1の参照ブロックを指し示す第1の動きベクトル、および第2の参照ピクチャ内の第2の参照ブロックを指し示す第2の動きベクトルによってコーディングされることができる。ブロックは、第1の参照ブロックと第2の参照ブロックの組み合わせによって予測されることができる。 In some embodiments, bi-prediction techniques can be used in inter-picture prediction. According to bi-prediction techniques, two reference pictures, such as a first reference picture and a second reference picture, are used, both of which precede the current picture in decoding order (but may be in the past and future, respectively, in display order) in the video. A block in the current picture can be coded by a first motion vector that points to a first reference block in the first reference picture and a second motion vector that points to a second reference block in the second reference picture. A block can be predicted by a combination of the first and second reference blocks.
さらに、マージモード技術が、インターピクチャ予測においてコーディング効率を向上させるために使用されることができる。 Furthermore, merge mode techniques can be used to improve coding efficiency in inter-picture prediction.
本開示のいくつかの実施形態によれば、インターピクチャ予測やイントラピクチャ予測などの予測は、ブロック単位で行われる。例えば、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ピクセルなどといったピクセルの値(例えばルーマ値)の行列を含む。 According to some embodiments of the present disclosure, predictions such as inter-picture prediction and intra-picture prediction are performed on a block-by-block basis. For example, according to the HEVC standard, a picture in a sequence of video pictures is divided into coding tree units (CTUs) for compression, and the CTUs in a picture have the same size, such as 64x64 pixels, 32x32 pixels, or 16x16 pixels. In general, a CTU includes three coding tree blocks (CTBs), one luma CTB and two chroma CTBs. Each CTU can be recursively quadtree partitioned into one or more coding units (CUs). For example, a CTU of 64x64 pixels can be partitioned into one CU of 64x64 pixels, or into four CUs of 32x32 pixels, or into 16 CUs of 16x16 pixels. In one example, each CU is analyzed to determine the prediction type of the CU, such as an inter prediction type or an intra prediction type. A CU is divided into one or more prediction units (PUs) according to temporal and/or spatial predictability. In general, each PU includes one luma prediction block (PB) and two chroma PBs. In one embodiment, the prediction operation in coding (encoding/decoding) is performed in units of prediction blocks. Using a luma prediction block as an example of a prediction block, the prediction block includes a matrix of pixel values (e.g., luma values), such as 8x8 pixels, 16x16 pixels, 8x16 pixels, 16x8 pixels, etc.
様々な実施形態において、上記のメッシュエンコーダ(400)およびメッシュデコーダ(500)は、ハードウェア、ソフトウェア、またはそれらの組み合わせを用いて実装することができる。例えば、メッシュエンコーダ(400)およびメッシュデコーダ(500)は、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)などといった、ソフトウェアありまたはなしで動作する1つまたは複数の集積回路(IC)などの処理回路を用いて実装することができる。別の例では、メッシュエンコーダ(400)およびメッシュデコーダ(500)は、不揮発性(または非一時的)コンピュータ可読記憶媒体に記憶された命令を含むソフトウェアまたはファームウェアとして実装することができる。命令は、1つまたは複数のプロセッサなどの処理回路によって実行されると、処理回路にメッシュエンコーダ(400)および/またはメッシュデコーダ(500)の機能を行わせる。 In various embodiments, the mesh encoder (400) and mesh decoder (500) described above can be implemented using hardware, software, or a combination thereof. For example, the mesh encoder (400) and mesh decoder (500) can be implemented using processing circuitry, such as one or more integrated circuits (ICs) that operate with or without software, such as application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), and the like. In another example, the mesh encoder (400) and mesh decoder (500) can be implemented as software or firmware that includes instructions stored in a non-volatile (or non-transitory) computer-readable storage medium. The instructions, when executed by a processing circuitry, such as one or more processors, cause the processing circuitry to perform the functions of the mesh encoder (400) and/or mesh decoder (500).
図4のパッチ生成406に戻って、3Dメッシュの頂点およびサンプリングされた3D点を2D UV空間にマッピングするためのいくつかの例示的な実装形態では、3Dメッシュは、パッチ(代替的にパーティションまたは部分とも呼ばれる)に分割されうる。上述されたように、パッチは、3Dメッシュにおいてオーバーラップする場合もオーバーラップしない場合もある。各パッチは、分離されて、2D UV空間にマッピングされうる。 Returning to patch generation 406 of FIG. 4, in some example implementations for mapping vertices and sampled 3D points of a 3D mesh to 2D UV space, the 3D mesh may be divided into patches (alternatively referred to as partitions or portions). As described above, the patches may or may not overlap in the 3D mesh. Each patch may be separated and mapped to 2D UV space.
いくつかの例示的な実装形態では、オーバーラップしないパッチが生成されうる。そのようなパッチは、3Dメッシュのチャートと呼ばれる場合がある。上述されたように、いくつかの例示的な実装形態では、図4のパッチ生成モジュール(406)は、3Dメッシュを、滑らかな境界を有する最小数のパッチに分解し、その一方で再構成誤差も最小限に抑えることを目的としうる。 In some example implementations, non-overlapping patches may be generated. Such patches may be referred to as charts of the 3D mesh. As mentioned above, in some example implementations, the patch generation module (406) of FIG. 4 may aim to decompose the 3D mesh into a minimum number of patches with smooth boundaries while also minimizing the reconstruction error.
例えば、3Dシーンを表すメッシュは、複数の3Dオブジェクトを含む場合がある。各3Dオブジェクトは、1つまたは複数の表面によって記述されうる。各3Dオブジェクトは、異なる表面パッチにさらに分割されてもよい。例えば、メッシュ内の人間のキャラクタの3Dモデルは、頭部、胴体、腕、および脚の各部分に分解されうる。よって、3Dシーンは、3Dメッシュのチャートを各々形成する表面または表面の部分に分解されうる。メッシュ全体のUV空間へのマッピングは、メッシュの複数のチャートのUV空間へのマッピングに分解されうる。 For example, a mesh representing a 3D scene may contain multiple 3D objects. Each 3D object may be described by one or more surfaces. Each 3D object may be further divided into different surface patches. For example, a 3D model of a human character in a mesh may be decomposed into head, torso, arm, and leg portions. Thus, the 3D scene may be decomposed into surfaces or portions of surfaces that each form a chart of the 3D mesh. The mapping of the entire mesh into UV space may be decomposed into mappings of multiple charts of the mesh into UV space.
図4のパッチパッキング408にさらに戻って、いくつかの例示的な実装形態では、3Dメッシュの異なるチャートがUV空間内の領域(または2Dパッチ)にマッピングされうる。各2D領域またはパッチは、例えば、2D空間内の平面に対する深度場(例えば、表面上のより深い3D点が対応する2Dマップの中心からさらに離れるように表面を平坦化すること)によって記述されうる。いくつかの例示的な実装形態では、図8の例に示されるように、3Dメッシュの様々なチャートまたはパッチに対応する2D領域またはパッチは、オーバーラップしない場合もある。図8では、3Dメッシュ802は、例えば、チャート804、806、808、および809を含む非オーバーラップチャート(部分またはパーティション)に分割されてもよく、これらはそれぞれ、2D UV空間内の2Dマップ820の非オーバーラップ2D領域またはパッチ824、826、828、および829にマッピングされうる。2Dマップ内の領域824、826、828および829の各々において、ピクセルの集まりが、3Dメッシュの対応するチャート内の頂点またはサンプリングされた3D表面点にマッピングされうる。これらの各領域内の残りのピクセルは、マッピングされない(または占有されない)場合がある。
Returning further to patch packing 408 in FIG. 4, in some exemplary implementations, different charts of a 3D mesh may be mapped to regions (or 2D patches) in UV space. Each 2D region or patch may be described, for example, by a depth field relative to a plane in the 2D space (e.g., flattening the surface so that deeper 3D points on the surface are further away from the center of the corresponding 2D map). In some exemplary implementations, the 2D regions or patches corresponding to the various charts or patches of the 3D mesh may not overlap, as shown in the example of FIG. 8. In FIG. 8, the
いくつかの他の例示的な実装形態では、メッシュの異なるチャートは、オーバーラップしないように2D UVの領域にマッピングされなくてもよい。言い換えれば、3Dメッシュからの異なるチャートは、2Dマップ内に占有点のオーバーラップがない限り、図4のパッチパッキング機能408による3Dから2Dへのマッピング後に2D UV空間内でオーバーラップしてもよい。一例が図9に示されている。図9は、図8と同一のチャートを有する3Dメッシュ802を示しているが、ただし、チャート804および809は、それぞれ、2D UV空間内の2Dマップ820の別々の非オーバーラップ領域824および829にマッピングされているが、3Dメッシュのチャート806および808は、オーバーラップする2Dマップ820の領域828および926にマッピングされている。そのような実装形態は、上記のように、よりコンパクトな2Dマップを達成するのに役立ちうる。
In some other example implementations, different charts of a mesh may not be mapped to regions of the 2D UV such that they do not overlap. In other words, different charts from a 3D mesh may overlap in the 2D UV space after 3D to 2D mapping by the patch packing function 408 of FIG. 4, as long as there is no overlap of occupied points in the 2D map. An example is shown in FIG. 9. FIG. 9 shows a
メッシュの3Dチャートの2Dマップへのそのようなオーバーラップパッキングが、図11にさらに示されている。具体的には、図10に示されるように、3Dメッシュの1つまたは複数のチャートをすでに含んでいる2D占有マップが1002として示されている。3Dメッシュの追加のチャートが、全体3Dマップ1002にパッキングされることになる、2×4のサブ2Dマップ1004にマッピングされうる。サブ2Dマップ1004の1002へのパッキングは、1002にクリーンな(またはすべて0の)2×4領域を必要としない場合がある。代わりに、サブ2Dマップ1004は、その領域が2×4のサブ2Dマップ1004とのオーバーラップ「1」を有さない限り、1002の2×4領域にパッキングすることができる。図10の例では、1006および1008として示されている、2D占有マップ1002内の2つの2×4領域は、(2進値「1」で)すでに占有されている領域1006および1008の各々における位置が、サブ2Dマップ1004内の占有された位置(2進値「1」を有する位置)とオーバーラップしないので、サブ2Dマップ1004をパッキングするために使用されうる。領域1006および1008のうちの一方が、サブ2Dマップ1004をパッキングするために選択されうる。例えば、領域1006がパッキングのために選択されてもよい。そのようなパッキング後の結合された2D占有マップが1010として示されている。図10の例に示されるような領域オーバーラップを可能にするそのようなパッキングは、よりコンパクトな2Dマップをもたらす。
Such overlap packing of 3D charts of a mesh into a 2D map is further illustrated in FIG. 11. Specifically, as illustrated in FIG. 10, a 2D occupancy map that already contains one or more charts of a 3D mesh is illustrated as 1002. Additional charts of the 3D mesh may be mapped into 2×4
3Dメッシュまたは点群のパッチまたはチャートの2Dマップまたは2D画像への効率的かつファクトパッキングについて、例示的な実装形態が以下でさらに詳細に説明される。これらの実装形態は、図4のメッシュエンコーダ400のパッチパッキング機能408に適用されうる。簡単にするために、以下の開示は、図4のメッシュエンコーダ400のパッチ生成機能406によって生成された3Dメッシュのチャートを2D占有マップまたは画像にパッキングする文脈で説明される。そのようなパッキングは、ジオメトリマップ/画像、深度2D画像、テクスチャマップ/画像などを含む他の2Dマップに適用可能であることに留意されたい。これらの様々な例示的な実装形態はメッシュの各々に1つのフレームのみがあるか、またはメッシュコンテンツが経時的に変化しない、静的3Dメッシュに適用される。さらに、これらの例示的な実装形態は、動的3Dメッシュまたは3Dメッシュのシーケンスのメッシュフレームにも適用可能である。 Exemplary implementations are described in further detail below for efficient and factual packing of patches or charts of a 3D mesh or point cloud into a 2D map or image. These implementations may be applied to the patch packing function 408 of the mesh encoder 400 of FIG. 4. For simplicity, the following disclosure is described in the context of packing charts of a 3D mesh generated by the patch generation function 406 of the mesh encoder 400 of FIG. 4 into a 2D occupancy map or image. It should be noted that such packing is applicable to other 2D maps, including geometry maps/images, depth 2D images, texture maps/images, etc. These various exemplary implementations apply to static 3D meshes, where there is only one frame for each of the meshes, or where the mesh content does not change over time. Additionally, these exemplary implementations are also applicable to dynamic 3D meshes or mesh frames of a sequence of 3D meshes.
図11は、3Dメッシュフレームのチャートに対応する占有マップ1102を示している。チャートは、例えば、3Dメッシュフレームの一部分に対応しうる。チャートは、図4のメッシュエンコーダ400のパッチ生成モジュール406によって生成された複数のチャートの中にあってもよい。占有マップ1102は、マップ内のどのピクセルが占有されており、よって3Dメッシュ内の頂点またはサンプリングされた表面点に対応するかを指示するバイナリマップでありうる。例えば、占有マップ1102内の2進値は「0」または「1」であってもよく、値「1」は占有を指示するために使用されてもよく、値「0」は非占有を指示するために使用されてもよい。占有マップの視覚的ガイドが1104として示されており、マップのその領域が黒で占有されていることを指示している。
11 shows an
いくつかの例示的な実装形態では、図4のメッシュエンコーダ400のパッチ生成モジュール406によって提供される、入力された3Dメッシュフレームの複数のチャートの各々の占有マップは、図11の特定の占有マップ1102と同様に生成されうる。
In some example implementations, the occupancy map for each of the multiple charts of an input 3D mesh frame provided by the patch generation module 406 of the mesh encoder 400 of FIG. 4 may be generated similarly to the
いくつかの例示的な実装形態では、占有マップを任意の予め定義されるか、または構成された領域まで拡大するために、ゼロがエッジに沿ってパディングされうる。図4の例示的なパディングされた占有マップ1106では、占有マップ1102の上、下、左、および右に、それぞれ、3行、1行、4列、および3列のゼロがパディングされており、結果として、占有マップが拡大されている。図11のこれら2つの占有マップ1102および1106は、3Dメッシュの例示的な投影チャートについての同じ占有情報を表している。いくつかの実際的な実施態様では、図4のメッシュエンコーダ400のパッチ生成モジュール406は、チャートごとに最小サイズの占有マップを生成するように構成されうる。必要に応じた、拡大占有マップへの拡張は簡単である。
In some example implementations, zeros may be padded along the edges to expand the occupancy map to any predefined or configured region. In the example padded
パッキングのために、本発明者らは投影画像の占有マップを作成し、(投影画像と同じ画像サイズを有する)占有マップのピクセル値が0に初期設定される。投影画像は、すべての投影チャートをホストする。投影チャートが投影画像にパッキングされると、投影画像の占有マップが更新され、投影チャート内の占有ピクセルに対応するピクセル値が1に更新される。 For packing, we create an occupancy map of the projected image, and the pixel values of the occupancy map (which has the same image size as the projected image) are initialized to 0. The projected image hosts all the projected charts. Once the projected charts are packed into the projected image, the occupancy map of the projected image is updated, and the pixel values corresponding to the occupied pixels in the projected charts are updated to 1.
次いで、上述されたような3Dメッシュの複数のチャートの占有マップは、全体占有マップにパッキングされうる。上述されたように、よりコンパクトなパッキングのために、様々なチャートの占有マップは、図10に例示され、上記で説明されているように、チャートの占有マップの占有ピクセルが、3Dメッシュフレームの他のチャートの占有マップの占有ピクセルに対応する全体占有マップのピクセル上に投影されない限り、全体占有マップの一部の領域とオーバーラップすることが許容されうる。 The occupancy maps of multiple charts of the 3D mesh as described above may then be packed into a global occupancy map. As described above, for a more compact packing, the occupancy maps of the various charts may be allowed to overlap some areas of the global occupancy map, as long as the occupied pixels of the occupancy map of a chart are not projected onto pixels of the global occupancy map that correspond to the occupied pixels of the occupancy map of other charts of the 3D mesh frame, as illustrated in FIG. 10 and described above.
繰り返すと、図10に示されるように、すでに3Dメッシュの1つまたは複数のチャートを含んでいる2D占有マップが1002として示されている。3Dメッシュの追加のチャートが、全体3Dマップ1002にパッキングされることになる、2×4のサブ2Dマップ1004にマッピングされうる。サブ2Dマップ1004の1002へのパッキングは、1002にクリーンな(またはすべて0の)2×4領域を必要としない場合がある。代わりに、サブ2Dマップ1004は、その領域が2×4のサブ2Dマップ1004とのオーバーラップ「1」を有さない限り、1002の2×4領域にパッキングすることができる。図10の例では、1006および1008として示されている、2D占有マップ1002内の2つの2×4領域は、(2進値「1」で)すでに占有されている領域1006および1008の各々における位置が、サブ2Dマップ1004内の占有された位置(2進値「1」を有する位置)とオーバーラップしないので、サブ2Dマップ1004をパッキングするために使用されうる。領域1006および1008のうちの一方が、サブ2Dマップ1004をパッキングするために選択されうる。例えば、領域1006がパッキングのために選択されてもよい。そのようなパッキング後の結合された2D占有マップが1010として示されている。図10の例に示されるような領域オーバーラップを可能にするそのようなパッキングは、よりコンパクトな2Dマップをもたらす。
10, a 2D occupancy map that already contains one or more charts of a 3D mesh is shown as 1002. Additional charts of the 3D mesh may be mapped into 2x4
3Dメッシュフレームの対応するチャートのサブ2Dマップ1004をパッキングするために、2D占有マップ1002内の候補パッキング位置または候補パッキング領域1006および1008の識別は、様々なやり方で行われうる。そのような識別のための基準は、サブ2Dマップ1004内の2進値「1」を有する位置に対応する候補領域内のピクセルが「1」であってはならないことでありうる。言い換えれば、投影チャートのサブ2D占有マップ1004と全体2D占有マップ1002内の候補領域との間の要素ごとの積の合計がゼロでなければならない。これにより、全体占有マップ1002内のすべてのパッチと、パッキングされるべき投影チャートのサブ2D占有マップ1004との要素ごとの積の合計をチェックするための単純なオーバーラップなしチェックアルゴリズムが行われうる。合計が0である場合、サブ2D占有マップ1004をオーバーラップなしでその位置にパッキングすることができ、そうではなく、合計が0より大きい場合、すなわち、あるピクセルについて両方の占有マップが占有されている場合には、その位置にパッキングされるとオーバーラップが発生することになる。
Identification of candidate packing positions or
そのような候補パッキング領域を識別するためのいくつかの一般的な例示的な実装形態では、いくつかの位置で合計が0になるまで、投影チャートの占有マップと移動窓によってフィルタリングされた全体マップのパッチとの間の要素ごとの積の合計を反復的に計算しうる。以下の開示は、画像フィルタリングを使用して異なる位置における合計を計算する例示的な効率的方法をさらに説明する。 Some typical example implementations for identifying such candidate packing regions may iteratively compute the sum of element-wise products between the occupancy map of the projected chart and a patch of the global map filtered by a moving window until the sum is zero at some locations. The disclosure below further describes example efficient methods for computing the sum at different locations using image filtering.
いくつかの例示的な実装形態では、そのような画像フィルタリングフィルタプロセスは、2D行列と2Dカーネルとの相関を計算するように設計されうる。2D行列Mat(x,y)、およびサイズM*Nの2Dカーネルker(x’,y’)が与えられた場合、出力相関行列Out(x,y)は、以下のように定義されうる。 In some example implementations, such an image filtering filter process may be designed to compute the correlation between a 2D matrix and a 2D kernel. Given a 2D matrix Mat(x,y) and a 2D kernel ker(x',y') of size M*N, the output correlation matrix Out(x,y) may be defined as follows:
よって、投影画像(全体占有画像)の占有マップを2D行列Mat(x,y)として設定し、投影チャートの占有マップを2Dカーネルのker(x’,y’)として設定することによって、Out(0,0)は、投影チャートの占有マップと位置(0,0)にある投影画像のうちの1つとの間の要素ごとの積の合計を与え、Out(0,1)は、投影チャートの占有マップと位置(0,1)にある投影画像のうちの1つとの間の要素ごとの積の合計を与え、以下同様である。一方、画像フィルタリングは、例えば、高速フーリエ変換(FFT)を使用することによって非常に効率的に計算することができる。出力相関行列Out(x,y)を導出した後、すべての可能な位置(全体2D占有画像内のピクセル位置)における要素ごとの積の合計が得られる。画像フィルタリングに基づく上記の計算は、本質的に畳み込み演算であり、GPUによって提供される並列処理などのハードウェアサポートを利用して効率的に行われうる。 Thus, by setting the occupancy map of the projection image (total occupancy image) as a 2D matrix Mat(x,y) and the occupancy map of the projection chart as the 2D kernel ker(x',y'), Out(0,0) gives the element-wise sum of products between the occupancy map of the projection chart and one of the projection images at position (0,0), Out(0,1) gives the element-wise sum of products between the occupancy map of the projection chart and one of the projection images at position (0,1), and so on. Image filtering, on the other hand, can be calculated very efficiently, for example by using a Fast Fourier Transform (FFT). After deriving the output correlation matrix Out(x,y), the element-wise sum of products at all possible positions (pixel positions in the total 2D occupancy image) is obtained. The above calculations based on image filtering are essentially convolution operations and can be performed efficiently by utilizing hardware support such as parallel processing provided by a GPU.
特に、空間畳み込みは空間周波数領域における乗算に対応するので、カーネル(チャートの2Dマップ)と全体2Dマップとの間の上記畳み込み計算は、周波数領域への高速フーリエ変換によって行われ、逆高速フーリエ変換によって流される周波数領域の乗算を行うことができる。 In particular, since spatial convolution corresponds to multiplication in the spatial frequency domain, the above convolution calculation between the kernel (the 2D map of the chart) and the overall 2D map can be done by Fast Fourier Transform to the frequency domain, followed by frequency domain multiplication cascaded by an Inverse Fast Fourier Transform.
よって、メッシュエンコーダ400のパッチ生成モジュール406によって生成された3Dメッシュフレームの複数のチャートから開始して、ブランクの全体2D占有マップは、以下の例示的な手順に従ってチャートによって反復的にパッキングされうる。 Thus, starting from multiple charts of a 3D mesh frame generated by the patch generation module 406 of the mesh encoder 400, the blank global 2D occupancy map can be iteratively packed by the charts according to the following exemplary procedure:
投影画像の初期全体占有マップを生成し、全体占有マップのピクセル値はすべての「0」の2進値に初期設定される。 An initial global occupancy map of the projection image is generated, and the pixel values of the global occupancy map are initialized to a binary value of all "0".
投影チャートCを取り出し、投影チャートのサブ占有マップを生成する。 Take projection chart C and generate a sub-occupancy map of the projection chart.
画像フィルタリングを行って、投影画像の全体占有マップと投影チャート(カーネル)の占有マップとの相関または畳み込みを計算して、出力相関または畳み込み行列を生成する。 Image filtering is performed to calculate the correlation or convolution between the global occupancy map of the projected image and the occupancy map of the projected chart (kernel) to generate an output correlation or convolution matrix.
出力相関行列から、値が0である1つの行列要素を選択する。 Select one matrix element from the output correlation matrix that has a value of 0.
出力相関行列内の選択された行列要素の位置に従って、投影チャートCをパッキングするための全体占有画像内の位置を決定する。 Determine a location in the total occupancy image for packing the projected chart C according to the location of the selected matrix element in the output correlation matrix.
投影チャートCを上記で決定された全体占有マップ内の位置にパッキングすることによって、全体占有マップを投影画像で更新する。 The global occupancy map is updated with the projected image by packing the projected chart C into the position within the global occupancy map determined above.
上記のステップを繰り返してすべてのチャートを次々にパッキングして、全体占有マップを繰り返し更新する。 Repeat the above steps to pack all charts one after another and iteratively update the global occupancy map.
パッキング位置を選択するステップが上記で必要とされうるのは、出力相関行列では、値が0である複数の行列要素が存在しうることが非常に多いからである。複数の候補位置からのパッキング位置の選択は、様々なやり方で行われうる。 The step of selecting a packing location may be required above because in the output correlation matrix, there may very often be multiple matrix elements with a value of zero. The selection of a packing location from multiple candidate locations may be done in various ways.
いくつかの例示的な実装形態では、すべてのゼロ値の要素の中で2D寸法のうちの1つで最小のピクセル座標を有する出力相関行列内のゼロ値の要素が選択されうる。例えば、幅方向の最小のピクセル座標を有するゼロ値の要素が選択されてもよい。同様に、高さ方向の最小のピクセル座標を有するゼロ値の要素が選択されてもよい。 In some example implementations, the zero-valued element in the output correlation matrix that has the smallest pixel coordinate in one of the 2D dimensions among all the zero-valued elements may be selected. For example, the zero-valued element that has the smallest pixel coordinate in the width direction may be selected. Similarly, the zero-valued element that has the smallest pixel coordinate in the height direction may be selected.
いくつかの他の例示的な実装形態では、すべてのゼロ値の要素の中で2D寸法の2つでピクセル座標の最小和を有する出力相関行列内のゼロ値の要素が選択されうる。具体的には、最小の幅プラス高さのピクセル値を有するゼロ値の要素が、現在のチャートをパッキングするための全体占有マップにおける位置を決定するために選択されうる。 In some other example implementations, the zero-valued element in the output correlation matrix that has the minimum sum of pixel coordinates in two of the 2D dimensions among all zero-valued elements may be selected. Specifically, the zero-valued element with the minimum width-plus-height pixel value may be selected to determine a location in the global occupancy map for packing the current chart.
いくつかの他の例示的な実装形態では、出力相関行列内のゼロ値の要素は、相関行列内のゼロ値の要素の幅および高さ位置の最適化関数に従って、すべての非ゼロ値の中から選択されうる。そのような最適化関数は、lpノルム関数などの最適化関数を含みうるが、これに限定されない。 In some other example implementations, the zero-valued elements in the output correlation matrix may be selected from among all non-zero values according to an optimization function of the width and height positions of the zero-valued elements in the correlation matrix. Such optimization functions may include, but are not limited to, optimization functions such as the lp- norm function.
いくつかの他の代替的な実装形態では、出力相関行列のゼロ値の要素が、時間的制約に基づいて選択されうる。例えば、投影チャートCが(xp,yp)にある好ましいパッキング位置を有する場合、探索はすべてのゼロ値の要素にわたって行われうる。いくつかの例示的な実装形態では、(xp,yp)がゼロ値の要素である場合には、パッキング位置を決定するために(xp,yp)が選択されうる。(xp,yp)が相関行列内のゼロ値の要素でない場合、例えば、xp、yp、x、およびyの最適化関数に基づいて、相関行列内の(xp,yp)の近傍のゼロ値の要素(x,y)が選択されうる。そのような最適化関数は、例えば、(x-xp)および(y-yp)のlpノルム関数を含みうるが、これに限定されない。例えば、最小のlpノルム(または好ましい位置(xp,yp)までのマンハッタン距離)を有するゼロ値の要素がパッキングのために識別されてもよい。 In some other alternative implementations, the zero-valued elements of the output correlation matrix may be selected based on a time constraint. For example, if the projection chart C has a preferred packing position at ( xp , yp ), a search may be performed through all zero-valued elements. In some exemplary implementations, if ( xp , yp ) is a zero-valued element, then ( xp , yp ) may be selected to determine the packing position. If ( xp , yp ) is not a zero-valued element in the correlation matrix, then a zero-valued element (x, y) in the vicinity of ( xp , yp ) in the correlation matrix may be selected based on, for example, an optimization function of xp, yp , x, and y . Such an optimization function may include, for example, but is not limited to, an lp - norm function of (x- xp ) and (y- yp ). For example, the zero-valued element with the smallest lp norm (or Manhattan distance to the preferred location ( xp , yp )) may be identified for packing.
いくつかの他の実装形態では、高速かつコンパクトなチャートパッキングのための上記の画像フィルタリングベースの方法の間、プロセスを完了して、チャートをパッキングするための全体投影画像内のすべて候補可能位置を導出することが必要ではない場合もある。例えば、(出力相関行列要素が0である)最初のゼロ値の位置が識別されて利用可能になると、プロセスを終了することができ、投影チャートをその最も早く識別された位置に割り当てることができる。 In some other implementations, during the above image filtering based method for fast and compact chart packing, it may not be necessary to complete the process to derive all possible candidate locations in the global projected image for packing the chart. For example, once the first zero-valued location (where the output correlation matrix element is 0) is identified and available, the process can be terminated and the projected chart can be assigned to its earliest identified location.
図12は、本開示の一実施形態による例示的なプロセス(1200)のフローチャートを示している。プロセス(1200)は、ステップ(S1201)から開始する。ステップ(S1210)において、3Dメッシュフレームに対応する初期2D占有マップが取得される。初期2D占有マップは、0個以上のピクセルであって、0個以上のピクセルが3Dメッシュフレームの少なくとも1つの他の部分にマッピングされていることを指示する第1の予め定義された値を有し、少なくとも1つの他の部分が3Dメッシュフレームの第1の部分とオーバーラップしていない、0個以上のピクセルと、残りのピクセルであって、残りのピクセルが3Dメッシュフレームにマッピングされていないことを指示する第2の予め定義された値を有する、残りのピクセルとを含む。ステップ(S1220)において、3Dメッシュフレームの第1の部分に対して2D占有行列が生成され、第1の予め定義された値は占有ピクセルに対応し、第2の予め定義された値は非占有ピクセルに対応する。ステップ(S1230)において、初期2D占有マップと2D占有行列との間の相関行列が計算される。ステップ(S1240)において、相関行列内のゼロ値のターゲット要素が識別される。ステップ(S1250)において、2D占有行列と同じサイズを有する初期2D占有マップ内のパッチ内の第2の予め定義された値を有するピクセルを、2D占有行列内の対応する要素に置き換えることによって更新された2D占有マップが生成され、パッチは、相関行列内のゼロ値のターゲット要素の位置と一致するパッキング位置にある初期2D占有マップ内に位置している。手順(1200)は(S1299)で停止する。手順(1200)は、3Dメッシュのすべてのチャートまたは部分を2D占有マップにパッキングするまで繰り返されうる。 FIG. 12 shows a flow chart of an exemplary process (1200) according to an embodiment of the present disclosure. The process (1200) starts with step (S1201). In step (S1210), an initial 2D occupancy map corresponding to a 3D mesh frame is obtained. The initial 2D occupancy map includes zero or more pixels having a first predefined value indicating that the zero or more pixels are mapped to at least one other portion of the 3D mesh frame, where the at least one other portion does not overlap with the first portion of the 3D mesh frame, and remaining pixels having a second predefined value indicating that the remaining pixels are not mapped to the 3D mesh frame. In step (S1220), a 2D occupancy matrix is generated for the first portion of the 3D mesh frame, where the first predefined value corresponds to the occupied pixels and the second predefined value corresponds to the unoccupied pixels. In step (S1230), a correlation matrix between the initial 2D occupancy map and the 2D occupancy matrix is calculated. In step (S1240), a zero-valued target element in the correlation matrix is identified. In step (S1250), an updated 2D occupancy map is generated by replacing pixels having a second predefined value in a patch in the initial 2D occupancy map having the same size as the 2D occupancy matrix with a corresponding element in the 2D occupancy matrix, the patch being located in the initial 2D occupancy map in a packing position that coincides with the position of the zero-valued target element in the correlation matrix. The procedure (1200) stops at (S1299). The procedure (1200) may be repeated until all charts or portions of the 3D mesh are packed into the 2D occupancy map.
プロセス(1200)は、適切に適合されることができる。プロセス(1200)の(1つまたは複数の)ステップは、修正および/または省略されることができる。(1つまたは複数の)追加のステップが追加されることができる。任意の適切な実施順序が使用されることができる。 Process (1200) may be adapted as appropriate. Step(s) of process (1200) may be modified and/or omitted. Additional step(s) may be added. Any suitable order of performance may be used.
本開示で開示される技術は、別々に使用されても、任意の順序で組み合わされてもよい。さらに、技術(例えば、方法、実施形態)、エンコーダ、およびデコーダの各々は、処理回路(例えば、1つまたは複数のプロセッサや1つまたは複数の集積回路)によって実装されてもよい。いくつかの例では、1つまたは複数のプロセッサは、非一時的コンピュータ可読媒体に記憶されたプログラムを実行する。 The techniques disclosed in this disclosure may be used separately or combined in any order. Additionally, each of the techniques (e.g., methods, embodiments), encoders, and decoders may be implemented by processing circuitry (e.g., one or more processors or one or more integrated circuits). In some examples, the one or more processors execute a program stored on a non-transitory computer-readable medium.
上述された技術は、コンピュータ可読命令を使用するコンピュータソフトウェアとして実装され、1つまたは複数のコンピュータ可読媒体に物理的に記憶されることができる。例えば、図13は、開示の主題の特定の実施形態を実装するのに適したコンピュータシステム(1300)を示している。 The techniques described above can be implemented as computer software using computer-readable instructions and physically stored on one or more computer-readable media. For example, FIG. 13 illustrates a computer system (1300) suitable for implementing certain embodiments of the disclosed subject matter.
コンピュータソフトウェアは、1つまたは複数のコンピュータ中央処理装置(CPU)、グラフィックスプロセッシングユニット(GPU)などによって直接、または解釈、マイクロコード実行などを介して実行されることができる命令を含むコードを作成するためにアセンブリ、コンパイル、リンクなどのメカニズムを施されうる、任意の適切な機械コードまたはコンピュータ言語を使用してコーディングされることができる。 Computer software can be coded using any suitable machine code or computer language that can be subjected to mechanisms such as assembly, compilation, linking, etc. to create code containing instructions that can be executed directly, or via interpretation, microcode execution, etc., by one or more computer central processing units (CPUs), graphics processing units (GPUs), etc.
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーム機、モノのインターネットデバイスなどを含む様々なタイプのコンピュータまたはコンピュータの構成要素上で実行されることができる。 The instructions can be executed on various types of computers or computer components, including, for example, personal computers, tablet computers, servers, smartphones, gaming consoles, Internet of Things devices, etc.
コンピュータシステム(1300)について図13に示される構成要素は、本質的に例示であり、本開示の実施形態を実装するコンピュータソフトウェアの使用または機能の範囲に関する限定を示唆することを意図されていない。構成要素の構成は、コンピュータシステム(1300)の例示的な実施形態に示される構成要素のいずれか1つまたは組み合わせに関連するいかなる依存性も要件も有すると解釈されるべきではない。 The components illustrated in FIG. 13 for computer system (1300) are exemplary in nature and are not intended to suggest any limitation as to the scope of use or functionality of the computer software implementing the embodiments of the present disclosure. The configuration of components should not be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary embodiment of computer system (1300).
コンピュータシステム(1300)は、特定のヒューマンインターフェース入力デバイスを含んでもよい。そのようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動きなど)、オーディオ入力(声、拍手など)、視覚入力(ジェスチャなど)、嗅覚入力(図示せず)を介した、1人または複数の人間ユーザによる入力に応答してもよい。ヒューマンインターフェースデバイスは、オーディオ(音声、音楽、環境音など)、画像(走査画像、写真画像静止画像カメラから取得など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)など、必ずしも人間による意識的な入力に直接関連しない特定の媒体を取り込むためにも使用されることができる。 The computer system (1300) may include certain human interface input devices. Such human interface input devices may be responsive to input by one or more human users, for example, via tactile input (keystrokes, swipes, data glove movements, etc.), audio input (voice, clapping, etc.), visual input (gestures, etc.), or olfactory input (not shown). Human interface devices may also be used to capture certain media not necessarily directly associated with conscious human input, such as audio (voice, music, ambient sounds, etc.), images (scanned images, photographic images still images captured from a camera, etc.), and video (two-dimensional video, three-dimensional video including stereoscopic video, etc.).
入力ヒューマンインターフェースデバイスは、キーボード(1301)、マウス(1302)、トラックパッド(1303)、タッチスクリーン(1310)、データグローブ(図示せず)、ジョイスティック(1305)、マイクロフォン(1306)、スキャナ(1307)、カメラ(1308)のうちの1つまたは複数(それぞれ1つのみ図示)を含んでもよい。 The input human interface devices may include one or more (only one of each is shown) of a keyboard (1301), a mouse (1302), a trackpad (1303), a touch screen (1310), a data glove (not shown), a joystick (1305), a microphone (1306), a scanner (1307), and a camera (1308).
コンピュータシステム(1300)はまた、特定のヒューマンインターフェース出力デバイスを含んでもよい。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および匂い/味によって1人または複数の人間ユーザの感覚を刺激してもよい。そのようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(1310)、データグローブ(図示せず)、またはジョイスティック(1305)による触覚フィードバック、ただし、入力デバイスとして機能しない触覚フィードバックデバイスもありうる)、オーディオ出力デバイス(スピーカ(1309)、ヘッドホン(図示せず)など)、視覚出力デバイス(例えば、各々タッチスクリーン入力能力を有するかまたは有さず、各々触覚フィードバック能力を有するかまたは有さず、その一部は2次元視覚出力または立体出力などの手段による3次元を超える出力を出力することが可能でありうる、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(1310)、仮想現実メガネ(図示せず)、ホログラフィックディスプレイおよびスモークタンク(図示せず)など)ならびに、プリンタ(図示せず)を含んでもよい。 The computer system (1300) may also include certain human interface output devices. Such human interface output devices may stimulate one or more of the human user's senses, for example, by haptic output, sound, light, and smell/taste. Such human interface output devices may include haptic output devices (e.g., haptic feedback via a touch screen (1310), data gloves (not shown), or joystick (1305), although there may also be haptic feedback devices that do not function as input devices), audio output devices (speakers (1309), headphones (not shown), etc.), visual output devices (e.g., screens (1310), including CRT screens, LCD screens, plasma screens, OLED screens, virtual reality glasses (not shown), holographic displays, and smoke tanks (not shown), each with or without touch screen input capability, each with or without haptic feedback capability, some of which may be capable of outputting output in more than three dimensions by means of two-dimensional visual output or stereoscopic output, etc.), and printers (not shown).
コンピュータシステム(1300)はまた、CD/DVDまたは同様の媒体(1321)を有するCD/DVD ROM/RW(1320)を含む光媒体、サムドライブ(1322)、リムーバブルハードドライブまたはソリッドステートドライブ(1323)、テープやフロッピーディスク(図示せず)などのレガシー磁気媒体、セキュリティドングル(図示せず)などの専用ROM/ASIC/PLDベースのデバイスなどの人間がアクセス可能な記憶デバイスおよびそれらの関連媒体も含むことができる。 The computer system (1300) may also include human-accessible storage devices and their associated media, such as optical media including CD/DVD ROM/RW (1320) with CD/DVD or similar media (1321), thumb drives (1322), removable hard drives or solid state drives (1323), legacy magnetic media such as tape or floppy disks (not shown), and dedicated ROM/ASIC/PLD-based devices such as security dongles (not shown).
当業者はまた、本開示の主題と関連して使用される「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、または他の一時的な信号を包含しないことも理解するはずである。 Those skilled in the art will also understand that the term "computer-readable medium" as used in connection with the subject matter of this disclosure does not encompass transmission media, carrier waves, or other transitory signals.
コンピュータシステム(1300)はまた、1つまたは複数の通信ネットワーク(1355)へのインターフェース(1354)も含むことができる。ネットワークは、例えば、無線、有線、光とすることができる。ネットワークはさらに、ローカル、ワイドエリア、メトロポリタン、車両用および産業用、リアルタイム、遅延耐性などとすることができる。ネットワークの例は、イーサネットなどのローカルエリアネットワーク、無線LAN、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルテレビ、衛星テレビおよび地上波テレビ放送を含むテレビの有線または無線広域デジタルネットワーク、CANBusを含む車両用および産業用などを含む。特定のネットワークは、一般に、特定の汎用データポートまたは周辺バス(1349)(例えば、コンピュータシステム(1300)のUSBポートなど)に接続された外部ネットワークインターフェースアダプタを必要とし、他のネットワークは、一般に、以下で説明されるように、システムバスへの接続によってコンピュータシステム(1300)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェースや、スマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(1300)は他のエンティティと通信することができる。そのような通信は、単方向、受信のみ(例えば、テレビ放送)、単方向、送信のみ(例えば、特定のCANbusデバイスへのCANbus)、または、例えば、ローカルもしくはワイドエリアデジタルネットワークを使用する他のコンピュータシステムへの双方向とすることができる。特定のプロトコルおよびプロトコルスタックが、上述されたようにそれらのネットワークおよびネットワークインターフェースの各々で使用されることができる。 The computer system (1300) may also include an interface (1354) to one or more communication networks (1355). The networks may be, for example, wireless, wired, optical. The networks may further be local, wide area, metropolitan, vehicular and industrial, real-time, delay tolerant, etc. Examples of networks include local area networks such as Ethernet, wireless LANs, cellular networks including GSM, 3G, 4G, 5G, LTE, etc., television wired or wireless wide area digital networks including cable television, satellite television and terrestrial television broadcast, vehicular and industrial including CANBus, etc. Certain networks generally require an external network interface adapter connected to a particular general-purpose data port or peripheral bus (1349) (e.g., a USB port of the computer system (1300)), while other networks are generally integrated into the core of the computer system (1300) by connection to a system bus, as described below (e.g., an Ethernet interface to a PC computer system or a cellular network interface to a smartphone computer system). Using any of these networks, computer system (1300) can communicate with other entities. Such communications can be unidirectional, receive only (e.g., television broadcast), unidirectional, transmit only (e.g., CANbus to a particular CANbus device), or bidirectional, e.g., to other computer systems using local or wide area digital networks. Specific protocols and protocol stacks can be used in each of these networks and network interfaces, as described above.
前述のヒューマンインターフェースデバイス、人間がアクセス可能な記憶デバイス、およびネットワークインターフェースは、コンピュータシステム(1300)のコア(1340)に取り付けられることができる。 The aforementioned human interface devices, human accessible storage devices, and network interfaces can be attached to the core (1340) of the computer system (1300).
コア(1340)は、1つまたは複数の中央処理装置(CPU)(1341)、グラフィックスプロセッシングユニット(GPU)(1342)、フィールドプログラマブルゲートエリア(FPGA)(1343)の形式の専用プログラマブル処理ユニット、特定のタスク用のハードウェアアクセラレータ(1344)、グラフィックスアダプタ(1350)などを含むことができる。これらのデバイスは、読み出し専用メモリ(ROM)(1345)、ランダムアクセスメモリ(1346)、内部のユーザがアクセスできないハードドライブ、SSDなどの内部大容量ストレージ(1347)と共に、システムバス(1348)を介して接続されうる。いくつかのコンピュータシステムでは、システムバス(1348)は、追加のCPU、GPUなどによる拡張を可能にするために1つまたは複数の物理プラグの形式でアクセス可能とすることができる。周辺デバイスは、コアのシステムバス(1348)に直接取り付けられることも、または周辺バス(1349)を介して取り付けられることもできる。一例では、スクリーン(1310)は、グラフィックスアダプタ(1350)に接続されることができる。周辺バスのアーキテクチャは、PCI、USBなどを含む。 The cores (1340) may include one or more central processing units (CPUs) (1341), graphics processing units (GPUs) (1342), dedicated programmable processing units in the form of field programmable gate areas (FPGAs) (1343), hardware accelerators for specific tasks (1344), graphics adapters (1350), etc. These devices may be connected via a system bus (1348), along with read-only memory (ROM) (1345), random access memory (1346), internal mass storage such as internal non-user accessible hard drives, SSDs, etc. (1347). In some computer systems, the system bus (1348) may be accessible in the form of one or more physical plugs to allow expansion with additional CPUs, GPUs, etc. Peripheral devices may be attached directly to the core's system bus (1348) or via a peripheral bus (1349). In one example, a screen (1310) may be connected to the graphics adapter (1350). Peripheral bus architectures include PCI, USB, etc.
CPU(1341)、GPU(1342)、FPGA(1343)、およびアクセラレータ(1344)は、組み合わされて、前述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM(1345)またはRAM(1346)に記憶されることができる。RAM(1346)には暫定的なデータも記憶されることができるが、永続データは、例えば、内部大容量ストレージ(1347)に記憶されることができる。メモリデバイスのいずれかへの高速記憶および取り出しは、1つまたは複数のCPU(1341)、GPU(1342)、大容量ストレージ(1347)、ROM(1345)、RAM(1346)などと密接に関連付けられることができるキャッシュメモリの使用によって可能とされることができる。 The CPU (1341), GPU (1342), FPGA (1343), and accelerator (1344) may combine to execute certain instructions that may constitute the aforementioned computer code. That computer code may be stored in ROM (1345) or RAM (1346). Persistent data may be stored, for example, in internal mass storage (1347), while temporary data may also be stored in RAM (1346). Rapid storage and retrieval in any of the memory devices may be made possible by the use of cache memories that may be closely associated with one or more of the CPU (1341), GPU (1342), mass storage (1347), ROM (1345), RAM (1346), etc.
コンピュータ可読媒体は、様々なコンピュータ実装動作を行うためのコンピュータコードを有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構成されたものとすることもでき、またはコンピュータソフトウェア技術の当業者に周知の利用可能な種類のものとすることもできる。 The computer-readable medium can bear computer code for performing various computer-implemented operations. The medium and computer code can be those specially designed and constructed for the purposes of the present disclosure, or they can be of the type well known and available to those skilled in the computer software arts.
限定としてではなく例として、アーキテクチャを有するコンピュータシステム(1300)、具体的にはコア(1340)は、(CPU、GPU、FPGA、アクセラレータなどを含む)(1つまたは複数の)プロセッサが、1つまたは複数の有形のコンピュータ可読媒体において具体化されたソフトウェアを実行した結果として機能を提供することができる。そのようなコンピュータ可読媒体は、上記で紹介されたようなユーザアクセス可能な大容量ストレージ、ならびにコア内部の大容量ストレージ(1347)やROM(1345)などの非一時的な性質のものであるコア(1340)の特定のストレージと関連付けられた媒体とすることができる。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに記憶され、コア(1340)によって実行されることができる。コンピュータ可読媒体は、特定の必要性に応じて、1つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア(1340)、具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM(1346)に記憶されたデータ構造を定義すること、およびソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を修正することを含む、本明細書で説明された特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えて、または代替的に、コンピュータシステムは、ソフトウェアの代わりに、またはソフトウェアと共に本明細書で説明された特定のプロセスまたは特定のプロセスの特定の部分を実行するように動作することができる回路(例えば、アクセラレータ(1344))に配線されるかまたは他の方法で具体化されたロジックの結果として機能を提供することもできる。ソフトウェアへの言及は、適切な場合には、ロジックを包含することができ、逆もまた同様である。コンピュータ可読媒体への言及は、適切な場合には、実行のためのソフトウェアを記憶する回路(集積回路(IC)など)、実行のためのロジックを具体化する回路、またはその両方を包含することができる。本開示は、ハードウェアとソフトウェアの任意の適切な組み合わせを包含する。 By way of example and not limitation, a computer system (1300) having an architecture, and in particular a core (1340), may provide functionality as a result of a processor (or processors) (including CPUs, GPUs, FPGAs, accelerators, etc.) executing software embodied in one or more tangible computer-readable media. Such computer-readable media may be user-accessible mass storage as introduced above, as well as media associated with specific storage of the core (1340) that is non-transitory in nature, such as mass storage (1347) internal to the core or ROM (1345). Software implementing various embodiments of the present disclosure may be stored in such devices and executed by the core (1340). The computer-readable media may include one or more memory devices or chips, depending on the particular need. The software can cause the core (1340), and in particular the processors therein (including CPUs, GPUs, FPGAs, etc.), to execute certain processes or certain parts of certain processes described herein, including defining data structures stored in RAM (1346) and modifying such data structures according to processes defined by the software. Additionally or alternatively, the computer system can provide functionality as a result of logic hardwired or otherwise embodied in circuitry (e.g., accelerators (1344)) that can operate to execute certain processes or certain parts of certain processes described herein in place of or in conjunction with software. References to software can encompass logic, and vice versa, where appropriate. References to computer-readable media can encompass circuitry (such as integrated circuits (ICs)) that stores software for execution, circuitry that embodies logic for execution, or both, where appropriate. The present disclosure encompasses any appropriate combination of hardware and software.
本開示はいくつかの例示的な実施形態を説明しているが、変更形態、置換形態、および様々な代替の均等物が存在し、それらは本開示の範囲内に入る。よって、当業者は、本明細書に明示的に図示または記載されていないが、本開示の原理を具体化する、よって本開示の趣旨および範囲内にある多数のシステムおよび方法を考案することができることが理解されよう。 While this disclosure describes several exemplary embodiments, there exist modifications, substitutions, and various alternative equivalents that fall within the scope of this disclosure. Thus, it will be appreciated that those skilled in the art can devise numerous systems and methods that, although not explicitly shown or described herein, embody the principles of this disclosure and are thus within the spirit and scope of this disclosure.
105 3Dセンサ、100 通信システム、110 端末デバイス、120 端末デバイス、200 ストリーミングシステム、201 3Dメッシュ生成器または記憶媒体、202 3Dメッシュ、203 エンコーダ、204 圧縮された3Dメッシュ、205 ストリーミングサーバ、206 クライアントサブシステム、207 圧縮された3Dメッシュのコピー、208 クライアントサブシステム、209 圧縮された3Dメッシュのコピー、210 デコーダ、211 再構成された3Dメッシュのストリーム、212 レンダリングデバイス、213 キャプチャまたはストレージサブシステム、301 エンコーダ、302 生の入力3Dメッシュまたは3Dメッシュのシーケンス、303 デコーダ、304 3Dメッシュの2D UV空間へのマッピングのためのマッピングユニット、310 占有マップ、312 ジオメトリマップ、314 属性マップ、316 他の非画像または非マップのデータまたはメタデータ、320 デコーディングされた占有マップ、322 デコーディングされたジオメトリマップ、324 デコーディングされた属性マップ、326 デコーディングされた非マップデータおよびメタデータ、330 3Dメッシュまたは3Dメッシュのシーケンス、400 3Dメッシュエンコーダ、404 パッチ情報モジュール、406 パッチ生成モジュール、408 パッチパッキングモジュール、410 ジオメトリ画像生成モジュール、412 テクスチャ画像生成モジュール、414 占有マップモジュール、416 画像パディングモジュール、418 画像パディングモジュール、420 グループ拡張モジュール、422 ビデオ圧縮モジュール、423 ビデオ圧縮モジュール、424 マルチプレクサ、432 ビデオ圧縮モジュール、434 エントロピー圧縮モジュール、436 平滑化モジュール、438 補助パッチ情報圧縮モジュール、500 メッシュデコーダ、532 デマルチプレクサ、534 ビデオ解凍モジュール、536 ビデオ解凍モジュール、538 占有マップ解凍モジュール、542 補助パッチ情報解凍モジュール、544 ジオメトリ再構成モジュール、546 平滑化モジュール、548 テクスチャ再構成モジュール、552 色平滑化モジュール、610 ビデオデコーダ、620 パーサ、621 シンボル、651 スケーラ/逆変換ユニット、652 イントラピクチャ予測ユニット、653 動き補償予測ユニット、655 アグリゲータ、656 ループフィルタユニット、657 参照ピクチャメモリ、658 現在のピクチャバッファ、703 ビデオエンコーダ、730 ソースコーダ、732 コーディングエンジン、733 ローカルデコーダ、734 参照ピクチャメモリ、735 予測器、745 エントロピーコーダ、750 コントローラ、802 3Dメッシュ、804 チャート、806 チャート、808 チャート、809 チャート、820 2Dマップ、824 2D領域、826 2D領域、828 2D領域、829 2D領域、926 領域、1002 2D占有マップ、1004 サブ2Dマップ、1006 2×4領域、1008 2×4領域、1010 結合された2D占有マップ、1102 占有マップ、1104 占有マップのための視覚的ガイド、1106 パディングされた占有マップ、1200 プロセス、1300 コンピュータシステム、1301 キーボード、1302 マウス、1303 トラックパッド、1305 ジョイスティック、1306 マイクロフォン、1307 スキャナ、1308 カメラ、1309 スピーカ、1310 タッチスクリーン、1320 CD/DVD ROM/RW、1321 CD/DVDまたは同様の媒体、1322 サムドライブ、1323 リムーバブルハードドライブまたはソリッドステートドライブ、1340 コンピュータシステムのコア、1341 中央処理装置(CPU)、1342 グラフィックスプロセッシングユニット(GPU)、1343 フィールドプログラマブルゲートエリア(FPGA)、1344 ハードウェアアクセラレータ、1345 読み出し専用メモリ(ROM)、1346 ランダムアクセスメモリ(RAM)、1347 内部大容量ストレージ、1348 システムバス、1349 周辺バス、1350 グラフィックスアダプタ、1354 ネットワークインターフェース、1355 クラウドコンピューティング環境 105 3D sensor, 100 communication system, 110 terminal device, 120 terminal device, 200 streaming system, 201 3D mesh generator or storage medium, 202 3D mesh, 203 encoder, 204 compressed 3D mesh, 205 streaming server, 206 client subsystem, 207 compressed 3D mesh copy, 208 client subsystem, 209 compressed 3D mesh copy, 210 decoder, 211 stream of reconstructed 3D mesh, 212 rendering device, 213 capture or storage subsystem, 301 encoder, 302 raw input 3D mesh or sequence of 3D meshes, 303 decoder, 304 mapping unit for mapping 3D mesh into 2D UV space, 310 occupancy map, 312 geometry map, 314 attribute map, 316 other non-image or non-map data or metadata, 320 decoded occupancy map, 322 Decoded geometry map, 324 Decoded attribute map, 326 Decoded unmapped data and metadata, 330 3D mesh or sequence of 3D meshes, 400 3D mesh encoder, 404 Patch information module, 406 Patch generation module, 408 Patch packing module, 410 Geometry image generation module, 412 Texture image generation module, 414 Occupancy map module, 416 Image padding module, 418 Image padding module, 420 Group expansion module, 422 Video compression module, 423 Video compression module, 424 Multiplexer, 432 Video compression module, 434 Entropy compression module, 436 Smoothing module, 438 Auxiliary patch information compression module, 500 Mesh decoder, 532 Demultiplexer, 534 Video decompression module, 536 Video decompression module, 538 Occupancy map decompression module, 542 Auxiliary patch information decompression module, 544 Geometry reconstruction module, 546 Smoothing module, 548 Texture reconstruction module, 552 Color smoothing module, 610 Video decoder, 620 Parser, 621 Symbol, 651 Scaler/inverse transform unit, 652 Intra picture prediction unit, 653 Motion compensation prediction unit, 655 Aggregator, 656 Loop filter unit, 657 Reference picture memory, 658 Current picture buffer, 703 Video encoder, 730 Source coder, 732 Coding engine, 733 Local decoder, 734 Reference picture memory, 735 Predictor, 745 Entropy coder, 750 Controller, 802 3D mesh, 804 Chart, 806 Chart, 808 Chart, 809 Chart, 820 2D map, 824 2D region, 826 2D region, 828 2D region, 829 2D region, 926 Region, 1002 2D occupancy map, 1004 sub 2D map, 1006 2x4 region, 1008 2x4 region, 1010 combined 2D occupancy map, 1102 occupancy map, 1104 visual guide for occupancy map, 1106 padded occupancy map, 1200 process, 1300 computer system, 1301 keyboard, 1302 mouse, 1303 trackpad, 1305 joystick, 1306 microphone, 1307 scanner, 1308 camera, 1309 speaker, 1310 touch screen, 1320 CD/DVD ROM/RW, 1321 CD/DVD or similar medium, 1322 thumb drive, 1323 removable hard drive or solid state drive, 1340 core of computer system, 1341 central processing unit (CPU), 1342 Graphics processing unit (GPU), 1343 Field programmable gate area (FPGA), 1344 Hardware accelerator, 1345 Read only memory (ROM), 1346 Random access memory (RAM), 1347 Internal mass storage, 1348 System bus, 1349 Peripheral bus, 1350 Graphics adapter, 1354 Network interface, 1355 Cloud computing environment
Claims (18)
初期2D占有マップを取得するステップであって、前記初期2D占有マップが、
0個以上のピクセルであって、前記0個以上のピクセルが前記3Dメッシュフレームの少なくとも1つの他の部分にマッピングされていることを指示する第1の予め定義された値を有し、前記少なくとも1つの他の部分が前記3Dメッシュフレームの前記第1の部分とオーバーラップしていない、0個以上のピクセルと、
残りのピクセルであって、前記残りのピクセルが前記3Dメッシュフレームにマッピングされていないことを指示する第2の予め定義された値を有する、残りのピクセルとを含む、ステップと、
前記3Dメッシュフレームの前記第1の部分の2D占有行列を生成するステップであって、前記第1の予め定義された値が占有ピクセルに対応し、前記第2の予め定義された値が非占有ピクセルに対応する、ステップと、
前記初期2D占有マップと前記2D占有行列との間の相関行列を計算するステップと、
前記相関行列内のゼロ値のターゲット要素を識別するステップと、
前記2D占有行列と同じサイズを有する前記初期2D占有マップ内のパッチ内の前記第2の予め定義された値を有するピクセルを、前記2D占有行列内の対応する要素に置き換えることによって更新された2D占有マップを生成するステップであって、前記パッチが、前記相関行列内の前記ゼロ値のターゲット要素の位置に従うパッキング位置にある前記初期2D占有マップ内に位置している、ステップとを含む、方法。 1. A method for projecting a first portion of a three-dimensional (3D) mesh frame onto a two-dimensional (2D) occupancy map, the method comprising:
Obtaining an initial 2D occupancy map, said initial 2D occupancy map comprising:
zero or more pixels having a first predefined value indicating that the zero or more pixels are mapped to at least one other portion of the 3D mesh frame, where the at least one other portion does not overlap the first portion of the 3D mesh frame;
remaining pixels having a second predefined value indicating that the remaining pixels are not mapped to the 3D mesh frame; and
generating a 2D occupancy matrix for the first portion of the 3D mesh frame, the first predefined values corresponding to occupied pixels and the second predefined values corresponding to unoccupied pixels;
calculating a correlation matrix between the initial 2D occupancy map and the 2D occupancy matrix;
identifying zero-valued target elements in the correlation matrix;
generating an updated 2D occupancy map by replacing pixels having the second predefined value in a patch in the initial 2D occupancy map having the same size as the 2D occupancy matrix with a corresponding element in the 2D occupancy matrix, the patch being located in the initial 2D occupancy map in a packing position according to a position of the zero-valued target element in the correlation matrix.
前記相関行列内の複数のゼロ値の要素を識別するステップと、
前記相関行列内の前記複数のゼロ値の要素のうちの1つを前記ゼロ値のターゲット要素として選択するステップとを含む、請求項1に記載の方法。 The step of identifying the zero-valued target elements in the correlation matrix comprises:
identifying a number of zero-valued elements in the correlation matrix;
and selecting one of the plurality of zero-valued elements in the correlation matrix as the zero-valued target element.
前記2D占有行列の前記初期2D占有マップへの好ましいパッキング位置を決定するステップと、
前記好ましいパッキング位置に従って前記相関行列内の前記複数のゼロ値の要素内の前記複数のゼロ値の要素から前記ゼロ値のターゲット要素を選択するステップとを含む、請求項4に記載の方法。 selecting one of the plurality of zero-valued elements in the correlation matrix as the zero-valued target element,
determining a preferred packing location for the 2D occupancy matrix into the initial 2D occupancy map;
and selecting the zero-valued target element from the plurality of zero-valued elements in the correlation matrix according to the preferred packing position.
可能な場合に、前記ゼロ値のターゲット要素として、前記好ましいパッキング位置と一致する前記複数のゼロ値の要素から選択するステップと、そうでない場合に、
前記好ましいパッキング位置および前記好ましいパッキング位置の近傍にあるゼロ値の要素の位置の最適化関数に基づいて前記好ましいパッキング位置の前記近傍にある前記複数のゼロ値の要素から選択するステップとを含む、請求項10に記載の方法。 selecting the zero-valued target element from the plurality of zero-valued elements in the plurality of zero-valued elements in the correlation matrix according to the preferred packing position,
selecting, if possible, as the zero-valued target element from the plurality of zero-valued elements that coincide with the preferred packing location; and otherwise,
and selecting from the plurality of zero-valued elements in the vicinity of the preferred packing location based on an optimization function of the preferred packing location and locations of zero-valued elements in the vicinity of the preferred packing location.
Applications Claiming Priority (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US202263323853P | 2022-03-25 | 2022-03-25 | |
| US63/323,853 | 2022-03-25 | ||
| US18/050,372 US12112510B2 (en) | 2022-03-25 | 2022-10-27 | Convolutional approach to fast and compact packing of 3D mesh into 2D maps |
| US18/050,372 | 2022-10-27 | ||
| PCT/US2022/048676 WO2023183032A1 (en) | 2022-03-25 | 2022-11-02 | Convolutional approach to fast and compact packing of 3d mesh into 2d maps |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2024518767A JP2024518767A (en) | 2024-05-02 |
| JP7596019B2 true JP7596019B2 (en) | 2024-12-09 |
Family
ID=88096202
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2023565409A Active JP7596019B2 (en) | 2022-03-25 | 2022-11-02 | Method, device and computer program for projecting a first portion of a three-dimensional (3D) mesh frame onto a two-dimensional (2D) occupancy map - Patents.com |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US12112510B2 (en) |
| EP (1) | EP4500479A4 (en) |
| JP (1) | JP7596019B2 (en) |
| KR (1) | KR102811349B1 (en) |
| CN (1) | CN117178299A (en) |
| WO (1) | WO2023183032A1 (en) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12531077B2 (en) * | 2021-02-22 | 2026-01-20 | Tencent America LLC | Method and apparatus in audio processing |
| CN118071655B (en) * | 2024-04-18 | 2024-08-30 | 松立控股集团股份有限公司 | Fisheye image correction and stitching method and system |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2020145117A1 (en) | 2019-01-07 | 2020-07-16 | ソニー株式会社 | Image processing device and method |
| WO2021116838A1 (en) | 2019-12-10 | 2021-06-17 | Sony Group Corporation | Mesh compression via point cloud representation |
Family Cites Families (22)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2012128754A1 (en) * | 2011-03-22 | 2012-09-27 | Analogic Corporation | Compound object separation |
| CN103619237B (en) * | 2011-06-15 | 2016-03-16 | 米斯特雷塔医疗有限公司 | For 4D angio radiography and fluoroscopic system and method |
| US10482196B2 (en) | 2016-02-26 | 2019-11-19 | Nvidia Corporation | Modeling point cloud data using hierarchies of Gaussian mixture models |
| CN106056158B (en) * | 2016-06-03 | 2019-06-21 | 西安电子科技大学 | Template image global search method based on mask matrix and fast Fourier transform |
| KR102882879B1 (en) | 2016-07-08 | 2025-11-06 | 인터디지털 브이씨 홀딩스 인코포레이티드 | 360-degree video coding using geometry projection |
| US10460511B2 (en) * | 2016-09-23 | 2019-10-29 | Blue Vision Labs UK Limited | Method and system for creating a virtual 3D model |
| US10699444B2 (en) | 2017-11-22 | 2020-06-30 | Apple Inc | Point cloud occupancy map compression |
| US11348283B2 (en) * | 2018-07-10 | 2022-05-31 | Samsung Electronics Co., Ltd. | Point cloud compression via color smoothing of point cloud prior to texture video generation |
| CN110944187B (en) * | 2018-09-19 | 2022-05-10 | 华为技术有限公司 | Point cloud encoding method and encoder |
| US11288843B2 (en) * | 2019-01-04 | 2022-03-29 | Samsung Electronics Co., Ltd. | Lossy compression of point cloud occupancy maps |
| US11284091B2 (en) | 2019-03-25 | 2022-03-22 | Apple Inc. | Video based point cloud compression-patch alignment and size determination in bounding box |
| US11259048B2 (en) * | 2019-01-09 | 2022-02-22 | Samsung Electronics Co., Ltd. | Adaptive selection of occupancy map precision |
| US11393132B2 (en) * | 2019-03-07 | 2022-07-19 | Samsung Electronics Co., Ltd. | Mesh compression |
| US11107249B2 (en) * | 2019-03-18 | 2021-08-31 | Sony Group Corporation | Point cloud global tetris packing |
| US10769848B1 (en) * | 2019-05-24 | 2020-09-08 | Adobe, Inc. | 3D object reconstruction using photometric mesh representation |
| US11461932B2 (en) * | 2019-06-11 | 2022-10-04 | Tencent America LLC | Method and apparatus for point cloud compression |
| JP7384269B2 (en) * | 2019-10-09 | 2023-11-21 | ソニーグループ株式会社 | Decoded frame synchronization before point cloud reconstruction |
| US11262759B2 (en) * | 2019-10-16 | 2022-03-01 | Huawei Technologies Co., Ltd. | Method and system for localization of an autonomous vehicle in real time |
| CN115380528B (en) * | 2020-04-11 | 2024-03-29 | Lg电子株式会社 | Point cloud data sending device, point cloud data sending method, point cloud data receiving device and point cloud data receiving method |
| US11640764B1 (en) * | 2020-06-01 | 2023-05-02 | Amazon Technologies, Inc. | Optimal occupancy distribution for route or path planning |
| US12100230B2 (en) * | 2021-10-28 | 2024-09-24 | Nvidia Corporation | Using neural networks for 3D surface structure estimation based on real-world data for autonomous systems and applications |
| US12154185B2 (en) * | 2021-12-22 | 2024-11-26 | Datalogic Ip Tech S.R.L. | System and method for verifying positional and spatial information using depth sensors |
-
2022
- 2022-10-27 US US18/050,372 patent/US12112510B2/en active Active
- 2022-11-02 CN CN202280028972.4A patent/CN117178299A/en active Pending
- 2022-11-02 WO PCT/US2022/048676 patent/WO2023183032A1/en not_active Ceased
- 2022-11-02 KR KR1020237039708A patent/KR102811349B1/en active Active
- 2022-11-02 JP JP2023565409A patent/JP7596019B2/en active Active
- 2022-11-02 EP EP22926326.4A patent/EP4500479A4/en active Pending
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2020145117A1 (en) | 2019-01-07 | 2020-07-16 | ソニー株式会社 | Image processing device and method |
| WO2021116838A1 (en) | 2019-12-10 | 2021-06-17 | Sony Group Corporation | Mesh compression via point cloud representation |
| JP2022542419A (en) | 2019-12-10 | 2022-10-03 | ソニーグループ株式会社 | Mesh compression via point cloud representation |
Also Published As
| Publication number | Publication date |
|---|---|
| CN117178299A (en) | 2023-12-05 |
| WO2023183032A1 (en) | 2023-09-28 |
| EP4500479A4 (en) | 2025-07-16 |
| US20230306645A1 (en) | 2023-09-28 |
| JP2024518767A (en) | 2024-05-02 |
| KR20230173702A (en) | 2023-12-27 |
| US12112510B2 (en) | 2024-10-08 |
| EP4500479A1 (en) | 2025-02-05 |
| KR102811349B1 (en) | 2025-05-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7478816B2 (en) | Method and apparatus for point cloud coding | |
| JP7544973B2 (en) | Method and apparatus for dynamic mesh compression - Patents.com | |
| JP7581518B2 (en) | Methods for mesh decompression, apparatus including processing circuitry, and associated programs and storage media | |
| KR102794905B1 (en) | Adaptive sampling method and device for mesh compression by encoder | |
| KR102786725B1 (en) | Coding connectivity of vertex rearrangement methods for mesh compression | |
| JP7504298B2 (en) | Method, device and computer program for processing UV coordinates of a three-dimensional (3D) mesh - Patents.com | |
| JP7583171B2 (en) | METHOD, APPARATUS AND PROGRAM FOR MESH EXPANSION | |
| JP7651728B2 (en) | Predictive coding of boundary geometry information for mesh compression. | |
| JP2023552414A (en) | Reordering vertices for mesh compression | |
| JP7698052B2 (en) | Mesh Compression Using Estimated Texture Coordinates | |
| JP7619729B2 (en) | Checking the non-overlapping property of patches in mesh compression | |
| JP7476432B2 (en) | METHOD, APPARATUS AND COMPUTER PROGRAM FOR MESH RECONSTRUCTION | |
| CN117083636A (en) | Predictive coding of boundary geometry information for mesh compression | |
| JP7596019B2 (en) | Method, device and computer program for projecting a first portion of a three-dimensional (3D) mesh frame onto a two-dimensional (2D) occupancy map - Patents.com | |
| JP7608014B2 (en) | Method, device and computer program for decoding geometric patches of 3D meshes | |
| US20250245862A1 (en) | Parallelogram Grid Predictions in Mesh Coding | |
| KR102782716B1 (en) | Detection of boundary loops in non-manifold meshes |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20231024 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20231024 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20241018 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20241028 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20241121 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7596019 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |