SEI message processing method, apparatus, storage medium, and program product
By acquiring and processing the indication information of SEI messages, determining their processing order, and identifying duplicate messages, the problems of uncertain processing order and duplicate transmission of SEI messages are solved, thereby improving video quality and transmission efficiency.
Patent Information
- Application Number
- PCT/CN2025/087722
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-07-31
- Filing Date
- 2025-04-08
- Publication Date
- 2026-02-05
AI Technical Summary
In the prior art, the uncertainty of the processing order of SEI messages leads to unstable video image quality, and the transmission of repeated SEI messages wastes unnecessary transmission overhead.
By obtaining indication information from multiple SEI messages, their processing order can be determined and duplicate SEI messages can be identified, thus avoiding duplicate transmissions and optimizing the SEI message processing flow.
It improves the stability of video image quality, reduces transmission overhead, and enhances video playback effects and processing efficiency.
Smart Images

Figure CN2025087722_05022026_PF_FP_ABST
Abstract
Description
SEI message processing methods, devices, storage media, and program products
[0001] This disclosure claims priority to Chinese patent application No. 202411046044.8, filed on July 31, 2024, the entire contents of which are incorporated herein by reference. Technical Field
[0002] This disclosure relates to the field of video encoding and decoding technology, and in particular to a method, apparatus, storage medium, and program product for processing SEI messages. Background Technology
[0003] Supplemental enhancement information (SEI) messages are additional data embedded into the video stream during both the generation and transmission of video content. This additional data provides the decoder with useful information such as timestamps, scene changes, and color variations, thereby helping the decoder to better process video data, improve video quality, enhance playback, increase processing speed, and improve video adaptability.
[0004] With the continuous development of video encoding and decoding technologies, the types of SEI messages are becoming increasingly diverse. The processing order of different types of SEI messages in the video stream can affect the final decoded video image quality and the user's viewing experience. Summary of the Invention
[0005] This disclosure provides a method, apparatus, storage medium, and program product for processing SEI messages.
[0006] Firstly, a method for processing SEI messages is provided, which is applied at the decoding end and includes:
[0007] Receive the bitstream, which includes multiple SEI messages and encoded data obtained by encoding the target data.
[0008] Obtain indication information for multiple SEI messages. The indication information is used to indicate the processing order of multiple SEI messages and whether there are duplicate SEI messages among the multiple SEI messages. Duplicate SEI messages have at least two processing orders.
[0009] Based on the instructions, multiple SEI messages are processed, and the target data is obtained by decoding the bitstream based on the processing results of the multiple SEI messages.
[0010] Secondly, a method for processing SEI messages is provided. This method is applied at the encoding end and includes:
[0011] Acquire the target data and multiple SEI messages.
[0012] Multiple SEI messages and target data are encoded to obtain the encoded bitstream.
[0013] Send the code stream and indication information; the indication information is used to indicate the processing order of multiple SEI messages and whether there are duplicate SEI messages among the multiple SEI messages. Duplicate SEI messages have at least two processing orders.
[0014] Thirdly, a decoding device is provided, which includes a receiving module and a processing module.
[0015] The receiving module is used to receive the bitstream, which includes multiple SEI messages and encoded data obtained by encoding the target data.
[0016] The receiving module is also used to obtain indication information for multiple SEI messages. The indication information is used to indicate the processing order of multiple SEI messages and whether there are duplicate SEI messages among the multiple SEI messages. Duplicate SEI messages have at least two processing orders.
[0017] The processing module is used to process multiple SEI messages according to the instruction information, and to decode the bitstream based on the processing results of multiple SEI messages to obtain the target data.
[0018] Fourthly, an encoding device is provided, which includes an acquisition module, an encoding module, and a transmission module.
[0019] The acquisition module is used to acquire target data and multiple SEI messages.
[0020] The encoding module is used to encode multiple SEI messages and target data to obtain an encoded bitstream. Duplicate SEI messages have at least two processing sequences.
[0021] The sending module is used to send the code stream and indication information; the indication information is used to indicate the processing order of multiple SEI messages and whether there are duplicate SEI messages among the multiple SEI messages.
[0022] Fifthly, a codec apparatus is provided, comprising: a processor and a memory; the memory storing processor-executable instructions; when the processor is configured to execute the instructions, causing the communication apparatus to implement any of the methods provided in the first to second aspects above.
[0023] In a sixth aspect, a computer-readable storage medium is provided, which stores computer instructions that, when executed on a computer, cause the computer to perform any of the methods provided in the first or second aspect.
[0024] In a seventh aspect, a computer program product comprising computer instructions is provided, which, when executed on a computer, cause the computer to perform any of the methods provided in the first or second aspect. Attached Figure Description
[0025] The accompanying drawings are provided to further understand the technical solutions of this disclosure and constitute a part of the specification. They are used together with the embodiments of this disclosure to explain the technical solutions of this disclosure and do not constitute a limitation on the technical solutions of this disclosure.
[0026] Figure 1 is a schematic diagram of the architecture of an encoding / decoding system according to some embodiments;
[0027] Figure 2 is a flowchart of a method for processing SEI messages according to some embodiments;
[0028] Figure 3 is a flowchart of another method for processing SEI messages according to some embodiments;
[0029] Figure 4 is a flowchart of yet another method for processing SEI messages according to some embodiments;
[0030] Figure 5 is a block diagram of a decoding device according to some embodiments;
[0031] Figure 6 is a block diagram of an encoding device according to some embodiments;
[0032] Figure 7 is a block diagram of an encoding / decoding apparatus according to some embodiments. Detailed Implementation
[0033] The technical solutions of the embodiments of this disclosure will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this disclosure, and not all embodiments. Based on the embodiments of this disclosure, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the scope of protection of this disclosure.
[0034] Unless the context otherwise requires, throughout the specification and claims, the term "comprise" and its other forms, such as the third-person singular "comprises" and the present participle "comprising," are interpreted as open-ended and encompassing, meaning "including, but not limited to." In the description of the specification, terms such as "one embodiment," "some embodiments," "exemplary embodiments," "example," "specific example," or "some examples," etc., are intended to indicate that a particular feature, structure, material, or characteristic associated with that embodiment or example is included in at least one embodiment or example of this disclosure. The illustrative representations of the above terms do not necessarily refer to the same embodiment or example. Furthermore, the specific features, structures, materials, or characteristics mentioned may be included in any suitable manner in any one or more embodiments or examples.
[0035] The terms "first" and "second" are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of technical features indicated. Thus, a feature defined as "first" or "second" may explicitly or implicitly include one or more of that feature. In the description of this disclosure, unless otherwise stated, "a plurality of" means two or more.
[0036] In this disclosure, the terms "exemplarily" or "for example" are used to indicate that something is an example, illustration, or description. Any embodiment or design described as "exemplarily" or "for example" in this disclosure should not be construed as being more preferred or advantageous than other embodiments or designs. Rather, the use of the terms "exemplarily" or "for example" is intended to present the relevant concepts in a specific manner.
[0037] In addition, the use of “based on” implies openness and inclusivity, because processes, steps, calculations or other actions “based on” one or more of the stated conditions or values may in practice be based on additional conditions or values beyond those stated.
[0038] A bitstream is a series of bits containing video data that can be compressed for transmission between an encoder and a decoder. The encoder compresses video image data into a bitstream through an encoding process, while the decoder reconstructs the video image data from the bitstream through a decoding process. To ensure that the bitstream, after compression and encoding by the encoder, can be correctly decoded by different decoders, standards organizations typically develop corresponding video codec standards to guide the encoding process of the encoder and the decoding process of the decoder. Taking the video codec standards developed by the International Telecommunication Union telecommunication standardization sector (ITU-T) and the Joint Video Expert Team (JVET) of the International Organization for Standardization / International Electrotechnical Commission (ISO / IEC) as an example, the bitstream can be a sequence of one or more Access Units (AUs) of Coded Video Sequences (CVSs) formed by a series of bits in the form of a Network Abstraction Layer (NAL) unit stream or a Byte Stream.
[0039] SEI messages are a key feature of video encoding and decoding technologies. They add information to the video stream (or video image stream), which can then assist in decoding, display, or other related processes. However, with the increasing number of SEI message types defined in relevant standards, the different processing orders of different types of SEI messages can lead to varying qualities of the final decoded video image, resulting in different viewing experiences for users. Currently, related technologies offer a new SEI message type: the SEI processing order SEI (SPOSEI) message, used to indicate the preferred processing order among multiple SEI messages. Additionally, related technologies provide another new SEI message type: the processing order nesting SEI (PON SEI) message, used in conjunction with the SPOSEI message to indicate the preferred processing order among multiple SEI messages.
[0040] However, within the SEI message processing chain indicated by the SPOSEI message or PON SEI message, the same SEI message may appear at multiple different positions in the chain. This means the SEI message (process type) needs to be processed repeatedly, or the information provided by the SEI message (property type) needs to be used multiple times. In this case, the same SEI message may be sent multiple times, thus wasting unnecessary transmission overhead.
[0041] Based on this, this disclosure provides a method for processing SEI messages. The decoding end can obtain indication information of multiple SEI messages in the bitstream. This indication information can indicate the processing order of the multiple SEI messages and whether there are duplicate SEI messages among the multiple SEI messages. Duplicate SEI messages have at least two processing orders. Then, the multiple SEI messages are processed based on the indication information. In this way, unnecessary waste of transmission overhead caused by transmitting the same SEI message multiple times can be avoided.
[0042] Figure 1 illustrates the system architecture of an encoding / decoding system applied in some embodiments of this disclosure. The video encoder 100 and video decoder 200 of the encoding / decoding system 1 are capable of executing the SEI message processing methods provided in some embodiments of this disclosure.
[0043] As shown in Figure 1, the encoding / decoding system 1 includes an encoding end 10 and a decoding end 20. The encoding end 10, also referred to as a video encoding device, is capable of generating encoded video data. The decoding end 20, also referred to as a video decoding device, is capable of decoding the encoded video data generated by the encoding end 10. The encoding end 10 and the decoding end 20 can include various devices, such as desktop computers, mobile computing devices, notebook (e.g., laptop) computers, tablet computers, set-top boxes, televisions, cameras, display devices, digital media players, video game consoles, in-vehicle computers, or similar devices.
[0044] Decoder 20 may receive encoded video data from encoder 10 via link 30. Link 30 may include one or more media or devices capable of moving encoded video data from encoder 10 to decoder 20. In some examples, link 30 may include one or more communication media enabling encoder 10 to transmit encoded video data directly to decoder 20 in real time. In other examples, link 30 may include outputting encoded data from output interface 140 to storage device 40. Similarly, encoded data may be accessed from storage device 40 via input interface 240. Storage device 40 may comprise any of a variety of distributed or locally accessible data storage media, such as hard disk drives, Blu-ray discs, digital video discs (DVDs), compact disc read-only memory (CD-ROMs), flash memory, volatile or non-volatile memory, or any other suitable digital storage media for storing encoded video data.
[0045] In some embodiments, storage device 40 may correspond to a file server or another intermediate storage device capable of holding the encoded video generated by encoding end 10. Decoding end 20 may access the stored video data from storage device 40 via streaming or downloading. The file server may be any type of server capable of storing and transmitting encoded video data to decoding end 20. For example, a file server includes a web server (e.g., for a website), a file transfer protocol (FTP) server, a network attached storage (NAS) device, or a local disk drive. Decoding end 20 may access the encoded video data via any standard data connection, including an Internet connection. This may include a wireless channel (e.g., a wireless-fidelity (Wi-Fi) connection), a wired connection (e.g., a digital subscriber line (DSL), a cable modem, etc.), or a combination of both (wireless channel and wired connection) suitable for accessing the encoded video data on the file server. The transmission of encoded video data from storage device 40 can be streaming, downloading, or a combination of both (streaming and downloading).
[0046] The encoding / decoding system illustrated in Figure 1 is merely an example, and the technology disclosed herein is applicable to video encoding / decoding setups that may not necessarily involve any data communication between the encoding and decoding devices. For example, data may be retrieved from local memory, streamed over a network, etc. A video encoding device may encode data and store it in memory, or a video decoding device may retrieve data from memory and decode it, or a video encoding device may encode data and store it in memory, or retrieve data from memory and decode it. That is, encoding and decoding can also be performed by devices that do not communicate with each other but only encode data to memory, or retrieve data from memory and decode data, or encode data to memory and retrieve data from memory and decode data.
[0047] In some embodiments, as shown in FIG1, the encoding end 10 may include a video source 120. In some examples, the video source 120 may include at least one of a video capture device (e.g., a camera), a video archive containing previously captured video data, a video feed interface for receiving video data from a video content provider, or a computer graphics system for generating video data, or a combination of such sources of video data. Thus, the video encoder 100 may encode the video data from the video source 120 and then transmit the encoded video data directly to the decoding end 20 via the output interface 140, or the encoded video data may also be stored on the storage device 40 for the decoding end 20 to access for at least one of decoding or playback.
[0048] As shown in Figure 1, the decoding end 20 may further include a display device 220. The input interface 240 may receive encoded video data via link 30 or from at least one of the storage devices 40. The video decoder 200 may decode the received encoded video data to obtain decoded video data. The display device 220 may be integrated with the decoding end 20 or may be external to the decoding end 20. The display device 220 can be used to display the decoded video data. The display device 220 may include various display devices, such as liquid crystal displays (LCDs), plasma displays, organic light-emitting diode (OLED) displays, or other types of display devices.
[0049] It should be noted that Figure 1 is only an exemplary framework diagram. The number of devices or nodes included in Figure 1 and the names of each device are not limited. In addition to the functional nodes shown in Figure 1, the system may also include other nodes or devices.
[0050] The system architecture and business scenarios described in the embodiments of this disclosure are intended to more clearly illustrate the technical solutions of the embodiments of this disclosure, and do not constitute a limitation on the technical solutions provided by the embodiments of this disclosure. As those skilled in the art will know, with the evolution of network architecture and the emergence of new business scenarios, the technical solutions provided by the embodiments of this disclosure are also applicable to similar technical problems.
[0051] The embodiments provided in this disclosure will now be described with reference to the accompanying drawings.
[0052] As shown in Figure 2, this disclosure provides a method for processing SEI messages. This method can be applied to the encoding / decoding system 1 shown in Figure 1 and can be executed by the decoding end 20. The method includes steps S101 to S103.
[0053] In S101, a bitstream is received, which includes multiple SEI messages and encoded data obtained by encoding the target data.
[0054] For example, the bitstream can be a bitstream received by the decoding end from the encoding end, or a bitstream obtained from other devices, such as a bitstream obtained from a storage device; this disclosure does not limit this.
[0055] The target data may include video data to be encoded, image data, etc.
[0056] In some embodiments, the decoding end can parse the received bitstream to obtain multiple SEI messages and encoded data obtained by encoding the target data.
[0057] For example, after acquiring the bitstream, the decoding end can parse the encoded data in the bitstream, which includes frame information, encoding parameters, motion vectors, residual data, etc. This information can then be used to perform operations such as inverse quantization, inverse transform, and motion compensation to reconstruct the image of each frame, thus obtaining multiple decoded images. For instance, the decoding method at the decoding end can adopt the method specified in the video decoding standard, and this decoding method corresponds to the encoding method used in the received bitstream; this disclosure does not limit this.
[0058] In some embodiments, the multiple SEI messages included in the bitstream are all different. For example, the multiple SEI messages included in the bitstream can be multiple SEI messages with different message types. Alternatively, the multiple SEI messages included in the bitstream can include at least two SEI messages with the same message type but different message content.
[0059] For example, the message types of multiple SEI messages may include: sample aspect ratio (SEM) SEI messages, equirectangular projection (EM) SEI messages, omni viewport (OMP) SEI messages, or AI-based enhancement (AI) SEI messages.
[0060] In S102, indication information of multiple SEI messages is obtained. This indication information is used to indicate the processing order of multiple SEI messages and whether there are duplicate SEI messages among the multiple SEI messages. Duplicate SEI messages have at least two processing orders.
[0061] In some embodiments, the indication information may also be referred to as SEI message sequence information, and the decoding end can determine the (preferred) processing order among multiple SEI messages based on the indication information. In some embodiments, the indication information may be carried in SPOSEI messages or PON SEI messages.
[0062] In some embodiments, the indication information may also be indicated by indicating it in the file encapsulation of the bitstream, in the parameter set corresponding to the bitstream, or by other possible indication methods.
[0063] In some embodiments, the indication information includes at least one of the following:
[0064] First repeating identifier;
[0065] The second duplicate identifier corresponding to each SEI message;
[0066] The processing order of each SEI message;
[0067] Information associated with each SEI message.
[0068] The following sections explain each item of information included in the instruction message:
[0069] (1) First repeating identifier.
[0070] For example, a first duplication flag is used to indicate whether a duplicate SEI message exists among multiple SEI messages. For instance, a first value of 1 can be used to indicate the presence of a duplicate SEI message among multiple SEI messages. Conversely, a third value of 0 can be used to indicate the absence of a duplicate SEI message among multiple SEI messages.
[0071] In some embodiments, the first duplicate identifier is represented by the field po_duplicate_present_flag.
[0072] Table 1
[0073] For example, as shown in Table 1, an example of an SPOSEI message sei_processing_order is provided. It should be understood that this is an exemplary illustration using the SPO SEI message as an example, and in practical applications, this example can also be applied to PON SEI messages or other possible messages that can indicate the processing order of SEI messages.
[0074] In Table 1, po_id: the identifier of this SPOSEI message.
[0075] `po_duplicate_present_flag`: First duplicate flag, used to indicate whether there are duplicate SEI messages among multiple SEI messages. When the value of `po_duplicate_present_flag` is 1, it indicates that at least one duplicate SEI message exists among multiple SEI messages. When the value of `po_duplicate_present_flag` is 0, it indicates that no duplicate SEI messages exist among multiple SEI messages.
[0076] In some embodiments, the indication information may also include the number of other PON SEI messages, SPOSEI messages, or other possible messages that can indicate the processing order of SEI messages associated with the current PON SEI message or SPOSEI message.
[0077] Table 2
[0078] Table 2 provides an example of a PON SEI message processing_order_nesting. It should be understood that this is an exemplary illustration using a PON SEI message as an example; in practical applications, this example can also be applied to SPOSEI messages or other possible messages that can indicate the processing order of SEI messages.
[0079] In Table 2, pon_num_po_ids_minus1 indicates the number of SEI messages associated with this PON SEI message in the SEI processing order.
[0080] `pon_duplicate_present_flag`: First duplication flag, used to indicate whether there are duplicate SEI messages among the multiple SEI messages of this PON SEI message. When the value of `pon_duplicate_present_flag` is 1, it indicates that at least one duplicate SEI message exists among the multiple SEI messages of this PON SEI message. When the value of `pon_duplicate_present_flag` is 0, it indicates that no duplicate SEI messages exist among the multiple SEI messages of this PON SEI message.
[0081] pon_target_po_id[i]: The identifier of the i-th SEI message associated with this PON SEI message.
[0082] (2) The second duplicate identifier corresponding to each SEI message
[0083] For example, the second duplicate identifier corresponding to the SEI message is used to indicate whether the SEI message is a duplicate SEI message.
[0084] For example, the second duplicate identifier taking a second value can be used to indicate that the SEI message corresponding to the second duplicate identifier is a duplicate SEI message, for example, the second value is 1. Conversely, the second duplicate identifier taking a fourth value can be used to indicate that the SEI message corresponding to the second duplicate identifier is not a duplicate SEI message, for example, the fourth value is 0.
[0085] In some embodiments, the second duplicate identifier corresponding to the i-th SEI message is represented by the field po_duplicate_msg_flag[i]. i = 1, 2, 3, ..., etc.
[0086] Table 3
[0087] For example, as shown in Table 3, an example of an SPOSEI message sei_processing_order is provided. It should be understood that this is an exemplary illustration using the SPO SEI message as an example, and in practical applications, this example can also be applied to PON SEI messages or other possible messages that can indicate the processing order of SEI messages.
[0088] In Table 3, po_id: the identifier of this SPOSEI message.
[0089] po_num_sei_messages_minus2: This indicates the number of message types of the SEI message indicated in this SPOSEI message.
[0090] `po_duplicate_msg_flag[i]`: The second duplicate flag corresponding to the i-th SEI message, used to indicate whether the i-th SEI message is a duplicate SEI message. When the value of `po_duplicate_msg_flag[i]` is 1 for at least one SEI message in the SPOSEI message, it indicates that the SPOSEI message contains a duplicate SEI message. When the value of `po_duplicate_msg_flag[i]` for all SEI messages in the SPOSEI message is 0, it indicates that the SPOSEI message does not contain a duplicate SEI message.
[0091] (3) Processing order of each SEI message
[0092] In some embodiments, the number of processing orders for an SEI message can be one or more. Duplicate SEI messages have at least two processing orders. That is, if the number of processing orders for an SEI message is greater than one, it indicates that the SEI message is a duplicate SEI message.
[0093] For example, multiple SEI messages include message 1, message 2, message 3, and message 4. For instance, message 1 is processed in the order of 1 and 4, message 2 is processed in the order of 2, message 3 is processed in the order of 3, and message 4 is processed in the order of 5. The number of processing orders for message 1 is greater than 1, meaning message 1 is a duplicate SEI message.
[0094] In some embodiments, if the maximum processing order included in the processing order is greater than the number of multiple SEI messages, it indicates that there are duplicate SEI messages among the multiple SEI messages. Again, taking messages 1, 2, 3, and 4 as an example, the number of SEI messages is 4, and the maximum processing order is 5 for message 4. In this case, since the maximum processing order included in the processing order is greater than the number of multiple SEI messages, there are duplicate SEI messages among messages 1, 2, 3, and 4.
[0095] In some embodiments, the processing order of the i-th SEI message j is represented by the field po_sei_processing_order[i][j].
[0096] Table 4
[0097] For example, as shown in Table 4, an example of an SPOSEI message sei_processing_order is provided. It should be understood that this is an exemplary illustration using the SPO SEI message as an example, and in practical applications, this example can also be applied to PON SEI messages or other possible messages that can indicate the processing order of SEI messages.
[0098] In Table 4, po_id: the identifier of this SPOSEI message.
[0099] po_num_sei_messages_minus2: This indicates the number of SEI messages indicated in this SPOSEI message.
[0100] po_num_order_minus1[i]: Used to indicate the number of processing orders corresponding to the i-th SEI message.
[0101] po_sei_processing_order[i][j]: This indicates the j-th processing order corresponding to the i-th SEI message.
[0102] Table 5
[0103] For example, the indication information may also include the processing order of each SEI message and a second repeating identifier corresponding to each SEI message. Table 5 provides an example of an SPOSEI message, sei_processing_order. It should be understood that this is an exemplary illustration using an SPOSEI message as an example; in practical applications, this example can also be applied to PON SEI messages or other possible messages that can indicate the processing order of SEI messages.
[0104] In Table 5, po_id: the identifier of this SPOSEI message.
[0105] po_num_sei_messages_minus2: This indicates the number of message types of the SEI message indicated in this SPOSEI message.
[0106] `po_duplicate_msg_flag[i]`: The second duplicate flag corresponding to the i-th SEI message, used to indicate whether the i-th SEI message is a duplicate SEI message. When `po_duplicate_msg_flag[i]` is 1, it indicates that the i-th SEI message is a duplicate message. That is, the number of processing orders corresponding to the i-th SEI message is greater than 1. In this case, the processing order of the i-th SEI message can also be determined based on `po_num_order_minus1[i]` and `po_sei_processing_order[i][j]`.
[0107] po_num_order_minus1[i]: Used to indicate the number of processing orders corresponding to the i-th SEI message.
[0108] po_sei_processing_order[i][j]: This indicates the j-th processing order corresponding to the i-th SEI message.
[0109] Alternatively, when po_duplicate_msg_flag[i] is 0, it indicates that the i-th SEI message is not a duplicate message. That is, the number of processing orders corresponding to the i-th SEI message is 1.
[0110] (4) Association information for each SEI message
[0111] For example, the association information of an SEI message is used to indicate whether an SEI message is associated with other SEI messages.
[0112] For example, a fifth value for the association information can be used to indicate that the SEI message corresponding to the association information is associated with other SEI messages, such as a fifth value of 1. Conversely, a sixth value for the association information can be used to indicate that the SEI message corresponding to the association information is not associated with other SEI messages, such as a sixth value of 0.
[0113] For example, an SEI message and other associated SEI messages belong to the same SPOSEI message or PON SEI message indicating the same SEI message. That is, the SEI message and other associated SEI messages are on the same SEI message processing chain.
[0114] In some embodiments, if an SEI message has other associated SEI messages, the association information of the SEI message may also include the identifiers of the other associated SEI messages, such as the message indexes of the other associated SEI messages.
[0115] In some embodiments, the association information of the i-th SEI message is represented by the field po_associate_sei_flag[i].
[0116] Table 6
[0117] For example, as shown in Table 6, an example of an SPOSEI message sei_processing_order is provided. It should be understood that this is an exemplary illustration using the SPO SEI message as an example, and in practical applications, this example can also be applied to PON SEI messages or other possible messages that can indicate the processing order of SEI messages.
[0118] In Table 6, po_id: the identifier of this SPOSEI message.
[0119] po_num_sei_messages_minus2: This indicates the number of message types of the SEI message indicated in this SPOSEI message.
[0120] po_sei_processing_order[i]: This indicates the processing order of the i-th SEI message.
[0121] `po_associate_sei_flag[i]`: Association information for the i-th SEI message. It indicates whether the i-th SEI message is associated with other SEI messages in the SEI message processing chain. When `po_associate_sei_flag[i]` is 1, it means the i-th SEI message has associated other SEI messages (indicated by the same SPO SEI message or PON SEI message). When `po_associate_sei_flag[i]` is 0, it means the i-th SEI message does not have associated other SEI messages (indicated by the same SPOSEI message or PON SEI message).
[0122] `po_associated_sei_idx[i]`: Indicates the message index of the SEI message associated with the i-th SEI message. For example, this message index can be the processing order of the SEI messages associated with the i-th SEI message, or the order among multiple SEI messages indicated by the same SPOSEI message or PON SEI message, etc. For instance, the message index of the associated SEI message of the i-th SEI message is m, meaning the associated SEI message of the i-th SEI message is the m-th SEI message among multiple SEI messages indicated by the same SPOSEI message or PON SEI message, or it can be an SEI message with a processing order of m. In some embodiments, the value of m can be less than the value of i.
[0123] Table 7
[0124] For example, as shown in Table 7, an example of an SPOSEI message sei_processing_order is provided. It should be understood that this is an exemplary illustration using the SPO SEI message as an example, and in practical applications, this example can also be applied to PON SEI messages or other possible messages that can indicate the processing order of SEI messages.
[0125] In Table 7, po_id: the identifier of this SPOSEI message.
[0126] po_num_sei_messages_minus2: This indicates the number of message types of the SEI message indicated in this SPOSEI message.
[0127] po_duplicate_msg_flag[i]: The second duplicate flag corresponding to the i-th SEI message, used to indicate whether the i-th SEI message is a duplicate SEI message. When po_duplicate_msg_flag[i] is 1, it indicates that the i-th SEI message is a duplicate message. That is, the number of processing orders corresponding to the i-th SEI message is greater than 1.
[0128] `po_associate_sei_flag[i]`: Association information for the i-th SEI message. It indicates whether the i-th SEI message is associated with other SEI messages in the SEI message processing chain. When `po_associate_sei_flag[i]` is 1, it means that the i-th SEI message has other associated SEI messages with the same SPO SEI message indication. In this case, the indication information may also include the message index of the SEI message associated with the i-th SEI message.
[0129] `po_associated_sei_idx[i]`: Indicates the message index of the SEI message associated with the i-th SEI message. For example, this message index can be the processing order of the SEI messages associated with the i-th SEI message, or the order among multiple SEI messages indicated by the same SPOSEI message, or other possible index information. For instance, the message index of the associated SEI message of the i-th SEI message is `m`, meaning the associated SEI message of the i-th SEI message is the `m`-th SEI message among multiple SEI messages indicated by the same SPOSEI message, or it can be the SEI messages with a processing order of `m`. In some embodiments, the value of `m` can be less than the value of `i`.
[0130] Alternatively, when po_associate_sei_flag[i] is 0, it indicates that the i-th SEI message has no associated (indicated by the same SPOSEI message) other SEI messages. In this case, the SEI message can still be processed according to the processing order corresponding to the i-th SEI message.
[0131] po_sei_processing_order[i]: This indicates the processing order of the i-th SEI message.
[0132] It should be understood that the examples in the tables above are illustrative only, and the indication information may include one or more of the following: a first duplicate identifier, a second duplicate identifier corresponding to each SEI message, the processing order of each SEI message, and the associated information of each SEI message. Therefore, the technical solutions shown in the examples above can be combined with each other without contradiction.
[0133] In S103, multiple SEI messages are processed according to the instruction information, and the target data is obtained by decoding the bitstream based on the processing results of the multiple SEI messages.
[0134] In some embodiments, the decoding end can determine the processing order of multiple SEI messages based on the indication information, and process each SEI message sequentially based on the obtained processing order.
[0135] In some embodiments, the decoding end can first determine whether there are duplicate SEI messages among multiple SEI messages based on the indication information. If there are duplicate SEI messages, the multiple SEI messages are processed in combination with the multiple processing orders of the duplicate SEI messages.
[0136] For example, as shown in Figure 3, the decoding end can perform the following steps S1-S6 to process multiple SEI messages and decode the bitstream based on the processing results of multiple SEI messages to obtain the target data.
[0137] In S1, the bitstream and indication information of multiple SEI messages are obtained.
[0138] In S2, it is determined whether there is a duplicate SEI message among the multiple SEI messages.
[0139] If so, proceed to step S3.
[0140] If not, proceed to step S5.
[0141] In some embodiments, the decoding end can determine, based on indication information, that a duplicate SEI message exists among the plurality of SEI messages. The indication information is used to indicate the presence of a duplicate SEI message among the plurality of SEI messages if at least one of the following conditions is met:
[0142] The first repeating identifier takes the first value;
[0143] There exists at least one second duplicate identifier that takes the second value;
[0144] The maximum processing order contained in the processing sequence is greater than the number of multiple SEI messages;
[0145] There exists at least one SEI message processing order greater than 1; or
[0146] The existence of at least one SEI message association information indicates that the SEI message is associated with other SEI messages besides the SEI message itself.
[0147] For a detailed description of the indication information indicating the presence of duplicate SEI messages among multiple SEI messages, please refer to the specific introduction of each indication information above, which will not be repeated here.
[0148] In S3, the duplicate SEI messages and their processing order are determined.
[0149] In some embodiments, the decoder can identify each duplicate SEI message based on the indication information.
[0150] In some embodiments, the repeated SEI message satisfies at least one of the following:
[0151] The second duplicate identifier corresponding to the SEI message takes the second value;
[0152] The number of SEI message processing orders is greater than 1; or
[0153] The association information of an SEI message indicates that the SEI message has an associated SEI message.
[0154] For example, the decoding end can identify each SIE message in the plurality of SEI messages based on the second duplicate identifier, and determine the SEI message in the plurality of SEI messages whose second duplicate identifier takes the second value as a duplicate SEI message.
[0155] Alternatively, the decoding end can identify each SIE message in the multiple SEI messages based on the number of processing orders, and determine the SEI messages with a processing order greater than 1 as duplicate SEI messages.
[0156] Alternatively, the decoding end can identify each SIE message among the multiple SEI messages based on the association information. If the association information of an SEI message indicates that the SEI message has associated SEI messages, then the SEI message can be identified as a duplicate SEI message. Otherwise, if the association information of an SEI message indicates that the SEI message does not have associated SEI messages, then the SEI message can be identified as not a duplicate SEI message.
[0157] Of course, the above examples can also be combined with each other. For example, the decoding end can determine the duplicate SEI message based on the second duplicate identifier combined with the number of processing orders, the number of processing orders combined with the associated information, etc., which will not be elaborated here.
[0158] Therefore, when the decoding end identifies a duplicate SEI message, it can also determine the processing order of each duplicate SEI message based on the indication information.
[0159] In S4, the sorting result of multiple SEI messages is determined based on the processing order of duplicate SEI messages and the indication information.
[0160] For example, in this sorting result, a duplicate SEI message corresponds to multiple processing orders. This sorting result can also be understood as a message processing chain of multiple SEI messages, in which case the multiple SEI messages are arranged sequentially on the message processing chain, and at least two SEI messages at different positions on the message processing chain are the same (i.e., duplicate SEI messages).
[0161] For example, multiple SEI messages include message 1, message 2, message 3, and message 4. The processing order of message 1 is 1 and 4, the processing order of message 2 is 2, the processing order of message 3 is 3, and the processing order of message 4 is 5. The resulting sorting result can be message 1, message 2, message 3, message 1, and message 4.
[0162] In S5, the sorting result is determined based on the instruction information.
[0163] For example, if there are multiple SEI messages including message 1, message 2, and message 3, and the processing order of message 1 is 3, the processing order of message 2 is 2, and the processing order of message 3 is 1, then there are no duplicate SEI messages, and the sorting result can be message 3, message 2, and message 1.
[0164] In S6, based on the sorting results, multiple SEI messages are processed, and the target data is obtained by decoding the bitstream based on the processing results of multiple SEI messages.
[0165] For example, the bitstream or decoded bitstream can be processed according to the processing order of multiple SEI messages indicated by the SPOSEI message or PON SEI message, that is, the operations corresponding to multiple SEI messages are executed sequentially according to the processing order to obtain the target data.
[0166] Based on the technical solutions provided by some embodiments of this disclosure, the processing order of multiple SEI messages in the bitstream and whether there are duplicate SEI messages among the multiple SEI messages can be determined by the indication information. In this way, based on the indication information, when there are duplicate SEI messages among the multiple SEI messages in the bitstream, it is not necessary to transmit the same SEI message (i.e., duplicate SEI message) multiple times, thereby avoiding unnecessary waste of transmission overhead caused by transmitting the same SEI message multiple times and reducing the transmission overhead of SEI messages.
[0167] As shown in Figure 4, this disclosure also provides a method for processing SEI messages. This method can be applied to the encoding / decoding system shown in Figure 1, and can be executed by the encoding end 10. The method includes steps S201 to S203.
[0168] In S201, the target data and multiple SEI messages are acquired.
[0169] For example, target data may include video data to be encoded, image data, etc.
[0170] For example, the encoding end can obtain the target data and determine the target data that needs to be processed, and determine the multiple SEI messages corresponding to the processing operation and the processing order of the multiple SEI messages.
[0171] For example, the message types of multiple SEI messages may include: sample aspect ratio (SAPP) SEI messages, equirectangular projection (EIP) SEI messages, omni viewport (OMN) SEI messages, or AI-based enhancement (AI) SEI messages, etc.
[0172] In some embodiments, the multiple SEI messages are all different. For example, the multiple SEI messages included in the bitstream can be multiple SEI messages with different message types. Alternatively, the multiple SEI messages included in the bitstream can include at least two SEI messages with the same message type but different message content.
[0173] In S202, multiple SEI messages and target data are encoded to obtain the encoded bitstream.
[0174] For example, the encoding end can use a defined encoding method to encode multiple SEI messages and target data, and this encoding method corresponds to the decoding method used by the decoding end, thereby obtaining the encoded bitstream.
[0175] In S203, the code stream and indication information are sent.
[0176] For example, the indication information is used to indicate the processing order of multiple SEI messages and whether there are duplicate SEI messages among the multiple SEI messages, and duplicate SEI messages have at least two processing orders.
[0177] In some embodiments, the indication information includes at least one of the following:
[0178] First Duplicate Identifier; The first duplicate identifier is used to indicate whether there is a SEI message that needs to be repeated among multiple SEI messages;
[0179] The second duplicate identifier corresponding to each SEI message; the second duplicate identifier corresponding to each SEI message is used to indicate whether the SEI message is an SEI message that needs to be repeated.
[0180] The processing order of each SEI message; or
[0181] The association information for each SEI message indicates whether an SEI message is associated with other SEI messages.
[0182] For example, the first duplicate identifier is represented by the field po_duplicate_present_flag.
[0183] The second duplicate identifier corresponding to the i-th SEI message is represented by the field po_duplicate_msg_flag[i].
[0184] The processing order of the i-th SEI message j-th is represented by the field po_sei_processing_order[i][j].
[0185] The association information for the i-th SEI message is represented by the field po_associate_sei_flag[i].
[0186] In some embodiments, the indication information is used to indicate the presence of duplicate SEI messages among multiple SEI messages if at least one of the following conditions is met:
[0187] The first repeating identifier takes the first value;
[0188] There exists at least one second duplicate identifier that takes the second value;
[0189] The maximum processing order contained in the processing sequence is greater than the number of multiple SEI messages;
[0190] There exists at least one SEI message processing order greater than 1; or
[0191] The existence of at least one SEI message association information indicates that the SEI message is associated with other SEI messages besides the SEI message itself.
[0192] In some embodiments, the SEI message needs to be repeated to satisfy at least one of the following:
[0193] The second duplicate identifier corresponding to the SEI message takes the second value;
[0194] The number of SEI message processing orders is greater than 1; or
[0195] The association information of an SEI message indicates that the SEI message has an associated SEI message.
[0196] In some embodiments, the indication information is carried in a SPOSEI message or a PON SEI message.
[0197] Furthermore, for a detailed description of steps S201-S203, please refer to the relevant descriptions of steps S101-S103 above, which will not be repeated here.
[0198] Based on the technical solutions provided by some embodiments of this disclosure, the indication information can indicate the processing order of multiple SEI messages in the code stream and whether there are duplicate SEI messages that need to be processed repeatedly among the multiple SEI messages, so as not to send the same SEI message (i.e., duplicate SEI message) multiple times, and avoid unnecessary waste of transmission overhead caused by transmitting the same SEI message multiple times.
[0199] The foregoing mainly describes the solutions provided by some embodiments of this disclosure from the perspective of interaction between various communication nodes. It is understood that each communication node, in order to achieve the above functions, includes at least one of the hardware structures or software modules corresponding to the execution of each function. Those skilled in the art should readily recognize that, in conjunction with the algorithm steps of the examples described in the embodiments disclosed herein, this disclosure can be implemented in hardware or a combination of hardware and computer software. Whether a function is executed in a hardware or software-driven manner 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 disclosure.
[0200] Figure 5 is a block diagram of a decoding device according to some embodiments. As shown in Figure 5, the decoding device 500 includes a receiving module 501 and a processing module 502.
[0201] The receiving module 501 is used to receive the bit stream, which includes multiple SEI messages and encoded data obtained by encoding the target data.
[0202] The receiving module 501 is also used to obtain indication information of multiple SEI messages. The indication information is used to indicate the processing order of multiple SEI messages and whether there are duplicate SEI messages among the multiple SEI messages. Duplicate SEI messages have at least two processing orders.
[0203] The processing module 502 is used to process multiple SEI messages according to the instruction information, and to decode the bitstream based on the processing results of the multiple SEI messages to obtain the target data.
[0204] In some embodiments, the multiple SEI messages are all different.
[0205] In some embodiments, the indication information includes at least one of the following:
[0206] First Duplicate Identifier; The first duplicate identifier is used to indicate whether there are duplicate SEI messages among multiple SEI messages;
[0207] The second duplicate identifier corresponding to each SEI message; the second duplicate identifier corresponding to each SEI message is used to indicate whether the SEI message is a duplicate SEI message;
[0208] The processing order of each SEI message; or
[0209] The association information for each SEI message indicates whether an SEI message is associated with other SEI messages.
[0210] In some embodiments, the indication information is used to indicate the presence of duplicate SEI messages among multiple SEI messages if at least one of the following conditions is met:
[0211] The first repeating identifier takes the first value;
[0212] There exists at least one second duplicate identifier that takes the second value;
[0213] The maximum processing order contained in the processing sequence is greater than the number of multiple SEI messages;
[0214] There exists at least one SEI message processing order greater than 1; or
[0215] The existence of at least one SEI message association information indicates that the SEI message is associated with other SEI messages besides the SEI message itself.
[0216] In some embodiments, the repeated SEI message satisfies at least one of the following:
[0217] The second duplicate identifier corresponding to the SEI message takes the second value;
[0218] The number of SEI message processing orders is greater than 1; or
[0219] The association information of an SEI message indicates that the SEI message has an associated SEI message.
[0220] In some embodiments, the first duplicate identifier is represented by the field po_duplicate_present_flag;
[0221] The second duplicate identifier corresponding to the i-th SEI message is represented by the field po_duplicate_msg_flag[i];
[0222] The processing order of the j-th SEI message of the i-th SEI message is represented by the field po_sei_processing_order[i][j];
[0223] The association information for the i-th SEI message is represented by the field po_associate_sei_flag[i].
[0224] In some embodiments, the processing module 502 is further configured to: determine the sorting result of the multiple SEI messages according to the processing order of the multiple SEI messages and the indication information when there are duplicate SEI messages among the multiple SEI messages, and process the multiple SEI messages based on the sorting result.
[0225] In some embodiments, the indication information is carried in a Supplemental Enhancement Information Processing Order (SPOSEI) message or a Processing Order Nesting (PON SEI) message.
[0226] For a more detailed description of the receiving module 501 and the processing module 502, as well as a more detailed description of their respective technical features and beneficial effects, please refer to the corresponding method embodiment section above, which will not be repeated here.
[0227] Figure 6 is a block diagram of an encoding device according to some embodiments. As shown in Figure 6, the encoding device 600 includes an acquisition module 601, an encoding module 602, and a transmission module 603.
[0228] The acquisition module 601 is used to acquire target data and multiple SEI messages, all of which are different.
[0229] The encoding module 602 is used to encode multiple SEI messages and target data to obtain an encoded bitstream.
[0230] The sending module 603 is used to send the code stream and indication information. The indication information is used to indicate the processing order of multiple SEI messages and whether there are duplicate SEI messages among the multiple SEI messages. Duplicate SEI messages have at least two processing orders.
[0231] For a more detailed description of the acquisition module 601, the encoding module 602, and the sending module 603, as well as a more detailed description of their respective technical features and beneficial effects, please refer to the corresponding method embodiment section above, which will not be repeated here.
[0232] It should be noted that the modules in Figure 5 or Figure 6 can also be called units; for example, the transmitting module can be called a transmitting unit. Furthermore, in the embodiments shown in Figure 5 or Figure 6, the names of the modules may not be those shown in the figures; for example, the transmitting module can also be called a communication module, and the receiving module can also be called a communication module.
[0233] If the units or modules in Figure 5 or Figure 6 are implemented as software functional modules and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solutions of some embodiments of this disclosure, in essence, or the parts that contribute to related technologies, or all or part of the technical solutions, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) or processor to execute all or part of the steps of the methods of the various embodiments of this disclosure. Storage media for storing computer software products include: USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, optical disks, and other media capable of storing program code.
[0234] When the functions of the integrated modules described above are implemented in hardware, some embodiments of this disclosure provide a block diagram of an encoding / decoding apparatus for executing the embodiments corresponding to any of the decoding or encoding ends described above. As shown in FIG7, the encoding / decoding apparatus 700 includes: a processor 702, a communication interface 703, and a bus 704. In some embodiments, the encoding / decoding apparatus 700 may further include a memory 701.
[0235] Processor 702 may implement or execute various exemplary logic blocks, modules, and circuits described in conjunction with this disclosure. Processor 702 may be a central processing unit, a general-purpose processor, a digital signal processor, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. It may implement or execute various exemplary logic blocks, modules, and circuits described in conjunction with this disclosure. Processor 702 may also be a combination that implements computational functions, such as a combination of one or more microprocessors, a digital signal processor (DSP), and a microprocessor.
[0236] The communication interface 703 is used to connect with other devices via a communication network. This communication network can be Ethernet, wireless access network, wireless local area network (WLAN), etc.
[0237] The memory 701 may be a read-only memory (ROM), other types of static storage devices that can store static information and instructions, random access memory (RAM), or other types of dynamic storage devices that can store information and instructions. It may also be an electrically erasable programmable read-only memory (EEPROM), a disk storage medium, or other magnetic storage devices, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer, but is not limited thereto.
[0238] In some embodiments, the memory 701 may exist independently of the processor 702. The memory 701 may be connected to the processor 702 via a bus 704 and is used to store instructions or program code. When the processor 702 calls and executes the instructions or program code stored in the memory 701, it can implement the methods provided in the embodiments of this disclosure.
[0239] In other embodiments, the memory 701 may also be integrated with the processor 702.
[0240] Bus 704 can be an extended industry standard architecture (EISA) bus, etc. Bus 704 can be divided into address bus, data bus, control bus, etc. For ease of illustration, only one thick line is used to represent it in Figure 7, but this does not mean that there is only one bus or one type of bus.
[0241] Through the above description of the implementation methods, those skilled in the art can clearly understand that, for the sake of convenience and brevity, only the division of the above functional modules is used as an example. In actual applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the equipment or device can be divided into different functional modules to complete all or part of the functions described above.
[0242] This disclosure also provides a computer-readable storage medium. All or part of the processes in the above method embodiments can be executed by computer instructions instructing related hardware. The program can be stored in the above-described computer-readable storage medium, and when executed, it can include the processes of the above-described method embodiments. The computer-readable storage medium can be any of the foregoing embodiments or memory. The above-described computer-readable storage medium can also be an external storage device of the above-described device or apparatus, such as a plug-in hard disk, smart media card (SMC), secure digital (SD) card, flash card, etc., equipped on the above-described device or apparatus. In some embodiments, the above-described computer-readable storage medium can also include both internal storage units of the above-described device or apparatus and external storage devices. The above-described computer-readable storage medium is used to store the above-described computer program and other programs and data required by the above-described device or apparatus. The above-described computer-readable storage medium can also be used to temporarily store data that has been output or will be output.
[0243] This disclosure also provides a computer program product comprising a computer program that, when run on a computer, causes the computer to perform any of the methods provided in the above embodiments.
[0244] Although this disclosure has been described herein in conjunction with various embodiments, those skilled in the art will understand and implement other variations of the disclosed embodiments by reviewing the accompanying drawings, the disclosure, and the appended claims in carrying out the claimed disclosure. In the claims, the word "comprising" does not exclude other components or steps, and "a" or "an" does not exclude a plurality. A single processor or other unit can implement several functions listed in the claims. While different dependent claims may recite certain measures, this does not mean that these measures cannot be combined to produce a good effect.
[0245] Although this disclosure has been described in conjunction with specific features and embodiments, it will be apparent that various modifications and combinations can be made therein without departing from the spirit and scope of this disclosure. Accordingly, this specification and drawings are merely exemplary illustrations of the disclosure as defined by the appended claims and are to be considered as covering any and all modifications, variations, combinations, or equivalents within the scope of this disclosure. It is obvious that those skilled in the art can make various alterations and modifications to this disclosure without departing from its spirit and scope. Thus, this disclosure is also intended to include any such modifications and modifications that fall within the scope of the claims of this disclosure and their equivalents.
[0246] The above description is merely a specific embodiment of this disclosure, but the scope of protection of this disclosure is not limited thereto. Any changes or substitutions within the technical scope disclosed in this disclosure should be included within the scope of protection of this disclosure. Therefore, the scope of protection of this disclosure should be determined by the scope of the claims.
Claims
1. A processing method of a supplemental enhancement information (SEI) message, applied to a decoding end, the method comprising: receiving a bitstream, the bitstream comprising a plurality of SEI messages and encoded data of target data; obtaining indication information of the plurality of SEI messages, the indication information being used to indicate a processing order of the plurality of SEI messages and whether there is a duplicated SEI message in the plurality of SEI messages, the duplicated SEI message having at least two processing orders; processing the plurality of SEI messages according to the indication information, and decoding the bitstream based on a processing result of the plurality of SEI messages to obtain the target data.
2. The method of claim 1, wherein, The plurality of SEI messages are all different.
3. The method of claim 1, wherein, The indication information comprises at least one of the following: a first duplication flag, the first duplication flag being used to indicate whether there is a duplicated SEI message in the plurality of SEI messages; a second duplication flag corresponding to each SEI message in the plurality of SEI messages, the second duplication flag corresponding to the SEI message being used to indicate whether the SEI message is the duplicated SEI message; a processing order of each SEI message; or association information of each SEI message, the association information of the SEI message being used to indicate whether the SEI message is associated with other SEI messages in the plurality of SEI messages. The indication information is used to indicate that there is the duplicated SEI message in the plurality of SEI messages when the indication information satisfies at least one of the following conditions:
4. The method of claim 3, wherein, the first duplication flag takes a first value; at least one second duplication flag takes a second value; a maximum processing order contained in the processing order is greater than a quantity of the plurality of SEI messages; a quantity of the processing order of at least one SEI message is greater than 1; or the association information of at least one SEI message indicates that the SEI message is associated with other SEI messages in the plurality of SEI messages except the SEI message. The duplicated SEI message satisfies at least one of the following conditions:
5. The method of claim 3, wherein, the second duplication flag corresponding to the SEI message takes the second value; a quantity of the processing order of the SEI message is greater than 1; or the association information of the SEI message indicates that the SEI message has associated SEI messages. The processing of the plurality of SEI messages according to the indication information comprises:
6. The method of claim 1, wherein, in a case where there is the duplicated SEI message in the plurality of SEI messages, determining a sorting result of the plurality of SEI messages according to the processing order and the indication information of the duplicated SEI message; processing the plurality of SEI messages based on the sorting result. The indication information is carried in a supplemental enhancement information processing order (SPOSEI) message or a processing order nesting (PON SEI) message.
7. The method of claim 1, wherein, 8. A processing method of an SEI message, applied to an encoding end, the method comprising: obtaining target data and a plurality of SEI messages; encoding and processing the plurality of SEI messages and the target data to obtain an encoded bitstream. transmitting the code stream and indication information; wherein the indication information is used to indicate a processing order of the multiple SEI messages and whether there is a repeated SEI message in the multiple SEI messages, the repeated SEI message having at least two processing orders.
9. The method of claim 8, wherein, The multiple SEI messages are all different.
10. The method of claim 8, wherein, The indication information comprises at least one of the following: a first repetition identifier, the first repetition identifier being used to indicate whether there is a required repeated SEI message in the multiple SEI messages; a second repetition identifier corresponding to each SEI message in the multiple SEI messages, the second repetition identifier corresponding to the SEI being used to indicate whether the SEI message is the required repeated SEI message; a processing order of each SEI message; or association information of each SEI message, the association information of the SEI message being used to indicate whether the SEI message is associated with other SEI messages in the multiple SEI messages. When the indication information satisfies at least one of the following conditions, the indication information is used to indicate that there is a repeated SEI message in the multiple SEI messages:
11. The method of claim 10, wherein, the first repetition identifier takes a first value; at least one second repetition identifier takes a second value; a maximum processing order contained in the processing order is greater than the number of the multiple SEI messages; the number of the processing order of at least one SEI message is greater than 1; or the association information of at least one SEI message indicates that the SEI message is associated with other SEI messages in the multiple SEI messages except the SEI message. The required repeated SEI message satisfies at least one of the following:
12. The method of claim 10, wherein, the second repetition identifier corresponding to the SEI message takes the second value; the number of the processing order of the SEI message is greater than 1; or the association information of the SEI message indicates that the SEI message has associated SEI messages. The indication information is carried in a supplemental enhancement information processing order (SPOSEI) message or a processing order nesting (PON SEI) message.
13. The method of claim 8, wherein, comprise:
14. A coding device, wherein, a memory and a processor; the memory and the processor are coupled; the memory is used to store instructions executable by the processor; the processor executes the instructions to perform the method according to any one of claims 1-13. The computer readable storage medium stores computer instructions, when the computer instructions run on the processor, make the processor execute the method according to any one of claims 1-13.
15. A computer readable storage medium, wherein, The computer program product contains a computer program, when the computer program runs on the computer, makes the computer execute the method according to any one of claims 1-13.
16. A computer program product, wherein,
Citation Information
Patent Citations
SEI message dependency simplification in video coding
CN114978232A
Signaling sub-picture level and buffer information
CN115918079A
Signaling of priority processing order for metadata messaging in video coding
CN117597925A
Supplemental enhancement information (SEI) manifest indication
US20240015332A1
Message referencing
US20240205460A1