Grid coding and decoding method and device, computer equipment and storage medium
By improving the prediction mode of quadrilateral triple blocks and determining the optimal prediction mode for the current vertex, the problem of low efficiency in polygon mesh encoding and decoding is solved, and more efficient vertex position prediction and encoding/decoding is achieved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-07-24
- Publication Date
- 2026-03-10
AI Technical Summary
In existing technologies, the quadrilateral triple block prediction mode has low encoding and decoding efficiency in polygon mesh encoding and decoding.
By improving the quadrilateral triplet prediction mode, it is determined whether the current vertex can be used for subset prediction of multiple nearest neighbor vertices, and the best mode is selected from multiple candidate prediction modes for encoding and decoding.
It improves the accuracy of vertex position prediction and encoding/decoding efficiency in polygonal meshes.
Smart Images

Figure HDA0005516027910000011 
Figure HDA0005516027910000021 
Figure HDA0005516027910000031
Abstract
Description
By incorporating via reference
[0001] This application claims the benefit of priority to U.S. Provisional Application No. 63 / 690,255, filed September 3, 2024, entitled “Improved QUAD TROMINO PREDICTION FOR POLYGON MESH COMPRESSION” and U.S. Patent Application No. 19 / 232,775, filed June 9, 2025, entitled “QUAD TROMINO PREDICTION FOR POLYGON MESH COMPRESSION”, which are incorporated herein by reference in their entirety. Technical Field
[0002] This invention relates to the field of video encoding and decoding, and more specifically, to a method, apparatus, computing device, and storage medium for grid encoding and decoding. Background Technology
[0003] The background description provided herein is for the purpose of presenting the overall context of this disclosure. To the extent that the work described in this background section is intended, neither the work of the currently named inventors nor any aspect of the description that would not otherwise be considered prior art at the time of filing is expressly or implicitly acknowledged as prior art to this disclosure.
[0004] Video / mesh compression can help transmit video / mesh data across different devices, storage devices, and networks with minimal quality degradation. In some examples, video (or mesh) codec techniques can compress video (or mesh) based on spatial and temporal redundancy. In one example, the video (or mesh) codec can use a technique called intra-frame prediction, which can compress images (or meshes) based on spatial redundancy. For example, intra-frame prediction can use reference data from the current image (or current mesh) in reconstruction for sample prediction. In another example, the video (or mesh) codec can use a technique called inter-frame prediction, which can compress images (or meshes) based on temporal redundancy. For example, inter-frame prediction can utilize motion compensation to predict samples in the current image (or current mesh) based on a previously reconstructed image (or previously reconstructed mesh). Motion compensation can be indicated by a motion vector (MV). 3D meshes are widely used to represent immersive content, and a mesh can include several polygons describing the surface of a volumetric object. In the prior art, quadrilateral triplet prediction schemes (or quadrilateral triplet prediction patterns) are used to predict the positions of vertices in a polygonal mesh. However, existing technologies using the quadrilateral triple block prediction mode suffer from low encoding and decoding efficiency. Summary of the Invention
[0005] This disclosure provides a method, related apparatus, computer equipment, and storage medium for grid encoding and decoding, with improvements made for the use of quadrilateral triple block prediction modes, thereby increasing encoding and decoding efficiency.
[0006] According to one aspect of this disclosure, a method for grid decoding is provided. In this method, a bit stream including encoded grid information is received. The grid includes a current vertex and multiple nearest neighbor vertices of the current vertex. It is determined whether a quadrilateral triplet prediction pattern is available for the current vertex. In the quadrilateral triplet prediction pattern, the current vertex is predicted based on a subset of multiple nearest neighbor vertices. When the quadrilateral triplet prediction pattern is available for the current vertex, a prediction pattern is determined from multiple candidate prediction patterns. The multiple candidate prediction patterns include the quadrilateral triplet prediction pattern. The current vertex is reconstructed based on the prediction pattern.
[0007] According to another aspect of this disclosure, a method for grid encoding is provided. In this method, it is determined whether a quadrilateral triplet prediction pattern is available for a current vertex in the grid. The current vertex includes multiple nearest neighbor vertices in the grid. In the quadrilateral triplet prediction pattern, the current vertex is predicted based on a subset of the multiple nearest neighbor vertices. When the quadrilateral triplet prediction pattern is available for the current vertex, a prediction pattern is determined from multiple candidate prediction patterns. The multiple candidate prediction patterns include the quadrilateral triplet prediction pattern. The current vertex is encoded into a bitstream based on the prediction pattern.
[0008] According to another aspect of this disclosure, a method for processing grid data is provided. In this method, a bitstream of grid data is processed according to format rules. The bitstream includes encoded information of the grid. The grid includes a current vertex and multiple nearest neighbor vertices of the current vertex. Format rules specify whether a quadrilateral triplet prediction pattern is available for the current vertex. In the quadrilateral triplet prediction pattern, the current vertex is predicted based on a subset of multiple nearest neighbor vertices. Format rules specify that when a quadrilateral triplet prediction pattern is available for the current vertex, a prediction pattern is determined from multiple candidate prediction patterns. The multiple candidate prediction patterns include the quadrilateral triplet prediction pattern. Format rules specify that the current vertex is processed based on the prediction pattern.
[0009] This disclosure also provides an apparatus for mesh decoding. The apparatus for mesh decoding includes a processing circuitry system configured to implement any of the methods described for mesh decoding and processing.
[0010] This disclosure also provides an apparatus for mesh coding. The apparatus for mesh coding includes a processing circuitry system configured to implement any of the methods described in the mesh coding method.
[0011] This disclosure also provides an apparatus / computer device for processing grid data. The apparatus / computer device for processing grid data includes a processing circuitry configured to perform any of the described methods for grid decoding, encoding, and / or processing.
[0012] This disclosure also provides a non-transitory computer-readable medium storing instructions that, when executed by a computer, cause the computer to perform any of the methods described for mesh decoding, encoding, and / or processing.
[0013] The technical solution disclosed herein includes a method and apparatus for improving a quadrilateral triplet (QTP) scheme to improve vertex position prediction in a polygonal mesh. In an example, a bitstream including encoded information of a mesh is received. The mesh includes a current vertex and multiple nearest neighbor vertices. It is determined whether a quadrilateral triplet prediction pattern is available for the current vertex. In the quadrilateral triplet prediction pattern, the current vertex is predicted based on a subset of the multiple nearest neighbor vertices. When the quadrilateral triplet prediction pattern is available for the current vertex, a prediction pattern is determined from multiple candidate prediction patterns. The multiple candidate prediction patterns include the quadrilateral triplet prediction pattern. The current vertex is reconstructed based on the prediction pattern. Therefore, the improvement to the quadrilateral triplet scheme for vertex position prediction in a polygonal mesh improves encoding accuracy. Attached Figure Description
[0014] Further features, properties, and various advantages of the disclosed subject matter will become more apparent from the following detailed description and accompanying drawings, in which:
[0015] Figure 1 This is a schematic illustration of an example block diagram of a communication system (100).
[0016] Figure 2 This is a schematic diagram of an example block diagram of a decoder.
[0017] Figure 3 This is a schematic illustration of an example block diagram of an encoder.
[0018] Figure 4 This is a schematic illustration of an example of a quadrilateral triple block prediction scheme based on some aspects of this disclosure.
[0019] Figure 5 This is a schematic illustration of an example of predicting a quadrilateral triple block via its edges.
[0020] Figure 6 This is a schematic illustration of an example predicted by a quadrilateral triplet of parallelograms.
[0021] Figure 7AThis is a schematic illustration of an example of a prediction pattern across a parallelogram.
[0022] Figure 7B This is a schematic illustration of an example of a prediction pattern within a parallelogram.
[0023] Figure 8 A flowchart outlining some aspects of the decoding process according to this disclosure is shown.
[0024] Figure 9 A flowchart outlining some aspects of the coding process according to this disclosure is shown.
[0025] Figure 10 It is a schematic diagram based on one aspect of a computer system. Detailed Implementation
[0026] Figure 1 Block diagrams of some examples of video processing systems (100) are shown. The video processing system (100) is an example of the application of the disclosed subject matter—video encoders and video decoders—in a streaming environment. The disclosed subject matter can be equally applied to other video-enabled applications, including, for example, video conferencing, digital TV, streaming services, storing compressed video on digital media including CDs (Compact Discs), DVDs (Digital Versatile Discs), memory sticks, etc.
[0027] The video processing system (100) includes a capture subsystem (113) that may include a video source (101), such as a digital camera device, which creates, for example, an uncompressed video picture stream (102). In the example, the video picture stream (102) includes samples captured by the digital camera device. The video picture stream (102) is depicted as a thick line to emphasize the high data volume when compared with encoded video data (104) (or encoded video bitstream), which may be processed by an electronic device (120) coupled to the video source (101) and including a video encoder (mesh encoder) (103). The video encoder (103) may include hardware, software, or a combination thereof to implement or enforce aspects of the disclosed subject matter as described in more detail below. The encoded video data (104) (or encoded video bitstream) is depicted as a thin line to emphasize its lower data volume when compared to the video picture stream (102). This encoded video data (104) (or encoded video bitstream) can be stored on a streaming server (105) for future use. One or more streaming client subsystems, for example... Figure 1Client subsystems (106) and (108) can access a streaming server (105) to retrieve copies (107) and (109) of encoded video data (104). Client subsystem (106) may include, for example, a video decoder (or mesh decoder) (110) in an electronic device (130). The video decoder (110) decodes the incoming copy (107) of the encoded video data and creates an outgoing stream (111) of video images that can be rendered on a display (112) (e.g., a screen) or other rendering device (not depicted). In some streaming systems, the encoded video data (104), (107), and (109) (e.g., video bitstreams) may be encoded according to certain video coding / compression standards. Examples of such standards include ITU-T (International Telecommunication Union-Telecommunication Standardization Sector, ITU-T) Recommendation H.265. In this example, the video coding standard under development is informally referred to as Versatile Video Coding (VVC). The topics that are exposed can be used in the context of VVC.
[0028] Note that electronic devices (120) and (130) may include other components (not shown). For example, electronic device (120) may include a video decoder (not shown), and electronic device (130) may also include a video encoder (not shown).
[0029] Figure 2 An example block diagram of a video decoder (or mesh decoder) (210) is shown. The video decoder (210) may be included in an electronic device (230). The electronic device (230) may include a receiver (231) (e.g., a receiving circuitry system). The video decoder (210) may be used in place of... Figure 1 The video decoder (110) in the example.
[0030] The receiver (231) can receive, for example, one or more encoded video sequences included in a bitstream, to be decoded by the video decoder (210). In one aspect, one encoded video sequence is received at a time, wherein the decoding of each encoded video sequence is independent of the decoding of other encoded video sequences. The encoded video sequences can be received from a channel (201), which can be a hardware / software link to a storage device storing the encoded video data. The receiver (231) can receive the encoded video data along with other data, such as encoded audio data and / or auxiliary data streams, which can be forwarded to their respective user entities (not depicted). The receiver (231) can separate the encoded video sequences from other data. To prevent network jitter, a buffer memory (215) can be coupled between the receiver (231) and the entropy decoder / parser (220) (hereinafter referred to as "parser (220)"). In some applications, the buffer memory (215) is part of the video decoder (210). In other applications, the buffer memory can be external to the video decoder (210) (not depicted). In other applications, a buffer memory (not depicted) may exist outside the video decoder (210) to prevent network jitter, for example, and another buffer memory (215) may exist inside the video decoder (210) to handle broadcast timing, for example. The buffer memory (215) may not be necessary, or may be small, when the receiver (231) is receiving data from a store / forward device with sufficient bandwidth and controllability, or from an isochronous synchronization network. For optimal use of packet networks such as the Internet, a buffer memory (215) may be required, which may be relatively large and advantageously have an adaptive size, and may be implemented at least partially in the operating system or in a similar element (not depicted) outside the video decoder (210).
[0031] The video decoder (210) may include a parser (220) to reconstruct symbols (221) from the encoded video sequence. These symbols include: information for managing the operation of the video decoder (210), and potential information for controlling rendering devices such as rendering devices (212) (e.g., a display screen), which are not part of the electronic device (230) but may be coupled to it. Figure 2As shown. Control information for the rendering device can be in the form of Supplemental Enhancement Information (SEI) messages or Video Usability Information (VUI) parameter set fragments (not depicted). The parser (220) can parse / decode the received encoded video sequence. The encoding of the encoded video sequence can be performed according to video coding techniques or standards and can follow various principles, including variable-length coding, Huffman coding, arithmetic coding with or without context sensitivity, etc. The parser (220) can extract a subgroup parameter set of at least one subgroup of pixels in the subgroups of the encoded video sequence for use in the video decoder based on at least one parameter corresponding to a group. Subgroups can include Group of Pictures (GOP), pictures, tiles, slices, macroblocks, coding units (CU), blocks, transform units (TU), prediction units (PU), etc. The parser (220) can also extract information from the encoded video sequence, such as transform coefficients, quantizer parameter values, motion vectors, etc.
[0032] The parser (220) can perform entropy decoding / parsing operations on the video sequence received from the buffer memory (215) to create symbols (221).
[0033] Depending on the type of the encoded video picture or a portion thereof (e.g., inter-frame and intra-frame pictures, inter-frame and intra-frame blocks) and other factors, the reconstruction of the symbol (221) may involve multiple different units. Which units are involved and how they are involved can be controlled by subgroup control information parsed from the encoded video sequence by the parser (220). For clarity, such subgroup control information flow between the parser (220) and the following multiple units is not depicted.
[0034] In addition to the functional blocks already mentioned, the video decoder (210) can be conceptually subdivided into multiple functional units as described below. In a practical implementation operating under commercial constraints, many of these units interact closely with each other and can be at least partially integrated with each other. However, for the purposes of describing the disclosed subject matter, it is appropriate to conceptually subdivide it into the functional units described below.
[0035] The first unit is the scaler / inverse transform unit (251). The scaler / inverse transform unit (251) receives quantization transform coefficients as symbols (221) from the parser (220) and control information, including which transform to use, block size, quantization factor, quantization scaling matrix, etc. The scaler / inverse transform unit (251) can output blocks containing sample values that can be input into the aggregator (255).
[0036] In some cases, the output samples of the scaler / inverse transform unit (251) may belong to intra-coded blocks. Intra-coded blocks are blocks that do not use predictive information from previously reconstructed images, but can use predictive information from previously reconstructed portions of the current image. Such predictive information can be provided by the intra-picture prediction unit (252). In some cases, the intra-picture prediction unit (252) uses surrounding reconstructed information extracted from the current picture buffer (258) to generate blocks of the same size and shape as the blocks in the reconstruction. For example, the current picture buffer (258) buffers the partially reconstructed current image and / or the fully reconstructed current image. In some cases, the aggregator (255) adds the predictive information already generated by the intra-picture prediction unit (252) to the output sample information provided by the scaler / inverse transform unit (251) on a per-sample basis.
[0037] In other cases, the output samples of the scaler / inverse transform unit (251) may belong to inter-frame coded blocks and potentially be motion-compensated. In such cases, the motion compensation prediction unit (253) can access the reference image memory (257) to extract samples for prediction. After motion compensation of the extracted samples according to the symbols (221) belonging to the block, these samples can be added by the aggregator (255) to the output of the scaler / inverse transform unit (251) (referred to in this case as residual samples or residual signals) to generate output sample information. The address in the reference image memory (257) from which the motion compensation prediction unit (253) extracts its prediction samples can be controlled by motion vectors, which are provided to the motion compensation prediction unit (253) in the form of symbols (221), which may have, for example, X components, Y components, and reference image components. Motion compensation may also include interpolation of sample values extracted from the reference image memory (257) when using subsample precise motion vectors, motion vector prediction mechanisms, etc.
[0038] The output samples of the aggregator (255) can undergo various loop filtering techniques in the loop filter unit (256). Video compression techniques may include in-loop filtering techniques controlled by parameters available to the loop filter unit (256) as included in the encoded video sequence (also referred to as the encoded video bitstream) and as symbols (221) from the parser (220). Video compression may also respond to metadata acquired during decoding of previous (in decoding order) portions of the encoded picture or encoded video sequence, as well as to previously reconstructed and loop-filtered sample values.
[0039] The output of the loop filter unit (256) can be a sample stream, which can be output to the rendering device (212) and stored in the reference image memory (257) for use in future inter-frame image prediction.
[0040] Once fully reconstructed, certain encoded images can be used as reference images for future predictions. For example, once the encoded image corresponding to the current image has been fully reconstructed and that encoded image (by, for example, the parser (220)) is identified as the reference image, the current image buffer (258) can become part of the reference image memory (257), and a new current image buffer can be reallocated before the reconstruction of subsequent encoded images begins.
[0041] The video decoder (210) can perform decoding operations according to standards or predetermined video compression technologies such as those specified in ITU-T Recommendation H.265. An encoded video sequence may conform to the syntax specified by the video compression technology or standard used, in the sense that the encoded video sequence follows the syntax of the video compression technology or standard and in the sense that a configuration file is documented in the video compression technology or standard. Specifically, the configuration file may select certain tools from all available tools in the video compression technology or standard as tools available only under that configuration file. For compliance, the complexity of the encoded video sequence may also be required to be within limits defined by the hierarchy of the video compression technology or standard. In some cases, the hierarchy limits the maximum picture size, maximum frame rate, maximum reconstruction sampling rate (measured in megasamples per second, for example), maximum reference picture size, etc. In some cases, the limitations set by the hierarchy can be further restricted by the Hypothetical Reference Decoder (HRD) specification and metadata managed by the HRD buffer used to signal in the encoded video sequence.
[0042] On one hand, the receiver (231) can receive additional (redundant) data along with the encoded video. The additional data can be included as part of the encoded video sequence. The additional data can be used by the video decoder (210) to properly decode the data and / or more accurately reconstruct the original video data. The additional data can be, for example, in the form of temporal, spatial, or signal-to-noise ratio (SNR) enhancement layers, redundant slices, redundant images, forward error correction codes, etc.
[0043] Figure 3 An example block diagram of a video encoder (grid encoder) (303) is shown. The video encoder (303) is included in an electronic device (320). The electronic device (320) includes a transmitter (340) (e.g., a transmission circuit system). The video encoder (303) can be used in place of Figure 1 The video encoder (103) in the example.
[0044] The video encoder (303) can obtain data from the video source (301) (which is not...). Figure 3 In one example, an electronic device (320) receives a video sample, and the video source (301) can capture a video image to be encoded by a video encoder (303). In another example, the video source (301) is part of the electronic device (320).
[0045] A video source (301) can provide a sequence of source video samples in the form of a digital video sample stream to be encoded by a video encoder (303). This digital video sample stream can have any suitable bit depth (e.g., 8-bit, 10-bit, 12-bit, ...), any color space (e.g., BT.601YCrCb, RGB, ...), and any suitable sampling structure (e.g., YCrCb 4:2:0, YCrCb 4:4:4). In a media service system, the video source (301) can be a storage device storing previously prepared video. In a video conferencing system, the video source (301) can be a camera device capturing local image information as a video sequence. Video data can be provided as multiple individual pictures that are given motion when viewed sequentially. The pictures themselves can be organized as a spatial array of pixels, where each pixel can include one or more samples, depending on the sampling structure, color space, etc., used. The following description focuses on samples.
[0046] According to one aspect, the video encoder (303) can encode and compress images of the source video sequence into an encoded video sequence (343) in real time or under any other time constraints as required. Implementing an appropriate encoding rate is a function of the controller (350). In some aspects, the controller (350) controls and is functionally coupled to other functional units as described below. For clarity, the coupling is not depicted. Parameters set by the controller (350) may include rate control-related parameters (image skipping, quantizer, λ value of rate-distortion optimization techniques, etc.), image size, group of images (GOP) layout, maximum motion vector search range, etc. The controller (350) can be configured to have other suitable functions belonging to the video encoder (303) optimized for a specific system design.
[0047] In some respects, the video encoder (303) is configured to operate within an encoding / decoding loop. As an oversimplification, in this example, the encoding / decoding loop may include a source encoder (330) (e.g., responsible for creating symbols, such as a symbol stream, based on the input image to be encoded and a reference image) and a (local) decoder (333) embedded within the video encoder (303). The decoder (333) reconstructs the symbols, creating sample data in a manner similar to how the (remote) decoder would also create them. The reconstructed sample stream (sample data) is input to a reference image memory (334). Since decoding of the symbol stream produces bit-accurate results regardless of the decoder's location (local or remote), the contents of the reference image memory (334) are also bit-accurate between the local and remote encoders. In other words, the encoder's prediction portion "sees" the exact same sample values that the decoder "sees" during prediction as the reference image samples. This basic principle of reference image synchronization (and the drift that occurs when synchronization cannot be maintained, for example, due to channel errors) is also used in some related techniques.
[0048] The operation of the "local" decoder (333) can be combined with that of the "remote" decoder, as already mentioned above. Figure 2 The operation of the video decoder (210) described in detail is the same. However, a brief reference is also provided. Figure 2 Since symbols are available and the encoding of symbols into an encoded video sequence by the entropy encoder (345) and the decoding of symbols by the parser (220) can be lossless, the entropy decoding portion of the video decoder (210), which includes the buffer (215) and the parser (220), may not be fully implemented in the local decoder (333).
[0049] On the one hand, decoder techniques other than parsing / entropy decoding present in the decoder exist in the corresponding encoder in the same or substantially the same functional form. Therefore, the subject matter disclosed focuses on decoder operation. Because encoder techniques are inverses of the fully described decoder techniques, the description of encoder techniques can be simplified. A more detailed description is provided below in certain sections.
[0050] In some examples, during operation, the source encoder (330) may perform motion-compensated predictive coding, which predictively codes the input image with reference to one or more previously encoded images from the video sequence designated as "reference images". In this way, the encoding engine (332) encodes the differences between pixel blocks of the input image and pixel blocks of the reference image that can be selected as a predictive reference for the input image.
[0051] The local video decoder (333) can decode encoded video data of a picture that can be designated as a reference picture based on symbols created by the source encoder (330). The operation of the encoding engine (332) can be advantageously for lossy processing. When the encoded video data can be decoded by the video decoder (333), Figure 3 When decoded at (not shown), the reconstructed video sequence can typically be a copy of the source video sequence with some errors. The local video decoder (333) replicates the decoding process performed on the reference image by the video decoder and can store the reconstructed reference image in the reference image memory (334). In this way, the video encoder (303) can locally store a copy of the reconstructed reference image that shares the same content (no transmission errors) as the reconstructed reference image to be obtained by the remote video decoder.
[0052] The predictor (335) can perform a prediction search against the encoding engine (332). That is, for a new image to be encoded, the predictor (335) can search in the reference image memory (334) for sample data (as candidate reference pixel blocks) or certain metadata such as reference image motion vectors, block shapes, etc., that can be used as appropriate prediction references for the new image. The predictor (335) can operate pixel-by-pixel based on the sample blocks to find appropriate prediction references. In some cases, as determined by the search results obtained by the predictor (335), the input image may have prediction references obtained from multiple reference images stored in the reference image memory (334).
[0053] The controller (350) can manage the encoding operations of the source encoder (330), including, for example, the setting of parameters and subgroup parameters for encoding video data.
[0054] The outputs of all the functional units mentioned above can undergo entropy encoding in the entropy encoder (345). The entropy encoder (345) converts the symbols generated by the various functional units into an encoded video sequence by applying lossless compression to the symbols according to techniques such as Huffman coding, variable length coding, arithmetic coding, etc.
[0055] The transmitter (340) can buffer an encoded video sequence, such as that created by the entropy encoder (345), in preparation for transmission via a communication channel (360), which can be a hardware / software link to a storage device where the encoded video data will be stored. The transmitter (340) can combine the encoded video data from the video encoder (303) with other data to be transmitted, such as encoded audio data and / or auxiliary data streams (sources not shown).
[0056] The controller (350) can manage the operation of the video encoder (303). During encoding, the controller (350) can assign a certain encoded image type to each encoded image, which may affect the encoding techniques that can be applied to the corresponding image. For example, images can typically be assigned to one of the following image types:
[0057] Intra-frame pictures (I-pictures) can be encoded and decoded without using any other pictures in the sequence as prediction sources. Some video codecs allow different types of intra-frame pictures, including, for example, Independent Decoder Refresh (IDR) pictures.
[0058] Predictive images (P-images) can be encoded and decoded using intra-frame or inter-frame prediction that uses motion vectors and reference indices to predict sample values for each block.
[0059] Bidirectional predictive images (B-images) can be encoded and decoded using intra-frame or inter-frame predictions that predict sample values for each block using two motion vectors and a reference index. Similarly, multiple predictive images can be used for the reconstruction of a single block using more than two reference images and associated metadata.
[0060] Source images are typically spatially subdivided into multiple sample blocks (e.g., blocks of 4×4, 8×8, 4×8, or 16×16 samples), and encoded block by block. These blocks can be predictively coded with reference to other (already coded) blocks, which are determined by the coding assignment of the corresponding images applied to the blocks. For example, blocks of image I can be non-predictively coded, or blocks of image I can be predictively coded (spatial prediction or intra-frame prediction) with reference to already coded blocks of the same image. Pixel blocks of image P can be predictively coded with reference to a previously coded reference image via spatial prediction or via temporal prediction. Blocks of image B can be predictively coded with reference to one or two previously coded reference images via spatial prediction or via temporal prediction.
[0061] The video encoder (303) can perform encoding operations according to standards or predetermined video coding technologies such as ITU-T H.265 Recommendation. In the operation of the video encoder (303), various compression operations can be performed, including predictive coding operations utilizing temporal and spatial redundancy in the input video sequence. Therefore, the encoded video data can conform to the syntax specified by the video coding technology or standard being used.
[0062] On one hand, the transmitter (340) can transmit additional data along with the encoded video. The source encoder (330) can include such data as part of the encoded video sequence. The additional data may include temporal / spatial / SNR enhancement layers, other forms of redundant data such as redundant images and slices, SEI messages, VUI parameter set fragments, etc.
[0063] Video can be captured as multiple source images (video images) in a time-series manner. Intra-frame image prediction (often simply called intra-prediction) utilizes spatial correlations within a given image, while inter-frame image prediction utilizes (temporal or other) correlations between images. In the example, a specific image during encoding / decoding—referred to as the current image—is segmented into blocks. Where a block in the current image is similar to a reference block in a previously encoded and still buffered reference image in the video, the block in the current image can be encoded using a vector called a motion vector. The motion vector points to the reference block in the reference image, and when using multiple reference images, the motion vector can have a third dimension that identifies the reference images.
[0064] In some aspects, bidirectional prediction techniques can be used in inter-frame image prediction. According to bidirectional prediction, two reference images are used, such as a first reference image and a second reference image, both preceding the current image in the video in decoding order (but possibly past and future in display order). A block in the current image can be encoded using a first motion vector pointing to a first reference block in the first reference image and a second motion vector pointing to a second reference block in the second reference image. The block can be predicted using a combination of the first and second reference blocks.
[0065] In addition, merging mode techniques can be used in inter-frame image prediction to improve coding efficiency.
[0066] According to some aspects of this disclosure, predictions such as inter-frame picture prediction and intra-frame picture prediction are performed on a block-by-block basis. For example, according to the HEVC (High-Efficiency Video Coding) standard, pictures in a video picture sequence are segmented into Coding Tree Units (CTUs) for compression, with CTUs in the pictures having the same size, such as 64×64 pixels, 32×32 pixels, or 16×16 pixels. Typically, a CTU comprises three Coding Tree Blocks (CTBs), one luma CTB and two chroma CTBs. Each CTU can be recursively divided into one or more Coding Units (CUs) using a quadtree. For example, a 64×64 pixel CTU can be divided into one 64×64 pixel CU, or four 32×32 pixel CUs, or sixteen 16×16 pixel CUs. In the example, each CU is analyzed to determine the prediction type used for that CU, such as inter-frame prediction or intra-frame prediction. Based on temporal and / or spatial predictability, a CU is divided into one or more prediction units (PUs). Typically, each PU includes a luma prediction block (PB) and two chroma PBs. In one aspect, prediction operations in encoding / decoding are performed on a block-by-block basis. Using a luma prediction block as an example, a prediction block consists of a matrix of pixel values (e.g., luma values), such as 8×8 pixels, 16×16 pixels, 8×16 pixels, 16×8 pixels, etc.
[0067] Note that the video encoders (103) and (303) and the video decoders (110) and (210) can be implemented using any suitable technology. On the one hand, the video encoders (103) and (303) and the video decoders (110) and (210) can be implemented using one or more integrated circuits. On the other hand, the video encoders (103) and (303) and the video decoders (110) and (210) can be implemented using one or more processors that execute software instructions.
[0068] This disclosure provides techniques for improving quadrilateral triplet prediction in polygon mesh compression.
[0069] Advances in 3D (Three-Dimensional) capture, modeling, and rendering have facilitated the ubiquity of 3D content across numerous platforms and devices. Today, it's possible to capture a baby's first steps on one continent, allowing grandparents on another continent to watch (or even interact) and enjoy a fully immersive experience with their child. However, to achieve such realism, the models have become increasingly complex, and a significant amount of data is associated with their creation and consumption. 3D meshes are widely used to represent such immersive content.
[0070] A mesh can comprise several polygons describing the surface of a volumetric object. Each polygon can be defined by vertices in three-dimensional (3D) space and the connectivity information of those vertices. Vertex attributes such as color, normals, and displacement can be associated with mesh vertices. Attributes can also be associated with the mesh surface using a mapping information parametrically applied to the mesh in a two-dimensional (2D) attribute graph. This mapping can be described by a set of parametric coordinates associated with the mesh vertices, called UV coordinates or texture coordinates. The 2D attribute graph can be used to store high-resolution attribute information, such as textures, normals, and displacements. This information can be used for various purposes, such as texture mapping, shading, and mesh reconstruction.
[0071] In relevant examples, the quadrilateral triplet prediction scheme (or quadrilateral triplet prediction mode) predicts the positions of vertices in a polygonal mesh. For example... Figure 4 As shown, the quadrilateral triplet scheme can predict the position of vertex t by using the positions of its seven nearest neighbors a, b, p, o (located at the center of the grid, not shown), n, c, and d.
[0072] Quadrilateral triple prediction schemes can include quadrilateral triple prediction modes via parallelograms and quadrilateral triple prediction modes via edges.
[0073] Figure 5An example of a quadrilateral triple block prediction pattern via edges is shown. Figure 5 As shown, a vertex t in the grid (500) can be predicted by extrapolating the edges of the quadrilateral grid based on its nearest neighbors a, b, c, d, p, n, and o. In the example, the predicted value of vertex t is t0. 边 The following can be provided: p d =2o-d Equation (1) △ppp d Equation (2) t c =2n-c Equation (3) t cΔp =t c +△p Equation (4) t aΔn =t a +△n Equation (5) t 边 =(t cΔp +t aΔn Equation (6) / 2
[0074] Figure 6 An example of a quadrilateral triple block prediction pattern via a parallelogram is shown. Figure 6 As shown, a vertex t in the grid (600) can be predicted via a parallelogram based on its nearest neighbors a, b, c, d, p, n, and o. In the example, the predicted value t of vertex t is... 平行四边形 The following can be provided: p b =a + ob (7) Δp=pp b Equation (8) t o =p+no Equation (9) t oΔp =t o +Δp Equation (10) t oΔn =t o +Δn Equation (11) t 平行四边形 =(t oΔp +t oΔn Equation (12) / 2
[0075] exist Figure 7A An example of prediction across a parallelogram is shown in the figure, and in Figure 7B An example of prediction within a parallelogram is shown in the figure.
[0076] like Figure 7AAs shown, vertices (702), (704), and (706) can form a polygon. Vertices (704), (706), and (708) can form a polygon. Vertices (704), (708), (710), and (712) can form a polygon. According to the parallelogram prediction, the position of vertex (712) can be predicted based on vertices in adjacent polygons, such as vertices (704), (706), and (708). According to the parallelogram rules, the predicted (or predicted position) of vertex (712) is determined to be (714).
[0077] like Figure 7B As shown, according to the parallelogram prediction, the position of vertex (710) can be predicted based on vertices in the same polygon, such as vertices (704), (712), and (708). According to the parallelogram rules, the prediction (or predicted position) of vertex (710) is determined as (716).
[0078] Various aspects of this disclosure include numerous improvements to the prediction scheme for quadrilateral triple blocks.
[0079] like Figure 4 As shown, if the position of vertex t can be predicted using a quadrilateral triplet scheme, then vertex t can also be predicted using a parallelogram interior scheme, such as p. t ≈p p +p n -p o To predict, where p * It is the position of the corresponding vertex.
[0080] Since predictions within parallelograms are more accurate than predictions across parallelograms, the parallelogram-in-parallelogram scheme can be used as a backup (or alternative) prediction for the quadrilateral three-block scheme.
[0081] In the relevant example, an alternative prediction for the quadrilateral triplet scheme is a cross-parallelogram prediction. According to the cross-parallelogram prediction, the reference vertex used to predict the position of vertex t can include (o, p, a) or (o, p, b), such that p... t ≈p o +p p -p a or p t ≈p o +p p -p b To use the parallelogram interior scheme as an alternative prediction, the reference vertex for predicting the position of vertex t can include (p, n, o), such that p t ≈p p +p n -p o .
[0082] In the relevant examples, to determine which prediction scheme to use, the availability of in-parallelogram prediction is first checked. If in-parallelogram prediction is unavailable, the availability of quadrilateral triplet prediction is checked. However, according to the relevant examples, if quadrilateral triplet prediction is disabled, in-parallelogram prediction may not be reconsidered as an alternative prediction (or replacement prediction).
[0083] This disclosure includes, firstly, checking the availability of the quadrilateral three-block scheme, and subsequently checking the availability of the parallelogram in-plane prediction. Therefore, if the quadrilateral three-block scheme is shut down and becomes unavailable for some reason, the parallelogram in-plane prediction can still be reconsidered as an alternative prediction to the quadrilateral three-block scheme.
[0084] In the relevant example, when quadrilateral trip prediction is selected (or available), prediction candidates may include quadrilateral trip prediction via parallelogram, quadrilateral trip prediction via edge, custom prediction 1, and custom prediction 2.
[0085] In one aspect of this disclosure, when quadrilateral triplet prediction is selected (or available), prediction candidates may include quadrilateral triplet prediction via parallelogram, quadrilateral triplet prediction via edge, parallelogram in-plane prediction, and custom prediction. In an example, custom prediction may include an average prediction mode or an incremental coding mode. In an example, a prediction for a vertex may be determined based on a predefined order of prediction candidates, such as quadrilateral triplet prediction via parallelogram, quadrilateral triplet prediction via edge, parallelogram in-plane prediction, and custom prediction. In an example, the encoder calculates the cost value between each of the prediction candidates for the current vertex and the current vertex, and selects the prediction corresponding to the minimum cost value from the prediction candidates. The encoder may then signal an index to the decoder to indicate which prediction candidate has been selected.
[0086] Figure 8 A flowchart outlining a process (800) according to one aspect of this disclosure is shown. The process (800) can be used in a mesh decoder. In various aspects, the process (800) is executed by a processing circuitry system, such as a processing circuitry system that performs the functions of a mesh decoder (110), a processing circuitry system that performs the functions of a mesh decoder (210), etc. In some aspects, the process (800) is implemented as software instructions, so that the processing circuitry system executes the process (800) when the software instructions are executed. The process begins at (S801) and proceeds to (S810).
[0087] At (S810), a bit stream including encoded information of the grid is received. The grid includes the current vertex and multiple nearest neighbor vertices of the current vertex.
[0088] At (S820), it is determined whether the quadrilateral ternary prediction mode is applicable to the current vertex. In the quadrilateral ternary prediction mode, the current vertex is predicted based on a subset of multiple nearest neighbor vertices.
[0089] At (S830), when the quadrilateral triplet prediction pattern is available for the current vertex, a prediction pattern is determined from multiple candidate prediction patterns. The multiple candidate prediction patterns include the quadrilateral triplet prediction pattern.
[0090] At (S840), the current vertex is reconstructed based on the prediction pattern.
[0091] On one hand, subsets of multiple nearest-neighbor vertices are located in three quadrilaterals that are connected edge-to-edge to form an L-shape.
[0092] On one hand, when the quadrilateral three-block prediction pattern is not available for the current vertex, it is determined whether the parallelogram-in-the-inside prediction pattern is available for the current vertex. If the parallelogram-in-the-inside prediction pattern is available for the current vertex, the prediction pattern is determined to be the parallelogram-in-the-inside prediction pattern.
[0093] On the one hand, when the quadrilateral three-block prediction mode is not available for the current vertex and the in-parallelogram prediction mode is not available, the prediction mode is determined to be the cross-parallelogram prediction mode.
[0094] On one hand, the quadrilateral triple prediction pattern includes either the quadrilateral triple prediction pattern via parallelograms or the quadrilateral triple prediction pattern via edges.
[0095] On the one hand, multiple candidate prediction modes include quadrilateral triple block prediction mode via parallelogram, quadrilateral triple block prediction mode via edge, parallelogram in-space prediction mode, and custom prediction mode.
[0096] On one hand, an index is received from the encoded information. Based on the index, a prediction mode is selected from multiple candidate prediction modes.
[0097] On one hand, multiple candidate prediction patterns include an average prediction pattern following a quadrilateral triplet prediction pattern. The average prediction pattern is configured to determine candidate predictions based on the average of two or more of the nearest neighbor vertices among multiple nearest neighbor vertices. Two or more nearest neighbor vertices and the current vertex are included in the same quadrilateral.
[0098] On one hand, multiple candidate prediction patterns include an incremental encoding pattern following the quadrilateral triplet prediction pattern. The incremental encoding pattern is configured to determine candidate prediction values based on the difference between the current vertex and one of its nearest neighbor vertices.
[0099] Then, the process proceeds to (S899) and ends.
[0100] The process (800) can be adjusted as appropriate. Steps in the process (800) can be modified and / or omitted. Additional steps can be added. Any suitable implementation order can be used.
[0101] Figure 9 A flowchart outlining a process (900) according to one aspect of this disclosure is shown. The process (900) can be used in a mesh encoder. In various aspects, the process (900) is executed by a processing circuitry system, such as a processing circuitry system that performs the functions of a mesh encoder (103), a processing circuitry system that performs the functions of a mesh encoder (303), etc. In some aspects, the process (900) is implemented as software instructions, so that the processing circuitry system executes the process (900) when the software instructions are executed. The process begins at (S901) and proceeds to (S910).
[0102] At (S910), it is determined whether the quadrilateral triplet prediction mode is applicable to the current vertex in the mesh. The current vertex includes multiple nearest neighbor vertices in the mesh. In the quadrilateral triplet prediction mode, the current vertex is predicted based on a subset of multiple nearest neighbor vertices.
[0103] At (S920), when the quadrilateral triplet prediction pattern is available for the current vertex, a prediction pattern is determined from multiple candidate prediction patterns. The multiple candidate prediction patterns include the quadrilateral triplet prediction pattern.
[0104] At (S930), the current vertex is encoded into the bitstream based on the prediction pattern.
[0105] On one hand, subsets of multiple nearest-neighbor vertices are located in three quadrilaterals that are connected edge-to-edge to form an L-shape.
[0106] On one hand, when the quadrilateral three-block prediction pattern is not available for the current vertex, it is determined whether the parallelogram-in-the-inside prediction pattern is available for the current vertex. If the parallelogram-in-the-inside prediction pattern is available for the current vertex, the prediction pattern is determined to be the parallelogram-in-the-inside prediction pattern.
[0107] On the one hand, when the quadrilateral three-block prediction mode is not available for the current vertex and the in-parallelogram prediction mode is not available, the prediction mode is determined to be the cross-parallelogram prediction mode.
[0108] On one hand, the quadrilateral triple prediction pattern includes either the quadrilateral triple prediction pattern via parallelograms or the quadrilateral triple prediction pattern via edges.
[0109] On the one hand, multiple candidate prediction modes include quadrilateral triple block prediction mode via parallelogram, quadrilateral triple block prediction mode via edge, parallelogram in-space prediction mode, and custom prediction mode.
[0110] On one hand, the index is encoded into the bitstream. This index indicates which of several candidate prediction modes is the determined prediction mode.
[0111] On one hand, multiple candidate prediction patterns include an average prediction pattern following a quadrilateral triplet prediction pattern. The average prediction pattern is configured to determine candidate predictions based on the average of two or more of the nearest neighbor vertices among multiple nearest neighbor vertices. Two or more nearest neighbor vertices and the current vertex are included in the same quadrilateral.
[0112] On one hand, multiple candidate prediction patterns include an incremental encoding pattern following the quadrilateral triplet prediction pattern. The incremental encoding pattern is configured to determine candidate prediction values based on the difference between the current vertex and one of its nearest neighbor vertices.
[0113] Then, the process proceeds to (S999) and ends.
[0114] The process (900) can be adjusted as appropriate. Steps in the process (900) can be modified and / or omitted. Additional steps can be added. Any suitable implementation order can be used.
[0115] In one aspect, methods for processing grid data include processing the bitstream of the grid data according to format rules. For example, the bitstream can be a bitstream decoded / encoded using any of the decoding and / or encoding methods described herein. Format rules can specify one or more constraints on the bitstream and / or one or more processes performed by the decoder and / or encoder.
[0116] In the example, the bitstream of grid data is processed according to format rules. The bitstream includes the grid's encoding information. The grid includes the current vertex and its multiple nearest neighbors. The format rules specify whether a quadrilateral triplet prediction pattern is available for the current vertex. Under the quadrilateral triplet prediction pattern, the current vertex is predicted based on a subset of its multiple nearest neighbors. The format rules specify that when a quadrilateral triplet prediction pattern is available for the current vertex, a prediction pattern is determined from multiple candidate prediction patterns. The multiple candidate prediction patterns include the quadrilateral triplet prediction pattern. The format rules specify that the current vertex is processed based on the prediction pattern.
[0117] 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, Figure 10A computer system (1000) suitable for implementing certain aspects of the disclosed subject matter is shown.
[0118] Computer software can be coded using any suitable machine code or computer language. Machine code or computer language can be subjected to mechanisms such as assembly, compilation, and linking to create code that includes instructions. These instructions can be executed directly by one or more computer central processing units (CPUs), graphics processing units (GPUs), etc., or through interpretation, microcode execution, etc.
[0119] The instructions can be executed on various types of computers or components thereof, including, for example, personal computers, tablet computers, servers, smartphones, gaming devices, Internet of Things devices, etc.
[0120] Figure 10 The components shown for the computer system (1000) are examples and are not intended to impose any limitation on the scope or functionality of computer software implementing the aspects of this disclosure. The configuration of the components should also not be construed as having any dependency or requirement relating to any one or a combination of the components shown in the example aspects of the computer system (1000).
[0121] The computer system (1000) may include certain human-machine interface input devices. Such human-machine interface input devices can respond to input made by one or more human users through, for example, tactile input (e.g., keystrokes, swipes, data glove movements), audio input (e.g., voice, tapping), visual input (e.g., gestures), and olfactory input (not depicted). The human-machine interface device can also be used to capture certain media that are not necessarily directly related to conscious input made by humans, such as audio (e.g., voice, music, ambient sounds), images (e.g., scanned images, photographic images acquired from still image capturing devices), and video (e.g., two-dimensional video, three-dimensional video including stereoscopic video).
[0122] Human-machine interface input devices may include one or more of the following (only one of each is depicted): keyboard (1001), mouse (1002), touchpad (1003), touch screen (1010), data glove (not shown), joystick (1005), microphone (1006), scanner (1007), and camera device (1008).
[0123] The computer system (1000) may also include certain human-machine interface output devices. Such human-machine interface output devices can stimulate the senses of one or more human users through, for example, tactile output, sound, light, and smell / taste. Such human-machine interface output devices may include: haptic output devices (e.g., haptic feedback via a touchscreen (1010), data gloves (not shown), or joystick (1005), but haptic feedback devices that are not used as input devices may also exist); audio output devices (e.g., speakers (1009), headphones (not depicted)); visual output devices (e.g., screens (1010), including CRT (Cathode Ray Tube) screens, LCD (Liquid Crystal Display) screens, plasma screens, OLED (Organic Light Emitting Diode) screens, each screen may or may not have touchscreen input capability, each screen may or may not have haptic feedback capability—some of the screens may be able to output two-dimensional visual output or more than three-dimensional output in a manner such as stereoscopic output; virtual reality glasses (not depicted); holographic displays and ashtrays (not depicted)); and printers (not depicted).
[0124] The computer system (1000) may also include human-accessible storage devices and their associated media, such as optical media including CD / DVD ROM (Read-Only Memory, ROM) / RW (1020) having media such as CD / DVD (1021), thumb drives (1022), removable hard disk drives or solid-state drives (1023), conventional magnetic media such as magnetic tape and floppy disks (not depicted), devices based on dedicated ROM / ASIC (Application Specific Integrated Circuit, ASIC) / PLD (Programable Logic Device, PLD) such as security dongles (not depicted), etc.
[0125] Those skilled in the art should also understand that the term "computer-readable medium" as used in connection with the subject matter disclosed herein does not include transmission media, carrier waves, or other transient signals.
[0126] The computer system (1000) may also include interfaces (1054) to one or more communication networks (1055). The networks may be, for example, wireless, wired, or optical. The networks may also be local area, wide area, metropolitan area, vehicular and industrial, real-time, latency-tolerant, etc. Examples of networks include: local area networks such as Ethernet and wireless LANs; cellular networks including GSM (Global System for Mobile Communications), 3G (the Third Generation), 4G (the Fourth Generation), 5G (the Fifth Generation), LTE (Long Term Evolution), etc.; cable or wireless wide area digital networks including cable TV, satellite TV, and terrestrial broadcast TV; and vehicle and industrial networks including CANBus (Controller Area Network Bus), etc. Some networks typically require external network interface adapters that attach to certain general-purpose data ports or peripheral buses (1049) (such as, for example, the USB (Universal Serial Bus, USB) port of the computer system (1000); other networks are typically integrated into the core of the computer system (1000) by attaching to system buses as described below (e.g., to an Ethernet interface in a PC (Personal Computer, PC) computer system or to a cellular network interface in a smartphone computer system). Using any of these networks, the computer system (1000) can communicate with other entities. Such communication can be one-way receiving (e.g., broadcasting TV), one-way transmitting (e.g., to a CANBus device), or bidirectional, such as to other computer systems using local area digital networks or wide area digital networks. Certain protocols and protocol stacks can be used on each of these networks and network interfaces as described above.
[0127] The human-machine interface devices, human-accessible storage devices, and network interfaces mentioned above can be attached to the core (1040) of the computer system (1000).
[0128] The core (1040) may include one or more central processing units (CPU) (1041), graphics processing units (GPUs) (1042), dedicated programmable processing units in the form of field-programmable gate areas (FPGAs) (1043), hardware accelerators (1044) for certain tasks, graphics adapters (1050), etc. These devices, along with read-only memory (ROM) (1045), random access memory (1046), and internal mass storage devices (1047) such as internal non-user-accessible hard disk drives, SSDs (Solid-State Drives), etc., can be connected via the system bus (1048). In some computer systems, the system bus (1048) may be accessed in the form of one or more physical plugs to allow for expansion via additional CPUs, GPUs, etc. Peripheral devices may be directly attached to the core's system bus (1048) or may be attached to the core's system bus (1048) via a peripheral bus (1049). In the example, the screen (1010) can be connected to the graphics adapter (1050). The peripheral bus architecture includes PCI (Peripheral Component Interconnect), USB, etc.
[0129] The CPU (1041), GPU (1042), FPGA (1043), and accelerator (1044) can execute certain instructions, which, when combined, constitute the aforementioned computer code. This computer code can be stored in ROM (1045) or RAM (Random Access Memory) (1046). Transient data can also be stored in RAM (1046), while permanent data can be stored, for example, in an internal mass storage device (1047). Fast storage and retrieval of any memory device within the memory device can be achieved using a cache memory, which can be closely associated with one or more CPUs (1041), GPUs (1042), mass storage devices (1047), ROMs (1045), RAMs (1046), etc.
[0130] Computer-readable media may have computer code thereon for performing operations of various computer implementations. The media and computer code may be specifically designed and constructed for the purposes of this disclosure, or the media and computer code may be of a type known and available to those skilled in the art of computer software.
[0131] As an example, and not a limitation, a computer system with an architecture (1000) and, in particular, a core. (1040) can provide functionality by having a processor (including CPU, GPU, FPGA, accelerator, etc.) execute software embodied in one or more tangible computer-readable media. Such computer-readable media can be media associated with user-accessible mass storage devices as described above, and certain storage devices of the core (1040) having non-transitory characteristics, such as mass storage devices (1047) or ROMs (1045) within the core. Software implementing various aspects of this disclosure can be stored in such devices and executed by the core (1040). Depending on specific needs, the computer-readable media may include one or more memory devices or chips. The software can enable the core... (1040) and in particular, the processors therein (including CPUs, GPUs, FPGAs, etc.) perform the specific processing or a specific portion of the specific processing described herein, including defining data structures stored in RAM (1046) and modifying such data structures according to the processing defined by the software. Alternatively or as an alternative, the computer system may be provided with functionality by means of logic hardwired or otherwise embodied in circuitry (e.g., an accelerator (1044)), which may replace or operate with software to perform the specific processing or a specific portion of the specific processing described herein. Where appropriate, references to software may include logic, and references to logic may also include software. Where appropriate, references to computer-readable media may include circuitry storing software for execution (e.g., integrated circuits (ICs)), circuitry embodying logic for execution, or both. This disclosure includes any suitable combination of hardware and software.
[0132] The use of “at least one of…” or “one of…” in this disclosure is intended to include any one or a combination of the described elements. For example, references to at least one of A, B, or C; at least one of A, B, and C; at least one of A, B, and / or C; and at least one of A through C are intended to include only A, only B, only C, or any combination thereof. References to one of A or B and one of A and B are intended to include either A or B or (A and B). The use of “one of…” does not exclude any combination of the described elements where applicable, such as when the elements are not mutually exclusive.
[0133] While this disclosure has described several examples of various aspects, there are modifications, substitutions, and various alternative equivalents that fall within the scope of this disclosure. It will therefore be appreciated that those skilled in the art will be able to conceive of many systems and methods that, while not explicitly shown or described herein, embody the principles of this disclosure and are therefore within its spirit and scope.
[0134] The above disclosure also covers the features described below. Features can be combined in various ways, and are not limited to the combinations described below.
[0135] (1) A method for grid decoding, the method comprising: receiving a bit stream including encoded information of a grid, the grid including a current vertex and a plurality of neighboring vertices of the current vertex; determining whether a quadrilateral triplet prediction pattern is available for the current vertex, wherein the current vertex is predicted based on a subset of the plurality of neighboring vertices in the quadrilateral triplet prediction pattern; when the quadrilateral triplet prediction pattern is available for the current vertex, determining a prediction pattern from a plurality of candidate prediction patterns, the plurality of candidate prediction patterns including the quadrilateral triplet prediction pattern; and reconstructing the current vertex based on the prediction pattern.
[0136] (2) The method according to feature (1), wherein a subset of the plurality of nearest neighbor vertices is located in three quadrilaterals connected edge-to-edge to form an L shape.
[0137] (3) The method according to feature (1) or (2) further includes: when the quadrilateral triplet prediction mode is not available for the current vertex, determining whether the parallelogram in-between prediction mode is available for the current vertex; and when the parallelogram in-between prediction mode is available for the current vertex, determining the prediction mode as the parallelogram in-between prediction mode.
[0138] (4) The method according to any one of features (1) to (3) further includes: when the quadrilateral triplet prediction mode is not available for the current vertex and the parallelogram in-parallelogram prediction mode is not available, determining the prediction mode as a parallelogram-crossing prediction mode.
[0139] (5) The method according to any one of features (1) to (4), wherein the quadrilateral triplet prediction pattern includes one of a quadrilateral triplet prediction pattern via a parallelogram and a quadrilateral triplet prediction pattern via an edge.
[0140] (6) The method according to any one of features (1) to (5), wherein the plurality of candidate prediction modes include a quadrilateral triplet prediction mode via parallelogram, a quadrilateral triplet prediction mode via edge, a parallelogram in-parallelogram prediction mode and a custom prediction mode.
[0141] (7) The method according to any one of features (1) to (6), wherein determining the prediction mode further includes: determining an index from the encoded information; and determining the prediction mode indicated by the index from the plurality of candidate prediction modes.
[0142] (8) The method according to any one of features (1) to (7), wherein the plurality of candidate prediction patterns includes an average prediction pattern following the quadrilateral triplet prediction pattern, the average prediction pattern being configured to determine a candidate prediction value based on the average of two or more of the plurality of nearest neighbor vertices, the two or more of the nearest neighbor vertices and the current vertex being included in the same quadrilateral.
[0143] (9) The method according to any one of features (1) to (8), wherein the plurality of candidate prediction patterns includes an incremental coding pattern following the quadrilateral triplet prediction pattern, the incremental coding pattern being configured to determine a candidate prediction value based on the difference between the current vertex and one of the plurality of nearest neighbor vertices.
[0144] (10) A grid coding method, the method comprising: determining whether a quadrilateral triplet prediction pattern is available for a current vertex in a grid, the current vertex including a plurality of nearest neighbor vertices in the grid, wherein the current vertex is predicted based on a subset of the plurality of nearest neighbor vertices in the quadrilateral triplet prediction pattern; when the quadrilateral triplet prediction pattern is available for the current vertex, determining a prediction pattern from a plurality of candidate prediction patterns, the plurality of candidate prediction patterns including the quadrilateral triplet prediction pattern; and encoding the current vertex into a bitstream based on the prediction pattern.
[0145] (11) The method according to feature (10), wherein a subset of the plurality of nearest neighbor vertices is located in three quadrilaterals connected edge-to-edge to form an L shape.
[0146] (12) The method according to feature (10) or (11) further includes: when the quadrilateral triplet prediction mode is not available to the current vertex, determining whether the parallelogram in-between prediction mode is available to the current vertex; and when the parallelogram in-between prediction mode is available to the current vertex, determining the prediction mode as the parallelogram in-between prediction mode.
[0147] (13) The method according to any one of features (10) to (12) further includes: determining the prediction mode as a cross-parallelogram prediction mode when the quadrilateral triplet prediction mode is not available for the current vertex and the in-parallelogram prediction mode is not available.
[0148] (14) The method according to any one of features (10) to (13), wherein the quadrilateral triple prediction pattern includes one of a quadrilateral triple prediction pattern via a parallelogram and a quadrilateral triple prediction pattern via an edge.
[0149] (15) The method according to any one of features (10) to (14), wherein the plurality of candidate prediction modes include a quadrilateral triplet prediction mode via parallelogram, a quadrilateral triplet prediction mode via edge, a parallelogram in-parallelogram prediction mode and a custom prediction mode.
[0150] (16) The method according to any one of features (10) to (15), wherein the encoding further comprises: encoding an index into the bitstream, the index indicating which of the plurality of candidate prediction modes is the determined prediction mode.
[0151] (17) The method according to any one of features (10) to (16), wherein the plurality of candidate prediction patterns includes an average prediction pattern following the quadrilateral triplet prediction pattern, the average prediction pattern being configured to determine a candidate prediction value based on the average of two or more of the plurality of nearest neighbor vertices, the two or more of the nearest neighbor vertices and the current vertex being included in the same quadrilateral.
[0152] (18) The method according to any one of features (10) to (17), wherein the plurality of candidate prediction patterns includes an incremental coding pattern following the quadrilateral triplet prediction pattern, the incremental coding pattern being configured to determine a candidate prediction value based on the difference between the current vertex and one of the plurality of nearest neighbor vertices.
[0153] (19) A method for processing grid data, the method comprising: processing a bit stream of the grid data according to a format rule, wherein: the bit stream includes encoded information of a grid, the grid including a current vertex and a plurality of nearest neighbor vertices of the current vertex; and the format rule specifies: determining whether a quadrilateral trip prediction pattern is available for the current vertex, wherein the current vertex is predicted based on a subset of the plurality of nearest neighbor vertices in the quadrilateral trip prediction pattern; when the quadrilateral trip prediction pattern is available for the current vertex, determining a prediction pattern from a plurality of candidate prediction patterns, the plurality of candidate prediction patterns including the quadrilateral trip prediction pattern; and processing the current vertex based on the prediction pattern.
[0154] (20) The method according to feature (19), wherein the format rule specifies: when the quadrilateral triplet prediction pattern is not available for the current vertex, whether the parallelogram in-between prediction pattern is available for the current vertex; and when the parallelogram in-between prediction pattern is available for the current vertex, the prediction pattern is determined as the parallelogram in-between prediction pattern.
[0155] (21) An apparatus for mesh decoding, comprising a processing circuit system configured to perform the method according to any one of features (1) to (9).
[0156] (22) An apparatus for lattice coding, comprising a processing circuit system configured to perform the method according to any one of features (10) to (18).
[0157] (23) An apparatus for processing grid data, comprising a processing circuit system configured to perform the method according to any one of features (19) to (20).
[0158] (24) A non-transitory computer-readable storage medium storing instructions that, when executed by at least one processor, cause the at least one processor to perform the method according to any one of features (1) to (20).
Claims
1. A method of trellis decoding, characterized by, The method comprises: receiving a bitstream comprising encoded information of a mesh, the mesh comprising a current vertex and a plurality of neighboring vertices of the current vertex; determining whether a quad-triangle prediction mode is available for the current vertex, in which the current vertex is predicted based on a subset of the plurality of neighboring vertices; when the quad-triangle prediction mode is available for the current vertex, determining a prediction mode from a plurality of candidate prediction modes, the plurality of candidate prediction modes comprising the quad-triangle prediction mode; and reconstructing the current vertex based on the prediction mode.
2. The method of claim 1, wherein, The subset of the plurality of neighboring vertices is located in three quadrilaterals connected edge-to-edge in an L-shape.
3. The method of claim 1, wherein, The method further comprises: when the quad-triangle prediction mode is not available for the current vertex, determining whether a parallelogram-in prediction mode is available for the current vertex; and when the parallelogram-in prediction mode is available for the current vertex, determining the prediction mode as the parallelogram-in prediction mode.
4. The method of claim 1, wherein, The method further comprises: when the quad-triangle prediction mode is not available for the current vertex and a parallelogram-in prediction mode is not available, determining the prediction mode as a cross-parallelogram prediction mode.
5. The method of claim 1, wherein, The quad-triangle prediction mode comprises one of a quad-triangle prediction mode via parallelogram and a quad-triangle prediction mode via edge.
6. The method of claim 1, wherein, The plurality of candidate prediction modes comprises the quad-triangle prediction mode via parallelogram, the quad-triangle prediction mode via edge, the parallelogram-in prediction mode, and a custom prediction mode.
7. The method of claim 1, wherein, Determining the prediction mode further comprises: determining an index from the encoded information; and determining the prediction mode indicated by the index from the plurality of candidate prediction modes.
8. The method according to any one of claims 1 to 7, characterized in that, The plurality of candidate prediction modes comprises an average prediction mode after the quad-triangle prediction mode, the average prediction mode being configured to determine a candidate prediction value based on an average of two or more neighboring vertices of the plurality of neighboring vertices, the two or more neighboring vertices and the current vertex being included in a same quadrilateral; or The plurality of candidate prediction modes comprises an incremental encoding mode after the quad-triangle prediction mode, the incremental encoding mode being configured to determine a candidate prediction value based on a difference between the current vertex and one of the plurality of neighboring vertices.
9. A method of trellis encoding, characterized by, The method comprises: determining whether a quad-triangle prediction mode is available for a current vertex in a mesh, the current vertex comprising a plurality of neighboring vertices in the mesh, in which the current vertex is predicted based on a subset of the plurality of neighboring vertices; when the quad-triangle prediction mode is available for the current vertex, determining a prediction mode from a plurality of candidate prediction modes, the plurality of candidate prediction modes comprising the quad-triangle prediction mode; and encoding the current vertex into a bitstream based on the prediction mode.
10. The method of claim 9, wherein, The subset of the plurality of neighboring vertices is located in three quadrilaterals connected edge-to-edge in an L-shape.
11. The method of claim 9, wherein, The method further comprises: when the quad-triangle prediction mode is not available for the current vertex, determining whether a parallelogram-in prediction mode is available for the current vertex; and when the parallelogram-in prediction mode is available for the current vertex, determining the prediction mode as the parallelogram-in prediction mode.
12. The method of claim 9, wherein, The method further includes: when the quad-triangle prediction mode is not available for the current vertex and a parallelogram-in prediction mode is not available, determining the prediction mode as a cross-parallelogram prediction mode.
13. The method of claim 9, wherein, The quad-triangle prediction mode includes one of a quad-triangle prediction mode via parallelogram and a quad-triangle prediction mode via edge.
14. The method of claim 9, wherein, The plurality of candidate prediction modes includes the quad-triangle prediction mode via parallelogram, the quad-triangle prediction mode via edge, a parallelogram-in prediction mode, and a custom prediction mode.
15. The method of claim 9, wherein, The encoding further includes: encoding an index into the bitstream, the index indicating which of the plurality of candidate prediction modes is the determined prediction mode.
16. The method according to any one of claims 9 to 15, characterized in that, The plurality of candidate prediction modes includes an average prediction mode after the quad-triangle prediction mode, the average prediction mode configured to determine a candidate prediction value based on an average of two or more of the plurality of neighboring vertices, the two or more neighboring vertices and the current vertex being included in a same quad; or The plurality of candidate prediction modes includes an delta-encoding mode after the quad-triangle prediction mode, the delta-encoding mode configured to determine a candidate prediction value based on a difference between the current vertex and one of the plurality of neighboring vertices.
17. A method of processing mesh data, characterized by, The method includes: processing a bitstream of the mesh data according to a format rule, wherein: the bitstream includes encoded information of a mesh, the mesh including a current vertex and a plurality of neighboring vertices of the current vertex; and the format rule specifies: determining whether a quad-triangle prediction mode is available for the current vertex, under which the current vertex is predicted based on a subset of the plurality of neighboring vertices; when the quad-triangle prediction mode is available for the current vertex, determining a prediction mode from a plurality of candidate prediction modes, the plurality of candidate prediction modes including the quad-triangle prediction mode; and processing the current vertex based on the prediction mode.
18. A method of storing or transmitting a video bitstream, characterized in that, The video bitstream is generated according to the method of any of claims 9-16, or the video bitstream is decoded based on the method of any of claims 1-8.
19. A computer device, comprising: The computer device includes: processing circuitry, wherein the processing circuitry is configured to perform the method of any of claims 1-18.
20. A non-transitory computer-readable medium storing instructions, the method comprising: The instructions, when executed by a computer, cause the computer to perform the method of any of claims 1-18. The instructions, when executed by a computer, cause the computer to perform the method of any of claims 1-18.