Method for Sampling-Based Objective Quality Evaluation of Mesh

The sampling-based objective quality evaluation method for meshes addresses the limitations of current point-based methods by converting polygonal meshes to triangular meshes, sampling points, and calculating a distortion profile, resulting in a more accurate and efficient quality assessment.

JP7700379B2Active Publication Date: 2025-06-30TENCENT AMERICA LLC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2024529237
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2023-03-27
Filing Date
2023-03-28
Publication Date
2025-06-30
Estimated Expiration
2043-03-28

AI Technical Summary

Technical Problem

Current point-based quality assessment methods for meshes are limited in their generality, applicability, and accuracy, particularly when handling polygonal meshes with four or more edges, and they may not efficiently capture the subjective quality of distorted meshes.

Method used

A sampling-based objective quality evaluation method for meshes that involves converting polygonal meshes into triangular meshes, sampling points on these triangular faces, generating sampled point groups, and calculating a distortion profile of geometry and attributes to assess the quality of distorted meshes.

Benefits of technology

This method provides a more accurate and efficient objective quality assessment of meshes, capable of handling various polygonal meshes and correlating well with subjective quality, thereby overcoming the limitations of existing point-based methods.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007700379000020
    Figure 0007700379000020
  • Figure 0007700379000021
    Figure 0007700379000021
  • Figure 0007700379000022
    Figure 0007700379000022
Patent Text Reader

Abstract

The method includes receiving, at an encoder, a first original polygonal mesh and a second polygonal mesh, where the first original polygonal mesh is an original polygonal mesh and the second polygonal mesh is a distorted polygonal mesh; converting the first polygonal mesh and the second polygonal mesh into two or more triangular meshes by subdividing a plurality of polygonal faces of each of the first polygonal mesh and the second polygonal mesh into a plurality of triangular faces; sampling a plurality of points on each of the plurality of triangular faces from both the first and second polygonal meshes; generating at least a first sampled point cloud for one of the first or second polygonal meshes using the sampled plurality of points; and calculating a distortion profile of geometry and attributes between the first polygonal mesh and the second polygonal mesh based on the at least first sampled point cloud.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Cross - reference to Related Applications This application claims priority to U.S. Provisional Patent Application No. 63 / 338,342, filed May 4, 2022, and U.S. Patent Application No. 18 / 190,610, filed Mar. 27, 2023, the disclosures of which are hereby incorporated by reference in their entireties.

[0002] This disclosure relates to a set of advanced video coding techniques. More specifically, this disclosure relates to a sampling - based objective quality assessment method for meshes.

Background Art

[0003] In MPEG CFP for dynamic mesh compression, it has been proposed to use a point - based sampling metric to evaluate the quality of distorted triangular meshes.

[0004] Current point - based quality assessment methods have several limitations. First, it lacks generality in handling various polygonal meshes and is only applicable to triangular meshes, where each face of the mesh can have four or more edges, for example, a mesh with quadrilateral faces. Second, the sampling method from triangular meshes to point clouds may be sub - optimal. Third, calculating the quality metric from two transformed point clouds may not be accurate enough from the perspective of correlation with subjective quality and may not be efficient enough from the perspective of computational complexity.

Summary of the Invention

Problems to be Solved by the Invention

[0005] The following presents a simplified overview of one or more embodiments of the present disclosure to provide a basic understanding of such embodiments. This overview is not an extensive overview of all contemplated embodiments, nor is it intended to identify key or critical elements of all embodiments or to delineate the scope of any or all embodiments. Its sole purpose is to present, in a simplified form, some concepts of one or more embodiments of the present disclosure as a prelude to the more detailed description presented later.

[0006] The present disclosure provides a sampling-based objective quality evaluation method for meshes.

Means for Solving the Problem

[0007] According to some embodiments, a method executed by at least one processor is provided. The method includes receiving, in an encoder, a first polygonal mesh and a second polygonal mesh, where the first polygonal mesh is the original polygonal mesh and the second polygonal mesh is a distorted polygonal mesh, and each of the first and second polygonal meshes comprises a plurality of polygonal faces. The method further includes converting the first polygonal mesh and the second polygonal mesh into two or more triangular meshes by subdividing the plurality of polygonal faces of each of the first polygonal mesh and the second polygonal mesh into a plurality of triangular faces, where each triangular face corresponds to each of the triangular meshes of the two or more triangular meshes. The method further includes sampling a plurality of points on each of the plurality of triangular faces from both the first and second polygonal meshes. The method further includes generating at least a first sampled point group for one of the first or second polygonal meshes using the sampled plurality of points. The method further includes calculating a distortion profile of geometry and attributes between the first polygonal mesh and the second polygonal mesh based on at least the first sampled point group.

[0008] According to some embodiments, the apparatus includes at least one memory configured to store program code and at least one processor configured to read the program code and operate according to the instructions of the program code. The program code includes reception code configured to cause at least one processor to receive, in an encoder, a first polygonal mesh and a second polygonal mesh, where the first polygonal mesh is the original polygonal mesh and the second polygonal mesh is a distorted polygonal mesh, and each of the first and second polygonal meshes includes a plurality of polygonal faces. The program code further includes conversion code configured to cause at least one processor to convert the first polygonal mesh and the second polygonal mesh into two or more triangular meshes by subdividing the plurality of polygonal faces of each of the first and second polygonal meshes into a plurality of triangular faces, where each triangular face corresponds to each of the two or more triangular meshes. The program code further includes sampling code configured to cause at least one processor to sample a plurality of points on each of the plurality of triangular faces from both the first and second polygonal meshes. The program code further includes generation code configured to cause at least one processor to generate at least a first sampled point group for one of the first or second polygonal meshes using the sampled plurality of points. The program code further includes calculation code configured to cause at least one processor to calculate a distortion profile of geometry and attributes between the first polygonal mesh and the second polygonal mesh based on at least the first sampled point group.

[0009] According to some embodiments, when executed by at least one processor, a non-transitory computer-readable storage medium causes the at least one processor to receive, in an encoder, a first polygonal mesh and a second polygonal mesh, the first polygonal mesh being the original polygonal mesh and the second polygonal mesh being a distorted polygonal mesh, each of the first and second polygonal meshes comprising a plurality of polygonal faces. The instructions further cause the at least one processor to convert the first polygonal mesh and the second polygonal mesh into two or more triangular meshes by subdividing the plurality of polygonal faces of each of the first polygonal mesh and the second polygonal mesh into a plurality of triangular faces, each triangular face corresponding to a respective one of the two or more triangular meshes. The instructions further cause the at least one processor to sample a plurality of points on each of the plurality of triangular faces from both the first and second polygonal meshes. The instructions further cause the at least one processor to generate at least a first sampled point cloud for one of the first or second polygonal meshes using the sampled plurality of points. The instructions further cause the at least one processor to calculate a distortion profile of the geometry and attributes between the first polygonal mesh and the second polygonal mesh based on at least the first sampled point cloud.

[0010] Further embodiments are described in the following description, become apparent in part from the description, and / or may be learned by practice of the presented embodiments of the disclosure.

[0011] Further features, properties, and various advantages of the disclosed subject matter will become more apparent from the following detailed description of the invention and the accompanying drawings.

Brief Description of the Drawings

[0012]

Figure 1

Figure 2

Figure 3

Figure 4A

Figure 4B

Figure 4C

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Best Mode for Carrying Out the Invention

[0013] The following detailed description of exemplary embodiments refers to the accompanying drawings. The same reference numbers in different drawings can identify the same or similar elements.

[0014] A mesh may include several polygons that describe the surface of a volumetric object. Information about its vertices in 3D space and how the vertices are connected can define each polygon, which is called connectivity information. Vertex attributes such as color and normal may be associated with mesh vertices. Attributes may also be associated with the surface of the mesh by leveraging mapping information that parameterizes the mesh with a 2D attribute map. Such a mapping is called UV coordinates or texture coordinates and may be defined using a set of parametric coordinates associated with mesh vertices. A 2D attribute map may be used to store high-resolution attribute information such as texture, normal, and displacement. High-resolution attribute information may be used for various purposes such as texture mapping and shading.

[0015] The present disclosure provides a sampling-based objective quality evaluation method for meshes. The quality metric used is based on MSE (Mean Squared Error) or PSNR (Peak Signal to Noise Ratio). Similar methods can also be extended to other quality metrics such as SSIM, MS-SSIM, etc.

[0016] Referring to FIGS. 1-2, an embodiment of the present disclosure for implementing the encoding structure and decoding structure of the present disclosure is described.

[0017] FIG. 1 shows a simplified block diagram of a communication system 100 according to an embodiment of the present disclosure. The system 100 may include at least two terminals 110, 120 interconnected via a network 150. In the case of unidirectional data transmission, the first terminal 110 may encode video data that may include mesh data at a local location for transmission to another terminal 120 via the network 150. The second terminal 120 may receive the encoded video data of other terminals from the network 150, decode the encoded data, and display the restored video data. Unidirectional data transmission may be common in media delivery applications and the like.

[0018] FIG. 1 shows a second pair of terminals 130, 140 provided to support two-way transmission of encoded video, which may occur, for example, during a video conference. In the case of two-way transmission of data, each of the terminals 130, 140 can encode video data captured at a local location for transmission to other terminals via the network 150. Each of the terminals 130, 140 can also receive encoded video data transmitted by other terminals, can decode the encoded data, and can display the restored video data on a local display device.

[0019] In FIG. 1, the terminals 110-140 may be, for example, a server, a personal computer, and a smartphone, and / or any other type of terminal. For example, the terminals (110-140) may be a laptop computer, a tablet computer, a media player, and / or dedicated video conferencing equipment. The network 150 represents any number of networks that transmit encoded video data among the terminals 110-140, including, for example, wired and / or wireless communication networks. The communication network 150 can exchange data over circuit-switched and / or packet-switched channels. Representative networks include telecommunications networks, local area networks, wide area networks, and / or the Internet. For the purposes of this description, the architecture and topology of the network 150 may not be important for the operation of the present disclosure, unless otherwise described herein below.

[0020] FIG. 2 shows the arrangement of video encoders and decoders in a streaming environment as an example of an application for the disclosed subject matter. The disclosed subject matter may be used in other video-related applications, including, for example, video conferencing, digital television, storage of compressed video on digital media such as CDs, DVDs, memory sticks, etc.

[0021] As shown in FIG. 2, the streaming system 200 may include a capture subsystem 213 that includes a video source 201 and an encoder 203. The streaming system 200 may further include at least one streaming server 205 and / or at least one streaming client 206.

[0022] The video source 201 can create a stream 202 that includes, for example, a 3D mesh and metadata associated with the 3D mesh. The video source 201 may include, for example, a 3D sensor (e.g., a depth sensor) or 3D imaging technology (e.g., a digital camera) and a computing device configured to generate a 3D mesh using data received from the 3D sensor or 3D imaging technology. The sample stream 202, which may have a high data volume compared to an encoded video bitstream, may be processed by an encoder 203 coupled to the video source 201. 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 encoder 203 can also further generate an encoded video bitstream 204. The encoded video bitstream 204, which may have a lower data volume compared to the uncompressed stream 202, may be stored on the streaming server 205 for future use. One or more streaming clients 206 can access the streaming server 205 to retrieve a video bitstream 209 that can be a copy of the encoded video bitstream 204.

[0023] The streaming client 206 may include a video decoder 210 and a display 212. The video decoder 210 can decode, for example, a video bitstream 209 that is an incoming copy of the encoded video bitstream 204, and create an outgoing video sample stream 211 that can be rendered on the display 212 or another rendering device (not shown). In some streaming systems, the video bitstreams 204, 209 may be encoded according to a particular video coding / compression standard.

[0024] In MPEG CFP for dynamic mesh compression, it has been proposed to use a point-based sampling metric to evaluate the quality of distorted triangular meshes.

[0025] As shown in Figure 3, the framework for objective quality assessment can be described as follows. First, both the original mesh 301 and the distorted mesh 303 may be transformed into point clouds 302 and 304 by sampling points on the mesh triangles. Then, an objective quality metric for the point clouds 302 and 304 may be applied to calculate the geometric and attribute distortion 305 of the transformed point clouds.

[0026] The point cloud may be created by performing ray casting in the axial directions (x, y, z) according to the normal of the triangle. The hit test determines whether the cast ray hits the triangle, and then the color is obtained by barycentric interpolation (to determine the UV coordinates of the point) and then bilinear interpolation (to obtain the RGB value from the texture map).

[0027] The normal of the triangle is calculated as the cross product of its two edges and may be normalized to have unit length. All points obtained by sampling the triangle inherit its normal vector.

[0028] The geometric shape distortion metric may be used to evaluate the objective quality of a point cloud sampled from a distorted mesh when a point cloud sampled from the original mesh is given.

[0029] Let the original point cloud and the compressed point cloud obtained from the sampling procedure described above be A and B, respectively. Consider evaluating the compression error expressed as e in point cloud B with respect to the reference point cloud A. The steps of calculating both the point - to - point error (D1) and the point - to - plane error (D2) of the geometric error are summarized below and shown in Figure 5. B,A For each point b in point cloud B, i.e., each black point in Figure 5, identify the corresponding point a in point cloud A, i.e., each red point in Figure 5. The nearest neighbor is used to identify the position of the corresponding point. Specifically, to reduce the computational complexity, KD - tree search is used to perform the nearest neighbor search.

[0030] For each point b in point cloud B i (i.e., each black point in Figure 5), identify the corresponding point a in point cloud A j (i.e., each red point in Figure 5). The nearest neighbor is used to identify the position of the corresponding point. Specifically, to reduce the computational complexity, KD - tree search is used to perform the nearest neighbor search.

[0031] Determine the error vector E(i,j) by connecting the identified point a in the reference point cloud A j to the point b in point cloud B i . The length of the error vector is the point - to - point error, i.e.,

Number

[0032] Based on the point - to - point distance

Number

Number

[0033] Next, the D1 PSNR value is

Number

Number

Number

Number

[0034] The normal direction N j projects the error vector E(i,j) along it to obtain a new error vector

Number

Number

[0035] Next, the D2 PSNR value is calculated as

Number

[0036] where

Number

Number

Number

Number

[0037] The attribute PSNR can be calculated as follows,

Number

Number

Number

Number

Number

[0038] In the case of color attributes, PSNR is calculated in the YUV domain. The conversion from the RGB space to the YUV space is performed using ITU-R BT.709. The peak value p for PSNR calculation is 255.

[0039] The proposed methods may be used separately or combined in any order. Furthermore, each of the methods (or embodiments), encoders, and decoders may be implemented by a processing circuit (e.g., one or more processors or one or more integrated circuits). In one example, one or more processors execute a program stored in a non-transitory computer-readable medium.

[0040] In the present disclosure, several methods are proposed. The methods may be applied individually or in any form of combination. It should be noted that the methods may be applied to both static meshes and dynamic meshes, and the dynamic meshes can have time-varying geometries and attributes.

[0041] First, the method applied to the triangular mesh may be extended to the polygonal mesh. The polygonal mesh may have faces with four or more edges. A framework according to some embodiments may be shown in FIG. 4A. In this case, the input original polygonal mesh 401 may first be converted to a triangular mesh 406 by subdividing each polygon into triangles while maintaining the orientation of the original faces. The same operation may be performed to convert the distorted polygonal mesh 403 to a distorted triangular mesh 407. Then, two sampled point clouds 402 and 404 are created, and quality metrics for the sampled point clouds 402 and 404 are used to calculate the peak signal-to-noise ratio 405 of the geometry and attributes.

[0042] Specifically, the polygonal face may be represented by a series of vertices (V1, V2, …, V n ), where n>=3 is the degree (number of edges) of the polygon. For example, n = 3 for a triangular face and n = 4 for a quadrilateral face. A polygonal face with degree n may be subdivided into n-2 triangles. The subdivision from the polygonal face to the triangular face may be performed in different ways.

[0043] In some embodiments, the triangles subdivided from the polygon may be written as (V1, V2, V3), (V1, V3, V4), …, (V1, V n-1 , V n ). For example, a quadrilateral face with (A, B, C, D) may be divided into two triangles (A, B, C) and (A, C, D). A pentagon with (A, B, C, D, E) may be divided into three triangles (A, B, C), (A, C, D), and (A, D, E) as shown in FIG. 6.

[0044] In some embodiments, the triangles subdivided from a polygon (where n is even) may be written as (V1, V2, V3), (V3, V4, V5), …, (V n-1 , V n , V1), and a method for further subdividing the inner polygon (V1, V3, V5, …) into triangles can be further applied. Or, the triangles subdivided from a polygon (where n is odd) may be written as (V1, V2, V3), (V3, V4, V5), …, (V n-2 , V n-1 , V n ), and a method for further subdividing the inner polygon (V1, V3, V5, …) into triangles can be further applied. For example, a quadrilateral face having (A, B, C, D) may be divided into two triangles (A, B, C) and (C, D, A). A pentagon having (A, B, C, D, E) may be divided into three triangles (A, B, C), (C, D, E), and (E, A, C).

[0045] Different sampling strategies may be applied to convert a triangle mesh into a point cloud.

[0046] In some embodiments, for each triangle on the mesh, uniform sampling may be applied to the 2D plane of the triangle (when a sampling step is given as an input parameter).

[0047] As shown in FIG. 7, triangle ABC is in 3D space, and each vertex is associated with xyz coordinates. N is the normal vector of the triangle surface. Uniform sampling is applied to the 2D uv plane of the triangle face (orthogonal to the normal N). Specifically, the uniform sampling can start from the origin and spread along the uv axes on the 2D uv plane with a given sampling step. All 2D sampling points inside the triangle are collected. These 2D sampling points may be transformed back to 3D world coordinates by inverse transformation. The attribute values of the sampled points may be derived by different methods, such as barycentric-based interpolation.

[0048] The origin position may be selected differently.

[0049] In one embodiment, the origin position is selected as the centroid of the triangle (as shown in FIG. 7). In this case, even if the sampling step is too large, it is guaranteed that there is at least one sampling point that is the centroid.

[0050] In another embodiment, the origin position is selected as one of the vertices.

[0051] In another embodiment, the origin position is selected as a point on the edge of the triangle.

[0052] The directions of the u and v axes may be set differently.

[0053] In one embodiment, the direction of the u-axis is selected to be parallel to one of the edges of the triangle. For example, in FIG. 7, the u-axis is parallel to edge BC.

[0054] FIGS. 4B and 4C show two examples of the point-plane-based framework. The main difference from FIG. 4A is that either one of the meshes, the original mesh 401 or the distorted mesh 403, is not sampled into the point cloud. In these cases, only the point-plane-based D2 PSNR is calculated. By taking the combination of FIGS. 4B and 4C, the symmetric point-plane D2 PSNR can also be used.

[0055] Taking the framework of FIG. 4B as an example, for each point on the sampled point cloud 404 (converted from the distorted mesh), the closest triangle in the original mesh can be found.

[0056] Geometric shape distortion may be calculated by the distance from the sampled point to the nearest triangle. The distance from a point to a triangle may be defined in different ways. In some embodiments, the distance is measured by the minimum distance, i.e., the length of the vector from the point to the orthogonal projection on that triangle.

[0057] Attribute distortion may be calculated by the difference between the attribute value of a point and the attribute value of the orthogonal projection on the triangle. The attribute value of the orthogonal projection on the triangle may be estimated in different ways. In some embodiments, barycentric-based interpolation can be used.

[0058] FIG. 8 is a flowchart of an exemplary process 800 for a sampling-based objective quality assessment method for a mesh. In some implementations, one or more process blocks in FIG. 8 may be performed by any of the elements described above.

[0059] As shown in FIG. 8, process 800 may include receiving, at an encoder, a first original polygonal mesh and a second distorted polygonal mesh, the first and second polygonal meshes each comprising a plurality of polygonal faces (block 810).

[0060] As further shown in FIG. 8, process 800 may include converting the first and second polygonal meshes into two or more triangular meshes by subdividing each of the plurality of polygonal faces of the first and second polygonal meshes into a plurality of triangular faces (block 820).

[0061] As further shown in FIG. 8, process 800 may include sampling a plurality of points on each of the plurality of triangular faces from both the first original polygonal mesh and the second distorted polygonal mesh (block 830).

[0062] As further shown in FIG. 8, process 800 may include creating at least a first set of sampled points for one of a first original polygonal mesh or a second distorted polygonal mesh using a plurality of sampled points (block 840).

[0063] As further shown in FIG. 8, process 800 may include calculating a distortion profile of geometry and attributes between a first original polygonal mesh and a second distorted polygonal mesh based on at least the first set of sampled points (block 850).

[0064] FIG. 8 shows exemplary blocks of process 800, but in some implementations, process 800 may include additional blocks, fewer blocks, different blocks, or differently arranged blocks than those depicted in FIG. 8. Additionally or alternatively, two or more blocks of process 800 may be executed in parallel.

[0065] The techniques described above may be implemented as computer software using computer-readable instructions and may be physically stored on one or more computer-readable media. For example, FIG. 9 shows a computer system 900 suitable for implementing particular embodiments of the present disclosure.

[0066] The computer software may be coded using any suitable machine code or computer language that may undergo assembly, compilation, linking, or similar mechanisms to create code including instructions that may be executed directly, or via interpretation, microcode execution, etc., by, for example, a computer central processing unit (CPU), a graphics processing unit (GPU), or the like.

[0067] The instructions may be executed on various types of computers or their components, including, for example, personal computers, tablet computers, servers, smartphones, gaming devices, Internet of Things devices, and the like.

[0068] The components shown in FIG. 9 for the computer system 900 are examples, and it is not intended to imply any limitation regarding the scope of use or functionality of the computer software implementing the embodiments of the present disclosure. The configuration of the components should not be construed as having any dependency or requirement with respect to any one or combination of the components shown in the non-limiting embodiments of the computer system 900.

[0069] The computer system 900 may include a specific human interface input device. Such a human interface input device can respond to input by one or more human users via, for example, tactile input (such as keystrokes, swipes, movement of a data glove), audio input (such as voice, clapping), visual input (such as gestures), and olfactory input (not shown). The human interface device may also be used to capture certain media that is not necessarily directly related to conscious input by a human, such as audio (such as speech, music, ambient sound), images (such as scanned images, photographic images obtained from a still image camera), and video (such as two-dimensional video, three-dimensional video including stereoscopic video).

[0070] The input human interface device may include one or more of a keyboard 901, a mouse 902, a trackpad 903, a touch screen 910, a data glove, a joystick 905, a microphone 906, a scanner 907, and a camera 908 (only one of each is depicted).

[0071] Computer system 900 may also include certain human interface output devices. Such human interface output devices may, for example, stimulate the senses of one or more human users via tactile output, sound, light, and smell / taste. Such human interface output devices may include tactile output devices (e.g., tactile feedback by touch screen 910, data glove, or joystick 905, although there may also be tactile feedback devices that do not function as input devices). For example, such devices may include audio output devices (such as speaker 909, headphones (not shown)), visual output devices (including CRT screens, LCD screens, plasma screens, OLED screens 910 which, with or without touch screen input functionality and with or without tactile feedback functionality, some of which may be capable of outputting two-dimensional visual output or output beyond three dimensions via means such as stereoscopic output, virtual reality glasses (not shown), holographic displays, and smoke tanks (not shown)), and printers (not shown).

[0072] Computer system 900 may also include human-accessible storage devices and associated media such as optical media including CD / DVD ROM / RW 920 having a CD / DVD or similar medium 921, thumb drive 922, removable hard drive or solid state drive 923, legacy magnetic media such as tapes and floppy disks (not shown), and special ROM / ASIC / PLD-based devices such as security dongles (not shown).

[0073] One of ordinary skill in the art should also understand that the term "computer-readable medium" as used in connection with the subject matter of this disclosure does not include transmission media, carrier waves, or other transient signals.

[0074] Computer system 900 may also include an interface to one or more communication networks. The network can be, for example, wireless, wired, or optical. The network can further be local, wide area, metropolitan, vehicle and industrial, real-time, delay-tolerant, etc. Examples of networks include local area networks such as Ethernet, wireless LAN, cellular networks including GSM, 3G, 4G, 5G, LTE, etc., wired or wireless wide area digital networks for television including cable television, satellite television, and terrestrial broadcast television, vehicle and industrial including CANBus, etc. Certain networks generally require an external network interface adapter attached to a specific general-purpose data port or peripheral bus 949, such as a USB port of computer system 900, and other networks are generally integrated into the core of computer system 900 by connection to the 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 900 can communicate with other entities. Such communication can be only unidirectional reception (e.g., broadcast TV), only unidirectional transmission (e.g., CANbus to a specific CANbus device), or bidirectional to other computer systems using, for example, local area or wide area digital networks. Such communication may include communication to a cloud computing environment 955. Specific protocols and protocol stacks may be used for each of those networks and network interfaces as described above.

[0075] The aforementioned human interface device, human-accessible storage device, and network interface 954 may be attached to the core 940 of computer system 900.

[0076] The core 940 may include one or more central processing units (CPUs) 941, a graphics processing unit (GPU) 942, a dedicated programmable processing device in the form of a field programmable gate array (FPGA) 943, a hardware accelerator 944 for specific tasks, etc. These devices may be connected via a system bus 948 together with a read-only memory (ROM) 945, a random access memory 946, an internal mass storage device such as an internal hard drive or SSD that is not accessible to the user, 947. In some computer systems, the system bus 948 may be accessible in the form of one or more physical plugs to enable expansion by additional CPUs, GPUs, etc. Peripheral devices may be directly attached to the core's system bus 948 or may be attached via a peripheral bus 949. Architectures for peripheral buses include PCI, USB, etc. The graphics adapter 950 may be included in the core 940.

[0077] The CPU 941, GPU 942, FPGA 943, and accelerator 944 can execute specific instructions that can together constitute the aforementioned computer code. The computer code may be stored in the ROM 945 or RAM 946. Temporary data may also be stored in the RAM 946, while persistent data may be stored, for example, in the internal mass storage device 947. Fast storage and retrieval to any of the memory devices may be enabled by the use of cache memory that may be closely associated with one or more CPUs 941, GPUs 942, mass storage device 947, ROM 945, RAM 946, etc.

[0078] A computer-readable medium can have computer code thereon for performing various computer-implemented operations. The medium and the computer code may be specially designed and configured for the purposes of this disclosure, or they may be of the types available to those skilled in the computer software arts.

[0079] By way of example and not limitation, a computer system 900 having an architecture, specifically a core 940, can provide functionality as a result of a processor (including a CPU, GPU, FPGA, accelerator, etc.) executing software embodied in one or more tangible computer-readable media. Such computer-readable media can be associated with a user-accessible mass storage device as introduced above, as well as media associated with a specific storage device of the core 940 that is non-transitory in nature, such as the mass storage device 947 or ROM 945 within the core. The software implementing various embodiments of the present disclosure can be stored in such devices and may be executed by the core 940. The computer-readable media may include one or more memory devices or chips depending on specific needs. The software can cause the core 940, specifically the processor therein (including a CPU, GPU, FPGA, etc.), to define data structures stored in the RAM 946 and modify such data structures according to processes defined by the software, thereby executing specific processes or specific portions of specific processes described herein. Additionally or alternatively, the computer system can include circuitry (e.g., an accelerator 944) wired or otherwise embodied within that provides functionality as a result of logic to execute specific processes or specific portions of specific processes described herein, operating instead of or in conjunction with the software. References to software may include logic and vice versa as needed. References to computer-readable media can, as needed, include circuitry (such as an integrated circuit (IC)) that stores software for execution, circuitry that embodies logic for execution, or both. The present disclosure encompasses any suitable combination of hardware and software.

[0080] Although the present disclosure describes several non-limiting embodiments, there are changes, substitutions, and various alternative equivalents within the scope of the present disclosure. Accordingly, it will be understood by those skilled in the art that many systems and methods that embody the principles of the present disclosure but are not explicitly shown or described herein can be devised and are thus within the spirit and scope of the present disclosure.

Description of Reference Numerals

[0081] 100 Communication system 110 Terminal 120 Terminal 130 Terminal 140 Terminal 150 Network 200 Streaming system 201 Video source 202 Sample stream 203 Encoder 204 Encoded video bitstream 205 Streaming server 206 Streaming client 209 Video bitstream 210 Video decoder 211 Video sample stream 212 Display 213 Capture subsystem 301 Original mesh 302 Point cloud 303 Distorted mesh 304 Point cloud 305 Distortion of geometry and attributes 401 Original polygonal mesh 402 Point cloud 403 Distorted polygonal mesh 404 Point cloud 405 Peak signal-to-noise ratio of geometry and attributes 406 Triangular mesh 407 Distorted triangular mesh 800 Process 810 Block 820 Block 830 Block 840 Block 850 Block 900 Computer System 901 Keyboard 902 Mouse 903 Track Pad 905 Joystick 906 Microphone 907 Scanner 908 Camera 909 Speaker 910 Touch Screen 920 CD / DVD ROM / RW 921 CD / DVD or Similar Medium 922 Thumb Drive 923 Removable Hard Drive or Solid State Drive 940 Core 941 Central Processing Unit (CPU) 942 Graphics Processing Unit (GPU) 943 Field Programmable Gate Array (FPGA) 944 Hardware Accelerator 945 Read Only Memory (ROM) 946 Random Access Memory (RAM) 947 Internal Mass Storage Device 948 System Bus 949 Peripheral Bus 950 Graphics Adapter 954 Network Interface 955 Network

Claims

1. A method executed by at least one processor, the method comprising: Receiving a first polygonal mesh and a second polygonal mesh, wherein the first polygonal mesh is an original polygonal mesh and the second polygonal mesh is a distorted polygonal mesh, and each of the first and second polygonal meshes comprises a plurality of polygonal faces; Converting the first polygonal mesh and the second polygonal mesh into two or more triangular meshes by subdividing each of the plurality of polygonal faces of the first polygonal mesh and the second polygonal mesh into a plurality of triangular faces, each triangular face corresponding to a respective one of the two or more triangular meshes; Sampling a plurality of points on each of the plurality of triangular faces from both the first and second polygonal meshes; Generating at least a first sampled point group for one of the first or second polygonal meshes using the plurality of sampled points; Calculating a distortion profile of geometry and attributes between the first polygonal mesh and the second polygonal mesh based at least on the first sampled point group; A method comprising the above.

2. The method according to claim 1, wherein the step of sampling the plurality of points on each respective triangular face from the plurality of triangular faces starts from the origin and spreads along the UV axes in the 2D UV plane.

3. The method according to claim 2, wherein the origin is selected as the centroid of each respective triangular face from the plurality of triangular faces.

4. The method according to claim 2, wherein the origin is selected as one of the plurality of vertices on each respective triangular face from the plurality of triangular faces.

5. The method according to claim 2, wherein the origin is selected as a point on an edge of each respective triangular face from the plurality of triangular faces.

6. The method according to claim 2, wherein the direction of the U axis is selected to be parallel to one of the plurality of edges of each respective triangular face from the plurality of triangular faces.

7. The method according to claim 1, wherein the distortion profile of geometry and attributes is based on either mean squared error or peak signal-to-noise ratio.

8. The step of calculating the distortion profile of the geometric shape and attributes comprises generating a second sampled point group for either the first polygonal mesh or the second polygonal mesh using the plurality of sampled points; determining one or more characteristics of the second sampled point group based on the first sampled point group; The method according to claim 1, further comprising.

9. The method according to claim 8, wherein the step of calculating the distortion profile of the geometric shape and attributes between the first polygonal mesh and the second polygonal mesh is further based on the determined one or more characteristics.

10. An apparatus configured to perform the method according to any one of claims 1 to 9.

11. A computer program for causing at least one processor to execute the method according to any one of claims 1 to 9.

Citation Information

Patent Citations

  • Point cloud coding standard conformance definition in computing environments

    US20200120347A1

  • Cost-driven framework for progressive compression of textured meshes

    US20200265552A1

  • Three-Dimensional Mesh Compression Using a Video Encoder

    US20210090301A1