Encoded video data processing methods and video encoding processors
By adjusting the predictive coding mode of the encoded video data, intra-frame prediction is converted into inter-frame prediction. Combined with transform and quantization processing, lossless or lossy secondary encoded video data is formed, which solves the problem of high bandwidth consumption in video data transmission in the existing technology and achieves more efficient data compression.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-03-28
- Publication Date
- 2026-03-06
AI Technical Summary
Existing video data encoding schemes still aim to further reduce data volume during network transmission in order to reduce bandwidth consumption.
By adjusting the predictive coding mode of the encoded video data, intra-frame prediction is converted into inter-frame prediction. Combined with transform and quantization processing, lossless or lossy secondary encoded video data is formed. During transmission, lossless decompression is performed to restore the original encoded video data.
It significantly reduces the bandwidth requirements for video data transmission and improves the compression rate of video data without affecting the user experience.
Smart Images

Figure CN116527912B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of encoded video, and in particular to methods and processors for processing encoded video. Background Technology
[0002] With the development of internet technology, especially with the rise and prosperity of online services such as video-on-demand, live streaming, and short video apps, video content is becoming increasingly rich and occupies an increasingly larger proportion of the various types of content transmitted online.
[0003] Since video content often has a large amount of data, there are currently many encoding and compression schemes to reduce the amount of video data, and they have achieved very good data compression results.
[0004] However, given the large amount of video content that needs to be transmitted over the network, there is always a desire to further compress video data and further reduce the data volume.
[0005] Therefore, an improved video data processing scheme is still desired, which can further reduce the amount of data transmitted in video data. Summary of the Invention
[0006] One technical problem this disclosure aims to solve is to provide a video data processing solution that can further reduce the amount of data transmitted in video data.
[0007] According to a first aspect of this disclosure, a method for processing encoded video data is provided, comprising: decoding encoded video data to obtain decoded video data; adjusting the predictive coding mode of at least a portion of the decoded video data to improve the prediction effect, thereby obtaining transcoded video data; and encoding the transcoded video data to obtain secondary encoded video data.
[0008] Optionally, the step of adjusting the predictive coding mode of at least a portion of the decoded video data to improve the prediction effect includes: converting the video data based on intra-frame prediction in the decoded video data into video data based on inter-frame prediction to obtain transcoded video data.
[0009] Optionally, the step of converting video data based on intra-frame prediction in the decoded video data into video data based on inter-frame prediction to obtain transcoded video data includes: using the video data of the current frame to obtain intra-frame prediction data of the corresponding image block of the video data based on intra-frame prediction; using the video data of the reference frame to obtain inter-frame prediction data of the image block; obtaining the difference between the inter-frame prediction data and the intra-frame prediction data of the image block; and obtaining transcoded video data based on the decoded video data and the difference.
[0010] Optionally, the decoded video data includes a first-level value obtained by transforming and quantizing the residual between the original video data and the intra-frame prediction data of the current frame. The step of obtaining transcoded video data based on the decoded video data and the difference includes: transforming and quantizing the difference to obtain a difference level value; obtaining the difference between the first-level value and the difference level value as a second-level value, and the transcoded video data includes the second-level value.
[0011] Optionally, the transformation process performed on the difference is the same as the transformation process performed on the residual.
[0012] Optionally, the quantization process performed on the difference after transformation is consistent with the quantization process performed on the residual after transformation.
[0013] Optionally, the reference frame is one or more frames adjacent to the current frame. Alternatively, the reference frame is one or more keyframes preceding the current frame. Alternatively, the current encoded video data belongs to a first encoded video data stream, and the reference frame is a frame in a second encoded video data stream corresponding to the current frame.
[0014] Optionally, the video data based on intra-frame prediction includes: video data of key frames in the decoded video data; and / or video data based on intra-frame prediction in non-key frames in the decoded video data.
[0015] According to a second aspect of this disclosure, a method for processing encoded video data is provided, comprising: receiving secondary encoded video data, wherein the secondary encoded video data is obtained by encoding transcoded video data, and the transcoded video data is obtained by adjusting the predictive coding mode of at least a portion of the video data of the original encoded video data to improve the prediction effect; decoding the secondary encoded video data to obtain transcoded video data; restoring at least a portion of the video data obtained by adjusting the predictive coding mode in the transcoded video data to video data with the corresponding predictive coding mode in the original encoded video data, to obtain restored decoded video data; and encoding the decoded video data to obtain restored encoded video data.
[0016] Optionally, adjusting the predictive coding mode of at least a portion of the original encoded video data to improve prediction performance includes converting intra-frame prediction-based video data in the original encoded video data into inter-frame prediction-based video data. Optionally, the step of restoring at least a portion of the transcoded video data obtained after predictive coding mode adjustment to video data with the corresponding predictive coding mode in the original encoded video data includes restoring the converted inter-frame prediction-based video data in the transcoded video data to intra-frame prediction-based video data.
[0017] Optionally, the step of recovering the decoded video data from the transcoded video data obtained based on inter-frame prediction to the video data obtained based on intra-frame prediction includes: for the image block corresponding to the transcoded video data based on inter-frame prediction, obtaining intra-frame prediction data using the video data of the current frame; obtaining inter-frame prediction data of the image block using the video data of the reference frame; obtaining the difference between the inter-frame prediction data and the intra-frame prediction data of the image block; and obtaining the decoded video data based on the transcoded video data and the difference.
[0018] Optionally, the transcoded video data includes a second-level value, which is the difference between the first-level value and the difference-level value. The first-level value is obtained by transforming and quantizing the residual between the original video data and the intra-frame prediction data of the current frame. The difference-level value is obtained by transforming and quantizing the difference between the inter-frame prediction data and the intra-frame prediction data of the image block in the current frame. The step of obtaining transcoded video data based on the decoded video data and the difference includes: performing transforming and quantizing processing on the difference to obtain the difference-level value; and obtaining the sum of the second-level value and the difference-level value to obtain the first-level value.
[0019] According to a third aspect of this disclosure, a method for processing encoded video data is provided, comprising: adjusting the predictive coding mode of at least a portion of the encoded video data at a first node to improve the prediction effect, thereby obtaining secondary encoded video data; sending the secondary encoded video data to a second node; and restoring at least a portion of the video data obtained by adjusting the predictive coding mode in the secondary encoded video data to video data in the original video data predictive coding mode at the second node, thereby obtaining restored encoded video data.
[0020] According to a fourth aspect of this disclosure, a video encoding processor is provided, comprising: a first decoder for decoding encoded video data to obtain decoded video data; a first transcoder for adjusting the predictive coding mode of at least a portion of the decoded video data to improve prediction performance, thereby obtaining transcoded video data; and a first encoder for encoding the transcoded video data to obtain secondary encoded video data.
[0021] According to a fifth aspect of this disclosure, a video encoding processor is provided, comprising: a communication device for receiving secondary encoded video data, wherein the secondary encoded video data is obtained by encoding transcoded video data, and the transcoded video data is obtained by adjusting the predictive coding mode of at least a portion of the video data of the original encoded video data to improve the prediction effect; a second decoder for decoding the input secondary encoded video data to obtain transcoded video data; a second transcoder for restoring at least a portion of the video data obtained by adjusting the predictive coding mode in the transcoded video data to video data with the corresponding predictive coding mode in the original encoded video data, to obtain restored decoded video data; and a second encoder for encoding the decoded video data to obtain restored encoded video data.
[0022] According to a sixth aspect of this disclosure, a computing device is provided, comprising: a processor; and a memory having executable code stored thereon, which, when executed by the processor, causes the processor to perform the method described in the first aspect above.
[0023] According to a seventh aspect of this disclosure, a computer program product is provided, including executable code that, when executed by a processor of an electronic device, causes the processor to perform the method described in the first aspect above.
[0024] According to an eighth aspect of this disclosure, a non-transitory machine-readable storage medium is provided, on which executable code is stored, which, when executed by a processor of an electronic device, causes the processor to perform the method described in the first aspect above.
[0025] Therefore, by adjusting the predictive coding mode of at least a portion of the original encoded video data in the standard mode to improve the prediction effect, the transmitted secondary encoded video data has a smaller data volume than the original encoded video data, thereby reducing the bandwidth resources required for video data transmission.
[0026] On the other hand, since the re-encoded video data can be restored to the original encoded video data before the video data is provided to the user's client, the encoded video data processing scheme disclosed herein can be implemented without the user's awareness. Attached Figure Description
[0027] The above and other objects, features and advantages of this disclosure will become more apparent from the more detailed description of exemplary embodiments thereof taken in conjunction with the accompanying drawings, wherein like reference numerals generally denote like parts.
[0028] Figure 1 A scheme for transmitting video streams over a network according to this disclosure is illustrated schematically.
[0029] Figure 2 This is a schematic flowchart of an encoded video data processing method for transmitting video data streams over a network according to embodiments of this disclosure.
[0030] Figure 3 This is a schematic diagram of a common video data encoding scheme.
[0031] Figure 4 It is a schematic block diagram of a video encoding processor that can be used to implement secondary encoding according to this disclosure.
[0032] Figure 5 This is a schematic flowchart illustrating the method for processing encoded video data using secondary encoding according to this disclosure.
[0033] Figure 6 This is a schematic framework diagram of a video encoding processor used to implement secondary encoding according to embodiments of the present disclosure.
[0034] Figure 7 This is a schematic block diagram of a video encoding processor that can be used to implement secondary decoding according to this disclosure.
[0035] Figure 8 This is a schematic flowchart illustrating the method for processing encoded video data using secondary decoding according to this disclosure.
[0036] Figure 9 This is a schematic framework diagram of a video encoding processor for implementing secondary decoding according to embodiments of the present disclosure.
[0037] Figure 10 A schematic diagram of a computing device that can be used to implement the above method according to an embodiment of the present invention is shown. Detailed Implementation
[0038] Preferred embodiments of the present disclosure will now be described in more detail with reference to the accompanying drawings. While preferred embodiments of the present disclosure are shown in the drawings, it should be understood that the present disclosure may be implemented in various forms and should not be limited to the embodiments set forth herein. Rather, these embodiments are provided so that the present disclosure will be thorough and complete, and will fully convey the scope of the disclosure to those skilled in the art.
[0039] In existing video data coding schemes, spatial (spatial domain) redundancy of video data is reduced through intra-frame prediction, and temporal (temporal domain) redundancy is reduced through inter-frame prediction. Accordingly, frames in encoded video data can be divided into I-frames (also known as "keyframes" or "intra-compressed frames"), P-frames (also known as "forward search frames" or "difference frames"), and B-frames (also known as "bidirectional search frames" or "bidirectional difference frames").
[0040] An I-frame is a frame that uses only intra-frame prediction for compression. Encoded video data typically requires a series of I-frames spaced at intervals. An I-frame can serve as the first frame of each Group of Pictures (GOP). During video decoding, I-frames do not need to reference any other frames to be decoded completely. Therefore, on the one hand, I-frames can serve as the starting point for random access; on the other hand, even if the preceding video data is corrupted, correct decoding can begin from the next I-frame.
[0041] A P-frame is a frame used for inter-frame prediction using previous frames in the frame sequence of the source video. A B-frame is a frame used for inter-frame prediction using both previous and subsequent frames in the frame sequence of the source video.
[0042] Generally speaking, B-frames have the highest compression rate, while I-frames have the lowest compression rate.
[0043] In video streams such as live streaming and video-on-demand, periodically arranged I-frames are included to facilitate random access.
[0044] However, the inventors of this disclosure have noted that when the bitstream of encoded video data is transmitted over the Internet, the ability to access it randomly is not required, and with the development of Internet infrastructure, errors in video data transmission are becoming increasingly rare.
[0045] Therefore, the inventors of this disclosure propose that, at least during the transmission of encoded video data, temporal information can be used to perform secondary lossless compression on I-frames. In other words, I-frames of encoded video data can be converted into inter-frame prediction frames (P-frames or B-frames) to reduce the I-frame bit rate and lower the bandwidth cost of data transmission.
[0046] In short, inter-frame predictions can be found in the reconstructed blocks of I-frames, their intra-frame predictions can be subtracted, and the resulting residuals can be transformed and quantized to form quantization levels. This level is used as the prediction value of the original quantization level in the original bitstream. The original quantization level is subtracted from this prediction value, and the difference is then entropy-coded to form a double-coded video data bitstream with double lossless compression.
[0047] When the secondary encoded video data stream is transmitted to the network node that is to provide encoded video data to the user, the node can restore the secondary encoded video data to the original encoded video data.
[0048] The I-frame double lossless compression method proposed in this disclosure is applicable to all current mainstream video coding standards, such as H.264, H.265, VP8 / 9, AV1, AVS series, etc.
[0049] Using the I-frame double lossless compression method proposed in this disclosure, neither the source encoding scheme nor the playback decoding scheme of the video data needs to be modified, and it can be directly applied within the existing complete technical architecture of video acquisition, encoding, transmission, decoding, and playback.
[0050] The coded video data processing scheme of this disclosure will now be described in detail with reference to the accompanying drawings.
[0051] 1. Overall architecture.
[0052] Figure 1 A scheme for transmitting video streams over a network according to this disclosure is illustrated schematically.
[0053] like Figure 1 As shown, the video data stream flows from the first node L1 to the second node L2, and the client C accesses and obtains the video data stream from the second node L2.
[0054] In this way, the video data stream only needs to meet the access requirements of client C at the second node L2, such as having random access capability. During the transmission from the first node to the second node L2, it is not necessary to consider whether the transmitted video data stream is easy for client C to access; for example, random access capability is not required.
[0055] Therefore, the original standard encoded video data stream can be subjected to secondary lossless compression at the first node L1 to reduce the amount of video data stream to be transmitted. After the video data stream with secondary encoding and compression is transmitted to the second node L2, it can be subjected to secondary lossless decompression at the second node L2 to restore it to the original standard encoded video data stream, which can then be easily accessed and obtained by the client C.
[0056] Lossless compression refers to the ability to completely recover the original data before compression after decompression. The secondary encoding compression scheme of this disclosure is preferably lossless. However, it should be understood that in some cases, depending on actual needs, applying a certain degree of lossy compression for secondary encoding compression is also feasible.
[0057] Regarding the secondary lossless compression scheme, considering the aforementioned difference in compression ratio between I-frames and P / B frames, we can try to further compress the I-frames at the first node L1.
[0058] For example, at the first node L1, time-domain information can be used to perform secondary lossless compression on the I-frames in the original standard coded video data stream, and then secondary lossless decompression can be performed at the second node L2 to restore the original standard coded video data stream.
[0059] Figure 2This is a schematic flowchart of an encoded video data processing method for transmitting video data streams over a network according to embodiments of this disclosure.
[0060] like Figure 2 As shown, in step S110, at the first node, the predictive coding mode of at least a portion of the encoded video data can be adjusted to improve the prediction effect, thereby obtaining secondary encoded video data.
[0061] Here, video data based on intra-frame prediction in encoded video data can be converted into video data based on inter-frame prediction.
[0062] For example, I-frames can be converted into P-frames or B-frames, and blocks in P-frames or B-frames that are coded by intra-frame prediction can be converted to blocks that are coded by inter-frame prediction.
[0063] Then, in step S120, the secondary encoded video data is sent to the second node.
[0064] During this transmission process, the ease of access for client C to the data and the user's ability to access data randomly can be disregarded. Furthermore, by transmitting secondary encoded video data with a higher compression ratio instead of the original encoded video data with a relatively lower compression ratio, bandwidth resources consumed in video data stream transmission can be saved.
[0065] Then, in step S130, at the second node, the secondary encoded video data can be restored to the original encoded video data. That is, at least a portion of the video data obtained by adjusting the aforementioned predictive coding mode in the secondary encoded video data can be restored to the video data of the original video data predictive coding mode, thus obtaining the restored encoded video data.
[0066] For example, the inter-frame prediction-based video data obtained from the aforementioned (intra-frame prediction to inter-frame prediction) transformation in the secondary encoded video data can be restored to the intra-frame prediction-based video data, thereby obtaining the restored encoded video data.
[0067] Therefore, as mentioned above, the bandwidth consumed in transmitting video streams from the first node L1 to the second node L2 can be saved.
[0068] The following describes in more detail the secondary encoding in step S110 and the secondary decoding in step S130.
[0069] The term "secondary decoding" is used here only to correspond with "secondary encoding," not to explicitly or implicitly indicate the order or number of decoding steps.
[0070] 2. Encoding once.
[0071] First, refer to Figure 3This describes the current general framework for video coding schemes. Almost all mainstream video compression standards currently follow this framework.
[0072] To distinguish it from the “secondary encoding” of this disclosure, this encoding process is referred to herein as “primary encoding”.
[0073] like Figure 3 As shown, the uncompressed YUV pixel data (YUV color encoding uses luminance and chrominance to specify the color of a pixel, where Y represents luminance and U and V represent chrominance) is first subtracted from the prediction data to obtain the residual. Then, it undergoes transformation and quantization to obtain the value of the quantization residual level. Finally, the level value is entropy encoded to form the compressed encoded video data bitstream, which is then output.
[0074] Prediction is divided into intra-frame prediction and inter-frame prediction. Motion data from inter-frame prediction and intra-frame prediction's intra-mode information also need to be written into the bitstream.
[0075] As mentioned above, for I-frames, only intra-frame prediction is used.
[0076] Figure 3 In this context, the modules used for prediction, such as inverse quantization, inverse transform, loop filter, reference frame buffer, motion estimation, inter-frame prediction, and intra-frame prediction, are already well-known in existing technologies and will not be elaborated upon here.
[0077] 3. Secondary encoding.
[0078] The following is for reference. Figure 4 and Figure 5 The description refers to the secondary encoding scheme according to this disclosure, namely step S110 performed, for example, at the first node L1.
[0079] Figure 4 It is a schematic block diagram of a video encoding processor that can be used to implement secondary encoding according to this disclosure.
[0080] Figure 5 This is a schematic flowchart illustrating the method for processing encoded video data using secondary encoding according to this disclosure.
[0081] like Figure 4 As shown, a video encoding processor 400 that can be used to implement secondary encoding (deployed on the first node L1) according to the present disclosure may include a first decoder 410, a first transcoder 420, and a first encoder 430.
[0082] Additionally, the video encoding processor 400 may also include a first communication device 440.
[0083] like Figure 5 As shown, in step S500, encoded video data can be received, for example, by the first communication device 440. The received encoded video data can be, for example, received via... Figure 3 The encoding scheme shown is used to encode standard pattern video data.
[0084] In step S510, for example, the first decoder 410 can decode the encoded video data to obtain the decoded video data.
[0085] Encoded video data can be received, for example, by the first communication device 440, via... Figure 3 The encoding scheme shown is used for one encoding step.
[0086] For example, in such Figure 3 In the case where the encoding scheme shown ultimately performs entropy encoding, the first decoder 410 here can correspondingly perform entropy decoding to obtain... Figure 3 The level value shown is obtained by quantizing and transforming the residual between YUV video data (pixel data) and prediction data. To distinguish it from the level value obtained by subsequent transcoding in the secondary encoding process, it is referred to here as the "first level value".
[0087] Here, only the frames to be re-encoded and the frames to be used as reference frames for inter-frame prediction can be decoded.
[0088] The frames to be re-encoded can be keyframes (I-frames) or non-keyframes (P-frames or B-frames) from which the video data based on intra-frame prediction is to be re-encoded.
[0089] In step S520, for example, the first transcoder 420 may adjust the predictive coding mode of at least a portion of the video data of the decoded video data to improve the prediction effect and obtain transcoded video data.
[0090] As a feasible method for adjusting the predictive coding mode, the prediction effect can be improved by converting the video data based on intra-frame prediction in the decoded video data into video data based on inter-frame prediction, thereby obtaining transcoded video data.
[0091] Those skilled in the art will understand that there are other predictive coding mode adjustment methods that can improve prediction performance. These adjustment methods can all be used in the secondary coding scheme of this disclosure.
[0092] Here, the video data to be converted based on intra-frame prediction can include keyframe (I-frame) video data from the decoded video data. In other words, the keyframe (I-frame) video data can be converted into inter-frame predicted frames, i.e., P-frames or B-frames.
[0093] By converting keyframes (I-frames) encoded solely based on intra-frame prediction into P-frames or B-frames based on inter-frame prediction in the encoded video data obtained through a single encoding (standard encoding scheme), the compression rate can be improved, the amount of video data reduced, and the bandwidth required for video data transmission saved.
[0094] Additionally, in some embodiments, the video data to be converted based on intra-frame prediction may also include intra-frame prediction-based video data in non-key frames of the decoded video data. Non-key frames refer to frames in the video data other than key frames (I-frames), that is, frames encoded based not only on intra-frame prediction but also on inter-frame prediction, and may include the aforementioned P-frames and B-frames.
[0095] In other words, the I-frame secondary lossless compression coding disclosed herein can be further extended to secondary lossless compression coding of intra-block prediction. That is, all blocks using intra-mode prediction can be subjected to secondary lossless compression coding using inter-frame information. Intra-block prediction can appear not only in I-frames but also in P / B frames. However, for intra-block prediction appearing in P / B frames, a better inter-frame prediction may only be found when additional reference frames are added.
[0096] As is well known, inter-frame prediction coding achieves a higher compression ratio compared to intra-frame prediction coding. Similarly, by converting non-key frames, such as P-frames or B-frames, which were originally encoded using intra-frame prediction coding, into video data encoded using inter-frame prediction coding, the compression ratio can be improved, the amount of video data reduced, and the bandwidth required for video data transmission saved.
[0097] Here, as an example, a feasible approach to the transformation in step S520 is described.
[0098] On the one hand, the video data of the current frame in the encoded video data can be used to obtain the intra-prediction data of the corresponding image block of the video data based on intra-prediction.
[0099] On the other hand, inter-frame prediction data for the image patch can also be obtained by combining the video data of the reference frame.
[0100] Here, one reference frame can be used for inter-frame prediction, or multiple reference frames can be used for inter-frame prediction.
[0101] The reference frame can be the previous frame and / or the next frame (usually a P frame or a B frame) adjacent to the current frame, or it can be a frame that is a certain distance away from the current frame.
[0102] Alternatively, the reference frame can also be an I-frame from the previous GOP.
[0103] Alternatively, the reference frame can be a frame in another encoded video data stream.
[0104] For example, in online services such as live streaming and video-on-demand, a raw video data stream is often transcoded into multiple encoded video data streams with different resolutions and / or bitrates. Corresponding frames in these encoded video data streams can have the same image content. If these encoded video data streams are all processed... Figure 1 Given the first node L1 and the second node L2, for the current frame in an encoded video data stream, we can refer to the corresponding frames (frames with the same content) that have been generated before it in other encoded video data streams.
[0105] For example, suppose there are two bitstreams: the original encoded video data bitstream A and the transcoded encoded video data bitstream B. Generally speaking, the corresponding frame in the transcoded encoded video data bitstream B is definitely generated after the corresponding frame in the transcoded bitstream A. Therefore, the reference frame of the current frame in bitstream B can be the corresponding frame in bitstream A.
[0106] In this way, at the first node L1, frames in bitstream A can be used as reference frames to predict the corresponding frames in bitstream B for secondary encoding, while at the second node L2, frames in bitstream A can be used as reference frames to recover the corresponding frames in the secondary encoded bitstream B.
[0107] In other words, assuming the current encoded video data belongs to the first encoded video data stream, the frame corresponding to the current frame in the corresponding second encoded video data stream can be used as a reference frame to perform the above-mentioned inter-frame prediction, thereby performing secondary encoding and compression processing. As mentioned earlier, the corresponding frame here can refer to frames with the same picture content in the corresponding first and second encoded video data streams. The first and second encoded video data streams can, for example, be encoded video data streams for the same video content. For example, the first and second encoded video data streams can be generated based on the same source video data, where each corresponding frame can have the same or substantially corresponding picture content.
[0108] If the resolution of the second encoded video data stream is different from that of the first encoded video data stream, the corresponding frames of the second encoded video data stream can be converted in resolution, for example, by performing scaling filtering, so that they have the same resolution as the current frame of the first encoded video data stream.
[0109] After obtaining the inter-frame prediction data and intra-frame prediction data of the image block as described above, the difference between the inter-frame prediction data and the intra-frame prediction data of the image block can be obtained.
[0110] Based on the decoded video data and the above difference, the transcoded video data can be obtained.
[0111] Furthermore, as described above, in the embodiments of this disclosure, the decoded video data to be converted may include a first-level value obtained by transforming and quantizing the residual between the original video data and the intra-frame prediction data. Thus, the difference can be transformed and quantized to obtain a difference-level value. The difference between the first-level value and the difference-level value is obtained as a second-level value. The transcoded video data can then include this second-level value.
[0112] The transformation process here can be various image transformation processes, such as Discrete Fourier Transform (DFT), Discrete Cosine Transform (DCT), Discrete Sine Transform (DST), etc., used to perform spatial / frequency domain conversion on the above residuals or differences.
[0113] The transformation process performed on the difference value when generating the difference level value can be the same as the transformation process performed on the residual when generating the first level value.
[0114] For example, if the DCT transform is used to generate the first-level value, then the DCT transform is also used to generate the difference-level value; if the DST transform is used to generate the first-level value, then the DST transform is also used to generate the difference-level value.
[0115] The quantization process here can be any kind of image quantization process.
[0116] Similarly, when generating difference level values, the quantization process performed on the transformed difference can be the same as the quantization process performed on the transformed residual when generating first level values. In other words, the quantization parameter (QP) in the quantization process can be of the same magnitude.
[0117] In addition, in step S520, besides the scheme of using inter-frame prediction to improve the residual quantization level of intra-frame prediction data in the original video data, as described in the previous example, various other prediction modes can also be used to improve the residual quantization level of the original prediction mode. For example, the original prediction data can also be filtered to obtain better prediction results.
[0118] Then, in step S530, for example, the transcoded video data can be encoded by the first encoder 430 to obtain secondary encoded video data.
[0119] Here, the first encoder 430 can also perform entropy encoding on the transcoded video data.
[0120] In step S540, for example, the first communication device 440 may send secondary encoded video data to, for example, the second node L2.
[0121] The secondary encoding scheme will be further described below with reference to specific embodiments.
[0122] Figure 6 This is a schematic framework diagram of a video encoding processor used to implement secondary encoding according to embodiments of the present disclosure.
[0123] In this embodiment, I-frames in the encoded video data are reconstructed. Inter-frame predictions are found for the reconstructed blocks of the I-frames, and their intra-frame predictions are subtracted. The resulting residuals are then transformed and quantized to form quantization difference level values. These difference level values are used as prediction values for the original first-level quantization values in the original bitstream; that is, the original first-level quantization value is subtracted from these prediction values to obtain the second-level value. Entropy coding is then performed to form a double-coded video data bitstream with double lossless compression.
[0124] Specifically, such as Figure 6 As shown, the encoded video data stream of an I-frame is entropy decoded (e.g., this can be performed by the first decoder 410) to obtain the first level value of residual quantization.
[0125] The first-level values are subjected to inverse quantization and inverse transformation to obtain residual data.
[0126] The residual data, combined with the intra-frame prediction data, yields the reconstructed data block. As is known in the art, the intra-frame prediction data for the current position can be obtained from, for example, data already reconstructed on the left and top sides. If no reconstructed data is found on the left and top sides, for example, if the current position is the first block at the top left corner of the current frame image, then default prediction data can be used.
[0127] The motion estimation module obtains motion data using the reconstructed data of the current frame and the reference frame data in the reference frame buffer. The reference frame data in the buffer is obtained by loop filtering of the reconstructed data of the previously decoded reference frames. The inter-frame prediction module can obtain inter-frame prediction data using the motion data and the reference frame data in the reference frame buffer.
[0128] The reference frame data in the reference frame buffer can include P / B frames that are adjacent to the current I-frame (i.e., scheme A in the experiment described below), or it can only include the preceding I-frames to reduce complexity (i.e., scheme B in the experiment described below).
[0129] In other words, in step S520 of the secondary encoding process, when performing inter-frame prediction, the reference frame used can be one or more frames adjacent to the current frame. If the current frame is an I-frame, these adjacent reference frames are generally P-frames or B-frames.
[0130] Alternatively, the reference frame used can be one or more I-frames preceding the current frame. In this way, only the I-frames in the encoded video data can be decoded and converted, and used as reference frames for subsequent I-frame prediction mode conversion, thereby significantly reducing the complexity of the implementation.
[0131] The difference data is obtained by subtracting the intra-frame prediction data from the inter-frame prediction data. The difference data is then transformed and quantized to obtain the difference level value (also known as the level prediction value (level_pred)).
[0132] Then, the difference level value is subtracted from the first level value to obtain the second level value. Entropy encoding is then performed on the second level value (for example, it can be performed by the first encoder 430) to form a secondary encoded video data bitstream, which is then output.
[0133] The motion data for inter-frame prediction is obtained by motion estimation of buffered pixels in the current I-frame reconstruction block and the inter-frame reference frame buffer, and can be written into the secondary-coded video data stream after secondary compression. The intra-frame prediction intra-mode information is obtained by parsing the original coded video data stream, and can also be written into the secondary-coded video stream after secondary compression.
[0134] Figure 6 The modules shown in the upper middle section, including entropy decoding, inverse quantization, inverse transform, intra-frame prediction, loop filtering, and reference frame buffer, can all be modules of a standard coded video decoder.
[0135] Figure 6 The modules shown in the bottom row, including motion estimation, inter-frame prediction, transform, quantization, and entropy coding, can all be modules of a standard video encoder.
[0136] The implementation methods and working principles of these standard modules are known in the field and will not be elaborated here.
[0137] Figure 6 The entropy decoding module in can correspond to Figure 4The first decoder 410 in the entropy coding module can correspond to Figure 4 The first encoder 430 in the middle, Figure 6 The remaining modules shown can correspond to Figure 4 The first transcoder in the series is 420.
[0138] 4. Secondary decoding.
[0139] The following is for reference. Figure 7 and Figure 8 The description refers to the secondary decoding scheme according to this disclosure, namely step S130 performed, for example, at the second node L2.
[0140] Figure 7 This is a schematic block diagram of a video encoding processor that can be used to implement secondary decoding according to this disclosure.
[0141] Figure 8 This is a schematic flowchart illustrating the method for processing encoded video data using secondary decoding according to this disclosure.
[0142] like Figure 7 As shown, a video encoding processor 700 that can be used to implement secondary decoding (deployed on the second node L2) according to the present disclosure may include a second decoder 710, a second transcoder 720, a second encoder 730, and a second communication device 740.
[0143] like Figure 8 As shown, in step S800, for example, the second communication device 740 may receive secondary encoded video data from, for example, the aforementioned first node L1.
[0144] Here, the transcoded video data is obtained by encoding the secondary encoded video data. The transcoded video data is obtained by adjusting the predictive coding mode of at least a portion of the original encoded video data to improve the prediction effect.
[0145] In other words, the secondary encoded video data here can be, for example... Figure 4 The video encoding processor shown uses Figure 5 The encoding scheme shown is the result of secondary encoding.
[0146] In step S810, for example, the second decoder 710 can decode the input secondary encoded video data to obtain transcoded video data.
[0147] When entropy encoding is used for secondary encoding, the second decoder 720 can perform corresponding entropy decoding on the secondary encoded video data.
[0148] As described in the example of a feasible solution for step S520 above, the transcoded video data may include a second-level value obtained after transformation and quantization of the residual between the original video data and the inter-frame prediction data.
[0149] In step S820, for example, the second transcoder 720 can restore at least a portion of the video data obtained by adjusting the predictive coding mode in the transcoded video data to the video data of the corresponding predictive coding mode in the original encoded video data, thereby obtaining the restored decoded video data.
[0150] As mentioned earlier, during the secondary encoding process, the prediction coding mode adjustment method can be to convert the video data based on intra-frame prediction in the original encoded video data (after decoding) into video data based on inter-frame prediction.
[0151] Correspondingly, in the secondary decoding process, the corresponding predictive coding mode adjustment method (reverse adjustment method) can be to restore the video data based on inter-frame prediction obtained from the transcoded video data to video data based on intra-frame prediction.
[0152] When other predictive coding mode adjustment methods are used in the secondary encoding process, the corresponding predictive coding mode reverse adjustment method can also be used in the secondary decoding process.
[0153] Corresponding to the conversion scheme example of step S520 in the previous text, a corresponding feasible scheme for the conversion of step S820 is described here as an example.
[0154] Corresponding to the conversion scheme example in step S520 above, on the one hand, for the image block corresponding to the video data based on inter-frame prediction obtained after conversion, intra-frame prediction data can be obtained using the video data of the current frame.
[0155] On the other hand, inter-frame prediction data for the image block can also be obtained using video data from a reference frame.
[0156] Therefore, the difference between the inter-frame prediction data and the intra-frame prediction data of the image patch can also be obtained.
[0157] Based on the transcoded video data and the above difference, the decoded video data can be obtained.
[0158] Furthermore, as described above, in the embodiments of this disclosure, the transcoded video data may include a second-level value, which is the difference between the first-level value and the difference-level value. Thus, the difference-level value can be obtained by performing transformation and quantization processing on the difference. The sum of the second-level value and the difference-level value is obtained to obtain the first-level value. The decoded video data can then include this first-level value.
[0159] As mentioned above, the first-level value here is obtained by transforming and quantizing the residual between the original video data and the intra-frame prediction data of the current frame (image block) during the first encoding process. The difference-level value, on the other hand, is obtained by transforming and quantizing the difference between the inter-frame prediction data and the intra-frame prediction data of the current frame's image block during the second encoding process.
[0160] Then, in step S830, for example, the decoded video data can be encoded by the second encoder 730 to obtain the recovered encoded video data.
[0161] Here, the second encoder 730 can also perform entropy encoding on the transcoded video data.
[0162] When a lossless compression scheme is used in the aforementioned secondary encoding process, the recovered encoded video data obtained here can be compared with... Figure 4 and Figure 5 The input encoded video data for the secondary encoding scheme shown is the same. Even if a lossy compression scheme is used in the aforementioned secondary encoding process, encoded video data with a format basically the same as the input encoded video data of the secondary encoding scheme can be obtained here. The client C requesting access to the video data can successfully obtain the encoded video data and decode and play it.
[0163] Then, in step S840, in response to an access request from client C, such as by the second communication device 740, encoded video data is sent to client C.
[0164] The secondary decoding scheme will be further described below with reference to specific embodiments.
[0165] Figure 9 This is a schematic framework diagram of a video encoding processor for implementing secondary decoding according to embodiments of the present disclosure.
[0166] like Figure 9 As shown, entropy decoding is performed on the secondary encoded video data stream (for example, it can be performed by the second decoder 710) to obtain the second level value of quantization.
[0167] The second-level value is added to the quantization difference level value (level prediction value, level_pred) (e.g., generated by the second transcoder 720) to form the original first-level value.
[0168] The first-level values are then entropy encoded (for example, this can be done by the second encoder 730) to obtain the standard raw I-frame encoded video data stream, which is then output.
[0169] The process of obtaining the difference level value and Figure 6The secondary compression coding process is the same. That is, the difference level value is obtained by subtracting the intra-frame prediction data from the inter-frame prediction data of the reconstructed block of the I-frame, and then performing transform and quantization processing.
[0170] and Figure 6 The only difference is that the motion data information for inter-frame prediction and the intra-frame mode information for intra-frame prediction are obtained by parsing the bi-computed video data stream.
[0171] In other words, in, for example Figure 6 In the illustrated secondary coding scheme, motion data information for inter-frame prediction and intra-frame mode information for intra-frame prediction are written into the secondary coded video data. Therefore, in Figure 9 In the secondary decoding scheme shown, motion data and intra-frame mode information can be directly obtained from the input secondary encoded video data. Using this information, intra-frame prediction and inter-frame prediction can be performed smoothly.
[0172] The residual data, combined with the intra-frame prediction data, yields the reconstructed data block. As is known in the art, the intra-frame prediction data for the current position can be obtained from, for example, data already reconstructed from the left and top sides. For instance, the intra-frame prediction data for the current position can be obtained using data already reconstructed from the left or top sides of the current position and intra-frame mode information carried from the input secondary coded video data. If no reconstructed data is found on the left and top sides, for example, if the current position is the first block at the top left corner of the current frame image, then default prediction data can be used.
[0173] In this way, for positions where no reconstructed data can be found on the left and top sides, the default prediction data can be used. For other subsequent positions, the residual data and reconstructed data of the previous position obtained by inverse quantization and inverse transformation of the first-level value of the previous position can be used to obtain the prediction data of the current position, which can then be used to calculate the difference level value for the current position.
[0174] For inter-frame prediction, reference frame data has been pre-acquired and cached in the reference frame buffer. Motion data information of the current frame can be obtained from the secondary encoded video data. The inter-frame prediction module can use the motion data information and the reference frame data to obtain inter-frame prediction data.
[0175] Therefore, the difference between inter-frame prediction data and intra-frame prediction data can be obtained. This difference is then transformed and quantized to obtain a difference level value. This difference level value can be summed with the second-level value obtained from entropy decoding to obtain the first-level value for the current position. This first-level value can be used for entropy encoding to produce encoded video data for output, and it can also be further processed through inverse quantization and inverse transform to obtain residual data for subsequent position prediction calculations.
[0176] Figure 9 Modules such as medium entropy decoding, inverse quantization, inverse transform, intra-frame prediction, loop filtering, and reference frame buffer can all be modules of a standard coded video decoder.
[0177] Figure 9 Inter-frame prediction, transform, quantization, entropy coding, and other modules can all be modules of a standard video encoder.
[0178] The implementation methods and working principles of these standard modules are known in the field and will not be elaborated here.
[0179] Figure 9 The entropy decoding module in can correspond to Figure 7 The second decoder 710 in the entropy coding module can correspond to Figure 7 The second encoder 730 in the middle, Figure 9 The remaining modules shown can correspond to Figure 7 The second transcoder in the 720.
[0180] 5. Decode once.
[0181] When client C obtains the encoded video data from the second node L2 and Figure 1 The input encoded video data of the first node L1 shown is the same or basically the same encoded video data.
[0182] In this way, the client can operate as if no processing has occurred between the first node L1 and the second node L2.
[0183] In other words, the secondary encoding and secondary decoding disclosed herein are imperceptible to the user.
[0184] Moreover, the secondary encoding and secondary decoding disclosed herein can be seamless for both the video provider and the party performing the primary encoding.
[0185] To distinguish it from the aforementioned "secondary decoding", the client's decoding of encoded video data is referred to here as "primary decoding".
[0186] Client C can perform a decoding operation according to the standard decoding scheme, which will not be elaborated here.
[0187] 6. Experimental results.
[0188] In the secondary encoding process, an experiment was conducted using lossless compression of only I-frames as an example. The test sequences were all online live H.265 streams.
[0189] You can use the nearest P / B frame of the I-frame as the reference frame (Scheme A), or you can use only the preceding (previous GOP) I-frame as the reference frame (Scheme B). The compression results of both are shown in the table below.
[0190]
[0191]
[0192] Only one reference frame was used in the experiment.
[0193] Using only I-frames as reference frames (Scheme B) would result in an excessively long reference distance, affecting compression efficiency, but it eliminates the need to decode P / B frames, thus reducing complexity.
[0194] 7. Complexity analysis.
[0195] Taking lossless compression of only I-frames as an example, the P / B frame immediately adjacent to the I-frame can be used as the reference frame (Scheme A), or only the I-frame of the previous GOP can be used as the reference frame (Scheme B). The compression results of the two are shown in the table above.
[0196] Scheme A requires decoding of P / B frames, while Scheme B does not require decoding of P / B frames.
[0197] As a compromise between the two schemes, a P / B frame that is a certain distance from the I frame can also be used as a reference frame. Its complexity is lower than that of scheme A, and its compression performance (bitrate saving) is higher than that of scheme B.
[0198] Regardless of the method used, the complexity of secondary compression and decompression of I-frames can be analyzed as follows.
[0199] For I-frame double lossless compression coding schemes, both standard decoding and non-standard coding can be performed. The main difference between non-standard coding and standard P-frame coding is that non-standard coding does not require block partitioning decisions (which are already completed during the first encoding step). Therefore, its complexity is roughly equivalent to that of standard P-frame coding.
[0200] For a lossless decompression scheme for I-frames, standard decoding, inter-frame prediction, transform, quantization, and entropy coding can be performed. The complexity will not exceed that of decoding a standard I+P frame.
[0201] Figure 10 A schematic diagram of a computing device that can be used to implement the above method according to an embodiment of the present invention is shown.
[0202] See Figure 10 The computing device 1000 includes a memory 1010 and a processor 1020.
[0203] Processor 1020 may be a multi-core processor or may contain multiple processors. In some embodiments, processor 1020 may include a general-purpose main processor and one or more special coprocessors, such as a graphics processing unit (GPU), a digital signal processor (DSP), etc. In some embodiments, processor 1020 may be implemented using custom circuitry, such as an application-specific integrated circuit (ASIC) or a field-programmable gate array (FPGA).
[0204] Memory 1010 may include various types of storage units, such as system memory, read-only memory (ROM), and permanent storage devices. ROM may store static data or instructions required by the processor 1020 or other modules of the computer. Permanent storage devices may be read-write storage devices. Permanent storage devices may be non-volatile storage devices that retain stored instructions and data even when the computer is powered off. In some embodiments, permanent storage devices use mass storage devices (e.g., magnetic or optical disks, flash memory) as permanent storage devices. In other embodiments, permanent storage devices may be removable storage devices (e.g., floppy disks, optical drives). System memory may be a read-write storage device or a volatile read-write storage device, such as dynamic random access memory. System memory may store some or all of the instructions and data required by the processor during operation. Furthermore, memory 1010 may include any combination of computer-readable storage media, including various types of semiconductor memory chips (DRAM, SRAM, SDRAM, flash memory, programmable read-only memory), and disks and / or optical disks may also be used. In some embodiments, memory 1010 may include a removable storage device that is readable and / or writable, such as a laser disc (CD), a read-only digital multifunction optical disc (e.g., DVD-ROM, dual-layer DVD-ROM), a read-only Blu-ray disc, an ultra-high density optical disc, a flash memory card (e.g., SD card, mini SD card, Micro-SD card, etc.), a magnetic floppy disk, etc. Computer-readable storage media do not contain carrier waves or transient electronic signals transmitted wirelessly or via wired connections.
[0205] The memory 1010 stores executable code, which, when processed by the processor 1020, enables the processor 1020 to execute the methods described above.
[0206] The coded video data processing scheme according to the present invention has been described in detail above with reference to the accompanying drawings.
[0207] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, data stored, data displayed, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties. Furthermore, the collection, use and processing of the relevant data must comply with the relevant laws, regulations and standards of the relevant countries and regions, and corresponding operation portals are provided for users to choose to authorize or refuse.
[0208] Furthermore, the method according to the present invention can also be implemented as a computer program or computer program product, which includes computer program code instructions for performing the steps defined in the above-described method of the present invention.
[0209] Alternatively, the present invention can also be implemented as a non-transitory machine-readable storage medium (or computer-readable storage medium, or machine-readable storage medium) storing executable code (or computer program, or computer instruction code) thereon, which, when executed by a processor of an electronic device (or computing device, server, etc.), causes the processor to perform the various steps of the method described above according to the present invention.
[0210] Those skilled in the art will also understand that the various exemplary logic blocks, modules, circuits, and algorithm steps described in connection with the disclosure herein can be implemented as electronic hardware, computer software, or a combination of both.
[0211] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems and methods according to various embodiments of the present invention. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions marked in the blocks may occur in a different order than those marked in the drawings. For example, two consecutive blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can be implemented using a dedicated hardware-based system that performs the specified function or operation, or using a combination of dedicated hardware and computer instructions.
[0212] The various embodiments of the present invention have been described above. These descriptions are exemplary and not exhaustive, nor are they limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terminology used herein is chosen to best explain the principles, practical application, or improvement of the technology in the market, or to enable others skilled in the art to understand the embodiments disclosed herein.
Claims
1. A method for processing encoded video data, comprising: decoding encoded video data to obtain decoded video data; adjusting a prediction coding mode of at least part of the video data of the decoded video data to improve prediction effect to obtain transcoded video data, including: obtaining intra prediction data of a corresponding image block of the video data based on intra prediction using video data of a current frame; obtaining inter prediction data of the image block using video data of a reference frame; obtaining a difference between the inter prediction data and the intra prediction data of the image block; and obtaining the transcoded video data based on the decoded video data and the difference; and encoding the transcoded video data to obtain secondary encoded video data. 2.The method of claim 1, wherein the decoded video data comprises first level values obtained after transform processing and quantization processing of residuals between original video data of the current frame and intra prediction data, and the step of obtaining the transcoded video data based on the decoded video data and the difference comprises: obtaining difference level values by transform processing and quantization processing of the difference; obtaining second level values as a difference between the first level values and the difference level values, and the transcoded video data comprises the second level values. 3.The method of claim 2, wherein the transform processing of the difference is consistent with the transform processing of the residuals; and / or the quantization processing of the difference after the transform processing is consistent with the quantization processing of the residuals after the transform processing. 4.The method of claim 1, wherein the reference frame is one or more frames adjacent to the current frame; or the reference frame is one or more key frames before the current frame; or the current encoded video data belongs to a first encoded video data stream, and the reference frame is a frame corresponding to the current frame in a second encoded video data stream. The video data based on intra prediction comprises: video data of key frames in the decoded video data; and / or video data based on intra prediction in non-key frames in the decoded video data. 6.A method for processing encoded video data, comprising: receiving secondary encoded video data, wherein the secondary encoded video data is obtained by encoding transcoded video data, and the transcoded video data is obtained by adjusting a prediction coding mode of at least part of video data of original encoded video data to improve prediction effect; decoding the secondary encoded video data to obtain the transcoded video data; restoring at least part of the video data of the transcoded video data obtained by adjusting the prediction coding mode to video data of the original encoded video data with a corresponding prediction coding mode to obtain restored decoded video data; and encoding the decoded video data to obtain restored encoded video data. The adjusting of the prediction coding mode of at least part of the video data of the original encoded video data to improve prediction effect comprises converting video data based on intra prediction in the original encoded video data to video data based on inter prediction. 5. The method of claim 1, wherein, The step of restoring at least part of the video data in the transcoded video data adjusted in the prediction coding mode to the video data of the corresponding prediction coding mode in the original coded video data comprises: for a picture block corresponding to the inter-prediction based video data in the converted video data, obtaining intra-prediction data using video data of a current frame; obtaining inter-prediction data of the picture block using video data of a reference frame; obtaining a difference between the inter-prediction data and the intra-prediction data of the picture block; and obtaining the decoded video data based on the transcoded video data and the difference.
7. The method of claim 6, wherein the transcoded video data comprises a second level value, the second level value being a difference between a first level value and a difference level value, the first level value being a residual between the original video data and the intra-prediction data of the current frame after transform processing and quantization processing, the difference level value being a difference between the inter-prediction data and the intra-prediction data of the picture block of the current frame after transform processing and quantization processing, and the step of obtaining the decoded video data based on the transcoded video data and the difference comprises: transform processing and quantization processing the difference to obtain a difference level value; obtaining a sum of the second level value and the difference level value, thereby obtaining the first level value.
8. A method for processing coded video data, comprising: adjusting a prediction coding mode of at least part of video data of coded video data at a first node to improve prediction effect, to obtain transcoded video data; encoding the transcoded video data to obtain second coded video data, comprising: obtaining intra-prediction data of a picture block corresponding to intra-prediction based video data using video data of a current frame; obtaining inter-prediction data of the picture block using video data of a reference frame; obtaining a difference between the inter-prediction data and the intra-prediction data of the picture block; and obtaining the transcoded video data based on the decoded video data and the difference; sending the second coded video data to a second node; and restoring at least part of the video data in the second coded video data adjusted in the prediction coding mode to the video data of the original video data prediction coding mode at the second node to obtain restored coded video data.
9. A video encoding processor, comprising: a first decoder configured to decode coded video data to obtain decoded video data; a first transcoder configured to adjust a prediction coding mode of at least part of the video data of the decoded video data to improve prediction effect, to obtain transcoded video data, comprising: obtaining intra-prediction data of a picture block corresponding to intra-prediction based video data using video data of a current frame; obtaining inter-prediction data of the picture block using video data of a reference frame; obtaining a difference between the inter-prediction data and the intra-prediction data of the picture block; and obtaining the transcoded video data based on the decoded video data and the difference; and a first encoder configured to encode the transcoded video data to obtain second coded video data.
10. A video encoding processor, comprising: A communication device configured to receive secondary encoded video data, wherein the secondary encoded video data is encoded from transcoded video data, the transcoded video data is obtained by adjusting a prediction mode of at least part of video data of original encoded video data to improve prediction effect; a second decoder configured to decode the input secondary encoded video data to obtain the transcoded video data; a second transcoder configured to restore at least part of video data of the transcoded video data that is obtained by adjusting the prediction mode to the video data of the original encoded video data corresponding to the prediction mode to obtain restored decoded video data; and a second encoder configured to encode the decoded video data to obtain restored encoded video data; the adjusting the prediction mode of at least part of video data of the original encoded video data to improve prediction effect comprises converting video data of the original encoded video data based on intra prediction to video data based on inter prediction; the restoring at least part of video data of the transcoded video data that is obtained by adjusting the prediction mode to the video data of the original encoded video data corresponding to the prediction mode comprises: for an image block corresponding to the converted video data based on inter prediction, obtaining intra prediction data using video data of a current frame; obtaining inter prediction data of the image block using video data of a reference frame; obtaining a difference between the inter prediction data and the intra prediction data of the image block; and obtaining the decoded video data based on the transcoded video data and the difference.
11. A computing device comprising: a processor; and a memory having stored thereon executable code that, when executed by the processor, causes the processor to perform the method of any of claims 1-8.
12. A non-transitory machine-readable storage medium having stored thereon executable code that, when executed by a processor of an electronic device, causes the processor to perform the method of any of claims 1-8.
Citation Information
Patent Citations
Video encoding method, video decoding method and related device
CN108632625A
Video coding method, video decoding method and device
CN114302139A
Image processing apparatus
JP2012160973A