Three-dimensional data packaging method and related product
By encapsulating 3D data with header information, entropy encoding results, and description information, and adopting a segmented transmission method, the problem of low data transmission efficiency of 3D point cloud data in existing technologies is solved, achieving more efficient data transmission and real-time and coherent multimedia data.
Patent Information
- Application Number
- CN202511585759.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-10-31
- Publication Date
- 2026-02-06
AI Technical Summary
The existing encapsulation format for 3D point cloud data results in excessive redundant information in the data files, large file sizes, low transmission efficiency, and affects the real-time performance and continuity of multimedia data.
The 3D data is transmitted in segments using an encapsulation format that includes header information, entropy coding results, and description information. This includes sending the segments corresponding to the first information and identifying each segment with an identifier. Entropy coding is used to reduce redundant information.
It effectively reduces redundant information in data files, improves the transmission efficiency of 3D data, and maintains the real-time performance and continuity of multimedia data.
Smart Images

Figure CN121486546A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of computer technology, and in particular to a three-dimensional data encapsulation method and related products. Background Technology
[0002] With the development of 3D reconstruction technology, free-viewpoint and interactive content has broken through the limitations of traditional videos viewed from a fixed perspective, allowing users to freely switch their focus from any angle. Among these, point cloud 3D reconstruction is an important branch of 3D reconstruction. It can use devices such as laser scanners and depth cameras to acquire large amounts of point cloud data, and then use a series of algorithms to convert these discrete point cloud data into continuous 3D models.
[0003] Existing point cloud data files are encapsulated for each point. This encapsulation format results in excessive redundant information in the data files, large file sizes, and slow loading speeds, which affects transmission efficiency. Furthermore, the receiving end needs to obtain the complete file before it can perform other processing on the point cloud data (e.g., reconstructing a 3D model), making it difficult to maintain the real-time performance and continuity of multimedia data.
[0004] Therefore, improving the transmission efficiency of 3D data is of great significance for maintaining the real-time performance and continuity of multimedia data. Summary of the Invention
[0005] This application provides a three-dimensional data encapsulation method and related products, wherein the related products include a three-dimensional data encapsulation device, an electronic device, and a computer-readable storage medium, which can improve the transmission efficiency of three-dimensional data.
[0006] Firstly, a three-dimensional data encapsulation method is provided, the method comprising:
[0007] Send a data file, which includes header information, entropy coding results, and descriptive information. The descriptive information is used to describe the three-dimensional data, and the entropy coding results are obtained by entropy coding the three-dimensional data. The three-dimensional data is used to reconstruct digital objects.
[0008] In any embodiment of this application, the data file includes N pieces of information, including the header information, the entropy encoding result, and the description information, where N is an integer greater than 3;
[0009] The transmitted data file includes:
[0010] Send the first fragment corresponding to the first information. The first information is one of N information. The first fragment includes second information and a first identifier. The second information is obtained based on the first information. The first identifier is used to identify the second information.
[0011] In any embodiment of this application, the first identifier includes: a start identifier located before the first information, and / or an end identifier located after the first information.
[0012] In any embodiment of this application, the first identifier includes first indication information and second indication information, wherein the first indication information indicates the encapsulation format of the data file and the second indication information indicates the first information.
[0013] In any embodiment of this application, the second information is obtained based on the first information, including:
[0014] The second information is obtained by adding a preset character to the first field of the first information, and the first field is the same as the first indication information.
[0015] In any embodiment of this application, the first fragment corresponding to the first information to be sent includes:
[0016] A bitstream is sent, the bitstream including at least one fragment and a checksum, the at least one fragment including a first fragment corresponding to the first information; the checksum is used to verify the at least one fragment.
[0017] In any embodiment of this application, the N pieces of information further include third information;
[0018] The method further includes:
[0019] Send a second fragment, which includes fourth information and a second identifier. The fourth information is obtained based on the third information, and the second identifier is used to identify the fourth information.
[0020] In any embodiment of this application, the N pieces of information further include metadata, which is used to assist the receiving end in reconstructing the digital object.
[0021] In any embodiment of this application, the header information includes an extended flag bit, which is used to indicate whether metadata exists.
[0022] In any embodiment of this application, the description information includes first description information and / or second description information, wherein the first description information is used to describe the information of the digital object, and the second description information is used to describe the category and attribute information of the data attributes of the three-dimensional data in the data file.
[0023] In any embodiment of this application, the three-dimensional data is a three-dimensional Gaussian splash, and the head information includes extended data related to the second descriptive information.
[0024] In any embodiment of this application, the attribute information includes the attribute information of a three-dimensional Gaussian splash, and the attribute information of the three-dimensional Gaussian splash includes at least one of the following: spherical harmonic coefficient, transparency factor, rotation factor, or scaling factor.
[0025] In any embodiment of this application, the three-dimensional data includes any one of the following: three-dimensional Gaussian splash, mesh data, or point cloud data.
[0026] In conjunction with any embodiment of this application, the method further includes:
[0027] The three-dimensional data is compressed to obtain the first data;
[0028] The first data is entropy encoded to obtain the entropy encoding result.
[0029] In conjunction with any embodiment of this application, the compression process includes one or more of the following: a first compression process based on geometric features, a second compression process based on prediction, a third compression process based on transformation, normalization processing, or quantization processing.
[0030] Secondly, a three-dimensional data encapsulation device is provided, the three-dimensional data encapsulation device comprising:
[0031] A generation unit is used to generate a data file, which includes header information, entropy encoding results, and descriptive information. The descriptive information describes the three-dimensional data, and the entropy encoding results are obtained by entropy encoding the three-dimensional data. The three-dimensional data is used to reconstruct digital objects.
[0032] A sending unit is used to send the data file.
[0033] In any embodiment of this application, the data file includes N pieces of information, including the header information, the entropy encoding result, and the description information, where N is an integer greater than 3;
[0034] The sending unit is specifically used to send a first fragment corresponding to the first information. The first information is one of N pieces of information. The first fragment includes second information and a first identifier. The second information is obtained based on the first information, and the first identifier is used to identify the second information.
[0035] In any embodiment of this application, the first identifier includes: a start identifier located before the first information, and / or an end identifier located after the first information.
[0036] In any embodiment of this application, the first identifier includes first indication information and second indication information, wherein the first indication information indicates the encapsulation format of the data file and the second indication information indicates the first information.
[0037] In any embodiment of this application, the second information is obtained based on the first information, including:
[0038] The second information is obtained by adding a preset character to the first field of the first information, and the first field is the same as the first indication information.
[0039] In conjunction with any embodiment of this application, the sending unit is further specifically used for:
[0040] A bitstream is sent, the bitstream including at least one fragment and a checksum, the at least one fragment including a first fragment corresponding to the first information; the checksum is used to verify the at least one fragment.
[0041] In any embodiment of this application, the N pieces of information further include third information;
[0042] The three-dimensional data encapsulation device further includes:
[0043] The sending unit is further configured to send a second fragment, the second fragment including fourth information and a second identifier, the fourth information being obtained based on the third information, and the second identifier being used to identify the fourth information.
[0044] In any embodiment of this application, the N pieces of information further include metadata, which is used to assist the receiving end in reconstructing the digital object.
[0045] In any embodiment of this application, the header information includes an extended flag bit, which is used to indicate whether metadata exists.
[0046] In any embodiment of this application, the description information includes first description information and / or second description information, wherein the first description information is used to describe the information of the digital object, and the second description information is used to describe the category and attribute information of the data attributes of the three-dimensional data in the data file.
[0047] In any embodiment of this application, the three-dimensional data is a three-dimensional Gaussian splash, and the head information includes extended data related to the second descriptive information.
[0048] In any embodiment of this application, the attribute information includes the attribute information of a three-dimensional Gaussian splash, and the attribute information of the three-dimensional Gaussian splash includes at least one of the following: spherical harmonic coefficient, transparency factor, rotation factor, or scaling factor.
[0049] In any embodiment of this application, the three-dimensional data includes any one of the following: three-dimensional Gaussian splash, mesh data, or point cloud data.
[0050] In any embodiment of this application, the three-dimensional data encapsulation device further includes:
[0051] A compression unit is used to compress the three-dimensional data to obtain first data;
[0052] An entropy coding unit is used to entropy code the first data to obtain the entropy coding result.
[0053] In conjunction with any embodiment of this application, the compression process includes one or more of the following: a first compression process based on geometric features, a second compression process based on prediction, a third compression process based on transformation, normalization processing, or quantization processing.
[0054] Thirdly, an electronic device is provided, characterized in that it includes: a processor and a memory, the memory being used to store computer program code, the computer program code including computer instructions;
[0055] When the processor executes the computer instructions, the electronic device performs the first aspect and any of its embodiments as described above.
[0056] Fourthly, another electronic device is provided, comprising: a processor, a transmitting device, an input device, an output device, and a memory, the memory being used to store computer program code, the computer program code including computer instructions;
[0057] When the processor executes the computer instructions, the electronic device performs the first aspect and any of its embodiments as described above.
[0058] Fifthly, a computer-readable storage medium is provided, wherein a computer program is stored in the computer-readable storage medium, the computer program including program instructions;
[0059] When the program instructions are executed by the processor, the processor is caused to perform the first aspect and any of its embodiments described above.
[0060] In a sixth aspect, a computer program product is provided, the computer program product comprising a computer program or instructions; when the computer program or instructions are executed on a computer, the computer causes the computer to perform the first aspect described above and any of its embodiments.
[0061] It should be understood that the above general description and the following detailed description are exemplary and explanatory only, and are not intended to limit this application.
[0062] In this application, the computer device with encapsulation function does not encapsulate each point in the 3D data, but encapsulates the 3D data according to an encapsulation format such as header information, entropy encoding results and description information. This encapsulation method can effectively reduce redundant information, so that the final data file can store point cloud data more compactly, thereby effectively improving the data transmission efficiency and maintaining the real-time performance and continuity of multimedia data. Attached Figure Description
[0063] To more clearly illustrate the technical solutions in the embodiments of this application or the background art, the accompanying drawings used in the embodiments of this application or the background art will be described below.
[0064] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with this application and, together with the specification, serve to explain the technical solutions of this application.
[0065] Figure 1 This is a schematic diagram of a network architecture provided in an embodiment of this application;
[0066] Figure 2 This is a flowchart illustrating a three-dimensional data encapsulation method provided in an embodiment of this application;
[0067] Figure 3 This is a schematic diagram of a segmented structure provided in an embodiment of this application;
[0068] Figure 4a This is a schematic diagram of a bitstream structure provided in an embodiment of this application;
[0069] Figure 4b This is a schematic diagram of another bitstream structure provided in an embodiment of this application;
[0070] Figure 4c This is a schematic diagram of another code stream structure provided in the embodiments of this application;
[0071] Figure 5 This is a schematic diagram of the structure of a three-dimensional data encapsulation device provided in an embodiment of this application;
[0072] Figure 6 This is a schematic diagram of the hardware structure of an electronic device provided in an embodiment of this application. Detailed Implementation
[0073] To enable those skilled in the art to better understand the present application, the technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present application, and not all embodiments. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the scope of protection of the present application.
[0074] The terms "first," "second," etc., in the specification, claims, and accompanying drawings of this application are used to distinguish different objects, not to describe a specific order. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover non-exclusive inclusion. For example, a process, method, system, product, or apparatus that includes a series of steps or units is not limited to the listed steps or units, but may optionally include steps or units not listed, or may optionally include other steps or units inherent to these processes, methods, products, or apparatuses.
[0075] In this document, the term "embodiment" means that a particular feature, structure, or characteristic described in connection with an embodiment may be included in at least one embodiment of this application. The appearance of this phrase in various places throughout the specification does not necessarily refer to the same embodiment, nor is it a separate or alternative embodiment mutually exclusive with other embodiments. It will be explicitly and implicitly understood by those skilled in the art that the embodiments described herein can be combined with other embodiments.
[0076] It should be understood that this application provides a method for encapsulating 3D data, applicable to production and consumption scenarios involving compact storage and streaming multimedia transmission, such as customized advertising embedding, multi-view live streaming, and immersive social interaction. In this application, the encapsulation method can be applied to the field of artificial intelligence (AI). Artificial intelligence refers to the theories, methods, technologies, and application systems that utilize digital computers or computer-controlled computing to simulate, extend, and expand human intelligence, perceive the environment, acquire knowledge, and use that knowledge to obtain optimal results. In other words, artificial intelligence is a comprehensive technology within computer science that attempts to understand the essence of intelligence and produce a new type of intelligent machine capable of reacting in a manner similar to human intelligence. Artificial intelligence also studies the design principles and implementation methods of various intelligent machines, enabling them to possess perception, reasoning, and decision-making capabilities.
[0077] Artificial intelligence (AI) is a comprehensive discipline encompassing a wide range of fields, including both hardware and software technologies. Fundamental AI technologies generally include sensors, dedicated AI chips, cloud computing, distributed storage, big data processing, operating / interactive systems, and mechatronics. AI software technologies primarily include computer vision, speech processing, natural language processing, as well as machine learning / deep learning, autonomous driving, and intelligent transportation.
[0078] Computer vision (CV) is a science that studies how to enable machines to "see." More specifically, it refers to machine vision, which uses cameras and computers to replace human eyes in tasks such as target recognition, tracking, and measurement, and further performs image processing to create images more suitable for human observation or transmission to instruments. As a scientific discipline, computer vision studies related theories and technologies, attempting to build artificial intelligence systems capable of extracting information from images or multidimensional data. Computer vision technologies typically include image processing, image recognition, image semantic understanding, image retrieval, optical character recognition (OCR), video processing, video semantic understanding, video content / behavior recognition, three-dimensional (3D) object reconstruction, 3D technology, virtual reality, augmented reality, simultaneous localization and mapping (SLAM), autonomous driving, intelligent transportation, and other technologies, as well as common biometric recognition technologies such as facial recognition and fingerprint recognition.
[0079] Before proceeding with the following explanation, let's define the technical terms that will appear in the text.
[0080] 1. Streaming media
[0081] Streaming media, also known as streaming media, refers to a technology that compresses a series of multimedia data and transmits it in segments over the internet for real-time viewing. Streaming media refers to continuous multimedia data in time, including audio, video, text, images, and animation streams. It features strong real-time and interactive capabilities. By utilizing streaming media technology, users do not need to wait for all multimedia data to download before browsing; instead, they can browse the multimedia data after a short startup delay, significantly reducing media startup time for the user.
[0082] 2. File format of existing data files
[0083] For example, existing data file formats may include, but are not limited to: polygon file format (PLY), SPLAT, and DRC.
[0084] The PLY file format is used to store image objects described as collections of polygons. It is a common point cloud storage format that supports text or binary storage. A PLY file includes a header and a data area. The header records the encoding method, encoding version, element categories (such as vertices, faces, edges, etc., and their numbers), and attribute information (including the storage type and attribute name of attribute fields). The data area stores 3D data, for example, storing each point line by line. While the PLY file format supports custom fields and types, making it flexible, it is also highly redundant, resulting in large file sizes and slow loading speeds.
[0085] The SPLAT file format is a binary file format with a compact structure. The diffraction of each splat point (i.e., the point to be rendered) is stored in a fixed order, such as position: 3×float32; size: 3×float32; color: 4×uint8; rotation: 4×uint8. The file size is relatively small, but it is not easily expanded.
[0086] DRC format is a compressed 3D file format that is compatible with PLY and SPLAT file formats, but does not support the insertion of custom fields.
[0087] 3. Three-dimensional data
[0088] 3D data is used to reconstruct digital objects (e.g., 3D models), and can include mesh data, point cloud data, and 3D Gaussian Splatting (3DGS). These will be described in detail below:
[0089] Mesh data is a collection of polygons consisting of vertices, edges, and faces. By using triangles or quadrilaterals as basic units, mesh data forms a continuous representation through connecting points, which can more intuitively identify the shape and topology of digital objects.
[0090] Point cloud data is a collection of data consisting of a large number of discrete points in three-dimensional space. Each point can contain attribute information such as three-dimensional position, color, or reflection intensity. Point cloud data has high precision, high resolution, and high-dimensional geometric information, and can intuitively represent the shape, surface, and texture of digital objects in space.
[0091] 3DGS can be understood as higher-order point cloud data. It's a technique that uses Gaussian distributions to model and render 3D scenes. Its core idea is to represent a scene as a set of 3D Gaussian distributions, which can effectively approximate the scene's geometry and appearance. Each point in 3DGS (called a Gaussian point) can contain parameters such as position (mean), covariance matrix (shape), transparency, and spherical harmonic coefficients (color). The spherical harmonic coefficients represent the color distribution of the Gaussian point under different viewpoints, capturing complex lighting and texture information. Compared to points in point cloud data, it has more dimensions.
[0092] 4. Magic number
[0093] In file formats, the magic number refers to a specific sequence of bytes at the beginning of a file, which can be used to identify the file type.
[0094] 5. K-dimensional tree (KD_tree, KD-tree)
[0095] A data structure for searching and classifying three-dimensional space is proposed, which is effectively used for point cloud data compression and filtering. The KD tree divides the space through a binary tree structure, reduces redundant data points, and enables fast querying and operations.
[0096] The core idea of the KD-tree compression algorithm is to approximate the original point cloud data by constructing a multi-dimensional binary tree. For example, the point cloud data is recursively divided into different subspaces, each identified by a node, thus forming a tree-like data structure. When constructing the KD-tree, data points are alternately divided based on the coordinate values of a certain dimension. In point cloud compression, the simplification level of the point cloud can be controlled by adjusting the tree depth; a shallower tree results in a larger divided region and less simplified point cloud data, thereby achieving a compression effect.
[0097] Please see Figure 1 , Figure 1 This is a schematic diagram of a network architecture provided in an embodiment of this application. Figure 1 As shown, the network architecture specifically includes data production equipment and data consumption equipment.
[0098] The main functions of data production equipment include data acquisition, data encoding, and data encapsulation. In one possible implementation, these three functions can be deployed on different computer devices; for example, data acquisition and data encoding can be deployed on a data acquisition device, and data encapsulation on a data encapsulation device. In another possible implementation, these three functions can also be deployed on the same computer device (e.g., ...). Figure 1The device A shown is not limited here. The computer device here can be a terminal or a server. Terminals include personal computers (PCs), smart mobile devices (such as smartphones), etc. Servers here can be independent servers, server clusters or distributed systems composed of multiple physical servers, or cloud servers providing basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communication, middleware services, domain name services, security services, content delivery networks (CDNs), and big data and artificial intelligence platforms.
[0099] It is understood that data acquisition refers to acquiring multimedia data (audio data or video data). This audio and video data are synchronized in both time and space. In one possible implementation, multimedia data is obtained by capturing sound-visual scenes from the real world through a data acquisition device. This data acquisition device can be a hardware component deployed within a data production device, or a hardware device connected to the data production device; the deployment method of the data acquisition device is not limited here. This data acquisition device can include audio devices (e.g., audio sensors or microphones), camera devices (e.g., cameras, ordinary cameras, stereo cameras, light field cameras, drone aerial photography), and sensing devices (e.g., laser devices, radar devices). For example, at least one data acquisition device can be deployed at specific locations in a real space to simultaneously acquire multimedia data within that space, such as multimedia data (e.g., 3D data) in a three-dimensional space used to provide a multi-degree-of-freedom viewing experience.
[0100] In another alternative implementation, the multimedia data is obtained by loading a first data file from another device (a device with a network connection to device A, such as device C). This first data file can be a file obtained by device C using an existing encapsulation format (such as the PLY file format, SPLAT file format, DRC format, etc.).
[0101] The data encoding process refers to the process of encoding raw multimedia data (audio data and / or video data) into a format suitable for subsequent processing through an encoder, while retaining key information (such as geometric information and attribute information of point cloud data), thereby effectively reducing the data size and transmission bandwidth.
[0102] Data encapsulation refers to the process of encapsulating compressed multimedia data according to the specified encapsulation format using an encapsulator to obtain a bitstream, that is, converting data into a bitstream. An encapsulation format, also known as a container format, is a way to package encoded multimedia data, metadata, and other information together to form a complete data file. Different encapsulation formats use different methods to organize and store multimedia data.
[0103] Among them, data consumption devices (such as Figure 1 The main functions of device B) shown include data decapsulation, data decoding, and data storage / presentation. This data consumption device can refer to a computer device used by a user of multimedia data (such as an object viewing point cloud media). This computer device can be a terminal, such as a personal computer (PC), a smart mobile device (such as a smartphone), a virtual reality (VR) device (such as a VR headset, VR glasses, etc.), smart home appliances, in-vehicle terminals, aircraft, etc. This computer device integrates a client. The client here can be a client with the function of displaying data information such as text, images, audio, and video, including but not limited to multimedia clients (e.g., video clients), social clients (e.g., instant messaging clients), information applications (e.g., news clients), entertainment clients (e.g., game clients), shopping clients, in-vehicle clients, browsers, etc. This client can be a standalone client or an embedded sub-client integrated into a client (e.g., a social client); there is no limitation here.
[0104] Understandably, data decapsulation is the reverse of data encapsulation, restoring data (i.e., compressed multimedia data) from a bitstream. Data decoding is the reverse of data encoding, restoring compressed multimedia data. Data storage refers to storing the decoded multimedia data (e.g., point cloud attribute information, point cloud coordinate data) according to the output format specification. Data rendering refers to rendering the decoded multimedia data (e.g., point cloud data) and outputting it to a data consumption device. For example, point cloud data can be rendered and displayed on the screen of a head-mounted display or other display device based on the current viewing position, viewing direction, or viewport.
[0105] In this application, the data file ultimately encapsulated by device A may include N pieces of information, including header information, entropy encoding result, and description information, where N is an integer greater than 3. The description information is used to describe the three-dimensional data, the entropy encoding result is obtained by entropy encoding the three-dimensional data, and the three-dimensional data is used to reconstruct the digital object. This encapsulation method can compactly store the information of the three-dimensional data for easy transmission.
[0106] For example, when sending data files later, device A can use a segmented transmission method. For instance, device A can send a bitstream to device B, which can include at least one segment. This can effectively solve problems such as network interruption and resource consumption during data transmission, thereby improving transmission efficiency and real-time performance. In addition, segmented transmission can also support breakpoint resumption. In this way, if an interruption occurs, it is not necessary to start from the beginning, but to continue uploading from the last segment position after the last transmission, thereby reducing resource waste.
[0107] For ease of distinction, the data file in this application refers to the file in which three-dimensional data is packaged into a compact storage using the packaging method provided in the embodiments of this application, while the file obtained by packaging three-dimensional data using existing packaging formats (such as the PLY file format, SPLAT file format, DRC format, etc.) is called an existing file.
[0108] It should be understood that the executing entity of the embodiments of this application is a first communication device, which can be a device for performing three-dimensional data encapsulation (hereinafter referred to as a three-dimensional data encapsulation device). The first communication device can be any electronic device capable of executing the technical solutions disclosed in the embodiments of the method of this application. For example, the first communication device can be one of the following: a server or a terminal. It should be understood that the embodiments of the method of this application can also be implemented by a processor executing computer program code. The embodiments of this application will be described below with reference to the accompanying drawings.
[0109] Please see Figure 2 , Figure 2 This is a flowchart illustrating a three-dimensional data encapsulation method provided in an embodiment of this application. The method mainly describes how to encapsulate three-dimensional data into a compactly stored data file to improve data transmission efficiency. This method can be executed by a first communication device (such as a three-dimensional data encapsulation device) and a second communication device (i.e., a receiving end, such as a data consumption device). The first communication device can be the one described above. Figure 1 The device A shown (e.g., a server) can have the second communication device described above. Figure 1 Device B (e.g., terminal) is shown.
[0110] like Figure 2 As shown, this 3D data encapsulation method includes, but is not limited to, the following steps:
[0111] Step S201: Generate a data file. The data file includes header information, entropy encoding results, and description information. The description information is used to describe the three-dimensional data. The entropy encoding results are obtained by entropy encoding the three-dimensional data. The three-dimensional data is used to reconstruct digital objects.
[0112] For example, the aforementioned descriptive information may include first descriptive information and / or second descriptive information, wherein the first descriptive information is used to describe the information of the digital object, and the second descriptive information is used to describe the category and attribute information of the data attributes of the three-dimensional data in the data file. In other words, the first descriptive information and the second descriptive information are both considered as a single piece of information, meaning that the descriptive information here may include at least one piece of information.
[0113] Optionally, the data file may also include metadata, which is used to assist the receiving end in reconstructing the digital object.
[0114] For example, if the number of pieces of information in a data file is represented by N, then N can be an integer greater than 3. In one possible implementation, these N pieces of information may specifically include header information, metadata, first description information, second description information, and entropy encoding results—a total of five pieces of information. The following will introduce each of these five pieces of information:
[0115] 1. Header information
[0116] The header information may include at least one of the following: encapsulation identifier, version information (such as encoder version number), metadata encoding format, encoding prediction mode, extended flags (such as metadata flags), or custom extended data. For ease of understanding, please further refer to Table 1, which is a schematic diagram of the header information structure provided in an embodiment of this application, as shown in Table 1:
[0117] Table 1
[0118]
[0119]
[0120] As shown in Table 1, the extended flags in the header information may include metadata flags, which indicate whether metadata exists. For example, when the extended flag is the first flag (e.g., 0x4000), it indicates the presence of metadata, and scene data is active; in other words, the data file obtained after the first communication device encapsulates the 3D data contains metadata. When the extended flag is the second flag, it indicates the absence of metadata, and scene data is not active; in other words, the data file obtained after the first communication device encapsulates the 3D data does not contain metadata. The specific content of scene data can be found in Table 3 below.
[0121] When the 3D data is 3DGS, the custom extended data in the header information can include extended data related to scenedata. This extended data can contain one or more sets of fields, each set consisting of the four parts listed in Table 1 above: secne_key_len, secne_key_data, secne_vec_len, and secne_vec_data. This scenedata can be included in the second descriptive information described below. Therefore, it can be understood that the header information includes extended data related to the second descriptive information.
[0122] 2. Metadata
[0123] Metadata is a descriptive field that supports custom implementation at the receiving end, and it can be used to assist the receiving end in reconstructing digital objects. Metadata can be used to store data that requires additional encapsulation, such as information about existing files and information related to the rendering of 3D data (such as point cloud data or 3DGS), such as descriptive information about point cloud data (e.g., texture, color cast), descriptive information about viewports, and signaling related to point cloud data rendering.
[0124] 3. First description information
[0125] The first descriptive information is used to describe information about digital objects (or information related to 3D models), specifically including the distribution range, coordinate offset, and field of view of the three-dimensional data (such as point cloud data).
[0126] For example, please refer to Table 2, which is a structural diagram table for describing information about digital objects provided in an embodiment of this application. It is applicable to digital objects reconstructed from point cloud data, as shown in Table 2:
[0127] Table 2
[0128] Data types field name Field meaning number of components Bit float min_x Minimum value of x-axis coordinate range 1 f(16) float max_x Maximum range of x-axis coordinate 1 f(16) float min_y Minimum value of y-axis coordinate range 1 f(16) float max_y Maximum range of y-axis coordinates 1 f(16) float min_z Minimum value of z-axis coordinate range 1 f(16) float max_z Maximum range of z-axis coordinate 1 f(16)
[0129] The bit position is used to indicate the number of bits occupied by each field.
[0130] In one possible implementation, the first descriptive information may further include scene data. For ease of understanding, please refer to Table 3, which is a schematic diagram of another structure for describing information about digital objects provided in embodiments of this application. Scene data is primarily applicable to digital objects reconstructed by 3DGS. As shown in Table 3:
[0131] Table 3
[0132]
[0133]
[0134] 4. Second description information
[0135] The second descriptive information can be used to describe the category of data attributes of the 3D data. For ease of understanding, please refer to Table 4, which is a structural diagram of the category of data attributes for describing point cloud data provided in an embodiment of this application. Here, varint represents variable-length data, typically obtained by arithmetic coding or run-length encoding. As shown in Table 4:
[0136] Table 4
[0137] field name Field meaning Bit attribute_type Attribute indexes (e.g., generic) for point cloud data u(8) data_type Data format for point cloud attributes (e.g., float32) u(8) num_components The actual number of components that a point cloud attribute possesses. u(8) normalized Should normalization be performed? u(8) quantization_bits Number of bits for quantization u(8) unique_id Unique identifier for point cloud data varint —— Data dependencies (e.g., normals depend on coordinate data) varint —— Other data information varint
[0138] The second descriptive information here can also be used to describe the attribute information of the 3D data. For example, the attribute information of the point cloud body or mesh vertices. For ease of understanding, please refer to Table 5, which is a structural schematic table for describing the attribute information of 3D data provided in an embodiment of this application. As shown in Table 5:
[0139] Table 5
[0140] Data types field name Field meaning number of components Bit float position Coordinate information: x, y, z (general information) 3 f(32) float normal Normal information: nx, ny, nz (general information) 3 f(32) uint8 color Color information: r, g, b, a (grid mode) 3 / 4 u(8) float tex_coord Texture coordinates: u, v (mesh mode) 2 f(32) float scale Scaling factor: 0 / 1 / 2 (point cloud mode) 3 f(32) float rot Rotation factor: 0 / 1 / 2 / 3 (point cloud mode) 4 f(32) float opac Transparency factor: opacity (point cloud pattern) 1 f(32) float f_dc Spherical harmonic coefficients: 0 / 1 / 2 (point cloud mode) 3+ f(32) —— generic Custom extended fields (no compression mode) —— ——
[0141] When the three-dimensional data is 3DGS, the attribute information of the second descriptive information includes the attribute information of 3DGS. For example, the attribute information of 3DGS includes at least one of the following: spherical harmonic coefficient, transparency factor, rotation factor, or scaling factor.
[0142] 4. Entropy coding results
[0143] The entropy coding result is determined based on the coding compression algorithm and the three-dimensional data. The coding compression algorithm can include any of the following: arithmetic coding, Huffman coding, or Coulomb coding.
[0144] In one possible implementation, the 3D data can be obtained by the first communication device from an existing file encapsulated by another communication device (such as a third communication device). The third communication device can be a communication device connected to the first communication device, such as a server or terminal. The file format of this existing file can include, but is not limited to, PLY, SPLAT, or DRC formats.
[0145] Furthermore, the first communication device can parse the existing file based on its file format. For example, the first communication device may specifically include, but is not limited to, the following steps:
[0146] a) Load an existing file and generate header information in the encapsulation format.
[0147] b) Traverse the existing 3D data in the file, record the attribute information of each point in the 3D data (as shown in Table 5 for each field), and generate the second description information. In an optional manner, the first communication device can also set the category of the data attributes of the 3D data, such as whether to perform normalization processing, quantization step size, etc., as shown in Table 4 above for details. Based on the category of the data attributes of the 3D data and the attribute information of each point in the 3D data, the second description information is generated.
[0148] c) Compress the three-dimensional data to obtain the entropy coding result.
[0149] In one alternative implementation, the first communication device can directly employ an encoding compression algorithm to entropy encode the 3D data to obtain the entropy encoding result. The encoding compression algorithm primarily analyzes redundant information in the point cloud data and encodes it into a more compact form for easier transmission.
[0150] In another alternative implementation, the first communication device can first compress the 3D data in the existing file to obtain first data, and then entropy encode the first data to obtain the entropy encoded result, which allows for more efficient transmission. The compression process here can include one or more of the following: a first compression process based on geometric features, a second compression process based on prediction, a third compression process based on transformation, normalization processing, or quantization processing.
[0151] The first compression process, based on geometric features, achieves compression by analyzing and encoding the geometric information of 3D data (such as point cloud data). Its core idea is to analyze the spatial distribution and geometric structure of point cloud data, retaining key information and removing redundant data, for example, using the KD-tree compression algorithm or octree encoding. The KD-tree compression algorithm can be used for spatial partitioning and reordering of 3D data.
[0152] Transform-based third-party compression primarily reduces data volume by decomposing the local structure of 3D data (such as point cloud data) and extracting representative features. Common transform algorithms include discrete cosine transform, wavelet transform, or compression algorithms combined with deep neural networks.
[0153] In step S202, the first communication device sends a data file to the second communication device.
[0154] In one possible implementation, when the first communication device sends a data file to the second communication device, it can use an identifier to divide the N pieces of information in the data file into segments for transmission, thereby improving transmission efficiency and maintaining the real-time nature and continuity of multimedia data.
[0155] Specifically, the first communication device can send a first fragment corresponding to the first information to the second communication device, where the first information can be one of the aforementioned N pieces of information. For example, the first communication device can send a bitstream to the second communication device, which can include at least one fragment, including the first fragment.
[0156] It is understood that after acquiring the first information, the first communication device can determine a first identifier used to indicate the first information, and generate a first fragment based on the first identifier and the first information. Here, the first identifier includes first indication information and second indication information. The first indication information indicates the encapsulation format of the data file, such as the first indication information being a hexadecimal field corresponding to a magic number. The second indication information indicates the first information.
[0157] For example, if the first information is header information, the second indication information can be a field used to indicate the header information (e.g., 01); if the first information is metadata, the second indication information can be a field used to indicate the metadata (e.g., 02); if the first information is first description information, the second indication information can be a field used to indicate the first description information (e.g., 03); if the first information is second description information, the second indication information can be a field used to indicate the second description information (e.g., 04); if the first information is an entropy encoding result, the second indication information can be a field used to indicate the entropy encoding result (e.g., 05).
[0158] In one possible implementation, the first indication information can precede the second indication information. For example, if the hexadecimal field corresponding to the magic number is "52 33 44 47", and the first information is the header information, then the first identifier is "52 3344 47 01".
[0159] It is understood that the number of first identifiers in this application embodiment can be one. For example, the positional relationship between this identifier and the first information is not limited. If this identifier is located before the first information, then the first identifier can be called the start identifier; if the first identifier is located after the first information, then the first identifier can be called the end identifier. Of course, this identifier can also be located in the middle of the first information. Optionally, the number of first identifiers in this application embodiment can also be multiple, such as including a start identifier and an end identifier. Here, the start identifier and the end identifier can be the same or different. For example, both the start identifier and the end identifier contain first indication information and second indication information, but the first indication information in the start identifier is located before the second indication information, such as "52 33 44 47 01", while the first indication information in the end identifier is located after the second indication information, such as "01 52 33 44 47". For ease of understanding, this application embodiment uses one first identifier (such as the start identifier) to illustrate the process of generating the first fragment.
[0160] Since the first information may contain fields identical to the first indication information, the receiving end might mistakenly interpret fields following the first indication information as fields used to indicate the first information. Therefore, this application embodiment generates the first fragment in different ways during the encapsulation process based on whether or not there are fields identical to the first indication information in the first information. The following will describe the different cases:
[0161] Scenario a: If the first information does not contain a field identical to the first indication information, then the first communication device can use the first information as the second information and insert the first identifier into the second information to obtain the first fragment. For example, the first identifier can be inserted before the first information. In other words, the second information is the same as the first information.
[0162] Case b: If the first information contains a field identical to the first indication information (i.e., the first field), then the first communication device adds a preset character to the first field, uses the added first information as the second information, and inserts the first identifier into the second information to obtain the first fragment. In other words, the second information here is obtained by adding the preset character to the first field of the first information, meaning the second information is different from the first information.
[0163] The preset character can be added at any position in the first field of the first information. For example, if the field of the first information is “…52 33 44 47…”, then the first communication device can insert the preset character at any position between the first character (“52”) and the last character (“47”) of the first field. For instance, this embodiment can use a zero-break method to avoid the situation where the first information has the same field as the first indication information; that is, the preset character here can be “00”. Based on this, the field of the second information can be “…52 00 33 44 47…” or “…52 33 00 4447…” or “…52 33 44 00 47…”.
[0164] For further information, please refer to [link / reference]. Figure 3 , Figure 3 This is a schematic diagram of a segmented structure provided in an embodiment of this application. For example... Figure 3 As shown, fragment k (i.e., the first fragment) may include information x (i.e., the second information) and identifier T (i.e., the first identifier), with identifier T located before information x.
[0165] The identifier T contains indication information a (i.e., first indication information) and indication information b (i.e., second indication information), with indication information a preceding indication information b. For example, the field of indication information a is "52 33 44 47", which can be used to indicate that the data file encapsulation format is "RDC format", and the field of indication information b is "01", which is used to indicate that information x is header information.
[0166] In one possible implementation, the first communication device may further send a second fragment to the second communication device. This second fragment may include fourth information and a second identifier. The fourth information is obtained based on the third information (which belongs to N pieces of information in the aforementioned data file, such as entropy coding results), and the second identifier is used to identify the fourth information. The specific process for generating the second fragment can be found in the process for generating the first fragment described above, and will not be repeated here.
[0167] The sending order of the first and second segments is not limited; that is, the second segment can be sent before the first segment, after the first segment, or simultaneously with the first segment, i.e., sent in the same bitstream.
[0168] Understandably, if N pieces of information include five pieces of information: header information, entropy encoding result, first description information, second description information, and metadata, then the first communication device can send five fragments to the second communication device, that is, a fragment corresponding to each piece of information. The sending order of these five fragments is not limited; they can be sent simultaneously or sequentially according to the fragment generation order.
[0169] To better understand the scenario of sending 5 fragments simultaneously, please refer to the example provided. Figure 4a , Figure 4a This is a schematic diagram of the structure of a bitstream provided in an embodiment of this application. For example... Figure 4a As shown, the bitstream includes five fragments, specifically fragment k1, fragment k2, fragment k3, fragment k4, and fragment k5.
[0170] like Figure 4a As shown, fragment k1 includes header information and a start identifier (e.g., identifier T1) indicating the header information; fragment k2 includes entropy encoding results and a start identifier (e.g., identifier T2) indicating the entropy encoding results; fragment k3 includes first description information and a start identifier (e.g., identifier T3) indicating the first description information; fragment k4 includes second description information and a start identifier (e.g., identifier T4) indicating the second description information; and fragment k5 includes metadata and a start identifier (e.g., identifier T5) indicating the metadata. The order of these five fragments is not specified.
[0171] It should be understood that during the process of the first communication device sending the first fragment to the second communication device, data corruption may occur due to network problems, equipment failures, or other reasons. Therefore, in order to ensure the integrity and accuracy of the transmission of at least one fragment, in another optional implementation, the bitstream sent by the first communication device to the second communication device may include not only at least one fragment but also a checksum. Here, the checksum is used to verify at least one fragment.
[0172] For example, the first communication device may use a checksum generation algorithm to convert at least one data fragment into a fixed-length hash value. This checksum generation algorithm may include: message digest algorithms (e.g., message digest algorithm 5, MD5), secure hash algorithms (SHA1), cyclic redundancy check (CRC), etc., and will not be limited here. For ease of understanding, please refer to the example provided. Figure 4b , Figure 4b This is a schematic diagram of another bitstream structure provided in an embodiment of this application. For example... Figure 4b As shown, this bitstream is compared to Figure 4a The bitstream shown also includes a checksum, which is used to verify these 5 segments.
[0173] In another alternative implementation, the bitstream sent by the first communication device may include at least one fragment and a check code corresponding to each fragment. This allows the receiving end to verify the integrity and accuracy of each fragment. If the transmission fails, the receiving end can more accurately determine which fragment needs to be retransmitted from the multiple fragments in the bitstream, thereby improving the efficiency of retransmission and reducing resource waste.
[0174] In another alternative implementation, the bitstream transmitted by the first communication device can be encapsulated based on multiple existing files. These existing files can originate from different third communication devices or from the same third communication device; this is not limited here. In other words, the file formats of these existing files can be different or the same. In this case, the first communication device can also encapsulate the information from these multiple existing files into a single data file, which may include multiple entropy-encoded results.
[0175] If different entropy coding results correspond to the same first description information and the same second description information, then the data file generated by the first communication device may include a first description information and a second description information. It can be understood that the fragments corresponding to these multiple entropy coding results may be contained in the same bitstream.
[0176] For ease of understanding, please refer to the example provided. Figure 4c , Figure 4c This is a schematic diagram of another bitstream structure provided in an embodiment of this application. For example... Figure 4c As shown, the segments in this bitstream can be 5, specifically including segment p1 (such as the segment corresponding to the header information), segment p2 (such as the segment corresponding to entropy coding result 1), segment p3 (such as the segment corresponding to the first description information), segment p4 (such as the segment corresponding to the second description information), and segment p5 (such as the segment corresponding to entropy coding result 2).
[0177] Entropy coding result 1 is obtained by entropy coding the 3D data in existing file 1, and entropy coding result 2 is obtained by entropy coding the 3D data in existing file 2. In other words, entropy coding result 1 and entropy coding result 2 reuse the same descriptive information without encapsulating the descriptive information of both results in the same bitstream. This encapsulation method not only saves transmission resources and improves transmission efficiency, but also reduces the waste of decoding resources for the receiving end by eliminating the need to decode redundant descriptive information.
[0178] If different entropy encoding results correspond to different first description information or different second description information, the bitstream generated by the first communication device can also include the first description information corresponding to each entropy encoding result and the second description information corresponding to each entropy encoding result. That is, the first communication device can encapsulate at least one piece of information from different existing files in the same bitstream to facilitate the implementation of CDN.
[0179] It is understandable that the second communication device receives a data file, which can be understood as receiving N fragments corresponding to each other. These N fragments can be sent through the same bitstream or through different bitstreams. For ease of understanding, this example uses the bitstream containing the first fragment to illustrate the process of the second communication device performing decapsulation and decoding operations on the bitstream. Specifically, this may include, but is not limited to, the following steps:
[0180] a) Load the bitstream. If a checksum exists in the bitstream, verify the consistency of the data based on the checksum.
[0181] For example, the second communication device can use the same checksum generation algorithm as the first communication device to calculate at least one segment in the bitstream, and compare the calculated checksum (i.e., the first checksum) with the checksum in the bitstream (i.e., the second checksum). If the first checksum and the second checksum are the same, it can be understood that the verification is successful, that is, the data is consistent. If the first checksum and the second checksum are different, it can be understood that the verification fails.
[0182] b) If the data is determined to be consistent, then each segment of at least one segment in the bitstream is parsed, and the identifier in each segment is verified. For example, the first segment in the bitstream is parsed to obtain the first identifier, and then it is determined whether the first identifier is the agreed identifier, such as whether the field of the first indication information in the first identifier indicates the encapsulation format.
[0183] c) If the identifier verification in each segment is successful, the bitstream is processed according to the identifier of each segment in the bitstream to determine at least one piece of information in each segment. For example, based on the first identifier of the first segment, the second information of the first segment is determined. If the second information contains a field that matches the first indication information in the first identifier, and the field contains a preset character, the second communication device can skip the preset character and determine other characters besides the preset character as the first information.
[0184] d) After the second communication device obtains description information (such as first description information and / or second description information), header information, and entropy encoding results in the same encapsulation format, it can parse the entropy encoding results.
[0185] For example, based on the defined entropy coding model, the entropy coding is restored to obtain the second data.
[0186] Optionally, if the second data is obtained by compressing 3D data from an existing file, then the inverse operations of each compression process are performed on the second data. For example, if the second description information indicates that quantization exists, then the quantized data is dequantized based on the parsed quantization step size; if the second description information indicates that normalization is performed, then the normalized data is scaled; if compression exists, then the inverse operations are performed on the predicted data and the transformed data.
[0187] e) Traverse the reconstructed 3D data, fill in the data according to the coordinate points, and obtain the 3D data and its attribute information.
[0188] f) Output the obtained 3D data and its attribute information.
[0189] If the output is stored as a file, the attribute information and 3D data of the parsed 3D data will be stored in accordance with the output format specification (such as PLY file format, SPLAT file format, or DRC format).
[0190] For example, for attribute information of 3D data, the attribute names and types contained in the data can be declared at the beginning of the file according to the definition requirements of the output format specification (such as the PLY file format). Specifically, it can be in the form of "ply <cr>Starting with "end_header" <cr>The content ends with ".
[0191] If the output is program memory, the attribute information of the parsed 3D data is assigned to the corresponding structure or data variable, and the entire segment of parsed point cloud data is copied from memory to the output memory (attribute-by-attribute or coordinate-by-coordinate).
[0192] For example, the second communication device can pre-allocate memory according to the arrangement of the attribute information of the 3D data. For instance, if the 3D data has k attributes, each attribute has n data entries, each data entry for attribute a occupies x1 bytes, each data entry for attribute b occupies x2 bytes, and so on, then (k*n*x1 + k*n*x2 + ...) bytes of space are allocated for the attribute information of the 3D data, and the starting address of the storage space corresponding to each attribute is recorded. Furthermore, the data used to store the attribute information of the 3D data in the memory area is completely copied to the newly allocated memory. It is understandable that the storage space allocated for each attribute in memory does not need to be contiguous, and there is no need to pre-determine the type, quantity, and order of the attributes. This storage method is more memory-friendly and efficient for input / output.
[0193] Those skilled in the art will understand that, in the above-described method of the specific implementation, the order in which each step is written does not imply a strict execution order and does not constitute any limitation on the implementation process. The specific execution order of each step should be determined by its function and possible internal logic.
[0194] The methods of the embodiments of this application have been described in detail above, and the apparatus of the embodiments of this application is provided below.
[0195] Please see Figure 5 , Figure 5 This is a schematic diagram of a three-dimensional data encapsulation device provided in an embodiment of this application. The three-dimensional data encapsulation device 1 includes a generation unit 10 and a transmission unit 20. Optionally, the three-dimensional data encapsulation device 1 further includes a compression unit 30 and an entropy encoding unit 40.
[0196] The generation unit 10 is used to generate a data file, which includes header information, entropy encoding results, and description information. The description information is used to describe the three-dimensional data, and the entropy encoding results are obtained by entropy encoding the three-dimensional data. The three-dimensional data is used to reconstruct digital objects.
[0197] Sending unit 20 is used to send data files.
[0198] In any embodiment of this application, the data file includes N pieces of information, including the header information, the entropy encoding result, and the description information, where N is an integer greater than 3;
[0199] The sending unit 20 is specifically used to send a first fragment corresponding to the first information. The first information is one of N pieces of information. The first fragment includes second information and a first identifier. The second information is obtained based on the first information. The first identifier is used to identify the second information.
[0200] In any embodiment of this application, the first identifier includes: a start identifier located before the first information, and / or an end identifier located after the first information.
[0201] In any embodiment of this application, the first identifier includes first indication information and second indication information, wherein the first indication information indicates the encapsulation format of the data file and the second indication information indicates the first information.
[0202] In any embodiment of this application, the second information is obtained based on the first information, including:
[0203] The second information is obtained by adding a preset character to the first field of the first information, and the first field is the same as the first indication information.
[0204] In conjunction with any embodiment of this application, the sending unit 20 is further specifically used for:
[0205] A bitstream is sent, the bitstream including at least one fragment and a checksum, the at least one fragment including a first fragment corresponding to the first information; the checksum is used to verify the at least one fragment.
[0206] In any embodiment of this application, the N pieces of information further include third information;
[0207] The three-dimensional data encapsulation device further includes:
[0208] The sending unit 20 is further configured to send a second fragment, the second fragment including fourth information and a second identifier, the fourth information being obtained based on the third information, and the second identifier being used to identify the fourth information.
[0209] In any embodiment of this application, the N pieces of information further include metadata, which is used to assist the receiving end in reconstructing the digital object.
[0210] In any embodiment of this application, the header information includes an extended flag bit, which is used to indicate whether metadata exists.
[0211] In any embodiment of this application, the description information includes first description information and / or second description information, wherein the first description information is used to describe the information of the digital object, and the second description information is used to describe the category and attribute information of the data attributes of the three-dimensional data in the data file.
[0212] In any embodiment of this application, the three-dimensional data is a three-dimensional Gaussian splash, and the head information includes extended data related to the second descriptive information.
[0213] In any embodiment of this application, the attribute information includes the attribute information of a three-dimensional Gaussian splash, and the attribute information of the three-dimensional Gaussian splash includes at least one of the following: spherical harmonic coefficient, transparency factor, rotation factor, or scaling factor.
[0214] In any embodiment of this application, the three-dimensional data includes any one of the following: three-dimensional Gaussian splash, mesh data, or point cloud data.
[0215] In any embodiment of this application, the three-dimensional data encapsulation device further includes:
[0216] Compression unit 30 is used to compress the three-dimensional data to obtain first data;
[0217] Entropy coding unit 40 is used to entropy code the first data to obtain the entropy coding result.
[0218] In conjunction with any embodiment of this application, the compression process includes one or more of the following: a first compression process based on geometric features, a second compression process based on prediction, a third compression process based on transformation, normalization processing, or quantization processing.
[0219] In some embodiments, the functions or modules of the apparatus provided in this application can be used to perform the methods described in the above method embodiments. The specific implementation can be referred to the description of the above method embodiments, and for the sake of brevity, it will not be repeated here.
[0220] Figure 6 This is a schematic diagram of the hardware structure of an electronic device provided in an embodiment of this application. The electronic device 6 includes a processor 61 and a memory 62. Optionally, the electronic device 6 also includes an input device 63 and an output device 64. The processor 61, memory 62, input device 63, and output device 64 are coupled together via connectors, which include various interfaces, transmission lines, or buses, etc., and are not limited in this embodiment of the application. It should be understood that in the various embodiments of this application, coupling refers to mutual connection in a specific way, including direct connection or indirect connection through other devices, such as through various interfaces, transmission lines, buses, etc.
[0221] Processor 61 may include one or more processors, such as one or more central processing units (CPUs). If the processor is a CPU, it may be a single-core CPU or a multi-core CPU. Optionally, processor 61 may be a processor group consisting of multiple CPUs, with the multiple processors coupled to each other via one or more buses. Optionally, the processor may also be other types of processors, etc., which are not limited in the embodiments of this application.
[0222] The memory 62 can be used to store computer program instructions, as well as various types of computer program code, including program code for executing the scheme of this application. Optionally, the memory includes, but is not limited to, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM), or compact disc read-only memory (CD-ROM), which is used for related instructions and data.
[0223] Input device 63 is used to input data and / or signals, and output device 64 is used to output data and / or signals. Input device 63 and output device 64 can be independent devices or an integrated device.
[0224] It is understood that in this embodiment of the application, the memory 62 can be used not only to store related instructions, but also to store related data. This embodiment of the application does not limit the specific data stored in the memory.
[0225] Understandable Figure 6 This is merely a simplified design of an electronic device. In practical applications, the electronic device may also include other necessary components, including, but not limited to, any number of input / output devices, processors, memories, etc., and all electronic devices that can implement the embodiments of this application are within the protection scope of this application.
[0226] Those skilled in the art will recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
[0227] Those skilled in the art will readily understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here. Those skilled in the art will also readily understand that the various embodiments of this application have different focuses, and for the sake of convenience and brevity, the same or similar parts may not be repeated in different embodiments. Therefore, parts not described or not described in detail in one embodiment can be referred to the descriptions in other embodiments.
[0228] In the several embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between apparatuses or units may be electrical, mechanical, or other forms.
[0229] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0230] In addition, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit.
[0231] In the above embodiments, implementation can be achieved entirely or partially through software, hardware, firmware, or any combination thereof. When implemented using software, it can be implemented entirely or partially as a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the processes or functions described in the embodiments of this application are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted through the computer-readable storage medium. The computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that integrates one or more available media. The available media may be magnetic media (e.g., floppy disks, hard disks, magnetic tapes), optical media (e.g., digital versatile discs (DVDs)), or semiconductor media (e.g., solid-state disks (SSDs)).
[0232] Those skilled in the art will understand that all or part of the processes in the methods of the above embodiments can be implemented by a computer program instructing related hardware. This program can be stored in a computer-readable storage medium, and when executed, it can include the processes described in the above method embodiments. The aforementioned storage medium includes various media capable of storing program code, such as read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.< / cr> < / cr>
Claims
1. A three-dimensional data encapsulation method, characterized in that, The method includes: Send a data file, which includes header information, entropy coding results, and descriptive information. The descriptive information is used to describe the three-dimensional data, and the entropy coding results are obtained by entropy coding the three-dimensional data. The three-dimensional data is used to reconstruct digital objects.
2. The method according to claim 1, characterized in that, The data file includes N pieces of information, including the header information, the entropy encoding result, and the description information, where N is an integer greater than 3; The transmitted data file includes: Send the first fragment corresponding to the first information. The first information is one of N information. The first fragment includes second information and a first identifier. The second information is obtained based on the first information. The first identifier is used to identify the second information.
3. The method according to claim 2, characterized in that, The first identifier includes: a start identifier located before the first information, and / or an end identifier located after the first information.
4. The method according to claim 2, characterized in that, The first identifier includes a first indication information and a second indication information, wherein the first indication information indicates the encapsulation format of the data file, and the second indication information indicates the first information.
5. The method according to claim 4, characterized in that, The second information is obtained based on the first information and includes: The second information is obtained by adding a preset character to the first field of the first information, and the first field is the same as the first indication information.
6. The method according to any one of claims 2-5, characterized in that, The first fragment corresponding to the first information to be sent includes: A bitstream is sent, the bitstream including at least one fragment and a checksum, the at least one fragment including a first fragment corresponding to the first information; the checksum is used to verify the at least one fragment.
7. The method according to any one of claims 2-6, characterized in that, The N pieces of information also include third information; The method further includes: Send a second fragment, which includes fourth information and a second identifier. The fourth information is obtained based on the third information, and the second identifier is used to identify the fourth information.
8. The method according to any one of claims 2-7, characterized in that, The N pieces of information also include metadata, which is used to assist the receiving end in reconstructing the digital object.
9. The method according to any one of claims 1-8, characterized in that, The header information includes extended flags that indicate the presence of metadata.
10. The method according to any one of claims 1-9, characterized in that, The description information includes first description information and / or second description information, wherein the first description information is used to describe the information of the digital object, and the second description information is used to describe the category and attribute information of the data attributes of the three-dimensional data in the data file.
11. The method according to claim 10, characterized in that, The three-dimensional data is a three-dimensional Gaussian splash, and the head information includes extended data related to the second description information.
12. The method according to claim 10 or 11, characterized in that, The attribute information includes the attribute information of the three-dimensional Gaussian splash, which includes at least one of the following: spherical harmonic coefficient, transparency factor, rotation factor, or scaling factor.
13. The method according to any one of claims 1-12, characterized in that, The three-dimensional data includes any one of the following: three-dimensional Gaussian splash, mesh data, or point cloud data.
14. The method according to any one of claims 1-13, characterized in that, The method further includes: The three-dimensional data is compressed to obtain the first data; The first data is entropy encoded to obtain the entropy encoding result.
15. The method according to claim 14, characterized in that, The compression process includes one or more of the following: a first compression process based on geometric features, a second compression process based on prediction, a third compression process based on transformation, normalization processing, or quantization processing.
16. A three-dimensional data encapsulation device, characterized in that, The device includes: A sending unit is used to send a data file, the data file including header information, entropy coding result and description information, the description information being used to describe three-dimensional data, the entropy coding result being obtained by entropy coding the three-dimensional data, and the three-dimensional data being used to reconstruct digital objects.
17. An electronic device, characterized in that, include: A processor and a memory, the memory being used to store computer program code, the computer program code including computer instructions, wherein, when the processor executes the computer instructions, the electronic device performs the method as described in any one of claims 1 to 15.
18. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program, the computer program including program instructions that, when executed by a processor, cause the processor to perform the method according to any one of claims 1 to 15.