A method, apparatus, and medium for decoding an image
By decoding the supplementary enhancement information of spliced frames during video transmission, extracting and dequantizing motion information, and combining the graphics processing unit and digital signal processor to perform frame interpolation operations, the problems of large transmission delay and high power consumption in the prior art are solved, and the construction efficiency of intermediate frames is improved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-12-19
- Publication Date
- 2026-03-24
AI Technical Summary
Existing video transmission methods rely on the client's information processing unit in cloud gaming scenarios, resulting in large transmission latency, high power consumption of encoding equipment, and low efficiency in constructing intermediate frames.
By decoding the received bitstream, the supplementary enhancement information corresponding to the spliced frame is determined. The color information and quantized motion information are extracted from the spliced frame using the graphics processing unit, and the target motion information is obtained through inverse quantization. The digital signal processor then performs frame interpolation operations to construct the intermediate frame.
It improves the efficiency of intermediate frame construction and reduces video transmission latency and power consumption of encoding devices.
Smart Images

Figure CN121367780B_ABST
Abstract
Description
Technical Field
[0001] The embodiments of this disclosure generally relate to video processing technology, and more specifically, to methods, apparatus and media for decoding images. Background Technology
[0002] Today, digital video capabilities are being applied to all aspects of people's lives. Existing video transmission methods (such as video transmission in cloud gaming scenarios) only transmit compressed color image frames; functions such as frame interpolation or reprojection rely entirely on the client's information processing unit (such as graphics processing unit and central processing unit). This approach results in problems such as high transmission latency, excessive power consumption of encoding equipment, and low efficiency in constructing intermediate frames. Summary of the Invention
[0003] In a first aspect, a method for decoding images is proposed. This method includes: determining supplementary enhancement information corresponding to a stitched frame in the bitstream by decoding a received bitstream; extracting color information and quantized motion information from multiple regions of the stitched frame, respectively, based on layout information indicated by the supplementary enhancement information, using a graphics processing unit; dequantizing the quantized motion information based on quantization parameter information in the supplementary enhancement information to determine target motion information; and performing frame interpolation operations based on the color information and target motion information using the graphics processing unit and a digital signal processor connected to the graphics processing unit to construct an intermediate frame.
[0004] In a second aspect, an apparatus for video processing is provided. The apparatus includes a processor and a non-transitory memory having instructions thereon. When executed by the processor, the instructions cause the processor to perform the method according to the first aspect of this disclosure.
[0005] In a third aspect, a non-transitory computer-readable storage medium is proposed. This non-transitory computer-readable storage medium stores instructions that cause a processor to perform the method according to the first aspect of this disclosure.
[0006] The embodiments of this disclosure can dequantize motion information using a graphics processing unit and a digital signal processor to obtain target motion, and then perform frame interpolation operations based on color information and target motion information using the digital signal processor. In this way, the embodiments of this disclosure can effectively improve the efficiency of constructing intermediate frames.
[0007] This summary is provided to present, in a simplified form, the selection of concepts further described below in the detailed description. This summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to limit the scope of the claimed subject matter. Attached Figure Description
[0008] The above and other objects, features, and advantages of exemplary embodiments of the present disclosure will become more apparent from the following detailed description with reference to the accompanying drawings. In the exemplary embodiments of the present disclosure, the same reference numerals generally refer to the same components.
[0009] Figure 1 A block diagram illustrating an example video codec system according to some embodiments of the present disclosure is shown;
[0010] Figure 2 A block diagram illustrating an example video encoder according to some embodiments of the present disclosure is shown;
[0011] Figure 3 A block diagram illustrating an example video decoder according to some embodiments of the present disclosure is shown;
[0012] Figure 4 An example flowchart of a method for decoding an image according to some embodiments of the present disclosure is shown;
[0013] Figure 5 An example structural diagram of a spliced frame according to some embodiments of the present disclosure is shown;
[0014] Figure 6 A block diagram of a computing device in which various embodiments of the present disclosure may be implemented is shown.
[0015] Throughout all the accompanying figures, the same or similar reference numerals generally refer to the same or similar elements. Detailed Implementation
[0016] The principles of this disclosure will now be described with reference to some embodiments. It should be understood that these embodiments are described for illustrative purposes only and to help those skilled in the art understand and implement this disclosure, and do not imply any limitation on the scope of this disclosure. In addition to the methods described below, the disclosure described herein can be implemented in various other ways.
[0017] In the following description and claims, unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure pertains.
[0018] The terms "an embodiment," "embodiment," "example embodiment," etc., used in this disclosure refer to embodiments that may include specific features, structures, or characteristics, but not every embodiment is required to include that specific feature, structure, or characteristic. Furthermore, these phrases do not necessarily refer to the same embodiment. Moreover, when a specific feature, structure, or characteristic is described in conjunction with an example embodiment, it is claimed that, whether explicitly described or not, such a feature, structure, or characteristic affecting its relation to other embodiments is within the knowledge of those skilled in the art.
[0019] It should be understood that although the terms “first” and “second”, etc., may be used herein to describe various elements, these elements should not be limited to these terms. These terms are used only to distinguish one element from another. For example, a first element may be referred to as a second element, and similarly, a second element may be referred to as a first element, without departing from the scope of the exemplary embodiments. As used herein, the term “and / or” includes any and all combinations of one or more of the listed terms.
[0020] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to limit the exemplary embodiments. As used herein, the singular forms “a,” “an,” and “the” are also intended to include the plural forms unless the context clearly indicates otherwise. It should also be understood that the terms “comprising,” “including,” “having,” “containing,” and / or “comprising” as used herein indicate the presence of the said features, elements, and / or components, but do not exclude the presence or addition of one or more other features, elements, components, and / or combinations thereof.
[0021] As mentioned above, digital video capabilities are now being applied to all aspects of people's lives. Existing video transmission methods (such as video transmission in cloud gaming scenarios) only transmit compressed color image frames; functions such as frame interpolation or reprojection rely entirely on the client's information processing unit (such as graphics processing unit and central processing unit). This approach results in problems such as high transmission latency, excessive power consumption of encoding equipment, and low efficiency in constructing intermediate frames.
[0022] Embodiments of this disclosure propose a scheme for decoding images. The scheme includes: determining supplementary enhancement information corresponding to stitched frames in the received bitstream by decoding the received bitstream; extracting color information and quantized motion information from multiple regions of the stitched frame by a graphics processing unit based on layout information indicated by the supplementary enhancement information, wherein the layout information indicates the distribution of multiple regions in the stitched frame; dequantizing the quantized motion information by the graphics processing unit based on quantization parameter information in the supplementary enhancement information to determine target motion information; and performing frame interpolation operations based on the color information and target motion information using the graphics processing unit and a digital signal processor connected to the graphics processing unit to construct intermediate frames.
[0023] The embodiments of this disclosure can dequantize motion information using a graphics processing unit to obtain target motion, and then perform frame interpolation operations based on color information and target motion information using a digital signal processor. In this way, the embodiments of this disclosure can effectively improve the efficiency of constructing intermediate frames.
[0024] The following section provides a detailed description of various example implementations of this scheme, with reference to the accompanying drawings.
[0025] Example Environment
[0026] Figure 1 This is a block diagram illustrating an example video encoding / decoding system 100 from which the techniques of this disclosure may be utilized. As shown, the video encoding / decoding system 100 may include encoding devices (e.g., source device 110) and decoding devices (e.g., destination device 120). The source device 110 may also be referred to as a video encoding device, and the destination device 120 may also be referred to as a video decoding device. In operation, the source device 110 may be configured to generate encoded video data, and the destination device 120 may be configured to decode the encoded video data generated by the source device 110. The source device 110 may include a video source 112, a video encoder 114, and a first I / O interface 116.
[0027] Video source 112 may include sources such as video capture devices. Examples of video capture devices include, but are not limited to, interfaces for receiving video data from video content providers, computer graphics systems for generating video data, and / or combinations thereof.
[0028] Video data may include one or more images. Video encoder 114 encodes the video data from video source 112 to generate a bitstream. The bitstream may include a sequence of bits forming an encoded representation of the video data. The bitstream may include encoded images and associated data. An encoded image is an encoded representation of an image. Associated data may include sequence parameter sets, image parameter sets, and other syntax structures. First I / O interface 116 may include a modulator / demodulator and / or a transmitter. Encoded video data can be directly transmitted to destination device 120 via network 130A through first I / O interface 116. Encoded video data may also be stored on storage medium / server 130B for access by destination device 120.
[0029] The destination device 120 may include a second I / O interface 126, a video decoder 124, and a display device 122. The second I / O interface 126 may include a receiver and / or a modem. The second I / O interface 126 may acquire encoded video data from the source device 110 or the storage medium / server 130B. The video decoder 124 may decode the encoded video data. The display device 122 may display the decoded video data to a user. The display device 122 may be integrated with the destination device 120, or it may be external to the destination device 120, which is configured to interface with an external display device.
[0030] The video encoder 114 and the video decoder 124 can operate according to video compression standards such as the High Efficiency Video Codec (HEVC) standard, the Multi-Functional Video Codec (VVC) standard, and other existing and / or future standards.
[0031] Figure 2 This is a block diagram illustrating an example of a video encoder 114 according to some embodiments of the present disclosure.
[0032] The video encoder 114 can be configured to implement any or all of the technologies disclosed herein. Figure 2 In the example, video encoder 114 includes multiple functional components. The techniques described in this disclosure can be shared among the various components of video encoder 114. In some examples, the processor can be configured to perform any or all of the techniques described in this disclosure.
[0033] In some embodiments, the video encoder 114 may include a segmentation unit 201, a prediction unit 202, a residual generation unit 207, a transform unit 208, a quantization unit 209, an inverse quantization unit 210, an inverse transform unit 211, a first reconstruction unit 212, a buffer 213, and an entropy coding unit 214. The prediction unit 202 may include a mode selection unit 203, a motion estimation unit 204, a motion compensation unit 205, and an intra-frame prediction unit 206.
[0034] In other examples, the video encoder 114 may include more, fewer, or different functional components. In one example, the prediction unit 202 may include an intra-block copy (IBC) unit. The IBC unit can perform prediction in an IBC mode, in which at least one reference picture is the picture in which the current video block is located.
[0035] Furthermore, although some components (such as motion estimation unit 204 and motion compensation unit 205) can be integrated, for interpretable purposes, these components are... Figure 2 The examples are shown separately.
[0036] The segmentation unit 201 can segment an image into one or more video blocks. The video encoder 114 and the video decoder 124 can support various video block sizes.
[0037] The mode selection unit 203 can, for example, select one of several coding modes (intra-coding or inter-coding) based on the error result, and provide the resulting intra-coded or inter-coded block to the residual generation unit 207 to generate residual block data, and provide it to the first reconstruction unit 212 to reconstruct the coded block for use as a reference image. In some examples, the mode selection unit 203 can select an intra-inter-prediction joint prediction (CIIP) mode, in which prediction is based on inter-prediction signals and intra-prediction signals. In the case of inter-prediction, the mode selection unit 203 can also select a resolution for the block based on the motion vector (e.g., sub-pixel precision or integer pixel precision).
[0038] To perform inter-frame prediction on the current video block, motion estimation unit 204 can generate motion information for the current video block by comparing one or more reference frames from buffer 213 with the current video block. Motion compensation unit 205 can determine the predicted video block for the current video block based on the motion information and decoded samples of images from buffer 213 other than the image associated with the current video block.
[0039] The motion estimation unit 204 and the motion compensation unit 205 can perform different operations on the current video block, for example, depending on whether the current video block is in an I-strip, P-strip, or B-strip. As used herein, an "I-strip" can refer to a portion of an image composed of macroblocks, all of which are based on macroblocks within the same image. Furthermore, as used herein, in some aspects, "P-strip" and "B-strip" can refer to portions of an image composed of macroblocks independent of the same image.
[0040] In some examples, motion estimation unit 204 can perform unidirectional prediction on the current video block, and can search reference images in list 0 or list 1 to find a reference video block for the current video block. Motion estimation unit 204 can then generate a reference index indicating the reference image containing the reference video block in list 0 or list 1, and a motion vector indicating the spatial displacement between the current video block and the reference video block. Motion estimation unit 204 can output the reference index, prediction direction indicator, and motion vector as motion information for the current video block. Motion compensation unit 205 can generate a predicted video block for the current video block based on the reference video block indicated by the motion information of the current video block.
[0041] Alternatively, in other examples, motion estimation unit 204 can perform bidirectional prediction on the current video block. Motion estimation unit 204 can search reference images in list 0 to find a reference video block for the current video block, and can also search reference images in list 1 to find another reference video block for the current video block. Motion estimation unit 204 can then generate multiple reference indices and multiple motion vectors, the multiple reference indices indicating multiple reference images containing multiple reference video blocks in lists 0 and 1, and the multiple motion vectors indicating multiple spatial displacements between the multiple reference video blocks and the current video block. Motion estimation unit 204 can output the multiple reference indices and multiple motion vectors of the current video block as motion information for the current video block. Motion compensation unit 205 can generate a predicted video block for the current video block based on the multiple reference video blocks indicated by the motion information of the current video block.
[0042] In some examples, the motion estimation unit 204 can output a complete set of motion information for use in the decoder's decoding process. Alternatively, in some embodiments, the motion estimation unit 204 can reference the motion information of another video block to transmit the motion information of the current video block via a signal. For example, the motion estimation unit 204 can determine that the motion information of the current video block is sufficiently similar to the motion information of neighboring video blocks.
[0043] In one example, the motion estimation unit 204 may indicate a value in the syntax structure associated with the current video block that indicates to the video decoder 124 that the current video block has the same motion information as another video block.
[0044] In another example, motion estimation unit 204 can identify another video block and motion vector difference (MVD) in the syntax structure associated with the current video block. The motion vector difference indicates the difference between the motion vector of the current video block and the motion vector of the indicated video block. Video decoder 124 can use the motion vector of the indicated video block and the motion vector difference to determine the motion vector of the current video block.
[0045] As discussed above, the video encoder 114 can transmit motion vectors via signaling in a predictive manner. Two examples of predictive signaling techniques that can be implemented by the video encoder 114 include Advanced Motion Vector Prediction (AMVP) and Merge Pattern Signaling.
[0046] Intra-prediction unit 206 can perform intra-prediction on the current video block. When intra-prediction unit 206 performs intra-prediction on the current video block, it can generate prediction data for the current video block based on decoded samples from other video blocks in the same frame. The prediction data for the current video block can include the predicted video block and various syntax elements.
[0047] The residual generation unit 207 can generate residual data for the current video block by subtracting (e.g., indicated by a minus sign) multiple predicted video blocks from the current video block. The residual data for the current video block can include residual video blocks corresponding to different sample components of the samples in the current video block.
[0048] In other examples, such as in skip mode, residual data for the current video block may not exist, and residual generation unit 207 may not perform a subtraction operation.
[0049] Transform unit 208 can generate one or more transform coefficient video blocks for the current video block by applying one or more transforms to the residual video block associated with the current video block.
[0050] After the transform unit 208 generates a transform coefficient video block associated with the current video block, the quantization unit 209 can quantize the transform coefficient video block associated with the current video block based on one or more quantization parameter (QP) values associated with the current video block.
[0051] The inverse quantization unit 210 and the inverse transform unit 211 can apply inverse quantization and inverse transform to the transform coefficient video block, respectively, to reconstruct the residual video block from the transform coefficient video block. The first reconstruction unit 212 can add the reconstructed residual video block to the corresponding samples of one or more predicted video blocks generated by the prediction unit 202 to generate a reconstructed video block associated with the current video block for storage in the buffer 213.
[0052] After the video block is reconstructed in the first reconstruction unit 212, a loop filtering operation can be performed to reduce video block artifacts in the video block.
[0053] Entropy encoding unit 214 can receive data from other functional components of video encoder 114. When entropy encoding unit 214 receives data, it can perform one or more entropy encoding operations to generate entropy-encoded data and output a bitstream including the entropy-encoded data.
[0054] Figure 3 This is a block diagram illustrating an example of a video decoder 124 according to some embodiments of the present disclosure.
[0055] The video decoder 124 can be configured to perform any or all of the techniques disclosed herein. Figure 3In the example, the video decoder 124 includes multiple functional components. The techniques described in this disclosure can be shared among the various components of the video decoder 124. The video decoder 124 can be, for example, a user's terminal device. Such a terminal device includes, but is not limited to, any type of mobile terminal, fixed terminal, or portable terminal, including mobile phones, desktop computers, laptop computers, notebook computers, netbook computers, tablet computers, media computers, multimedia tablets, handheld computers, portable gaming terminals, VR / AR devices, etc. In some examples, the processor can be configured to perform any or all of the techniques described in this disclosure.
[0056] exist Figure 3 In one example, the video decoder 124 includes a graphics processing unit 301, a digital signal processor 302, and memory 303. In some examples, the video decoder 124 may perform a decoding process that is generally contrasted with the encoding process described with respect to the video encoder 114.
[0057] The video decoder 124 can retrieve the encoded bitstream (also referred to as the bitstream). The encoded bitstream may include entropy-encoded video data (e.g., encoded blocks of video data). The video decoder 124 can decode the entropy-encoded video data to determine supplemental enhancement information corresponding to the spliced frames in the bitstream. This supplemental enhancement information may also be referred to as Supplemental Enhancement Information (SEI). The supplemental enhancement information includes at least layout information and quantization parameter information.
[0058] The graphics processing unit 301 can extract color information and quantized motion information from the stitched frames based on layout information. The graphics processing unit 301 can determine this information, for example, by executing AMVP and Merge modes. The quantized motion information here may include, for example, quantized motion vector displacement values indicating different directions, such as quantized horizontal motion vector displacement values and quantized vertical motion vector displacement values.
[0059] After obtaining color information and quantized motion information, the graphics processing unit 301 can dequantize the quantized motion information to obtain target motion information. After obtaining color information and target motion information, the graphics processing unit and digital signal processor 302 can, for example, perform cooperative frame interpolation operations based on the color information and target motion information to construct intermediate frames.
[0060] Some exemplary embodiments of this disclosure will be described in detail below. It should be noted that section headings are used in this document for ease of understanding and not to limit the embodiments disclosed in a section to that section. Furthermore, although some embodiments are described with reference to multi-function video codecs or other specific video codecs, the disclosed techniques are also applicable to other video codec techniques. Furthermore, although some embodiments describe video encoding steps in detail, it should be understood that the corresponding decoding steps for decoding will be implemented by the decoder. Additionally, the term video processing includes video encoding or compression, video decoding or decompression, and video transcoding, in which video pixels are represented from one compression format to another or at different compression bitrates.
[0061] Example process
[0062] Figure 4 A flowchart of an example process 400 for decoding an image according to some embodiments of the present disclosure is shown. Process 400 can be implemented at the destination device 120. Reference is made below. Figure 1 The process 400 is described using the video encoding / decoding system 100 shown. The video encoding / decoding system 100 may include encoding devices (e.g., source device 110) and decoding devices (e.g., destination device 120). The decoding device (e.g., destination device 120) may be, for example, a user terminal, including but not limited to any type of mobile terminal, fixed terminal, or portable terminal, such as a smartphone, tablet computer, personal computer, game console, etc.
[0063] In some embodiments, the source device 110 can acquire target motion information associated with the target frame. Further, the source device 110 can quantize the target motion information to obtain quantized motion information. Finally, the source device 110 can stitch the quantized motion information and color information together to obtain a stitched frame.
[0064] As an example, source device 110 can acquire a target frame in a video and various image information associated with the target frame. This various image information includes target color information and target motion information associated with the target frame. The target motion information can include horizontal motion vectors and vertical motion vectors. Taking a game scene as an example, the color information could indicate the model color of a virtual character in the target frame. The target motion information could indicate data such as the virtual character's movement direction and speed.
[0065] After obtaining various image information associated with the target frame, the source device 110 can quantize the various image information. For example, the source device 110 can map motion information from floating-point or high-precision values to fixed-bit-width (e.g., 10-bit) integers, thereby reducing the amount of data and adapting to the encoder's input format. Taking the horizontal motion vector in the motion information as an example, the quantization formula for the horizontal motion vector is as follows:
[0066] (1)
[0067] in, The quantized horizontal motion vector, The horizontal motion vector in the target motion information. This refers to the maximum motion vector. Taking a game scene as an example, the maximum motion vector here could be, for instance, the preset maximum horizontal speed of a virtual character in the game. The quantization process of the vertical motion vector is similar to that of the horizontal motion vector, and will not be elaborated upon here.
[0068] After quantizing the motion information to obtain quantized motion information, the source device 110 can acquire layout information. Having obtained the layout information, the source device 110 can stitch together the quantized motion and color information based on multiple regions indicated by the layout information to obtain a stitched frame. For example... Figure 5 As shown, Figure 5 An example structural diagram of a stitched frame according to an embodiment of the present disclosure is shown. The source device 110 can determine the regions corresponding to color information and quantized motion information in the stitched frame 500 based on layout information. For example, the source device 110 can determine, based on layout information, that color information corresponds to region 501, quantized horizontal motion vector corresponds to region 502, and quantized vertical motion vector corresponds to region 503. After determining the multiple regions corresponding to the color information, quantized horizontal motion vector, and quantized vertical motion vector, the source device 110 can perform a stitching operation on the aforementioned multiple pieces of information to obtain a stitched frame.
[0069] In some scenarios, the source device 110 can also acquire target depth information associated with the target frame. Taking a game scene as an example, this target depth information could indicate the distance data between a virtual character and other objects (such as buildings or other virtual characters) in the target frame. After obtaining the target depth information, the source device 110 can quantize the target depth information based on depth quantization information to obtain quantized depth information. Further, the source device 110 can determine the region (e.g., region 504) corresponding to the quantized depth information in the image plane based on layout information, and concatenate the quantized depth information, color information, quantized horizontal motion vector, and quantized vertical motion vector to obtain a concatenated frame. The quantization formula for the target depth information is shown below:
[0070] (2)
[0071] in, For quantified depth information, For target depth information, For minimum reference depth, This represents the maximum reference depth. The minimum reference depth can indicate, for example, the nearest depth boundary, and the maximum reference depth can indicate, for example, the farthest depth boundary. Taking a game scene as an example, the nearest depth boundary indicates the distance between the camera and the first virtual object in the virtual scene that is closest to the camera. The farthest depth boundary indicates the distance between the camera and the second virtual object in the virtual scene that is farthest from the camera.
[0072] In some embodiments, the stitched frame includes a first region, a second region, a third region, and a fourth region. The first region stores color information. The second region stores quantized motion information in the horizontal direction. The third region stores quantized motion information in the vertical direction. The fourth region stores quantized depth information. Layout information indicates the distribution of the first, second, third, and fourth regions within the stitched frame.
[0073] As an example, such as Figure 5As shown, after stitching together quantized depth information, color information, quantized horizontal motion vectors, and quantized vertical motion vectors, the source device 110 can obtain a stitched frame 500. The stitched frame 500 includes multiple regions. These multiple regions may include, for example, a first region through a fourth region. These multiple regions are used to store different information. The first region (e.g., region 501) can be used to store color information. The second region (e.g., region 502) can be used to store quantized motion information in the horizontal direction (also referred to as a quantized horizontal motion vector). The third region (e.g., region 503) can be used to store quantized motion information in the vertical direction (also referred to as a quantized vertical motion vector). The fourth region (e.g., region 504) can be used to store quantized depth information.
[0074] After obtaining the spliced frames, the source device 110 can encode the spliced frames to construct a bitstream. Further, the source device 110 can send the bitstream to the destination device 120. In some scenarios, the source device 110 can embed supplementary enhancement information (also known as media supplementary enhancement information) into the bitstream when constructing it. The supplementary enhancement information includes at least quantization parameter information for quantizing target motion information and target depth information, and layout information used to construct the spliced frames. The supplementary enhancement information may also include, for example, a version number, motion vector quantization bit depth (e.g., 10 bits), depth information quantization bit depth (e.g., 10 bits), and the original precision of the target depth information.
[0075] In this way, the embodiments of this disclosure can transmit not only color information of different video frames, but also motion information and depth information when transmitting the bitstream, thereby enabling the decoding end to better reconstruct the geometric relationship of the scene, providing a foundation for the subsequent generation of high-quality intermediate frames and occlusion repair.
[0076] like Figure 4 As shown, in step 410, the destination device 120 determines the supplementary enhancement information corresponding to the spliced frames in the bitstream by decoding the received bitstream. For example, as... Figure 3 As shown, after receiving the bitstream, the destination device 120 can use the video decoder 124 to determine the supplementary enhancement information corresponding to the spliced frames in the bitstream. This supplementary enhancement information includes at least quantization parameter information and layout information.
[0077] Continue to refer to Figure 4 In step 420, the target device 120, through the graphics processing unit, extracts color information and quantized motion information from multiple regions of the stitched frame based on the layout information indicated by the supplementary enhancement information. The layout information indicates the distribution of multiple regions in the stitched frame.
[0078] As an example, such as Figure 3As shown, after obtaining the supplementary enhancement information, the target device 120 can, through the graphics processing unit 301, determine multiple regions corresponding to various image information in the stitched frame based on the layout information in the supplementary enhancement information. For example, as Figure 5 As shown, the graphics processing unit 301 can determine, based on layout information, that color information corresponds to region 501, and quantized motion information corresponds to regions 502 and 502. After determining the regions corresponding to various types of image information, the graphics processing unit 301 can, for example, extract color information and quantized motion information from different regions respectively.
[0079] Continue to refer to Figure 4 In step 430, the target device 120, through the graphics processing unit, dequantizes the quantized motion information based on the quantization parameter information in the supplementary enhancement information to determine the target motion information. As an example, such as... Figure 3 As shown, the graphics processing unit 301 can parse the supplementary enhancement information to determine the motion quantization information corresponding to the quantized motion information. Furthermore, after obtaining the motion quantization information and the quantized motion information from the quantization parameter information, the graphics processing unit 301 can perform inverse quantization on the quantized motion information based on the motion quantization information to determine the target motion information.
[0080] In some embodiments, the target device 120 may use the graphics processing unit 301 to determine motion quantization information by parsing supplementary enhancement information. Further, the target device 120 may use the graphics processing unit 301 to inverse quantize the quantized motion information based on the motion quantization information to determine the target motion information. The motion quantization information here includes the maximum motion vector.
[0081] As an example, such as Figure 3 As shown, before transmitting the quantized motion information, the target device 120 can use the graphics processing unit 301 to parse the supplementary enhancement information to determine the motion quantization information. This motion quantization information includes the maximum motion vector. Taking a game scene as an example, the maximum motion vector could be the maximum speed of a virtual character in the target direction. After determining the maximum motion vector and the quantized motion information, the target device 120 can use the graphics processing unit 301 to inverse quantize the quantized motion information to determine the target motion information. Taking the inverse quantization of the quantized horizontal motion vector as an example, the formula for inverse quantization of the quantized horizontal motion vector is as follows:
[0082] (3)
[0083] Continue to refer to Figure 4In step 440, the target device 120 uses a graphics processing unit and a digital signal processor connected to the graphics processing unit to perform frame interpolation operations based on color information and target motion information to construct intermediate frames. As an example, such as... Figure 3 As shown, after determining the color information and target motion information, the target device 120 can use the graphics processing unit 301 and the digital signal processor 302 to perform frame interpolation calculations in collaboration. The target device 120 can use the graphics processing unit 301 and the digital signal processor 302 to generate intermediate frames by executing the interpolation formula shown below. The interpolation formula is as follows:
[0084] (4)
[0085] in, The color value of the target pixel in the intermediate frame. The color image of the nth frame. This refers to the color image of the (n+1)th frame. The target device 120 obtains the intermediate frame after performing frame interpolation. In this way, embodiments of the present disclosure utilize a digital signal processor in the target device 120 to perform frame interpolation, effectively reducing the bandwidth occupied by video transmission and thus reducing video or image transmission latency.
[0086] In some embodiments, the target device 120 can transmit color information and target motion information to a digital signal processor via a graphics processing unit. Furthermore, the target device 120 can perform frame interpolation operations based on the color information and target motion information via the digital signal processor.
[0087] As an example, such as Figure 3 As shown, after obtaining color information and target motion information, the graphics processing unit 301 can transmit the aforementioned information to the memory 303. The digital signal processor 302 can retrieve the aforementioned information from the memory 303 when it needs to acquire color information and target motion information. After providing the color information and target motion information to the digital signal processor 302, the digital signal processor 302 can perform frame interpolation operations based on the color information and target motion information to generate intermediate frames. The interpolation formula for the frame interpolation operation has been described above and will not be elaborated further in this disclosure.
[0088] In some embodiments, the target device 120 may transmit color information and target motion information via direct memory access (DMA) between the graphics processing unit and the digital signal processor. As an example, such as Figure 3As shown, after obtaining color information and target motion information, the graphics processing unit 301 can access memory 303 via Direct Memory Access (DMA) and transfer the color information and target motion information to memory 303. Furthermore, the digital signal processor 302 can also access memory 303 via DMA and retrieve color information and target motion information from memory 303. In this way, embodiments of this disclosure support the graphics processing unit transferring data to the digital signal processor via DMA, thereby enabling more efficient data transmission.
[0089] In some embodiments, the target device 120 may, by means of a graphics processing unit, perform a first stage of frame interpolation based on color information and target motion information to determine intermediate calculation results. Further, the target device 120 may, by means of a digital signal processor, perform a second stage of frame interpolation based at least on the intermediate calculation results to construct intermediate frames. The division between the first and second stages is determined based on the performance parameters of the graphics processing unit and the digital signal processor.
[0090] As an example, when performing frame interpolation, the destination device 120 can control the graphics processing unit 301 and the digital signal processor 302 to work together. For example, the graphics processing unit 301 can perform a first stage of the frame interpolation operation. This first stage may, for example, refer to a random access portion of the frame interpolation operation. This random access portion may, for example, include motion compensation, etc. The digital signal processor 302 can perform a second stage of the frame interpolation operation. This second stage may, for example, refer to a fixed operation portion of the frame interpolation operation. For example, the digital signal processor 302 may perform filtering processing, pixel blending processing, etc.
[0091] In some scenarios, the first stage of the frame interpolation operation performed by the graphics processing unit 301 may also include a first preprocessing of the target motion information. Such a first preprocessing may include filtering, smoothing, outlier detection and removal, etc., of the target motion information.
[0092] In other scenarios, the target device 120 may also divide the frame interpolation operation into a first stage and a second stage based on the performance parameters of the graphics processing unit 301 and the digital signal processor 302. These performance parameters may, for example, indicate the utilization rate of the graphics processing unit 301 and the digital signal processor 302. When the target utilization rate of the digital signal processor 302 reaches a threshold, the target device 120 may allocate a portion of the computation of the digital signal processor 302 in the frame interpolation process to the graphics processing unit 301. For example, the target device 120 may allocate edge enhancement processing to the graphics processing unit 301 so that the graphics processing unit 301 performs edge enhancement processing.
[0093] In this way, the embodiments of this disclosure can perform coordinated frame interpolation using a graphics processing unit and a digital signal processor, thereby effectively improving the efficiency of frame interpolation. Furthermore, the embodiments of this disclosure can also divide the first stage and the second stage based on the performance parameters of the graphics processing unit and the digital signal processor, thereby further improving the efficiency of frame interpolation.
[0094] In some embodiments, the target device 120 can extract quantized depth information from the stitched frames based on layout information using the graphics processing unit 301. Further, the target device 120 can perform inverse quantization on the quantized depth information based on depth quantization information in the quantization parameter information using the graphics processing unit 301 to determine the target depth information. Finally, the target device 120 can adjust the intermediate frames based on the target depth information using the graphics processing unit 301 and the digital signal processor 302.
[0095] As an example, when stitching together multiple image information, source device 110 can not only stitch together color information and quantized motion information to construct a stitched frame, but also stitch together color information, quantized motion information, and quantized depth information to construct a stitched frame. Destination device 120 can extract quantized depth information from the stitched frame based on layout information using graphics processing unit 301. Furthermore, destination device 120 can utilize graphics processing unit 301 to dequantize the quantized depth information based on the depth quantization information to determine target depth information. This target depth information can, for example, indicate the distance data between a virtual character in the target frame and other objects (e.g., buildings, other virtual characters).
[0096] After obtaining the target depth information, the target device 120 can use the graphics processing unit 301 to perform a second preprocessing on the target depth information. This second preprocessing may include, for example, hole filling and repair, noise reduction, depth edge enhancement, and depth consistency optimization of the target depth information. After preprocessing the target depth information, the target device 120 can use the graphics processing unit 301 and the digital signal processor 302 to perform occlusion detection or edge repair operations on the intermediate frames based on the preprocessed target depth information, thereby adjusting the intermediate frames. In this way, embodiments of this disclosure can adjust intermediate frames based on depth information, thereby effectively improving the quality of the intermediate frames.
[0097] In some embodiments, the depth quantization information includes a maximum reference depth and a minimum reference depth. The target device 120 can perform inverse quantization on the quantized depth information based on the maximum reference depth and the minimum reference depth using the graphics processing unit 301.
[0098] As an example, the graphics processing unit 301 can parse quantization parameters to obtain depth quantization information. This depth quantization information includes a maximum reference depth and a minimum reference depth. Further, the target device 120 can utilize the graphics processing unit 301 to inverse quantize the quantized depth information based on the maximum and minimum reference depths to obtain target depth information. Here, the minimum reference depth can, for example, indicate the nearest depth boundary, and the maximum reference depth can, for example, indicate the farthest depth boundary. Taking a game scene as an example, the nearest depth boundary indicates the distance between the camera and the first virtual object in the virtual scene closest to the camera. The farthest depth boundary indicates the distance between the camera and the second virtual object in the virtual scene farthest from the camera. The inverse quantization formula is shown below:
[0099] (5)
[0100] In some embodiments, the target device 120 may use a digital signal processor 302 to determine the occlusion relationship between multiple interpolated pixels in an intermediate frame based on target depth information. Further, the target device 120 may determine the target pixels to be retained in the intermediate frame based on the occlusion relationship between the multiple pixels.
[0101] As an example, after obtaining the target depth information, the target device 120 can use the digital signal processor 302 to determine the occlusion of the intermediate frame in order to adjust the intermediate frame. For example, the target device 120 can determine the occlusion relationship between multiple interpolated pixels in the intermediate frame based on the target depth information. Taking a game scene as an example, the target device 120 can use the digital signal processor 302 to determine the occlusion relationship between a virtual character and a virtual building in the game's virtual scene. Here, the occlusion relationship indicates whether a first part of the virtual building (e.g., a doorknob of the virtual building) is occluded by a second part of the virtual character (e.g., the right hand of the virtual character). If the occlusion relationship indicates that the doorknob of the virtual building is occluded by the right hand of the virtual character, the digital signal processor 302 can determine that only the target pixels corresponding to the right hand of the virtual character are included in the intermediate frame. In this way, the embodiments of this disclosure can effectively improve the generation quality of the intermediate frame.
[0102] In some embodiments, the target device 120 can also determine the edge positions where the depth change exceeds a preset level based on the target depth information using a digital signal processor 302. Furthermore, the target device 120 can perform filtering processing on the regions in the intermediate frames associated with the edge positions.
[0103] As an example, let's take a game scene as an illustration. The edge location where the depth change exceeds a preset level can, for example, indicate the edge of a foreground object in the game's virtual scene (such as the edge of a virtual character). The region associated with this edge location can, for example, indicate the boundary between foreground and background objects, such as the boundary between a virtual character and a virtual building. After frame interpolation, this boundary region often exhibits jagged edges and breaks. Therefore, the target device 120 can generate supplementary pixels associated with the boundary region using the digital signal processor 302. The digital signal processor 302 can fill the boundary region with these supplementary pixels to resolve jagged edges and breaks. However, after filling with supplementary pixels, the boundary region may exhibit color abrupt changes or pixelation. The target device 120 can perform filtering processing on the boundary region using the digital signal processor 302 to optimize edge smoothness, thereby further improving the quality of the generated intermediate frames.
[0104] The embodiments of this disclosure can dequantize motion information using a digital signal processor (DSP) and perform frame interpolation operations using the DSP. In this way, the embodiments of this disclosure can effectively improve the efficiency of intermediate frame construction.
[0105] Example devices and equipment
[0106] Figure 6 A block diagram of a computing device 600 in which various embodiments of the present disclosure may be implemented is shown. The computing device 600 may be implemented as a source device 110 (or video encoder 114) or a destination device 120 (or video decoder 124), or may be included in a source device 110 (or video encoder 114) or a destination device 120 (or video decoder 124).
[0107] It should be understood that, Figure 6 The computing device 600 shown is for illustrative purposes only and is not intended to imply any limitation on the functionality and scope of the embodiments of this disclosure.
[0108] like Figure 6 As shown, computing device 600 includes general-purpose computing device 600. Computing device 600 may include at least one or more processors or processing units 610, memory 620, storage unit 630, one or more communication units 640, one or more input devices 650, and one or more output devices 660.
[0109] In some embodiments, computing device 600 can be implemented as any user terminal or server terminal with computing capabilities. The server terminal can be a server, large computing device, etc., provided by a service provider. The user terminal can be, for example, any type of mobile terminal, fixed terminal, or portable terminal, including mobile phones, stations, units, devices, multimedia computers, multimedia tablet computers, internet nodes, communicators, desktop computers, laptop computers, notebook computers, netbook computers, tablet computers, personal communication system (PCS) devices, personal navigation devices, personal digital assistants (PDAs), audio / video players, digital cameras / camcorders, positioning devices, television receivers, radio receivers, e-book devices, gaming devices, or any combination thereof, including accessories and peripherals of these devices, or any combination thereof. It is conceivable that computing device 600 can support any type of interface to the user (such as "wearable" circuitry devices, etc.).
[0110] Processing unit 610 can be a physical processor or a virtual processor, and can perform various processes based on programs stored in memory 620. In a multiprocessor system, multiple processing units execute computer-executable instructions in parallel to improve the parallel processing capability of computing device 600. Processing unit 610 may also be referred to as a central processing unit (CPU), microprocessor, controller, or microcontroller.
[0111] Computing device 600 typically includes various computer storage media. Such media can be any media accessible by computing device 600, including but not limited to volatile and non-volatile media, or removable and non-removable media. Memory 620 can be volatile memory (e.g., registers, cache, random access memory (RAM)), non-volatile memory (such as read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), or flash memory) or any combination thereof. Storage cell 630 can be any removable or non-removable media and can include machine-readable media, such as memory, flash drives, disks, or other media that can be used to store information and / or data and can be accessed within computing device 600.
[0112] The computing device 600 may also include additional removable / non-removable storage media, volatile / non-volatile storage media. Although in Figure 6 Not shown, but a disk drive for reading from and / or writing to a removable non-volatile disk, and an optical disc drive for reading from and / or writing to a removable non-volatile optical disc may be provided. In this case, each drive may be connected to a bus (not shown) via one or more data media interfaces.
[0113] Communication unit 640 communicates with another computing device via a communication medium. Furthermore, the functionality of the components in computing device 600 can be implemented by a single computing cluster or multiple computing machines that can communicate via communication connections. Therefore, computing device 600 can operate in a networked environment using logical connections to one or more other servers, networked personal computers (PCs), or other general-purpose network nodes.
[0114] Input device 650 can be one or more of a variety of input devices, such as a mouse, keyboard, trackball, voice input device, etc. Output device 660 can be one or more of a variety of output devices, such as a monitor, speaker, printer, etc. With the aid of communication unit 640, computing device 600 can also communicate with one or more external devices (not shown), such as storage devices and display devices. Computing device 600 can also communicate with one or more devices that enable a user to interact with computing device 600, or, if needed, with any device that enables computing device 600 to communicate with one or more other computing devices (e.g., network card, modem, etc.). This communication can be performed via an input / output (I / O) interface (not shown).
[0115] In some embodiments, some or all of the components of computing device 600 may be arranged in a cloud computing architecture, rather than integrated into a single device. In a cloud computing architecture, components may be remotely provided and work together to achieve the functionality described herein. In some embodiments, cloud computing provides computing, software, data access, and storage services without requiring end users to know the physical location or configuration of the systems or hardware providing these services. In various embodiments, cloud computing provides services via a wide area network (WAN), such as the Internet, using suitable protocols. For example, a cloud computing provider provides applications via a WAN that can be accessed through a web browser or any other computing component. The software or components of the cloud computing architecture, along with the corresponding data, may be stored on servers at remote locations. Computing resources in a cloud computing environment may be consolidated or distributed across remote data center locations. Cloud computing infrastructure may provide services through shared data centers, although to users they appear as a single access point. Therefore, a cloud computing architecture can be used to provide the components and functionality described herein from service providers at remote locations. Alternatively, the components and functionality described herein may be provided by conventional servers or installed directly or otherwise on client devices.
[0116] In embodiments of this disclosure, computing device 600 may be used to implement video encoding / decoding. Memory 620 may include one or more video codec modules 625 having one or more program instructions. These modules are accessible and executable by processing unit 610 to perform the functions of the various embodiments described herein.
[0117] In an example embodiment of performing video encoding, input device 650 may receive video data as input 670 to be encoded. The video data may be processed, for example, by video codec module 625 to generate an encoded bitstream. The encoded bitstream may be provided as output 680 via output device 660.
[0118] In an example embodiment of performing video decoding, input device 650 may receive an encoded bitstream as input 670. The encoded bitstream may be processed, for example, by video codec module 625 to generate decoded video data. The decoded video data may be provided as output 680 via output device 660.
[0119] While this disclosure has been specifically shown and described with reference to preferred embodiments, those skilled in the art will understand that various changes in form and detail may be made without departing from the spirit and scope of this application as defined by the appended claims. These variations are intended to be covered by the scope of this application. Therefore, the foregoing description of embodiments of this application is not intended to be limiting.
Claims
1. A method for decoding an image, characterized in that, The method includes: By decoding the received bitstream, supplementary enhancement information corresponding to the spliced frames in the bitstream is determined; The graphics processing unit extracts color information and quantized motion information from multiple regions of the stitched frame based on the layout information indicated by the supplementary enhancement information, wherein the layout information indicates the distribution of the multiple regions in the stitched frame. The graphics processing unit, based on the quantization parameter information in the supplementary enhancement information, dequantizes the quantized motion information to determine the target motion information; and Using the graphics processing unit and the digital signal processor connected to the graphics processing unit, frame interpolation operations are performed based on the color information and the target motion information to construct intermediate frames.
2. The method according to claim 1, characterized in that, Using the graphics processing unit and the digital signal processor connected to the graphics processing unit, performing frame interpolation operations based on the color information and the target motion information includes: The graphics processing unit transmits the color information and the target motion information to the digital signal processor; and The digital signal processor performs the frame interpolation operation based on the color information and the target motion information.
3. The method according to claim 1, characterized in that, Using the graphics processing unit and the digital signal processor connected to the graphics processing unit, performing frame interpolation operations based on the color information and the target motion information includes: The graphics processing unit, based on the color information and the target motion information, performs the first stage of the frame interpolation operation to determine the intermediate operation result; and Using the digital signal processor, at least based on the intermediate calculation results, the second stage of the frame interpolation operation is performed to construct the intermediate frame.
4. The method according to claim 3, characterized in that, The division between the first stage and the second stage is determined based on the performance parameters of the graphics processing unit and the digital signal processor.
5. The method according to claim 2, characterized in that, The transmission of the color information and the target motion information from the graphics processing unit to the digital signal processor includes: The color information and the target motion information are transmitted via direct memory access (DMA) between the graphics processing unit and the digital signal processor.
6. The method according to claim 1, characterized in that, Based on the quantization parameter information in the supplementary enhancement information, the quantized motion information is dequantized to determine the target motion information, including: The graphics processing unit determines motion quantization information by parsing the supplementary enhancement information; and The graphics processing unit performs inverse quantization on the quantized motion information based on the motion quantization information to determine the target motion information.
7. The method according to claim 6, characterized in that, The motion quantization information includes the maximum motion vector.
8. The method according to claim 1, characterized in that, The method further includes: The graphics processing unit extracts quantized depth information from the stitched frame based on the layout information; The graphics processing unit performs dequantization on the quantized depth information based on the depth quantization information in the quantization parameter information to determine the target depth information; and The intermediate frames are adjusted based on the target depth information using the graphics processing unit and the digital signal processor.
9. The method according to claim 8, characterized in that, The spliced frames include: A first region, wherein the color information is stored; The second region stores quantized motion information in the horizontal direction; A third region, wherein the third region stores quantized motion information in the vertical direction; and The fourth region stores the quantized depth information.
10. The method according to claim 9, characterized in that, The layout information indicates the distribution of the first region, the second region, the third region, and the fourth region in the spliced frame.
11. The method according to claim 8, characterized in that, The depth quantization information includes a maximum reference depth and a minimum reference depth. Based on the depth quantization information in the quantization parameter information, inverse quantization is performed on the quantized depth information to determine the target depth information, including: The graphics processing unit performs inverse quantization on the quantized depth information based on the maximum reference depth and the minimum reference depth.
12. The method according to claim 8, characterized in that, Adjusting the intermediate frames based on the target depth information includes: The digital signal processor determines the occlusion relationship between multiple interpolated pixels in the intermediate frame based on the target depth information; and Based on the occlusion relationship between the plurality of interpolated pixels, the target pixel to be retained in the intermediate frame is determined.
13. The method according to claim 8, characterized in that, Adjusting the intermediate frames based on the target depth information includes: The digital signal processor, based on the target depth information, determines the edge positions where the depth change exceeds a preset level; and Filtering is performed on the region in the intermediate frame that is associated with the edge position.
14. The method according to claim 1, characterized in that, The spliced frame is generated by the encoding device based on the following process: Obtain the target motion information associated with the target frame; The target motion information is quantified to obtain the quantized motion information; as well as The quantized motion information and the color information are stitched together to obtain the stitched frame.
15. An apparatus for decoding images, characterized in that, The apparatus includes a processor and a non-transitory memory having instructions thereon, which, when executed by the processor, cause the processor to perform the method according to any one of claims 1 to 14.
16. A non-transitory computer-readable storage medium storing instructions, characterized in that, The instructions cause the processor to execute the instructions of the method according to any one of claims 1 to 14.
Citation Information
Patent Citations
Enhanced signaling of supplemental enhancement information
CN117730534A
Method for video decoding supported by graphics processing unit
US20100135418A1