CN111726632B - Encoding and decoding method, device and equipment - Google Patents

Encoding and decoding method, device and equipment Download PDF

Info

Publication number
CN111726632B
CN111726632B CN201910204787.6A CN201910204787A CN111726632B CN 111726632 B CN111726632 B CN 111726632B CN 201910204787 A CN201910204787 A CN 201910204787A CN 111726632 B CN111726632 B CN 111726632B
Authority
CN
China
Prior art keywords
reference frame
list
target
frame list
lists
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.)
Active
Application number
CN201910204787.6A
Other languages
Chinese (zh)
Other versions
CN111726632A (en
Inventor
孙煜程
陈方栋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN201910204787.6A priority Critical patent/CN111726632B/en
Priority to PCT/CN2020/079885 priority patent/WO2020187222A1/en
Publication of CN111726632A publication Critical patent/CN111726632A/en
Application granted granted Critical
Publication of CN111726632B publication Critical patent/CN111726632B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods 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

Abstract

The application provides a coding and decoding method, a device and equipment thereof, wherein the method comprises the following steps: acquiring reference frame configuration of a current frame where a current block is located, wherein the reference frame configuration comprises at least two reference frame lists; if repeated reference frames exist in at least two reference frame lists, carrying out duplicate removal processing on the at least two reference frame lists to obtain a duplicate-removed reference frame list; and encoding or decoding the current block according to the de-duplicated reference frame list. By the technical scheme, the coding performance is improved.

Description

Encoding and decoding method, device and equipment
Technical Field
The present application relates to the field of encoding and decoding technologies, and in particular, to an encoding and decoding method, apparatus, and device.
Background
In order to achieve the purpose of saving space, video images are transmitted after being coded, and the complete video coding method can comprise the processes of prediction, transformation, quantization, entropy coding, filtering and the like. The predictive coding may include intra-frame coding and inter-frame coding, among others. The interframe coding uses the correlation of a video time domain and uses the pixels of adjacent coded images to predict the current pixel so as to achieve the aim of effectively removing the video time domain redundancy. In addition, the intra-frame coding means that the current pixel is predicted by using the pixel of the coded block of the current frame image by using the correlation of the video spatial domain, so as to achieve the purpose of removing the video spatial domain redundancy.
In inter-coding of a current block, the current block may 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 current block is encoded or decoded by using the target reference frame. If the current block is a bidirectional block, one target reference frame can be selected from the two reference frame lists respectively, and the current block is encoded or decoded by using the two target reference frames. However, there are problems such as syntax redundancy and relatively poor coding performance in selecting one target reference frame from two reference frame lists or selecting one target reference frame from each of the two reference frame lists.
Disclosure of Invention
The application provides a coding and decoding method, device and equipment thereof, which can improve coding performance.
The application provides a coding and decoding method, which comprises the following steps:
acquiring reference frame configuration of a current frame where a current block is located, wherein the reference frame configuration comprises at least two reference frame lists; if repeated reference frames exist in the at least two reference frame lists, performing duplicate removal processing on the at least two reference frame lists to obtain a duplicate-removed reference frame list; and encoding or decoding the current block according to the de-duplicated reference frame list.
The application provides a coding and decoding method, which comprises the following steps:
acquiring reference frame configuration of a current frame where a current block is located, wherein the reference frame configuration comprises at least two reference frame lists; the at least two reference frame lists comprise a first reference frame list and a second reference frame list; constructing 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 comprise at least one reference frame in a first reference frame list and/or at least one reference frame in a second reference frame list, and any two reference frames in the new reference frame list are different; encoding or decoding the current block according to the new reference frame list.
The application provides a coding and decoding method, which comprises the following steps:
acquiring reference frame configuration of a current frame where a current block is located, wherein the reference frame configuration comprises 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 another one of the at least two reference frame lists; selecting a first target reference frame from the first reference frame list; deleting the reference frames in the second reference frame list to obtain a 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 application provides a coding and decoding method, which comprises the following steps: acquiring reference frame configuration of a current frame where a current block is located, wherein the reference frame configuration comprises 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 another of the at least two reference frame lists; selecting a first target reference frame from the first reference frame list and a second target reference frame from the second reference frame list; deleting the reference frames in the second reference frame list to obtain a processed second reference frame list; encoding the current block according to the first target reference frame and the second target reference frame.
The application provides a coding and decoding method, which comprises the following steps:
acquiring reference frame configuration of a current frame where a current block is located, wherein the reference frame configuration comprises 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 another 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, wherein the reference frame combination list comprises a plurality of non-repeated reference frame combinations; each reference frame combination comprises a reference frame present in the first reference frame list and a reference frame present in the second reference frame list; selecting a target reference frame combination from the reference frame combination list; encoding or decoding the current block according to the target reference frame combination.
The application provides a coding and decoding device, the device includes:
the device comprises an acquisition module, a processing module and a processing module, wherein the acquisition module is used for acquiring the reference frame configuration of a current frame where a current block is located, and the reference frame configuration comprises at least two reference frame lists; the processing module is used for performing duplicate removal processing on the at least two reference frame lists to obtain a duplicate-removed reference frame list if the at least two reference frame lists have repeated reference frames; and the coding and decoding module is used for coding or decoding the current block according to the de-duplicated reference frame list.
The application provides a coding and decoding device, the device includes:
the device comprises an acquisition module, a processing module and a processing module, wherein the acquisition module is used for acquiring the reference frame configuration of a current frame where a current block is located, and the reference frame configuration comprises at least two reference frame lists; the at least two reference frame lists comprise a first reference frame list and a second reference frame list;
a construction module for constructing 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 comprise at least one reference frame in a first reference frame list and/or at least one reference frame in a second reference frame list, and any two reference frames in the new reference frame list are different;
and the coding and decoding module is used for coding or decoding the current block according to the new reference frame list.
The application provides a coding and decoding device, the device includes: the device comprises an acquisition module, a processing module and a processing module, wherein the acquisition module is used for acquiring the reference frame configuration of a current frame where a current block is located, and the reference frame configuration comprises 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 another one of the at least two reference frame lists; a selection module for selecting a first target reference frame from the first list of reference frames; the processing module is used for deleting the reference frames in the second reference frame list to obtain a processed second reference frame list; the selecting module is further configured to select a second target reference frame from the processed second reference frame list; a decoding module for decoding 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, the device includes:
the device comprises an acquisition module, a processing module and a processing module, wherein the acquisition module is used for acquiring the reference frame configuration of a current frame where a current block is located, and the reference frame configuration comprises 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 another of the at least two reference frame lists; a selection module for selecting a first target reference frame from the first reference frame list and a second target reference frame from the second reference frame list; the processing module is used for deleting the reference frames in the second reference frame list to obtain a processed second reference frame list; and the coding and decoding module is used for coding 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, the device includes:
the device comprises an acquisition module, a processing module and a processing module, wherein the acquisition module is used for acquiring the reference frame configuration of a current frame where a current block is located, and the reference frame configuration comprises 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 another of the at least two reference frame lists; a building module configured to build a reference frame combination list according to the first reference frame list and the second reference frame list, the reference frame combination list including a plurality of reference frame combinations that are not repeated; each reference frame combination comprises a reference frame present in the first reference frame list and a reference frame present in the second reference frame list; a selection module for selecting a target reference frame combination from the reference frame combination list; and the coding and decoding module is used for coding or decoding the current block according to the target reference frame combination.
The application provides a coding end device, including: a processor and a machine-readable storage medium storing machine-executable instructions executable by the processor;
the processor is configured to execute machine executable instructions to perform the steps of:
acquiring reference frame configuration of a current frame where a current block is located, wherein the reference frame configuration comprises at least two reference frame lists; if repeated reference frames exist in the at least two reference frame lists, performing duplicate removal processing on the at least two reference frame lists to obtain a duplicate-removed reference frame list; encoding the current block according to the de-duplicated reference frame list; alternatively, the first and second electrodes may be,
acquiring reference frame configuration of a current frame where a current block is located, wherein the reference frame configuration comprises at least two reference frame lists; the at least two reference frame lists comprise a first reference frame list and a second reference frame list; constructing 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 comprise at least one reference frame in a first reference frame list and/or at least one reference frame in a second reference frame list, and any two reference frames in the new reference frame list are different; encoding the current block according to the new reference frame list; alternatively, the first and second electrodes may be,
acquiring reference frame configuration of a current frame where a current block is located, wherein the reference frame configuration comprises 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 another of the at least two reference frame lists; selecting a first target reference frame from the first reference frame list and a second target reference frame from the second reference frame list; deleting the reference frames in the second reference frame list to obtain a processed second reference frame list; encoding the current block according to the first target reference frame and the second target reference frame;
or acquiring the reference frame configuration of the current frame where the current block is located, wherein the reference frame configuration comprises 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 another 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, wherein the reference frame combination list comprises a plurality of non-repeated reference frame combinations; each reference frame combination comprises a reference frame present in the first reference frame list and a reference frame present in the second reference frame list; selecting a target reference frame combination from the reference frame combination list; and encoding the current block according to the target reference frame combination.
The application provides a decoding side device, including: a processor and a machine-readable storage medium storing machine-executable instructions executable by the processor;
the processor is configured to execute machine executable instructions to perform the steps of:
acquiring reference frame configuration of a current frame where a current block is located, wherein the reference frame configuration comprises at least two reference frame lists; if repeated reference frames exist in the at least two reference frame lists, performing duplicate removal processing on the at least two reference frame lists to obtain a duplicate-removed reference frame list; decoding the current block according to the de-duplicated reference frame list; alternatively, the first and second electrodes may be,
acquiring reference frame configuration of a current frame where a current block is located, wherein the reference frame configuration comprises at least two reference frame lists; the at least two reference frame lists comprise a first reference frame list and a second reference frame list; constructing 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 comprise at least one reference frame in a first reference frame list and/or at least one reference frame in a second reference frame list, and any two reference frames in the new reference frame list are different; decoding the current block according to the new reference frame list; alternatively, the first and second electrodes may be,
acquiring reference frame configuration of a current frame where a current block is located, wherein the reference frame configuration comprises 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 another of the at least two reference frame lists; selecting a first target reference frame from the first reference frame list; deleting the reference frames in the second reference frame list to obtain a 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; or acquiring the reference frame configuration of the current frame where the current block is located, wherein the reference frame configuration comprises 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 another 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, wherein the reference frame combination list comprises a plurality of non-repeated reference frame combinations; each reference frame combination comprises a reference frame present in the first reference frame list and a reference frame present in the second reference frame list; selecting a target reference frame combination from the reference frame combination list; decoding the current block according to the target reference frame combination.
As can be seen from the above technical solutions, in the embodiment of the present application, for two reference frame lists corresponding to a current block, at least two reference frame lists can be subjected to deduplication processing, so that syntax redundancy can be avoided or reduced, and coding performance can be improved. Avoiding syntax redundancy in the unidirectional prediction block can bring about an improvement in coding performance gain. Avoiding syntax redundancy in bi-prediction blocks can lead to an improvement in coding performance gain.
Drawings
In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings needed to be used in the description of the embodiments of the present application or the prior art will be briefly described below, it is obvious that the drawings in the following description are only some embodiments described in the present application, and other drawings can be obtained by those skilled in the art according to the drawings of the embodiments of the present application.
FIG. 1 is a schematic diagram of a video coding framework in one embodiment of the present application;
FIG. 2 is a flow chart of a coding and decoding method according to an embodiment of the present application;
FIG. 3 is a flow chart of a coding and decoding method in another embodiment of the present application;
FIG. 4 is a flow chart of a coding and decoding method in another embodiment of the present application;
FIG. 5 is a flow chart of a coding and decoding method in another embodiment of the present application;
FIG. 6 is a flow chart of a coding and decoding method in another embodiment of the present application;
FIGS. 7A-7E are block diagrams of a codec device according to an embodiment of the present application;
fig. 8 is a hardware configuration diagram of an encoding end device in an embodiment of the present application;
fig. 9 is a hardware configuration diagram of a decoding-side device according to an embodiment of the present application.
Detailed Description
The terminology used in the embodiments of the present application is for the purpose of describing particular embodiments only and is not intended to be limiting of the application. As used in this application and the claims, the singular forms "a", "an", and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It should also be understood that the term "and/or" as used herein is meant to encompass any and all possible combinations of one or more of the associated listed items.
It should be understood that although the terms first, second, third, etc. may be used herein to describe various information, the information should not be limited to these terms. These terms are only used to distinguish one type of information from another. For example, first information may also be referred to as second information, and similarly, second information may also be referred to as first information, without departing from the scope of the present application. Depending on the context, moreover, the word "if" as used may be interpreted as "at … …" or "at … …" or "in response to a determination.
The embodiment of the application provides a coding and decoding method, which can relate to the following concepts:
intra and inter prediction (intra and inter) techniques:
the intra-frame prediction means that the current pixel is predicted by using the pixel of the current image coded block by utilizing the correlation of a video spatial domain so as to achieve the purpose of removing the video spatial domain redundancy. In intra prediction, a plurality of prediction modes are defined, each of which corresponds to one texture direction (except for the DC mode), and a current block predicted pixel is generated from a boundary reconstructed pixel value of a block adjacent to the current block in the prediction direction. For example, if the texture of the image is horizontally arranged, the image information can be better predicted by selecting the horizontal prediction mode.
Inter-frame prediction refers to using the correlation of the video time domain, and because a video sequence usually contains strong time domain correlation, the purpose of effectively removing the video time domain redundancy can be achieved by using the pixels of the adjacent coded images to predict the pixels of the current image. The main principle of Motion compensation is to find a best matching block in a previously coded picture for each pixel block of a current picture, which is called Motion Estimation (ME).
Rate-Distortion principle (Rate-Distortion Optimized): there are two major indicators for evaluating coding efficiency: code rate and Peak Signal to Noise Ratio (PSNR), the smaller the bit stream, the larger the compression rate, and the larger the PSNR, the better the reconstructed image quality, and in the mode selection, the discrimination formula is essentially the comprehensive evaluation of the two. For example, the cost for a mode: j (mode) ═ D + λ R, where D denotes Distortion, typically measured using SSE scale, SSE being the mean square sum of the differences between the reconstructed image block and the source image; and λ is a lagrange multiplier, and R is the actual number of bits required for encoding the image block in the mode, including the sum of bits required for encoding mode information, motion information, residual errors and the like. When selecting mode, if the coding mode is compared and decided by using rate distortion principle, the best coding performance can be ensured.
Multi-Hypothesis prediction (Multi-Hypothesis prediction): multi-hypothesis prediction refers to a technique in which a plurality of prediction blocks are weighted to obtain a final prediction block. For example, superimposing a pattern of one or more new prediction pixels on the basis of the prediction pixels of the current prediction mode requires an additional syntax to express the pattern of the new prediction pixel block.
The sub-block of the current block, in this embodiment, the sub-block of the current block may be a Coding Unit (CU), a Prediction Unit (PU), a Coding block (Coding block), or the like.
A video coding framework: referring to fig. 1, a video encoding frame may be used to implement the processing flow at the encoding end in the embodiment of the present application, and in addition, the schematic diagram of the video decoding frame is similar to that in fig. 1, and repeated description is not repeated here, and a video decoding frame may be used to implement the processing flow at the decoding end in the embodiment of the present application. Specifically, in the video encoding framework and the video decoding framework, intra prediction, motion estimation/motion compensation, reference image buffer, in-loop filtering, reconstruction, transformation, quantization, inverse transformation, inverse quantization, entropy encoder and other modules can be included. At the encoding end, the processing flow at the encoding end can be realized through the matching among the modules, and at the decoding end, the processing flow at the decoding end can be realized through the matching among the modules.
In the coding scheme of reference frame information, there are two types of syntax elements that uniquely identify reference frame information (i.e., information indicating a reference picture) of a current block. The first type of syntax represents the list of reference frames to which the current block points (e.g., the syntax element inter _ pred _ idc represents the list of reference frames to which the current block points). The second type of syntax represents the reference frames in the list of reference frames pointed to (e.g., syntax elements ref _ idx _ l0 and ref _ idx _ l1 represent the index values of the reference frames in the list of reference frames pointed to). Illustratively, when there is only one reference frame list, then the value of the first type syntax is derived implicitly, i.e. there is no need to explicitly transmit the first type syntax. Illustratively, when only one frame reference frame exists in a reference frame list, the value of the second-type syntax pointing to the reference frame list is implicitly derived, i.e., the second-type syntax does not need to be explicitly transmitted.
In one example, the syntax elements inter _ pred _ idc, ref _ idx _ l0, and ref _ idx _ l1 may be represented by binary numbers, decimal numbers, or octals, which are not limited. In the following embodiments, the syntax elements are represented by binary values, for example.
In one example, if the current block is a B-frame unidirectional block (i.e., the current block has two reference frame lists, and a target reference frame is selected from the two reference frame lists), there may occur two expressions for a unidirectional reference frame, that is, there are problems of syntax redundancy, poor coding performance, and the like.
For example, if the reference frame of the current frame where the current block is located is configured as: list0[0,8,16] and List1[8,16,24], there are two expressions for unidirectional block pointing to reference frame 8: one expression is to point to the reference frame List0, taking the second frame reference frame 8 in List0, for example, as represented by the syntax elements inter _ pred _ idc ═ 1 and ref _ idx _ l0 ═ 1. Another expression is to point to the reference frame List1, taking the first frame reference frame 8 in List1, e.g., as represented by the syntax elements inter _ pred _ idc-10 and ref _ idx _ l 1-0. Obviously, the above two expressions both indicate that the target reference frame is the reference frame 8, that is, the above two syntax elements represent completely consistent reference frame information, which causes large syntax redundancy, affects the compression performance of encoding and decoding, and the encoding performance is poor.
In view of the above findings, if the current block is a B-frame unidirectional block, the encoding and decoding method configured for the current reference frame can be improved. For example, the occurrence of syntax redundancy is avoided by a deduplication operation on the reference frames. The deduplication operation comprises: list0 and List1 are deduplicated, that is, when a reference frame exists in both List0 and List1, the reference frame in List0 is retained, the reference frame in List1 is removed, or the reference frame in List1 is retained, the reference frame in List0 is removed.
For example, if the reference frame of the current frame where the current block is located is configured as: list0[0,8,16] and List1[8,16,24], then the deduplication operation comprises: reference frame 8 and reference frame 16 may be removed from List1, i.e., List1 after the deduplication operation is [24 ]. Obviously, on this basis, the reference frame 8 has only one expression, i.e. points to the reference frame List0, and the second frame reference frame 8 in the List0 is taken, which can be represented by the syntax elements inter _ pred _ idc ═ 1 and ref _ idx _ l0 ═ 1, for example. Because only one syntax element is present to represent the reference frame information, syntax redundancy is avoided, the coding and decoding compression performance is improved, and the coding performance is better.
In another example, if the current block is a bi-directional block of a B-frame (i.e. one target reference frame is selected from each of two reference frame lists of the current block, and two target reference frames are selected in total), there may be two expressions for a bi-directional reference frame combination, and problems of syntax redundancy, poor coding performance, and the like may occur.
For example, if the reference frame of the current frame where the current block is located is configured as: list0[0,8,16] and List1[8,16,24], there are two expressions for bi-directional block pointing to reference frame combination (816): one expression is to point to two reference frame lists, List0 and List1, the second frame reference frame 8 in List0, and the second frame reference frame 16 in List1, which can be represented by, for example, syntax elements inter _ pred _ idc ═ 11, ref _ idx _ l0 ═ 1, and ref _ idx _ l1 ═ 1. Another expression is directed to two reference frame lists, List0 and List1, the first frame reference frame 8 in List1, and the third frame reference frame 16 in List0, which may be represented by, for example, syntax elements inter _ pred _ idc ═ 11, ref _ idx _ l0 ═ 10, and ref _ idx _ l1 ═ 0. Obviously, both expressions indicate that the target reference frame combination is the reference frame combination (816), that is, the two syntax elements represent completely consistent reference frame information, thereby causing large syntax redundancy, affecting the compression performance of encoding and decoding, and the encoding performance is poor.
In the above example, reference frame 0 exists in List0 and reference frame 24 exists in List1, i.e., reference frame 0 and reference frame 24 exist in only one reference frame List. The reference frame 8 and the reference frame 16 exist in both the List0 and the List1, i.e., the reference frame 8 and the reference frame 16 exist in both the reference frame lists. Reference frame 0 and reference frame 24, which exist in only one reference frame list, are not separately encoded from reference frame 8 and reference frame 16, which exist in both reference frame lists, and the confusion of physical meaning affects the coding and decoding efficiency to some extent.
In view of the above discovery, if the current block is a B-frame bidirectional block, the encoding and decoding method for configuring the reference frame of the current block can be improved. For example, the occurrence of syntax redundancy is avoided by performing a deduplication operation on reference frame combinations, i.e., the same bi-directional reference frame combination is allowed to occur only once.
For example, if the reference frame of the current frame where the current block is located is configured as: list0[0,8,16] and List1[8,16,24], then the combine de-duplication of reference frames includes: one reference frame combination (168) is removed for both reference frame combinations (816) and reference frame combinations (168). On this basis, the reference frame combination (816) has only one expression, namely pointing to two reference frame lists List0 and List1, taking the second frame reference frame 8 in List0, taking the second frame reference frame 16 in List1, for example, as represented by syntax elements inter _ pred _ idc ═ 11, ref _ idx _ l0 ═ 1, ref _ idx _ l1 ═ 1. Because only one syntax element is present to represent the reference frame information, syntax redundancy is avoided, the coding and decoding compression performance is improved, and the coding performance is better.
If the current block is a bidirectional block of a B frame, the encoding and decoding method configured by the current reference frame can be improved. For example, codec efficiency may be improved by introducing new syntax element classes, including: a syntax element to identify whether the two reference frames of the current bi-directional block are consistent.
For example, in the above example, reference frame 0 exists in List0 and reference frame 24 exists in List1, i.e., the new syntax element class is used to identify reference frame 0 or reference frame 24 exists in only one List of reference frames. Reference frame 8 and reference frame 16 exist in both List0 and List1, i.e., a new syntax element class is used to identify whether reference frame 8 or reference frame 16 exists in both reference frame lists.
In summary, reference frame 0 and reference frame 24, which exist in only one reference frame list, are encoded separately from reference frame 8 and reference frame 16, which exist in both reference frame lists, thereby improving the encoding and decoding efficiency.
In this embodiment, the current block may be predicted using unidirectional motion information, and at this time, the current block may be referred to as a unidirectional block (or referred to as a unidirectional prediction block). Alternatively, the current block may be predicted using bidirectional motion information, and at this time, the current block may be referred to as a bidirectional block (or referred to as a bidirectional prediction block).
The following describes the above-mentioned encoding and decoding method in detail with reference to several specific embodiments.
Example 1: referring to fig. 2, a schematic flow chart of a coding and decoding method proposed in the embodiment of the present application is shown, where the coding and decoding method may be applied to a decoding end or an encoding end, and the method may include:
in step 201, a reference frame configuration of a current frame where a current block is located is obtained, where 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 further include reference frame lists other than the first reference frame list and the second reference frame list, which is not limited thereto.
In one example, the frame type of the current frame where the current block is located may be a B frame, and since the B frame allows the existence of inter blocks pointing to multiple lists (reference frame lists), such as an inter prediction block pointing to List0 and an inter prediction block pointing to List1, at the same time, 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, which are described as an example for convenience of description. The two reference frame lists may be a List0 and a List 1.
In this embodiment, taking an example that 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 another of the at least two reference frame lists. For example, the first reference frame List is List0, the second reference frame List is List 1; alternatively, the first reference frame List is List1 and the second reference frame List is List 0. There is no limitation to both the first reference frame List and the second reference frame List as long as the first reference frame List is one of a List0 and a List1, and the second reference frame List is the other of a List0 and a List 1.
In one example, the current block may be a unidirectional block, that is, when there are two reference frame lists for the current block, a target reference frame may be selected from the two reference frame lists.
Step 202, if there are repeated reference frames in the at least two reference frame lists, performing deduplication processing on the at least two reference frame lists to obtain a deduplicated reference frame list. For example, if the first reference frame list and the second reference frame list have repeated reference frames, the first reference frame list or the second reference frame list may be subjected to deduplication processing to obtain a deduplicated first reference frame list or second reference frame list.
In one example, the reference frames in the first reference frame list may be kept unchanged, and the reference frames in the second reference frame list that are repeated in the first reference frame list are removed to obtain a second reference frame list after deduplication. Or, 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 repeated in the second reference frame list are removed, so as to obtain the deduplicated first reference frame list.
For example, the current frame POC (play order) is 12, the List0 of the current frame POC is 8, POC is 4, POC is 0, and the List1 is 20, POC is 16, POC is 8, and three frames. On this basis, the duplicate reference frames in List1 from List0 can be removed, i.e., three frames for List0, POC 4, POC 0, and two frames for the deduplicated List1, POC 20, POC 16. Alternatively, the duplicate reference frames in List0 and List1 may be removed, that is, the removed List0 is two frames, POC is 0, and List1 is three frames, POC is 20, POC is 16, and POC is 8.
In one example, the reference frame configuration of the current frame includes a first reference frame list and a second reference frame list, to which all sub-blocks of the current frame correspond, and to which the current block (i.e., one sub-block of the current frame) also corresponds.
The first reference frame list and the second reference frame list may be obtained from a reference frame configuration of a current frame for a current block. On this basis, the first reference frame list and the second reference frame list may be subjected to deduplication processing to obtain a deduplicated reference frame list. It should be noted that the de-duplicated reference frame list only acts on the current block, and not on other sub-blocks of the current frame. That is, the first reference frame list and the second reference frame list are subjected to the deduplication processing, and the reference frame configuration of the current frame is not changed, that is, the first reference frame list and the second reference frame list in the reference frame configuration are not modified, and the first reference frame list and the second reference frame list in the reference frame configuration are still used when other subblocks of the current frame are processed.
And step 203, encoding or decoding the current block according to the deduplicated reference frame list.
In an example, for the encoding end, the encoding end may encode the current block according to the deduplicated reference frame list, and the encoding process is not limited. For the decoding end, the decoding end may decode the current block according to the reference frame list after the deduplication, and the decoding process is not limited.
According to the technical scheme, the at least two reference frame lists corresponding to the current block can be subjected to de-duplication processing, so that the syntax redundancy is reduced, and the coding performance can be improved. Avoiding syntax redundancy in the unidirectional prediction block can bring about an improvement in coding performance gain.
Example 2: based on the same inventive concept as that of the foregoing embodiment 1, an encoding and decoding method is provided in the embodiment of the present application, where the encoding and decoding method may be applied to an 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, and the reference frame configuration includes a first reference frame list and a second reference frame list. For example, the first reference frame List is List0, the second reference frame List is List 1; alternatively, the first reference frame List is List1 and the second reference frame List is List 0.
The processing procedure of step a1 can be referred to as step 101, and will not be repeated herein.
Step a2, if the first reference frame list and the second reference frame list have repeated reference frames, the encoding end keeps the reference frames in the first reference frame list unchanged, and removes the repeated reference frames in the second reference frame list and the first reference frame list to obtain a second reference frame list after duplication removal.
The processing procedure of step a2 can be referred to as step 102, and will not be repeated here.
And a3, the encoding end encodes the current block according to the second reference frame list after the duplication removal.
In one example, based on each reference frame in the first reference frame list and each reference frame in the second reference frame list after the duplication removal, the encoding end determines a rate distortion cost corresponding to each reference frame, determines a reference frame with the minimum rate distortion cost, and takes the reference frame with the minimum rate distortion cost as a target reference frame.
For example, the first reference frame List is List0[8,4,0], the second reference frame List after deduplication is List1[20,16], if the reference frame with the smallest rate-distortion cost is the reference frame 20, the target reference frame is the reference frame 20, and the target reference frame is located in List 1. Therefore, when the encoding end encodes the current block, the encoding bitstream includes a syntax element inter _ pred _ idc ═ 10 and a syntax element ref _ idx _ l1 ═ 0. The syntax element inter _ pred _ idc-10 indicates that the target reference frame is located in List1, and ref _ idx _ l 1-0 indicates that the target reference frame is the first frame reference frame of List 1.
For example, if the second reference frame before deduplication is List1[8,16,20], and the target reference frame is reference frame 20, ref _ idx _ l1 is 10, which indicates that the target reference frame is the third frame reference frame of List 1. If the second reference frame after deduplication is listed as List1[16,20], and the target reference frame is reference frame 20, then ref _ idx _ l1 is 1, which means that the target reference frame is the second frame reference frame of List 1. Obviously, through the deduplication process, the coding overhead is reduced from 2 bits "10" to 1 bit "1" for the same target reference frame (reference frame 20).
Example 3: based on the same inventive concept as that of the foregoing embodiment 1, an embodiment of the present application provides a coding and decoding method, which can be applied to a decoding end, and the coding and decoding method can include:
step b1, the decoding end obtains the reference frame configuration of the current frame where the current block is located, and the reference frame configuration includes a first reference frame list and a second reference frame list. For example, the first reference frame List is List0, the second reference frame List is List 1; alternatively, the first reference frame List is List1 and the second reference frame List is List 0.
The decoding end may obtain the reference frame configuration of the current frame from the coded bit stream, which is not limited in this respect.
The processing procedure of step b1 can be referred to as step 101, and will not be described repeatedly herein.
Step b2, if the first reference frame list and the second reference frame list have repeated reference frames, the decoding end keeps the reference frames in the first reference frame list unchanged, and removes the repeated reference frames in the second reference frame list and the first reference frame list to obtain a second reference frame list after deduplication.
The processing procedure of step b2 can be referred to as step 102, and will not be repeated here.
And b3, decoding the current block by the decoding end according to the second reference frame list after the duplication elimination.
In one example, the decoding end may obtain the first indication information and the second indication information; the first indication information is used for indicating a target reference frame list, and the second indication information is used for indicating an index value of a target reference frame. Then, if the target reference frame list determined according to the first indication information is a de-duplicated reference frame list, selecting a target reference frame corresponding to the index value from the de-duplicated reference frame list according to the second indication information; the current block may then be decoded from the target reference frame.
In one example, the index values of the reference frames in the deduplicated reference frame list are adaptively updated, so that the code rate occupied by the index values can be saved.
For example, after receiving the coded bitstream sent by the encoding end, the decoding end may obtain first indication information (e.g., syntax element inter _ pred _ idc) and second indication information (e.g., syntax element ref _ idx _ l1) from the coded bitstream. Assuming that the syntax element inter _ pred _ idc is 10, it is determined that the target reference frame List is List1, i.e., the target reference frame is located in List 1. Assuming that the syntax element ref _ idx _ l1 is 0, i.e., the index value of the target reference frame is 0, it is determined that the target reference frame is the reference frame corresponding to the index value 0 in the List1, i.e., the first frame reference frame.
Assuming that the first reference frame is listed as List0[8,4,0], the second reference frame after deduplication is listed as List1[20,16], then the target reference frame is the first frame reference frame in List1, i.e., the target reference frame is reference frame 20.
Example 4: based on the same inventive concept as that of the above embodiment 1, the embodiment of the present application provides a coding and decoding method, which can be applied to a decoding end. After receiving the coded bit stream, the decoding end determines reference frame lists, namely a first reference frame list and a second reference frame list, of the current block (namely the unidirectional inter-prediction block) according to the coded bit stream. Then, the first reference frame list and the second reference frame list are deduplicated, and the deduplication mode is not limited. Then, the parsing process is performed based on the deduplicated reference frame list.
Example 5: based on the same inventive concept as the embodiment 1, the embodiment of the present application provides a coding and decoding method, which can be applied to a decoding end. The decoding end obtains a reference frame list of the current block (namely the unidirectional interframe prediction block) by analyzing the code stream. Then, a deduplication operation is performed on the reference frame list. Then, based on the reference frame list after the deduplication, a reference frame list (i.e., a target reference frame list) pointed by the current block and a reference frame (i.e., a target reference frame) in the reference frame list pointed by the current block are determined by parsing the code stream.
Performing a deduplication operation on the reference frame list, comprising: the current frame POC is 12, the List0 of the current frame POC is 8, POC is 4, POC is 0, and three frames, and the List1 is 20, POC is 16, and POC is 8. On this basis, the duplicate reference frames in List1 from List0 can be removed, i.e., three frames for List0, POC 4, POC 0, and two frames for the deduplicated List1, POC 20, POC 16. Alternatively, the repeated reference frames in List0 from List1 may be removed, i.e., two frames for POC 4 and 0 for List0 after the removal of the repetition, three frames for POC 20,16 and 8 for List 1.
Example 6: referring to fig. 3, a schematic flow chart of a coding and decoding method provided in this embodiment of the present application is shown, where the coding and decoding method may be applied to a decoding end or an encoding end, and the method may include:
step 301, obtaining a reference frame configuration of a current frame where a 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.
In one example, the frame type of the current frame where the current block is located may be a B frame, and since the B frame allows the existence of inter blocks pointing to multiple lists (reference frame lists), such as an inter prediction block pointing to List0 and an inter prediction block pointing to List1, at the same time, 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, which are described as an example for convenience of description. The two reference frame lists may be a List0 and a List 1.
In this embodiment, taking an example that 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 another of the at least two reference frame lists. For example, the first reference frame List is List0, the second reference frame List is List 1; alternatively, the first reference frame List is List1 and the second reference frame List is List 0. There is no limitation on both the first reference frame List and the second reference frame List as long as the first reference frame List is one of a List0 and a List1, and the second reference frame List is the other of a List0 and a List 1.
In one example, the current block may be a unidirectional block, that is, when there are two reference frame lists for the current block, a target reference frame may be selected from the two reference frame lists.
Step 302, constructing 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.
In one example, 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 there are identical reference frames in the new reference frame list, and 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 deleted from the new reference frame list.
In another example, all reference frames in the first reference frame list may be added to the new reference frame list. Then, judging whether the reference frame exists in the new reference frame list or not aiming at each reference frame in the second reference frame list; if not, the reference frame may be added to a new reference frame list; if so, the reference frame is not added to the new reference frame list. Alternatively, all reference frames in the second reference frame list may be added to the new reference frame list. Then, aiming at each reference frame in the first reference frame list, judging whether the reference frame exists in the new reference frame list or not; if not, the reference frame may be added to a new reference frame list; if so, the reference frame is not added to the new reference frame list.
In another example, M (e.g., 1) reference frames in the first reference frame list may be added to the new reference frame list and N (e.g., 1) reference frames in the second reference frame list may be added to the new reference frame list. Then, M reference frames in the first reference frame list are added to the new reference frame list, and N reference frames in the second reference frame list are added to the new reference frame list, and so on.
In another example, 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.
When each reference frame in the first reference frame list/the second reference frame list is added to a new reference frame list, whether the reference frame exists in the new reference frame list is judged; if not, the reference frame may be added to a new reference frame list; if so, the reference frame is not added to the new reference frame list.
For example, the current frame POC (play order) is 12, the List0 of the current frame POC is 8,4,0, and three frames, and the List1 thereof POC is 20,16, 8 and three frames. On this basis, the new reference frame list is POC 8, POC 4, POC 0, POC 20, POC 16 for five frames.
In one example, the reference frame configuration of the current frame includes a first reference frame list and a second reference frame list, all sub-blocks of the current frame correspond to the first reference frame list and the second reference frame list, and the current block (i.e. one 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 a reference frame configuration of a current frame for a current block. On this basis, a new reference frame list may be constructed from the first reference frame list and the second reference frame list. It is noted that the new reference frame list only works on the current block and not on other sub-blocks of the current frame. That is, the reference frame configuration of the current frame is not modified, 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, encoding or decoding the current block according to the new reference frame list.
In one example, for the encoding end, the encoding end may encode the current block according to the new reference frame list, and the encoding process is not limited. For the decoding end, the decoding end can decode the current block according to the new reference frame list, and the decoding process is not limited.
According to the technical scheme, aiming at the two reference frame lists corresponding to the current block, a new reference frame list is constructed according to the two reference frame lists, so that the syntax redundancy is reduced, and the encoding performance can be improved. Avoiding syntax redundancy in the unidirectional prediction block can bring about an improvement in coding performance gain.
Example 7: based on the same inventive concept as that in embodiment 6, an embodiment of the present application provides a coding and decoding method, which can be applied to a coding end, and the coding and decoding method can include:
step c1, the encoding end obtains the reference frame configuration of the current frame where the current block is located, and the reference frame configuration includes a first reference frame list and a second reference frame list. For example, the first reference frame List is List0, the second reference frame List is List 1; alternatively, the first reference frame List is List1 and the second reference frame List is List 0.
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 at least one reference frame in the second reference frame list, and any two reference frames in the new reference frame list are different.
And c3, the encoding end encodes the current block according to the new reference frame list.
In one example, based on each reference frame in the new reference frame list, the encoding end determines a rate distortion cost corresponding to each reference frame, and takes the reference frame with the smallest rate distortion cost as the target reference frame.
For example, the new reference frame list is [8,4,0,20,16], and if the reference frame with the smallest rate-distortion cost is the reference frame 20, the target reference frame is the reference frame 20. When the encoding end encodes the current block, the encoding bitstream may include the syntax element ref _ idx _ l1 ═ 11, and may not include the syntax element inter _ pred _ idc, that is, the target reference frame list may be implicitly output (i.e., the target reference frame list is a new reference frame list), and the syntax element ref _ idx _ l1 ═ 11 indicates that the target reference frame is the fourth frame reference frame of the new reference frame list.
In one example, indication information may be represented by a syntax element ref _ idx _ l1 of 11, for example, the indication information is used to indicate an 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 the fourth frame reference frame of the new reference frame list.
Example 8: based on the same inventive concept as that of the foregoing embodiment 6, an encoding and decoding method is provided in the embodiment of the present application, where the encoding and decoding method may be applied to a 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, and the reference frame configuration includes a first reference frame list and a second reference frame list. For example, the first reference frame List is List0, the second reference frame List is List 1; alternatively, the first reference frame List is List1 and the second reference frame List is List 0.
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 comprise 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.
And d3, decoding the current block by the decoding end according to the new reference frame list.
In one example, the decoding end may obtain third indication information from the encoding end, where the third indication information is used to indicate an index value of the target reference frame; selecting a target reference frame corresponding to the index value from a new reference frame list according to the third indication information; and decoding the current block according to the target reference frame.
For example, the decoding end may obtain the indication information (e.g., the syntax element ref _ idx _ l1) from the coded bitstream sent by the encoding end after receiving the coded bitstream. Since the syntax element inter _ pred _ idc is not carried, it is determined that the target reference frame list is a new reference frame list. Assuming that the syntax element ref _ idx _ l1 is 11, that is, the index value of the target reference frame is 4, it is determined that the target reference frame is the reference frame corresponding to the index value 4 in the new reference frame list, that is, the fourth frame reference frame. Assuming that the new reference frame list is [8,4,0,20,16], the target reference frame is the fourth frame reference frame in the new reference frame list, that is, the target reference frame is reference frame 20.
Example 9: based on the same inventive concept as that of the above embodiment 6, the embodiment of the present application provides an encoding and decoding method, which can be applied to a decoding end. The decoding end obtains a reference frame list of the current block (namely the unidirectional interframe prediction block) by analyzing the code stream. Then, a new reference frame list (denoted as list2) is obtained by performing a deduplication operation on the reference frame list. Based on the new reference frame list2, it is determined that the current block points to a reference frame (i.e., a target reference frame) in the new reference frame list2 by parsing the codestream.
Performing a deduplication operation on the reference frame list may include: the current frame POC is 12, the List0 of the current frame POC is 8, POC is 4, POC is 0, and three frames, the List1 of the current frame POC is 20, POC is 16, and POC is 8. In addition, the List2 after the deduplication processing is POC 20, POC 16, POC 8, POC 4, and POC 0, and the order of these reference frames is variable, and is not limited.
Example 10: referring to fig. 4, a schematic flow chart of a coding and decoding method proposed in the embodiment of the present application is shown, where the coding and decoding method can be applied to a coding end, and the method can include the following steps:
step 401, obtaining a reference frame configuration of a current frame where a current block is located, where 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 further include reference frame lists other than the first reference frame list and the second reference frame list, which is not limited in this respect.
In one example, the frame type of the current frame where the current block is located may be a B frame, and since the B frame allows the existence of inter blocks pointing to multiple lists (reference frame lists), such as an inter prediction block pointing to List0 and an inter prediction block pointing to List1, at the same time, 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, which are described as an example for convenience of description. The two reference frame lists may be a List0 and a List 1.
In this embodiment, taking an example that 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 another of the at least two reference frame lists. For example, the first reference frame List is List0, the second reference frame List is List 1; alternatively, the first reference frame List is List1 and the second reference frame List is List 0. There is no limitation on both the first reference frame List and the second reference frame List as long as the first reference frame List is one of a List0 and a List1, and the second reference frame List is the other of a List0 and a List 1.
In one example, the current block may be a bi-directional block, i.e., when there are two reference frame lists for the current block, one target reference frame is selected from each of the two reference frame lists, i.e., two target reference frames are selected.
Step 402, a first target reference frame corresponding to the current block is selected from the first reference frame list, and a second target reference frame corresponding to the current block is selected from the second reference frame list.
For example, all reference frame combinations of the first reference frame list and the second reference frame list may be traversed, and a rate-distortion cost corresponding to each reference frame combination may be determined, where a determination manner of the rate-distortion cost is not limited. The reference frame combination with the lowest rate distortion cost may then be combined as the target reference frame combination. In this way, the reference frame of the target reference frame in the first reference frame list may be combined as the first target reference frame, and the reference frame of the target reference frame in the second reference frame list may be combined as the second target reference frame.
For example, the current frame POC is 12, the List0 is POC 8, POC 4, POC 0 and three frames, the List1 is POC 20, POC 16 and POC 8 and three frames, and all reference frame combinations of List0 and List1 are traversed, such as reference frame combination (820), reference frame combination (816), reference frame combination (88), reference frame combination (420), reference frame combination (416), reference frame combination (48), reference frame combination (020), reference frame combination (016) and reference frame combination (08). Then, a rate distortion cost corresponding to each reference frame combination is determined, and the reference frame combination (820) is a target reference frame combination assuming that the rate distortion cost of the reference frame combination (820) is the minimum. The reference frames combine (820) reference frame 8 in the first reference frame list as a first target reference frame and reference frame 20 in the second reference frame list as a second target reference frame.
And step 403, performing subtraction processing on the reference frames in the second reference frame list to obtain a processed second reference frame list.
In one example, the reference frames in the second reference frame list are pruned (i.e. a certain reference frame in the second reference frame list is deleted), so as to obtain a second reference frame list after processing, including but not limited to:
in the first method, 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, the reference frames in the second reference frame list are deleted to obtain the processed second reference frame list, for example, the first target reference frame in the second reference frame list (i.e., the reference frame in the second reference frame list that is the same as the first target reference frame) is deleted to obtain the processed second reference frame list.
Illustratively, after determining the first target reference frame from the first reference frame list and determining the second target reference frame from the second reference frame list, determining whether the first target reference frame exists in the second reference frame list. If the first target reference frame does not exist, the reference frames in the second reference frame list are not subjected to the pruning processing. If the first target reference frame exists, whether a second target reference frame in the second reference frame list is the same as a first target reference frame in the first reference frame list is judged. If the second target reference frame is the same as the first target reference frame, the reference frames in the second reference frame list are not pruned. And if the second target reference frame is different from the first target reference frame, deleting the reference frames in the second reference frame list to obtain a processed second reference frame list.
For example, the current frame POC is 12, the current frame List0 is POC 8, POC 4, POC 0 is three frames, the current frame List1 is POC 20, POC 16, POC 8 is three frames, the first target reference frame is the reference frame 4 in the List0, and the second target reference frame is the reference frame 8 in the List1, and therefore, since the first target reference frame (i.e., the reference frame 4) does not exist in the List1, the reference frames in the List1 are not subjected to the puncturing process.
For another example, assuming that the first target reference frame is reference frame 8 and the second target reference frame is reference frame 8, since the first target reference frame (i.e., reference frame 8) exists in the List1 and the second target reference frame (i.e., reference frame 8) is the same as the first target reference frame, the reference frames in the List1 may not be pruned.
For another example, assuming that the first target reference frame is the reference frame 8 and the second target reference frame is the reference frame 20, since the first target reference frame (i.e., the reference frame 8) exists in the List1 and the second target reference frame (i.e., the reference frame 20) is different from the first target reference frame, the reference frames in the List1 may be subjected to the puncturing process.
When the reference frames in the List1 are pruned, since the first target reference frame is the reference frame 8 and the second target reference frame is the reference frame 20, the same reference frame (i.e., the reference frame 8) as the first target reference frame in the List1 is pruned to obtain a processed List1, and the processed List1 is POC 20 and 16 frames.
In an example, 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 encoding end may further encode fourth indication information, where the fourth indication information is used to indicate that the second target reference frame is different from the first target reference frame.
Traversing the reference frame combination in the first reference frame list and the second reference frame list; if there are two reference frame combination repetitions, then a target reference frame combination to be pruned is selected from the two reference frame combinations. And if one reference frame in the target reference frame combination is the first target reference frame, deleting the other reference frame in the target reference frame combination from the second reference frame list to obtain a processed second reference frame list.
In the second mode, it is not necessary to define that the first target reference frame exists in the second reference frame list, and it is not necessary to define that the second target reference frame is different from the first target reference frame.
In the process of processing at the encoding end, if two reference frame combinations are repeated, when a second target reference frame is selected from the second reference frame list, the second target reference frame is selected from the second reference frame list after the deletion processing. That is, when traversing all reference frame combinations of the first reference frame list and the second reference frame list, it is traversing all reference frame combinations of the first reference frame list and the pruned second reference frame list.
For example, if the current frame POC is 12, the List0 is POC 8, POC 4, POC 0 and 20, and the List1 is POC 16 and POC 8 and three frames, all reference frame combinations of List0 and List1, such as reference frame combination (820), reference frame combination (816), reference frame combination (88), reference frame combination (420), reference frame combination (416), reference frame combination (48), reference frame combination (020), reference frame combination (016), and reference frame combination (08), may be traversed. In all of the above reference frame combinations, there is no duplication of two reference frame combinations, and therefore, there is no need to prune one reference frame combination.
For another example, if the current frame POC is 12, the List0 is POC 8, POC 4, POC 0 and three frames, the List1 is POC 16, POC 8 and POC 4 and three frames, all reference frame combinations of the List0 and the List1, such as reference frame combination (816), reference frame combination (88), reference frame combination (84), reference frame combination (416), reference frame combination (48), reference frame combination (44), reference frame combination (016), reference frame combination (08) and reference frame combination (04), may be traversed. Of all reference frame combinations, the reference frame combination (84) is repeated with the reference frame combination (48), i.e. both the reference frame combination (84) and the reference frame combination (48) comprise reference frames 8 and 4, and thus the reference frame combination (84) is repeated with the reference frame combination (48).
Then, a reference frame combination to be deleted is selected from the reference frame combination (84) and the reference frame combination (48), and the reference frame combination is used as a target reference frame combination, for example, the reference frame combination (84) is used as the target reference frame combination, or the reference frame combination (48) is used as the target reference frame combination, and the selection mode is not limited as long as the selection strategy of the encoding end is the same as that of the decoding end.
Then, assuming that the target reference frame combination is the reference frame combination (84), and the POC of the first target reference frame is 8 of List0, since one reference frame 8 in the reference frame combination (84) is the first target reference frame of List0, another reference frame 4 in the reference frame combination (84) may be subtracted from List1 to obtain a processed List1, that is, the processed List1 is 16 and 8.
In one example, the reference frame configuration of the current frame includes a first reference frame list and a second reference frame list, to which all sub-blocks of the current frame correspond, and to which the current block (i.e., one sub-block of the current frame) also corresponds.
The first reference frame list and the second reference frame list may be obtained from a reference frame configuration of a current frame for a current block. On this basis, the reference frames in the second reference frame list may be subjected to subtraction processing, so as to obtain a processed second reference frame list. It should be noted that the processed reference frame list only acts on the current block, and not on other sub-blocks of the current frame. That is to say, when the reference frame in the second reference frame list is subjected to the subtraction processing to obtain the processed second reference frame list, the reference frame configuration of the current frame is not changed, that is, the first reference frame list and the second reference frame list in the reference frame configuration are not modified, and when other sub-blocks of the current frame are processed, 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.
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.
In one example, after the reference frames in the second reference frame list are pruned, the index values of the remaining reference frames in the processed second reference frame list are updated, that is, the index value of the second target reference frame in the processed second reference frame list is an updated index value.
For example, the first reference frame List is List0[8,4,0], the processed second reference frame List is List1[20,16], and if the first target reference frame is reference frame 8 and the second target reference frame is reference frame 20, when the coding end codes the current block, the coding bitstream includes syntax elements inter _ pred _ idc ═ 11, ref _ idx _ l0 ═ 0, and ref _ idx _ 1 ═ 0. inter _ pred _ idc of 11 indicates that the target reference frame lists are List0 and List 1. ref _ idx _ l0 being 0 (the index value of the first target reference frame in the first reference frame List) indicates that the first target reference frame is the first frame reference frame in List0, i.e., reference frame 8. ref _ idx _ l1 (the index value of the second target reference frame in the processed second reference frame List) indicates that the second target reference frame is the first frame reference frame in List1, i.e., reference frame 20.
For example, if the List of the second reference frames before processing is List1[8,16,20], and the second target reference frame is reference frame 20, ref _ idx _ l1 is 10, which means that the second target reference frame is the third frame reference frame of List 1. If the processed second reference frame is listed in List1[16,20], and the second target reference frame is the reference frame 20, ref _ idx _ l1 is 1, which means that the second target reference frame is the second frame reference frame of List 1. It is clear that the encoding overhead is reduced for the same second target reference frame (reference frame 20) by the puncturing process.
According to the technical scheme, the reference frames in the at least two reference frame lists can be deleted aiming at the two reference frame lists corresponding to the current block, so that the syntax redundancy is reduced, and the coding performance can be improved. Avoiding syntax redundancy in bi-prediction blocks can lead to an improvement in coding performance gain.
Example 11: based on the same inventive concept as that of embodiment 10, another encoding and decoding method is proposed in the embodiment of the present application, and the encoding and decoding method can be applied to an encoding 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 a first target reference frame corresponding to the current block from the first reference frame list, and selects a second target reference frame corresponding to the current block from the second reference frame list.
In step e3, the encoding end determines whether the first target reference frame exists in the second reference frame list, if yes, step e4 is executed, and if no, the subsequent deletion processing is not required, which is not described herein again.
In step e4, the encoding end determines whether the second target reference frame is different from the first target reference frame, if yes, step e5 is executed, and if no, the subsequent deletion processing is not required, which is not described herein again.
In step e5, the encoding end performs a subtraction process on the reference frames in the second reference frame list to obtain a processed second reference frame list, for example, the first target reference frame in the second reference frame list (i.e., the same reference frame as the first target reference frame in the second reference frame list) may be subtracted to obtain the processed second reference frame list.
And 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.
Example 12: based on the same inventive concept as that of embodiment 10, another encoding and decoding method is proposed in the embodiment of the present application, and the encoding and decoding method can be applied to an encoding 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 further include reference frame lists other than the first reference frame list and the second reference frame list, which is not limited thereto.
In step f2, the encoding end selects a first target reference frame corresponding to the current block from the first reference frame list.
Step f3, the encoding end traverses the reference frame combination in the first reference frame list and the second reference frame list; if there are two reference frame combination repetitions, a target reference frame combination to be pruned is selected from the two reference frame combinations. And if one reference frame in the target reference frame combination is the first target reference frame, deleting the other reference frame in the target reference frame combination from the second reference frame list to obtain a processed second reference frame list.
And f4, the encoding end selects a second target reference frame from the processed second reference frame list.
And f5, the encoding end encodes the current block according to the first target reference frame and the second target reference frame.
Example 13: referring to fig. 5, a schematic flow chart of a coding and decoding method proposed in the embodiment of the present application is shown, where the coding and decoding method can be applied to a decoding end, and the method can include the following steps:
step 501, obtaining a reference frame configuration of a current frame where a current block is located, where 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 further include reference frame lists other than the first reference frame list and the second reference frame list, which is not limited thereto.
In one example, the frame type of the current frame where the current block is located may be a B frame, and since the B frame allows the existence of inter blocks pointing to multiple lists (reference frame lists), such as an inter prediction block pointing to List0 and an inter prediction block pointing to List1, at the same time, 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, which are described as an example for convenience of description. The two reference frame lists may be a List0 and a List 1.
In this embodiment, taking the example that 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 another of the at least two reference frame lists. For example, the first reference frame List is List0, the second reference frame List is List 1; alternatively, the first reference frame List is List1 and the second reference frame List is List 0. There is no limitation on both the first reference frame List and the second reference frame List as long as the first reference frame List is one of a List0 and a List1, and the second reference frame List is the other of a List0 and a List 1.
In one example, the current block may be a bi-directional block, i.e., when there are two reference frame lists for the current block, one target reference frame is selected from each of the two reference frame lists, i.e., two target reference frames are selected.
Step 502, a first target reference frame is selected from a first reference frame list.
For example, the decoding end may obtain the coded bitstream, and the coded bitstream may include sixth indication information, where the sixth indication information is used to indicate an 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, performing a subtraction process on the reference frames in the second reference frame list to obtain a processed second reference frame list.
In one example, the reference frames in the second reference frame list are pruned (i.e. a certain reference frame in the second reference frame list is deleted), so as to obtain a second reference frame list after processing, including but not limited to:
in the first method, 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, the reference frames in the second reference frame list are deleted to obtain the processed second reference frame list, for example, the first target reference frame in the second reference frame list (i.e., the reference frame in the second reference frame list that is the same as the first target reference frame) is deleted to obtain the processed second reference frame list.
In one example, the decoding end may obtain the fourth indication information, for example, the decoding end may obtain the fourth indication information from the encoded bitstream. The fourth indication information is used for indicating 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. And if 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 according to the fourth indication information, deleting the reference frame in the second reference frame list to obtain a processed second reference frame list. And if the second target reference frame in the second reference frame list is determined to be the same as the first target reference frame in the first reference frame list according to the fourth indication information, deleting the reference frame in the second reference frame list.
In summary, 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 frames in the second reference frame list are not subjected to the pruning processing. If the first target reference frame exists, 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 is judged (i.e. whether the second target reference frame is the same as the first target reference frame is judged based on the fourth indication information). If the second target reference frame is the same as the first target reference frame, the reference frames in the second reference frame list are not pruned. And if the second target reference frame is different from the first target reference frame, deleting the reference frames in the second reference frame list to obtain a processed second reference frame list.
For example, the current frame POC is 12, the List0 is three frames including POC 8, POC 4, POC 0, the List1 is 20, POC 16, and POC 8, assuming that the first target reference frame is the reference frame 4 in the List0, the reference frame in the List1 is not truncated because the first target reference frame (i.e., the reference frame 4) does not exist in the List 1. Assuming that the first target reference frame is the reference frame 8 and the fourth indication information indicates that the second target reference frame is the same as the first target reference frame, the reference frames in the List1 are not pruned. Assuming that the first target reference frame is the reference frame 8 and the fourth indication information indicates that the second target reference frame is different from the first target reference frame, the reference frames in the List1 are pruned. When the reference frame in the List1 is pruned, since the first target reference frame is the reference frame 8, the reference frame (i.e., the reference frame 8) in the List1 that is the same as the first target reference frame is pruned to obtain a processed List1, and the processed List1 is 20 and 16 frames.
Traversing the reference frame combination in the first reference frame list and the second reference frame list; if there are two reference frame combination repetitions, then a target reference frame combination to be pruned is selected from the two reference frame combinations. And if one reference frame in the target reference frame combination is the first target reference frame, deleting the other reference frame in the target reference frame combination from the second reference frame list to obtain a processed second reference frame list.
In the second mode, it is not necessary to define that the first target reference frame exists in the second reference frame list, and it is not necessary to define that the second target reference frame is different from the first target reference frame.
For example, if the current frame POC is 12, the List0 is POC 8, POC 4, POC 0 is a common three-frame, the List1 is POC 16, POC 8 is a common three-frame, and POC 4 is a common three-frame, all reference frame combinations of List0 and List1, such as reference frame combination (816), reference frame combination (88), reference frame combination (84), reference frame combination (416), reference frame combination (48), reference frame combination (44), reference frame combination (016), reference frame combination (08), and reference frame combination (04), may be traversed. Of all reference frame combinations, the reference frame combination (84) is repeated with the reference frame combination (48), i.e. both the reference frame combination (84) and the reference frame combination (48) comprise reference frames 8 and 4, and thus the reference frame combination (84) is repeated with the reference frame combination (48).
Then, a reference frame combination to be deleted is selected from the reference frame combination (84) and the reference frame combination (48), and the reference frame combination is used as a target reference frame combination, for example, the reference frame combination (84) is used as the target reference frame combination, or the reference frame combination (48) is used as the target reference frame combination, and the selection mode is not limited as long as the selection strategy of the encoding end is the same as that of the decoding end.
Then, assuming that the target reference frame combination is the reference frame combination (84), and the POC of the first target reference frame is 8 of List0, since one reference frame 8 in the reference frame combination (84) is the first target reference frame of List0, another reference frame 4 in the reference frame combination (84) may be subtracted from List1 to obtain a processed List1, that is, the processed List1 is 16 and 8.
In one example, the reference frame configuration of the current frame includes a first reference frame list and a second reference frame list, to which all sub-blocks of the current frame correspond, and to which the current block (i.e., one sub-block of the current frame) also corresponds.
The first reference frame list and the second reference frame list may be obtained from a reference frame configuration of a current frame for a current block. On this basis, the reference frames in the second reference frame list may be subjected to subtraction processing, so as to obtain a processed second reference frame list. It should be noted that the processed reference frame list only acts on the current block, and not on other sub-blocks of the current frame. That is to say, when the reference frame in the second reference frame list is subjected to the subtraction processing to obtain the processed second reference frame list, the reference frame configuration of the current frame is not changed, that is, the first reference frame list and the second reference frame list in the reference frame configuration are not modified, and when other sub-blocks of the current frame are processed, the first reference frame list and the second reference frame list in the reference frame configuration are still used.
Step 504, selecting a second target reference frame from the processed second reference frame list.
In an example, the decoding end may obtain fifth indication information, for example, obtain the fifth indication information from the encoding end bitstream, where the fifth indication information is used to indicate an index value of the second target reference frame in the processed second reference frame list; then, a reference frame corresponding to the index value may 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.
For example, the first reference frame List is List0[8,4,0], the processed second reference frame List is List1[20,16], and when the encoding end encodes the current block, the encoded bitstream includes syntax elements inter _ pred _ idc ═ 11, ref _ idx _ l0 ═ 0, and ref _ idx _ l1 ═ 0. Based on inter _ pred _ idc of 11, the target reference frame lists are determined to be List0 and List 1. Based on ref _ idx _ l0 being 0 (the index value of the first target reference frame in the first reference frame List), the first target reference frame is determined to be the first frame reference frame in List0, i.e., reference frame 8, and this determination is step 502. Based on ref _ idx _ l1 being 0 (the index value of the second target reference frame in the second reference frame List), the second target reference frame is determined to be the first frame reference frame in List1, i.e., reference frame 20, step 504.
Step 505, the current block is decoded according to the first target reference frame and the second target reference frame.
According to the technical scheme, the reference frames in the at least two reference frame lists can be deleted aiming at the two reference frame lists corresponding to the current block, so that the syntax redundancy is reduced, and the coding performance can be improved. Avoiding syntax redundancy in bi-prediction blocks can lead to an improvement in coding performance gain.
Example 14: based on the same inventive concept as embodiment 13, another encoding and decoding method is proposed in the embodiment of the present application, and the encoding and decoding method can be applied to a decoding end, and the method can include the following steps:
step g1, 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.
In step g2, the decoding end selects a first target reference frame corresponding to the current block from the first reference frame list.
Step g3, the decoding end determines whether the first target reference frame exists in the second reference frame list, if yes, step g4 is executed, if no, the subsequent deletion processing is not required to be executed, and details are not repeated here.
Step g4, the decoding end determines whether the second target reference frame is different from the first target reference frame, if yes, step g5 is executed, if no, the subsequent deletion processing is not required, and details are not repeated here.
For example, 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 decoding end may determine whether the second target reference frame is different from the first target reference frame, and if so, perform step g 5.
In step g6, the decoding end performs a subtraction process on the reference frames in the second reference frame list to obtain a processed second reference frame list, for example, the first target reference frame in the second reference frame list (i.e. the reference frame in the second reference frame list that is the same as the first target reference frame) may be subtracted to obtain the processed second reference frame list.
And g7, the decoding end selects a second target reference frame from the processed second reference frame list.
And g8, the decoding end decodes the current block according to the first target reference frame and the second target reference frame.
Example 15: based on the same inventive concept as embodiment 13, another encoding and decoding method is proposed in the embodiment of the present application, and the encoding and decoding method can be applied to a 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.
In step h2, the decoding end selects a first target reference frame corresponding to the current block from the first reference frame list.
Step h3, the decoding end traverses the reference frame combination in the first reference frame list and the second reference frame list; if there are two reference frame combination repetitions, a target reference frame combination to be pruned is selected from the two reference frame combinations. And if one reference frame in the target reference frame combination is the first target reference frame, deleting the other reference frame in the target reference frame combination from the second reference frame list to obtain a processed second reference frame list.
And h4, the decoding end selects a second target reference frame from the processed second reference frame list.
And h5, decoding the current block according to the first target reference frame and the second target reference frame by the decoding end.
Example 16: based on the same inventive concept as embodiment 13, another encoding and decoding method is proposed in the embodiment of the present application, and the encoding and decoding method can be applied to a decoding end, and the method can include the following steps:
a list of reference frames for a bi-directional inter-predicted block (i.e., the current block) is determined from the encoded bitstream.
Parsing syntax element X results in the current block pointing to reference frame X in the reference frame List 0.
If reference frame X (i.e., the first target reference frame) exists in the List1, syntax element Y is parsed to see if the current block points to the same frame (i.e., if the second target reference frame is the same as the first target reference frame).
If the current block points to the same frame (i.e., the second target reference frame is the same as the first target reference frame), then the subsequent steps are not performed. If the current block points to a different frame, the reference frame List1 is truncated.
Parsing syntax element Z results in the current block pointing to reference frame Z in the pruned List 1.
If the reference frame X (i.e., the first target reference frame) does not exist in the List1, the parsing is normal.
In summary, the first target reference frame may be obtained as the reference frame X, and the second target reference frame may be obtained as the reference frame Z, and then the current block may be decoded by the first target reference frame and the second target reference frame.
Example 17: based on the same inventive concept as that in embodiment 16, another encoding and decoding method is proposed in the embodiment of the present application, and the encoding and decoding method can be applied to a decoding end, and the method can include:
the current frame POC (play order) is 12, the List0 of the current frame POC is 8, POC is 4, POC is 0, and three frames in total, the List1 of the current frame POC is 20, POC is 16, and POC is 8, and three frames in total. If the reference frame X in the List0 is 8, the syntax element Y needs to be parsed since the reference frame 8 is simultaneously present in the List 1.
If syntax element Y is 1, it indicates that the current bi-directional block points to the same frame reference, i.e., to reference frame 8 in List 1. If the syntax element Y is equal to 0, it indicates that the current bi-directional block points to a different reference frame, and therefore, a pruning operation needs to be performed on the List1, and one feasible pruning method is: first, the reference frame 8 in the List1 is removed, and then the reference frame combination that has already appeared is removed, and in this example, the reference frame combination that has already appeared does not appear, so the List1 after the deletion can be two frames, POC 20 and POC 16.
Then, parsing syntax element Z to obtain the bidirectional inter-frame prediction block pointing to reference frame Z in List1 after the deletion; if syntax element Z is 0, then the current bidirectional block points to the reference frame 20 in the pruned List 1; if the syntax element Z is 1, the current bi-directional block points to the reference frame 16 in the pruned List 1.
In another example, if the reference frame X in the List0 is 4 or 0, since the reference frame X is 4 or 0 does not exist in the List1, the following normal parsing may be performed, and thus is not described herein again.
Example 18: referring to fig. 6, a schematic flow chart of a coding and decoding method proposed in the embodiment of the present application is shown, where the coding and decoding method may be applied to an encoding end or a decoding end, and the method may include:
step 601, obtaining a reference frame configuration of a current frame where a current block is located, where 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 further include reference frame lists other than the first reference frame list and the second reference frame list, which is not limited thereto.
In one example, the frame type of the current frame where the current block is located may be a B frame, and since the B frame allows the simultaneous existence of inter blocks pointing to multiple lists (reference frame lists), such as an inter prediction block pointing to List0 and an inter prediction block pointing to List1, 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, which are exemplified for convenience of description. The two reference frame lists may be a List0 and a List 1.
In this embodiment, taking an example that 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 another of the at least two reference frame lists. For example, the first reference frame List is List0, the second reference frame List is List 1; alternatively, the first reference frame List is List1 and the second reference frame List is List 0. There is no limitation on both the first reference frame List and the second reference frame List as long as the first reference frame List is one of a List0 and a List1, and the second reference frame List is the other of a List0 and a List 1.
In one example, the current block may be a bi-directional block, i.e., when there are two reference frame lists for the current block, one target reference frame is selected from each of the two reference frame lists, i.e., two target reference frames are selected.
Step 602, constructing a reference frame combination list according to the first reference frame list and the second reference frame list, wherein the reference frame combination list comprises a plurality of non-repeated reference frame combinations; each reference frame combination includes reference frames present in the first reference frame list and reference frames present in the second reference frame list.
Constructing a reference frame combination list from the first reference frame list and the second reference frame list may include: traversing the reference frame combination in the first reference frame list and the second reference frame list; if two reference frame combinations are repeated, selecting a target reference frame combination needing to be deleted from the two reference frame combinations, and deleting the target reference frame combination; all reference frame combinations that are not pruned are added to the reference frame combination list.
For example, if the current frame POC is 12, the current frame List0 is POC 8, POC 4, POC 0 and 20, and the current frame List1 is POC 16, POC 8 and 8 are all three frames, all reference frame combinations of List0 and List1, such as reference frame combination (820), reference frame combination (816), reference frame combination (88), reference frame combination (420), reference frame combination (416), reference frame combination (48), reference frame combination (020), reference frame combination (016), and reference frame combination (08), may be traversed. Since there are no two reference frame combination repetitions, all reference frame combinations may be added to the reference frame combination list, that is, the reference frame combination list includes reference frame combination (820), reference frame combination (816), reference frame combination (88), reference frame combination (420), reference frame combination (416), reference frame combination (48), reference frame combination (020), reference frame combination (016), reference frame combination (08).
For another example, if the current frame POC is 12, the List0 of the current frame POC is 8, POC is 4, POC is 0 and three frames, and the List1 of the current frame POC is 16, POC is 8, POC is 4 and three frames, all reference frame combinations of List0 and List1, such as reference frame combination (816), reference frame combination (88), reference frame combination (84), reference frame combination (416), reference frame combination (48), reference frame combination (44), reference frame combination (016), reference frame combination (08), and reference frame combination (04), may be traversed. Among all reference frame combinations, the reference frame combination (84) is repeated with the reference frame combination (48), and thus, one reference frame combination (84) is deleted from the reference frame combinations (84) and the reference frame combinations (48), and all reference frame combinations that are not deleted are added to the reference frame combination list, such as the reference frame combination list including the reference frame combination (816), the reference frame combination (88), the reference frame combination (416), the reference frame combination (48), the reference frame combination (44), the reference frame combination (016), the reference frame combination (08), and the reference frame combination (04).
Step 603, select a target reference frame combination from the reference frame combination list.
For example, without limitation, a rate distortion cost corresponding to each reference frame combination in the reference frame combination list may be determined. Then, the reference frame combination with the minimum rate distortion cost can be combined into the target reference frame combination. Thus, 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, the current block is encoded or decoded according to the target reference frame combination.
For example, for the encoding side, the current block may be encoded according to a target reference frame combination (i.e., a first target reference frame and a second target reference frame). For the decoding side, the current block may be decoded according to the target reference frame combination (i.e., the first target reference frame and the second target reference frame).
According to the technical scheme, the reference frames in the at least two reference frame lists can be deleted aiming at the two reference frame lists corresponding to the current block, so that the syntax redundancy is reduced, and the coding performance can be improved. Avoiding syntax redundancy in bi-prediction blocks can lead to an improvement in coding performance gain.
Example 19:
based on the same inventive concept as the method, the embodiment of the application also provides a coding and decoding device.
Referring to fig. 7A, a block diagram of a codec device, which can be applied to an encoding side or a decoding side, includes: an obtaining module 711, configured to obtain a reference frame configuration of a current frame where a current block is located, where the reference frame configuration includes at least two reference frame lists; a processing module 712, 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, so as to obtain a deduplicated reference frame list; a coding/decoding module 713, configured to encode or decode the current block according to the deduplicated reference frame list.
The at least two reference frame lists comprise 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 another one of the at least two reference frame lists; the processing module 712 performs deduplication processing on the at least two reference frame lists, and when obtaining a deduplicated reference frame list, the processing module is specifically configured to: keeping the reference frames in the first reference frame list unchanged, and removing the repeated reference frames in the second reference frame list and the first reference frame list to obtain a second reference frame list after duplication is removed.
If the apparatus is applied to a decoding end, the encoding/decoding module 713 is specifically configured to, when decoding the current block according to the deduplicated reference frame list: acquiring first indication information and second indication information; the first indication information is used for indicating a target reference frame list, and the second indication information is used for indicating an index value of a target reference frame; if the target reference frame list determined according to the first indication information is the de-duplicated reference frame list, selecting a target reference frame corresponding to the index value from the de-duplicated reference frame list according to the second indication information; decoding the current block according to the target reference frame.
Referring to fig. 7B, which is a block diagram of a codec device, the codec device may be applied to an encoding side or a decoding side, and the device includes: an obtaining module 721, configured to obtain a reference frame configuration of a current frame where a current block is located, where the reference frame configuration includes at least two reference frame lists; the at least two reference frame lists comprise a first reference frame list and a second reference frame list; a constructing module 722, 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 comprise at least one reference frame in a first reference frame list and/or at least one reference frame in a second reference frame list, and any two reference frames in the new reference frame list are different; a coding/decoding module 723, configured to code or decode the current block according to the new reference frame list.
If the apparatus is applied to a decoding end, the encoding/decoding module 723 is specifically configured to, when decoding the current block according to the new reference frame list: acquiring third indication information; wherein the third indication information is used for indicating an index value of a target reference frame; selecting a target reference frame corresponding to the index value from the new reference frame list according to the third indication information; decoding the current block according to the target reference frame.
Referring to fig. 7C, which is a block diagram of a codec device, the codec device may be applied to a decoding side, the device including: an obtaining module 731, configured to obtain a reference frame configuration of a current frame where a current block is located, where 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 another of the at least two reference frame lists; a selecting module 732 for selecting a first target reference frame from the first list of reference frames; the processing module 733, configured to perform subtraction processing on the reference frames in the second reference frame list to obtain a processed second reference frame list; the selecting module 732 is further configured to select a second target reference frame from the processed second reference frame list; a decoding module 734, configured to decode the current block according to the first target reference frame and the second target reference frame.
The processing module 733 performs subtraction processing on the reference frames in the second reference frame list, and when obtaining the processed second reference frame list, the processing module is specifically configured to: if the first target reference frame exists in the second reference frame list, acquiring fourth indication information, wherein the fourth indication information is used for indicating whether a 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; and 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, performing deletion processing on the reference frame in the second reference frame list to obtain a processed second reference frame list.
The processing module 733 performs subtraction processing on the reference frames in the second reference frame list, and when obtaining the processed second reference frame list, is specifically configured to: and deleting the first target reference frame in the second reference frame list to obtain a processed second reference frame list.
The processing module 733 performs subtraction processing on the reference frames in the second reference frame list, and when obtaining the processed second reference frame list, is specifically configured to: traversing a reference frame combination in the first reference frame list and the second reference frame list; if two reference frame combination repetitions exist, selecting a target reference frame combination to be deleted from the two reference frame combinations; and if one reference frame in the target reference frame combination is the first target reference frame, deleting the other reference frame in the target reference frame combination from the second reference frame list to obtain a processed second reference frame list.
The selecting module 732 is specifically configured to, when selecting the second target reference frame from the processed second reference frame list: acquiring fifth indication information; wherein the fifth indication information is used for indicating an index value of a second target reference frame 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.
Referring to fig. 7D, a block diagram of a coding and decoding apparatus, which can be applied to a coding side, is shown, the apparatus including: an obtaining module 741, configured to obtain a reference frame configuration of a current frame where a current block is located, where 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 another of the at least two reference frame lists; a selecting module 742 for selecting a first target reference frame from the first reference frame list and a second target reference frame from the second reference frame list; a processing module 743, configured to delete the reference frame in the second reference frame list to obtain a processed second reference frame list; a coding/decoding module 744, configured to encode the current block according to the first target reference frame and the second target reference frame.
The processing module 743 performs a subtraction processing on the reference frame in the second reference frame list, and when the processed second reference frame list is obtained, the processing module is specifically configured to: and 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, deleting the reference frames in the second reference frame list to obtain a processed second reference frame list.
The processing module 743 performs a subtraction processing on the reference frame in the second reference frame list, and when the processed second reference frame list is obtained, the processing module is specifically configured to: and deleting the first target reference frame in the second reference frame list to obtain a processed second reference frame list.
The processing module 743 is further configured to encode fourth indication information if it is determined that a second target reference frame in the second reference frame list is different from a first target reference frame in the first reference frame list, where the fourth indication information is used for indicating that the second target reference frame is different from the first target reference frame.
The processing module 743 performs a subtraction processing on the reference frame in the second reference frame list, and when the processed second reference frame list is obtained, the processing module is specifically configured to: traversing a reference frame combination in the first reference frame list and the second reference frame list; if two reference frame combination repetitions exist, selecting a target reference frame combination to be deleted from the two reference frame combinations; and if one reference frame in the target reference frame combination is the first target reference frame, deleting the other reference frame in the target reference frame combination from the second reference frame list to obtain a processed second reference frame list.
Referring to fig. 7E, which is a block diagram of a codec device, the codec device may be applied to an encoding side or a decoding side, and the device includes: an obtaining module 751, configured to obtain a reference frame configuration of a current frame where a current block is located, where 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 another of the at least two reference frame lists; a constructing module 752 configured to 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 a plurality of reference frame combinations that are not repeated; each reference frame combination comprises a reference frame present in the first reference frame list and a reference frame present in the second reference frame list; a selecting module 753 configured to select a target reference frame combination from the list of reference frame combinations; a coding module 754 for encoding or decoding the current block according to the target reference frame combination.
The constructing module 752 is specifically configured to, when constructing the reference frame combination list according to the first reference frame list and the second reference frame list: traversing a reference frame combination in the first reference frame list and the second reference frame list; if two reference frame combination repetitions exist, selecting a target reference frame combination to be deleted from the two reference frame combinations, and deleting the target reference frame combination; all reference frame combinations that are not pruned are added to the reference frame combination list.
Example 20:
in terms of hardware, the hardware architecture diagram of the encoding end device provided in the embodiment of the present application may specifically refer to fig. 8. The method comprises the following steps: a processor 81 and a machine-readable storage medium 82, wherein: the machine-readable storage medium 82 stores machine-executable instructions executable by the processor 81; the processor 81 is configured to execute machine-executable instructions to implement the methods disclosed in the above examples of the present application.
The processor is configured to execute machine executable instructions to perform the steps of:
acquiring reference frame configuration of a current frame where a current block is located, wherein the reference frame configuration comprises at least two reference frame lists; if repeated reference frames exist in the at least two reference frame lists, performing duplicate removal processing on the at least two reference frame lists to obtain a duplicate-removed reference frame list; encoding the current block according to the de-duplicated reference frame list; alternatively, the first and second electrodes may be,
acquiring reference frame configuration of a current frame where a current block is located, wherein the reference frame configuration comprises at least two reference frame lists; the at least two reference frame lists comprise a first reference frame list and a second reference frame list; constructing 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 comprise at least one reference frame in a first reference frame list and/or at least one reference frame in a second reference frame list, and any two reference frames in the new reference frame list are different; encoding the current block according to the new reference frame list; alternatively, the first and second electrodes may be,
acquiring reference frame configuration of a current frame where a current block is located, wherein the reference frame configuration comprises 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 another of the at least two reference frame lists; selecting a first target reference frame from the first reference frame list and a second target reference frame from the second reference frame list; deleting the reference frames in the second reference frame list to obtain a processed second reference frame list; encoding the current block according to the first target reference frame and the second target reference frame; alternatively, the first and second liquid crystal display panels may be,
acquiring reference frame configuration of a current frame where a current block is located, wherein the reference frame configuration comprises 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 another 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, wherein the reference frame combination list comprises a plurality of non-repeated reference frame combinations; each reference frame combination comprises a reference frame present in the first reference frame list and a reference frame present in the second reference frame list; selecting a target reference frame combination from the reference frame combination list; encoding the current block according to the target reference frame combination.
Example 21:
in terms of hardware, the hardware architecture diagram of the decoding-side device provided in the embodiment of the present application may specifically refer to fig. 9. The method comprises the following steps: a processor 91 and a machine-readable storage medium 92, wherein: the machine-readable storage medium 92 stores machine-executable instructions executable by the processor 91; the processor 91 is configured to execute machine-executable instructions to implement the methods disclosed in the above examples of the present application.
The processor is configured to execute machine executable instructions to perform the steps of:
acquiring reference frame configuration of a current frame where a current block is located, wherein the reference frame configuration comprises at least two reference frame lists; if repeated reference frames exist in the at least two reference frame lists, performing duplicate removal processing on the at least two reference frame lists to obtain a duplicate-removed reference frame list; decoding the current block according to the de-duplicated reference frame list; alternatively, the first and second electrodes may be,
acquiring reference frame configuration of a current frame where a current block is located, wherein the reference frame configuration comprises at least two reference frame lists; the at least two reference frame lists comprise a first reference frame list and a second reference frame list; constructing 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 comprise at least one reference frame in a first reference frame list and/or at least one reference frame in a second reference frame list, and any two reference frames in the new reference frame list are different; decoding the current block according to the new reference frame list; alternatively, the first and second electrodes may be,
acquiring reference frame configuration of a current frame where a current block is located, wherein the reference frame configuration comprises 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 another of the at least two reference frame lists; selecting a first target reference frame from the first reference frame list; deleting the reference frames in the second reference frame list to obtain a 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; alternatively, the first and second electrodes may be,
acquiring reference frame configuration of a current frame where a current block is located, wherein the reference frame configuration comprises 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 another 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, wherein the reference frame combination list comprises a plurality of non-repeated reference frame combinations; each reference frame combination comprises a reference frame present in the first reference frame list and a reference frame present in the second reference frame list; selecting a target reference frame combination from the reference frame combination list; decoding the current block according to the target reference frame combination.
Based on the same inventive concept as the method, the embodiment of the present application further provides a machine-readable storage medium, on which several computer instructions are stored, and when the computer instructions are executed by a processor, the method disclosed in the above example of the present application can be implemented.
The machine-readable storage medium may be any electronic, magnetic, optical, or other physical storage device that can contain or store information such as executable instructions, data, and the like. For example, the machine-readable storage medium may be: a RAM (random Access Memory), a volatile Memory, a non-volatile Memory, a flash Memory, a storage drive (e.g., a hard drive), a solid state drive, any type of storage disk (e.g., an optical disk, a dvd, etc.), or similar storage medium, or a combination thereof.
The systems, devices, modules or units illustrated in the above embodiments may be implemented by a computer chip or an entity, or by a product with certain functions. A typical implementation device is a computer, which may be in the form of a personal computer, laptop, cellular telephone, camera phone, smart phone, personal digital assistant, media player, navigation device, email messaging device, game console, tablet computer, wearable device, or a combination of any of these devices.
For convenience of description, the above devices are described as being divided into various units by function, and are described separately. Of course, the functionality of the units may be implemented in one or more software and/or hardware when implementing the present application.
As will be appreciated by one skilled in the art, embodiments of the present application may be provided as a method, system, or computer program product. Accordingly, the present application may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, embodiments of the present application may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, and the like) having computer-usable program code embodied therein.
The present application is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the application. It will be understood that each flow and/or block of the flowchart illustrations and/or block diagrams, and combinations of flows and/or blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
Furthermore, these computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
The above description is only an example of the present application and is not intended to limit the present application. Various modifications and changes may occur to those skilled in the art. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present application should be included in the scope of the claims of the present application.

Claims (12)

1. A method of encoding and decoding, the method comprising:
acquiring reference frame configuration of a current frame where a current block is located, wherein the reference frame configuration comprises 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 another of the at least two reference frame lists;
selecting a first target reference frame from the first reference frame list;
deleting the reference frames in the second reference frame list to obtain a processed second reference frame list; wherein the deleting the reference frame in the second reference frame list to obtain a processed second reference frame list includes: if the first target reference frame exists in the second reference frame list, acquiring fourth indication information, wherein the fourth indication information is used for indicating whether a 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 a second target reference frame in the second reference frame list is different from a first target reference frame in the first reference frame list, performing deletion processing on a reference frame in the second reference frame list to obtain a 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.
2. The method of claim 1, wherein the pruning the reference frames in the second reference frame list to obtain a processed second reference frame list comprises: and deleting the first target reference frame in the second reference frame list to obtain a processed second reference frame list.
3. The method of claim 1, wherein the pruning the reference frames in the second reference frame list to obtain a processed second reference frame list further comprises:
traversing a reference frame combination in the first reference frame list and the second reference frame list;
if two reference frame combination repetitions exist, selecting a target reference frame combination to be deleted from the two reference frame combinations; and if one reference frame in the target reference frame combination is the first target reference frame, deleting the other reference frame in the target reference frame combination from the second reference frame list to obtain a processed second reference frame list.
4. The method of claim 1,
selecting a second target reference frame from the processed second reference frame list, comprising:
acquiring fifth indication information; wherein the fifth indication information is used for indicating an index value of a second target reference frame 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.
5. A method of encoding and decoding, the method comprising:
acquiring reference frame configuration of a current frame where a current block is located, wherein the reference frame configuration comprises 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 another of the at least two reference frame lists;
selecting a first target reference frame from the first reference frame list and a second target reference frame from the second reference frame list;
deleting the reference frames in the second reference frame list to obtain a processed second reference frame list; wherein the deleting the reference frame in the second reference frame list to obtain a processed second reference frame list includes: 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, deleting the reference frame in the second reference frame list to obtain a processed second reference frame list;
encoding the current block according to the first target reference frame and the second target reference frame.
6. The method of claim 5, wherein the pruning the reference frames in the second reference frame list to obtain a processed second reference frame list further comprises: and deleting the first target reference frame in the second reference frame list to obtain a processed second reference frame list.
7. The method of claim 5, further comprising:
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, encoding fourth indication information, where the fourth indication information is used to indicate that the second target reference frame is different from the first target reference frame.
8. The method according to claim 5, wherein said performing the pruning processing on the reference frames in the second reference frame list to obtain a processed second reference frame list comprises:
traversing a reference frame combination in the first reference frame list and the second reference frame list;
if two reference frame combination repetitions exist, selecting a target reference frame combination to be deleted from the two reference frame combinations; and if one reference frame in the target reference frame combination is the first target reference frame, deleting the other reference frame in the target reference frame combination from the second reference frame list to obtain a processed second reference frame list.
9. An apparatus for encoding and decoding, the apparatus comprising:
the device comprises an acquisition module, a processing module and a processing module, wherein the acquisition module is used for acquiring the reference frame configuration of a current frame where a current block is located, and the reference frame configuration comprises 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 another of the at least two reference frame lists;
a selection module for selecting a first target reference frame from the first list of reference frames;
the processing module is used for deleting the reference frames in the second reference frame list to obtain a processed second reference frame list; wherein the processing module is specifically configured to: if the first target reference frame exists in the second reference frame list, acquiring fourth indication information, wherein the fourth indication information is used for indicating whether a 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 a second target reference frame in the second reference frame list is different from a first target reference frame in the first reference frame list, performing deletion processing on a reference frame in the second reference frame list to obtain a processed second reference frame list;
the selecting module is further configured to select a second target reference frame from the processed second reference frame list;
a decoding module for decoding the current block according to the first target reference frame and the second target reference frame.
10. An apparatus for encoding and decoding, the apparatus comprising:
the device comprises an acquisition module, a processing module and a display module, wherein the acquisition module is used for acquiring the reference frame configuration of a current frame where a current block is located, and the reference frame configuration comprises 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 another of the at least two reference frame lists;
a selection module for selecting a first target reference frame from the first reference frame list and a second target reference frame from the second reference frame list;
the processing module is used for deleting the reference frames in the second reference frame list to obtain a processed second reference frame list; wherein the processing module is specifically configured to: 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, deleting the reference frame in the second reference frame list to obtain a processed second reference frame list;
and the coding and decoding module is used for coding the current block according to the first target reference frame and the second target reference frame.
11. An encoding side apparatus, comprising: a processor and a machine-readable storage medium storing machine-executable instructions executable by the processor;
the processor is configured to execute machine executable instructions to perform the steps of:
acquiring reference frame configuration of a current frame where a current block is located, wherein the reference frame configuration comprises 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 another of the at least two reference frame lists; selecting a first target reference frame from the first reference frame list and a second target reference frame from the second reference frame list; deleting the reference frames in the second reference frame list to obtain a processed second reference frame list; encoding the current block according to the first target reference frame and the second target reference frame; wherein the deleting the reference frame in the second reference frame list to obtain a processed second reference frame list includes: and 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, deleting the reference frames in the second reference frame list to obtain a processed second reference frame list.
12. A decoding-side apparatus, comprising: a processor and a machine-readable storage medium storing machine-executable instructions executable by the processor;
the processor is configured to execute machine executable instructions to perform the steps of:
acquiring reference frame configuration of a current frame where a current block is located, wherein the reference frame configuration comprises 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 another of the at least two reference frame lists; selecting a first target reference frame from the first reference frame list; deleting the reference frames in the second reference frame list to obtain a 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; wherein the deleting the reference frame in the second reference frame list to obtain a processed second reference frame list includes: if the first target reference frame exists in the second reference frame list, acquiring fourth indication information, wherein the fourth indication information is used for indicating whether a 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; and if 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 according to the fourth indication information, deleting the reference frame in the second reference frame list to obtain a processed second reference frame list.
CN201910204787.6A 2019-03-18 2019-03-18 Encoding and decoding method, device and equipment Active CN111726632B (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910204787.6A CN111726632B (en) 2019-03-18 2019-03-18 Encoding and decoding method, device and equipment
PCT/CN2020/079885 WO2020187222A1 (en) 2019-03-18 2020-03-18 Encoding and decoding method and apparatus, and devices thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910204787.6A CN111726632B (en) 2019-03-18 2019-03-18 Encoding and decoding method, device and equipment

Publications (2)

Publication Number Publication Date
CN111726632A CN111726632A (en) 2020-09-29
CN111726632B true CN111726632B (en) 2022-08-26

Family

ID=72518973

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910204787.6A Active CN111726632B (en) 2019-03-18 2019-03-18 Encoding and decoding method, device and equipment

Country Status (2)

Country Link
CN (1) CN111726632B (en)
WO (1) WO2020187222A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112770179B (en) * 2021-01-05 2023-06-16 武汉球之道科技有限公司 Efficient transmission system for on-line event rebroadcasting

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1875637A (en) * 2003-08-26 2006-12-06 汤姆森特许公司 Method and apparatus for minimizing number of reference pictures used for inter-coding
JP2014206948A (en) * 2013-04-16 2014-10-30 株式会社東芝 Entry point extraction device
CN104160704A (en) * 2012-02-08 2014-11-19 高通股份有限公司 Restriction of prediction units in b slices to uni-directional inter prediction
CN106851271A (en) * 2011-03-08 2017-06-13 Jvc 建伍株式会社 Moving image encoding device and moving picture encoding method

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4228316B2 (en) * 2005-12-28 2009-02-25 船井電機株式会社 Recorded program management device
JP5014195B2 (en) * 2008-02-25 2012-08-29 キヤノン株式会社 Imaging apparatus, control method thereof, and program
US9008176B2 (en) * 2011-01-22 2015-04-14 Qualcomm Incorporated Combined reference picture list construction for video coding
JP5801908B2 (en) * 2011-03-11 2015-10-28 サムスン エレクトロニクス カンパニー リミテッド Video encoding method and apparatus, decoding method and apparatus thereof
WO2013001748A1 (en) * 2011-06-29 2013-01-03 パナソニック株式会社 Image encoding method, image decoding method, image encoding device, image decoding device, and image encoding/decoding device
JP2013042236A (en) * 2011-08-11 2013-02-28 Jvc Kenwood Corp Apparatus, method and program for encoding moving image
US9106927B2 (en) * 2011-09-23 2015-08-11 Qualcomm Incorporated Video coding with subsets of a reference picture set
MX344805B (en) * 2011-10-17 2017-01-09 Toshiba Kk Encoding method and decoding method.
US9258559B2 (en) * 2011-12-20 2016-02-09 Qualcomm Incorporated Reference picture list construction for multi-view and three-dimensional video coding
EP4224845A1 (en) * 2012-01-19 2023-08-09 VID SCALE, Inc. Method and apparatus for signaling and construction of video coding reference picture lists
US9264706B2 (en) * 2012-04-11 2016-02-16 Qualcomm Incorporated Bypass bins for reference index coding in video coding
JP6360154B2 (en) * 2013-04-05 2018-07-18 ヴィド スケール インコーポレイテッド Inter-layer reference image enhancement for multi-layer video coding
CN103957341B (en) * 2014-04-30 2016-09-28 华为软件技术有限公司 The method of picture transfer and relevant device thereof
US10182240B2 (en) * 2014-11-18 2019-01-15 Mediatek Inc. Method of bi-prediction video coding based on motion vectors from uni-prediction and merge candidate
CN106658019B (en) * 2015-10-31 2019-11-12 华为技术有限公司 The method and apparatus of reference frame encoding and decoding
WO2018122092A1 (en) * 2016-12-30 2018-07-05 Telefonaktiebolaget Lm Ericsson (Publ) Methods, apparatus, and computer programs for decoding media

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1875637A (en) * 2003-08-26 2006-12-06 汤姆森特许公司 Method and apparatus for minimizing number of reference pictures used for inter-coding
CN106851271A (en) * 2011-03-08 2017-06-13 Jvc 建伍株式会社 Moving image encoding device and moving picture encoding method
CN104160704A (en) * 2012-02-08 2014-11-19 高通股份有限公司 Restriction of prediction units in b slices to uni-directional inter prediction
JP2014206948A (en) * 2013-04-16 2014-10-30 株式会社東芝 Entry point extraction device

Also Published As

Publication number Publication date
CN111726632A (en) 2020-09-29
WO2020187222A1 (en) 2020-09-24

Similar Documents

Publication Publication Date Title
JP7358464B2 (en) Method and apparatus for video encoding
US20170318309A1 (en) Conditional signalling of reference picture list modification information
JP7372327B2 (en) Video decoding methods and equipment, and computer programs
JP2017184266A (en) Video decoder with enhanced cabac decoding
WO2019129130A1 (en) Image prediction method and device and codec
JP2022508074A (en) Methods and equipment for multi-hypothesis signaling for skip and merge modes and distance offset table signaling for merge by motion vector differences.
CN105493505A (en) Unified intra block copy and inter prediction modes
CN113491118B (en) Video encoding and decoding method and device
TW201408076A (en) Sign hiding techniques for quantized transform coefficients in video coding
CN111726632B (en) Encoding and decoding method, device and equipment
CN112118451B (en) Encoding and decoding method, device and equipment
CN113163207B (en) Encoding and decoding method, device and equipment
CN111510726B (en) Coding and decoding method and equipment thereof
KR20140031974A (en) Image coding method, image decoding method, image coding device, image decoding device, image coding program, and image decoding program
CN113422951B (en) Decoding and encoding method, device and equipment
JP2012070153A (en) Moving image encoding apparatus, moving image decoding apparatus, moving image encoding method, moving image decoding method and program
CN112868231B (en) Video encoding and decoding
CN116405694A (en) Encoding and decoding method, device and equipment
CN110868601A (en) Inter-frame prediction method and device, video encoder and video decoder

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant