WO2020187222A1 - 一种编解码方法、装置及其设备 - Google Patents
一种编解码方法、装置及其设备 Download PDFInfo
- Publication number
- WO2020187222A1 WO2020187222A1 PCT/CN2020/079885 CN2020079885W WO2020187222A1 WO 2020187222 A1 WO2020187222 A1 WO 2020187222A1 CN 2020079885 W CN2020079885 W CN 2020079885W WO 2020187222 A1 WO2020187222 A1 WO 2020187222A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- reference frame
- list
- target
- lists
- frame list
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/573—Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
- H04N19/147—Data rate or code amount at the encoder output according to rate distortion criteria
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/577—Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Definitions
- This application relates to the field of coding and decoding technologies, and in particular to a coding and decoding method, device and equipment.
- a complete video encoding method can include processes such as prediction, transformation, quantization, entropy encoding, and filtering.
- predictive coding may include intra-frame coding and inter-frame coding.
- Inter-frame coding uses the correlation of the video time domain to predict the current pixel by using the pixels adjacent to the coded image to effectively remove the video time domain redundancy.
- intra-frame coding refers to using the correlation of the video space domain to predict the current pixel using the pixels of the coded block of the current frame image to achieve the purpose of removing the video spatial domain redundancy.
- the current block can correspond to two reference frame lists. If the current block is a unidirectional block, a target reference frame can be selected from the two reference frame lists, and the target reference frame can be used to encode or decode the current block. If the current block is a bidirectional block, one target reference frame can be selected from the two reference frame lists, and the two target reference frames are used to encode or decode the current block.
- a target reference frame can be selected from the two reference frame lists, and the two target reference frames are used to encode or decode the current block.
- This application provides an encoding and decoding method, device and equipment, which can improve encoding performance.
- This application provides an encoding and decoding method, which includes:
- the reference frame configuration includes at least two reference frame lists; if there are duplicate reference frames in the at least two reference frame lists, perform the operation on the at least two reference frame lists Deduplication processing to obtain a reference frame list after deduplication; encoding or decoding the current block according to the reference frame list after deduplication.
- This application provides an encoding and decoding method, which includes:
- the reference frame configuration includes at least two reference frame lists; the at least two reference frame lists include a first reference frame list and a second reference frame list;
- the reference frame list and the second reference frame list construct a new reference frame list;
- the reference frames in the new reference frame list include at least one reference frame in the first reference frame list and/or the reference frame in the second reference frame list At least one reference frame, and any two reference frames in the new reference frame list are different; and the current block is encoded or decoded according to the new reference frame list.
- This application provides an encoding and decoding method, which includes:
- the reference frame configuration includes at least two reference frame lists; the first reference frame list is one of the at least two reference frame lists, and the second reference frame list is the The other of the at least two reference frame lists; select the first target reference frame from the first reference frame list; perform deletion processing on the reference frames in the second reference frame list to obtain the processed second Reference frame list; selecting a second target reference frame from the processed second reference frame list; decoding the current block according to the first target reference frame and the second target reference frame.
- the present application provides an encoding and decoding method, the method includes: obtaining a reference frame configuration of a current frame where a current block is located, the reference frame configuration including at least two reference frame lists; wherein the first reference frame list is the at least two reference frame lists; One of the two reference frame lists, the second reference frame list is the other of the at least two reference frame lists; the first target reference frame is selected from the first reference frame list, and the second reference frame is selected from the second reference frame list. Select the second target reference frame in the frame list; perform deletion processing on the reference frames in the second reference frame list to obtain the processed second reference frame list; according to the first target reference frame and the second reference frame The target reference frame encodes the current block.
- This application provides an encoding and decoding method, which includes:
- the reference frame configuration includes at least two reference frame lists; wherein the first reference frame list is one of the at least two reference frame lists, and the second reference frame list is The other one of the at least two reference frame lists; constructing a reference frame combination list according to the first reference frame list and the second reference frame list, the reference frame combination list including multiple reference frame combinations that are not repeated
- Each reference frame combination includes a reference frame that exists in the first reference frame list and a reference frame that exists in the second reference frame list; selects a target reference frame combination from the reference frame combination list; according to The target reference frame combination encodes or decodes the current block.
- the present application provides a coding and decoding device, which includes:
- the acquiring module is configured to acquire the reference frame configuration of the current frame where the current block is located, where the reference frame configuration includes at least two reference frame lists; the processing module is configured to: if there are duplicate reference frames in the at least two reference frame lists, Perform deduplication processing on the at least two reference frame lists to obtain a deduplicated reference frame list; an encoding and decoding module, configured to encode or decode the current block according to the deduplicated reference frame list.
- the present application provides a coding and decoding device, which includes:
- An obtaining module configured to obtain a reference frame configuration of a current frame where the current block is located, the reference frame configuration includes at least two reference frame lists; the at least two reference frame lists include a first reference frame list and a second reference frame list;
- the construction module is configured to construct a new reference frame list according to the first reference frame list and the second reference frame list; the reference frames in the new reference frame list include at least one reference frame in the first reference frame list, And/or at least one reference frame in the second reference frame list, and any two reference frames in the new reference frame list are different;
- the encoding and decoding module is configured to encode or decode the current block according to the new reference frame list.
- the present application provides an encoding and decoding device, the device includes: an obtaining module, configured to obtain a reference frame configuration of the current frame where the current block is located, the reference frame configuration including at least two reference frame lists; wherein, the first reference frame list Is one of the at least two reference frame lists, and the second reference frame list is the other of the at least two reference frame lists; a selection module, configured to select a first target from the first reference frame list Reference frame; a processing module, used to delete and subtract reference frames in the second reference frame list to obtain a processed second reference frame list; the selection module is also used to select the processed first reference frame 2. Select a second target reference frame from the reference frame list; a decoding module, configured to decode the current block according to the first target reference frame and the second target reference frame.
- the present application provides a coding and decoding device, which includes:
- the acquiring module is configured to acquire the reference frame configuration of the current frame where the current block is located, the reference frame configuration including at least two reference frame lists; wherein, the first reference frame list is one of the at least two reference frame lists, The second reference frame list is the other of the at least two reference frame lists; the selection module is configured to select a first target reference frame from the first reference frame list, and select from the second reference frame list A second target reference frame; a processing module, used to delete and subtract reference frames in the second reference frame list, to obtain a processed second reference frame list; a coding and decoding module, used to perform according to the first target A reference frame and the second target reference frame are used to encode the current block.
- the present application provides a coding and decoding device, which includes:
- the acquiring module is configured to acquire the reference frame configuration of the current frame where the current block is located, the reference frame configuration including at least two reference frame lists; wherein, the first reference frame list is one of the at least two reference frame lists, The second reference frame list is the other of the at least two reference frame lists; a construction module, configured to construct a reference frame combination list according to the first reference frame list and the second reference frame list, the reference frame combination The list includes a plurality of reference frame combinations that are not repeated; each reference frame combination includes a reference frame existing in the first reference frame list and a reference frame existing in the second reference frame list; a selection module for A target reference frame combination is selected from the reference frame combination list; an encoding and decoding module is used to encode or decode the current block according to the target reference frame combination.
- the present application provides an encoding terminal device, including: a processor and a machine-readable storage medium, where the machine-readable storage medium stores machine executable instructions that can be executed by the processor;
- the processor is used to execute machine executable instructions to implement the following steps:
- the reference frame configuration includes at least two reference frame lists; if there are duplicate reference frames in the at least two reference frame lists, perform the operation on the at least two reference frame lists Deduplication processing to obtain a reference frame list after deduplication; encoding the current block according to the reference frame list after deduplication; or,
- the reference frame configuration includes at least two reference frame lists; the at least two reference frame lists include a first reference frame list and a second reference frame list;
- the reference frame list and the second reference frame list construct a new reference frame list;
- the reference frames in the new reference frame list include at least one reference frame in the first reference frame list and/or the reference frame in the second reference frame list At least one reference frame, any two reference frames in the new reference frame list are different; encoding the current block according to the new reference frame list; or,
- the reference frame configuration includes at least two reference frame lists; wherein the first reference frame list is one of the at least two reference frame lists, and the second reference frame list is The other one of the at least two reference frame lists; select a first target reference frame from the first reference frame list, and select a second target reference frame from the second reference frame list; 2.
- the reference frames in the reference frame list are deleted and processed to obtain the processed second reference frame list; the current block is encoded according to the first target reference frame and the second target reference frame; or,
- the reference frame configuration includes at least two reference frame lists; wherein the first reference frame list is one of the at least two reference frame lists, and the second reference frame list is The other one of the at least two reference frame lists; constructing a reference frame combination list according to the first reference frame list and the second reference frame list, the reference frame combination list including multiple reference frame combinations that are not repeated
- Each reference frame combination includes a reference frame that exists in the first reference frame list and a reference frame that exists in the second reference frame list; selects a target reference frame combination from the reference frame combination list; according to The target reference frame combination encodes the current block.
- the present application provides a decoding end device, including: a processor and a machine-readable storage medium, where the machine-readable storage medium stores machine executable instructions that can be executed by the processor;
- the processor is used to execute machine executable instructions to implement the following steps:
- the reference frame configuration includes at least two reference frame lists; if there are duplicate reference frames in the at least two reference frame lists, perform the operation on the at least two reference frame lists Deduplication processing to obtain a reference frame list after deduplication; decoding the current block according to the reference frame list after deduplication; or,
- the reference frame configuration includes at least two reference frame lists; the at least two reference frame lists include a first reference frame list and a second reference frame list;
- the reference frame list and the second reference frame list construct a new reference frame list;
- the reference frames in the new reference frame list include at least one reference frame in the first reference frame list and/or the reference frame in the second reference frame list At least one reference frame, and any two reference frames in the new reference frame list are different;
- the current block is decoded according to the new reference frame list; or,
- the reference frame configuration includes at least two reference frame lists; wherein the first reference frame list is one of the at least two reference frame lists, and the second reference frame list is The other one of the at least two reference frame lists; select a first target reference frame from the first reference frame list; perform deletion processing on the reference frames in the second reference frame list to obtain the processed A second reference frame list; select a second target reference frame from the processed second reference frame list; decode the current block according to the first target reference frame and the second target reference frame; or ,
- the reference frame configuration includes at least two reference frame lists; wherein the first reference frame list is one of the at least two reference frame lists, and the second reference frame list is The other one of the at least two reference frame lists; constructing a reference frame combination list according to the first reference frame list and the second reference frame list, the reference frame combination list including multiple reference frame combinations that are not repeated
- Each reference frame combination includes a reference frame that exists in the first reference frame list and a reference frame that exists in the second reference frame list; selects a target reference frame combination from the reference frame combination list; according to The target reference frame combination decodes the current block.
- At least two reference frame lists can be deduplicated, thereby avoiding or reducing syntax redundancy and improving coding performance. Avoiding syntax redundancy in unidirectional prediction blocks can improve coding performance gains. Avoiding the occurrence of syntax redundancy in the bidirectional prediction block can improve the coding performance gain.
- FIG. 1 is a schematic diagram of a video coding framework in an embodiment of the present application
- FIG. 2 is a flowchart of an encoding and decoding method in an embodiment of the present application
- FIG. 3 is a flowchart of an encoding and decoding method in another embodiment of the present application.
- FIG. 4 is a flowchart of an encoding and decoding method in another embodiment of the present application.
- FIG. 5 is a flowchart of an encoding and decoding method in another embodiment of the present application.
- FIG. 6 is a flowchart of an encoding and decoding method in another embodiment of the present application.
- FIGS. 7A-7E are structural diagrams of a coding and decoding device in an embodiment of the present application.
- FIG. 8 is a hardware structure diagram of an encoding terminal device in an embodiment of the present application.
- FIG. 9 is a hardware structure diagram of a decoding end device in an embodiment of the present application.
- first, second, third, etc. may be used in the embodiments of the present application to describe various information, the information should not be limited to these terms. These terms are only used to distinguish the same type of information from each other.
- first information may also be referred to as second information, and similarly, the second information may also be referred to as first information.
- second information may also be referred to as first information.
- if used can be interpreted as "when” or "when” or "in response to certainty.”
- Intra prediction and inter prediction (intra prediction and inter prediction) technology
- Intra-frame prediction refers to using the correlation of the video space domain to predict the current pixel using the pixels of the coded block of the current image to achieve the purpose of removing the video spatial domain redundancy.
- Multiple prediction modes are specified in intra prediction, and each prediction mode corresponds to a texture direction (except for DC mode).
- the prediction pixels of the current block are generated from the boundary reconstruction pixel values of neighboring blocks in the prediction direction. For example, if the texture of the image is arranged horizontally, then selecting the horizontal prediction mode can better predict the image information.
- Inter-frame prediction refers to the use of video time domain correlation. Since video sequences usually have strong time domain correlation, using adjacent encoded image pixels to predict the pixels of the current image can achieve the purpose of effectively removing video time domain redundancy. .
- the main video coding standard inter-frame prediction part adopts block-based motion compensation technology. The main principle is to find a best matching block in the previously encoded image for each pixel block of the current image. This process is called motion estimation. (Motion Estimation, ME).
- SSE refers to the mean square of the difference between the reconstructed image block and the source image And; ⁇ is the Lagrangian multiplier, and R is the actual number of bits required for image block coding in this mode, including the sum of the bits required for coding mode information, motion information, residuals, etc.
- ⁇ is the Lagrangian multiplier
- R is the actual number of bits required for image block coding in this mode, including the sum of the bits required for coding mode information, motion information, residuals, etc.
- Multi-hypothesis prediction refers to the technique of weighting multiple prediction blocks to obtain the final prediction block. For example, on the basis of the prediction pixels of the current prediction mode, the mode of superimposing one or more new prediction pixels requires additional syntax to express the mode of the new prediction pixel block.
- the sub-block of the current block may be a coding unit (CU) or prediction unit (PU) or coding block (Coding block).
- CU coding unit
- PU prediction unit
- Coding block coding block
- Video coding framework As shown in Figure 1, the video coding framework can be used to implement the coding end processing flow of the embodiment of this application. In addition, the schematic diagram of the video decoding framework is similar to Figure 1 and will not be repeated here. Moreover, video can be used
- the decoding framework implements the decoding end processing flow of the embodiments of the present application.
- the video coding framework and the video decoding framework may include intra prediction, motion estimation/motion compensation, reference image buffer, in-loop filtering, reconstruction, transformation, quantization, inverse transformation, inverse quantization, entropy encoder, etc. Module. At the encoding end, through the cooperation between these modules, the encoding end processing flow can be realized, and at the decoding end, through the cooperation between these modules, the decoding end processing flow can be realized.
- the first type of syntax represents the reference frame list pointed to by the current block (for example, the syntax element inter_pred_idc represents the reference frame list pointed to by the current block).
- the second type of syntax indicates the reference frame in the pointed reference frame list (for example, the syntax elements ref_idx_l0 and ref_idx_l1 indicate the index value of the reference frame in the pointed reference frame list).
- the value of the first type of grammar is implicitly derived, that is, there is no need to explicitly transmit the first type of grammar.
- the value of the second type of syntax pointing to the reference frame list is implicitly derived, that is, there is no need to explicitly transmit the second type of syntax.
- syntax element inter_pred_idc, the syntax element ref_idx_l0, and the syntax element ref_idx_l1 can be expressed in binary numbers, decimal numbers, or octal, and there is no restriction on this.
- the use of binary values to represent these syntax elements is taken as an example.
- the current block is a B-frame unidirectional block (that is, there are two reference frame lists in the current block, and a target reference frame is selected from the two reference frame lists), there may be two unidirectional reference frames.
- This kind of expression means that there are problems such as grammatical redundancy and poor coding performance.
- the reference frame configuration of the current frame where the current block is located is: List0[0,8,16] and List1[8,16,24]
- the above two expressions both indicate that the target reference frame is reference frame 8.
- the above two syntax elements represent completely consistent reference frame information, resulting in greater syntax redundancy, affecting codec compression performance, and coding performance comparison difference.
- the coding and decoding method of the current reference frame configuration can be improved. For example, by deduplicating the reference frame to avoid the appearance of syntax redundancy.
- the deduplication operation includes: deduplication of List0 and List1, that is, when the reference frame exists in both List0 and List1, the reference frame in List0 is retained, the reference frame in List1 is removed, or List1 is retained Remove the reference frame in List0 from the reference frame in List0.
- the deduplication operation includes: the reference frame 8 and reference can be removed from List1 Frame 16, List1 after deduplication operation is [24].
- the current block is a B-frame bidirectional block (that is, one target reference frame is selected from the two reference frame lists of the current block, and two target reference frames are selected in total)
- a bidirectional reference frame may appear
- problems such as grammatical redundancy and poor coding performance.
- the reference frame configuration of the current frame where the current block is located is: List0[0,8,16] and List1[8,16,24]
- One way of expression is to point to two reference frame lists List0 and List1, take the second frame reference frame 8 in List0, and take the second frame reference frame 16 in List1.
- Another way of expression is to point to two reference frame lists List0 and List1, take the first frame reference frame 8 in List1, and take the third frame reference frame 16 in List0.
- the above two expressions both indicate that the target reference frame combination is a reference frame combination (8 16), that is to say, the above two syntax elements represent completely consistent reference frame information, which results in greater syntax redundancy and affects coding and decoding. Compression performance, coding performance is relatively poor.
- reference frame 0 exists in List0 and reference frame 24 exists in List1, that is, reference frame 0 and reference frame 24 only exist in one reference frame list.
- Reference frame 8 and reference frame 16 exist in List0 and List1 at the same time, that is, reference frame 8 and reference frame 16 exist in two reference frame lists at the same time.
- Reference frame 0 and reference frame 24 that only exist in one reference frame list are not coded separately from reference frame 8 and reference frame 16 that exist in two reference frame lists at the same time. The confusion of physical meaning affects the codec to a certain extent. effectiveness.
- the coding and decoding method of the reference frame configuration of the current block can be improved.
- the redundant operation of the reference frame combination is used to avoid the occurrence of syntax redundancy, that is, the same two-way reference frame combination is allowed to appear only once.
- the reference frame combination deduplication operation includes: reference frame combination (8 16) Combine with reference frame (16 8), remove one reference frame combination (16 8).
- reference frame combination (8 16) that is, point to two reference frame lists List0 and List1, take the second frame reference frame 8 in List0, and take the second frame reference frame in List1 16.
- the coding and decoding method of the current reference frame configuration can be improved.
- the coding and decoding efficiency can be improved by introducing a new syntax element class, the new syntax element class including: syntax elements used to identify whether two reference frames of the current bidirectional block are consistent.
- reference frame 0 exists in List0 and reference frame 24 exists in List1, that is, the new syntax element class is used to identify reference frame 0 or reference frame 24 only exists in one reference frame list.
- Reference frame 8 and reference frame 16 exist in List0 and List1 at the same time, that is, the new syntax element class is used to identify that reference frame 8 or reference frame 16 exists in two reference frame lists.
- the reference frame 0 and the reference frame 24 that exist in only one reference frame list are coded separately from the reference frame 8 and the reference frame 16 that exist in the two reference frame lists at the same time, which improves the coding and decoding efficiency.
- the current block can be predicted using unidirectional motion information.
- the current block can be referred to as a unidirectional block (or a unidirectional prediction block).
- the current block may be predicted using bidirectional motion information.
- the current block may be called a bidirectional block (or called a bidirectional prediction block).
- the encoding and decoding method may be applied to the decoding end or the encoding end, and the method may include:
- Step 201 Obtain a reference frame configuration of the current frame where the current block is located.
- the reference frame configuration includes at least two reference frame lists, and the at least two reference frame lists may include a first reference frame list and a second reference frame list.
- the at least two reference frame lists may also include reference frame lists other than the first reference frame list and the second reference frame list, which is not limited.
- the frame type of the current frame in which the current block is located can be a B frame, because the B frame allows inter-blocks pointing to multiple Lists (reference frame lists) to exist at the same time, such as the inter prediction block pointing to List0 and the inter prediction block pointing to List1 Therefore, when the current frame where the current block is located is a B frame, the reference frame configuration of the current frame where the current block is located may include at least two reference frame lists. For the convenience of description, take two reference frame lists as an example Be explained. The two reference frame lists can be List0 and List1.
- the first reference frame list is one of the at least two reference frame lists
- the second reference frame list is at least The other of the two reference frame lists.
- the first reference frame list is List0 and the second reference frame list is List1; or, the first reference frame list is List1 and the second reference frame list is List0.
- the current block may be a one-way block, that is, when there are two reference frame lists in the current block, a target reference frame can be selected from the two reference frame lists.
- Step 202 If there are duplicate reference frames in the at least two reference frame lists, perform deduplication processing on the at least two reference frame lists to obtain a deduplicated reference frame list. For example, if there are duplicate reference frames in the first reference frame list and the second reference frame list, the first reference frame list or the second reference frame list may be deduplicated to obtain the deduplicated first reference frame list or The second reference frame list.
- the reference frames in the first reference frame list can be kept unchanged, and the reference frames in the second reference frame list that are duplicated in the first reference frame list can be removed to obtain the second reference frame list after deduplication .
- the reference frames in the second reference frame list may be kept unchanged, and the reference frames in the first reference frame list that are duplicated in the second reference frame list may be removed to obtain the first reference frame list after deduplication.
- the current frame POC Picture Order Count, also known as the play order
- the reference frame configuration of the current frame includes a first reference frame list and a second reference frame list, and all sub-blocks of the current frame correspond to the first reference frame list and the second reference frame list.
- the current block (ie A sub-block of the current frame) also corresponds to the first reference frame list and the second reference frame list.
- the first reference frame list and the second reference frame list may be obtained from the reference frame configuration of the current frame.
- deduplication processing may be performed on the first reference frame list and the second reference frame list to obtain a deduplicated reference frame list.
- the reference frame list after deduplication is only applied to the current block and not to other sub-blocks of the current frame. That is to say, the first reference frame list and the second reference frame list are deduplicated, and the reference frame configuration of the current frame is not changed, that is, the first reference frame list and the second reference frame in the reference frame configuration are not modified.
- the first reference frame list and the second reference frame list in the reference frame configuration are still used.
- Step 203 Encode or decode the current block according to the reference frame list after deduplication.
- the encoding end may encode the current block according to the reference frame list after deduplication, and the encoding process is not limited.
- the decoding end can decode the current block according to the reference frame list after deduplication, and there is no restriction on the decoding process.
- At least two reference frame lists can be deduplicated, thereby reducing syntax redundancy and improving coding performance. Avoiding syntax redundancy in unidirectional prediction blocks can improve coding performance gains.
- an encoding and decoding method is proposed in an embodiment of the present application.
- the encoding and decoding method may be applied to the encoding end, and the encoding and decoding method may include:
- Step a1 The encoding end obtains the reference frame configuration of the current frame where the current block is located, where the reference frame configuration includes a first reference frame list and a second reference frame list.
- the first reference frame list is List0 and the second reference frame list is List1; or, the first reference frame list is List1 and the second reference frame list is List0.
- step a1 For the processing process of step a1, refer to step 201, which will not be repeated here.
- Step a2 If there are duplicate reference frames in the first reference frame list and the second reference frame list, the encoding end keeps the reference frames in the first reference frame list unchanged, and compares the second reference frame list with the first reference frame The repeated reference frames in the list are removed, and a second reference frame list after deduplication is obtained.
- step a2 For the processing process of step a2, refer to step 202, which will not be repeated here.
- Step a3 The encoding end encodes the current block according to the second reference frame list after deduplication.
- the encoder determines the rate-distortion cost corresponding to each reference frame, and determines the rate The reference frame with the least distortion cost is used as the target reference frame.
- the first reference frame list is List0[8,4,0] and the second reference frame list after deduplication is List1[20,16].
- the reference frame with the least rate-distortion cost is reference frame 20
- the target reference The frame is reference frame 20
- the encoding overhead is reduced from 2 bits "10" to 1 bit "1".
- an encoding and decoding method is proposed in an embodiment of the present application.
- the encoding and decoding method can be applied to the decoding end, and the encoding and decoding method may include:
- Step b1 The decoder obtains the reference frame configuration of the current frame where the current block is located, where the reference frame configuration includes a first reference frame list and a second reference frame list.
- the first reference frame list is List0 and the second reference frame list is List1; or, the first reference frame list is List1 and the second reference frame list is List0.
- the decoder can obtain the reference frame configuration of the current frame from the encoded bitstream, and there is no restriction on this.
- step b1 For the processing process of step b1, refer to step 201, which will not be repeated here.
- Step b2 If there are duplicate reference frames in the first reference frame list and the second reference frame list, the decoding end keeps the reference frames in the first reference frame list unchanged, and compares the second reference frame list with the first reference frame The repeated reference frames in the list are removed, and a second reference frame list after deduplication is obtained.
- step b2 For the processing process of step b2, refer to step 202, which will not be repeated here.
- Step b3 The decoding end decodes the current block according to the second reference frame list after deduplication.
- the decoding end may obtain the first indication information and the second indication information; the first indication information is used to indicate the target reference frame list, and the second indication information is used to indicate the index value of the target reference frame. Then, if the target reference frame list determined according to the first indication information is a reference frame list after deduplication, the target reference corresponding to the index value may be selected from the reference frame list after deduplication according to the second indication information Frame; then, the current block can be decoded according to the target reference frame.
- the index value of the reference frame in the reference frame list after deduplication is updated adaptively, so that the code rate occupied by the index value can be saved.
- the decoding end may obtain the first indication information (such as the syntax element inter_pred_idc) and the second indication information (such as the syntax element ref_idx_l1) from the encoded bit stream.
- the target reference frame is the first frame reference frame in List1, that is, the target reference Frame is reference frame 20.
- an encoding and decoding method is proposed in an embodiment of the present application, and the encoding and decoding method can be applied to the decoding end.
- the decoding end After receiving the encoded bit stream, the decoding end determines the reference frame list of the current block (that is, the one-way inter-frame prediction block) according to the encoded bit stream, that is, the first reference frame list and the second reference frame list. Then, the first reference frame list and the second reference frame list are deduplicated, and there is no restriction on the deduplication method. Then, the parsing process is performed based on the reference frame list after deduplication.
- an encoding and decoding method is proposed in an embodiment of the present application, which can be applied to the decoding end.
- the decoding end obtains the reference frame list of the current block (ie, one-way inter-frame prediction block) by analyzing the code stream. Then, the deduplication operation is performed on the reference frame list. Then, based on the deduplicated reference frame list, by analyzing the code stream, the reference frame list pointed to by the current block (ie, the target reference frame list) and the reference frame in the reference frame list pointed to by the current block (ie, the target reference frame) are determined.
- the current frame POC is 12
- FIG. 3 is a schematic flowchart of the encoding and decoding method proposed in the embodiment of this application.
- the encoding and decoding method may be applied to the decoding end or the encoding end, and the method may include:
- Step 301 Obtain a reference frame configuration of the current frame where the current block is located, where the reference frame configuration includes at least two reference frame lists, and the at least two reference frame lists include a first reference frame list and a second reference frame list.
- the frame type of the current frame in which the current block is located can be a B frame, because the B frame allows inter-blocks pointing to multiple Lists (reference frame lists) to exist at the same time, such as the inter prediction block pointing to List0 and the inter prediction block pointing to List1. Therefore, when the current frame where the current block is located is a B frame, the reference frame configuration of the current frame where the current block is located may include at least two reference frame lists. For the convenience of description, take two reference frame lists as an example Be explained. The two reference frame lists can be List0 and List1.
- the first reference frame list is one of the at least two reference frame lists
- the second reference frame list is at least The other of the two reference frame lists.
- the first reference frame list is List0 and the second reference frame list is List1; or, the first reference frame list is List1 and the second reference frame list is List0.
- the current block may be a one-way block, that is, when there are two reference frame lists in the current block, a target reference frame can be selected from the two reference frame lists.
- Step 302 Construct a new reference frame list according to the first reference frame list and the second reference frame list; the reference frames in the new reference frame list include at least one reference frame in the first reference frame list and/or the second reference frame list At least one reference frame in the new reference frame list, and any two reference frames in the new reference frame list are different.
- all reference frames in the first reference frame list may be added to the new reference frame list, and all reference frames in the second reference frame list may be added to the new reference frame list. Then, it is determined whether the same reference frame exists in the new reference frame list. If there are two identical reference frames, only one of the two reference frames is retained, and the other of the two reference frames is re-referenced Delete from the frame list.
- all reference frames in the first reference frame list may be added to the new reference frame list. Then, for each reference frame in the second reference frame list, it is determined whether the reference frame exists in the new reference frame list; if it does not exist, the reference frame can be added to the new reference frame list; if it exists, the reference frame is not added. The reference frame is added to the new reference frame list. Or, all reference frames in the second reference frame list can be added to the new reference frame list. Then, for each reference frame in the first reference frame list, it is determined whether the reference frame exists in the new reference frame list; if it does not exist, the reference frame can be added to the new reference frame list; if it exists, the reference frame is not added. The reference frame is added to the new reference frame list.
- the reference frames in the first reference frame list and the reference frames in the second reference frame list may be sequentially added to the new reference frame list.
- the POC (play order) of the current frame is 12
- the reference frame configuration of the current frame includes a first reference frame list and a second reference frame list, and all sub-blocks of the current frame correspond to the first reference frame list and the second reference frame list.
- the current block (ie A sub-block of the current frame) also corresponds to the first reference frame list and the second reference frame list.
- the first reference frame list and the second reference frame list may be obtained from the reference frame configuration of the current frame.
- a new reference frame list can be constructed according to the first reference frame list and the second reference frame list. It should be noted that the new reference frame list only affects the current block and not other sub-blocks of the current frame. In other words, the reference frame configuration of the current frame is not changed, and the first reference frame list and the second reference frame list in the reference frame configuration are still used when processing other sub-blocks of the current frame.
- Step 303 Encode or decode the current block according to the new reference frame list.
- the encoding end may encode the current block according to the new reference frame list, and the encoding process is not limited.
- the decoding end can decode the current block according to the new reference frame list, and the decoding process is not limited.
- an embodiment of the present application proposes a coding and decoding method, which can be applied to the coding end, and the coding and decoding method may include:
- Step c1 The encoding end obtains the reference frame configuration of the current frame where the current block is located, where the reference frame configuration includes a first reference frame list and a second reference frame list.
- the first reference frame list is List0 and the second reference frame list is List1; or, the first reference frame list is List1 and the second reference frame list is List0.
- Step c2 The encoding end constructs a new reference frame list according to the first reference frame list and the second reference frame list; the reference frames in the new reference frame list include at least one reference frame in the first reference frame list and/or the second reference At least one reference frame in the frame list, and any two reference frames in the new reference frame list are different.
- Step c3 The encoding end encodes the current block according to the new reference frame list.
- the encoder determines the rate-distortion cost corresponding to each reference frame, and uses the reference frame with the smallest rate-distortion cost as the target reference frame.
- the new reference frame list is [8,4,0,20,16], if the reference frame with the least rate-distortion cost is reference frame 20, then the target reference frame is reference frame 20.
- the indication information is used to indicate the index value 11 of the target reference frame in the new reference frame list, and the index value 11 indicates that the target reference frame is part of the new reference frame list.
- the fourth frame reference frame is used to indicate the indication information.
- an encoding and decoding method is proposed in an embodiment of the present application.
- the encoding and decoding method may be applied to the decoding end, and the encoding and decoding method may include:
- Step d1 The decoding end obtains the reference frame configuration of the current frame where the current block is located, where the reference frame configuration includes a first reference frame list and a second reference frame list.
- the first reference frame list is List0 and the second reference frame list is List1; or, the first reference frame list is List1 and the second reference frame list is List0.
- Step d2 The decoding end constructs a new reference frame list according to the first reference frame list and the second reference frame list; the reference frames in the new reference frame list include at least one reference frame in the first reference frame list and/or the second reference At least one reference frame in the frame list, and any two reference frames in the new reference frame list are different.
- Step d3 The decoding end decodes the current block according to the new reference frame list.
- the decoding end may obtain third indication information from the encoding end, where the third indication information is used to indicate the index value of the target reference frame; according to the third indication information, the index value corresponding to the index value is selected from the new reference frame list.
- Target reference frame decode the current block according to the target reference frame.
- a coding and decoding method is proposed in the embodiment of the present application, which can be applied to the decoding end.
- the decoding end obtains the reference frame list of the current block (ie, one-way inter-frame prediction block) by analyzing the code stream. Then, by deduplicating the reference frame list, a new reference frame list (denoted as list2) is obtained. Based on the new reference frame list list2, by analyzing the code stream, it is determined that the current block points to the reference frame (ie, the target reference frame) in the new reference frame list list2.
- FIG. 4 is a schematic flowchart of the encoding and decoding method proposed in the embodiment of this application.
- the encoding and decoding method may be applied to the encoding end, and the method may include the following steps:
- Step 401 Obtain a reference frame configuration of the current frame where the current block is located.
- the reference frame configuration includes at least two reference frame lists, and the at least two reference frame lists may include a first reference frame list and a second reference frame list.
- the at least two reference frame lists may also include reference frame lists other than the first reference frame list and the second reference frame list, which is not limited.
- the frame type of the current frame in which the current block is located can be a B frame, because the B frame allows inter-blocks pointing to multiple Lists (reference frame lists) to exist at the same time, such as the inter prediction block pointing to List0 and the inter prediction block pointing to List1. Therefore, when the current frame where the current block is located is a B frame, the reference frame configuration of the current frame where the current block is located may include at least two reference frame lists. For the convenience of description, take two reference frame lists as an example Be explained. The two reference frame lists can be List0 and List1.
- the first reference frame list is one of the at least two reference frame lists
- the second reference frame list is at least The other of the two reference frame lists.
- the first reference frame list is List0 and the second reference frame list is List1; or, the first reference frame list is List1 and the second reference frame list is List0.
- the current block may be a bidirectional block, that is, when there are two reference frame lists in the current block, one target reference frame is selected from the two reference frame lists, that is, two target reference frames are selected.
- Step 402 Select a first target reference frame corresponding to the current block from the first reference frame list, and select a second target reference frame corresponding to the current block from the second reference frame list.
- the reference frame combination with the least rate-distortion cost can be used as the target reference frame combination.
- the reference frame in which the target reference frame is combined in the first reference frame list can be used as the first target reference frame
- the reference frame in which the target reference frame is combined in the second reference frame list can be used as the second target reference frame.
- the current frame POC is 12
- POC 16
- traverse all the reference frames of List0 and List1 Combinations such as reference frame combination (8 20), reference frame combination (8 16), reference frame combination (8 8), reference frame combination (4 20), reference frame combination (4 16), reference frame combination (4 8) , Reference frame combination (0 20), reference frame combination (0 16), reference frame combination (0 8).
- the rate-distortion cost corresponding to each reference frame combination is determined. Assuming that the rate-distortion cost of the reference frame combination (8 20) is the smallest, the reference frame combination (8 20) is the target reference frame combination.
- the reference frame combination (8 20) in the first reference frame list is the reference frame 8 as the first target reference frame
- the reference frame 20 in the second reference frame list is the second target reference frame.
- Step 403 Perform deletion processing on the reference frames in the second reference frame list to obtain a processed second reference frame list.
- the reference frames in the second reference frame list are deleted (that is, a certain reference frame in the second reference frame list is deleted) to obtain the processed second reference frame list, including but not limited to:
- Manner 1 If the first target reference frame exists in the second reference frame list, and the second target reference frame is different from the first target reference frame, then the reference frames in the second reference frame list are deleted and processed to obtain processing After the second reference frame list, for example, the first target reference frame in the second reference frame list (that is, the same reference frame as the first target reference frame in the second reference frame list) is deleted to obtain the processed first reference frame 2. List of reference frames.
- the first target reference frame is determined from the first reference frame list, and after the second target reference frame is determined from the second reference frame list, it is determined whether the first target reference frame exists in the second reference frame list. If the first target reference frame does not exist, the reference frame in the second reference frame list is no longer deleted. If the first target reference frame exists, it is determined whether the second target reference frame in the second reference frame list is the same as the first target reference frame in the first reference frame list. If the second target reference frame is the same as the first target reference frame, the reference frame in the second reference frame list is no longer deleted. If the second target reference frame is different from the first target reference frame, the reference frame in the second reference frame list is deleted and processed to obtain the processed second reference frame list.
- the POC of the current frame is 12
- a target reference frame is reference frame 4 in List0
- the second target reference frame is reference frame 8 in List1. Since the first target reference frame (ie reference frame 4) does not exist in List1, no more reference frames are added to List1. The reference frame is deleted.
- the first target reference frame is reference frame 8
- the second target reference frame is reference frame 8. Because there is the first target reference frame (ie reference frame 8) in List1, and the second target reference frame (ie reference frame 8) It is the same as the first target reference frame, therefore, the reference frame in List1 can no longer be deleted.
- the first target reference frame is reference frame 8
- the second target reference frame is reference frame 20. Since the first target reference frame (ie reference frame 8) exists in List1, and the second target reference frame (ie reference frame 20) Different from the first target reference frame, therefore, the reference frame in List1 can be deleted.
- the reference frame in List1 is deleted, since the first target reference frame is reference frame 8, and the second target reference frame is reference frame 20, the reference frame in List1 is the same as the first target reference frame (That is, reference frame 8) is deleted, and the processed List1 is obtained.
- the encoding end may also encode fourth indication information, the fourth indication The information is used to indicate that the second target reference frame is different from the first target reference frame.
- Manner 2 Traverse the reference frame combinations in the first reference frame list and the second reference frame list; if two reference frame combinations are repeated, select a target reference frame combination that needs to be deleted from the two reference frame combinations . If one reference frame in the target reference frame combination is the first target reference frame, then another reference frame in the target reference frame combination is deleted from the second reference frame list to obtain the processed second reference frame list.
- the second target reference is selected from the second reference frame list after the reduction process frame. That is, when traversing all the reference frame combinations of the first reference frame list and the second reference frame list, it is traversing all the reference frame combinations of the first reference frame list and the second reference frame list after the reduction processing.
- the reference frame combination (8 4) selects a reference frame combination that needs to be deleted from the reference frame combination (8 4) and reference frame combination (4 8), and use this reference frame combination as the target reference frame combination, for example, the reference frame combination (8 4)
- the target reference frame combination, or the reference frame combination (4 8) is used as the target reference frame combination, there is no restriction on the selection method, as long as the selection strategy of the encoder is the same as the selection strategy of the decoder.
- the target reference frame combination is the reference frame combination (8 4)
- the reference frame configuration of the current frame includes a first reference frame list and a second reference frame list, and all sub-blocks of the current frame correspond to the first reference frame list and the second reference frame list.
- the current block (ie A sub-block of the current frame) also corresponds to the first reference frame list and the second reference frame list.
- the first reference frame list and the second reference frame list may be obtained from the reference frame configuration of the current frame.
- the reference frames in the second reference frame list can be deleted and processed to obtain the processed second reference frame list.
- the processed reference frame list only affects the current block and not other sub-blocks of the current frame. That is to say, the reference frames in the second reference frame list are deleted and processed, and when the processed second reference frame list is obtained, the reference frame configuration of the current frame is not changed, that is, the first reference frame configuration in the reference frame configuration is not modified.
- a reference frame list and a second reference frame list When processing other sub-blocks of the current frame, the first reference frame list and the second reference frame list in the reference frame configuration are still used.
- Step 404 encoding the current block according to the first target reference frame and the second target reference frame.
- the encoding end encodes the current block according to the index value of the first target reference frame in the first reference frame list and the index value of the second target reference frame in the processed second reference frame list.
- the index values of the remaining reference frames in the processed second reference frame list will be updated, that is, the second target reference frame
- the index value in the processed second reference frame list is the updated index value
- the first reference frame list is List0[8,4,0] and the processed second reference frame list is List1[20,16].
- the coding overhead is reduced.
- the reference frames in the at least two reference frame lists can be deleted, thereby reducing syntax redundancy and improving coding performance. Avoiding the occurrence of syntax redundancy in the bidirectional prediction block can improve the coding performance gain.
- the coding and decoding method can be applied to the coding end, and the method can include the following steps:
- Step e1 The encoding end obtains the reference frame configuration of the current frame where the current block is located.
- the reference frame configuration includes at least two reference frame lists, and the at least two reference frame lists include a first reference frame list and a second reference frame list.
- Step e2 The encoding end selects the first target reference frame corresponding to the current block from the first reference frame list, and selects the second target reference frame corresponding to the current block from the second reference frame list.
- Step e3 The encoding end judges whether the first target reference frame exists in the second reference frame list, if it is, execute step e4, if not, then there is no need to execute subsequent deletion processing, which will not be repeated here.
- step e4 the encoding end judges whether the second target reference frame is different from the first target reference frame, if yes, execute step e5, if not, then there is no need to execute subsequent deletion processing, which will not be repeated here.
- Step e5 The encoding end performs deletion processing on the reference frames in the second reference frame list to obtain the processed second reference frame list.
- the first target reference frame ie, the second The reference frame in the reference frame list that is the same as the first target reference frame
- the processed second reference frame list is obtained.
- Step e6 The encoding end encodes the current block according to the first target reference frame and the second target reference frame. For example, the encoding end encodes the current block according to the index value of the first target reference frame in the first reference frame list and the index value of the second target reference frame in the processed second reference frame list.
- the coding and decoding method can be applied to the coding end, and the method can include the following steps:
- Step f1 The encoding end obtains the reference frame configuration of the current frame where the current block is located.
- the reference frame configuration includes at least two reference frame lists, and the at least two reference frame lists include a first reference frame list and a second reference frame list.
- the at least two reference frame lists may also include reference frame lists other than the first reference frame list and the second reference frame list, which is not limited.
- Step f2 the encoding end selects the first target reference frame corresponding to the current block from the first reference frame list.
- Step f3 the encoding end traverses the reference frame combinations in the first reference frame list and the second reference frame list; if there are two reference frame combinations that are repeated, then select a target reference frame combination to be deleted from the two reference frame combinations . If one reference frame in the target reference frame combination is the first target reference frame, then another reference frame in the target reference frame combination is deleted from the second reference frame list to obtain the processed second reference frame list.
- Step f4 the encoding end selects the second target reference frame from the processed second reference frame list.
- Step f5 the encoding end encodes the current block according to the first target reference frame and the second target reference frame.
- the encoding and decoding method may be applied to the decoding end, and the method may include the following steps:
- Step 501 Obtain a reference frame configuration of the current frame where the current block is located.
- the reference frame configuration includes at least two reference frame lists, and the at least two reference frame lists may include a first reference frame list and a second reference frame list.
- the at least two reference frame lists may also include reference frame lists other than the first reference frame list and the second reference frame list, which is not limited.
- the frame type of the current frame in which the current block is located can be a B frame, because the B frame allows inter-blocks pointing to multiple Lists (reference frame lists) to exist at the same time, such as the inter prediction block pointing to List0 and the inter prediction block pointing to List1. Therefore, when the current frame where the current block is located is a B frame, the reference frame configuration of the current frame where the current block is located may include at least two reference frame lists. For the convenience of description, take two reference frame lists as an example Be explained. The two reference frame lists can be List0 and List1.
- the first reference frame list is one of the at least two reference frame lists
- the second reference frame list is at least The other of the two reference frame lists.
- the first reference frame list is List0 and the second reference frame list is List1; or, the first reference frame list is List1 and the second reference frame list is List0.
- the current block may be a bidirectional block, that is, when there are two reference frame lists in the current block, one target reference frame is selected from the two reference frame lists, that is, two target reference frames are selected.
- Step 502 Select the first target reference frame from the first reference frame list.
- the decoding end may obtain an encoded bit stream, and the encoded bit stream may include sixth indication information, where the sixth indication information is used to indicate the index value of the first target reference frame in the first reference frame list. Based on this, based on the sixth indication information, the decoding end may select a reference frame corresponding to the index value from the first reference frame list, and determine the reference frame corresponding to the index value as the first target reference frame.
- Step 503 Perform deletion processing on reference frames in the second reference frame list to obtain a processed second reference frame list.
- the reference frames in the second reference frame list are deleted (that is, a certain reference frame in the second reference frame list is deleted) to obtain the processed second reference frame list, including but not limited to:
- Manner 1 If the first target reference frame exists in the second reference frame list, and the second target reference frame is different from the first target reference frame, then the reference frames in the second reference frame list are deleted and processed to obtain processing After the second reference frame list, for example, the first target reference frame in the second reference frame list (that is, the same reference frame as the first target reference frame in the second reference frame list) is deleted to obtain the processed first reference frame 2. List of reference frames.
- the decoding end may obtain the fourth indication information.
- the decoding end may obtain the fourth indication information from the encoded bit stream.
- the fourth indication information is used to indicate whether the second target reference frame in the second reference frame list is the same as the first target reference frame in the first reference frame list. If it is determined according to the fourth indication information that the second target reference frame in the second reference frame list is different from the first target reference frame in the first reference frame list, then the reference frame in the second reference frame list is deleted, Get the processed second reference frame list. If it is determined according to the fourth indication information that the second target reference frame in the second reference frame list is the same as the first target reference frame in the first reference frame list, then the reference frame in the second reference frame list is not deleted.
- the decoding end determines whether the first target reference frame exists in the second reference frame list. If the first target reference frame does not exist, the reference frame in the second reference frame list is no longer deleted. If there is a first target reference frame, it is determined whether the second target reference frame in the second reference frame list is the same as the first target reference frame in the first reference frame list (that is, the second target reference frame is determined based on the fourth indication information) Is the same as the first target reference frame?). If the second target reference frame is the same as the first target reference frame, the reference frame in the second reference frame list is no longer deleted. If the second target reference frame is different from the first target reference frame, the reference frame in the second reference frame list is deleted and processed to obtain the processed second reference frame list.
- the current frame POC is 12
- POC 16
- the first target reference frame is reference frame 8
- the fourth indication information is used to indicate that the second target reference frame is the same as the first target reference frame
- the reference frame in List1 will not be deleted.
- the fourth indication information is used to indicate that the second target reference frame is different from the first target reference frame, then the reference frame in List1 is deleted.
- Manner 2 Traverse the reference frame combinations in the first reference frame list and the second reference frame list; if two reference frame combinations are repeated, select a target reference frame combination that needs to be deleted from the two reference frame combinations . If one reference frame in the target reference frame combination is the first target reference frame, then another reference frame in the target reference frame combination is deleted from the second reference frame list to obtain the processed second reference frame list.
- Reference frame combination such as reference frame combination (8 16), reference frame combination (8 8), reference frame combination (8 4), reference frame combination (4 16), reference frame combination (4 8), reference frame combination (4) 4), reference frame combination (0 16), reference frame combination (0 8), reference frame combination (0 4).
- the reference frame combination (8 4) and the reference frame combination (4 8) overlap, that is, the reference frame combination (8 4) and the reference frame combination (4 8) both include reference frame 8 and reference frame 4. Therefore, the reference frame combination (8 4) and the reference frame combination (4 8) overlap.
- the reference frame combination (8 4) selects a reference frame combination that needs to be deleted from the reference frame combination (8 4) and reference frame combination (4 8), and use this reference frame combination as the target reference frame combination, for example, the reference frame combination (8 4)
- the target reference frame combination, or the reference frame combination (4 8) is used as the target reference frame combination, there is no restriction on the selection method, as long as the selection strategy of the encoder is the same as the selection strategy of the decoder.
- the target reference frame combination is the reference frame combination (8 4)
- the reference frame configuration of the current frame includes a first reference frame list and a second reference frame list, and all sub-blocks of the current frame correspond to the first reference frame list and the second reference frame list.
- the current block (ie A sub-block of the current frame) also corresponds to the first reference frame list and the second reference frame list.
- the first reference frame list and the second reference frame list may be obtained from the reference frame configuration of the current frame.
- the reference frames in the second reference frame list may be deleted and processed to obtain the processed second reference frame list.
- the processed reference frame list only affects the current block and not other sub-blocks of the current frame. That is to say, the reference frame in the second reference frame list is deleted and processed, and when the processed second reference frame list is obtained, the reference frame configuration of the current frame is not changed, that is, the first reference frame configuration is not modified
- a reference frame list and a second reference frame list, when processing other sub-blocks of the current frame, the first reference frame list and the second reference frame list in the reference frame configuration are still used.
- Step 504 Select a second target reference frame from the processed second reference frame list.
- the decoding end may obtain fifth indication information, for example, obtaining the fifth indication information from the bitstream of the encoding end, and the fifth indication information is used to indicate the processed second reference frame list of the second target reference frame Then, the reference frame corresponding to the index value can be selected from the processed second reference frame list according to the fifth indication information, and this reference frame is the second target reference frame.
- the first reference frame list is List0[8,4,0] and the processed second reference frame list is List1[20,16].
- the target reference frame lists are List0 and List1.
- the first target reference frame is determined to be the first frame reference frame in List0, that is, reference frame 8.
- This determination process is step 502.
- the second target reference frame is the first frame reference frame in List1, that is, reference frame 20, that is, step 504.
- Step 505 Decode the current block according to the first target reference frame and the second target reference frame.
- the reference frames in the at least two reference frame lists can be deleted, thereby reducing syntax redundancy and improving coding performance. Avoiding the occurrence of syntax redundancy in the bidirectional prediction block can improve the coding performance gain.
- Embodiment 13 Based on the same inventive concept as Embodiment 13, another coding and decoding method is proposed in the embodiment of this application.
- the coding and decoding method can be applied to the decoding end.
- the method can include the following steps:
- Step g1 The decoder obtains the reference frame configuration of the current frame where the current block is located.
- the reference frame configuration includes at least two reference frame lists, and the at least two reference frame lists include a first reference frame list and a second reference frame list.
- Step g2 The decoding end selects the first target reference frame corresponding to the current block from the first reference frame list.
- Step g3 The decoding end judges whether the first target reference frame exists in the second reference frame list, if it is, execute step g4, if not, then there is no need to execute subsequent deletion processing, which will not be repeated here.
- step g4 the decoding end judges whether the second target reference frame is different from the first target reference frame, if so, execute step g5, if not, then there is no need to execute subsequent deletion processing, which will not be repeated here.
- the decoding end may obtain fourth indication information, where the fourth indication information is used to indicate whether the second target reference frame is the same as the first target reference frame. Based on the fourth indication information, the decoder can determine whether the second target reference frame is different from the first target reference frame, and if so, execute step g5.
- Step g5 The decoding end performs deletion processing on the reference frames in the second reference frame list to obtain the processed second reference frame list.
- the first target reference frame ie, the second The reference frame that is the same as the first target reference frame in the reference frame list
- the processed second reference frame list is deleted.
- Step g6 The decoding end selects the second target reference frame from the processed second reference frame list.
- Step g7 The decoding end decodes the current block according to the first target reference frame and the second target reference frame.
- the coding and decoding method can be applied to the decoding end, and the method can include the following steps:
- Step h1 The decoding end obtains the reference frame configuration of the current frame where the current block is located.
- the reference frame configuration includes at least two reference frame lists, and the at least two reference frame lists include a first reference frame list and a second reference frame list.
- Step h2 The decoding end selects the first target reference frame corresponding to the current block from the first reference frame list.
- Step h3 the decoder traverses the reference frame combinations in the first reference frame list and the second reference frame list; if there are two reference frame combinations that are repeated, select a target reference frame combination to be deleted from the two reference frame combinations . If one reference frame in the target reference frame combination is the first target reference frame, then another reference frame in the target reference frame combination is deleted from the second reference frame list to obtain the processed second reference frame list.
- Step h4 The decoding end selects the second target reference frame from the processed second reference frame list.
- Step h5 The decoding end decodes the current block according to the first target reference frame and the second target reference frame.
- Embodiment 13 Based on the same inventive concept as Embodiment 13, another coding and decoding method is proposed in the embodiment of this application.
- the coding and decoding method can be applied to the decoding end.
- the method can include the following steps:
- the syntax element X is parsed, and the current block points to the reference frame X in the reference frame list List0.
- the syntax element Y is parsed to obtain whether the current block points to the same frame (ie, whether the second target reference frame is the same as the first target reference frame).
- the reference frame list List1 is deleted.
- the syntax element Z is parsed, and the current block points to the reference frame Z in the deleted List1.
- the first target reference frame is the reference frame X and the second target reference frame is the reference frame Z. Then, the current block can be decoded according to the first target reference frame and the second target reference frame.
- the coding and decoding method can be applied to the decoding end, and the method can include:
- FIG. 6 is a schematic flowchart of the encoding and decoding method proposed in the embodiment of this application.
- the encoding and decoding method can be applied to the encoding end or the decoding end.
- the method may include:
- Step 601 Obtain a reference frame configuration of the current frame where the current block is located.
- the reference frame configuration includes at least two reference frame lists, and the at least two reference frame lists may include a first reference frame list and a second reference frame list.
- the at least two reference frame lists may also include reference frame lists other than the first reference frame list and the second reference frame list, which is not limited.
- the frame type of the current frame in which the current block is located can be a B frame, because the B frame allows inter-blocks pointing to multiple Lists (reference frame lists) to exist at the same time, such as the inter prediction block pointing to List0 and the inter prediction block pointing to List1. Therefore, when the current frame where the current block is located is a B frame, the reference frame configuration of the current frame where the current block is located may include at least two reference frame lists. For the convenience of description, take two reference frame lists as an example Be explained. The two reference frame lists can be List0 and List1.
- the first reference frame list is one of the at least two reference frame lists
- the second reference frame list is at least The other of the two reference frame lists.
- the first reference frame list is List0 and the second reference frame list is List1; or, the first reference frame list is List1 and the second reference frame list is List0.
- the current block may be a bidirectional block, that is, when there are two reference frame lists in the current block, one target reference frame is selected from the two reference frame lists, that is, two target reference frames are selected.
- Step 602 Construct a reference frame combination list according to the first reference frame list and the second reference frame list, where the reference frame combination list includes multiple reference frame combinations that are not repeated; each reference frame combination includes existing in the first reference frame list The reference frame and the reference frame existing in the second reference frame list.
- Constructing a reference frame combination list according to the first reference frame list and the second reference frame list may include: traversing the reference frame combinations in the first reference frame list and the second reference frame list; if there are two reference frame combinations that are repeated, then Select a target reference frame combination that needs to be deleted from the two reference frame combinations, and delete the target reference frame combination; and add all the reference frame combinations that have not been deleted to the reference frame combination list.
- the reference frame combination list includes reference frame combination (8 20), reference frame combination (8 16 ), reference frame combination (8), reference frame combination (4 20), reference frame combination (4 16), reference frame combination (4 8), reference frame combination (0 20), reference frame combination (0 16), Reference frame combination (0 8).
- the POC of the current frame is 12
- It can traverse all reference frame combinations of List0 and List1, such as reference frame combination (8 16), reference frame combination (8 8), reference frame combination (8 4), reference frame combination (4 16), reference frame combination (4 8) ), reference frame combination (4 4), reference frame combination (0 16), reference frame combination (0 8), reference frame combination (0 4).
- the reference frame combination (8 4) and the reference frame combination (4 8) are repeated. Therefore, one reference frame combination (8) is deleted from the reference frame combination (8 4) and the reference frame combination (4 8).
- the reference frame combination list includes test frame combination (8 16), reference frame combination (8 8), reference frame combination (4 16) , Reference frame combination (4 8), reference frame combination (4 4), reference frame combination (0 16), reference frame combination (0 8), reference frame combination (0 4).
- Step 603 Select the target reference frame combination from the reference frame combination list.
- the rate-distortion cost corresponding to each reference frame combination in the reference frame combination list can be determined, which is not limited. Then, the reference frame combination with the least rate-distortion cost can be used as the target reference frame combination. In this way, the reference frame of the target reference frame combination in the first reference frame list is the first target reference frame, and the reference frame of the target reference frame combination in the second reference frame list is the second target reference frame.
- Step 604 Encode or decode the current block according to the target reference frame combination.
- the current block can be encoded according to the target reference frame combination (that is, the first target reference frame and the second target reference frame).
- the current block can be decoded according to the target reference frame combination (that is, the first target reference frame and the second target reference frame).
- the reference frames in the at least two reference frame lists can be deleted, thereby reducing syntax redundancy and improving coding performance. Avoiding the occurrence of syntax redundancy in the bidirectional prediction block can improve the coding performance gain.
- FIG. 7A it is a structural diagram of a coding and decoding device.
- the coding and decoding device can be applied to the coding end or the decoding end.
- the device includes: an obtaining module 711 for obtaining the reference frame configuration of the current frame where the current block is located.
- the reference frame configuration includes at least two reference frame lists;
- the processing module 712 is configured to perform deduplication processing on the at least two reference frame lists if there are duplicate reference frames in the at least two reference frame lists to obtain A list of duplicated reference frames;
- the encoding and decoding module 713 is configured to encode or decode the current block according to the list of deduplicated reference frames.
- the at least two reference frame lists include a first reference frame list and a second reference frame list; the first reference frame list is one of the at least two reference frame lists, and the second reference frame list is the at least two reference frame lists.
- the other one in the reference frame list; the processing module 712 performs deduplication processing on the at least two reference frame lists, and when the deduplicated reference frame list is obtained, it is specifically used to: keep the information in the first reference frame list The reference frame remains unchanged, and the reference frames in the second reference frame list that are duplicated in the first reference frame list are removed to obtain the second reference frame list after deduplication.
- the codec module 713 decodes the current block according to the reference frame list after deduplication, it is specifically used to: obtain first indication information and second indication information; wherein, The first indication information is used to indicate the target reference frame list, and the second indication information is used to indicate the index value of the target reference frame; if the target reference frame list determined according to the first indication information is the deduplication Select the target reference frame corresponding to the index value from the reference frame list after deduplication according to the second indication information; decode the current block according to the target reference frame.
- FIG. 7B it is a structural diagram of an encoding and decoding apparatus, which can be applied to an encoding end or a decoding end.
- the apparatus includes: an acquisition module 721 for acquiring the reference frame configuration of the current frame where the current block is located.
- the reference frame configuration includes at least two reference frame lists; the at least two reference frame lists include a first reference frame list and a second reference frame list; the construction module 722 is configured to perform according to the first reference frame list and the The second reference frame list constructs a new reference frame list; the reference frames in the new reference frame list include at least one reference frame in the first reference frame list and/or at least one reference frame in the second reference frame list, so Any two reference frames in the new reference frame list are different; the encoding and decoding module 723 is configured to encode or decode the current block according to the new reference frame list.
- the codec module 723 decodes the current block according to the new reference frame list, it is specifically used to: obtain third indication information; wherein, the third indication information is used to indicate the target The index value of the reference frame; selecting a target reference frame corresponding to the index value from the new reference frame list according to the third indication information; and decoding the current block according to the target reference frame.
- FIG. 7C it is a structural diagram of a coding and decoding device, which can be applied to a decoding end, and the device includes: an obtaining module 731 for obtaining the reference frame configuration of the current frame where the current block is located, the reference frame The configuration includes at least two reference frame lists; wherein, the first reference frame list is one of the at least two reference frame lists, and the second reference frame list is the other of the at least two reference frame lists; selection module 732, configured to select the first target reference frame from the first reference frame list; the processing module 733, configured to perform deletion processing on the reference frames in the second reference frame list to obtain the processed second reference frame Frame list; the selection module 732 is also used to select a second target reference frame from the processed second reference frame list; the decoding module 734 is used to select a second target reference frame according to the first target reference frame and the second The target reference frame decodes the current block.
- an obtaining module 731 for obtaining the reference frame configuration of the current frame where the current block is located, the reference frame The configuration includes
- the processing module 733 performs deletion processing on the reference frames in the second reference frame list, and when the processed second reference frame list is obtained, it is specifically used to: if the first target reference frame exists in the second reference frame In the reference frame list, obtain fourth indication information, where the fourth indication information is used to indicate the second target reference frame in the second reference frame list and the first target reference frame in the first reference frame list Whether they are the same; if it is determined according to the fourth indication information that the second target reference frame in the second reference frame list is different from the first target reference frame in the first reference frame list, then the second reference frame The reference frames in the frame list are deleted and processed to obtain the processed second reference frame list.
- the processing module 733 performs deletion processing on the reference frames in the second reference frame list, and when the processed second reference frame list is obtained, it is specifically configured to: use the first reference frame in the second reference frame list.
- the target reference frame is deleted, and the processed second reference frame list is obtained.
- the processing module 733 performs deletion processing on the reference frames in the second reference frame list, and when the processed second reference frame list is obtained, it is specifically configured to: traverse the first reference frame list and the second reference frame list.
- the reference frame combination in the frame list if there are duplicate reference frame combinations, select a target reference frame combination to be deleted from the two reference frame combinations; if one reference frame in the target reference frame combination Is the first target reference frame, then another reference frame in the target reference frame combination is deleted from the second reference frame list to obtain a processed second reference frame list.
- the selection module 732 selects the second target reference frame from the processed second reference frame list, it is specifically used to: obtain fifth indication information; wherein, the fifth indication information is used to indicate the second target reference frame An index value in the processed second reference frame list; and selecting a second target reference frame corresponding to the index value from the processed second reference frame list according to the fifth indication information.
- FIG. 7D it is a structural diagram of an encoding and decoding device, which can be applied to the encoding end.
- the device includes: an acquiring module 741 for acquiring the reference frame configuration of the current frame where the current block is located, the reference frame The configuration includes at least two reference frame lists; wherein, the first reference frame list is one of the at least two reference frame lists, and the second reference frame list is the other of the at least two reference frame lists; selection module 742, configured to select a first target reference frame from the first reference frame list, and select a second target reference frame from the second reference frame list; the processing module 743, configured to compare the second reference frame The reference frames in the list are deleted and processed to obtain the processed second reference frame list; the encoding and decoding module 744 is configured to perform processing on the current block according to the first target reference frame and the second target reference frame coding.
- the processing module 743 performs deletion processing on the reference frames in the second reference frame list, and when the processed second reference frame list is obtained, it is specifically configured to: if the first target reference frame exists in the second reference frame In the reference frame list, and the second target reference frame is different from the first target reference frame, then the reference frames in the second reference frame list are deleted and processed to obtain the processed second reference frame list .
- the processing module 743 performs deletion processing on the reference frames in the second reference frame list, and when the processed second reference frame list is obtained, it is specifically configured to: use the first reference frame in the second reference frame list.
- the target reference frame is deleted, and the processed second reference frame list is obtained.
- the processing module 743 is further configured to encode fourth indication information if it is determined that the second target reference frame in the second reference frame list is different from the first target reference frame in the first reference frame list.
- the fourth indication information is used to indicate that the second target reference frame is different from the first target reference frame.
- the processing module 743 performs deletion processing on the reference frames in the second reference frame list, and when the processed second reference frame list is obtained, it is specifically configured to: traverse the first reference frame list and the second reference frame list.
- the reference frame combination in the frame list if there are duplicate reference frame combinations, select a target reference frame combination to be deleted from the two reference frame combinations; if one reference frame in the target reference frame combination Is the first target reference frame, then another reference frame in the target reference frame combination is deleted from the second reference frame list to obtain a processed second reference frame list.
- FIG. 7E it is a structural diagram of a coding and decoding device.
- the coding and decoding device can be applied to the coding end or the decoding end.
- the device includes: an obtaining module 751 for obtaining the reference frame configuration of the current frame where the current block is located.
- the reference frame configuration includes at least two reference frame lists; wherein, the first reference frame list is one of the at least two reference frame lists, and the second reference frame list is the other of the at least two reference frame lists
- Construction module 752 configured to construct a reference frame combination list according to the first reference frame list and the second reference frame list, the reference frame combination list includes multiple reference frame combinations that are not repeated; each reference frame combination Including reference frames existing in the first reference frame list and reference frames existing in the second reference frame list; a selection module 753, configured to select a target reference frame combination from the reference frame combination list;
- the decoding module 754 is configured to encode or decode the current block according to the target reference frame combination.
- the construction module 752 constructs a reference frame combination list according to the first reference frame list and the second reference frame list, it is specifically configured to: traverse the references in the first reference frame list and the second reference frame list Frame combination; if there are two reference frame combinations that overlap, select a target reference frame combination that needs to be deleted from the two reference frame combinations, and delete the target reference frame combination; The reference frame combination is added to the reference frame combination list.
- the schematic diagram of the hardware architecture of the device may be specifically shown in FIG. 8.
- the schematic diagram of the hardware architecture of the device may be specifically shown in FIG. 8.
- the machine-readable storage medium 82 stores machine executable instructions that can be executed by the processor 81; the processor 81 is used to execute the machine executable Instructions to implement the methods disclosed in the above examples of this application.
- the processor is used to execute machine executable instructions to implement the following steps:
- the reference frame configuration includes at least two reference frame lists; if there are duplicate reference frames in the at least two reference frame lists, perform the operation on the at least two reference frame lists Deduplication processing to obtain a reference frame list after deduplication; encoding the current block according to the reference frame list after deduplication; or,
- the reference frame configuration includes at least two reference frame lists; the at least two reference frame lists include a first reference frame list and a second reference frame list;
- the reference frame list and the second reference frame list construct a new reference frame list;
- the reference frames in the new reference frame list include at least one reference frame in the first reference frame list and/or the reference frame in the second reference frame list At least one reference frame, any two reference frames in the new reference frame list are different; encoding the current block according to the new reference frame list; or,
- the reference frame configuration includes at least two reference frame lists; wherein the first reference frame list is one of the at least two reference frame lists, and the second reference frame list is The other one of the at least two reference frame lists; select a first target reference frame from the first reference frame list, and select a second target reference frame from the second reference frame list; 2.
- the reference frames in the reference frame list are deleted and processed to obtain the processed second reference frame list; the current block is encoded according to the first target reference frame and the second target reference frame; or,
- the reference frame configuration includes at least two reference frame lists; wherein the first reference frame list is one of the at least two reference frame lists, and the second reference frame list is The other one of the at least two reference frame lists; constructing a reference frame combination list according to the first reference frame list and the second reference frame list, the reference frame combination list including multiple reference frame combinations that are not repeated
- Each reference frame combination includes a reference frame that exists in the first reference frame list and a reference frame that exists in the second reference frame list; selects a target reference frame combination from the reference frame combination list; according to The target reference frame combination encodes the current block.
- the schematic diagram of its hardware architecture can be specifically referred to as shown in FIG. 9. It includes: a processor 91 and a machine-readable storage medium 92, where: the machine-readable storage medium 92 stores machine executable instructions that can be executed by the processor 91; the processor 91 is used to execute the machine executable Instructions to implement the methods disclosed in the above examples of this application.
- the processor is used to execute machine executable instructions to implement the following steps:
- the reference frame configuration includes at least two reference frame lists; if there are duplicate reference frames in the at least two reference frame lists, perform the operation on the at least two reference frame lists Deduplication processing to obtain a reference frame list after deduplication; decoding the current block according to the reference frame list after deduplication; or,
- the reference frame configuration includes at least two reference frame lists; the at least two reference frame lists include a first reference frame list and a second reference frame list;
- the reference frame list and the second reference frame list construct a new reference frame list;
- the reference frames in the new reference frame list include at least one reference frame in the first reference frame list and/or the reference frame in the second reference frame list At least one reference frame, and any two reference frames in the new reference frame list are different;
- the current block is decoded according to the new reference frame list; or,
- the reference frame configuration includes at least two reference frame lists; wherein the first reference frame list is one of the at least two reference frame lists, and the second reference frame list is The other one of the at least two reference frame lists; select a first target reference frame from the first reference frame list; perform deletion processing on the reference frames in the second reference frame list to obtain the processed A second reference frame list; select a second target reference frame from the processed second reference frame list; decode the current block according to the first target reference frame and the second target reference frame; or ,
- the reference frame configuration includes at least two reference frame lists; wherein the first reference frame list is one of the at least two reference frame lists, and the second reference frame list is The other one of the at least two reference frame lists; constructing a reference frame combination list according to the first reference frame list and the second reference frame list, the reference frame combination list including multiple reference frame combinations that are not repeated
- Each reference frame combination includes a reference frame that exists in the first reference frame list and a reference frame that exists in the second reference frame list; selects a target reference frame combination from the reference frame combination list; according to The target reference frame combination decodes the current block.
- an embodiment of the present application also provides a machine-readable storage medium.
- the machine-readable storage medium stores several computer instructions.
- the present invention can be realized. Apply the method disclosed in the above example.
- the above-mentioned machine-readable storage medium may be any electronic, magnetic, optical or other physical storage device, and may contain or store information, such as executable instructions, data, and so on.
- the machine-readable storage medium may be: RAM (Radom Access Memory), volatile memory, non-volatile memory, flash memory, storage drives (such as hard drives), solid state drives, and any type of storage disk (Such as CD, DVD, etc.), or similar storage media, or a combination of them.
- a typical implementation device is a computer.
- the specific form of the computer can be a personal computer, a laptop computer, a cellular phone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email receiving and sending device, and a game control A console, a tablet computer, a wearable device, or a combination of any of these devices.
- the embodiments of the present application can be provided as methods, systems, or computer program products. Therefore, the present application may adopt the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware. Moreover, the embodiments of the present application may adopt the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program codes.
- a computer-usable storage media including but not limited to disk storage, CD-ROM, optical storage, etc.
- these computer program instructions can also be stored in a computer-readable memory that can guide a computer or other programmable data processing equipment to work in a specific manner, so that the instructions stored in the computer-readable memory produce an article of manufacture including the instruction device,
- the instruction device realizes the functions specified in one process or multiple processes in the flowchart and/or one block or multiple blocks in the block diagram.
- These computer program instructions can also be loaded on a computer or other programmable data processing equipment, so that a series of operation steps are executed on the computer or other programmable equipment to produce computer-implemented processing, so that the computer or other programmable equipment is executed
- the instructions provide steps for implementing functions specified in a flow or multiple flows in the flowchart and/or a block or multiple blocks in the block diagram.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请提供一种编解码方法、装置及其设备,该方法包括:获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;若至少两个参考帧列表存在重复的参考帧,对所述至少两个参考帧列表进行去重处理,得到去重后的参考帧列表;根据所述去重后的参考帧列表对所述当前块进行编码或者解码。通过本申请的技术方案,提高编码性能。
Description
本申请涉及编解码技术领域,尤其是涉及一种编解码方法、装置及其设备。
为了达到节约空间的目的,视频图像都是经过编码后才进行传输的,完整的视频编码方法可以包括预测、变换、量化、熵编码、滤波等过程。其中,预测编码可以包括帧内编码和帧间编码。帧间编码是利用视频时间域的相关性,使用邻近已编码图像的像素预测当前像素,以达到有效去除视频时域冗余的目的。此外,帧内编码是指利用视频空间域的相关性,使用当前帧图像的已经编码块的像素预测当前像素,以达到去除视频空域冗余的目的。
在当前块的帧间编码中,当前块可以对应两个参考帧列表。若当前块为单向块,则可以从两个参考帧列表中选择一个目标参考帧,并利用该目标参考帧对当前块进行编码或者解码。若当前块为双向块,则可以从两个参考帧列表中各选择一个目标参考帧,并利用两个目标参考帧对当前块进行编码或者解码。但是,无论是从两个参考帧列表中选择一个目标参考帧,还是从两个参考帧列表中各选择一个目标参考帧,均存在语法冗余、编码性能比较差等问题。
发明内容
本申请提供了一种编解码方法、装置及其设备,可以提高编码性能。
本申请提供一种编解码方法,所述方法包括:
获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;若所述至少两个参考帧列表存在重复的参考帧,则对所述至少两个参考帧列表进行去重处理,得到去重后的参考帧列表;根据所述去重后的参考帧列表对所述当前块进行编码或者解码。
本申请提供一种编解码方法,所述方法包括:
获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;所述至少两个参考帧列表包括第一参考帧列表和第二参考帧列表;根据所述第一参考帧列表和所述第二参考帧列表构建新参考帧列表;所述新参考帧列表中的参考帧包括第一参考帧列表中的至少一个参考帧、和/或第二参考帧列表中的至少一个参考帧,所述新参考帧列表中的任意两个参考帧不同;根据所述新参考帧列表对所述当前块进行编码或者解码。
本申请提供一种编解码方法,所述方法包括:
获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;第一参考帧列表为所述至少两个参考帧列表中的一个,第二参考帧列表为所述至少两个参考帧列表中的另一个;从所述第一参考帧列表中选择第一目标参考帧;对所述第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表;从所述处理后的第二参考帧列表中选择第二目标参考帧;根据所述第一目标参考帧和所述第二目标参考帧对所述当前块进行解码。
本申请提供一种编解码方法,所述方法包括:获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;其中,第一参考帧列表为所述至少两个参考帧列表中的一个,第二参考帧列表为所述至少两个参考帧列表中的另一个;从所述第一参考帧列表中选择第一目标参考帧,并从所述第二参考帧列表中选择第二目标参考帧;对所述第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表;根据所述第一目标参考帧和所述第二目标参考帧,对所述当前块进行编码。
本申请提供一种编解码方法,所述方法包括:
获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;其中,第一参考帧列表为所述至少两个参考帧列表中的一个,第二参考帧列表为所述至少两个参考帧列表中的另一个;根据所述第一参考帧列表和所述第二参考帧列表构建参考帧组合列表,所述参考帧组合列表包括不重复的多个参考帧组合;每个参考帧组合包括存在于所述第一参考帧列表中的参考帧和存在于所述第二参考帧列表中的参考帧;从所述参考帧组合列表中选择目标参考帧组合;根据所述目标参考帧组合对所述当前块进行编码或解码。
本申请提供一种编解码装置,所述装置包括:
获取模块,用于获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;处理模块,用于若所述至少两个参考帧列表存在重复的参考帧,则对所述至少两个参考帧列表进行去重处理,得到去重后的参考帧列表;编解码模块,用于根据所述去重后的参考帧列表对所述当前块进行编码或者解码。
本申请提供一种编解码装置,所述装置包括:
获取模块,用于获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;所述至少两个参考帧列表包括第一参考帧列表和第二参考帧列表;
构建模块,用于根据所述第一参考帧列表和所述第二参考帧列表构建新参考帧列表;所述新参考帧列表中的参考帧包括第一参考帧列表中的至少一个参考帧、和/或第二参考帧列表中的至少一个参考帧,所述新参考帧列表中的任意两个参考帧不同;
编解码模块,用于根据所述新参考帧列表对所述当前块进行编码或者解码。
本申请提供一种编解码装置,所述装置包括:获取模块,用于获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;其中,第一参考帧列表为所述至少两个参考帧列表中的一个,第二参考帧列表为所述至少两个参考帧列表中的另一个;选择模块,用于从所述第一参考帧列表中选择第一目标参考帧;处理模块,用于对所述第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表;所述选择模块,还用于从所述处理后的第二参考帧列表中选择第二目标参考帧;解码模块,用于根据所述第一目标参考帧和所述第二目标参考帧对所述当前块进行解码。
本申请提供一种编解码装置,所述装置包括:
获取模块,用于获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;其中,第一参考帧列表为所述至少两个参考帧列表中的一个,第二参考帧列表为所述至少两个参考帧列表中的另一个;选择模块,用于从所述第一参考帧列表中选择第一目标参考帧,并从所述第二参考帧列表中选择第二目标参考帧;处理模块,用于对所述第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表;编解码模块,用于根据所述第一目标参考帧和所述第二目标参考帧,对所述当前块进行编码。
本申请提供一种编解码装置,所述装置包括:
获取模块,用于获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;其中,第一参考帧列表为所述至少两个参考帧列表中的一个,第二参考帧列表为所述至少两个参考帧列表中的另一个;构建模块,用于根据所述第一参考帧列表和所述第二参考帧列表构建参考帧组合列表,所述参考帧组合列表包括不重复的多个参考帧组合;每个参考帧组合包括存在于所述第一参考帧列表中的参考帧和存在于所述第二参考帧列表中的参考帧;选择模块,用于从所述参考帧组合列表中选择目标参考帧组合;编解码模块,用于根据所述目标参考帧组合对所述当前块进行编码或解码。
本申请提供一种编码端设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;
所述处理器用于执行机器可执行指令,以实现如下步骤:
获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;若所述至少两个参考帧列表存在重复的参考帧,则对所述至少两个参考帧列表进行去重处理,得到去重后的参考帧列表;根据所述去重后的参考帧列表对所述当前块进行编码;或者,
获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;所述至少两个参考帧列表包括第一参考帧列表和第二参考帧列表;根据所述第一参考帧列表和所述第二参考帧列表构建新参考帧列表;所述新参考帧列表中的参考帧包括第一参考帧列表中的至少一个参考帧、和/或第二参考帧列表中的至少一个参考帧,所述新参考帧列表中的任意两个参考帧不同;根据所述新参考帧列表对所述当前块进行编码;或者,
获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;其中,第一参考帧列表为所述至少两个参考帧列表中的一个,第二参考帧列表为所述至少两个参考帧列表中的另一个;从所述第一参考帧列表中选择第一目标参考帧,并从所述第二参考帧列表中选择第二目标参考帧;对所述第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表;根据所述第一目标参考帧和所述第二目标参考帧,对所述当前块进行编码;或者,
获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;其中,第一参考帧列表为所述至少两个参考帧列表中的一个,第二参考帧列表为所述至少两个参考帧列表中的另一个;根据所述第一参考帧列表和所述第二参考帧列表构建参考帧组合列表,所述参考帧组合列表包括不重复的多个参考帧组合;每个参考帧组合包括存在于所述第一参考帧列表中的参考帧和存在于所述第二参考帧列表中的参考帧;从所述参考帧组合列表中选择目标参考帧组合;根据所述目标参考帧组合对所述当前块进行编码。
本申请提供一种解码端设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;
所述处理器用于执行机器可执行指令,以实现如下步骤:
获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;若所述至少两个参考帧列表存在重复的参考帧,则对所述至少两个参考帧列表进行去重处理,得到去重后的参考帧列表;根据所述去重后的参考帧列表对所述当前块进行解码;或者,
获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;所述至少两个参考帧列表包括第一参考帧列表和第二参考帧列表;根据所述第一参考帧列表和所述第二参考帧列表构建新参考帧列表;所述新参考帧列表中的参考帧包括第一参考帧列表中的至少一个参考帧、和/或第二参考帧列表中的至少一个参考帧,所述新参考帧列表中的任意两个参考帧不同;根据所述新参考帧列表对所述当前块进行解码;或者,
获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;其中,第一参考帧列表为所述至少两个参考帧列表中的一个,第二参考帧列表为所述至少两个参考帧列表中的另一个;从所述第一参考帧列表中选择第一目标参考帧;对所述第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表;从所述处理后的第二参考帧列表中选择第二目标参考帧;根据所述第一目标参考帧和所述第二目标参考帧对所述当前块进行解码;或者,
获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;其中,第一参考帧列表为所述至少两个参考帧列表中的一个,第二参考帧列表为所述至少两个参考帧列表中的另一个;根据所述第一参考帧列表和所述第二参考帧列表构建参考帧组合列表,所述参考帧组合列表包括不重复的多个参考帧组合;每个参考帧组合包括存在于所述第一参考帧列表中的参考帧和存在于所述第二参考帧列表中的参考帧;从所述参考帧组合列表中选择目标参考帧组合;根据所述目标参考帧组合对所述当前块进行解码。
由以上技术方案可见,本申请实施例中,针对当前块对应的两个参考帧列表,可以对至少两个参考帧列表进行去重处理,从而可以避免或者减少语法冗余,可以提高编码性能。避免单向预测块出现语法冗余,可以带来编码性能增益的提高。避免双向预测块出现语法冗余,可以带来编码性能增益的提高。
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。
图1是本申请一种实施方式中的视频编码框架的示意图;
图2是本申请一种实施方式中的编解码方法的流程图;
图3是本申请另一种实施方式中的编解码方法的流程图;
图4是本申请另一种实施方式中的编解码方法的流程图;
图5是本申请另一种实施方式中的编解码方法的流程图;
图6是本申请另一种实施方式中的编解码方法的流程图;
图7A-图7E是本申请一种实施方式中的编解码装置的结构图;
图8是本申请一种实施方式中的编码端设备的硬件结构图;
图9是本申请一种实施方式中的解码端设备的硬件结构图。
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本申请实施例中提出一种编解码方法,可以涉及如下概念:
帧内预测与帧间预测(intra prediction and inter prediction)技术:
帧内预测是指,利用视频空间域的相关性,使用当前图像已经编码块的像素预测当前像素,以达到去除视频空域冗余的目的。帧内预测中规定了多种预测模式,每一种预测模式都对应一种纹理方向(DC模式除外),当前块的预测像素由其预测方向上相邻块的边界重构像素值生成。举例说明,如果图像的纹理是呈现水平状排布的,那么选择水平预测模式可以更好的预测图像信息。
帧间预测是指,利用视频时域的相关性,由于视频序列通常有较强的时域相关性,使用邻近已编码图像像素预测当前图像的像素,可以达到有效去除视频时域冗余的目的。主要的视频编码标准帧间预测部分都采用了基于块的运动补偿技术,主要原理是为当前图像的每一个像素块在之前的已编码图像中寻找一个最佳匹配块,该过程称为运动估计(Motion Estimation,ME)。
率失真原则(Rate-Distortion Optimized):评价编码效率的有两大指标:码率和PSNR(Peak Signal to Noise Ratio,峰值信噪比),比特流越小,则压缩率越大,PSNR越大,则重建图像质量越好,在模式选择时,判别公式实质上也就是对二者的综合评价。例如,模式对应的代价:J(mode)=D+λ*R,其中,D表示Distortion(失真),通常使用SSE指标来进行衡量,SSE是指重建图像块与源图像的差值的均方和;λ是拉格朗日乘子,R就是该模式下图像块编码所需的实际比特数,包括编码模式信息、运动信息、残差等所需的比特总和。在模式选择时,若使用率失真原则 对编码模式做比较决策,可以保证编码性能最佳。
多假设预测(Multi-Hypothesis Predition):多假设预测是指对多个预测块加权得到最终预测块的技术。例如,在当前预测模式的预测像素基础上,叠加一个或多个新预测像素的模式,需要额外语法来表述的新的预测像素块的模式。
当前块的子块,本实施例中,当前块的子块可以是编码单元(Coding Unit,CU)或预测单元(Prediction Unit,PU)或编码块(Coding block)等。
视频编码框架:参见图1所示,可以使用视频编码框架实现本申请实施例的编码端处理流程,此外,视频解码框架的示意图与图1类似,在此不再重复赘述,而且,可以使用视频解码框架实现本申请实施例的解码端处理流程。具体的,在视频编码框架和视频解码框架中,可以包括帧内预测、运动估计/运动补偿、参考图像缓冲器、环内滤波、重建、变换、量化、反变换、反量化、熵编码器等模块。在编码端,通过这些模块之间的配合,可以实现编码端处理流程,在解码端,通过这些模块之间的配合,可以实现解码端处理流程。
在参考帧信息的编解码方案中,存在两类语法元素,这两类语法元素唯一标识了当前块的参考帧信息(即用于指示参考图像的信息)。第一类语法表示当前块指向的参考帧列表(如语法元素inter_pred_idc表示当前块指向的参考帧列表)。第二类语法表示指向的参考帧列表中的参考帧(如语法元素ref_idx_l0和ref_idx_l1表示指向的参考帧列表中的参考帧的索引值)。示例性的,当只存在一个参考帧列表时,则第一类语法的值隐式导出,即不需要显式传输第一类语法。示例性的,当某一个参考帧列表只存在一帧参考帧时,则指向该参考帧列表的第二类语法的值隐式导出,即不需要显式传输第二类语法。
在一个例子中,语法元素inter_pred_idc、语法元素ref_idx_l0和语法元素ref_idx_l1,可以采用二进制数值表示,也可以采用十进制数值表示,还可以采用八进制表示,对此不做限制。在后续实施例中,以采用二进制数值表示这些语法元素为例。
在一个例子中,若当前块为B帧单向块(即当前块存在两个参考帧列表,从两个参考帧列表中选择一个目标参考帧),则可能出现一种单向参考帧存在两种表达方式,也就是说,存在语法冗余、编码性能比较差等问题。
例如,若当前块所在当前帧的参考帧配置为:List0[0,8,16]和List1[8,16,24],则单向块指向参考帧8存在两种表达方式:一种表达方式是指向参考帧列表List0,取List0中的第二帧参考帧8,例如,通过语法元素inter_pred_idc=1和ref_idx_l0=1表示。另一种表达方式是指向参考帧列表List1,取List1中的第一帧参考帧8,例如,通过语法元素inter_pred_idc=10和ref_idx_l1=0表示。显然,上述两种表达均指示目标参考帧是参考帧8,也就是说,上述两种语法元素表示完全一致的参考帧信息,造成较大的语法冗余,影响编解码压缩性能,编码性能比较差。
针对上述发现,若当前块为B帧单向块,可以对当前的参考帧配置的编解码方法进行改进。例如,通过对参考帧去重操作来避免语法冗余的出现。所述去重操作包括:对List0和List1进行去重,也就是说,当参考帧同时存在于List0和List1时,保留List0中的该参考帧,剔除List1中的该参考帧,或者,保留List1中的该参考帧,剔除List0中的该参考帧。
例如,若当前块所在当前帧的参考帧配置为:List0[0,8,16]和List1[8,16,24],则所述去重操作包括:可以从List1中剔除参考帧8和参考帧16,即去重操作后的List1为[24]。显然,在此基础上,参考帧8只存在一种表达方式,即指向参考帧列表List0,取List0中的第二帧参考帧8,例如,可以通过语法元素inter_pred_idc=1和ref_idx_l0=1表示。由于只存在一种语法元素来表示参考帧信息,因此,避免语法冗余,提高编解码压缩性能,编码性能比较好。
在另一个例子中,若当前块为B帧双向块(即从当前块的两个参考帧列表中各选择一个目标参考帧,共选择两个目标参考帧),则可能出现一种双向参考帧组合存在两种表达方式,存在语法冗余、编码性能比较差等问题。
例如,若当前块所在当前帧的参考帧配置为:List0[0,8,16]和List1[8,16,24],则双向块指向参考帧组合(8 16)存在两种表达方式:一种表达方式是指向两个参考帧列表List0和List1,取List0中的第二帧参考帧8,取List1中的第二帧参考帧16,例如,可以通过语法元素inter_pred_idc=11,ref_idx_l0=1,ref_idx_l1=1表示。另一种表达方式是指向两个参考帧列表List0和List1,取List1中的第一帧参考帧8,取List0中的第三帧参考帧16,例如,可以通过语法元素inter_pred_idc=11,ref_idx_l0=10,ref_idx_l1=0表示。显然,上述两种表达均指示目标参考帧组合是参考帧组合(8 16),也就是说,上述两种语法元素表示完全一致的参考帧信息,从而造成较大的语法冗余,影响编解码压缩性能,编码性能比较差。
在上述示例中,参考帧0存在于List0,参考帧24存在于List1,即参考帧0和参考帧24只存在于一个参考帧列表中。参考帧8和参考帧16同时存在于List0和List1,即参考帧8和参考帧16同时存在于两个参考帧列表中。只存在于一个参考帧列表中的参考帧0和参考帧24,与同时存在于两个参考帧列表中的参考帧8和参考帧16没有分开编码,物理意义的混淆一定程度上影响了编解码效率。
针对上述发现,若当前块为B帧双向块,可以对当前块的参考帧配置的编解码方法进行改进。例如,通过对参考帧组合去重操作来避免语法冗余的出现,也就是说,同一种双向参考帧组合只允许出现一次。
例如,若当前块所在当前帧的参考帧配置为:List0[0,8,16]和List1[8,16,24],则所述对参考帧组合去重操作包括:针对参考帧组合(8 16)和参考帧组合(16 8),去除一个参考帧组合(16 8)。在此基础上,参考帧组合(8 16)只存在一种表达方式,即指向两个参考帧列表List0和List1,取List0中的第二帧参考帧8,取List1中的第二帧参考帧16,例如,通过语法元素inter_pred_idc=11,ref_idx_l0=1,ref_idx_l1=1表示。由于只存在一种语法元素来表示参考帧信息,因此,避免语法冗余,提高编解码压缩性能,编码性能比较好。
若当前块为B帧双向块,可以对当前的参考帧配置的编解码方法进行改进。例如,可以通过引入新的语法元素类来提高编解码效率,所述新的语法元素类包括:用以标识当前双向块的两个参考帧是否一致的语法元素。
例如,在上述示例中,参考帧0存在于List0,参考帧24存在于List1,也就是说,新的语法元素类用以标识参考帧0或者参考帧24只存在于一个参考帧列表中。参考帧8和参考帧16同时存在于List0和List1,也就是说,新的语法元素类用以标识参考帧8或者参考帧16存在于两个参考帧列表中。
综上所述,只存在于一个参考帧列表中的参考帧0和参考帧24,与同时存在于两个参考帧列表中的参考帧8和参考帧16分开编码,提高编解码效率。
在本实施例中,当前块可以使用单向运动信息进行预测,此时,可以将当前块称为单向块(或者称为单向预测块)。或者,当前块可以使用双向运动信息进行预测,此时,可以将当前块称为双向块(或者称为双向预测块)。
以下结合几个具体实施例,对上述编解码方法进行详细说明。
实施例1
参见图2所示,为本申请实施例中提出的编解码方法的流程示意图,该编解码方法可以应用于解码端或者编码端,该方法可以包括:
步骤201,获取当前块所在当前帧的参考帧配置,该参考帧配置包括至少两个参考帧列表,至少两个参考帧列表可以包括第一参考帧列表和第二参考帧列表。至少两个参考帧列表还可以包括除第一参考帧列表和第二参考帧列表之外的参考帧列表,对此不做限制。
在一个例子中,当前块所处当前帧的帧类型可以为B帧,由于B帧允许同时存在指向多个List(参考帧列表)的帧间块,如指向List0的帧间预测块和指向List1的帧间预测块,因此,在当前块所处当前帧为B帧时,当前块所在当前帧的参考帧配置可以包括至少两个参考帧列表,为了方便描述,以两个参考帧列表为例进行说明。这两个参考帧列表可以为List0和List1。
本实施例中,以至少两个参考帧列表包括第一参考帧列表和第二参考帧列表为例,第一参考帧列表为至少两个参考帧列表中的一个,第二参考帧列表为至少两个参考帧列表中的另一个。例如,第一参考帧列表是List0,第二参考帧列表是List1;或者,第一参考帧列表是List1,第二参考帧列表是List0。对于第一参考帧列表和第二参考帧列表均不做限制,只要第一参考帧列表是List0和List1中的其中一个,第二参考帧列表是List0和List1中的另一个即可。
在一个例子中,当前块可以为单向块,也就是说,在当前块存在两个参考帧列表时,可以从两个参考帧列表中选择一个目标参考帧。
步骤202,若至少两个参考帧列表存在重复的参考帧,则对至少两个参考帧列表进行去重处理,得到去重后的参考帧列表。例如,若第一参考帧列表和第二参考帧列表存在重复的参考帧,则可以对第一参考帧列表或者第二参考帧列表进行去重处理,得到去重后的第一参考帧列表或者第二参考帧列表。
在一个例子中,可以保持第一参考帧列表中的参考帧不变,并将第二参考帧列表中与第一参考帧列表中重复的参考帧去除,得到去重后的第二参考帧列表。或者,可以保持第二参考帧列表中的参考帧不变,并将第一参考帧列表中与第二参考帧列表中重复的参考帧去除,得到去重后的第一参考帧列表。
例如,当前帧POC(Picture Order Count,也被称为播放顺序)为12,当前帧的List0为POC=8,POC=4,POC=0共三帧,其List1为POC=20,POC=16,POC=8共三帧。在此基础上,可以将List1中与List0中重复的参考帧去除,也就是说,List0为POC=8,POC=4,POC=0共三帧,去重后的List1为POC=20,POC=16共两帧。或者,可以将List0中与List1中重复的参考帧去除,也就是说,去重后的List0为POC=4,POC=0共两帧,List1为POC=20,POC=16,POC=8共三帧。
在一个例子中,当前帧的参考帧配置包括第一参考帧列表和第二参考帧列表,当前帧的所有子块均对应该第一参考帧列表和该第二参考帧列表,当前块(即当前帧的一个子块)也对应该第一参考帧列表和该第二参考帧列表。
针对当前块,可以从当前帧的参考帧配置获取该第一参考帧列表和该第二参考帧列表。在此基础上,可以对该第一参考帧列表和该第二参考帧列表进行去重处理,得到去重后的参考帧列表。需要注意的是,去重后的参考帧列表只作用于当前块,而不作用于当前帧的其它子块。也就是说,对第一参考帧列表和第二参考帧列表进行去重处理,并不对当前帧的参考帧配置进行改动,即不修改参考帧配置中的第一参考帧列表和第二参考帧列表,在对当前帧的其它子块进行处理时,仍然使用参考帧配置中的第一参考帧列表和第二参考帧列表。
步骤203,根据去重后的参考帧列表对当前块进行编码或者解码。
在一个例子中,针对编码端来说,编码端可以根据去重后的参考帧列表对当前块进行编码,对此编码过程不做限制。针对解码端来说,解码端可以根据去重后的参考帧列表对当前块进行解码,对此解码过程不做限制。
由以上技术方案可见,针对当前块对应的两个参考帧列表,可以对至少两个参考帧列表进行去重处理,从而减少语法冗余,可以提高编码性能。避免单向预测块出现语法冗余,可以带来编码性能增益的提高。
实施例2
基于与上述实施例1同样的发明构思,本申请实施例中提出一种编解码方法,该编解码方法可以应用于编码端, 该编解码方法可以包括:
步骤a1、编码端获取当前块所在当前帧的参考帧配置,该参考帧配置包括第一参考帧列表和第二参考帧列表。例如,第一参考帧列表是List0,第二参考帧列表是List1;或者,第一参考帧列表是List1,第二参考帧列表是List0。
步骤a1的处理过程,可以参见步骤201,在此不再重复赘述。
步骤a2、若第一参考帧列表和第二参考帧列表存在重复的参考帧,则编码端保持第一参考帧列表中的参考帧不变,并将第二参考帧列表中与第一参考帧列表中重复的参考帧去除,得到去重后的第二参考帧列表。
步骤a2的处理过程,可以参见步骤202,在此不再重复赘述。
步骤a3、编码端根据去重后的第二参考帧列表对当前块进行编码。
在一个例子中,基于第一参考帧列表中的每个参考帧、去重后的第二参考帧列表中的每个参考帧,编码端确定每个参考帧对应的率失真代价,并确定率失真代价最小的参考帧,并将率失真代价最小的参考帧作为目标参考帧。
例如,第一参考帧列表为List0[8,4,0],去重后的第二参考帧列表为List1[20,16],若率失真代价最小的参考帧是参考帧20,则目标参考帧是参考帧20,且目标参考帧位于List1。因此,编码端对当前块进行编码时,编码比特流包括语法元素inter_pred_idc=10和语法元素ref_idx_l1=0。语法元素inter_pred_idc=10表示目标参考帧位于List1,ref_idx_l1=0表示目标参考帧是List1的第一帧参考帧。
示例性的,若去重前的第二参考帧列表为List1[8,16,20],且目标参考帧是参考帧20,则ref_idx_l1=10,表示目标参考帧是List1的第三帧参考帧。若去重后的第二参考帧列表为List1[16,20],且目标参考帧是参考帧20,则ref_idx_l1=1,表示目标参考帧是List1的第二帧参考帧。显然,经过去重处理,对于同一个目标参考帧(参考帧20),编码开销从2比特“10”降低为1比特“1”。
实施例3
基于与上述实施例1同样的发明构思,本申请实施例中提出一种编解码方法,该编解码方法可以应用于解码端,该编解码方法可以包括:
步骤b1、解码端获取当前块所在当前帧的参考帧配置,该参考帧配置包括第一参考帧列表和第二参考帧列表。例如,第一参考帧列表是List0,第二参考帧列表是List1;或者,第一参考帧列表是List1,第二参考帧列表是List0。
解码端可以从编码比特流中获取当前帧的参考帧配置,对此不做限制。
步骤b1的处理过程,可以参见步骤201,在此不再重复赘述。
步骤b2、若第一参考帧列表和第二参考帧列表存在重复的参考帧,则解码端保持第一参考帧列表中的参考帧不变,并将第二参考帧列表中与第一参考帧列表中重复的参考帧去除,得到去重后的第二参考帧列表。
步骤b2的处理过程,可以参见步骤202,在此不再重复赘述。
步骤b3、解码端根据去重后的第二参考帧列表对当前块进行解码。
在一个例子中,解码端可以获取第一指示信息和第二指示信息;该第一指示信息用于指示目标参考帧列表,该第二指示信息用于指示目标参考帧的索引值。然后,若根据该第一指示信息确定的目标参考帧列表是去重后的参考帧列表,则可以根据该第二指示信息从去重后的参考帧列表中选择与该索引值对应的目标参考帧;然后,可以根据目标参考帧对当前块进行解码。
在一个例子中,去重后的参考帧列表中参考帧的索引值会自适应更新,这样,可以节省索引值占用的码率。
例如,解码端在接收到编码端发送的编码比特流后,可以从该编码比特流中获取第一指示信息(如语法元素inter_pred_idc)和第二指示信息(如语法元素ref_idx_l1)。假设语法元素inter_pred_idc=10,则确定目标参考帧列表是List1,即目标参考帧位于List1。假设语法元素ref_idx_l1=0,即目标参考帧的索引值为0,则确定目标参考帧是List1中与索引值0对应的参考帧,即第一帧参考帧。
假设第一参考帧列表为List0[8,4,0],去重后的第二参考帧列表为List1[20,16],则目标参考帧是List1中的第一帧参考帧,即目标参考帧是参考帧20。
实施例4
基于与上述实施例1同样的发明构思,本申请实施例中提出一种编解码方法,该编解码方法可以应用于解码端。解码端在接收到编码比特流后,根据编码比特流确定当前块(即单向帧间预测块)的参考帧列表,即第一参考帧列表和第二参考帧列表。然后,对第一参考帧列表和第二参考帧列表进行去重,对此去重方式不做限制。然后,基于去重后的参考帧列表进行解析流程。
实施例5
基于与上述实施例1同样的发明构思,本申请实施例中提出一种编解码方法,可以应用于解码端。解码端通过解析码流,得到当前块(即单向帧间预测块)的参考帧列表。然后,对参考帧列表进行去重操作。然后,基于去重后的参考帧列表,通过解析码流,确定当前块指向的参考帧列表(即目标参考帧列表)以及当前块指向的参考帧列表中的参考帧(即目标参考帧)。
对参考帧列表进行去重操作,包括:当前帧POC为12,当前帧的List0为POC=8,POC=4,POC=0共三帧,其List1为POC=20,POC=16,POC=8共三帧。在此基础上,可以将List1中与List0中重复的参考帧去除,也就是说,List0为POC=8,POC=4,POC=0共三帧,去重后的List1为POC=20,POC=16共两帧。或者,可以将List0中与List1中重复的参考帧去除,也就是说,去重后的List0为POC=4,POC=0共两帧,List1为POC=20,POC=16,POC=8共三帧。
实施例6
参见图3所示,为本申请实施例中提出的编解码方法的流程示意图,该编解码方法可以应用于解码端或者编码端,该方法可以包括:
步骤301,获取当前块所在当前帧的参考帧配置,该参考帧配置包括至少两个参考帧列表,至少两个参考帧列表包括第一参考帧列表和第二参考帧列表。
在一个例子中,当前块所处当前帧的帧类型可以为B帧,由于B帧允许同时存在指向多个List(参考帧列表)的帧间块,如指向List0的帧间预测块和指向List1的帧间预测块,因此,在当前块所处当前帧为B帧时,当前块所在当前帧的参考帧配置可以包括至少两个参考帧列表,为了方便描述,以两个参考帧列表为例进行说明。这两个参考帧列表可以为List0和List1。
本实施例中,以至少两个参考帧列表包括第一参考帧列表和第二参考帧列表为例,第一参考帧列表为至少两个参考帧列表中的一个,第二参考帧列表为至少两个参考帧列表中的另一个。例如,第一参考帧列表是List0,第二参考帧列表是List1;或者,第一参考帧列表是List1,第二参考帧列表是List0。对于第一参考帧列表和第二参考帧列表均不做限制,只要第一参考帧列表是List0和List1中的其中一个,第二参考帧列表是List0和List1中的另一个即可。
在一个例子中,当前块可以为单向块,也就是说,在当前块存在两个参考帧列表时,可以从两个参考帧列表中选择一个目标参考帧。
步骤302,根据第一参考帧列表和第二参考帧列表构建新参考帧列表;新参考帧列表中的参考帧包括第一参考帧列表中的至少一个参考帧、和/或第二参考帧列表中的至少一个参考帧,新参考帧列表中的任意两个参考帧不同。
在一个例子中,可以将第一参考帧列表中的所有参考帧添加到新参考帧列表,将第二参考帧列表中的所有参考帧添加到新参考帧列表。然后,确定新参考帧列表中是否存在相同的参考帧,如果存在相同的两个参考帧,则只保留所述两个参考帧中的一个,将所述两个参考帧中的另一个从新参考帧列表中删除。
在另一个例子中,可以将第一参考帧列表中的所有参考帧添加到新参考帧列表。然后,针对第二参考帧列表中的每个参考帧,判断新参考帧列表中是否存在该参考帧;如果不存在,则可以将该参考帧添加到新参考帧列表;如果存在,不将该参考帧添加到新参考帧列表。或者,可以将第二参考帧列表中的所有参考帧添加到新参考帧列表。然后,针对第一参考帧列表中的每个参考帧,判断新参考帧列表中是否存在该参考帧;如果不存在,则可以将该参考帧添加到新参考帧列表;如果存在,不将该参考帧添加到新参考帧列表。
在另一个例子中,可以将第一参考帧列表中的M个(如1个)参考帧添加到新参考帧列表,并将第二参考帧列表中的N个(如1个)参考帧添加到新参考帧列表。然后,再将第一参考帧列表中的M个参考帧添加到新参考帧列表,并将第二参考帧列表中的N个参考帧添加到新参考帧列表,以此类推。
在另一个例子中,可以将第一参考帧列表中的参考帧和第二参考帧列表中的参考帧,依次添加到新参考帧列表。
在将第一参考帧列表/第二参考帧列表中的每个参考帧添加到新参考帧列表时,先判断新参考帧列表中是否存在该参考帧;如果不存在,则可以将该参考帧添加到新参考帧列表;如果存在,不将该参考帧添加到新参考帧列表。
例如,当前帧POC(播放顺序)为12,当前帧的List0为POC=8,POC=4,POC=0共三帧,其List1为POC=20,POC=16,POC=8共三帧。在此基础上,则新参考帧列表为POC=8,POC=4,POC=0,POC=20,POC=16共五帧。
在一个例子中,当前帧的参考帧配置包括第一参考帧列表和第二参考帧列表,当前帧的所有子块均对应该第一参考帧列表和该第二参考帧列表,当前块(即当前帧的一个子块)也对应该第一参考帧列表和该第二参考帧列表。针对当前块,可以从当前帧的参考帧配置获取该第一参考帧列表和该第二参考帧列表。在此基础上,可以根据该第一参考帧列表和该第二参考帧列表构造新参考帧列表。需要注意的是,新参考帧列表只作用于当前块,而不作用于当前帧的其它子块。也就是说,不对当前帧的参考帧配置进行改动,在对当前帧的其它子块进行处理时,仍然使用参考帧配置中的第一参考帧列表和第二参考帧列表。
步骤303,根据新参考帧列表对当前块进行编码或者解码。
在一个例子中,针对编码端来说,所述编码端可以根据新参考帧列表对当前块进行编码,对此编码过程不做限制。针对解码端来说,所述解码端可以根据新参考帧列表对当前块进行解码,对此解码过程不做限制。
由以上技术方案可见,针对当前块对应的两个参考帧列表,根据这两个参考帧列表构造新参考帧列表,从而减少语法冗余,可以提高编码性能。避免单向预测块出现语法冗余,可以带来编码性能增益的提高。
实施例7
基于与上述实施例6同样的发明构思,本申请实施例中提出一种编解码方法,该编解码方法可以应用于编码端, 该编解码方法可以包括:
步骤c1、编码端获取当前块所在当前帧的参考帧配置,该参考帧配置包括第一参考帧列表和第二参考帧列表。例如,第一参考帧列表是List0,第二参考帧列表是List1;或者,第一参考帧列表是List1,第二参考帧列表是List0。
步骤c2、编码端根据第一参考帧列表和第二参考帧列表构建新参考帧列表;新参考帧列表中的参考帧包括第一参考帧列表中的至少一个参考帧、和/或第二参考帧列表中的至少一个参考帧,新参考帧列表中的任意两个参考帧不同。
步骤c3、编码端根据新参考帧列表对当前块进行编码。
在一个例子中,基于新参考帧列表中的每个参考帧,编码端确定每个参考帧对应的率失真代价,并将率失真代价最小的参考帧作为目标参考帧。
例如,新参考帧列表为[8,4,0,20,16],若率失真代价最小的参考帧是参考帧20,则目标参考帧是参考帧20。编码端对当前块进行编码时,编码比特流可以包括语法元素ref_idx_l1=11,可以不包括语法元素inter_pred_idc,也就是说,目标参考帧列表可以隐式输出(即目标参考帧列表是新参考帧列表),语法元素ref_idx_l1=11表示目标参考帧是新参考帧列表的第四帧参考帧。
在一个例子中,可以通过语法元素ref_idx_l1=11表示指示信息,例如,指示信息用于指示目标参考帧在新参考帧列表中的索引值11,索引值11表示目标参考帧是新参考帧列表的第四帧参考帧。
实施例8
基于与上述实施例6同样的发明构思,本申请实施例中提出一种编解码方法,该编解码方法可以应用于解码端,该编解码方法可以包括:
步骤d1、解码端获取当前块所在当前帧的参考帧配置,该参考帧配置包括第一参考帧列表和第二参考帧列表。例如,第一参考帧列表是List0,第二参考帧列表是List1;或者,第一参考帧列表是List1,第二参考帧列表是List0。
步骤d2、解码端根据第一参考帧列表和第二参考帧列表构建新参考帧列表;新参考帧列表中的参考帧包括第一参考帧列表中的至少一个参考帧、和/或第二参考帧列表中的至少一个参考帧,新参考帧列表中的任意两个参考帧不同。
步骤d3、解码端根据新参考帧列表对当前块进行解码。
在一个例子中,解码端可以获取来自编码端的第三指示信息,该第三指示信息用于指示目标参考帧的索引值;根据该第三指示信息从新参考帧列表中选择与该索引值对应的目标参考帧;根据该目标参考帧对当前块进行解码。
例如,解码端在接收到编码端发送的编码比特流后,可以从该编码比特流中获取指示信息(如语法元素ref_idx_l1)。由于未携带语法元素inter_pred_idc,因此,确定目标参考帧列表是新参考帧列表。假设语法元素ref_idx_l1=11,即目标参考帧的索引值为4,则确定目标参考帧是新参考帧列表中与索引值4对应的参考帧,即第四帧参考帧。假设新参考帧列表为[8,4,0,20,16],则目标参考帧是新参考帧列表中的第四帧参考帧,也就是说,目标参考帧是参考帧20。
实施例9
基于与上述实施例6同样的发明构思,本申请实施例中提出一种编解码方法,可以应用于解码端。解码端通过解析码流,得到当前块(即单向帧间预测块)的参考帧列表。然后,通过对参考帧列表进行去重操作,得到新参考帧列表(记为list2)。基于新参考帧列表list2,通过解析码流,确定当前块指向新参考帧列表list2中的参考帧(即目标参考帧)。
对参考帧列表进行去重操作,可以包括:当前帧POC为12,当前帧的List0为POC=8,POC=4,POC=0共三帧,当前帧的List1为POC=20,POC=16,POC=8共三帧。在此基础上,去重后的List2为POC=20,POC=16,POC=8,POC=4,POC=0共五帧,这些参考帧的顺序可变,对此顺序不做限制。
实施例10
参见图4所示,为本申请实施例中提出的编解码方法的流程示意图,该编解码方法可以应用于编码端,该方法可以包括以下步骤:
步骤401,获取当前块所在当前帧的参考帧配置,该参考帧配置包括至少两个参考帧列表,至少两个参考帧列表可以包括第一参考帧列表和第二参考帧列表。至少两个参考帧列表还可以包括除第一参考帧列表和第二参考帧列表之外的参考帧列表,对此不做限制。
在一个例子中,当前块所处当前帧的帧类型可以为B帧,由于B帧允许同时存在指向多个List(参考帧列表)的帧间块,如指向List0的帧间预测块和指向List1的帧间预测块,因此,在当前块所处当前帧为B帧时,当前块所在当前帧的参考帧配置可以包括至少两个参考帧列表,为了方便描述,以两个参考帧列表为例进行说明。这两个参考帧列表可以为List0和List1。
本实施例中,以至少两个参考帧列表包括第一参考帧列表和第二参考帧列表为例,第一参考帧列表为至少两个参考帧列表中的一个,第二参考帧列表为至少两个参考帧列表中的另一个。例如,第一参考帧列表是List0,第二参 考帧列表是List1;或者,第一参考帧列表是List1,第二参考帧列表是List0。对于第一参考帧列表和第二参考帧列表均不做限制,只要第一参考帧列表是List0和List1中的其中一个,第二参考帧列表是List0和List1中的另一个即可。
在一个例子中,当前块可以为双向块,即,在当前块存在两个参考帧列表时,从两个参考帧列表中各选择一个目标参考帧,即选择两个目标参考帧。
步骤402,从第一参考帧列表中选择与当前块对应的第一目标参考帧,并从第二参考帧列表中选择与当前块对应的第二目标参考帧。
例如,可以遍历第一参考帧列表与第二参考帧列表的所有参考帧组合,并确定每个参考帧组合对应的率失真代价,对此率失真代价的确定方式不做限制。然后,可以将率失真代价最小的参考帧组合作为目标参考帧组合。这样,可以将目标参考帧组合在第一参考帧列表中的参考帧作为第一目标参考帧,可以将目标参考帧组合在第二参考帧列表中的参考帧作为第二目标参考帧。
例如,当前帧POC为12,List0为POC=8,POC=4,POC=0共三帧,List1为POC=20,POC=16,POC=8共三帧,遍历List0和List1的所有参考帧组合,如参考帧组合(8 20)、参考帧组合(8 16)、参考帧组合(8 8)、参考帧组合(4 20)、参考帧组合(4 16)、参考帧组合(4 8)、参考帧组合(0 20)、参考帧组合(0 16)、参考帧组合(0 8)。然后,确定每个参考帧组合对应的率失真代价,假设参考帧组合(8 20)的率失真代价最小,则参考帧组合(8 20)为目标参考帧组合。参考帧组合(8 20)在第一参考帧列表中的参考帧8作为第一目标参考帧,在第二参考帧列表中的参考帧20作为第二目标参考帧。
步骤403,对第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表。
在一个例子中,对第二参考帧列表中的参考帧进行删减处理(即删除第二参考帧列表的某个参考帧),得到处理后的第二参考帧列表,包括但不限于:
方式一、若第一目标参考帧存在于第二参考帧列表中,且第二目标参考帧与第一目标参考帧不同,则对第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表,例如,将第二参考帧列表中的第一目标参考帧(即第二参考帧列表中与第一目标参考帧相同的参考帧)删减,得到处理后的第二参考帧列表。
示例性的,从第一参考帧列表中确定第一目标参考帧,从第二参考帧列表中确定第二目标参考帧后,判断第二参考帧列表中是否存在第一目标参考帧。如果不存在第一目标参考帧,则不再对第二参考帧列表中的参考帧进行删减处理。如果存在第一目标参考帧,判断第二参考帧列表中的第二目标参考帧与第一参考帧列表中的第一目标参考帧是否相同。如果第二目标参考帧与第一目标参考帧相同,则不再对第二参考帧列表中的参考帧进行删减处理。如果第二目标参考帧与第一目标参考帧不同,则对第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表。
例如,当前帧POC为12,当前帧的List0为POC=8,POC=4,POC=0共三帧,当前帧的List1为POC=20,POC=16,POC=8共三帧,假设第一目标参考帧为List0中的参考帧4,第二目标参考帧为List1中的参参考帧8,由于List1中不存在第一目标参考帧(即参考帧4),因此,不再对List1中的参考帧进行删减处理。
又例如,假设第一目标参考帧为参考帧8,第二目标参考帧为参考帧8,由于List1中存在第一目标参考帧(即参考帧8),且第二目标参考帧(即参考帧8)与第一目标参考帧相同,因此,可以不再对List1中的参考帧进行删减处理。
又例如,假设第一目标参考帧为参考帧8,第二目标参考帧为参考帧20,由于List1中存在第一目标参考帧(即参考帧8),且第二目标参考帧(即参考帧20)与第一目标参考帧不同,因此,可以对List1中的参考帧进行删减处理。
在对List1中的参考帧进行删减处理时,由于第一目标参考帧为参考帧8,第二目标参考帧为参考帧20,因此,将List1中的与第一目标参考帧相同的参考帧(即参考帧8)删减,得到处理后的List1,处理后的List1为POC=20,POC=16共两帧。
在一个例子中,若确定第二参考帧列表中的第二目标参考帧与第一参考帧列表中的第一目标参考帧不同,则编码端还可以编码第四指示信息,所述第四指示信息用于指示第二目标参考帧与第一目标参考帧不同。
方式二、遍历第一参考帧列表与第二参考帧列表中的参考帧组合;若存在两个参考帧组合重复,则从所述两个参考帧组合中选择一个需要删减的目标参考帧组合。若目标参考帧组合中的一个参考帧为第一目标参考帧,则将目标参考帧组合中的另一个参考帧从第二参考帧列表中删减,得到处理后的第二参考帧列表。
在方式二中,不需要限定第一目标参考帧存在于第二参考帧列表中,也不需要限定第二目标参考帧与第一目标参考帧不同。
在编码端的处理过程中,若存在两个参考帧组合重复,在从第二参考帧列表中选择第二目标参考帧时,是从删减处理后的第二参考帧列表中选择第二目标参考帧。即,在遍历第一参考帧列表与第二参考帧列表的所有参考帧组合时,是遍历第一参考帧列表与删减处理后的第二参考帧列表的所有参考帧组合。
例如,当前帧POC为12,List0为POC=8,POC=4,POC=0共三帧,List1为POC=20,POC=16,POC=8共三帧,则可以遍历List0和List1的所有参考帧组合,如参考帧组合(8 20)、参考帧组合(8 16)、参考帧组合(8 8)、 参考帧组合(4 20)、参考帧组合(4 16)、参考帧组合(4 8)、参考帧组合(0 20)、参考帧组合(0 16)、参考帧组合(0 8)。在上述所有的参考帧组合中,由于不存在两个参考帧组合重复,因此,不需要删减一个参考帧组合。
又例如,当前帧POC为12,List0为POC=8,POC=4,POC=0共三帧,List1为POC=16,POC=8,POC=4共三帧,则可以遍历List0和List1的所有参考帧组合,如参考帧组合(8 16)、参考帧组合(8 8)、参考帧组合(8 4)、参考帧组合(4 16)、参考帧组合(4 8)、参考帧组合(4 4)、参考帧组合(0 16)、参考帧组合(0 8)、参考帧组合(0 4)。在所有参考帧组合中,参考帧组合(8 4)与参考帧组合(4 8)重复,即参考帧组合(8 4)和参考帧组合(4 8)均包括参考帧8和参考帧4,因此参考帧组合(8 4)与参考帧组合(4 8)重复。
然后,从参考帧组合(8 4)和参考帧组合(4 8)中选择一个需要删减的参考帧组合,将这个参考帧组合作为目标参考帧组合,例如,将参考帧组合(8 4)作为目标参考帧组合,或者,将参考帧组合(4 8)作为目标参考帧组合,对此选择方式不做限制,只要编码端的选择策略与解码端的选择策略相同即可。
然后,假设目标参考帧组合为参考帧组合(8 4),第一目标参考帧为List0的POC=8,由于参考帧组合(8 4)中的一个参考帧8为List0的第一目标参考帧,因此,可以将参考帧组合(8 4)中的另一个参考帧4从List1中删减,得到处理后的List1,也就是说,处理后的List1为POC=16,POC=8。
在一个例子中,当前帧的参考帧配置包括第一参考帧列表和第二参考帧列表,当前帧的所有子块均对应该第一参考帧列表和该第二参考帧列表,当前块(即当前帧的一个子块)也对应该第一参考帧列表和该第二参考帧列表。
针对当前块,可以从当前帧的参考帧配置获取该第一参考帧列表和该第二参考帧列表。在此基础上,可以对第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表。需要注意的是,处理后的参考帧列表只作用于当前块,而不作用于当前帧的其它子块。也就是说,对第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表时,并不对当前帧的参考帧配置进行改动,即不修改参考帧配置中的第一参考帧列表和第二参考帧列表,在对当前帧的其它子块进行处理时,仍然使用参考帧配置中的第一参考帧列表和第二参考帧列表。
步骤404,根据第一目标参考帧和第二目标参考帧,对当前块进行编码。
例如,编码端根据第一目标参考帧在第一参考帧列表中的索引值和第二目标参考帧在处理后的第二参考帧列表中的索引值,对当前块进行编码。
在一个例子中,在对第二参考帧列表中的参考帧进行删减处理后,处理后的第二参考帧列表中的剩余参考帧的索引值会更新,也就是说,第二目标参考帧在处理后的第二参考帧列表中的索引值,是更新后的索引值。
例如,第一参考帧列表为List0[8,4,0],处理后的第二参考帧列表为List1[20,16],假设第一目标参考帧为参考帧8,第二目标参考帧为参考帧20,则编码端对当前块进行编码时,编码比特流包括语法元素inter_pred_idc=11,ref_idx_l0=0,ref_idx_l1=0。inter_pred_idc=11表示目标参考帧列表为List0和List1。ref_idx_l0=0(第一目标参考帧在第一参考帧列表中的索引值)表示第一目标参考帧为List0中的第一帧参考帧,即参考帧8。ref_idx_l1=0(第二目标参考帧在处理后的第二参考帧列表中的索引值)表示第二目标参考帧为List1中的第一帧参考帧,即参考帧20。
示例性的,若处理前的第二参考帧列表为List1[8,16,20],且第二目标参考帧是参考帧20,则ref_idx_l1=10,表示第二目标参考帧是List1的第三帧参考帧。若处理后的第二参考帧列表为List1[16,20],且第二目标参考帧是参考帧20,则ref_idx_l1=1,表示第二目标参考帧是List1的第二帧参考帧。显然,经过删减处理,对于同一个第二目标参考帧(参考帧20),编码开销有所降低。
由以上技术方案可见,针对当前块对应的两个参考帧列表,可以对至少两个参考帧列表中的参考帧进行删减处理,从而减少语法冗余,可以提高编码性能。避免双向预测块出现语法冗余,可以带来编码性能增益的提高。
实施例11
基于与实施例10同样的发明构思,本申请实施例中提出另一种编解码方法,该编解码方法可以应用于编码端,该方法可以包括以下步骤:
步骤e1,编码端获取当前块所在当前帧的参考帧配置,该参考帧配置包括至少两个参考帧列表,至少两个参考帧列表包括第一参考帧列表和第二参考帧列表。
步骤e2,编码端从第一参考帧列表中选择与当前块对应的第一目标参考帧,并从第二参考帧列表中选择与当前块对应的第二目标参考帧。
步骤e3,编码端判断第一目标参考帧是否存在于第二参考帧列表中,如果是,则执行步骤e4,如果否,则不需要执行后续的删减处理,在此不再赘述。
步骤e4,编码端判断第二目标参考帧与第一目标参考帧是否不同,如果是,则执行步骤e5,如果否,则不需要执行后续的删减处理,在此不再赘述。
步骤e5,编码端对第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表,例如,可以将第二参考帧列表中的第一目标参考帧(即第二参考帧列表中与第一目标参考帧相同的参考帧)删减,得到处理后的第二参考帧列表。
步骤e6,编码端根据第一目标参考帧和第二目标参考帧,对当前块进行编码。例如,编码端根据第一目标参考帧在第一参考帧列表中的索引值和第二目标参考帧在处理后的第二参考帧列表中的索引值,对当前块进行编码。
实施例12
基于与实施例10同样的发明构思,本申请实施例中提出另一种编解码方法,该编解码方法可以应用于编码端,该方法可以包括以下步骤:
步骤f1,编码端获取当前块所在当前帧的参考帧配置,该参考帧配置包括至少两个参考帧列表,至少两个参考帧列表包括第一参考帧列表和第二参考帧列表。至少两个参考帧列表还可以包括除第一参考帧列表和第二参考帧列表之外的参考帧列表,对此不做限制。
步骤f2,编码端从第一参考帧列表中选择与当前块对应的第一目标参考帧。
步骤f3,编码端遍历第一参考帧列表与第二参考帧列表中的参考帧组合;若存在两个参考帧组合重复,则从两个参考帧组合中选择一个需要删减的目标参考帧组合。若目标参考帧组合中的一个参考帧为第一目标参考帧,则将目标参考帧组合中的另一个参考帧从第二参考帧列表中删减,得到处理后的第二参考帧列表。
步骤f4,编码端从处理后的第二参考帧列表中选择第二目标参考帧。
步骤f5,编码端根据第一目标参考帧和第二目标参考帧对当前块进行编码。
实施例13
参见图5所示,为本申请实施例中提出的编解码方法的流程示意图,该编解码方法可以应用于解码端,该方法可以包括以下步骤:
步骤501,获取当前块所在当前帧的参考帧配置,该参考帧配置包括至少两个参考帧列表,至少两个参考帧列表可以包括第一参考帧列表和第二参考帧列表。至少两个参考帧列表还可以包括除第一参考帧列表和第二参考帧列表之外的参考帧列表,对此不做限制。
在一个例子中,当前块所处当前帧的帧类型可以为B帧,由于B帧允许同时存在指向多个List(参考帧列表)的帧间块,如指向List0的帧间预测块和指向List1的帧间预测块,因此,在当前块所处当前帧为B帧时,当前块所在当前帧的参考帧配置可以包括至少两个参考帧列表,为了方便描述,以两个参考帧列表为例进行说明。这两个参考帧列表可以为List0和List1。
本实施例中,以至少两个参考帧列表包括第一参考帧列表和第二参考帧列表为例,第一参考帧列表为至少两个参考帧列表中的一个,第二参考帧列表为至少两个参考帧列表中的另一个。例如,第一参考帧列表是List0,第二参考帧列表是List1;或者,第一参考帧列表是List1,第二参考帧列表是List0。对于第一参考帧列表和第二参考帧列表均不做限制,只要第一参考帧列表是List0和List1中的其中一个,第二参考帧列表是List0和List1中的另一个即可。
在一个例子中,当前块可以为双向块,即,在当前块存在两个参考帧列表时,从两个参考帧列表中各选择一个目标参考帧,即选择两个目标参考帧。
步骤502,从第一参考帧列表中选择第一目标参考帧。
例如,解码端可以获取编码比特流,该编码比特流可以包括第六指示信息,该第六指示信息用于指示第一目标参考帧在第一参考帧列表中的索引值。基于此,基于所述第六指示信息,解码端可以从第一参考帧列表中选择与该索引值对应的参考帧,并将与该索引值对应的参考帧确定为第一目标参考帧。
步骤503,对第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表。
在一个例子中,对第二参考帧列表中的参考帧进行删减处理(即删除第二参考帧列表的某个参考帧),得到处理后的第二参考帧列表,包括但不限于:
方式一、若第一目标参考帧存在于第二参考帧列表中,且第二目标参考帧与第一目标参考帧不同,则对第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表,例如,将第二参考帧列表中的第一目标参考帧(即第二参考帧列表中与第一目标参考帧相同的参考帧)删减,得到处理后的第二参考帧列表。
在一个例子中,解码端可以获取第四指示信息,例如,解码端可以从编码比特流中获取第四指示信息。第四指示信息用于指示第二参考帧列表中的第二目标参考帧与第一参考帧列表中的第一目标参考帧是否相同。若根据第四指示信息确定第二参考帧列表中的第二目标参考帧与第一参考帧列表中的第一目标参考帧不同,则对第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表。若根据第四指示信息确定第二参考帧列表中的第二目标参考帧与第一参考帧列表中的第一目标参考帧相同,则不对第二参考帧列表中的参考帧进行删减处理。
综上所述,解码端判断第二参考帧列表中是否存在第一目标参考帧。如果不存在第一目标参考帧,则不再对第二参考帧列表中的参考帧进行删减处理。如果存在第一目标参考帧,则判断第二参考帧列表中的第二目标参考帧与第一参考帧列表中的第一目标参考帧是否相同(即基于第四指示信息判断第二目标参考帧与第一目标参考帧是否相同)。如果第二目标参考帧与第一目标参考帧相同,则不再对第二参考帧列表中的参考帧进行删减处理。如果第二目标参考帧与第一目标参考帧不同,则对第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表。
例如,当前帧POC为12,List0为POC=8,POC=4,POC=0,List1为POC=20,POC=16,POC=8共三帧,假设第一目标参考帧为List0中的参考帧4,由于List1中不存在第一目标参考帧(即参考帧4),因此,不对List1中的参考帧进行删减处理。假设第一目标参考帧为参考帧8,且第四指示信息用于指示第二目标参考帧与第一目标参 考帧相同,则不对List1中的参考帧进行删减处理。假设第一目标参考帧为参考帧8,且第四指示信息用于指示第二目标参考帧与第一目标参考帧不同,则对List1中的参考帧进行删减处理。在对List1中的参考帧进行删减处理时,由于第一目标参考帧为参考帧8,因此,将List1中的与第一目标参考帧相同的参考帧(即参考帧8)删减,得到处理后的List1,处理后的List1为POC=20,POC=16共两帧。
方式二、遍历第一参考帧列表与第二参考帧列表中的参考帧组合;若存在两个参考帧组合重复,则从所述两个参考帧组合中选择一个需要删减的目标参考帧组合。若目标参考帧组合中的一个参考帧为第一目标参考帧,则将目标参考帧组合中的另一个参考帧从第二参考帧列表中删减,得到处理后的第二参考帧列表。
在方式二中,不需要限定第一目标参考帧存在于第二参考帧列表中,也不需要限定第二目标参考帧与第一目标参考帧不同。
例如,当前帧POC为12,List0为POC=8,POC=4,POC=0共三帧,List1为POC=16,POC=8,POC=4共三帧,则可以遍历List0和List1的所有参考帧组合,如参考帧组合(8 16)、参考帧组合(8 8)、参考帧组合(8 4)、参考帧组合(4 16)、参考帧组合(4 8)、参考帧组合(4 4)、参考帧组合(0 16)、参考帧组合(0 8)、参考帧组合(0 4)。在所有参考帧组合中,参考帧组合(8 4)与参考帧组合(4 8)重复,即参考帧组合(8 4)和参考帧组合(4 8)均包括参考帧8和参考帧4,因此参考帧组合(8 4)与参考帧组合(4 8)重复。
然后,从参考帧组合(8 4)和参考帧组合(4 8)中选择一个需要删减的参考帧组合,将这个参考帧组合作为目标参考帧组合,例如,将参考帧组合(8 4)作为目标参考帧组合,或者,将参考帧组合(4 8)作为目标参考帧组合,对此选择方式不做限制,只要编码端的选择策略与解码端的选择策略相同即可。
然后,假设目标参考帧组合为参考帧组合(8 4),第一目标参考帧为List0的POC=8,由于参考帧组合(8 4)中的一个参考帧8为List0的第一目标参考帧,因此,可以将参考帧组合(8 4)中的另一个参考帧4从List1中删减,得到处理后的List1,也就是说,处理后的List1为POC=16,POC=8。
在一个例子中,当前帧的参考帧配置包括第一参考帧列表和第二参考帧列表,当前帧的所有子块均对应该第一参考帧列表和该第二参考帧列表,当前块(即当前帧的一个子块)也对应该第一参考帧列表和该第二参考帧列表。
针对当前块,可以从当前帧的参考帧配置获取该第一参考帧列表和该第二参考帧列表。在此基础上,可以对第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表。需要注意的是,处理后的参考帧列表只作用于当前块,而不作用于当前帧的其它子块。也就是说,对第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表时,并不对当前帧的参考帧配置进行改动,即不修改参考帧配置中的第一参考帧列表和第二参考帧列表,在对当前帧的其它子块进行处理时,仍然使用参考帧配置中的第一参考帧列表和第二参考帧列表。
步骤504,从处理后的第二参考帧列表中选择第二目标参考帧。
在一个例子中,解码端可以获取第五指示信息,例如,从编码端比特流中获取第五指示信息,该第五指示信息用于指示第二目标参考帧在处理后的第二参考帧列表中的索引值;然后,可以根据第五指示信息从处理后的第二参考帧列表中选择与该索引值对应的参考帧,这个参考帧就是第二目标参考帧。
例如,第一参考帧列表为List0[8,4,0],处理后的第二参考帧列表为List1[20,16],编码端对当前块进行编码时,编码比特流包括语法元素inter_pred_idc=11,ref_idx_l0=0,ref_idx_l1=0。基于inter_pred_idc=11,确定目标参考帧列表为List0和List1。基于ref_idx_l0=0(第一目标参考帧在第一参考帧列表中的索引值),确定第一目标参考帧为List0中的第一帧参考帧,即参考帧8,这个确定过程是步骤502。基于ref_idx_l1=0(第二目标参考帧在第二参考帧列表中的索引值),确定第二目标参考帧为List1中的第一帧参考帧,即参考帧20,即步骤504。
步骤505,根据第一目标参考帧和第二目标参考帧对当前块进行解码。
由以上技术方案可见,针对当前块对应的两个参考帧列表,可以对至少两个参考帧列表中的参考帧进行删减处理,从而减少语法冗余,可以提高编码性能。避免双向预测块出现语法冗余,可以带来编码性能增益的提高。
实施例14
基于与实施例13同样的发明构思,本申请实施例中提出另一种编解码方法,该编解码方法可以应用于解码端,该方法可以包括以下步骤:
步骤g1,解码端获取当前块所在当前帧的参考帧配置,该参考帧配置包括至少两个参考帧列表,至少两个参考帧列表包括第一参考帧列表和第二参考帧列表。
步骤g2,解码端从第一参考帧列表中选择与当前块对应的第一目标参考帧。
步骤g3,解码端判断第一目标参考帧是否存在于第二参考帧列表中,如果是,则执行步骤g4,如果否,则不需要执行后续的删减处理,在此不再赘述。
步骤g4,解码端判断第二目标参考帧与第一目标参考帧是否不同,如果是,则执行步骤g5,如果否,则不需要执行后续的删减处理,在此不再赘述。
例如,解码端可以获取第四指示信息,第四指示信息用于指示第二目标参考帧与第一目标参考帧是否相同。基于第四指示信息,解码端可以确定第二目标参考帧与第一目标参考帧是否不同,如果是,则执行步骤g5。
步骤g5,解码端对第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表,例如,可以将第 二参考帧列表中的第一目标参考帧(即第二参考帧列表中与第一目标参考帧相同的参考帧)删减,得到处理后的第二参考帧列表。
步骤g6,解码端从处理后第二参考帧列表中选择第二目标参考帧。
步骤g7,解码端根据第一目标参考帧和第二目标参考帧对当前块进行解码。
实施例15
基于与实施例13同样的发明构思,本申请实施例中提出另一种编解码方法,该编解码方法可以应用于解码端,该方法可以包括以下步骤:
步骤h1,解码端获取当前块所在当前帧的参考帧配置,该参考帧配置包括至少两个参考帧列表,至少两个参考帧列表包括第一参考帧列表和第二参考帧列表。
步骤h2,解码端从第一参考帧列表中选择与当前块对应的第一目标参考帧。
步骤h3,解码端遍历第一参考帧列表与第二参考帧列表中的参考帧组合;若存在两个参考帧组合重复,则从两个参考帧组合中选择一个需要删减的目标参考帧组合。若目标参考帧组合中的一个参考帧为第一目标参考帧,则将目标参考帧组合中的另一个参考帧从第二参考帧列表中删减,得到处理后的第二参考帧列表。
步骤h4,解码端从处理后第二参考帧列表中选择第二目标参考帧。
步骤h5,解码端根据第一目标参考帧和第二目标参考帧对当前块进行解码。
实施例16
基于与实施例13同样的发明构思,本申请实施例中提出另一种编解码方法,该编解码方法可以应用于解码端,该方法可以包括以下步骤:
根据编码比特流确定双向帧间预测块(即当前块)的参考帧列表。
解析语法元素X,得到当前块指向参考帧列表List0中的参考帧X。
若参考帧X(即第一目标参考帧)存在于List1,则解析语法元素Y,得到当前块是否指向同一帧(即第二目标参考帧与第一目标参考帧是否相同)。
若当前块指向同一帧(即第二目标参考帧与第一目标参考帧相同),则不进行后续步骤。若当前块指向不同帧,则对参考帧列表List1进行删减。
解析语法元素Z,得到当前块指向删减后的List1中的参考帧Z。
若参考帧X(即第一目标参考帧)不存在于List1,则正常解析即可。
综上所述,可以得到第一目标参考帧为参考帧X,第二目标参考帧为参考帧Z,然后,可以根据第一目标参考帧和第二目标参考帧对当前块进行解码。
实施例17
基于与实施例16同样的发明构思,本申请实施例中提出另一种编解码方法,该编解码方法可以应用于解码端,该方法可以包括:
当前帧POC(播放顺序)为12,当前帧的List0为POC=8,POC=4,POC=0共三帧,当前帧的List1为POC=20,POC=16,POC=8共三帧。若List0中的参考帧X=8,由于参考帧8同时存在于List1中,所以需要解析语法元素Y。
若语法元素Y=1,表示当前双向块指向同一帧参考帧,即指向List1中的参考帧8。若语法元素Y=0,表示当前双向块指向不同的参考帧,因此,需要对List1进行删减操作,一种可行的删减方法为:首先,去除List1中的参考帧8,然后,去除已经出现过的参考帧组合,在本例子中,未出现已经出现过的参考帧组合,因此,删减后的List1可以为POC=20,POC=16共两帧。
然后,解析语法元素Z,得到双向帧间预测块指向删减后的List1中的参考帧Z;若语法元素Z=0,则当前双向块指向删减后的List1中的参考帧20;若语法元素Z=1,则当前双向块指向删减后的List1中的参考帧16。
在另一个例子中,若List0中的参考帧X=4或者X=0,由于参考帧X=4或者X=0不存在与List1中,后续正常解析即可,在此不再赘述。
实施例18
参见图6所示,为本申请实施例中提出的编解码方法的流程示意图,该编解码方法可以应用于编码端或者解码端,该方法可以包括:
步骤601,获取当前块所在当前帧的参考帧配置,该参考帧配置包括至少两个参考帧列表,至少两个参考帧列表可以包括第一参考帧列表和第二参考帧列表。至少两个参考帧列表还可以包括除第一参考帧列表和第二参考帧列表之外的参考帧列表,对此不做限制。
在一个例子中,当前块所处当前帧的帧类型可以为B帧,由于B帧允许同时存在指向多个List(参考帧列表) 的帧间块,如指向List0的帧间预测块和指向List1的帧间预测块,因此,在当前块所处当前帧为B帧时,当前块所在当前帧的参考帧配置可以包括至少两个参考帧列表,为了方便描述,以两个参考帧列表为例进行说明。这两个参考帧列表可以为List0和List1。
本实施例中,以至少两个参考帧列表包括第一参考帧列表和第二参考帧列表为例,第一参考帧列表为至少两个参考帧列表中的一个,第二参考帧列表为至少两个参考帧列表中的另一个。例如,第一参考帧列表是List0,第二参考帧列表是List1;或者,第一参考帧列表是List1,第二参考帧列表是List0。对于第一参考帧列表和第二参考帧列表均不做限制,只要第一参考帧列表是List0和List1中的其中一个,第二参考帧列表是List0和List1中的另一个即可。
在一个例子中,当前块可以为双向块,即,在当前块存在两个参考帧列表时,从两个参考帧列表中各选择一个目标参考帧,即选择两个目标参考帧。
步骤602,根据第一参考帧列表和第二参考帧列表构建参考帧组合列表,该参考帧组合列表包括不重复的多个参考帧组合;每个参考帧组合包括存在于第一参考帧列表中的参考帧和存在于第二参考帧列表中的参考帧。
根据第一参考帧列表和第二参考帧列表构建参考帧组合列表,可以包括:遍历第一参考帧列表与第二参考帧列表中的参考帧组合;若存在两个参考帧组合重复,则从所述两个参考帧组合中选择一个需要删减的目标参考帧组合,删减目标参考帧组合;将未被删减的所有参考帧组合添加到参考帧组合列表。
例如,当前帧POC为12,当前帧的List0为POC=8,POC=4,POC=0共三帧,当前帧的List1为POC=20,POC=16,POC=8共三帧,则可以遍历List0和List1的所有参考帧组合,如参考帧组合(8 20)、参考帧组合(8 16)、参考帧组合(8 8)、参考帧组合(4 20)、参考帧组合(4 16)、参考帧组合(4 8)、参考帧组合(0 20)、参考帧组合(016)、参考帧组合(0 8)。由于不存在两个参考帧组合重复,因此,可以将所有参考帧组合均添加到参考帧组合列表中,也就是说,参考帧组合列表包括参考帧组合(8 20)、参考帧组合(8 16)、参考帧组合(8 8)、参考帧组合(4 20)、参考帧组合(4 16)、参考帧组合(4 8)、参考帧组合(0 20)、参考帧组合(0 16)、参考帧组合(0 8)。
又例如,当前帧POC为12,当前帧的List0为POC=8,POC=4,POC=0共三帧,当前帧的List1为POC=16,POC=8,POC=4共三帧,则可以遍历List0和List1的所有参考帧组合,如参考帧组合(8 16)、参考帧组合(8 8)、参考帧组合(8 4)、参考帧组合(4 16)、参考帧组合(4 8)、参考帧组合(4 4)、参考帧组合(0 16)、参考帧组合(0 8)、参考帧组合(0 4)。在所有参考帧组合中,参考帧组合(8 4)与参考帧组合(4 8)重复,因此,从参考帧组合(8 4)和参考帧组合(4 8)中删减一个参考帧组合(8 4),将未被删减的所有参考帧组合添加到参考帧组合列表,如参考帧组合列表包括考帧组合(8 16)、参考帧组合(8 8)、参考帧组合(4 16)、参考帧组合(4 8)、参考帧组合(4 4)、参考帧组合(0 16)、参考帧组合(0 8)、参考帧组合(0 4)。
步骤603,从参考帧组合列表中选择目标参考帧组合。
例如,可以确定参考帧组合列表中的每个参考帧组合对应的率失真代价,对此不做限制。然后,可以将率失真代价最小的参考帧组合作为目标参考帧组合。这样,目标参考帧组合在第一参考帧列表中的参考帧为第一目标参考帧,目标参考帧组合在第二参考帧列表中的参考帧为第二目标参考帧。
步骤604,根据目标参考帧组合对当前块进行编码或解码。
例如,针对编码端来说,可以根据目标参考帧组合(即第一目标参考帧和第二目标参考帧)对当前块进行编码。针对解码端来说,可以根据目标参考帧组合(即第一目标参考帧和第二目标参考帧)对当前块进行解码。
由以上技术方案可见,针对当前块对应的两个参考帧列表,可以对至少两个参考帧列表中的参考帧进行删减处理,从而减少语法冗余,可以提高编码性能。避免双向预测块出现语法冗余,可以带来编码性能增益的提高。
实施例19
基于与上述方法同样的发明构思,本申请实施例中还提出一种编解码装置。
参见图7A所示,为编解码装置的结构图,该编解码装置可以应用于编码端或者解码端,所述装置包括:获取模块711,用于获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;处理模块712,用于若所述至少两个参考帧列表存在重复的参考帧,则对所述至少两个参考帧列表进行去重处理,得到去重后的参考帧列表;编解码模块713,用于根据所述去重后的参考帧列表对所述当前块进行编码或者解码。
所述至少两个参考帧列表包括第一参考帧列表和第二参考帧列表;第一参考帧列表为所述至少两个参考帧列表中的一个,第二参考帧列表为所述至少两个参考帧列表中的另一个;所述处理模块712对所述至少两个参考帧列表进行去重处理,得到去重后的参考帧列表时具体用于:保持所述第一参考帧列表中的参考帧不变,并将所述第二参考帧列表中与所述第一参考帧列表中重复的参考帧去除,得到去重后的第二参考帧列表。
若所述装置应用于解码端,所述编解码模块713根据所述去重后的参考帧列表对所述当前块进行解码时具体用于:获取第一指示信息和第二指示信息;其中,所述第一指示信息用于指示目标参考帧列表,所述第二指示信息用于指示目标参考帧的索引值;若根据所述第一指示信息确定的目标参考帧列表是所述去重后的参考帧列表,则根据所述第二指示信息从所述去重后的参考帧列表中选择与所述索引值对应的目标参考帧;根据所述目标参考帧对所述当前块进行解码。
参见图7B所示,为编解码装置的结构图,该编解码装置可以应用于编码端或者解码端,所述装置包括:获取 模块721,用于获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;所述至少两个参考帧列表包括第一参考帧列表和第二参考帧列表;构建模块722,用于根据所述第一参考帧列表和所述第二参考帧列表构建新参考帧列表;所述新参考帧列表中的参考帧包括第一参考帧列表中的至少一个参考帧、和/或第二参考帧列表中的至少一个参考帧,所述新参考帧列表中的任意两个参考帧不同;编解码模块723,用于根据所述新参考帧列表对所述当前块进行编码或者解码。
若所述装置应用于解码端,所述编解码模块723根据新参考帧列表对所述当前块进行解码时具体用于:获取第三指示信息;其中,所述第三指示信息用于指示目标参考帧的索引值;根据所述第三指示信息从所述新参考帧列表中选择与所述索引值对应的目标参考帧;根据所述目标参考帧对所述当前块进行解码。
参见图7C所示,为编解码装置的结构图,该编解码装置可以应用于解码端,所述装置包括:获取模块731,用于获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;其中,第一参考帧列表为所述至少两个参考帧列表中的一个,第二参考帧列表为所述至少两个参考帧列表中的另一个;选择模块732,用于从所述第一参考帧列表中选择第一目标参考帧;处理模块733,用于对所述第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表;所述选择模块732,还用于从所述处理后的第二参考帧列表中选择第二目标参考帧;解码模块734,用于根据所述第一目标参考帧和所述第二目标参考帧对所述当前块进行解码。
所述处理模块733对所述第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表时具体用于:若所述第一目标参考帧存在于所述第二参考帧列表中,则获取第四指示信息,所述第四指示信息用于指示所述第二参考帧列表中的第二目标参考帧与所述第一参考帧列表中的第一目标参考帧是否相同;若根据所述第四指示信息确定所述第二参考帧列表中的第二目标参考帧与所述第一参考帧列表中的第一目标参考帧不同,则对所述第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表。
所述处理模块733对所述第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表时具体用于:将所述第二参考帧列表中的所述第一目标参考帧删减,得到处理后的第二参考帧列表。
所述处理模块733对所述第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表时具体用于:遍历所述第一参考帧列表与所述第二参考帧列表中的参考帧组合;若存在两个参考帧组合重复,则从所述两个参考帧组合中选择一个需要删减的目标参考帧组合;若所述目标参考帧组合中的一个参考帧为所述第一目标参考帧,则将所述目标参考帧组合中的另一个参考帧从所述第二参考帧列表中删减,得到处理后的第二参考帧列表。
所述选择模块732从所述处理后的第二参考帧列表中选择第二目标参考帧时具体用于:获取第五指示信息;其中,所述第五指示信息用于指示第二目标参考帧在所述处理后的第二参考帧列表中的索引值;根据所述第五指示信息从所述处理后的第二参考帧列表中选择与所述索引值对应的第二目标参考帧。
参见图7D所示,为编解码装置的结构图,该编解码装置可以应用于编码端,所述装置包括:获取模块741,用于获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;其中,第一参考帧列表为所述至少两个参考帧列表中的一个,第二参考帧列表为所述至少两个参考帧列表中的另一个;选择模块742,用于从所述第一参考帧列表中选择第一目标参考帧,并从所述第二参考帧列表中选择第二目标参考帧;处理模块743,用于对所述第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表;编解码模块744,用于根据所述第一目标参考帧和所述第二目标参考帧,对所述当前块进行编码。
所述处理模块743对所述第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表时具体用于:若所述第一目标参考帧存在于所述第二参考帧列表中,且所述第二目标参考帧与所述第一目标参考帧不同,则对所述第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表。
所述处理模块743对所述第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表时具体用于:将所述第二参考帧列表中的所述第一目标参考帧删减,得到处理后的第二参考帧列表。
所述处理模块743还用于若确定所述第二参考帧列表中的第二目标参考帧与所述第一参考帧列表中的第一目标参考帧不同,则编码第四指示信息,所述第四指示信息用于指示所述第二目标参考帧与所述第一目标参考帧不同。
所述处理模块743对所述第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表时具体用于:遍历所述第一参考帧列表与所述第二参考帧列表中的参考帧组合;若存在两个参考帧组合重复,则从所述两个参考帧组合中选择一个需要删减的目标参考帧组合;若所述目标参考帧组合中的一个参考帧为所述第一目标参考帧,则将所述目标参考帧组合中的另一个参考帧从所述第二参考帧列表中删减,得到处理后的第二参考帧列表。
参见图7E所示,为编解码装置的结构图,该编解码装置可以应用于编码端或者解码端,所述装置包括:获取模块751,用于获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;其中,第一参考帧列表为所述至少两个参考帧列表中的一个,第二参考帧列表为所述至少两个参考帧列表中的另一个;构建模块752,用于根据所述第一参考帧列表和所述第二参考帧列表构建参考帧组合列表,所述参考帧组合列表包括不重复的多个参考帧组合;每个参考帧组合包括存在于所述第一参考帧列表中的参考帧和存在于所述第二参考帧列表中的参考帧;选择模块753,用于从所述参考帧组合列表中选择目标参考帧组合;编解码模块754,用于根据所述目标参考帧组合对所述当前块进行编码或解码。
所述构建模块752根据所述第一参考帧列表和所述第二参考帧列表构建参考帧组合列表时具体用于:遍历所述第一参考帧列表与所述第二参考帧列表中的参考帧组合;若存在两个参考帧组合重复,则从所述两个参考帧组合中选择一个需要删减的目标参考帧组合,并删减所述目标参考帧组合;将未被删减的所有参考帧组合添加到参考帧组 合列表。
实施例20
本申请实施例提供的编码端设备,从硬件层面而言,其硬件架构示意图具体可以参见图8所示。包括:处理器81和机器可读存储介质82,其中:所述机器可读存储介质82存储有能够被所述处理器81执行的机器可执行指令;所述处理器81用于执行机器可执行指令,以实现本申请上述示例公开的方法。
所述处理器用于执行机器可执行指令,以实现如下步骤:
获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;若所述至少两个参考帧列表存在重复的参考帧,则对所述至少两个参考帧列表进行去重处理,得到去重后的参考帧列表;根据所述去重后的参考帧列表对所述当前块进行编码;或者,
获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;所述至少两个参考帧列表包括第一参考帧列表和第二参考帧列表;根据所述第一参考帧列表和所述第二参考帧列表构建新参考帧列表;所述新参考帧列表中的参考帧包括第一参考帧列表中的至少一个参考帧、和/或第二参考帧列表中的至少一个参考帧,所述新参考帧列表中的任意两个参考帧不同;根据所述新参考帧列表对所述当前块进行编码;或者,
获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;其中,第一参考帧列表为所述至少两个参考帧列表中的一个,第二参考帧列表为所述至少两个参考帧列表中的另一个;从所述第一参考帧列表中选择第一目标参考帧,并从所述第二参考帧列表中选择第二目标参考帧;对所述第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表;根据所述第一目标参考帧和所述第二目标参考帧,对所述当前块进行编码;或者,
获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;其中,第一参考帧列表为所述至少两个参考帧列表中的一个,第二参考帧列表为所述至少两个参考帧列表中的另一个;根据所述第一参考帧列表和所述第二参考帧列表构建参考帧组合列表,所述参考帧组合列表包括不重复的多个参考帧组合;每个参考帧组合包括存在于所述第一参考帧列表中的参考帧和存在于所述第二参考帧列表中的参考帧;从所述参考帧组合列表中选择目标参考帧组合;根据所述目标参考帧组合对所述当前块进行编码。
实施例21
本申请实施例提供的解码端设备,从硬件层面而言,其硬件架构示意图具体可以参见图9所示。包括:处理器91和机器可读存储介质92,其中:所述机器可读存储介质92存储有能够被所述处理器91执行的机器可执行指令;所述处理器91用于执行机器可执行指令,以实现本申请上述示例公开的方法。
所述处理器用于执行机器可执行指令,以实现如下步骤:
获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;若所述至少两个参考帧列表存在重复的参考帧,则对所述至少两个参考帧列表进行去重处理,得到去重后的参考帧列表;根据所述去重后的参考帧列表对所述当前块进行解码;或者,
获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;所述至少两个参考帧列表包括第一参考帧列表和第二参考帧列表;根据所述第一参考帧列表和所述第二参考帧列表构建新参考帧列表;所述新参考帧列表中的参考帧包括第一参考帧列表中的至少一个参考帧、和/或第二参考帧列表中的至少一个参考帧,所述新参考帧列表中的任意两个参考帧不同;根据所述新参考帧列表对所述当前块进行解码;或者,
获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;其中,第一参考帧列表为所述至少两个参考帧列表中的一个,第二参考帧列表为所述至少两个参考帧列表中的另一个;从所述第一参考帧列表中选择第一目标参考帧;对所述第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表;从所述处理后的第二参考帧列表中选择第二目标参考帧;根据所述第一目标参考帧和所述第二目标参考帧对所述当前块进行解码;或者,
获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;其中,第一参考帧列表为所述至少两个参考帧列表中的一个,第二参考帧列表为所述至少两个参考帧列表中的另一个;根据所述第一参考帧列表和所述第二参考帧列表构建参考帧组合列表,所述参考帧组合列表包括不重复的多个参考帧组合;每个参考帧组合包括存在于所述第一参考帧列表中的参考帧和存在于所述第二参考帧列表中的参考帧;从所述参考帧组合列表中选择目标参考帧组合;根据所述目标参考帧组合对所述当前块进行解码。
基于与上述方法同样的发明构思,本申请实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被处理器执行时,能够实现本申请上述示例公开的方法。
其中,上述机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电 话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (24)
- 一种编解码方法,包括:获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;若所述至少两个参考帧列表存在重复的参考帧,则对所述至少两个参考帧列表进行去重处理,得到去重后的参考帧列表;根据所述去重后的参考帧列表对所述当前块进行编码或者解码。
- 根据权利要求1所述的方法,其中,所述至少两个参考帧列表包括第一参考帧列表和第二参考帧列表;第一参考帧列表为所述至少两个参考帧列表中的一个,第二参考帧列表为所述至少两个参考帧列表中的另一个;所述对所述至少两个参考帧列表进行去重处理,得到去重后的参考帧列表,包括:保持所述第一参考帧列表中的参考帧不变,并将所述第二参考帧列表中与所述第一参考帧列表中重复的参考帧去除,得到去重后的第二参考帧列表。
- 根据权利要求1所述的方法,其中,若所述方法应用于解码端,所述根据所述去重后的参考帧列表对所述当前块进行解码,包括:获取第一指示信息和第二指示信息;其中,所述第一指示信息用于指示目标参考帧列表,所述第二指示信息用于指示目标参考帧的索引值;若根据所述第一指示信息确定的目标参考帧列表是所述去重后的参考帧列表,则根据所述第二指示信息从所述去重后的参考帧列表中选择与所述索引值对应的目标参考帧;根据所述目标参考帧对所述当前块进行解码。
- 一种编解码方法,包括:获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;所述至少两个参考帧列表包括第一参考帧列表和第二参考帧列表;根据所述第一参考帧列表和所述第二参考帧列表构建新参考帧列表;所述新参考帧列表中的参考帧包括第一参考帧列表中的至少一个参考帧、和/或第二参考帧列表中的至少一个参考帧,所述新参考帧列表中的任意两个参考帧不同;根据所述新参考帧列表对所述当前块进行编码或者解码。
- 根据权利要求4所述的方法,其中,若所述方法应用于解码端,所述根据新参考帧列表对所述当前块进行解码,包括:获取第三指示信息;其中,所述第三指示信息用于指示目标参考帧的索引值;根据所述第三指示信息从所述新参考帧列表中选择与所述索引值对应的目标参考帧;根据所述目标参考帧对所述当前块进行解码。
- 一种编解码方法,包括:获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;其中,第一参考帧列表为所述至少两个参考帧列表中的一个,第二参考帧列表为所述至少两个参考帧列表中的另一个;从所述第一参考帧列表中选择第一目标参考帧;对所述第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表;从所述处理后的第二参考帧列表中选择第二目标参考帧;根据所述第一目标参考帧和所述第二目标参考帧对所述当前块进行解码。
- 根据权利要求6所述的方法,其中,对所述第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表,包括:若所述第一目标参考帧存在于所述第二参考帧列表中,则获取第四指示信息,所述第四指示信息用于指示所述第二参考帧列表中的第二目标参考帧与所述第一参考帧列表中的第一目标参考帧是否相同;若根据所述第四指示信息确定所述第二参考帧列表中的第二目标参考帧与所述第一参考帧列表中的第一目标参考帧不同,则对所述第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表。
- 根据权利要求7所述的方法,其中,对所述第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表,包括:将所述第二参考帧列表中的所述第一目标参考帧删减,得到处理后的第二参考帧列表。
- 根据权利要求6所述的方法,其中,对所述第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表,包括:遍历所述第一参考帧列表与所述第二参考帧列表中的参考帧组合;若存在两个参考帧组合重复,则从所述两个参考帧组合中选择一个需要删减的目标参考帧组合;若所述目标参考帧组合中的一个参考帧为所述第一目标参考帧,则将所述目标参考帧组合中的另一个参考帧从所述第二参考帧列表中删减,得到处理后的第二参考帧列表。
- 根据权利要求6所述的方法,其中,从所述处理后的第二参考帧列表中选择第二目标参考帧,包括:获取第五指示信息;其中,所述第五指示信息用于指示第二目标参考帧在所述处理后的第二参考帧列表中的索引值;根据所述第五指示信息从所述处理后的第二参考帧列表中选择与所述索引值对应的第二目标参考帧。
- 一种编解码方法,包括:获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;其中,第一参考帧列表为所述至少两个参考帧列表中的一个,第二参考帧列表为所述至少两个参考帧列表中的另一个;从所述第一参考帧列表中选择第一目标参考帧,并从所述第二参考帧列表中选择第二目标参考帧;对所述第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表;根据所述第一目标参考帧和所述第二目标参考帧,对所述当前块进行编码。
- 根据权利要求11所述的方法,其中,对所述第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表,包括:若所述第一目标参考帧存在于所述第二参考帧列表中,且所述第二目标参考帧与所述第一目标参考帧不同,则对所述第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表。
- 根据权利要求12所述的方法,其中,对所述第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表,包括:将所述第二参考帧列表中的所述第一目标参考帧删减,得到处理后的第二参考帧列表。
- 根据权利要求12所述的方法,还包括:若确定所述第二参考帧列表中的第二目标参考帧与所述第一参考帧列表中的第一目标参考帧不同,则编码第四指示信息,所述第四指示信息用于指示所述第二目标参考帧与所述第一目标参考帧不同。
- 根据权利要求11所述的方法,其中,对所述第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表,包括:遍历所述第一参考帧列表与所述第二参考帧列表中的参考帧组合;若存在两个参考帧组合重复,则从所述两个参考帧组合中选择一个需要删减的目标参考帧组合;若所述目标参考帧组合中的一个参考帧为所述第一目标参考帧,则将所述目标参考帧组合中的另一个参考帧从所述第二参考帧列表中删减,得到处理后的第二参考帧列表。
- 一种编解码方法,包括:获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;其中,第一参考帧列表为所述至少两个参考帧列表中的一个,第二参考帧列表为所述至少两个参考帧列表中的另一个;根据所述第一参考帧列表和所述第二参考帧列表构建参考帧组合列表,所述参考帧组合列表包括不重复的多个 参考帧组合;每个参考帧组合包括存在于所述第一参考帧列表中的参考帧和存在于所述第二参考帧列表中的参考帧;从所述参考帧组合列表中选择目标参考帧组合;根据所述目标参考帧组合对所述当前块进行编码或解码。
- 根据权利要求16所述的方法,其中,根据所述第一参考帧列表和所述第二参考帧列表构建参考帧组合列表,包括:遍历所述第一参考帧列表与所述第二参考帧列表中的参考帧组合;若存在两个参考帧组合重复,则从所述两个参考帧组合中选择一个需要删减的目标参考帧组合,并删减所述目标参考帧组合;将未被删减的所有参考帧组合添加到参考帧组合列表。
- 一种编解码装置,包括:获取模块,用于获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;处理模块,用于若所述至少两个参考帧列表存在重复的参考帧,则对所述至少两个参考帧列表进行去重处理,得到去重后的参考帧列表;编解码模块,用于根据所述去重后的参考帧列表对所述当前块进行编码或者解码。
- 一种编解码装置,包括:获取模块,用于获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;所述至少两个参考帧列表包括第一参考帧列表和第二参考帧列表;构建模块,用于根据所述第一参考帧列表和所述第二参考帧列表构建新参考帧列表;所述新参考帧列表中的参考帧包括第一参考帧列表中的至少一个参考帧、和/或第二参考帧列表中的至少一个参考帧,所述新参考帧列表中的任意两个参考帧不同;编解码模块,用于根据所述新参考帧列表对所述当前块进行编码或者解码。
- 一种编解码装置,包括:获取模块,用于获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;其中,第一参考帧列表为所述至少两个参考帧列表中的一个,第二参考帧列表为所述至少两个参考帧列表中的另一个;选择模块,用于从所述第一参考帧列表中选择第一目标参考帧;处理模块,用于对所述第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表;所述选择模块,还用于从所述处理后的第二参考帧列表中选择第二目标参考帧;解码模块,用于根据所述第一目标参考帧和所述第二目标参考帧对所述当前块进行解码。
- 一种编解码装置,包括:获取模块,用于获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;其中,第一参考帧列表为所述至少两个参考帧列表中的一个,第二参考帧列表为所述至少两个参考帧列表中的另一个;选择模块,用于从所述第一参考帧列表中选择第一目标参考帧,并从所述第二参考帧列表中选择第二目标参考帧;处理模块,用于对所述第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表;编解码模块,用于根据所述第一目标参考帧和所述第二目标参考帧,对所述当前块进行编码。
- 一种编解码装置,包括:获取模块,用于获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;其中,第一参考帧列表为所述至少两个参考帧列表中的一个,第二参考帧列表为所述至少两个参考帧列表中的另一个;构建模块,用于根据所述第一参考帧列表和所述第二参考帧列表构建参考帧组合列表,所述参考帧组合列表包括不重复的多个参考帧组合;每个参考帧组合包括存在于所述第一参考帧列表中的参考帧和存在于所述第二参考帧列表中的参考帧;选择模块,用于从所述参考帧组合列表中选择目标参考帧组合;编解码模块,用于根据所述目标参考帧组合对所述当前块进行编码或解码。
- 一种编码端设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现如下步骤:获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;若所述至少两个参考帧列表存在重复的参考帧,则对所述至少两个参考帧列表进行去重处理,得到去重后的参考帧列表;根据所述去重后的参考帧列表对所述当前块进行编码;或者,获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;所述至少两个参考帧列表包括第一参考帧列表和第二参考帧列表;根据所述第一参考帧列表和所述第二参考帧列表构建新参考帧列表;所述新参考帧列表中的参考帧包括第一参考帧列表中的至少一个参考帧、和/或第二参考帧列表中的至少一个参考帧,所述新参考帧列表中的任意两个参考帧不同;根据所述新参考帧列表对所述当前块进行编码;或者,获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;其中,第一参考帧列表为所述至少两个参考帧列表中的一个,第二参考帧列表为所述至少两个参考帧列表中的另一个;从所述第一参考帧列表中选择第一目标参考帧,并从所述第二参考帧列表中选择第二目标参考帧;对所述第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表;根据所述第一目标参考帧和所述第二目标参考帧,对所述当前块进行编码;或者,获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;其中,第一参考帧列表为所述至少两个参考帧列表中的一个,第二参考帧列表为所述至少两个参考帧列表中的另一个;根据所述第一参考帧列表和所述第二参考帧列表构建参考帧组合列表,所述参考帧组合列表包括不重复的多个参考帧组合;每个参考帧组合包括存在于所述第一参考帧列表中的参考帧和存在于所述第二参考帧列表中的参考帧;从所述参考帧组合列表中选择目标参考帧组合;根据所述目标参考帧组合对所述当前块进行编码。
- 一种解码端设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现如下步骤:获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;若所述至少两个参考帧列表存在重复的参考帧,则对所述至少两个参考帧列表进行去重处理,得到去重后的参考帧列表;根据所述去重后的参考帧列表对所述当前块进行解码;或者,获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;所述至少两个参考帧列表包括第一参考帧列表和第二参考帧列表;根据所述第一参考帧列表和所述第二参考帧列表构建新参考帧列表;所述新参考帧列表中的参考帧包括第一参考帧列表中的至少一个参考帧、和/或第二参考帧列表中的至少一个参考帧,所述新参考帧列表中的任意两个参考帧不同;根据所述新参考帧列表对所述当前块进行解码;或者,获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;其中,第一参考帧列表为所述至少两个参考帧列表中的一个,第二参考帧列表为所述至少两个参考帧列表中的另一个;从所述第一参考帧列表中选择第一目标参考帧;对所述第二参考帧列表中的参考帧进行删减处理,得到处理后的第二参考帧列表;从所述处理后的第二参考帧列表中选择第二目标参考帧;根据所述第一目标参考帧和所述第二目标参考帧对所述当前块进行解码;或者,获取当前块所在当前帧的参考帧配置,所述参考帧配置包括至少两个参考帧列表;其中,第一参考帧列表为所述至少两个参考帧列表中的一个,第二参考帧列表为所述至少两个参考帧列表中的另一个;根据所述第一参考帧列表和所述第二参考帧列表构建参考帧组合列表,所述参考帧组合列表包括不重复的多个参考帧组合;每个参考帧组合包括存在于所述第一参考帧列表中的参考帧和存在于所述第二参考帧列表中的参考帧;从所述参考帧组合列表中选择目标参考帧组合;根据所述目标参考帧组合对所述当前块进行解码。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201910204787.6A CN111726632B (zh) | 2019-03-18 | 2019-03-18 | 一种编解码方法、装置及其设备 |
| CN201910204787.6 | 2019-03-18 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2020187222A1 true WO2020187222A1 (zh) | 2020-09-24 |
Family
ID=72518973
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2020/079885 Ceased WO2020187222A1 (zh) | 2019-03-18 | 2020-03-18 | 一种编解码方法、装置及其设备 |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN111726632B (zh) |
| WO (1) | WO2020187222A1 (zh) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112770179B (zh) * | 2021-01-05 | 2023-06-16 | 武汉球之道科技有限公司 | 一种用于在线赛事转播的高效传输系统 |
| CN119728987A (zh) * | 2023-09-26 | 2025-03-28 | 杭州海康威视数字技术股份有限公司 | 解码方法、编码方法、装置、设备及存储介质 |
Citations (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20130003848A1 (en) * | 2011-06-29 | 2013-01-03 | Toshiyasu Sugio | Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus |
| CN103329525A (zh) * | 2011-01-22 | 2013-09-25 | 高通股份有限公司 | 用于视频译码的组合参考图片列表建构 |
| CN103563382A (zh) * | 2011-03-11 | 2014-02-05 | 三星电子株式会社 | 用于对图像进行编码的方法和设备以及用于进行解码的方法和设备 |
| CN103999467A (zh) * | 2011-12-20 | 2014-08-20 | 高通股份有限公司 | 用于多视图和三维视频译码的参考图片列表建构 |
| CN104170390A (zh) * | 2012-01-19 | 2014-11-26 | Vid拓展公司 | 用于视频编码参考图像列表的用信号发送和建构的方法及装置 |
| CN104205830A (zh) * | 2012-04-11 | 2014-12-10 | 高通股份有限公司 | 用于在视频译码中的参考索引译码的旁路二进制位 |
| CN105122805A (zh) * | 2013-04-05 | 2015-12-02 | Vid拓展公司 | 针对多层视频编码的层间参考图片增强 |
| WO2018122092A1 (en) * | 2016-12-30 | 2018-07-05 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods, apparatus, and computer programs for decoding media |
| US20180324458A1 (en) * | 2011-09-23 | 2018-11-08 | Velos Media, Llc | Decoded picture buffer management |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| MXPA06002211A (es) * | 2003-08-26 | 2006-05-19 | Thomson Licensing | Metodo y aparato para reducir al minimo el numero de imagenes de referencia utilizadas para inter-codificacion. |
| JP4228316B2 (ja) * | 2005-12-28 | 2009-02-25 | 船井電機株式会社 | 録画番組管理装置 |
| JP5014195B2 (ja) * | 2008-02-25 | 2012-08-29 | キヤノン株式会社 | 撮像装置及びその制御方法及びプログラム |
| KR101640357B1 (ko) * | 2011-03-08 | 2016-07-15 | 가부시키가이샤 제이브이씨 켄우드 | 동화상 부호화 장치, 동화상 부호화방법 및 동화상 부호화 프로그램, 및 동화상 복호 장치, 동화상 복호 방법 및 동화상 복호 프로그램 |
| JP2013042236A (ja) * | 2011-08-11 | 2013-02-28 | Jvc Kenwood Corp | 動画像復号装置、動画像復号方法及び動画像復号プログラム |
| CN103782599A (zh) * | 2011-10-17 | 2014-05-07 | 株式会社东芝 | 编码方法和解码方法 |
| US9426463B2 (en) * | 2012-02-08 | 2016-08-23 | Qualcomm Incorporated | Restriction of prediction units in B slices to uni-directional inter prediction |
| JP6116983B2 (ja) * | 2013-04-16 | 2017-04-19 | 株式会社東芝 | エントリーポイント抽出装置 |
| CN103957341B (zh) * | 2014-04-30 | 2016-09-28 | 华为软件技术有限公司 | 图片传输的方法及其相关设备 |
| SG11201703454XA (en) * | 2014-11-18 | 2017-06-29 | Mediatek Inc | Method of bi-prediction video coding based on motion vectors from uni-prediction and merge candidate |
| CN106658019B (zh) * | 2015-10-31 | 2019-11-12 | 华为技术有限公司 | 参考帧编解码的方法与装置 |
-
2019
- 2019-03-18 CN CN201910204787.6A patent/CN111726632B/zh active Active
-
2020
- 2020-03-18 WO PCT/CN2020/079885 patent/WO2020187222A1/zh not_active Ceased
Patent Citations (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN103329525A (zh) * | 2011-01-22 | 2013-09-25 | 高通股份有限公司 | 用于视频译码的组合参考图片列表建构 |
| CN103563382A (zh) * | 2011-03-11 | 2014-02-05 | 三星电子株式会社 | 用于对图像进行编码的方法和设备以及用于进行解码的方法和设备 |
| US20130003848A1 (en) * | 2011-06-29 | 2013-01-03 | Toshiyasu Sugio | Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus |
| US20180324458A1 (en) * | 2011-09-23 | 2018-11-08 | Velos Media, Llc | Decoded picture buffer management |
| CN103999467A (zh) * | 2011-12-20 | 2014-08-20 | 高通股份有限公司 | 用于多视图和三维视频译码的参考图片列表建构 |
| CN104170390A (zh) * | 2012-01-19 | 2014-11-26 | Vid拓展公司 | 用于视频编码参考图像列表的用信号发送和建构的方法及装置 |
| CN104205830A (zh) * | 2012-04-11 | 2014-12-10 | 高通股份有限公司 | 用于在视频译码中的参考索引译码的旁路二进制位 |
| CN105122805A (zh) * | 2013-04-05 | 2015-12-02 | Vid拓展公司 | 针对多层视频编码的层间参考图片增强 |
| WO2018122092A1 (en) * | 2016-12-30 | 2018-07-05 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods, apparatus, and computer programs for decoding media |
Also Published As
| Publication number | Publication date |
|---|---|
| CN111726632B (zh) | 2022-08-26 |
| CN111726632A (zh) | 2020-09-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN109862368B (zh) | 一种编解码方法及其设备 | |
| GB2488816A (en) | Mapping motion vectors from a plurality of reference frames to a single reference frame | |
| CN113055687B (zh) | 一种编解码方法、装置及其设备 | |
| GB2492778A (en) | Motion compensated image coding by combining motion information predictors | |
| CN111698500B (zh) | 一种编解码方法、装置及其设备 | |
| CN101518089A (zh) | 编/解码方法、编/解码器及寻找最佳匹配块的方法及装置 | |
| CN101534442A (zh) | 视频编码系统及方法 | |
| CN102118615B (zh) | 采用可变块大小略过模式的视频编/解码方法和装置 | |
| CN112118451B (zh) | 一种编解码方法、装置及其设备 | |
| CN111510726B (zh) | 一种编解码方法及其设备 | |
| CN111726632B (zh) | 一种编解码方法、装置及其设备 | |
| TW202404369A (zh) | 視訊編、解碼方法及裝置、碼流、解碼器、編碼器、電子設備、儲存媒介 | |
| CN112543322B (zh) | 一种解码、编码方法、装置及其设备 | |
| CN112073734B (zh) | 一种编解码方法、装置及其设备 | |
| WO2020244425A1 (zh) | 一种编解码方法、装置及其设备 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20774163 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 20774163 Country of ref document: EP Kind code of ref document: A1 |