Reference picture management and list construction
By deriveing the reference picture list from the video-encoded bitstream and retaining only the indicated reference frames, the memory load overload and inefficiency caused by the use of all pictures as prediction references in the prior art is solved, and effective management of the decoded picture buffer and the encoding efficiency of the video codec are achieved.
Patent Information
- Application Number
- CN202510017233.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2018-12-31
- Filing Date
- 2019-11-01
- Publication Date
- 2025-04-11
AI Technical Summary
When existing video codecs use all previously encoded pictures as prediction references in inter prediction, it results in overload memory and inefficiency.
By deriving a reference picture list for decoding from the bitstream of the encoded picture sequence, only the reference frames indicated in the list are retained, thereby managing the contents of the decoding picture buffer. The list consists of a single number including a total number of all reference frames, and the reference frame is identified by the picture order count difference between the current frame and the reference frame.
Effectively manage the decoding screen buffer, avoid excessive memory load, and improve the encoding efficiency of video codecs.
Smart Images

Figure CN119815006A_ABST
Abstract
Description
[0001] This application is a divisional application of the application with international application number PCT / US2019 / 059429, international application date November 1, 2019, entry into the Chinese national phase date June 17, 2021, national application number 201980083576.X, and invention name “Reference Screen Management and List Creation”.
[0002] CROSS-REFERENCE TO RELATED APPLICATIONS
[0003] This application claims priority under 35 USC 119(e) to U.S. Provisional Application No. 62 / 780,848, filed on December 17, 2018, and U.S. Provisional Application No. 62 / 786,771, filed on December 31, 2018. Background Art
[0004] The present disclosure relates to video encoding and decoding techniques, and in particular to the management of prediction reference frame lists.
[0005] Inter prediction is a key component of modern video codecs. This process allows the use of previously coded images as prediction references for the current coded image and can significantly affect the coding efficiency of the video codec. However, in theory, all previously coded pictures can potentially be used as prediction references, which can have a significant impact on memory and signaling which references to use. This is because in this case all such pictures would have to be kept in memory, while at the same time a fairly large index would have to be associated with it and referenced when specifying the references used to predict each picture. Summary of the invention
[0006] In one aspect, a technique for managing a decoded picture buffer (DPB) may include deriving a list of all reference pictures that may be used to decode a portion of a bitstream syntax (such as a slice layer) from a bitstream of a coded sequence of pictures. The bitstream syntax indicating the reference picture list may consist essentially of a single list of reference pictures including a single number indicating the total number of all reference frames. The contents of the DPB may then be managed by evicting from the DPB any decoded pictures that are not in the list.
[0007] In further aspects of these techniques, reference frames in a single list may be identified by a picture order count (POC) difference between a current frame and the identified reference frame. In another aspect, the reference picture may be defined by a communication syntax according to Table 3. In another aspect, the bitstream syntax for the POC difference may include a magnitude of the difference and, if the magnitude is non-zero, a flag indicating a sign of the difference. In another aspect, the reference picture may be defined by a communication syntax according to Table 2. In another aspect, the bitstream syntax for the POC difference may include: for the first reference frame in the list, the magnitude of the difference and always include a flag indicating a sign of the difference; and for subsequent reference frames in the list, the magnitude of the difference and, only if the magnitude is non-zero, a flag indicating a sign of the difference. In another aspect, the reference picture may be defined by a communication syntax according to Table 4. In another aspect, the bitstream syntax for each entry in the reference frame list may include a flag indicating whether absolute POC is used and an indicator of the reference frame, wherein: if the flag indicates that absolute reference is used, the indicator of the reference frame includes the least significant bit of the POC of the reference frame; and if the flag indicates that absolute reference frame is not used, the indicator of the reference frame includes the (POC) difference between the current frame and the reference frame. In another aspect, the reference picture may be defined by a communication syntax according to Table 5.
[0008] In further aspects of these techniques, the bitstream syntax for each entry in the reference frame list includes a flag indicating whether prediction of motion vectors from the corresponding reference picture is based on POC information or not based on POC information. In another aspect, the reference picture may be defined by a communication syntax according to Table 6. In another aspect, the bitstream syntax for each entry in the reference frame list may include a consider_POC flag indicating whether prediction of motion vectors from the corresponding reference picture is based on POC information, an absolute_ref flag indicating whether absolute POC is used, and an indicator of the reference frame, wherein: if the absolute_ref flag indicates that an absolute reference is used, the indicator of the reference frame includes the least significant bit of the POC of the reference frame; if the absolute_ref flag indicates that an absolute reference frame is not used, the indicator of the reference frame includes a (POC) difference between a current frame and the reference frame. In another aspect, the reference picture may be defined by a communication syntax according to Table 6.5. In another aspect, if the consider_POC flag indicates that prediction is based on POC information, the bitstream syntax for each entry may also include a weighting parameter. In another aspect, the reference pictures may be defined by a communication syntax according to Table 7. In another aspect, a list of all reference pictures may be included in a slice header, and wherein a portion of a bitstream syntax that may use the reference picture list corresponds to a slice.
[0009] In one aspect, a method may include: deriving, in response to a bitstream of a coded sequence of pictures, a list of all reference pictures used to decode a portion of a bitstream syntax, the portion of the bitstream syntax consisting essentially of a single list of reference pictures including a single number indicating a total number of all reference frames; and evicting decoded pictures that are not in the list from a DPB; wherein the reference frames in the single list are identified by a picture order count (POC) difference between a current frame and the identified reference frame.
[0010] In one aspect, a method may include: in response to a bitstream of a coded sequence of pictures, deriving a list of all reference pictures for decoding a portion of a bitstream syntax, the portion of the bitstream syntax consisting essentially of a single list of reference pictures including a single number indicating a total number of all reference frames; and evicting decoded pictures that are not in the list from a DPB; wherein the reference frames in the single list are identified by a picture order count (POC) difference between a current frame and the identified reference frame; wherein the bitstream syntax for the POC difference includes a magnitude of the difference and, if the magnitude is not zero, includes a flag indicating a sign of the difference.
[0011] In one aspect, a method may include: in response to a bitstream of an encoded sequence of pictures, deriving a list of all reference pictures for decoding a portion of a bitstream syntax, the portion of the bitstream syntax consisting essentially of a single list of reference pictures including a single number indicating the total number of all reference frames; and evicting decoded pictures that are not in the list from the DPB; wherein the reference frames in the single list are identified by a picture order count (POC) difference between a current frame and the identified reference frame; wherein the bitstream syntax for the POC difference includes: for the first reference frame in the list, the magnitude of the difference, and always including a flag indicating the sign of the difference; and for subsequent reference frames in the list, the magnitude of the difference, and only if the magnitude is not zero, including a flag indicating the sign of the difference.
[0012] In one aspect, a method may include: in response to a bitstream of a coded sequence of pictures, deriving a list of all reference pictures for decoding a portion of a bitstream syntax, the portion of the bitstream syntax consisting essentially of a single list of reference pictures including a single number indicating the total number of all reference frames; and evicting decoded pictures that are not in the list from the DPB; the bitstream syntax for each entry in the reference frame list including a flag indicating whether an absolute POC is used and an indicator of a reference frame, and wherein if the flag indicates that an absolute reference is used, the indicator of the reference frame includes the least significant bit of the POC of the reference frame, and if the flag indicates that an absolute reference frame is not used, the indicator of the reference frame includes a (POC) difference between a current frame and a reference frame.
[0013] In one aspect, a method may include: deriving, in response to a bitstream of a coded sequence of pictures, a list of all reference pictures for decoding a portion of a bitstream syntax, the portion of the bitstream syntax consisting essentially of a single list of reference pictures including a single number indicating a total number of all reference frames; and evicting decoded pictures that are not in the list from the DPB; wherein the bitstream syntax for each entry in the reference frame list includes a flag indicating whether prediction of a motion vector from the corresponding reference picture is based on POC information or not based on POC information.
[0014] In one aspect, a method may include: deriving, in response to a bitstream of a coded sequence of pictures, a list of all reference pictures for decoding a portion of a bitstream syntax, the portion of the bitstream syntax consisting essentially of a single list of reference pictures including a single number indicating a total number of all reference frames; and evicting decoded pictures that are not in the list from a DPB; wherein the bitstream syntax for each entry in the reference frame list includes a consider_POC flag indicating whether prediction of a motion vector from a corresponding reference picture is based on POC information, an absolute_ref flag indicating whether an absolute POC is used, and an indicator of the reference frame, and wherein if the absolute_ref flag indicates that an absolute reference is used, the indicator of the reference frame includes the least significant bit of the POC of the reference frame, and if the absolute_ref flag indicates that an absolute reference frame is not used, the indicator of the reference frame includes a (POC) difference between a current frame and the reference frame.
[0015] In one aspect, a method may include: deriving, in response to a bitstream of a coded sequence of pictures, a list of all reference pictures for decoding a portion of a bitstream syntax, the portion of the bitstream syntax consisting essentially of a single list of reference pictures including a single number indicating the total number of all reference frames; and evicting decoded pictures that are not in the list from the DPB; wherein the bitstream syntax for each entry in the reference frame list includes a flag indicating whether prediction of a motion vector from the corresponding reference picture is based on POC information or not based on POC information; wherein if the consider_POC flag indicates that prediction is based on POC information, the bitstream syntax for each entry includes a weighting parameter. BRIEF DESCRIPTION OF THE DRAWINGS
[0016] Figure 1 is a simplified block diagram of an exemplary video encoding system.
[0017] Figure 2 is a simplified block diagram of an exemplary decoding system.
[0018] Figure 3 A method for managing a decoded picture buffer (DPB) is described. DETAILED DESCRIPTION
[0019] To avoid the memory and efficiency issues associated with using all previously encoded pictures as prediction references, modern video codecs such as MPEG-4 AVC / H.264, HEVC / H.265, VVC / H.266, and AV1 provide mechanisms to limit the number of available references for each picture. There is usually a decoded picture buffer (DPB) of limited size (i.e., how many reference pictures it can hold at any given time), which is updated and maintained using a clearly specified process. A well-defined process is also used to construct a reference picture list, which is used for inter-frame prediction for single prediction (e.g., prediction based on a single reference) and dual prediction (e.g., prediction based on two references).
[0020] Specifically, in the AVC specification, a well-defined process based on a "sliding window" mechanism is provided, which is also enhanced by a memory management control operation (MMCO) instruction that is "explicitly" signaled for building a DPB. In this process, based on whether the picture is signaled as a reference, the picture is basically added to the DPB, and indicators (FrameNum) are associated with these pictures, which are related to their coding order. Although the sliding window (first-in, first-out) method is usually used to control which pictures will remain in the DPB based on the DPB size, the MMCO instruction can also override the sliding window operation by explicitly specifying the removal of certain frames or by marking certain frames as long-term reference frames. If a frame is marked as a long-term reference frame, the frame will only be removed by an explicit MMCO instruction specifying its removal or by signaling an instantaneous decoder refresh (IDR) frame. The IDR frame specifies that all frames in the DPB should be removed immediately. AVC specifies that reference picture lists are constructed based on a predefined process that uses FrameNum information (for P slices) and a picture order count (POC) parameter associated with each reference picture to order the pictures, or AVC uses a process called "reference picture list modification" that explicitly specifies the order of reference pictures in each list. The POC parameter can be a number that uniquely identifies each frame in the coded video sequence, so the POC parameter can also uniquely identify each reference frame.
[0021] A technique for encoding a video using motion compensation includes a compressed bitstream syntax indicating a current list of motion prediction reference frames without distinguishing between short-term reference frames and long-term reference frames. The list of reference frames may be provided, for example, in a slice header and may be applied to the coded data video data within the corresponding slice. The list may begin with a single number indicating the total number of reference frames. In one aspect, the list may identify reference frames by an absolute POC number associated with each reference frame or by a ΔPOC number indicating the difference between the absolute POC of the current frame and the absolute POC of each reference frame. In one aspect, when the absolute value of the POC is not equal to zero, the ΔPOC reference number may be encoded with a mark indicating the sign of the ΔPOC. In one aspect, a mark may be encoded for each reference frame to indicate whether the POC information should be used when scaling the prediction reference, and a weighting parameter may be included when the POC information should be used.
[0022] In one aspect, the list of all motion prediction references can be used to manage a decoded picture buffer (DPB), for example, by evicting references previously stored in the DPB that are no longer included in the current reference list. In another aspect, POC information can be used to predict motion vectors only when a marker for a reference frame indicates that POC information should be used. In one aspect, the DPB in an encoder can be managed based on a list of reference frames provided by the encoder in a bitstream syntax transmitted to a decoder to simulate the DPB in a decoder.
[0023] Figure 1 is a simplified block diagram of an exemplary video encoding system 100. The principles of the present disclosure are applicable to a video encoding system including a video encoder 120 and a video decoder. Figure 1 1 shows an embodiment of a video encoder 120. Here, the video encoder 120 may receive video data from a video source 110 and encode the video data to provide bandwidth compression. The video encoder 120 is shown as including a forward encoder 121, a decoder 122, a decoded picture buffer (DPB) 123, and a predictor 124. The DPB 123 may store decoded pictures of previously encoded and decoded reference frames that may be used for inter-frame prediction of a new input frame. The predictor 124 may compare the content of the new input frame to be encoded with the content of the reference frame stored in the DPB 123, typically at a sub-frame granularity called a coding unit, and may provide the content of the prediction reference to the forward encoder 121.
[0024] The forward encoder 121 may encode each coding unit of the new input frame according to the selected coding mode. When inter-frame prediction is selected for encoding, the forward encoder may encode the input coding unit differentially relative to the predicted coding unit. The forward encoder 121 may apply additional encoding processes such as quantization and entropy encoding. The forward encoder 121 may output data representing the encoded coding unit to the transmitter 140 for transmission to another device.
[0025] When a new input frame is selected for use as a reference frame, the decoder 122 reverses the encoding operations applied by the forward encoder 121 and generates a decoded reference frame therefrom. The decoded reference frame may be stored in the DPB 123 for use as a candidate prediction reference for encoding input video received later.
[0026] The video encoding may include a controller 125. The controller 125 may control which frames are selected for use as reference frames and may manage the DPB 123 according to the above process. When making a DPB management decision, the controller 125 may cause the transmitter 130 to transmit signaling according to any of the techniques described in Tables 2 to 7.
[0027] Figure 2 2 is a simplified block diagram of an exemplary decoding system 200. The encoded video data is typically transmitted to a video decoder ( Figure 2 ), where the encoded video data is decoded and consumed. Receiver 210 may receive the encoded video data from a communication or computer network or from a storage device (not shown), and the receiver may route the encoded video data to video decoder 220 for decoding.
[0028] The video decoder 220 may include a decoder 221, a predictor 222, a decoded picture buffer 223, and a controller 224. The predictor 222 may respond to an identifier of an encoding decision applied to the encoded video data to identify data from the decoded picture buffer 223, which is a prediction reference for each encoded coding unit, and the predictor 222 may provide the reference data to the decoder 221. The decoder 221 may reverse the forward encoder 121 ( Figure 1 ) encoding operation applied. Decoder 221 can generate decoded frames of video therefrom, and the decoder can output the decoded frames to video sink device 230 (such as a display, storage device, or an application that processes such video) for consumption.
[0029] The decoded data of the frame designated as the reference frame may be stored in the decoded picture buffer 223. In the absence of a transmission error between the video encoder 120 and the video decoder 220, the contents of the DPB 123, 223 will remain synchronized with each other.
[0030] The controller 224 of the video decoder may perform the DPB management operations as described above in response to the signaling provided in the channel. Thus, when the controller 224 receives the signaling, for example, as shown in any of the aforementioned Tables 2 to 7, it may perform corresponding management operations on its DPB 223.
[0031] Figure 3 A method for managing a decoded picture buffer (DPB) is described. Terminal 302 may, for example, use Figure 1 The encoding system 100 encodes the video, and the terminal 304 can use, for example, Figure 2 The decoding system 200 decodes the video. Figure 3 In the method, the terminal 302 repeatedly encodes the video slice (block 310) into a bitstream having a bitstream syntax including a reference picture list, and then transmits the bitstream of the slice to the terminal 304 (message 312). The terminal 304 then decodes the slice, including extracting the reference picture list from the slice bitstream (block 314). If the state of the DPB in the terminal 304 is inconsistent with the reference picture list (block), the reference pictures that are not in the current list can be evicted (block 318), otherwise control can flow to block 320. These methods can be repeated for subsequent slices in both terminals 302 and 304.
[0032] In optional block 320, image data may be predicted based on the extracted current reference picture list. For example, the image data may be predicted from one or more pictures in the reference picture list based on motion vectors extracted from the bitstream. The predicted image data may then form the basis for a decoded frame, as described above with respect to Figure 2 As described in the decoder 200 of the present invention, the decoded frame can be stored for future use as a new reference frame in the DPB. The new reference frame itself can also be driven out from the DPB, for example, based on a later reference picture list specified later in the bitstream.
[0033] As explained in the background section above, the AVC design has a major flaw in that it requires knowledge of how reference frames were processed in the past to properly maintain the DPB. Any operations such as splicing, channel changes, and editing can result in the loss of such information and thus impair the decoding process. Therefore, a different approach is used in HEVC, where a complete set of reference pictures that may be used by the current picture and any subsequent pictures is signaled. This is called the reference picture set (RPS) process. Doing so ensures that each time the decoder knows which pictures can be used for prediction. The HEVC design also includes a list initialization process and an optional picture list modification process to generate a prediction list.
[0034] Although the HEVC method avoids the problems of AVC design, there are also dissatisfactions that the method is too complicated and difficult to understand. Therefore, for the upcoming VVC / H.266 video coding standard, it is suggested that a new method that unifies the RPS process with the reference list construction process should be adopted. Specifically, it is proposed to signal the reference list modification process instead of signaling the optional reference list modification process after signaling the RPS, and instead signal the reference picture list structure (RPLS), which combines the indication of which references should be in the DPB with the construction of the initial representation of the two reference lists. Basically, this specifies that all reference entries in the DPB should be retained in the appropriate order for each list. Then, the process is followed by an indication of how many references should be retained for each list in ascending order. In these systems, short-term references and long-term references are still retained, and the number of available references is limited by the size of the DPB. The signaling of the reference picture list structure for this method is shown below, which includes the number of short-term references and long-term references signaled, whether the picture is a long-term picture, and information for identifying them in the bitstream. Such information may be relative (ΔPOC) for short-term reference pictures compared to the current reference, or absolute for long-term reference pictures.
[0035]
[0036] Table 1
[0037] In the present disclosure, the method proposed for the VVC specification improves upon it by first removing the concept of long-term references. Specifically, there may be limited value in separating references in short-term and long-term references. The proposed method already has the ability to indicate which frames should be retained to predict current or potentially future pictures, and the classification of whether a picture is short-term or long-term does not appear to provide any benefit in this context. Instead, the encoder can signal which past pictures should be used as references, and not explicitly identify short-term or long-term references. In one example, this can be done with the following syntax:
[0038]
[0039] Table 2
[0040] or:
[0041]
[0042] Table 3
[0043] In these examples, the relative distance according to the POC between the current picture and the reference is indicated. For index i=0, the distance between the current picture and the first reference is used. For index i>0, the distance relative to the current picture can be calculated, or in an alternative embodiment, the POC distance between the reference of index I and the reference of index i-1 can be calculated. If the codec does not allow the use of itself to predict the current picture, i.e. the availability of the "current picture reference" method, then the value 0 of the reference of index i=0 will not be possible. In this case, the first case can be modified as follows:
[0044]
[0045] Table 4
[0046] Another alternative would be to allow for some pictures to indicate their absolute POC number instead of the ΔPOC. This can be done as follows:
[0047]
[0048] Table 5
[0049] Note that poc_lsb_ref does not need to have the same size as slice_pic_order_cnt_lsb used to signal the picture order count modulo MaxPicOrderCntLsb of the current picture. It can also be larger, and its size can be indicated by an additional parameter signaled at the sequence or picture parameter set level. This can allow signaling of references that are farther away from the current picture than the distance of MaxPicOrderCntLsb, similar to what is done for long-term references. However, those references may still not be considered long-term references. Alternatively, the encoder can also optionally signal additional parameters for each reference or the entire reference group, which will specify additional fixed distances for those references relative to the current reference. Absolute position references can be considered in the Δ distance calculation or can be excluded from it.
[0050] Long-term references in AVC and HEVC also affect the calculation of weighted prediction (AVC) and motion vector prediction (AVC and HEVC). This is because for long-term references, the assumption of using the temporal relationship between pictures hinted by the POC parameters may be unreliable. Since in the proposed system, there is no explicit indication whether a picture is long-term or short-term, this capability may be lost. Instead, and if such a capability is retained, a flag may be indicated to indicate whether the POC information specified for a particular reference should be used for such calculations. This can be done, for example, by introducing a new flag, such as consider_poc_for_derivations_flag. The new flag can be signaled for each reference, for all references equally, or only for certain types of references (for example, for references signaled with absolute POC lsb in AVC or HEVC). An example of signaling is as follows:
[0051]
[0052] Table 6
[0053] The bitstream syntax implementations of Table 5 and Table 6 may be combined to provide a flag indicating an absolute POC or a delta POC, and a hint to indicate whether the reference frame POC is to be used as a motion vector prediction:
[0054]
[0055] Table 6.5
[0056] In an alternative embodiment, the POC may be associated only with the construction of the DPB, and additional parameters are signaled which will indicate scaling parameters (such as for scaling motion vectors) that should be used during prediction and decoding operations. Such scaling parameters may be specified during decoding of the current picture, and may persist throughout the existence of the picture in the DPB, but may also be signaled explicitly and dynamically within the ref_pic_list_struct. When combined with the references in this list, similar to what is now done for the POC, the value that should be used for the current picture may then also be signaled (current pic_weight[listIdx] below). By using this approach, different scaling of any relevant parameters may be achieved for different pictures or even subgroups. All of these parameters and their presence may also be controlled by parameters of higher-level syntax elements.
[0057]
[0058] Table 7
[0059] The above structure allows duplication of references, in particular if such duplication is used to allow multi-hypothesis prediction using the same reference (including multi-hypothesis prediction with more than two (2) defined reference lists), or for weighted prediction purposes. For weighted prediction, the same "physical reference" can be associated with different weighted prediction parameters, but the codec only allows weighted prediction parameters to be signaled at the slice level or higher, rather than at the block level (as in AVC and HEVC). In that case, the same reference is typically specified multiple times in the reference lists, and each instance of that reference is associated with a different weight. For example, HEVC allows up to 15 such references per list. However, such duplicated references do not require any additional memory space and therefore should not be considered to take up space in the DPB. The same is true for references that may be in multiple lists. For determining the pictures that should be retained in the DPB, only "unique" references should be considered, and essentially the union of all unique references in all prediction lists is considered.
[0060] Codecs such as HEVC and AVC also utilize the concept of parallelized "grouping" of blocks such as tiles or slices. For these groups, it is important that the complete DPB and reference list information is also available. In AVC and HEVC, it is mandatory that the DPB information is the same on all slices, and this is appropriately handled by duplicating the required information for each codec on all slices (i.e., MMCO+ sliding window operation in AVC and RPS process in HEVC). Similar considerations need to be made in VVC. However, the following options exist here:
[0061] a) Repeat the exact same RPLS for all slices / tiles / groups. This will ensure that the DPB can be constructed identically for all such groups, however it has the limitation that the construction of the reference list is less flexible and may be less efficient. This can still be combined with different weighted prediction parameters, since those parameters can be signaled with different sets. However, the weighted parameters can also be constrained to be identical.
[0062] b) However, allowing RPLSs to differ in terms of picture ordering and duplication of references ensures that the same picture is present at least once in the RPLS per slice / tile / group, even if not used for prediction, in order to ensure that the DPB is constructed identically for all such groups.
[0063] c) The RPLS are allowed to be different for each group. However, in this case, the "union" of all RPLS should be considered to build the DPB. This can provide coding benefits, but requires parsing all RPLS in all groups, and may also complicate the design of parallel decoding systems or systems that may wish to perform partial image decoding on a sub-group basis (e.g., using motion constrained tiling principles such as used in 360-degree applications).
[0064] d) Signaling the complete DPB in the first RPLS (first group / tile / slice), while allowing all other groups to use a reduced version of the RPLS that only has the necessary pictures for performing prediction in the current group. The beneficial effect of this will be that systems that need to know which references to use will only need to parse the first group, while ignoring the other groups. This saves bits, however it may be more error-prone and will have the same problems as case (c) in terms of parallel decoding. In this case, if necessary, the complete DPB may also be optionally signaled in other groups, but it will not be enforced. However, enforcement may also be accomplished by application or use, and there may even be a signal in the bitstream indicating whether such enforcement is used.
[0065] The above concepts can be used alone or in combination with other mechanisms for managing the DPB and references, including sliding windows or some other predefined mechanisms that specify how to add and remove pictures from the DPB, signaling reference lists / DPBs in order or with picture parameter sets, using memory management operations for some pictures, etc.
[0066] As mentioned above, Figure 1 and Figure 2 1 shows a functional block diagram of a terminal. In a specific implementation, the terminal may be embodied as a hardware system, in which case the blocks shown may correspond to circuit subsystems. Alternatively, the terminal may be embodied as a software system, in which case the blocks shown may correspond to program modules within a software program executed by a computer processor. In yet another embodiment, the terminal may be a hybrid system involving both hardware circuit systems and software programs. In addition, not all of the functional blocks described herein need to be provided or provided as separate units. For example, although Figure 1 Components of an exemplary encoder are shown as separate units, including components such as forward encoder 121 and decoder 122. In one or more embodiments, some components may be integrated. Unless otherwise noted, these implementation details are not important to the operation of the present invention. Similarly, with respect to Figure 3 The encoding, decoding and buffer management operations described may be performed continuously as data is input into the encoder / decoder.The order of steps described above does not limit the order of operations.
[0067] For example, some embodiments can be implemented using a non-transient computer-readable storage medium or an article that can store instructions or instruction sets, which, if executed by a processor, can cause the processor to perform methods according to the disclosed embodiments. Exemplary methods and computer program instructions can be implemented on a non-transient machine-readable storage medium. In addition, a server or database server may include a machine-readable medium configured to store machine-executable program instructions. The features of the embodiments of the present invention can be implemented in hardware, software, firmware, or a combination thereof and used in a system, subsystem, component, or subcomponent thereof. "Machine-readable storage medium" may include any medium capable of storing information. Examples of the machine-readable storage medium include electronic circuits, semiconductor memory devices, ROMs, flash memory devices, erasable ROMs (EROMs), floppy disks, CD-ROMs, optical disks, hard disks, optical fiber media, or any electromagnetic storage device or optical storage device.
[0068] Although the invention has been described in detail with reference to some embodiments, variations in the scope and spirit of the invention will be apparent to those skilled in the art. Therefore, the invention should be considered to be limited only by the scope of the appended claims.
Claims
1. A method for managing a decoded picture buffer (DPB) of a decoder, the method comprising: responsive to a bitstream of a coded sequence of pictures, deriving a list of all reference pictures to be stored in the DPB when decoding a portion of the bitstream according to a bitstream syntax consisting essentially of a single list of reference pictures, the single list comprising a single number indicating a total number of all reference pictures used in the portion of the bitstream; parsing, according to the bitstream syntax of the single list of reference pictures, an identification of the reference pictures by a picture order count (POC) difference between a current picture and an identified reference picture and an indication of a weight of the reference picture; Decoding a target picture in the coded sequence of pictures comprises predicting a portion of the target picture from the reference picture based on the indication of the weight.
2. The method according to claim 1, further comprising: in, The indication of the weighting of the reference picture comprises an indication of a weighting derivation flag indicating whether the weighting of the reference picture is to be derived based on a POC of the reference picture.
3. The method according to claim 1, further comprising: in, The single list includes multiple entries having a same reference picture, and a first entry having the common reference picture includes an indication of a first weight that is different than a second weight in a second entry for the same reference picture.
4. The method according to claim 1, further comprising: Decoded pictures not in the list are evicted from the DPB.
5. The method of claim 1 , wherein parsing the identification of the reference picture comprises: Analyze the magnitude of the difference in the POC; determining whether the magnitude of the difference is greater than zero; as well as When the magnitude is determined to be greater than zero, a flag indicating a sign of the difference is resolved.
6. A method for managing a decoded picture buffer (DPB) of an encoder, the method comprising: encoding a source picture in a sequence of pictures into a coded bitstream comprises predicting a portion of the source picture from a reference picture based on a weighted indication of the reference picture; upon decoding a portion of the coded bitstream in a bitstream syntax consisting essentially of a single list of reference pictures, including in the coded bitstream a list of all reference pictures to be stored in the DPB, the single list comprising a single number indicating the total number of all reference pictures used in the portion of the bitstream; An identification of the reference picture is included in the bitstream syntax of the single list of reference pictures by a picture order count (POC) difference between a current picture and the identified reference picture and an indication of the weight of the reference picture.
7. The method according to claim 6, further comprising: in, The indication of the weighting of the reference picture comprises an indication of a weighting derivation flag indicating whether the weighting of the reference picture should be derived based on a POC of the reference picture.
8. The method according to claim 6, further comprising: in, The single list includes a plurality of entries having a common reference picture, and a first entry having the same reference picture includes an indication of a first weight that is different than a second weight in a second entry for the same reference picture.
9. The method according to claim 6, further comprising: Decoded pictures not in the list are evicted from the DPB.
10. The method of claim 6, wherein the identification of the reference picture comprises: The magnitude of the difference in POC; and When the magnitude is determined to be greater than zero, a flag indicating the sign of the difference.
11. A method for managing a decoded picture buffer (DPB), the method comprising: deriving, in response to a bitstream of a coded sequence of pictures, a list of all reference pictures for use in decoding a portion of a bitstream syntax consisting essentially of a single list of reference pictures, the single list including a single number indicating a total number of all reference pictures; Decoding a picture in the encoded sequence of pictures comprises predicting a portion of the picture from a reference picture in the list; Resolving an identification of a reference picture by a picture order count (POC) difference between a current picture and an identified reference picture according to a bitstream syntax of an entry in the list for the reference picture, comprising: Resolving the magnitude of the difference; determining whether the magnitude of the difference is greater than zero; and When the magnitude is determined to be greater than zero, a flag indicating a sign of the difference is resolved.
12. The method according to claim 11, further comprising: Decoded pictures not in the list are evicted from the DPB.
13. The method of claim 11, wherein the bitstream syntax for the POC difference value comprises: for a first reference picture in the list: the magnitude of the difference value, and always including a flag indicating the sign of the difference value; as well as For subsequent reference pictures in the list: the magnitude of the difference value and, only if the magnitude is non-zero, a flag indicating the sign of the difference value.
14. The method of claim 11, wherein the bitstream syntax for an entry in the list of reference pictures comprises a flag indicating whether an absolute POC is used and an indicator of the reference picture, wherein: If the flag indicates that absolute referencing is used, the indicator of the reference picture comprises the least significant bits of the POC of the reference picture, and If the flag indicates that an absolute reference picture is not used, the indicator of the reference picture comprises a POC difference between a current picture and the reference picture.
15. The method of claim 11, wherein the bitstream syntax of an entry in the list of reference pictures comprises a weight derivation flag for each entry, the weight derivation flag indicating whether a POC of a corresponding reference picture should be considered for deriving a weight for the corresponding reference picture.
16. The method of claim 15, wherein: When the weighted derivation flag is true, the bitstream syntax of the corresponding entry includes weighted parameters of the corresponding reference picture.
17. A non-transitory computer readable medium comprising instructions which, when executed on a processor, cause: deriving, in response to a bitstream of a coded sequence of pictures, a list of all reference pictures for use in decoding a portion of a bitstream syntax consisting essentially of a single list of reference pictures, the single list including a single number indicating a total number of all reference pictures; Decoding a picture in the encoded sequence of pictures comprises predicting a portion of the picture from a reference picture in the list; Resolving an identification of a reference picture by a picture order count (POC) difference between a current picture and an identified reference picture according to a bitstream syntax of an entry in the list for the reference picture, comprising: Resolving the magnitude of the difference; determining whether the magnitude of the difference is greater than zero; and When the magnitude is determined to be greater than zero, a flag indicating a sign of the difference is resolved.
18. The medium of claim 17, wherein the instructions further cause: Decoded pictures not in the list are evicted from the DPB.
19. The medium of claim 17, wherein the bitstream syntax for the POC difference value comprises: for a first reference picture in the list: the magnitude of the difference value, and always including a flag indicating the sign of the difference value; as well as For subsequent reference pictures in the list: the magnitude of the difference value and, only if the magnitude is non-zero, a flag indicating the sign of the difference value.
20. The medium of claim 17, wherein the bitstream syntax for an entry in the list of reference pictures includes a flag indicating whether an absolute POC is used and an indicator of the reference picture, wherein: If the flag indicates that absolute referencing is used, the indicator of the reference picture comprises the least significant bits of the POC of the reference picture, and If the flag indicates that an absolute reference picture is not used, the indicator of the reference picture comprises a POC difference between a current picture and the reference picture.