Video coding method and device, electronic equipment, storage medium, program product and method for generating bit stream

By splitting the reference frame list of video frames and encoding different processing methods, the problem of efficient encoding of a large number of reference frames in video encoding is solved, and the effect of improving encoding efficiency and performance is achieved.

CN119402640APending Publication Date: 2025-02-07BEIJING DAJIA INTERNET INFORMATION TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411612833.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-11-12
Publication Date
2025-02-07

AI Technical Summary

Technical Problem

During the video encoding process, it is necessary to efficiently encode a large number of reference frames, and the prior art is difficult to effectively solve this problem.

Method used

By splitting the reference frame list of the current frame into a first-class reference frame list and a second-class reference frame list, the encoding process is performed separately. Specifically, a reference frame list of a first-class reference frame that is expected to be able to hit a preset reference frame list is encoded using related techniques, while a reference frame list of a second-class reference frame list that is expected to not hit a preset reference frame list is encoded directly as is.

Benefits of technology

It effectively reduces useless comparison calculations, improves the encoding efficiency of reference frames, and improves the overall performance of video encoding.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119402640A_ABST
    Figure CN119402640A_ABST
Patent Text Reader

Abstract

The invention provides a video coding method and device, electronic equipment, a storage medium, a program product and a method for generating a bit stream. The video coding method comprises the following steps: acquiring a reference frame list of a current frame; the reference frame list is split into a first-class reference frame list and a second-class reference frame list, the first-class reference frame list is a list which is expected to hit a preset reference frame list in the sequence head of the current frame, and the second-class reference frame list is a list which is expected to not hit the preset reference frame list in the sequence head of the current frame; coding the first-class reference frame list based on a preset reference frame list; and coding the second-class reference frame list according to the original sample. According to the method, useless comparison calculation can be effectively reduced, and the coding efficiency for the reference frame can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to video coding and compression. More specifically, the present disclosure relates to a video coding method, apparatus, electronic device, storage medium, program product and method for generating a bit stream. Background Art

[0002] In the video encoding process, the entire video needs to be split into several consecutive video frames, and then each video frame is split into several pixel blocks, and each pixel block is independently predicted and encoded. For a pixel block, there are two main prediction methods, namely intra-frame prediction and inter-frame prediction.

[0003] Intra-frame prediction uses the spatial correlation of the current pixel block (the pixels around the current block are similar to the current block), and uses the information of the pixel blocks that have been encoded around the current pixel block to predict the pixels of the current block. Inter-frame prediction uses the temporal correlation (the current pixel block is similar to the adjacent blocks in the adjacent video frame), and uses the information of the pixel blocks in the video frame (called the reference frame) that have been encoded around the current frame to predict the pixels of the current block.

[0004] Therefore, for inter-frame prediction, the reference frame of each video frame needs to be encoded during the encoding process, and since different pixel blocks in the same video frame may use different reference frames, the number of reference frames for each video frame may be at least one, resulting in a large number of reference frames that need to be encoded. Based on this, how to efficiently encode a large number of reference frames is crucial to improving video encoding efficiency. Summary of the invention

[0005] Embodiments of the present disclosure provide a video encoding method, apparatus, electronic device, storage medium, program product, and method for generating a bitstream, for solving at least one of the above problems.

[0006] According to one aspect of the present disclosure, a video encoding method is provided, including: obtaining a reference frame list of a current frame; splitting the reference frame list into a first-category reference frame list and a second-category reference frame list, wherein the first-category reference frame list is a list of preset reference frame lists in a sequence header that is expected to hit the current frame, and the second-category reference frame list is a list of preset reference frame lists in a sequence header that is expected not to hit the current frame; encoding the first-category reference frame list based on the preset reference frame list; and encoding the second-category reference frame list as is.

[0007] Optionally, the first category reference frame list includes reference frames that belong to the same video segment as the current frame, and the second category reference frame list includes reference frames that do not belong to the same video segment as the current frame, wherein the video segment is a segment including multiple consecutive frames according to preset conditions.

[0008] Optionally, the video encoding method also includes: after encoding of multiple frames including the current frame is completed, counting the hit rate of a class of reference frame lists of the multiple frames hitting the preset reference frame list; when the hit rate is lower than a hit rate threshold, determining a replacement reference frame list based on the class of reference frame list of the multiple frames; and writing the replacement reference frame list into the sequence header to replace the preset reference frame list.

[0009] Optionally, determining a replacement reference frame list based on a class of reference frame lists of the multiple frames includes: counting the number of occurrences of the same class of reference frame lists in the class of reference frame lists of the multiple frames; and determining multiple replacement reference frame lists from the class of reference frame lists of the multiple frames according to the number of occurrences of each class of reference frame list.

[0010] Optionally, the method of determining a plurality of replacement reference frame lists from the class of reference frame lists of the multiple frames based on the number of occurrences of each class of reference frame list comprises: determining a preset number of class of reference frame lists having the largest number of occurrences in the class of reference frame lists of the multiple frames as replacement reference frame lists.

[0011] Optionally, determining a plurality of replacement reference frame lists from a class of reference frame lists of the multiple frames according to the number of occurrences of each class of reference frame lists includes: determining a plurality of replacement reference frame lists from a class of reference frame lists of the multiple frames according to the number of occurrences of each class of reference frame lists and the number of elements contained in a class of reference frame lists.

[0012] According to another aspect of the present disclosure, a video encoding device is provided, including: an acquisition unit, configured to acquire a reference frame list of a current frame; a splitting unit, configured to split the reference frame list into a first-category reference frame list and a second-category reference frame list, wherein the first-category reference frame list is a list of preset reference frame lists in a sequence header that is expected to hit the current frame, and the second-category reference frame list is a list of preset reference frame lists in a sequence header that is expected not to hit the current frame; a first encoding unit, configured to encode the first-category reference frame list based on the preset reference frame list; and a second encoding unit, configured to encode the second-category reference frame list as is.

[0013] Optionally, the first category reference frame list includes reference frames that belong to the same video segment as the current frame, and the second category reference frame list includes reference frames that do not belong to the same video segment as the current frame, wherein the video segment is a segment including multiple consecutive frames according to preset conditions.

[0014] Optionally, the video encoding device also includes: a statistical unit, configured to count the hit rate of a class of reference frame lists of the multiple frames hitting the preset reference frame list after encoding of the multiple frames including the current frame is completed; a determination unit, configured to determine a replacement reference frame list based on the class of reference frame list of the multiple frames when the hit rate is lower than a hit rate threshold; and a replacement unit, configured to write the replacement reference frame list into the sequence header to replace the preset reference frame list.

[0015] Optionally, the determination unit is further configured to: when the hit rate is lower than the hit rate threshold, count the number of occurrences of the same type of reference frame list in the type of reference frame list of the multiple frames; and determine multiple replacement reference frame lists from the type of reference frame list of the multiple frames according to the number of occurrences of each type of reference frame list.

[0016] Optionally, the determining unit is further configured to: determine a preset number of reference frame lists of the first type that appear the most times among the reference frame lists of the first type of the multiple frames as replacement reference frame lists.

[0017] Optionally, the determining unit is further configured to determine a plurality of replacement reference frame lists from the reference frame lists of the plurality of frames according to the number of occurrences of each reference frame list of the first category and the number of elements contained in the reference frame list of the first category.

[0018] According to another aspect of the present disclosure, an electronic device is provided, comprising: at least one processor; and at least one memory storing computer executable instructions, wherein when the computer executable instructions are executed by the at least one processor, the at least one processor is prompted to execute the video encoding method as described above.

[0019] According to another aspect of the present disclosure, a computer-readable storage medium is provided. When instructions in the computer-readable storage medium are executed by at least one processor, the at least one processor is prompted to perform the video encoding method as described above.

[0020] According to another aspect of the present disclosure, a computer program product is provided, comprising computer instructions, which implement the video encoding method as described above when the computer instructions are executed by at least one processor.

[0021] According to another aspect of the present disclosure, a computer program product is provided, having instructions for storing a bit stream, wherein the bit stream includes: video data generated according to the video encoding method as described above.

[0022] According to another aspect of the present disclosure, a method for generating a bitstream is provided, comprising: generating a bitstream according to the video encoding method as described above.

[0023] According to the video encoding method, apparatus, electronic device, storage medium, program product and method for generating a bitstream according to the exemplary embodiments of the present disclosure, the reference frame list of the current frame being encoded is split into a first-class reference frame list and a second-class reference frame list according to whether it is expected to hit the preset reference frame list. Only the first-class reference frame list that is expected to hit the preset reference frame list is encoded using the method in the related art, and the second-class reference frame list that is not expected to hit the preset reference frame list is directly encoded as is, which can effectively reduce useless comparison calculations and help improve the encoding efficiency for reference frames.

[0024] It is to be understood that both the foregoing general description and the following detailed description are examples only and are not restrictive of the disclosure. BRIEF DESCRIPTION OF THE DRAWINGS

[0025] The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate examples according to the disclosure and, together with the description, serve to explain the principles of the disclosure.

[0026] Figure 1 is a block diagram illustrating an exemplary system for encoding and decoding video blocks according to some embodiments of the present disclosure.

[0027] Figure 2 is a block diagram illustrating an exemplary video encoder according to some embodiments of the present disclosure.

[0028] Figure 3 is a block diagram illustrating an exemplary video decoder according to some embodiments of the present disclosure.

[0029] Figure 4 is a schematic diagram showing a reference relationship between video frames according to some embodiments of the present disclosure.

[0030] Figure 5 is a flowchart illustrating a video encoding method according to some embodiments of the present disclosure.

[0031] Figure 6 It is a schematic diagram showing the splitting of a video sequence according to a specific embodiment of the present disclosure.

[0032] Figure 7 is a block diagram illustrating a video encoding apparatus according to some embodiments of the present disclosure.

[0033] Figure 8 is a diagram illustrating a computing environment coupled with a user interface according to some embodiments of the present disclosure. DETAILED DESCRIPTION

[0034] Reference will now be made in detail to specific embodiments, examples of which are shown in the accompanying drawings. In the following detailed description, a number of non-limiting specific details are set forth to aid in understanding the subject matter presented herein. However, various alternatives may be used without departing from the scope of the claims, and the subject matter may be practiced without these specific details. For example, the subject matter presented herein may be implemented on many types of electronic devices having digital video capabilities.

[0035] It should be noted that the terms "first", "second", etc. in the specification and claims of the present disclosure and the drawings are used to distinguish objects, but not to describe any specific order or sequence. It should be understood that the numbers used in this way can be interchanged where appropriate, so that the embodiments of the present disclosure described herein can be implemented in an order other than those shown in the drawings or described in the present disclosure.

[0036] Figure 1 is a block diagram illustrating an exemplary system 10 for encoding and decoding video blocks in parallel according to some embodiments of the present disclosure. Figure 1 As shown in , system 10 includes a source device 12 that generates and encodes video data to be later decoded by a target device 14. Source device 12 and target device 14 may include any of a wide variety of electronic devices, including cloud servers, server computers, desktop or laptop computers, tablet computers, smart phones, set-top boxes, digital televisions, cameras, display devices, digital media players, video game consoles, video streaming devices, etc. In some implementations, source device 12 and target device 14 are equipped with wireless communication capabilities.

[0037] In some implementations, target device 14 may receive the encoded video data to be decoded via link 16. Link 16 may include any type of communication medium or device capable of moving the encoded video data from source device 12 to target device 14.

[0038] In some other embodiments, the encoded video data may be sent from the output interface 22 to the storage device 32. The encoded video data in the storage device 32 may then be accessed by the target device 14 via the input interface 28.

[0039] like Figure 1 , source device 12 includes a video source 18, a video encoder 20, and an output interface 22. Video source 18 may include sources such as, or a combination of such sources: a video capture device (e.g., a camera), a video archive containing previously captured video, a video feed interface for receiving video from a video content provider, and / or a computer graphics system for generating computer graphics data as source video.

[0040] The captured, pre-captured, or computer-generated video may be encoded by video encoder 20. The encoded video data may be sent directly to target device 14 via output interface 22 of source device 12. The encoded video data may also (or alternatively) be stored on storage device 32 for later access by target device 14 or other devices for decoding and / or playback.

[0041] Target device 14 includes input interface 28, video decoder 30, and display device 34. Input interface 28 may include a receiver and / or a modem and receives encoded video data via link 16. The encoded video data transmitted via link 16 or provided on storage device 32 may include various syntax elements generated by video encoder 20 for use by video decoder 30 in decoding the video data. Such syntax elements may be included within the encoded video data sent over a communication medium, stored on a storage medium, or stored on a file server.

[0042] The video encoder 20 and the video decoder 30 can operate according to a proprietary standard or an industry standard (e.g., VVC, HEVC, Part 10 of MPEG-4, AVC) or an extension of such a standard. It should be understood that the present disclosure is not limited to a specific video encoding / decoding standard and can be applied to other video encoding / decoding standards. It is generally believed that the video encoder 20 of the source device 12 can be configured to encode the video data according to any of these current standards or future standards. Similarly, it is also generally believed that the video decoder 30 of the target device 14 can be configured to decode the video data according to any of these current standards or future standards.

[0043] The video encoder 20 and the video decoder 30 may be implemented as any of a variety of suitable encoder and / or decoder circuits, such as one or more microprocessors, digital signal processors (DSPs), application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), discrete logic devices, software, hardware, firmware, or any combination thereof. When partially implemented in software, the electronic device may store instructions for the software in a suitable non-transitory computer-readable medium, and use one or more processors to execute the instructions in the hardware to perform the video encoding / decoding operations disclosed in the present disclosure. Each of the video encoder 20 and the video decoder 30 may be included in one or more encoders or decoders, and either of the encoders or decoders may be integrated as part of a combined encoder / decoder (CODEC) in the corresponding device.

[0044] Figure 2is a block diagram illustrating an exemplary video encoder 20 according to some embodiments described in the present disclosure. The video encoder 20 can perform intra-frame prediction coding and inter-frame prediction coding on video blocks within a video frame. Intra-frame prediction coding relies on spatial prediction to reduce or remove spatial redundancy in video data within a given video frame or picture. Inter-frame prediction coding relies on temporal prediction to reduce or remove temporal redundancy in video data within adjacent video frames or pictures of a video sequence. It should be noted that in the field of video coding and decoding, the term "frame" can be used as a synonym for the term "image" or "picture".

[0045] like Figure 2 As shown in , the video encoder 20 includes a video data memory 40, a prediction processing unit 41, a decoded picture buffer (DPB) 64, an adder 50, a transform processing unit 52, a quantization unit 54, and an entropy coding unit 56. The prediction processing unit 41 further includes a motion estimation unit 42, a motion compensation unit 44, a segmentation unit 45, an intra-frame prediction processing unit 46, and an intra-frame block copy (BC) unit 48. In some embodiments, the video encoder 20 also includes an inverse quantization unit 58, an inverse transform processing unit 60, and an adder 62 for video block reconstruction. A loop filter 63 such as a deblocking filter can be located between the adder 62 and the DPB 64 to filter the block boundary to remove the block effect from the reconstructed video. In addition to the deblocking filter, another loop filter (e.g., a sample adaptive offset (SAO) filter, a cross-component sample adaptive offset (CCSAO) filter, and / or an adaptive loop filter (ALF)) can also be used to filter the output of the adder 62. In some examples, the loop filter may be omitted, and the decoded video blocks may be provided directly by adder 62 to DPB 64. Video encoder 20 may take the form of a fixed or programmable hardware unit, or may be distributed among one or more of the illustrated fixed or programmable hardware units.

[0046] Video data memory 40 may store video data to be encoded by components of video encoder 20. Figure 1 Video source 18 is shown obtaining video data in video data memory 40. DPB 64 is a buffer that stores reference video data (eg, reference frames or pictures) for use by video encoder 20 in encoding the video data (eg, in intra or inter prediction coding modes).

[0047] like Figure 2As shown in , after receiving the video data, the segmentation unit 45 within the prediction processing unit 41 segments the video data into video blocks. This segmentation may also include segmenting the video frame into strips, tiles (e.g., a set of video blocks), or other larger coding units (CUs) according to a predefined splitting structure associated with the video data, such as a quadtree (QT) structure. It should be noted that the terms "block" or "video block" used herein may be a portion of a frame or picture, in particular a rectangular (square or non-square) portion. With reference to, for example, HEVC and VVC, a block or video block may be or correspond to a coding tree unit (CTU), a CU, a prediction unit (PU), or a transform unit (TU) and / or may be or correspond to a corresponding block (e.g., a coding tree block (CTB), a coding block (CB), a prediction block (PB), or a transform block (TB)) and / or a sub-block.

[0048] The prediction processing unit 41 may select one of a plurality of feasible prediction coding modes for the current video block based on the error results (e.g., coding rate and distortion level), such as one of one or more inter-frame prediction coding modes in a plurality of intra-frame prediction coding modes. The prediction processing unit 41 may provide the resulting intra-frame prediction coding block or inter-frame prediction coding block to the adder 50 to generate a residual block, and to the adder 62 to reconstruct the coding block for subsequent use as part of a reference frame. The prediction processing unit 41 also provides syntax elements (e.g., motion vectors, intra-frame mode indicators, partition information, and other such syntax information) to the entropy coding unit 56.

[0049] To select an appropriate intra-prediction coding mode for the current video block, intra-prediction processing unit 46 within prediction processing unit 41 may perform intra-prediction coding of the current video block in relation to one or more neighboring blocks in the same frame as the current block to be encoded to provide spatial prediction. Motion estimation unit 42 and motion compensation unit 44 within prediction processing unit 41 may perform inter-prediction coding of the current video block in relation to one or more prediction blocks in one or more reference frames to provide temporal prediction. Video encoder 20 may perform multiple encoding passes, for example, to select an appropriate coding mode for each block of video data.

[0050] In some embodiments, motion estimation unit 42 determines an inter-prediction mode for a current video frame by generating a motion vector according to a predetermined pattern within a sequence of video frames, the motion vector indicating the displacement of a video block within the current video frame relative to a prediction block within a reference video frame. Motion estimation performed by motion estimation unit 42 is the process of generating a motion vector that estimates the motion of a video block. For example, a motion vector may indicate the displacement of a video block within a current video frame or picture relative to a prediction block within a reference frame associated with a current block being encoded within the current frame. The predetermined pattern may designate a video frame in a sequence as a P frame or a B frame. Intra BC unit 48 may determine a vector (e.g., a block vector) for intra BC coding in a manner similar to the motion vector determined by motion estimation unit 42 for inter prediction, or may utilize motion estimation unit 42 to determine a block vector.

[0051] Regardless of whether the prediction block is from the same frame according to intra-frame prediction or from a different frame according to inter-frame prediction, the video encoder 20 can form a residual video block by subtracting the pixel values ​​of the prediction block from the pixel values ​​of the current video block being encoded. The pixel difference values ​​forming the residual video block may include both luma component differences and chroma component differences.

[0052] Intra-prediction processing unit 46 may encode the current block using various intra-prediction modes, for example, during separate encoding passes, and intra-prediction processing unit 46 (or, in some examples, mode selection unit) may select an appropriate intra-prediction mode to use from the tested intra-prediction modes. Intra-prediction processing unit 46 may provide information indicating the intra-prediction mode selected for the block to entropy encoding unit 56. Entropy encoding unit 56 may encode the information indicating the selected intra-prediction mode into the bitstream.

[0053] After prediction processing unit 41 determines a prediction block for the current video block via inter-prediction or intra-prediction, adder 50 forms a residual video block by subtracting the prediction block from the current video block. The residual video data in the residual block may be included in one or more TUs and provided to transform processing unit 52. Transform processing unit 52 transforms the residual video data into residual transform coefficients using a transform (e.g., a discrete cosine transform (DCT) or a conceptually similar transform).

[0054] The transform processing unit 52 may send the resulting transform coefficients to a quantization unit 54. The quantization unit 54 quantizes the transform coefficients to further reduce the bit rate. The quantization process may also reduce the bit depth associated with some or all of the coefficients. The degree of quantization may be modified by adjusting a quantization parameter. In some examples, the quantization unit 54 may then perform a scan on the matrix including the quantized transform coefficients. Alternatively, the entropy coding unit 56 may perform the scan.

[0055] After quantization, entropy coding unit 56 entropy encodes the quantized transform coefficients into a video bitstream using, for example, context adaptive variable length coding (CAVLC), context adaptive binary arithmetic coding (CABAC), syntax-based context adaptive binary arithmetic coding (SBAC), probability interval partitioning entropy (PIPE) coding, or another entropy coding method or technique. The encoded bitstream may then be sent to a video bitstream such as a Figure 1 The video decoder 30 shown, or archived as Figure 1 The video frame may be stored in storage device 32 as shown for later transmission to or retrieval by video decoder 30. Entropy encoding unit 56 may also entropy encode motion vectors and other syntax elements for the current video frame being encoded.

[0056] Inverse quantization unit 58 and inverse transform processing unit 60 apply inverse quantization and inverse transform, respectively, to reconstruct the residual video block in the pixel domain for use in generating reference blocks for predicting other video blocks. As noted above, motion compensation unit 44 may generate a motion compensated prediction block from one or more reference blocks of a frame stored in DPB 64. Motion compensation unit 44 may also apply one or more interpolation filters to the prediction block to calculate sub-integer pixel values ​​for use in motion estimation.

[0057] Adder 62 adds the reconstructed residual block to the motion compensated prediction block generated by motion compensation unit 44 to generate a reference block for storage in DPB 64. The reference block may then be used as a prediction block by intra BC unit 48, motion estimation unit 42, and motion compensation unit 44 to inter-predict another video block in a subsequent video frame.

[0058] Figure 3 is a block diagram showing an exemplary video decoder 30 according to some embodiments of the present disclosure. The video decoder 30 includes a video data memory 79, an entropy decoding unit 80, a prediction processing unit 81, an inverse quantization unit 86, an inverse transform processing unit 88, an adder 90, and a DPB 92. The prediction processing unit 81 further includes a motion compensation unit 82, an intra-frame prediction unit 84, and an intra-frame BC unit 85. The video decoder 30 may perform the above-mentioned Figure 2 The encoding process is substantially the inverse of the decoding process described with respect to video encoder 20. For example, motion compensation unit 82 may generate prediction data based on motion vectors received from entropy decoding unit 80, and intra-prediction unit 84 may generate prediction data based on intra-prediction mode indicators received from entropy decoding unit 80.

[0059] In some examples, embodiments of the present disclosure may be dispersed in one or more of the units of the video decoder 30. For example, the intra BC unit 85 may perform embodiments of the present disclosure alone or in combination with other units of the video decoder 30, such as the motion compensation unit 82, the intra prediction unit 84, and the entropy decoding unit 80. In some examples, the video decoder 30 may not include the intra BC unit 85, and the functions of the intra BC unit 85 may be performed by other components of the prediction processing unit 81, such as the motion compensation unit 82.

[0060] Video data memory 79 may store video data, such as an encoded video bitstream, to be decoded by other components of video decoder 30. Video data stored in video data memory 79 may be obtained, for example, from storage device 32, from a local video source (e.g., a camera), via wired or wireless network communication of video data, or by accessing a physical data storage medium (e.g., a flash drive or hard disk).

[0061] During the decoding process, the video decoder 30 receives an encoded video bitstream representing video blocks of an encoded video frame and associated syntax elements. The entropy decoding unit 80 of the video decoder 30 entropy decodes the bitstream to generate quantization coefficients, motion vectors or intra-frame prediction mode indicators, and other syntax elements. The entropy decoding unit 80 then forwards the motion vectors or intra-frame prediction mode indicators, and other syntax elements to the prediction processing unit 81.

[0062] When a video frame is encoded as an intra-prediction coded (I) frame or for intra-coded prediction blocks in other types of frames, the intra-prediction unit 84 of the prediction processing unit 81 can generate prediction data for a video block of the current video frame based on the intra-prediction mode transmitted by the signal and reference data from a previously decoded block of the current frame.

[0063] When the video frame is encoded as an inter-frame prediction coding (i.e., B or P) frame, the motion compensation unit 82 of the prediction processing unit 81 generates one or more prediction blocks for the video block of the current video frame based on the motion vector and other syntax elements received from the entropy decoding unit 80. Each of the prediction blocks can be generated from a reference frame in one of the reference frame lists. The video decoder 30 can construct the reference frame lists, i.e., List 0 and List 1, based on the reference frames stored in the DPB 92 using a default construction technique.

[0064] In some examples, when a video block is encoded according to the intra BC mode described herein, intra BC unit 85 of prediction processing unit 81 generates a prediction block for the current video block based on the block vector and other syntax elements received from entropy decoding unit 80. The prediction block may be within a reconstructed region of the same picture as the current video block as defined by video encoder 20.

[0065] Motion compensation unit 82 and / or intra BC unit 85 determine prediction information for a video block of the current video frame by parsing motion vectors and other syntax elements, and then use the prediction information to generate a prediction block for the current video block being decoded.

[0066] Motion compensation unit 82 may also perform interpolation using interpolation filters as used by video encoder 20 during encoding of the video blocks to calculate interpolated values ​​for sub-integer pixels of reference blocks. In this case, motion compensation unit 82 may determine the interpolation filters used by video encoder 20 based on the received syntax elements and use these interpolation filters to produce the prediction blocks.

[0067] Inverse quantization unit 86 inverse quantizes the quantized transform coefficients provided in the bitstream and entropy decoded by entropy decoding unit 80, using the same quantization parameters calculated by video encoder 20 for each video block in the video frame to determine the degree of quantization. Inverse transform processing unit 88 applies an inverse transform (e.g., an inverse DCT, an inverse integer transform, or a conceptually similar inverse transform process) to the transform coefficients to reconstruct the residual block in the pixel domain.

[0068] After the motion compensation unit 82 or the intra BC unit 85 generates a prediction block for the current video block based on the vector and other syntax elements, the adder 90 reconstructs the decoded video block for the current video block by adding the residual block from the inverse transform processing unit 88 to the corresponding prediction block generated by the motion compensation unit 82 and the intra BC unit 85. A loop filter 91 (e.g., a deblocking filter, an SAO filter, a CCSAO filter, and / or an ALF) may be located between the adder 90 and the DPB 92 to further process the decoded video block. In some examples, the loop filter 91 may be omitted, and the decoded video block may be provided directly to the DPB 92 by the adder 90. The decoded video blocks in a given frame are then stored in the DPB 92, which stores reference frames for subsequent motion compensation of the next video block. The DPB 92 or a memory device separate from the DPB 92 may also store the decoded video for later presentation on a display device (e.g., Figure 1 on a display device 34).

[0069] Figure 4is a schematic diagram showing a reference relationship between video frames according to some embodiments of the present disclosure. Figure 4 Each square in the figure represents a video frame, and the numbers in the squares represent the display sequence of the video frames. There are 33 video frames from 0 to 32, of which frame 0 is an I frame, frame 32 is a P frame, and the other frames in the middle are B frames. Layer0 to Layer5 on the left represent the coding levels. The lower the level, the earlier the video frames are encoded. Therefore, low-level video frames (such as frame 0 and frame 32 of Layer0) can be used as reference frames for high-level video frames (such as frame 16 of Layer1). Figure 4 As shown in the figure, arrows point from 0 to 1, 2, 4, 8, 16, and 32, indicating that frames 1, 2, 4, 8, 16, and 32 all refer to frame 0. Such reference relationships are configurable. At the beginning of each frame, the reference frame list of the current frame needs to be encoded. The reference frame list is used to represent all reference frames of a video frame. Each element in the list is the difference between the reference frame and the sequence number of the video frame. In the video coding standard H.266, the specific syntax is as follows:

[0070]

[0071]

[0072] The key points are num_ref_entries (indicating the number of reference frames) and abs_delta_poc_st (the difference between the display sequence number of the corresponding reference frame and the display sequence number of the current frame, for example Figure 4 If frame 8 in the image refers to frame 0 and frame 16, it needs to be encoded here: -8,+8).

[0073] It should be noted that each frame needs to encode a reference frame list, which takes up 1% to 3% of the codewords, and there is redundancy. In response to this, the standard has designed a mechanism to predefine multiple preset reference frame lists in the sequence header of the video. When a frame needs to encode its reference frame list, it can be compared with the preset reference frame list predefined in the sequence header. If an identical preset reference frame list is found, it is only necessary to encode the preset reference frame list number in the sequence header at the beginning of the current frame, and there is no need to re-encode the entire reference frame list. If an identical preset reference frame list is not found, the reference frame list is encoded as is, that is, the various differences in the reference frame list are directly written. This method has the opportunity to save codewords for the reference frame list, but it depends on the hit rate of the predefined preset reference frame list. If any video frame cannot hit the preset reference frame list, that is, the preset reference frame list cannot be completely consistent with the reference frame list of any video frame, or the hit rate is low, that is, the probability of consistency is low, then each reference frame list will be compared with the preset reference frame list, resulting in a large number of useless comparison calculations, and the more elements in a reference frame list, the greater the amount of useless comparison calculations will be, thereby reducing the encoding efficiency for the reference frame.

[0074] Figure 5 FIG. 4 is a flowchart showing a video encoding method according to some embodiments of the present disclosure. The video encoding method can be implemented in the video encoder 20 described above.

[0075] Reference Figure 5 , in step S501, a reference frame list of the current frame is obtained.

[0076] In step S502, the reference frame list is split into a first-category reference frame list and a second-category reference frame list.

[0077] The first type of reference frame list is a list of preset reference frame lists in the sequence header that is expected to hit the current frame, and the second type of reference frame list is a list of preset reference frame lists in the sequence header that is not expected to hit the current frame. The reference frame list is divided into two parts according to whether it is expected to hit the preset reference frame list.

[0078] In step S503, a reference frame list of a type is encoded based on a preset reference frame list.

[0079] In step S504, the second type of reference frame list is encoded as is.

[0080] According to the video encoding method of the exemplary embodiment of the present disclosure, for the current frame being encoded, the reference frame list of the current frame is split into a first-class reference frame list and a second-class reference frame list according to whether it is expected to hit the preset reference frame list. Only the first-class reference frame list that is expected to hit the preset reference frame list is encoded using the method in the related art, that is, encoding based on the preset reference frame list. For the second-class reference frame list that is not expected to hit the preset reference frame list, it is directly encoded as it is, which can effectively reduce useless comparison calculations and help improve the encoding efficiency of reference frames.

[0081] Next, an exemplary video encoding method according to the present disclosure is further introduced.

[0082] Regarding how to split the reference frame list in step S502, that is, how to predict whether the preset reference frame list can be hit, in some embodiments, optionally, the elements in the reference frame list whose absolute value is less than the absolute value threshold are classified into the first category of reference frame list, and the elements whose absolute value is greater than or equal to the absolute value threshold are classified into the second category of reference frame list. Since the elements in the reference frame list are the difference between the display sequence numbers of the reference frame and the current frame, it can reflect the closeness of the reference frame and the current frame in the display sequence, and the closer the frames are, the more likely their contents are similar, and the more likely they are to hit the preset reference frame list. Based on this, the absolute value of the elements in the reference frame list can be used as a criterion for dividing the first category of reference frame list and the second category of reference frame list.

[0083] In other embodiments, optionally, the first category of reference frame lists includes reference frames that belong to the same video segment as the current frame, and the second category of reference frame lists includes reference frames that do not belong to the same video segment as the current frame, wherein the video segment is a segment that includes multiple continuous frames according to preset conditions. Considering that in the video encoding process, multiple continuous frames with similar content are sometimes divided into a video segment, such as a miniGOP starting with a P frame or an I frame, and then the video segment is encoded, frames belonging to the same video segment often have similar content, and are more likely to hit the preset reference frame list. By using the divided video segments and taking whether the reference frame and the current frame belong to the same video segment as the criterion for dividing the first category of reference frame lists and the second category of reference frame lists, it is possible to make full use of existing information and achieve efficient splitting of the reference frame list. It should be understood that the reference frame list records the difference in display serial number between the reference frame and the current frame. Therefore, for the current frame, each element (i.e., each difference) in its reference frame list corresponds to this reference frame. If a reference frame and the current frame belong to the same video clip, the difference corresponding to the reference frame is included in the first category of the reference frame list. If a reference frame and the current frame do not belong to the same video clip, the difference corresponding to the reference frame is included in the second category of the reference frame list.

[0084] In addition, when the hit rate of the preset reference frame list is low, not only will the useless comparison calculation amount be increased, but also the video compression rate will be reduced due to the increase of the codewords of the preset reference frame list, which is not worth the loss. To solve this problem, optionally, according to the exemplary video encoding method disclosed in the present invention, it also includes: after the encoding of multiple frames including the current frame is completed, the hit rate of the first-class reference frame list of multiple frames hitting the preset reference frame list is counted; when the hit rate is lower than the hit rate threshold, the replacement reference frame list is determined based on the first-class reference frame list of multiple frames; and the replacement reference frame list is written into the sequence header to replace the preset reference frame list. By determining the replacement reference frame list based on the actual first-class reference frame list when the hit rate is low, so as to obtain the original preset reference frame list in the sequence header, that is, re-encoding the first-class reference frame list based on the replacement reference frame list, the hit rate of the replacement reference frame list can be effectively guaranteed, so that a large number of first-class reference frame lists can be encoded using the sequence number of the replacement reference frame list, thereby reducing codeword redundancy and improving the video encoding compression rate. It should be understood that the specific value of the hit rate threshold can be adjusted as needed, and the present disclosure does not limit this.

[0085] Optionally, the above-mentioned operation of determining a replacement reference frame list based on a class of reference frame lists of multiple frames includes: counting the number of occurrences of the same class of reference frame lists in the class of reference frame lists of multiple frames; and determining multiple replacement reference frame lists from the class of reference frame lists of multiple frames according to the number of occurrences of each class of reference frame list. It should be understood that the more times a class of reference frame list appears, the more times its sequence number is used for encoding during encoding. By counting the number of occurrences of the same class of reference frame lists after completing the encoding of multiple frames, and determining the replacement reference frame list accordingly, it is possible to ensure that the determined replacement reference frame list is hit, which helps to improve the video encoding compression rate. Specifically, since the elements in the reference frame list are the difference between the display sequence numbers of the reference frame and the current frame, the reference frame lists of different frames may be the same, for example, the reference frame lists of several frames are all "-8, +8", so the number of occurrences of the class of reference frame lists of multiple frames that have completed encoding can be counted to achieve clustering of the class of reference frame lists.

[0086] For the implementation method of counting the number of occurrences of a type of reference frame list, the specific method of determining the replacement reference frame list can be various, and several embodiments are listed below. It should be understood that the following embodiments are only examples and are not limitations of the present disclosure. Those skilled in the art can also infer other embodiments in combination with technical means in the field, and these embodiments all fall within the protection scope of the present disclosure.

[0087] In some embodiments, optionally, the operation of determining multiple replacement reference frame lists from the first-class reference frame lists of multiple frames according to the number of occurrences of each first-class reference frame list includes: determining a preset number of first-class reference frame lists with the largest number of occurrences in the first-class reference frame lists of multiple frames as replacement reference frame lists. By directly determining the preset number of first-class reference frame lists with the largest number of occurrences as replacement reference frame lists, the replacement reference frame lists can be determined simply and effectively, which helps to improve coding efficiency.

[0088] In specific implementation, each class of reference frame lists can be arranged in descending order according to the number of occurrences from most to least, and then the top N are selected as replacement reference frame lists, where N is a preset number. In particular, when the number of selected class of reference frame lists exceeds N due to the existence of class of reference frame lists with the same number of occurrences, a portion can be randomly selected from several class of reference frame lists ranked lower to ensure that the number of replacement reference frame lists finally selected is N. Alternatively, a reference number can be set. When the number of selected class of reference frame lists does not exceed the reference number, all selected class of reference frame lists are determined as replacement reference frame lists. When the number of selected class of reference frame lists exceeds the reference number, the former solution is adopted to control the final selected replacement reference frame list to the preset number N or the reference number. Of course, other reasonable processing solutions can also be adopted, and the present disclosure does not limit this.

[0089] In other embodiments, optionally, the operation of determining multiple replacement reference frame lists from the first-class reference frame lists of the multiple frames according to the number of occurrences of each first-class reference frame list includes: determining the first-class reference frame list whose number of occurrences in the first-class reference frame lists of the multiple frames exceeds a number threshold as the replacement reference frame list. The number threshold may be a fixed value, or may be the product of the total number of occurrences of all first-class reference frame lists of the multiple frames and a fixed ratio. It should be understood that the total number of occurrences of all first-class reference frame lists of the multiple frames is less than or equal to the number of the multiple frames, that is, if each frame is split into a first-class reference frame list, the total number of occurrences is equal to the number of the multiple frames, and if there are frames that are not split into a first-class reference frame list, the total number of occurrences is less than the number of the multiple frames.

[0090] In some further embodiments, optionally, the operation of determining multiple replacement reference frame lists from the first-class reference frame lists of the multiple frames according to the number of occurrences of each first-class reference frame list includes: arranging all the first-class reference frame lists of the multiple frames in descending order of the number of occurrences, and determining the first-class reference frame lists at the front as the replacement reference frame lists, wherein the total number of occurrences of each first-class reference frame list of the determined replacement reference frame list exceeds a total number threshold. The total number threshold may be a fixed value, or may be the product of the total number of occurrences of all the first-class reference frame lists of the multiple frames and a fixed ratio.

[0091] For the implementation method of counting the number of occurrences of a class of reference frame lists, further optionally, it can also be combined with the number of elements contained in the class of reference frame lists. At this time, according to the number of occurrences of each class of reference frame lists, the operation of determining multiple replacement reference frame lists from the class of reference frame lists of multiple frames includes: according to the number of occurrences of each class of reference frame lists and the number of elements contained in the class of reference frame lists, multiple replacement reference frame lists are determined from the class of reference frame lists of multiple frames. It should be understood that the more elements contained in the class of reference frame lists, the more code words can be saved by using the sequence number of the reference frame list (preset reference frame list or replacement reference frame list) recorded in the sequence header to encode the class of reference frame lists, and the higher the video compression rate. On the contrary, the fewer elements contained in the class of reference frame lists, the fewer code words are saved. In special cases, if the class of reference frame lists contains only one element, then regardless of whether the reference frame list recorded in the sequence header is hit, the encoding code words of the class of reference frame lists are the same, and redundancy will occur because the corresponding reference frame list is recorded in the sequence header. Based on this, by determining the replacement reference frame list based on the statistical number of occurrences and the number of elements contained in a type of reference frame list, it can effectively ensure that code words can be saved when encoding using the determined serial number of the replacement reference frame list, thereby fully ensuring the compression rate of video encoding by combining different aspects.

[0092] As an example, according to the number of occurrences of each first-class reference frame list and the number of elements contained in the first-class reference frame list, the operation of determining multiple replacement reference frame lists from the first-class reference frame list of multiple frames specifically includes: selecting a preset number of first-class reference frame lists with the largest number of occurrences from the first-class reference frame list of multiple frames, and deleting the first-class reference frame lists with the number of elements less than the number threshold (for example, 2) as replacement reference frame lists. It is also possible to further supplement several first-class reference frame lists with relatively large number of occurrences and the number of elements greater than or equal to the number threshold from the unselected first-class reference frame list in order after the deletion, so that the total number of replacement reference frame lists remains unchanged. It is also possible to combine the number of occurrences and the number of elements of the first-class reference frame list to make a comprehensive selection, such as determining multiple selection schemes, each selection scheme including multiple first-class reference frame lists, respectively calculating the codewords (or saved codewords) when each selection scheme is adopted, selecting a selection scheme with the least codewords (or the most saved codewords), and determining the multiple first-class reference frame lists included in the scheme as replacement reference frame lists. The present disclosure does not limit how to determine the replacement reference frame list according to the number of occurrences and the number of elements in a type of reference frame list.

[0093] Next, the video encoding method disclosed in the present invention is introduced in conjunction with a specific embodiment.

[0094] This specific embodiment is executed in two steps. When the hit rate of the algorithm in the first step is low, the second step algorithm will be automatically started. In this way, even if the hit rate of the preset reference frame list in the sequence header is low, a replacement reference frame list with a high hit rate can be generated for the encoded video in a two-pass manner, thereby minimizing redundancy and improving the video encoding compression rate.

[0095] In the first step, each frame in a video sequence is encoded for the first time, and the reference frame list of the current frame is split into a first-category reference frame list of "easy to predict" and a second-category reference frame list of "not easy to predict", and the two split lists are encoded separately.

[0096] For a class of reference frame lists that are easy to predict, a preset reference frame list predefined in a sequence header in the related art is used for encoding. If there is a preset reference frame list that is consistent with the class of reference frame list, the sequence number of the corresponding preset reference frame list in the sequence header is encoded at the beginning of the current frame; if there is no preset reference frame list that is consistent with the class of reference frame list, the class of reference frame list itself is encoded at the beginning of the current frame.

[0097] For the second-category reference frame list that is not easy to predict, the second-category reference frame list itself is directly encoded at the beginning of the current frame.

[0098] The specific details of splitting the reference frame list are as follows: Figure 6 As shown, the video sequence is divided into several miniGOPs, denoted as miniGOP0, miniGOP1, miniGOP2, etc. Each miniGOP starts with a P frame or an I frame, for example Figure 6 In P0, P1, and P2, the number of frames contained in each miniGOP is fixed and equal, for example, 32 frames. Since the reference relationship is relatively fixed within the same miniGOP, for the current frame, if a reference frame and the current frame belong to the same miniGOP, the reference frame is considered to be easy to predict, and the difference between the display sequence number of the reference frame and the display sequence number of the current frame is classified into a first-class reference frame list. If a reference frame and the current frame do not belong to the same miniGOP, the reference frame is considered to be difficult to predict, and the difference between the display sequence number of the reference frame and the display sequence number of the current frame is classified into a second-class reference frame list.

[0099] After a video sequence is encoded, the hit rate of each frame in the video sequence hitting the preset reference frame list is counted. Specifically, the total number of a type of reference frame lists (or the total number of occurrences, that is, for a type of reference frame lists with the same content, the number is counted according to the actual number of occurrences) is used as the denominator, and the number of a type of reference frame lists encoded as the serial number of the corresponding preset reference frame list in the sequence header is used as the numerator.

[0100] Generally speaking, since the preset reference frame list is calculated according to the standard, it can guarantee a high hit rate. However, in the actual coding process, there are long reference frames, dynamic miniGOP structures, etc. The reference relationship is variable, and the hit rate may be very low. Based on this, if the hit rate is higher than or equal to the hit rate threshold, the encoded data is used directly without executing subsequent steps. If the hit rate is lower than the hit rate threshold, it means that the preset reference frame list used in the encoding process does not match the current video sequence, and the second step algorithm needs to be executed.

[0101] In the second step, the two types of lists are still encoded separately, but the difference is that the replacement reference frame list is used to replace the preset reference frame list in the sequence header, that is, the replacement reference frame list is first determined, and then the replacement reference frame list is used to encode a type of reference frame list that is easy to predict.

[0102] The method for determining the replacement reference frame list is to cluster all the "easy to predict" reference frame lists in the video sequence and sort them according to the number of occurrences, such as Figure 4 In the reference relationship shown, the reference frame lists of all single-numbered frames (a total of 16 frames) are "-1, +1", the reference frame lists of frames 2, 6, 10, 14, 18, 22, 26, and 30 (a total of 8 frames) are all "-2, +2", the reference frame lists of frames 4, 12, 20, and 28 (a total of 4 frames) are all "-4, +4", the reference frame lists of frames 8 and 24 (a total of 2 frames) are all "-8, +8", the reference frame list of frame 16 (a total of 1 frame) is "-8, +8", and the reference frame list of frame 32 is "-32". Therefore, these reference frame lists can be sorted by the number of occurrences to obtain "-1, +1", "-2, +2", "-4, +4", "-8, +8", and "-32". Of course, this is only the reference relationship of a part of the video frames in the video sequence. After statistically sorting the first-class reference frame lists of all the video frames in the video sequence, the TOP32 "easy to predict" first-class reference frame lists can be selected as the replacement reference frame lists and written into the sequence header.

[0103] This specific embodiment reduces coding redundancy through sophisticated design rather than increasing computing resources, and provides a multi-scenario adaptive design algorithm strategy. The algorithm is highly versatile and can save 0.6% of the bit rate under the same distortion, and the encoding time will only increase very slightly. When the second step of the algorithm is needed, there is no need to perform a complete encoding process. Only the reference frame list in the sequence header needs to be modified, and the code stream segment related to the reference frame list of each frame needs to be changed. It is very cost-effective.

[0104] Figure 7 is a block diagram illustrating a video encoding apparatus according to some embodiments of the present disclosure.

[0105] Reference Figure 7 The video encoding device 700 includes an acquisition unit 701, a splitting unit 702, a first encoding unit 703, and a second encoding unit 704.

[0106] The acquisition unit 701 may acquire a reference frame list of the current frame.

[0107] The splitting unit 702 can split the reference frame list into a first-class reference frame list and a second-class reference frame list, wherein the first-class reference frame list is a list of preset reference frame lists in the sequence header that is expected to hit the current frame, and the second-class reference frame list is a list of preset reference frame lists in the sequence header that is expected not to hit the current frame.

[0108] The first encoding unit 703 may encode a type of reference frame list based on a preset reference frame list.

[0109] The second encoding unit 704 may encode the second type of reference frame list as is.

[0110] Optionally, the first reference frame list includes reference frames that belong to the same video segment as the current frame, and the second reference frame list includes reference frames that do not belong to the same video segment as the current frame, wherein the video segment is a segment including multiple continuous frames according to preset conditions.

[0111] Optionally, the video encoding device 700 further includes a statistics unit, a determination unit, and a replacement unit (all not shown in the figure). The statistics unit may count the hit rate of a class of reference frame lists of multiple frames hitting a preset reference frame list after encoding of multiple frames including the current frame is completed; the determination unit may determine a replacement reference frame list based on the class of reference frame lists of multiple frames when the hit rate is lower than a hit rate threshold; the replacement unit may write the replacement reference frame list into the sequence header to replace the preset reference frame list.

[0112] Optionally, the determination unit may also: when the hit rate is lower than a hit rate threshold, count the number of occurrences of the same type of reference frame list in the type of reference frame lists of multiple frames; and determine multiple replacement reference frame lists from the type of reference frame lists of multiple frames according to the number of occurrences of each type of reference frame list.

[0113] Optionally, the determining unit may also determine a preset number of reference frame lists of the same type that appear the most times among the reference frame lists of the same type for the multiple frames as replacement reference frame lists.

[0114] Optionally, the determining unit may also determine a plurality of replacement reference frame lists from the reference frame lists of the plurality of frames according to the number of occurrences of each reference frame list of the first category and the number of elements contained in the reference frame list of the first category.

[0115] Regarding the device in the above embodiment, the specific manner in which each unit performs the operation has been described in detail in the embodiment of the method, and will not be elaborated here.

[0116] Figure 8 A computing environment 810 is shown coupled to a user interface 850. The computing environment 810 may be part of a data processing server. The computing environment 810 includes a processor 820, a memory 830, and an input / output (I / O) interface 840.

[0117] The processor 820 generally controls the overall operation of the computing environment 810, such as operations associated with display, data acquisition, data communication, and image processing. The processor 820 may include one or more processors for executing instructions to perform all or some steps in the above method. In addition, the processor 820 may include one or more modules that facilitate the interaction between the processor 820 and other components. The processor may be a central processing unit (CPU), a microprocessor, a single-chip microcomputer, a graphics processing unit (GPU), etc.

[0118] The memory 830 is configured to store various types of data to support the operation of the computing environment 810. The memory 830 may include predetermined software 832. Examples of such data include instructions for any application or method operating on the computing environment 810, video data sets, image data, etc. The memory 830 may be implemented by using any type of volatile or non-volatile memory device or a combination thereof, such as static random access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic memory, flash memory, magnetic disk, or optical disk.

[0119] The I / O interface 840 provides an interface between the processor 820 and peripheral interface modules (e.g., keyboard, click wheel, buttons, etc.). The buttons may include, but are not limited to, a home button, a start scan button, and a stop scan button. The I / O interface 840 may be coupled to an encoder and a decoder.

[0120] In an embodiment, a non-transitory computer-readable storage medium including, for example, a plurality of programs in a memory 830 and / or storing a bit stream generated by the above encoding method or a bit stream to be decoded by the above decoding method is also provided, wherein the plurality of programs can be executed by a processor 820 in a computing environment 810 to perform the above method. In one example, the plurality of programs can be executed by a processor 820 in a computing environment 810 to (for example, from Figure 2The video encoder 20 in the computing environment 810 receives a bit stream or data stream including encoded video information (e.g., video blocks representing encoded video frames, and / or one or more associated syntax elements, etc.), and can also be executed by the processor 820 in the computing environment 810 to perform the above-mentioned decoding method according to the received bit stream or data stream. In another example, the multiple programs can be executed by the processor 820 in the computing environment 810 to perform the above-mentioned encoding method to encode the video information (e.g., video blocks representing video frames, and / or one or more associated syntax elements, etc.) into a bit stream or data stream, and can also be executed by the processor 820 in the computing environment 810 to (e.g., to Figure 3 Alternatively, a non-transitory computer-readable storage medium may store the bit stream or data stream generated by the encoder (e.g., Figure 2 The video encoder 20 in FIG. 1 generates a video signal for a decoder (eg, Figure 3 A bitstream or data stream including encoded video information (e.g., video blocks representing encoded video frames, and / or associated one or more syntax elements, etc.) used by the video decoder 30 in the video decoder 30 when decoding video data. The non-transitory computer-readable storage medium can be, for example, a ROM, a random access memory (RAM), a CD-ROM, a magnetic tape, a floppy disk, an optical data storage device, etc.

[0121] In an embodiment, a bit stream generated by the above encoding method or a bit stream to be decoded by the above decoding method is provided. In an embodiment, a bit stream including encoded video information generated by the above encoding method or encoded video information to be decoded by the above decoding method is provided.

[0122] In an embodiment, a computing device is also provided, which includes: one or more processors (e.g., processor 820); and a non-transitory computer-readable storage medium or memory 830 in which multiple programs that can be executed by the one or more processors are stored, wherein the one or more processors are configured to perform the above-mentioned method when executing the multiple programs.

[0123] In an embodiment, a computer program product having instructions for storing or transmitting a bitstream is also provided, wherein the bitstream includes coded video information generated by the above encoding method or coded video information to be decoded by the above decoding method. In an embodiment, a computer program product including, for example, a plurality of programs in a memory 830 is also provided, wherein the plurality of programs can be executed by a processor 820 in a computing environment 810 for performing the above method. For example, the computer program product may include a non-transitory computer-readable storage medium.

[0124] In an embodiment, the computing environment 810 may be implemented by one or more ASICs, DSPs, digital signal processing devices (DSPDs), programmable logic devices (PLDs), FPGAs, GPUs, controllers, microcontrollers, microprocessors, or other electronic components for performing the above methods.

[0125] In an embodiment, a method for storing a bit stream is also provided, comprising: storing the bit stream on a digital storage medium, wherein the bit stream comprises encoded video information generated by the above encoding method or encoded video information to be decoded by the above decoding method.

[0126] In an embodiment, a method for transmitting a bit stream generated by the above encoder is also provided. In an embodiment, a method for receiving a bit stream to be decoded by the above decoder is also provided.

[0127] The description of the present disclosure has been presented for purposes of illustration and is not intended to be exhaustive or limited to the present disclosure. Many modifications, variations, and alternative embodiments will be apparent to one of ordinary skill in the art having the benefit of the teachings presented in the foregoing description and the associated drawings.

[0128] Unless otherwise specifically stated, the order of steps of the method according to the present disclosure is intended to be illustrative only, and the steps of the method according to the present disclosure are not limited to the order specifically described above, but can be changed according to actual conditions. In addition, at least one of the steps of the method according to the present disclosure can be adjusted, combined or deleted according to actual needs.

[0129] The examples are chosen and described in order to explain the principles of the present disclosure and to enable other persons skilled in the art to understand the various embodiments of the present disclosure and to best utilize the basic principles and various embodiments with various modifications suitable for the specific use contemplated. Therefore, it will be understood that the scope of the present disclosure is not limited to the specific examples of the disclosed embodiments, and modifications and other embodiments are intended to be included within the scope of the present disclosure.

Claims

1. A video encoding method, characterized in that: include: Get the reference frame list of the current frame; Splitting the reference frame list into a first-category reference frame list and a second-category reference frame list, wherein the first-category reference frame list is a list of preset reference frame lists in a sequence header that is expected to hit the current frame, and the second-category reference frame list is a list of preset reference frame lists in a sequence header that is expected not to hit the current frame; Encoding the reference frame list of the type based on the preset reference frame list; The second type of reference frame list is encoded as it is.

2. The video encoding method according to claim 1, characterized in that: The first category reference frame list includes reference frames that belong to the same video segment as the current frame, and the second category reference frame list includes reference frames that do not belong to the same video segment as the current frame, wherein the video segment is a segment including multiple continuous frames according to preset conditions.

3. The video encoding method according to claim 1, wherein: The video encoding method further comprises: After encoding of a plurality of frames including the current frame is completed, counting a hit rate of a type of reference frame list of the plurality of frames hitting the preset reference frame list; In a case where the hit rate is lower than a hit rate threshold, determining a replacement reference frame list based on a type of reference frame list of the plurality of frames; The replacement reference frame list is written into the sequence header to replace the preset reference frame list.

4. The video encoding method according to claim 3, characterized in that: The determining of a replacement reference frame list based on a type of reference frame list of the plurality of frames comprises: Counting the number of occurrences of the same type of reference frame list in the type of reference frame lists of the multiple frames; According to the number of occurrences of each type of reference frame list, a plurality of replacement reference frame lists are determined from the type of reference frame lists of the plurality of frames.

5. The video encoding method according to claim 4, characterized in that: The step of determining a plurality of replacement reference frame lists from the reference frame lists of the plurality of frames according to the number of occurrences of each reference frame list of the first category comprises: A preset number of reference frame lists of the type that appear the most times in the reference frame lists of the type of the multiple frames are determined as replacement reference frame lists.

6. The video encoding method according to claim 4, characterized in that: The step of determining a plurality of replacement reference frame lists from the reference frame lists of the plurality of frames according to the number of occurrences of each reference frame list of the first category comprises: According to the number of occurrences of each reference frame list of the first category and the number of elements contained in the reference frame list of the first category, a plurality of replacement reference frame lists are determined from the reference frame lists of the first category for the plurality of frames.

7. A video encoding device, characterized in that: include: an acquisition unit, configured to acquire a reference frame list of a current frame; a splitting unit configured to split the reference frame list into a first-category reference frame list and a second-category reference frame list, wherein the first-category reference frame list is a list of preset reference frame lists in a sequence header that is expected to hit the current frame, and the second-category reference frame list is a list of preset reference frame lists in a sequence header that is expected not to hit the current frame; A first encoding unit, configured to encode the reference frame list of the type based on the preset reference frame list; The second encoding unit is configured to encode the second type of reference frame list as it is.

8. An electronic device, characterized in that: include: at least one processor; at least one memory storing computer executable instructions, When the computer executable instructions are executed by at least one processor, the at least one processor is prompted to execute the video encoding method according to any one of claims 1 to 6.

9. A computer-readable storage medium, characterized in that: When the instructions in the computer-readable storage medium are executed by at least one processor, the at least one processor is prompted to perform the video encoding method according to any one of claims 1 to 6.

10. A computer program product comprising computer instructions, characterized in that: When the computer instructions are executed by at least one processor, the video encoding method according to any one of claims 1 to 6 is implemented.

11. A computer program product having instructions for storing a bit stream, characterized in that The bit stream comprises: video data generated according to the video encoding method according to any one of claims 1 to 6.

12. A method for generating a bit stream, characterized in that: include: A bit stream is generated according to the video encoding method according to any one of claims 1 to 6.