WO2016192594A1 - Method of decoded picture buffer management for intra block copy mode - Google Patents

Method of decoded picture buffer management for intra block copy mode Download PDF

Info

Publication number
WO2016192594A1
WO2016192594A1 PCT/CN2016/083737 CN2016083737W WO2016192594A1 WO 2016192594 A1 WO2016192594 A1 WO 2016192594A1 CN 2016083737 W CN2016083737 W CN 2016083737W WO 2016192594 A1 WO2016192594 A1 WO 2016192594A1
Authority
WO
WIPO (PCT)
Prior art keywords
picture
dpb
current
buffer
picture buffer
Prior art date
Application number
PCT/CN2016/083737
Other languages
French (fr)
Inventor
Xiaozhong Xu
Shan Liu
Chenghao Liu
Original Assignee
Hfi Innovation Inc.
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 Hfi Innovation Inc. filed Critical Hfi Innovation Inc.
Priority to CN201680031167.1A priority Critical patent/CN107615762B/en
Priority to CA2985872A priority patent/CA2985872C/en
Priority to EP16802517.9A priority patent/EP3292691A4/en
Priority to CN202010460921.1A priority patent/CN111818340B/en
Priority to US15/577,237 priority patent/US10587881B2/en
Publication of WO2016192594A1 publication Critical patent/WO2016192594A1/en

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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • 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/58Motion compensation with long-term prediction, i.e. the reference frame for a current frame not being the temporally closest one
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • 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/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements

Definitions

  • the present invention relates to video coding using coding modes including Intra-block copy (IntraBC) mode and Inter prediction mode.
  • the present invention relates to techniques to manage decoded picture buffer (DPB) .
  • High Efficiency Video Coding is a new coding standard that has been developed in recent years.
  • the fixed-size macroblock of H. 264/AVC is replaced by a flexible block, named coding unit (CU) .
  • Pixels in the CU share the same coding parameters to improve coding efficiency.
  • a CU may begin with a largest CU (LCU) , which is also referred as coded tree unit (CTU) in HEVC.
  • CTU coded tree unit
  • prediction unit PU
  • Intra prediction is performed using prediction based on reconstructed pixels from neighboring blocks. Intra prediction may select an Intra Mode from a set of Intra Modes, which include a vertical mode, horizontal mode and various angular prediction modes.
  • Intra-block copy a new Intra coding mode, named Intra-block copy (IntraBC) has been used.
  • Intra block copy uses reconstructed samples in the current picture before in-loop filter as a reference picture for prediction.
  • This un-filtered picture needs to be stored in addition to the filtered picture after in-loop filter.
  • additional memory and the memory bandwidth is required for reading and writing, respectively.
  • the whole reconstructed picture before in-loop filter needs to be stored.
  • both the reconstructed current pictures before in-loop filter and after in-loop filter need to be stored for IBC prediction and r for temporal prediction respectively. Therefore, Intra block copy memory access causes increased memory bandwidth.
  • it also causes additional decoding picture buffer (DPB) .
  • DPB decoding picture buffer
  • Section 8 general decoding process of High Efficiency Video Coding (HEVC) Screen Content Coding (SCC) : Draft 3 (Joshi, et al., HEVC Screen Content Coding Draft Text 3, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 20th Meeting: Geneva, CH, 10–18 Feb. 2015, Document: JCTVC-T1005) is modified so that a picture storage buffer in the decoded picture buffer (DPB) is allocated for the current picture.
  • HEVC High Efficiency Video Coding
  • SCC Screen Content Coding
  • JCT-VC Joint Collaborative Team on Video Coding
  • the reconstructed current picture is marked as "used for long-term reference” in case that curr_pic_as_ref_enabled_flag is equal to 1.
  • curr_pic_as_ref_enabled_flag is equal to 1
  • the decoded sample values of the reconstructed current picture before in-loop filtering are stored into the picture storage buffer allocated for the current picture.
  • the entire current decoded picture after in-loop filter is stored in the picture storage buffer allocated for the current picture and is marked as "used for short-term reference” .
  • the decoded pictures are managed by operation of the decoded picture buffer in Annex C.
  • Draft 3 which consists of a set of ordered processes including removal of pictures from the decoded picture buffer (DPB) (i.e., subclause C. 3.2) , picture output i.e., subclause C. 3.3) , current decoded picture marking and storage (i.e., subclause C. 3.4) .
  • DPB decoded picture buffer
  • picture output i.e., subclause C. 3.3
  • current decoded picture marking and storage i.e., subclause C. 3.4
  • decoded picture buffer specifies when each of the operations happens so that DPB fullness can be controlled appropriately and the DPB fullness does not exceed the DPB maximum size limitation.
  • the DPB fullness is decremented by one.
  • the current decoded picture marking and storage the current decoded picture is stored in the DPB in an empty picture storage buffer and the DPB fullness is incremented by one.
  • storing of the current picture before in-loop filter and updating of the DPB fullness are not specified in the operation of the DPB, in Annex C. 3. Accordingly, the operation of DPB cannot be appropriately managed.
  • the memory bandwidth reduction is evaluated in order to avoid causing one additional picture memory buffer and bandwidth for reading and writing reconstructed samples before in-loop filter in addition to the samples after in-loop filter.
  • the reconstructed samples before in-loop filter are also referred as unfiltered reconstructed samples in this disclosure.
  • the reconstructed samples after in-loop filter are also referred as filtered reconstructed samples in this disclosure.
  • JCTVC-S0145 discloses a method to reduce average bandwidth when Intra block copy (IBC) mode is used for prediction. JCTVC-S0145 is based on the observation that not all previously unfiltered decoded samples of the current picture are used for prediction in IBC mode.
  • JCTVC-S0145 the method indicates which of the previously decoded coded tree blocks (CTBs) are used for IBC prediction.
  • CTBs coded tree blocks
  • a flag is sent for each block in a slice header, which CTBs need to be stored for reducing average bandwidth when a picture parameter set (PPS) level flag indicating the presence of the former flags in slice header.
  • PPS picture parameter set
  • JCTVC-S0145 has been questioned regarding know how many CTBs are needed in a slice and how many flags are needed to send in advance.
  • DPB management method is not included in JCTVC-S0145. It is not clear whether the reconstructed samples before in-loop filter are stored in memory buffer in the DPB or outside DPB.
  • JCTVC-T0045 (Lainema, et al., AHG10: Memory bandwidth reduction for intra block copy, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 20th Meeting: Geneva, CH, 10–18 Feb. 2015, Document: JCTVC-T0045) and JCTVC-T0051 (Laroche, et al., AHG10: On IBC memory reduction, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 20th Meeting: Geneva, CH, 10–18 Feb.
  • JCTVC-T0051 disclose a method to store either reconstructed samples before in-loop filter or after in-loop filter by indicating which CTBs are used for IBC prediction to address the issue of increased bandwidth and storage related IBC.
  • the general interest is to keep the memory bandwidth of IBC under the limit as specified HEVC Inter mode. It means only one reconstructed picture buffer can be used for each picture even in the scenario of IBC.
  • JCTVC-T0051 also discloses a method to store either reconstructed samples before in-loop filter or after in-loop filter in a picture memory buffer, which are typically outside DPB.
  • the operation of DPB in Annex C. 3 of JCTVC-T1005 may be managed similar to that in HEVC version 1 as discussed follows.
  • the current and the previous CTBs are always considered as available for IBC prediction. Therefore, additional memory for storing the two additional CTBs is required in JCTVC-T0051.
  • HEVC SCC Draft specifies that all reference pictures shall be present in the DPB when needed for prediction. The reason is that the current picture before in-loop filter is used as reference picture and inserted in a reference picture list as HEVC SCC: Draft 3.
  • the reference picture list RefPicList0 for P slices and, both reference picture lists RefPicList0 and RefPicList1 for B slices are derived as follows:
  • curr_pic_as_ref_enabled_flag 1 specifies a picture referring to the SPS (sequence parameter set) may be included in a reference picture list of the picture itself.
  • curr_pic_as_ref_enabled_flag 0 specifies that a picture referring to the SPS is never included in any reference picture list of the picture itself.
  • the value of curr_pic_as_ref_enabled_flag is inferred to be equal to 0.
  • the reference picture list RefPicList0 is constructed as follows:
  • RefPicList0 [rIdx] ref_pic_list_modification_flag_l0?
  • RefPicListTemp0 [list_entry_l0 [rIdx] ] : RefPicListTemp0 [rIdx ]
  • the current picture may not be included in the active reference picture list.
  • DPB Decoded Picture Buffer
  • a reference picture has to be in Decoded Picture Buffer (DPB) in order to be used by a current picture.
  • DPB Decoded Picture Buffer
  • the size of DPB is constrained to be MaxDpbSize, which is derived as shown in Table 2.
  • MaxLumaPs is the maximum luma picture size and maxDpbPicBuf is the maximum DPB size, such as 6.
  • DPB size such as 6.
  • Methods and Apparatus of managing decoded picture buffer for a video decoding system are disclosed, where the video decoding system uses coding modes including an Inter prediction mode and a Intra Block Copy (IBC) mode.
  • IBC Intra Block Copy
  • one or more previously reconstructed pictures after in-loop filtering are stored in a DPB (decoded picture buffer) .
  • a first picture buffer and a second picture buffer are allocated in the DPB.
  • the reconstructed image units before the in-loop filtering are stored in the first picture buffer and the reconstructed image units after the in-loop filtering are stored in the second picture buffer.
  • a current reconstructed image unit is coded in the IBC mode, the current reconstructed image unit is reconstructed using the reconstructed image units before the in-loop filtering in the first picture buffer to derive IBC prediction. If the current reconstructed image unit is coded in the Inter prediction mode, the current reconstructed image unit is reconstructed using the previously reconstructed pictures after the in-loop filtering in the DPB to derive Inter prediction.
  • the first picture buffer and the second picture buffer are allocated in the DPB before the current picture is decoded.
  • the DPB buffer fullness is incremented by one each time when either the first picture buffer or the second picture buffer is allocated in the DPB.
  • the first picture buffer is marked to indicate that the first picture buffer is used for long-term reference and the second picture buffer is marked to indicate that the second picture buffer is used for short-term reference.
  • the first picture buffer allocated is removed from the DPB after the current picture is reconstructed.
  • the second picture buffer allocated stays in the DPB and is used as a short term reference picture for decoding of subsequent pictures.
  • the DPB buffer fullness is decremented by one when the first picture buffer allocated is removed from the DPB.
  • a variable to indicate a maximum DPB buffer size can remain to be the same as the maximum DPB buffer size specified for High Efficiency Video Coding (HEVC) Screen Content Coding (SCC) Draft 3.
  • HEVC High Efficiency Video Coding
  • SCC Screen Content Coding
  • a first picture buffer and a second picture buffer are allocated in the DPB or in a temporary buffer outside the DPB, where one of the first picture buffer and the second picture buffer is in the DPB and one of the other is in the temporary buffer outside the DPB.
  • the first picture buffer and the second picture buffer are allocated before the current picture is decoded.
  • the DPB buffer fullness is incremented by one when the first picture buffer or the second picture buffer is placed into the DPB. If the first picture buffer is allocated in the DPB, the first picture buffer allocated is removed from the DPB after the current picture is reconstructed, and the DPB buffer fullness is decremented by one when the first picture buffer allocated is removed from the DPB.
  • the second picture buffer is then placed into the DPB and the DPB buffer fullness is incremented by one. If the first picture buffer is allocated in the temporary buffer outside the DPB, the first picture buffer is removed from the temporary buffer after the current picture is reconstructed. The second picture buffer allocated stays in the DPB after the current picture is reconstructed.
  • Fig. 1 illustrates a flowchart of an exemplary coding system using coding modes including IntraBC mode (Intra-block copy mode) and Inter prediction mode according to an embodiment of the present invention, where two picture buffers are allocated in the decoded picture buffer (DPB) to store the current reconstructed picture after in-loop filtering and the current reconstructed picture before in-loop filtering.
  • IntraBC mode Intra-block copy mode
  • Inter prediction mode Inter prediction mode
  • Fig. 2 illustrates a flowchart of an exemplary coding system using coding modes including IntraBC mode (Intra-block copy mode) and Inter prediction mode according to an embodiment of the present invention, where one picture buffer is allocated in the decoded picture buffer (DPB) and one picture buffer is allocated in a temporary buffer outside the DPB to store the current reconstructed picture after in-loop filtering and the current reconstructed picture before in-loop filtering.
  • IntraBC mode Intra-block copy mode
  • Inter prediction mode Inter prediction mode
  • the reference data for Intra Block Copy has to be stored in the reconstructed data is unfiltered.
  • the reference data for Inter prediction have to be stored in a filtered version (i.e., reconstructed and filtered) .
  • the present invention discloses modifications of the DPB (decoded picture buffer) operations and bitstream conformance in IBC.
  • This method allocates a picture buffer in the DPB for storing reconstructed samples before in-loop filter.
  • DPB operation is modified so that the DPB operation is managed appropriately when the current picture is included in a reference picture list.
  • the modification consists of updating of the DPB fullness and defining the time instant of updating the DPB fullness if the current picture is included in a reference picture list.
  • the embodiment can be applied to the system as specified in HEVC SCC: Draft 3.
  • HEVC SCC Draft 3
  • JCTVC-T1005 a subclause C. 3.5 related to current decoded picture before in-loop filter storage is added, where the DPB fullness is increased by 1 when the current picture is included in a reference picture list.
  • the process defined in subclause C. 3.5 of JCTVC-T1005 occurs instantaneously at the CPB (Coded Picture Buffer) removal time of access unit n, CpbRemovalTime [n] , when the current picture is included in a reference picture list.
  • the process is invoked once per picture before decoding of the current picture, but after parsing the header of the first slice segment header of the current picture.
  • subclause 8. X When the current picture is included in a reference picture list, a decoding process for decoding the current decoded reference picture is added in subclause 8. X, which needs to be invoked once per picture after the processing of C. 3.5, which specifies processing of the current decoded picture before in-loop filter storage.
  • subclause 8. X When subclause 8. X is invoked, the PicOrderCntVal for the generated picture is set equal to POC of the current picture.
  • Exemplary HEVC SCC Draft 3 changes according to the first embodiment.
  • the current HEVC SCC: Draft 3 can be modified to support the first embodiment mentioned above.
  • new subclauses 3.5 and 3.6 are added to address (a) current decoded picture marking and storage and (b) current decoded picture before in-loop filter storage.
  • the current subclause 5.2.3 entitled “Picture decoding, marking, additional bumping and storage” is modified.
  • subclause 8.1.3 entitled “Decoding process for a coded picture with nuh_layer_id equal to 0” is modified and subclause 8. X is added.
  • curr_pic_as_ref_enabled_flag is equal to 0
  • the current decoded picture is stored in the DPB in an empty picture storage buffer, the DPB fullness is incremented by one, and the current picture is marked as "used for short-term reference” .
  • curr_pic_as_ref_enabled_flag When curr_pic_as_ref_enabled_flag is equal to 1, the process specified in this subclause occurs instantaneously at the CPB removal time of access unit n, CpbRemovalTime [n] . The process is invoked once per picture before decoding of the current picture but after parsing the header of the first slice segment of the current picture.
  • the DPB fullness is incremented by 1.
  • the current picture is considered as decoded after the last decoding unit of the picture is decoded. If curr_pic_as_ref_enabled_flag is equal to 0, the current decoded picture is stored in an empty picture storage buffer in the DPB. Otherwise, if curr_pic_as_ref_enabled_flag is equal to 1, DPB fullness keeps unchanged. In addition, as specified in subclause 8.1.3, the current decoded picture is stored in the DPB in the picture storage buffer, which is allocated for the current picture and is marked as "used for short-term reference" . And the following applies:
  • the current decoded picture is marked as "used for short-term reference" .
  • the number of pictures in the DPB that are marked as "needed for output” is greater than sps_max_num_reorder_pics [HighestTid] .
  • the decoding process operates as follows for the current picture CurrPic:
  • curr_pic_as_ref_enabled_flag When curr_pic_as_ref_enabled_flag is equal to 1, a picture storage buffer in the DPB is allocated for the current picture, and the DPB fullness is increased by 1 as specified in C. 3.5 (Current decoded picture before in-loop filter storage) , and the current picture is marked as "used for long-term reference” .
  • curr_pic_as_ref_enabled_flag is equal to 1
  • general decoding process for generationg the current decoded reference picture specified in Section 8. X is invoked, which needs to be processed once per picture after processing C. 3.5 (Current decoded picture before in-loop filter storage) .
  • curr_pic_as_ref_enabled_flag When curr_pic_as_ref_enabled_flag is equal to 1, this process is invoked once per coded picture after processing C. 3.5 and prior to the decoding process for reference picture lists construction specified in subclause 8.3.4 by applying following process:
  • PicOrderCntVal The value of PicOrderCntVal for the generated picture is set equal to POC of the current picture.
  • a new subclause C. 3.5 related to current decoded picture before in-loop filter storage is added, where the DPB fullness is incremented by 1 when the current picture is included in a reference picture list.
  • the PicOrderCntVal for the generated picture is set equal to picture order count (POC) of the current picture, which needs to be processed once per picture after processing C. 3.5.
  • the value of PicOutputFlag for the picture is set equal to 0 and the current picture before in-loop filter is marked as "unused for reference” , which is invoked once per picture after decoding of the last decoding unit of the picture and prior to parsing the first slice segment header of the next picture.
  • the current picture before in-loop filter in DPB will be removed from the DPB when the removal of pictures from the DPB (subclause C. 3.2) is processed.
  • Current decoded picture marking and storage (subclause C. 3.4) and picture decoding, marking, additional bumping and storage (subclause C. 5.2.3) do not need to be modified.
  • HEVC SCC As follows. The changes in subclauses 8.13 from the current HEVC SCC: Draft 3 are indicated, where inserted text is shown in Italic style and deleted text is enclosed by an asterisk pair within a bracket pair (i.e., [*deleted text*] ) .
  • curr_pic_as_ref_enabled_flag When curr_pic_as_ref_enabled_flag is equal to 1, the process specified in this subclause happens instantaneously at the CPB removal time of access unit n, CpbRemovalTime [n] . The process is invoked once per picture before decoding of the current picture but after parsing the header of the first slice segment of the current picture.
  • the DPB fullness is incremented by 1.
  • the decoding process operates as follows for the current picture CurrPic:
  • curr_pic_as_ref_enabled_flag When curr_pic_as_ref_enabled_flag is equal to 1, a picture storage buffer in the DPB is allocated for the current picture, and the DPB fullness is increased by 1 as specified in C. 3.5, and the current picture is marked as "used for long-term reference" .
  • curr_pic_as_ref_enabled_flag is equal to 1
  • X. 1 is invoked, which needs to be processed once per picture after processing of C. 3.5 (Current decoded picture before in-loop filter storage) .
  • PicOutputFlag is set equal to 0.
  • PicOutputFlag is set equal to pic_output_flag.
  • the decoding process for reference picture lists construction specified in subclause 8.3.4 is invoked for derivation of reference picture list 0 (RefPicList0) and, when decoding a B slice, reference picture list 1 (RefPicList1) , and the decoding process for collocated picture and no backward prediction flag specified in subclause 8.3.5 is invoked for derivation of the variables ColPic and NoBackwardPredFlag.
  • the processes in subclauses 8.4 through 8.7 specify decoding processes using syntax elements in all syntax structure layers. It is a requirement of bitstream conformance that the coded slices of the picture shall contain slice segment data for every coding tree unit of the picture, such that the division of the picture into slices, the division of the slices into slice segments, and the division of the slice segments into coding tree units each forms a partitioning of the picture.
  • curr_pic_as_ref_enabled_flag is equal to 1, the decoded sample values of the current picture before in-loop filtering are stored into the picture storage buffer allocated for the current picture.
  • step 2 is invoked when curr_pic_as_ref_enabled_flag is equal to 1.
  • the current decoded picture [*entire current decoded picture after in-loop fitlering is stored into the picture storage buffer allocated for the current picture and*] is marked as "used for short-term reference” .
  • curr_pic_as_ref_enabled_flag When curr_pic_as_ref_enabled_flag is equal to 1, the processes specified in subclause 8. X. 1 and 8. X. 2 are invoked.
  • PicOrderCntVal The value of PicOrderCntVal for the generated picture is set equal to POC of the current picture.
  • This process is invoked once per picture, after decoding of the last decoding unit of a picture and prior to decoding first slice of the next picture when curr_pic_as_ref_enabled_flag is equal to 1. If there is decoded picture whose picture order count is equal to PocStCurr,
  • the decoded picture is marked as "unused for reference” .
  • curr_pic_as_ref_enabled_flag in SPS is served as a flag of indicating whether or not the current picture may be included in a reference picture list.
  • the indication of whether the current picture is included in a reference picture list can be indicated by a syntax element named curr_pic_in_ref_list_flag present in PPS level or/and slice segment header level as described in a U.S. Provisional Patent Application, Serial No. 62/167,474, filed on May 28, 2015.
  • the operation of DPB is modified in a way that the curr_pic_in_ref_list_flag present in PPS level or/and slice segment header level is served as a flag of invoking of the modified operations as compared to the curr_pic_as_ref_enabled_flag present in SPS.
  • curr_pic_as_ref_enabled_flag in SPS in the previously described modifications can be replaced with curr_pic_in_ref_list_flag present in PPS level or/and slice segment header level.
  • Annex C. 3.5 as disclosed above can be modified as follows, and other parts of Annexes and Sections could be modified accordingly by replacing curr_pic_as_ref_enabled_flag with curr_pic_in_ref_list_flag.
  • curr_pic_in_ref_list_flag When curr_pic_in_ref_list_flag is equal to 1, the process specified in this subclause happens instantaneously at the CPB removal time of access unit n, CpbRemovalTime [n] . The process is invoked once per picture before decoding of the current picture but after parsing the header of the first slice segment of the current picture.
  • the DPB fullness is incremented by 1.
  • curr_pic_in_ref_list_flag present in slice segment header indicates whether the current picture is included in a reference picture list as described in another provisional patent application ATDI-15-049PUS.
  • the curr_pic_in_ref_list_flag present in slice segment headers of a coded picture shall be an identical value either 0 or 1 for all the slice segment headers of a coded picture.
  • the curr_pic_in_ref_list_flag present in slice segment header as described in U.S.
  • the curr_pic_in_ref_list_flag present in slice segment headers of a coded picture may be different. In the latter case, it causes problems in Annex C. 3.5 regarding the operation of DPB as it is invoked once per picture before decoding of the current picture but after parsing the header of the first slice segment of the current picture. Considering a case that for the first slice segment, the current picture is not included in a reference picture list and for the one or multiple remaining slice segment (s) , the current picture is included in a reference picture list.
  • curr_pic_in_dpb_flag is added in the first slice segment header to indicate for at least one of the slice segments of a picture, the current picture is included in a reference picture list to address the above discussed problem.
  • the following table illustrates an example to incorporate the syntax element curr_pic_in_dpb_flag in a slice segment header.
  • the operation of DPB is modified in a way that the curr_pic_in_dpb_flag present in the first slice of the segment header is served as a flag of invoking the modified operations in method 1, as compared to the curr_pic_as_ref_enabled_flag present in SPS.
  • the curr_pic_as_ref_enabled_flag in SPS in the modifications of method 1 can be replaced with the curr_pic_in_dpb_flag present in the first slice segment header.
  • Annex C. 3.5 can be modified as follows, and other parts of Annexes and Sections can be modified accordingly by replacing curr_pic_as_ref_enabled_flag with the curr_pic_in_dpb_flag.
  • curr_pic_in_dpb_flag present in the first slice segment header is equal to 1
  • the process specified in this subclause happens instantaneously at the CPB removal time of access unit n, CpbRemovalTime [n] .
  • the process is invoked once per picture before decoding of the current picture but after parsing the header of the first slice segment of the current picture.
  • the DPB fullness is increased by 1.
  • curr_pic_as_ref_enabled_flag present in SPS can be modified as compared to HEVC SCC: Draft 3 as follows:
  • curr_pic_as_ref_enabled_flag 1 specifies a picture referring to the SPS is included in a reference picture list for at least one of the slice segments of the picture itself.
  • curr_pic_as_ref_enabled_flag 0 specifies that a picture referring to the SPS is not included any reference picture list for any slice segment of the picture itself.
  • the value of curr_pic_as_ref_enabled_flag is inferred to be equal to 0.
  • the DPB operation is processed as same as the first embodiment. However, the semantics of the curr_pic_as_ref_enabled_flag is changed as described above.
  • slice level syntax curr_pic_in_ref_list_flag is added in each slice segment header of a picture to indicate whether or not the current picture is included in a reference picture list of the picture for the current slice as described in U.S. Provisional Patent Application, Serial No. 62/167,474, filed on May 28, 2015.
  • curr_pic_in_dpb_flag a syntax element named curr_pic_in_dpb_flag is added in PPS and the semantics of the curr_pic_as_ref_enabled_flag is modified as compared to HEVC SCC: Draft 3 as follows.
  • curr_pic_as_ref_enabled_flag 1 specifies a picture referring to the PPS is included in a reference picture list for at least one of the slice segments of the picture itself.
  • curr_pic_as_ref_enabled_flag 0 specifies that a picture referring to the PPS is not included any reference picture list for any slice segment of the picture itself.
  • the value of curr_pic_as_ref_enabled_flag is inferred to be equal to 0.
  • the DPB operation is processed as same as the first embodiment of the proposed method 1, but the semantics of the curr_pic_as_ref_enabled_flag is changed as described above.
  • slice level syntax curr_pic_in_ref_list_flag is added in each slice segment header of a picture to indicate whether or not the current picture is included in a reference picture list of the picture for the current slice as described in U.S. Provisional Patent Application, Serial No. 62/167,474, filed on May 28, 2015.
  • a picture or sub-picture memory buffer outside the DPB is used for storing the reconstructed samples before in-loop filter if the reconstructed samples are used in IBC prediction.
  • bitstream conformance is modified as compared to the current HEVC SCC: Draft 3 so that all reference pictures shall be present in the DPB when needed for prediction except for the current picture for IBC prediction.
  • the current picture is considered as a reference picture when IBC mode is enabled for decoding current slice or current picture.
  • HEVC SCC: Draft 3 is changed (added text indicated in Italic style) as follows and no modification is needed in the operation of DPB in Annex C. 3.
  • a bitstream of coded data conforming to this Specification shall fulfill all requirements specified in this clause.
  • an additional picture or sub-picture memory buffer outside DPB is considered for storing the reconstructed samples before in-loop filter if the reconstructed samples are used in IBC prediction in addition to the reconstructed samples after in-loop filter.
  • the picture buffer allocated outside the DPB is the same as a picture buffer allocated inside the DPB in terms of size.
  • the decoding process for a coded picture with nuh_layer_id equal to 0 is modified as compared to the current HEVC SCC: Draft 3 as follows accordingly, where added text is indicated in Italic style and deleted text is enclosed by an asterisk pair within a bracket pair (i.e., [*deleted text*] ) .
  • the decoding process operates as follows for the current picture CurrPic:
  • curr_pic_as_ref_enabled_flag is equal to 1
  • a picture or sub-picutre storage buffer outside [*in*] the DPB is allocated for the current picture and the current picture is marked as "used for long-term reference” .
  • the processes in subclauses 8.4, 8.5, 8.6, and 8.7 specify decoding processes using syntax elements in all syntax structure layers. It is a requirement of bitstream conformance that the coded slices of the picture shall contain slice segment data for every coding tree unit of the picture, such that the division of the picture into slices, the division of the slices into slice segments, and the division of the slice segments into coding tree units each forms a partitioning of the picture.
  • curr_pic_as_ref_enabled_flag is equal to 1, the decoded sample values of the current picture before in-loop filtering are stored into the picture storage buffer allocated for the current picture if the reconstructed samples are used in IBC prediction.
  • the entire current decoded picture after in-loop fitlering is stored into the picture storage buffer in the DPB [*allocated for the current picture*] and is marked as "used for short-term reference" .
  • curr_pic_as_ref_enabled_flag in SPS may be replaced with a flag of indicating whether or not the current picture is included in a reference picture list. It can be indicated that whether the current picture is included in a reference list by a syntax element named curr_pic_in_ref_list_flag present in PPS level or/and slice segment header level as described in U.S. Provisional Patent Application, Serial No. 62/167,474, filed on May 28, 2015
  • the bitstream conformance is modified in a way that curr_pic_in_ref_list_flag present in PPS level or/and slice segment header level is served as a flag of invoking the modified operations in the second method as compared to the curr_pic_as_ref_enabled_flag present in SPS.
  • curr_pic_as_ref_enabled_flag in SPS in the modifications of method 2 can be replaced with curr_pic_in_ref_list_flag present in PPS level or/and slice segment header level.
  • Annex C. 4 Bitstream conformance can be modified as follows, and other parts of Annexes and Sections could be modified accordingly.
  • Reference picture list (i.e., RefPicListTemp0 array) construction initialization process
  • the process is modified such that the current picture (before loop filtering) is used as reference, and is put in the N-th position of the reference picture list (i.e., index N-1 in the list) .
  • the list can be either list 0 or list 1.
  • the following example is provided for list 0.
  • N can be an integer number in the range of (1, num_ref_idx_l0_active_minus1 + 1) , inclusively.
  • N can be equal to 1 (i.e., the second position in the list, after one temporal reference picture) or N can be equal to num_ref_idx_l0_active_minus1 + 1 (i.e., the last position of the list) .
  • currPic refers to the current picture before in-loop filtering.
  • the sequence/picture/slice level flag signals that current unfiltered picture is used as a reference picture
  • currPic refers to the current picture before loop filtering.
  • the list RefPicList0 is constructed as follows:
  • RefPicList0 [rIdx] ref_pic_list_modification_flag_l0 ?
  • RefPicListTemp0 [list_entry_l0 [rIdx] ] : RefPicListTemp0 [rIdx ]
  • the time to put the two pictures into DPB can be indicated by the instance that the process occurs instantaneously at the CPB removal time of access unit n (of current picture) , CpbRemovalTime [n] .
  • the current decoded picture (unfiltered) is stored in the DPB in an empty picture storage buffer, the DPB fullness is increased by one, and the current picture (unfiltered) is marked as "used for long-term reference" .
  • the current decoded picture (filtered) is stored in the DPB in an empty picture storage buffer, the DPB fullness is increased by one, and the current picture (filtered) is marked as "used for short-term reference" .
  • the time to remove the unfiltered version of past picture can be indicated by the instance that the removal of this picture from the DPB happens any time after the decoding of current picgture, but has to be before decoding of the next current picture (can be after parsing the slice header of the first slice of the next current picture) .
  • One example of the removal time is immediately after decoding of the current picture, at the CPB removal time of the last decoding unit of access unit n (containing the current picture) .
  • the DPB fullness is decreased by one.
  • the filtered version and unfilered version of current picture are the sameif it is known that the loop filters (deblocking and SAO) are disabled for the entire picture.
  • the operations related to the unfiltered version of current picture such as putting it into DPB and incrementing DPB fullness by one, and removing it from DPB and decrementing DPB fullness by one, is not necessary.
  • curr_pic_as_ref_enabled_flag When curr_pic_as_ref_enabled_flag is equal to 1, the filtered version of current picture is put in the DPB in an empty picture storage buffer before starting the decoding process of current picture. While the unfiltered version of current picture is put in an empty picture storage buffer that is not counted as part of DPB.
  • the time to put the filtered version of current picture into DPB can be indicated by the instance that this process happens instantaneously at the CPB removal time of access unit n (of current picture) , CpbRemovalTime [n] .
  • the time to put the unfiltered version of current picture into an empty picture storage buffer can be indicated by: this process happens instantaneously at the CPB removal time of access unit n (of current picture) , CpbRemovalTime [n] .
  • the DPB fullness remains unchanged, and the current picture (unfiltered) is marked as "used for long-term reference” .
  • the current decoded picture (filtered) is stored in the DPB in an empty picture storage buffer, the DPB fullness is increased by one, and the current picture (filtered) is marked as "used for short-term reference" .
  • the unfiltered version of current picture will be removed from the picture storage buffer (not in DPB) , while the filtered version of current picture will remain in the DPB.
  • the unfiltered version of current picture is referred as the unfiltered version of past picture.
  • the filtered version of current picture is referred as the filtered version of past picture.
  • the next to be decoded picture is referred as the next current picture.
  • the time to remove the unfiltered version of past picture can be indicated by the instance that the removal of this picture from the the picture storage buffer (not in DPB) happens any time after the decoding of current picgture, but has to be before decoding of the next current picture (can be after parsing the slice header of the first slice of the next current picture) .
  • One example of the removal time is immediately after decoding of the current picture, at the CPB removal time of the last decoding unit of access unit n (containing the current picture)
  • curr_pic_as_ref_enabled_flag When curr_pic_as_ref_enabled_flag is equal to 1, the unfiltered version of the current picture is placed in an empty picture storage buffer in the DPB, before starting the decoding process of current picture. While the filtered version of current picture is placed in an empty picture storage buffer that is not counted as part of DPB.
  • the time to put the unfiltered version of current picture into DPB can be indicated by the instance that this process happens instantaneously at the CPB removal time of access unit n (of current picture) , CpbRemovalTime [n] .
  • the current decoded picture (unfiltered) is stored in the DPB in an empty picture storage buffer, the DPB fullness is increased by one, and the current picture (unfiltered) is marked as "used for long-term reference" .
  • the current decoded picture (filtered) is in an empty picture storage buffer (not stored in the DPB) , the DPB fullness remains unchanged, and the current picture (filtered) is marked as "used for short-term reference" .
  • the time to remove the unfiltered version of past picture can be indicated by the instance that the removal of this picture from DPB happens any time after the decoding of current picture, but has to be before decoding of the next current picture (can be after parsing the slice header of the first slice of the next current picture) .
  • One example of the removal time is immediately after decoding of the current picture, at the CPB removal time of the last decoding unit of access unit n (containing the current picture) .
  • the filtered version of current picture is put into DPB, in the position of the unfiltered version of current picture, to replace it.
  • the time to move the unfiltered version of past picture into DPB can be indicated by: it can happen any time after the decoding of current picture, but has to be before decoding of the next current picture (can be after parsing the slice header of the first slice of the next current picture) .
  • One example of the replace time is immediately after decoding of the current picture, at the CPB removal time of the last decoding unit of access unit n (containing the current picture) .
  • the filtered version and unfilered version of current picture are the same if it is known that the in-loop filters (deblocking and SAO) are disabled for the entire picture.
  • the operations related to the unfiltered version of current picture such as, putting it into DPB and incrementing DPB fullness by one, and removing it from DPB and decrementing DPB fullness by one, is not necessary.
  • the operations for the filtered version of current picture can be the same as specified in the third embodiment, or the operations for the filtered version of current picture is not necessary since it is the same as the unfiltered version in this case.
  • the flag curr_pic_as_ref_enabled_flag can be a sequence level, picture level or slice level flag, indicating that for a whole sequence/picture/slice, the current picture may be used as reference picture.
  • the SAO filter is not used for the current picture, if one of the three cases is true:
  • Case 3 when sequence level SAO enable flag sample_adaptive_offset_enabled_flag is true, there are more than once slice in the picture, and the slice header flag (s) slice_sao_luma_flag and slice_sao_chroma_flag (if chroma components exist) for all slices are false.
  • the deblocking filter is not used for the current picture, if one of the three cases is true:
  • the DPB size (maxDpbPicBuf) is kept unchanged.
  • the filtered version of current picture is placed into the DPB before the decoding of current picture while the other hand, the unfiltered picture is not placed into DPB.
  • the unfiltered version of current picture can be placed into the DPB before the decoding of current picture while the filtered picture is not put into DPB.
  • the maxDpbPicBuf is modified as maxDpbPicBuf–curr_pic_as_ref_enabled_flag. If curr_pic_as_ref_enabled_flag is equal to 1, one buffer is reserved for the one version that is not in DPB.
  • the curr_pic_as_ref_enabled_flag part is also conditioned by the identification of the use of in-loop filters in the current picture.
  • the process can be represented by the following statements:
  • DPB size is maxDpbPicBuf
  • DPB size maxDpbPicBuf–1
  • DPB size maxDpbPicBuf
  • the flag curr_pic_as_ref_enabled_flag can be incorporated in a sequence level, picture level or slice level flag indicating that the current picture may be used as reference picture for a whole corresponding sequence/picture/slice.
  • the filtered version of current picture is placed into the DPB before the decoding of current picture while the unfiltered picture is not put into DPB.
  • the unfiltered version of current picture can be placed into the DPB before the decoding of current picture while the filtered picture is not put into DPB.
  • the maxDpbPicBuf is modified as maxDpbPicBuf–1.
  • One buffer is reserved for the one version that is not in DPB.
  • Fig. 1 illustrates a flowchart of an exemplary coding system using coding modes including IntraBC mode (Intra-block copy mode) and Inter prediction mode according to an embodiment of the present invention, where two picture buffers are allocated in the decoded picture buffer (DPB) to store the reconstructed current picture after in-loop filtering and the reconstructed current picture before in-loop filtering.
  • the system stores one or more previously reconstructed pictures after in-loop filtering in a DPB (decoded picture buffer) in step 110.
  • a video bitstream including compressed data associated with a current picture is received in step 120.
  • a first picture buffer is allocated in the DPB as shown in step 130 and a second picture buffer is allocated in the DPB as shown in step 140.
  • One or more reconstructed image units associated with the current picture are derived from the video bitstream in step 150.
  • the reconstructed image units before the in-loop filtering are stored in the first picture buffer as shown in step 160.
  • the reconstructed image units after the in-loop filtering are stored in the second picture buffer as shown in step 170.
  • the current reconstructed image unit is reconstructed using the reconstructed image units before the in-loop filtering in the first picture buffer to derive IBC prediction if a current reconstructed image unit is coded in the IBC mode as shown in step 180.
  • the current reconstructed image unit is reconstructed using the previously reconstructed pictures after the in-loop filtering in the DPB to derive Inter prediction if the current reconstructed image unit is coded in the Inter prediction mode as shown in step 190.
  • Fig. 2 illustrates a flowchart of an exemplary coding system using coding modes including IntraBC mode (Intra-block copy mode) and Inter prediction mode according to an embodiment of the present invention, where one picture buffer is allocated in the decoded picture buffer (DPB) and one picture buffer is allocated in a temporary buffer outside the DPB to store the reconstructed current picture after in-loop filtering and the reconstructed current picture before in-loop filtering.
  • the system stores one or more previously reconstructed pictures after in-loop filtering in a DPB (decoded picture buffer) in step 210.
  • a video bitstream including compressed data associated with a current picture is received in step 220.
  • a first picture buffer and a second picture buffer are allocated in the DPB or in a temporary buffer outside the DPB as shown in step 230, where one of the first picture buffer and the second picture buffer is in the DPB and one of the first picture buffer and the second picture buffer is in the temporary buffer outside the DPB.
  • One or more reconstructed image units associated with the current picture are derived from the video bitstream in step 240.
  • the reconstructed image units before the in-loop filtering are stored in the first picture buffer as shown in step 250.
  • the reconstructed image units after the in-loop filtering are stored in the second picture buffer as shown in step 260.
  • the current reconstructed image unit is reconstructed using the reconstructed image units before the in-loop filtering in the first picture buffer to derive IBC prediction if a current reconstructed image unit is coded in the IBC mode as shown in step 270.
  • the current reconstructed image unit is reconstructed using the previously reconstructed pictures after the in-loop filtering in the DPB to derive Inter prediction if the current reconstructed image unit is coded in the Inter prediction mode as shown in step 280.
  • Embodiment of the present invention as described above may be implemented in various hardware, software codes, or a combination of both.
  • an embodiment of the present invention can be one or more electronic circuits integrated into a video compression chip or program code integrated into video compression software to perform the processing described herein.
  • An embodiment of the present invention may also be program code to be executed on a Digital Signal Processor (DSP) to perform the processing described herein.
  • DSP Digital Signal Processor
  • the invention may also involve a number of functions to be performed by a computer processor, a digital signal processor, a microprocessor, or field programmable gate array (FPGA) .
  • These processors can be configured to perform particular tasks according to the invention, by executing machine-readable software code or firmware code that defines the particular methods embodied by the invention.
  • the software code or firmware code may be developed in different programming languages and different formats or styles.
  • the software code may also be compiled for different target platforms.
  • different code formats, styles and languages of software codes and other means of configuring code to perform the tasks in accordance with the invention will not depart from the spirit and scope of the invention.

Abstract

Methods and Apparatus of managing decoded picture buffer for a video decoding system using Intra Block Copy (IBC) mode. In one embodiment, one or more previously reconstructed pictures after in-loop filtering are stored in a DPB (decoded picture buffer). For decoding a current picture, a first and a second picture buffers are allocated in the DPB. Both unfiltered version and filtered version of reconstructed current picture are stored in the first and second picture buffers. After the current picture is decoded, the unfiltered version is removed from the DPB. In another embodiment, an unfiltered version and filtered version of reconstructed current picture are stored. One of them is stored in the DPB and the other is stored in a temporary buffer. After the current picture is decoded, the unfiltered version is removed from the DPB or the temporary buffer.

Description

Method of Decoded Picture Buffer Management for Intra Block Copy Mode
CROSS REFERENCE TO RELATED APPLICATIONS
The present invention claims priority to U.S. Provisional Patent Application, Serial No. 62/168,144, filed on May 29, 2015, U.S. Provisional Patent Application, Serial No. 62/182,685, filed on June 22, 2015, and U.S. Provisional Patent Application, Serial No. 62/183,799, filed on June 24, 2015. The current application is also related to U.S. Provisional Patent Application, Serial No. 62/167,474, filed on May 28, 2015. The U.S. Provisional Patent Applications are hereby incorporated by reference in their entireties.
FIELD OF THE INVENTION
The present invention relates to video coding using coding modes including Intra-block copy (IntraBC) mode and Inter prediction mode. In particular, the present invention relates to techniques to manage decoded picture buffer (DPB) .
BACKGROUND AND RELATED ART
High Efficiency Video Coding (HEVC) is a new coding standard that has been developed in recent years. In the High Efficiency Video Coding (HEVC) system, the fixed-size macroblock of H. 264/AVC is replaced by a flexible block, named coding unit (CU) . Pixels in the CU share the same coding parameters to improve coding efficiency. A CU may begin with a largest CU (LCU) , which is also referred as coded tree unit (CTU) in HEVC. In addition to the concept of coding unit, the concept of prediction unit (PU) is also introduced in HEVC. Once the splitting of CU hierarchical tree is done, each leaf CU is further split into one or more prediction units (PUs) according to prediction type and PU partition.
In the current development of screen content coding for High Efficiency Video  Coding (HEVC) standard, some tools have been adopted due to their improvements in coding efficiency for screen contents. For Intra blocks, Intra prediction according to the conventional approach is performed using prediction based on reconstructed pixels from neighboring blocks. Intra prediction may select an Intra Mode from a set of Intra Modes, which include a vertical mode, horizontal mode and various angular prediction modes. For HEVC screen content coding, a new Intra coding mode, named Intra-block copy (IntraBC) has been used.
Intra block copy (IBC) uses reconstructed samples in the current picture before in-loop filter as a reference picture for prediction. This un-filtered picture needs to be stored in addition to the filtered picture after in-loop filter. To store the reconstructed samples before in-loop filter, additional memory and the memory bandwidth is required for reading and writing, respectively. In the case that all reconstructed samples before in-loop filter may be used as the reference for IBC prediction, the whole reconstructed picture before in-loop filter needs to be stored. Hence, both the reconstructed current pictures before in-loop filter and after in-loop filter need to be stored for IBC prediction and r for temporal prediction respectively. Therefore, Intra block copy memory access causes increased memory bandwidth. In addition, it also causes additional decoding picture buffer (DPB) .
In order to store the additional reconstructed samples before in-loop filter, Section 8: general decoding process of High Efficiency Video Coding (HEVC) Screen Content Coding (SCC) : Draft 3 (Joshi, et al., HEVC Screen Content Coding Draft Text 3, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 20th Meeting: Geneva, CH, 10–18 Feb. 2015, Document: JCTVC-T1005) is modified so that a picture storage buffer in the decoded picture buffer (DPB) is allocated for the current picture. In HEVC SCC: Draft 3, the reconstructed current picture is marked as "used for long-term reference" in case that curr_pic_as_ref_enabled_flag is equal to 1. When curr_pic_as_ref_enabled_flag is equal to 1, the decoded sample values of the reconstructed current picture before in-loop filtering are stored into the picture storage buffer allocated for the current picture. After completing the decoding of all slices, the entire current decoded picture after in-loop filter is stored in the picture storage buffer allocated for the current picture  and is marked as "used for short-term reference" . In HEVC and the HEVC SCC: Draft 3, the decoded pictures are managed by operation of the decoded picture buffer in Annex C. 3 of HEVC SCC: Draft 3, which consists of a set of ordered processes including removal of pictures from the decoded picture buffer (DPB) (i.e., subclause C. 3.2) , picture output i.e., subclause C. 3.3) , current decoded picture marking and storage (i.e., subclause C. 3.4) . However the operation of DPB is not modified appropriately for the scenario that the reconstructed current picture may be used as a reference picture as discussed follows.
The operation of decoded picture buffer specifies when each of the operations happens so that DPB fullness can be controlled appropriately and the DPB fullness does not exceed the DPB maximum size limitation. In the subclause of removal of pictures from the DPB, for each picture that is removed from the DPB, the DPB fullness is decremented by one. In the subclause of current decoded picture marking and storage, the current decoded picture is stored in the DPB in an empty picture storage buffer and the DPB fullness is incremented by one. However, storing of the current picture before in-loop filter and updating of the DPB fullness are not specified in the operation of the DPB, in Annex C. 3. Accordingly, the operation of DPB cannot be appropriately managed.
As mentioned in the previous paragraph, there is an issue of introducing additional memory bandwidth for reading and writing the reconstructed samples before in-loop filter to the memory. In the Core Experiment 2 (CE2) : Intra block copy memory access in JCTVC-T1102 (Rapaka, et al., Description of Core Experiment 2 (CE2) : Intra block copy memory access, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 20th Meeting: Geneva, CH, 10–18 Feb. 2015, Document: JCTVC-T1102) , the memory bandwidth reduction is evaluated in order to avoid causing one additional picture memory buffer and bandwidth for reading and writing reconstructed samples before in-loop filter in addition to the samples after in-loop filter. The reconstructed samples before in-loop filter are also referred as unfiltered reconstructed samples in this disclosure. The reconstructed samples after in-loop filter are also referred as filtered reconstructed samples in this disclosure.
Two categories of works are under progress to address this issue. In the first category, JCTVC-S0145 (Rapaka, et al., Bandwidth reduction method for intra block copy, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 19th Meeting: Strasbourg, FR, 17–24 Oct. 2014, Document: JCTVC-S0145) discloses a method to reduce average bandwidth when Intra block copy (IBC) mode is used for prediction. JCTVC-S0145 is based on the observation that not all previously unfiltered decoded samples of the current picture are used for prediction in IBC mode. In JCTVC-S0145, the method indicates which of the previously decoded coded tree blocks (CTBs) are used for IBC prediction. According to JCTVC-S0145, a flag is sent for each block in a slice header, which CTBs need to be stored for reducing average bandwidth when a picture parameter set (PPS) level flag indicating the presence of the former flags in slice header. However, the method of JCTVC-S0145 has been questioned regarding know how many CTBs are needed in a slice and how many flags are needed to send in advance. Furthermore, DPB management method is not included in JCTVC-S0145. It is not clear whether the reconstructed samples before in-loop filter are stored in memory buffer in the DPB or outside DPB.
In the second category, JCTVC-T0045 (Lainema, et al., AHG10: Memory bandwidth reduction for intra block copy, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 20th Meeting: Geneva, CH, 10–18 Feb. 2015, Document: JCTVC-T0045) and JCTVC-T0051 (Laroche, et al., AHG10: On IBC memory reduction, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 20th Meeting: Geneva, CH, 10–18 Feb. 2015, Document: JCTVC-T0051) disclose a method to store either reconstructed samples before in-loop filter or after in-loop filter by indicating which CTBs are used for IBC prediction to address the issue of increased bandwidth and storage related IBC. The general interest is to keep the memory bandwidth of IBC under the limit as specified HEVC Inter mode. It means only one reconstructed picture buffer can be used for each picture even in the scenario of IBC. JCTVC-T0051 also discloses a method to store either reconstructed samples before in-loop filter or after in-loop filter in a picture memory buffer, which are typically outside DPB. The  operation of DPB in Annex C. 3 of JCTVC-T1005 may be managed similar to that in HEVC version 1 as discussed follows. In addition, in JCTVC-T0051, the current and the previous CTBs are always considered as available for IBC prediction. Therefore, additional memory for storing the two additional CTBs is required in JCTVC-T0051.
If the memory buffer outside the DPB stores the reconstructed samples before in-loop filter, there will be a bitstream consistency issue in HEVC SCC Draft, which specifies that all reference pictures shall be present in the DPB when needed for prediction. The reason is that the current picture before in-loop filter is used as reference picture and inserted in a reference picture list as HEVC SCC: Draft 3.
In High Level Syntax, the current picture is placed after all short term reference pictures and all other long term reference pictures during the initialization of reference picture list construction. The related descriptions are listed below for List 0. Similar process can be applied for List 1.
At the beginning of the decoding process for each slice, the reference picture list RefPicList0 for P slices and, both reference picture lists RefPicList0 and RefPicList1 for B slices are derived as follows:
Table 1
Figure PCTCN2016083737-appb-000001
Figure PCTCN2016083737-appb-000002
In Table 1, curr_pic_as_ref_enabled_flag equal to 1 specifies a picture referring to the SPS (sequence parameter set) may be included in a reference picture list of the picture itself. curr_pic_as_ref_enabled_flag equal to 0 specifies that a picture referring to the SPS is never included in any reference picture list of the picture itself. When not present, the value of curr_pic_as_ref_enabled_flag is inferred to be equal to 0.
After the initialization, the reference picture list RefPicList0 is constructed as follows:
for (rIdx = 0; rIdx <= num_ref_idx_l0_active_minus1; rIdx++)
  RefPicList0 [rIdx] = ref_pic_list_modification_flag_l0?
      RefPicListTemp0 [list_entry_l0 [rIdx] ] : RefPicListTemp0 [rIdx ]
However, when the number of active reference pictures (i.e., num_ref_idx_l0_active_minus1+1) is smaller than the the number of reference pictures in the list (NumRpsCurrTempList0) associated with the RefPicListTemp0 array storing the current picture, the current picture may not be included in the active reference picture list.
In a coding system based on the existing HEVC, there is an issue associated with Decoded Picture Buffer (DPB) management for IntraBC. When IntraBC is used, the reconstructed portion of current picture may be used as a reference picture to predict current picture. This reference picture for IntraBC is referred as “the unfiltered version of current picture” . On the other hand, the version of current picture that will eventually go through filtering operations such as deblocking and SAO is referred to the filtered version of current picture.
A reference picture has to be in Decoded Picture Buffer (DPB) in order to be used by a current picture. The size of DPB is constrained to be MaxDpbSize, which is derived as shown in Table 2.
Table 2
Figure PCTCN2016083737-appb-000003
In Table 2, MaxLumaPs is the maximum luma picture size and maxDpbPicBuf is the maximum DPB size, such as 6. However, there are some issues in the current DPB management operations when IntraBC is used.
BRIEF SUMMARY OF THE INVENTION
Methods and Apparatus of managing decoded picture buffer for a video decoding system are disclosed, where the video decoding system uses coding modes including an Inter prediction mode and a Intra Block Copy (IBC) mode. In one embodiment, one or more previously reconstructed pictures after in-loop filtering are stored in a DPB (decoded picture buffer) . For decoding a current picture, a first picture buffer and a second picture buffer are allocated in the DPB. After one or more reconstructed image units associated with the current picture are derived from the video bitstream, the reconstructed image units before the in-loop filtering are stored in the first picture buffer and the reconstructed image units after the in-loop filtering are stored in the second picture buffer. If a current reconstructed image unit is coded in the IBC mode, the current reconstructed image unit is reconstructed using the reconstructed image units before the in-loop filtering in the first picture buffer to derive IBC prediction. If the  current reconstructed image unit is coded in the Inter prediction mode, the current reconstructed image unit is reconstructed using the previously reconstructed pictures after the in-loop filtering in the DPB to derive Inter prediction.
The first picture buffer and the second picture buffer are allocated in the DPB before the current picture is decoded. The DPB buffer fullness is incremented by one each time when either the first picture buffer or the second picture buffer is allocated in the DPB. Furthermore, the first picture buffer is marked to indicate that the first picture buffer is used for long-term reference and the second picture buffer is marked to indicate that the second picture buffer is used for short-term reference.
The first picture buffer allocated is removed from the DPB after the current picture is reconstructed. On the other hand, the second picture buffer allocated stays in the DPB and is used as a short term reference picture for decoding of subsequent pictures. The DPB buffer fullness is decremented by one when the first picture buffer allocated is removed from the DPB. A variable to indicate a maximum DPB buffer size can remain to be the same as the maximum DPB buffer size specified for High Efficiency Video Coding (HEVC) Screen Content Coding (SCC) Draft 3.
In another embodiment, a first picture buffer and a second picture buffer are allocated in the DPB or in a temporary buffer outside the DPB, where one of the first picture buffer and the second picture buffer is in the DPB and one of the other is in the temporary buffer outside the DPB. The first picture buffer and the second picture buffer are allocated before the current picture is decoded. The DPB buffer fullness is incremented by one when the first picture buffer or the second picture buffer is placed into the DPB. If the first picture buffer is allocated in the DPB, the first picture buffer allocated is removed from the DPB after the current picture is reconstructed, and the DPB buffer fullness is decremented by one when the first picture buffer allocated is removed from the DPB. The second picture buffer is then placed into the DPB and the DPB buffer fullness is incremented by one. If the first picture buffer is allocated in the temporary buffer outside the DPB, the first picture buffer is removed from the  temporary buffer after the current picture is reconstructed. The second picture buffer allocated stays in the DPB after the current picture is reconstructed.
BRIEF DESCRIPTION OF THE DRAWINGS
Fig. 1 illustrates a flowchart of an exemplary coding system using coding modes including IntraBC mode (Intra-block copy mode) and Inter prediction mode according to an embodiment of the present invention, where two picture buffers are allocated in the decoded picture buffer (DPB) to store the current reconstructed picture after in-loop filtering and the current reconstructed picture before in-loop filtering.
Fig. 2 illustrates a flowchart of an exemplary coding system using coding modes including IntraBC mode (Intra-block copy mode) and Inter prediction mode according to an embodiment of the present invention, where one picture buffer is allocated in the decoded picture buffer (DPB) and one picture buffer is allocated in a temporary buffer outside the DPB to store the current reconstructed picture after in-loop filtering and the current reconstructed picture before in-loop filtering.
DETAILED DESCRIPTION OF THE INVENTION
The following description is of the best-contemplated mode of carrying out the invention. This description is made for the purpose of illustrating the general principles of the invention and should not be taken in a limiting sense. The scope of the invention is best determined by reference to the appended claims.
As discussed above, the reference data for Intra Block Copy (IntraBC or IBC) has to be stored in the reconstructed data is unfiltered. On the other hand, the reference data for Inter prediction have to be stored in a filtered version (i.e., reconstructed and filtered) . The present invention discloses modifications of the DPB (decoded picture buffer) operations and bitstream conformance in IBC.
First Method. This method allocates a picture buffer in the DPB for storing reconstructed samples before in-loop filter. In this case, DPB operation is modified so that the DPB operation is managed appropriately when the current picture is included in a reference picture list. In general, the modification consists of updating of the DPB fullness and defining the time instant of updating the DPB fullness if the current picture is included in a reference picture list.
First Embodiment. The embodiment can be applied to the system as specified in HEVC SCC: Draft 3. There are a few sections in HEVC SCC: Draft 3 (i.e., JCTVC-T1005) need to be modified. Specifically, a subclause C. 3.5 related to current decoded picture before in-loop filter storage is added, where the DPB fullness is increased by 1 when the current picture is included in a reference picture list. The process defined in subclause C. 3.5 of JCTVC-T1005 occurs instantaneously at the CPB (Coded Picture Buffer) removal time of access unit n, CpbRemovalTime [n] , when the current picture is included in a reference picture list. The process is invoked once per picture before decoding of the current picture, but after parsing the header of the first slice segment header of the current picture.
When the current picture is included in a reference picture list, current decoded picture marking and storage as described in subclause C. 3.4 and picture decoding, marking, additional bumping and storage as described in C. 5.2.3 of HEVC SCC: Draft 3 are modified in a way that the DPB fullness remains unchanged if the current picture is included in a reference picture list.
When the current picture is included in a reference picture list, a decoding process for decoding the current decoded reference picture is added in subclause 8. X, which needs to be invoked once per picture after the processing of C. 3.5, which specifies processing of the current decoded picture before in-loop filter storage. When subclause 8. X is invoked, the PicOrderCntVal for the generated picture is set equal to POC of the current picture.
Exemplary HEVC SCC: Draft 3 changes according to the first embodiment.
The current HEVC SCC: Draft 3 can be modified to support the first embodiment mentioned above. In particular, new subclauses 3.5 and 3.6 are added to address (a) current decoded picture marking and storage and (b) current decoded picture before in-loop filter storage. Also, the current subclause 5.2.3, entitled “Picture decoding, marking, additional bumping and storage” is modified. In addition, subclause 8.1.3, entitled “Decoding process for a coded picture with nuh_layer_id equal to 0” is modified and subclause 8. X is added. These changes are described as follows.
C. 3.5 Regarding current decoded picture marking and storage
The process specified in this subclause happens instantaneously at the CPB removal time of access unit n, CpbRemovalTime [n] .
If curr_pic_as_ref_enabled_flag is equal to 0, the current decoded picture is stored in the DPB in an empty picture storage buffer, the DPB fullness is incremented by one, and the current picture is marked as "used for short-term reference" .
Otherwise, if curr_pic_as_ref_enabled_flag is equal to 1 , DPB fullness keeps unchanged. In addition, as specified in subclause 8.1.3, the current decoded picture is stored in the DPB in the picture storage buffer, which is allocated for the current picture and is marked as "used for short-term reference" .
C. 3.6 Current decoded picture before in-loop filter storage
When curr_pic_as_ref_enabled_flag is equal to 1, the process specified in this subclause occurs instantaneously at the CPB removal time of access unit n, CpbRemovalTime [n] . The process is invoked once per picture before decoding of the current picture but after parsing the header of the first slice segment of the current picture.
The DPB fullness is incremented by 1.
The changes in subclauses C. 5.2.3 and 8.1.3 from the current HEVC SCC: Draft 3  are indicated, where inserted text is shown in Italic style and deleted text is enclosed by an asterisk pair within a bracket pair (i.e., [*deleted text*] ) .
C. 5.2.3 Picture decoding, marking, additional bumping and storage
The processes specified in this subclause occurs instantaneously when the last decoding unit of access unit n containing the current picture is removed from the CPB.
When the current picture has PicOutputFlag equal to 1, for each picture in the DPB that is marked as "needed for output" and follows the current picture in output order, the associated variable PicLatencyCount is set equal to PicLatencyCount + 1.
The current picture is considered as decoded after the last decoding unit of the picture is decoded. If curr_pic_as_ref_enabled_flag is equal to 0, the current decoded picture is stored in an empty picture storage buffer in the DPB. Otherwise, if curr_pic_as_ref_enabled_flag is equal to 1, DPB fullness keeps unchanged. In addition, as specified in subclause 8.1.3, the current decoded picture is stored in the DPB in the picture storage buffer, which is allocated for the current picture and is marked as "used for short-term reference" . And the following applies:
–If the current decoded picture has PicOutputFlag equal to 1, it is marked as "needed for output" and its associated variable PicLatencyCount is set equal to 0.
–Otherwise (the current decoded picture has PicOutputFlag equal to 0) , it is marked as "not needed for output" .
The current decoded picture is marked as "used for short-term reference" .
When one or more of the following conditions are true, the "bumping" process specified in clause C 5.2.4 is invoked repeatedly until none of the following conditions are true:
–The number of pictures in the DPB that are marked as "needed for output" is greater than sps_max_num_reorder_pics [HighestTid] .
–sps_max_latency_increase_plus1 [HighestTid] is not equal to 0 and there is at least one picture in the DPB that is marked as "needed for output" for which the  associated variable PicLatencyCount that is greater than or equal to SpsMaxLatencyPictures [HighestTid] .
8.1.3 Decoding process for a coded picture with nuh_layer_id equal to 0
The decoding process operates as follows for the current picture CurrPic:
1. The decoding of NAL units is specified in subclause 8.2.
2. The processes in subclause 8.3 specify the following decoding processes using syntax elements in the slice segment layer and above:
–Variables and functions relating to picture order count are derived in subclause 8.3.1. This needs to be invoked only for the first slice segment of a picture.
–The decoding process for RPS in subclause 8.3.2 is invoked, wherein reference pictures may be marked as "unused for reference" or "used for long-term reference" . This needs to be invoked only for the first slice segment of a picture.
–When curr_pic_as_ref_enabled_flag is equal to 1, a picture storage buffer in the DPB is allocated for the current picture, and the DPB fullness is increased by 1 as specified in C. 3.5 (Current decoded picture before in-loop filter storage) , and the current picture is marked as "used for long-term reference" .
–When curr_pic_as_ref_enabled_flag is equal to 1, general decoding process for generationg the current decoded reference picture specified in Section 8. X is invoked, which needs to be processed once per picture after processing C. 3.5 (Current decoded picture before in-loop filter storage) .
–When the current picture is a broken link access (BLA) picture or is a clean random access (CRA) picture with NoRaslOutputFlag equal to 1, the decoding process for generating unavailable reference pictures specified in subclause 8.3.3 is invoked, which needs to be invoked only for the first slice segment of a picture.
...
8. X Decoding process for current decoded reference picture
When curr_pic_as_ref_enabled_flag is equal to 1, this process is invoked once per coded picture after processing C. 3.5 and prior to the decoding process for reference  picture lists construction specified in subclause 8.3.4 by applying following process:
–The value of PicOrderCntVal for the generated picture is set equal to POC of the current picture.
Second Embodiment. In the second embodiment, a new subclause C. 3.5 related to current decoded picture before in-loop filter storage is added, where the DPB fullness is incremented by 1 when the current picture is included in a reference picture list.
When the current picture is included in a reference picture list for decoding slices of the current picture, a general decoding process for decoding the current decoded reference picture is added in subclause 8. X, which consists of two steps of decoding processes.
In the first step, the PicOrderCntVal for the generated picture is set equal to picture order count (POC) of the current picture, which needs to be processed once per picture after processing C. 3.5.
In the second step, the value of PicOutputFlag for the picture is set equal to 0 and the current picture before in-loop filter is marked as "unused for reference" , which is invoked once per picture after decoding of the last decoding unit of the picture and prior to parsing the first slice segment header of the next picture.
With the second step of decoding process, the current picture before in-loop filter in DPB will be removed from the DPB when the removal of pictures from the DPB (subclause C. 3.2) is processed. Current decoded picture marking and storage (subclause C. 3.4) and picture decoding, marking, additional bumping and storage (subclause C. 5.2.3) do not need to be modified.
The embodiment can be applied to the system as specified in HEVC SCC: Draft 3. HEVC SCC as follows. The changes in subclauses 8.13 from the current HEVC SCC: Draft 3 are indicated, where inserted text is shown in Italic style and deleted text is enclosed by an asterisk pair within a bracket pair (i.e., [*deleted text*] ) .
C. 3.5 Current decoded picture before in-loop filter storage
When curr_pic_as_ref_enabled_flag is equal to 1, the process specified in this subclause happens instantaneously at the CPB removal time of access unit n, CpbRemovalTime [n] . The process is invoked once per picture before decoding of the current picture but after parsing the header of the first slice segment of the current picture.
The DPB fullness is incremented by 1.
8.1.3 Decoding process for a coded picture with nuh_layer_id equal to 0
The decoding process operates as follows for the current picture CurrPic:
1. The decoding of NAL units is specified in subclause 8.2.
2. The processes in subclause 8.3 specify the following decoding processes using syntax elements in the slice segment layer and above:
–Variables and functions relating to picture order count are derived in subclause 8.3.1 This needs to be invoked only for the first slice segment of a picture.
–The decoding process for RPS in subclause 8.3.2 is invoked, wherein reference pictures may be marked as "unused for reference" or "used for long-term reference" . This needs to be invoked only for the first slice segment of a picture.
–When curr_pic_as_ref_enabled_flag is equal to 1, a picture storage buffer in the DPB is allocated for the current picture, and the DPB fullness is increased by 1 as specified in C. 3.5, and the current picture is marked as "used for long-term reference" .
–When curr_pic_as_ref_enabled_flag is equal to 1, decoding process of step 1 for current decoded reference picture specified in Section 8. X. 1 is invoked, which needs to be processed once per picture after processing of C. 3.5 (Current decoded picture before in-loop filter storage) .
–When the current picture is a BLA picture or is a CRA picture with NoRaslOutputFlag equal to 1, the decoding process for generating unavailable reference pictures specified in subclause 8.3.3 is invoked, which needs to be invoked only for the first slice segment of a picture.
–PicOutputFlag is set as follows:
–If the current picture is a RASL picture and NoRaslOutputFlag of the associated IRAP picture is equal to 1, PicOutputFlag is set equal to 0.
–Otherwise, PicOutputFlag is set equal to pic_output_flag.
–At the beginning of the decoding process for each P or B slice, the decoding process for reference picture lists construction specified in subclause 8.3.4 is invoked for derivation of reference picture list 0 (RefPicList0) and, when decoding a B slice, reference picture list 1 (RefPicList1) , and the decoding process for collocated picture and no backward prediction flag specified in subclause 8.3.5 is invoked for derivation of the variables ColPic and NoBackwardPredFlag.
3. The processes in subclauses 8.4 through 8.7 specify decoding processes using syntax elements in all syntax structure layers. It is a requirement of bitstream conformance that the coded slices of the picture shall contain slice segment data for every coding tree unit of the picture, such that the division of the picture into slices, the division of the slices into slice segments, and the division of the slice segments into coding tree units each forms a partitioning of the picture. When curr_pic_as_ref_enabled_flag is equal to 1, the decoded sample values of the current picture before in-loop filtering are stored into the picture storage buffer allocated for the current picture.
4. After all slices of the current picture have been decoded and prior to parsing the first slice segment header of the next picture, decoding process of step 2 for current decoded reference picture specified in 8. X. 2 is invoked when curr_pic_as_ref_enabled_flag is equal to 1.
5. After all slices of the current picture have been decoded, the current decoded picture [*entire current decoded picture after in-loop fitlering is stored into the picture storage buffer allocated for the current picture and*] is marked as "used for short-term reference" .
8. X General decoding process for current decoded reference picture
When curr_pic_as_ref_enabled_flag is equal to 1, the processes specified in subclause 8. X. 1 and 8. X. 2 are invoked.
8. X. 1 Decoding process of step 1 for current decoded reference picture
This process is invoked once per coded picture after processing C. 3.5 and prior to the decoding process for reference picture lists construction specified in subclause 8.3.4 when curr_pic_as_ref_enabled_flag is equal to 1 by applying following process:
–The value of PicOrderCntVal for the generated picture is set equal to POC of the current picture.
8. X. 2 Decoding process of step 2 for current decoded reference picture
This process is invoked once per picture, after decoding of the last decoding unit of a picture and prior to decoding first slice of the next picture when curr_pic_as_ref_enabled_flag is equal to 1. If there is decoded picture whose picture order count is equal to PocStCurr,
–the value of PicOutputFlag for the picture is set equal to 0.
–the decoded picture is marked as "unused for reference" .
In the second embodiment, curr_pic_as_ref_enabled_flag in SPS is served as a flag of indicating whether or not the current picture may be included in a reference picture list. The indication of whether the current picture is included in a reference picture list can be indicated by a syntax element named curr_pic_in_ref_list_flag present in PPS level or/and slice segment header level as described in a U.S. Provisional Patent Application, Serial No. 62/167,474, filed on May 28, 2015.
Third Embodiment. In the third embodiment, the operation of DPB is modified in a way that the curr_pic_in_ref_list_flag present in PPS level or/and slice segment header level is served as a flag of invoking of the modified operations as compared to the curr_pic_as_ref_enabled_flag present in SPS. In other words, curr_pic_as_ref_enabled_flag in SPS in the previously described modifications can be replaced with curr_pic_in_ref_list_flag present in PPS level or/and slice segment header level. In another embodiment of the proposed method 1, for example, Annex C. 3.5 as disclosed above can be modified as follows, and other parts of Annexes and Sections could be modified accordingly by replacing curr_pic_as_ref_enabled_flag with curr_pic_in_ref_list_flag.
C. 3.5 Current decoded picture before in-loop filter storage
When curr_pic_in_ref_list_flag is equal to 1, the process specified in this subclause happens instantaneously at the CPB removal time of access unit n, CpbRemovalTime [n] . The process is invoked once per picture before decoding of the current picture but after parsing the header of the first slice segment of the current picture.
The DPB fullness is incremented by 1.
A syntax element curr_pic_in_ref_list_flag present in slice segment header indicates whether the current picture is included in a reference picture list as described in another provisional patent application ATDI-15-049PUS. In one semantics of the curr_pic_in_ref_list_flag present in slice segment header as described in U.S. Provisional Patent Application, Serial No. 62/167,474, filed on May 28, 2015, the curr_pic_in_ref_list_flag present in slice segment headers of a coded picture shall be an identical value either 0 or 1 for all the slice segment headers of a coded picture. In another semantics of the curr_pic_in_ref_list_flag present in slice segment header as described in U.S. Provisional Patent Application, Serial No. 62/167,474, filed on May 28, 2015, the curr_pic_in_ref_list_flag present in slice segment headers of a coded picture may be different. In the latter case, it causes problems in Annex C. 3.5 regarding the operation of DPB as it is invoked once per picture before decoding of the current picture but after parsing the header of the first slice segment of the current picture. Considering a case that for the first slice segment, the current picture is not included in a reference picture list and for the one or multiple remaining slice segment (s) , the current picture is included in a reference picture list. In such a case, if the curr_pic_in_ref_list_flag present in the first slice segment header of a picture is used as the condition to decide, whether or not to perform the operation defined in Annex C. 3.5, then the operation of the DPB will not operate appropriately in terms of updating DPB fullness.
In this invention, a syntax element named curr_pic_in_dpb_flag is added in the first slice segment header to indicate for at least one of the slice segments of a picture, the current  picture is included in a reference picture list to address the above discussed problem. The following table illustrates an example to incorporate the syntax element curr_pic_in_dpb_flag in a slice segment header.
Table 3
Figure PCTCN2016083737-appb-000004
Fourth Embodiment. In this embodiment, the operation of DPB is modified in a way that the curr_pic_in_dpb_flag present in the first slice of the segment header is served as a flag of invoking the modified operations in method 1, as compared to the curr_pic_as_ref_enabled_flag present in SPS. In other words, the curr_pic_as_ref_enabled_flag in SPS in the modifications of method 1 can be replaced with the curr_pic_in_dpb_flag present in the first slice segment header. For example, Annex C. 3.5 can be modified as follows, and other parts of Annexes and Sections can be modified accordingly by replacing curr_pic_as_ref_enabled_flag with the curr_pic_in_dpb_flag.
C. 3.5 Current decoded picture before in-loop filter storage
When curr_pic_in_dpb_flag present in the first slice segment header is equal to 1, the process specified in this subclause happens instantaneously at the CPB removal time of access unit n, CpbRemovalTime [n] . The process is invoked once per picture before decoding of the current picture but after parsing the header of the first slice segment of the current picture.
The DPB fullness is increased by 1.
Alternatively, the semantics of the curr_pic_as_ref_enabled_flag present in SPS  can be modified as compared to HEVC SCC: Draft 3 as follows:
curr_pic_as_ref_enabled_flag equal to 1 specifies a picture referring to the SPS is included in a reference picture list for at least one of the slice segments of the picture itself. curr_pic_as_ref_enabled_flag equal to 0 specifies that a picture referring to the SPS is not included any reference picture list for any slice segment of the picture itself. When not present, the value of curr_pic_as_ref_enabled_flag is inferred to be equal to 0.
The DPB operation is processed as same as the first embodiment. However, the semantics of the curr_pic_as_ref_enabled_flag is changed as described above.
In addition, slice level syntax curr_pic_in_ref_list_flag is added in each slice segment header of a picture to indicate whether or not the current picture is included in a reference picture list of the picture for the current slice as described in U.S. Provisional Patent Application, Serial No. 62/167,474, filed on May 28, 2015.
In another alternative, a syntax element named curr_pic_in_dpb_flag is added in PPS and the semantics of the curr_pic_as_ref_enabled_flag is modified as compared to HEVC SCC: Draft 3 as follows.
curr_pic_as_ref_enabled_flag equal to 1 specifies a picture referring to the PPS is included in a reference picture list for at least one of the slice segments of the picture itself. curr_pic_as_ref_enabled_flag equal to 0 specifies that a picture referring to the PPS is not included any reference picture list for any slice segment of the picture itself. When not present, the value of curr_pic_as_ref_enabled_flag is inferred to be equal to 0.
The DPB operation is processed as same as the first embodiment of the proposed method 1, but the semantics of the curr_pic_as_ref_enabled_flag is changed as described above.
In addition, slice level syntax curr_pic_in_ref_list_flag is added in each slice segment header of a picture to indicate whether or not the current picture is included in a reference picture list of the picture for the current slice as described in U.S. Provisional Patent Application, Serial No. 62/167,474, filed on May 28, 2015.
Second Method. In this method, a picture or sub-picture memory buffer outside the DPB is used for storing the reconstructed samples before in-loop filter if the reconstructed samples are used in IBC prediction. In this method, bitstream conformance is modified as compared to the current HEVC SCC: Draft 3 so that all reference pictures shall be present in the DPB when needed for prediction except for the current picture for IBC prediction. Here the current picture is considered as a reference picture when IBC mode is enabled for decoding current slice or current picture. HEVC SCC: Draft 3 is changed (added text indicated in Italic style) as follows and no modification is needed in the operation of DPB in Annex C. 3.
C. 4 Bitstream conformance
A bitstream of coded data conforming to this Specification shall fulfill all requirements specified in this clause.
7. All reference pictures except the current picture for IBC prediction which is included in a reference picture list when curr_pic_as_ref_enabled_flag equal to 1 shall be present in the DPB when needed for prediction. Each picture that has PicOutputFlag equal to 1 shall be present in the DPB at its DPB output time unless it is removed from the DPB before its output time by one of the processes specified in clause [0006] .
...
First Embodiment. In this embodiment, an additional picture or sub-picture memory buffer outside DPB is considered for storing the reconstructed samples before in-loop filter if the reconstructed samples are used in IBC prediction in addition to the reconstructed samples after in-loop filter. The picture buffer allocated outside the DPB is the same as a picture buffer allocated inside the DPB in terms of size. In this case, the decoding process for a  coded picture with nuh_layer_id equal to 0 is modified as compared to the current HEVC SCC: Draft 3 as follows accordingly, where added text is indicated in Italic style and deleted text is enclosed by an asterisk pair within a bracket pair (i.e., [*deleted text*] ) .
8.1.3 Decoding process for a coded picture with nuh_layer_id equal to 0
The decoding process operates as follows for the current picture CurrPic:
1. The decoding of NAL units is specified in subclause 8.2.
2. The processes in subclause 8.3 specify the following decoding processes using syntax elements in the slice segment layer and above:
–Variables and functions relating to picture order count are derived in subclause 8.3.1. This needs to be invoked only for the first slice segment of a picture.
–The decoding process for RPS in subclause 8.3.2 is invoked, wherein reference pictures may be marked as "unused for reference" or "used for long-term reference" . This needs to be invoked only for the first slice segment of a picture.
–When curr_pic_as_ref_enabled_flag is equal to 1, a picture or sub-picutre storage buffer outside [*in*] the DPB is allocated for the current picture and the current picture is marked as "used for long-term reference" .
–When the current picture is a BLA picture or is a CRA picture with NoRaslOutputFlag equal to 1, the decoding process for generating unavailable reference pictures specified in subclause 8.3.3 is invoked, which needs to be invoked only for the first slice segment of a picture.
...
3. The processes in subclauses 8.4, 8.5, 8.6, and 8.7 specify decoding processes using syntax elements in all syntax structure layers. It is a requirement of bitstream conformance that the coded slices of the picture shall contain slice segment data for every coding tree unit of the picture, such that the division of the picture into slices, the division of the slices into slice segments, and the division of the slice segments into coding tree units each forms a partitioning of the picture. When curr_pic_as_ref_enabled_flag is equal to 1, the decoded sample values of the current picture before in-loop filtering are stored into the picture storage buffer allocated for the current picture if the reconstructed  samples are used in IBC prediction.
...
4. After all slices of the current picture have been decoded, the entire current decoded picture after in-loop fitlering is stored into the picture storage buffer in the DPB [*allocated for the current picture*] and is marked as "used for short-term reference" .
In the above embodiment, curr_pic_as_ref_enabled_flag in SPS may be replaced with a flag of indicating whether or not the current picture is included in a reference picture list. It can be indicated that whether the current picture is included in a reference list by a syntax element named curr_pic_in_ref_list_flag present in PPS level or/and slice segment header level as described in U.S. Provisional Patent Application, Serial No. 62/167,474, filed on May 28, 2015
In another embodiment of the second method, the bitstream conformance is modified in a way that curr_pic_in_ref_list_flag present in PPS level or/and slice segment header level is served as a flag of invoking the modified operations in the second method as compared to the curr_pic_as_ref_enabled_flag present in SPS. In other words, curr_pic_as_ref_enabled_flag in SPS in the modifications of method 2 can be replaced with curr_pic_in_ref_list_flag present in PPS level or/and slice segment header level. In the another embodiment of the second method, for example, Annex C. 4 Bitstream conformance can be modified as follows, and other parts of Annexes and Sections could be modified accordingly.
C. 4 Bitstream conformance
A bitstream of coded data conforming to this Specification shall fulfil all requirements specified in this clause.
7. All reference pictures except the current picture for IBC prediction which is included in a reference picture list when curr_pic_in_ref_list_flag [*curr_pic_as_ref_enabled_flag*] equal to 1 shall be present in the DPB when needed for prediction. Each picture that has PicOutputFlag equal to 1 shall be present in the DPB at its DPB output time unless it is removed from the DPB  before its output time by one of the processes specified in clause C. 3.
Reference picture list (i.e., RefPicListTemp0 array) construction initialization process
In one embodiment, the process is modified such that the current picture (before loop filtering) is used as reference, and is put in the N-th position of the reference picture list (i.e., index N-1 in the list) . The list can be either list 0 or list 1. The following example is provided for list 0. N can be an integer number in the range of (1, num_ref_idx_l0_active_minus1 + 1) , inclusively. For example, N can be equal to 1 (i.e., the second position in the list, after one temporal reference picture) or N can be equal to num_ref_idx_l0_active_minus1 + 1 (i.e., the last position of the list) .
An exemplary process is shown in the following table, where currPic refers to the current picture before in-loop filtering.
Table 4
Figure PCTCN2016083737-appb-000005
Figure PCTCN2016083737-appb-000006
In another embodiment, the unfiltered (Deblocking and SAO filters) version of current picture is used as a possible reference picture for current slice, and it is placed at the last position of reference picture list X (X=0 or 1) , when one or both of the following condidtion is true:
–The sequence/picture/slice level flag signals that current unfiltered picture is used as a reference picture,
–The reference list modification for this list is not used.
An exemplary process is shown in the following table, where currPic refers to the current picture before loop filtering.
Table 5
Figure PCTCN2016083737-appb-000007
Figure PCTCN2016083737-appb-000008
The list RefPicList0 is constructed as follows:
for (rIdx = 0; rIdx <= num_ref_idx_l0_active_minus1; rIdx++)
  RefPicList0 [rIdx] = ref_pic_list_modification_flag_l0 ?
RefPicListTemp0 [list_entry_l0 [rIdx] ] : RefPicListTemp0 [rIdx ]
if (curr_pic_as_ref_enabled_flag &&! ref_pic_list_modification_flag_l0)
  RefPicList0 [num_ref_idx_l0_active_minus1] = currPic
DPB management for the unfiltered version of current picture used as a reference picture
First Embodiment. In the reference picture list construction initialization process disclosed above, when curr_pic_as_ref_enabled_flag is equal to 1, both filtered and unfiltered versions of current picture are placed in the DPB before starting the decoding process of current picture. The following aspects are addressed:
–The time to put the two pictures into DPB can be indicated by the instance that the process occurs instantaneously at the CPB removal time of access unit n (of current picture) , CpbRemovalTime [n] .
–The current decoded picture (unfiltered) is stored in the DPB in an empty picture storage buffer, the DPB fullness is increased by one, and the current picture (unfiltered) is marked as "used for long-term reference" .
–The current decoded picture (filtered) is stored in the DPB in an empty picture storage buffer, the DPB fullness is increased by one, and the current picture (filtered)  is marked as "used for short-term reference" .
After decoding of current picture (filtered) , when curr_pic_as_ref_enabled_flag is equal to 1, the unfiltered version of current picture will be removed from the DPB, while the filtered version of current picture will remain in the DPB. After the current picture is processed the filtered/unfiltered version of current picture is referred as the filtered/unfiltered version of past picture respectively. The next to be decoded picture is referred as the next current picture. The following aspects are addressed:
–The time to remove the unfiltered version of past picture can be indicated by the instance that the removal of this picture from the DPB happens any time after the decoding of current picgture, but has to be before decoding of the next current picture (can be after parsing the slice header of the first slice of the next current picture) . One example of the removal time is immediately after decoding of the current picture, at the CPB removal time of the last decoding unit of access unit n (containing the current picture) .
–When the unfiltered version of past picture is removed from DPB, the DPB fullness is decreased by one.
–The filtered version of past picture remains in the DPB.
In a variation of the first embodiment, before decoding the current picture (but after parsing the slice header of the first slice of the current picture) , the filtered version and unfilered version of current picture are the sameif it is known that the loop filters (deblocking and SAO) are disabled for the entire picture. The operations related to the unfiltered version of current picture such as putting it into DPB and incrementing DPB fullness by one, and removing it from DPB and decrementing DPB fullness by one, is not necessary.
Second Embodiment. When curr_pic_as_ref_enabled_flag is equal to 1, the filtered version of current picture is put in the DPB in an empty picture storage buffer before starting the decoding process of current picture. While the unfiltered version of current picture is put in an empty picture storage buffer that is not counted as part of DPB. The following aspects are addressed:
–The time to put the filtered version of current picture into DPB can be indicated by the instance that this process happens instantaneously at the CPB removal time of access unit n (of current picture) , CpbRemovalTime [n] .
–The time to put the unfiltered version of current picture into an empty picture storage buffer (not stored in the DPB) can be indicated by: this process happens instantaneously at the CPB removal time of access unit n (of current picture) , CpbRemovalTime [n] . The DPB fullness remains unchanged, and the current picture (unfiltered) is marked as "used for long-term reference" .
–The current decoded picture (filtered) is stored in the DPB in an empty picture storage buffer, the DPB fullness is increased by one, and the current picture (filtered) is marked as "used for short-term reference" .
After decoding of current picture (filtered) , when curr_pic_as_ref_enabled_flag is equal to 1, the unfiltered version of current picture will be removed from the picture storage buffer (not in DPB) , while the filtered version of current picture will remain in the DPB. When the process moves to the next picture, the unfiltered version of current picture is referred as the unfiltered version of past picture. Similarly, the filtered version of current picture is referred as the filtered version of past picture. The next to be decoded picture is referred as the next current picture. The following aspects are addressed:
–The time to remove the unfiltered version of past picture can be indicated by the instance that the removal of this picture from the the picture storage buffer (not in DPB) happens any time after the decoding of current picgture, but has to be before decoding of the next current picture (can be after parsing the slice header of the first slice of the next current picture) . One example of the removal time is immediately after decoding of the current picture, at the CPB removal time of the last decoding unit of access unit n (containing the current picture)
–When the unfiltered version of past picture is removed from the picture storage buffer (not in DPB) , the DPB fullness remains unchanged
Third Embodiment. When curr_pic_as_ref_enabled_flag is equal to 1, the unfiltered version of the current picture is placed in an empty picture storage buffer in the DPB, before starting the decoding process of current picture. While the filtered version of current  picture is placed in an empty picture storage buffer that is not counted as part of DPB. The following aspects are addressed:
–The time to put the unfiltered version of current picture into DPB can be indicated by the instance that this process happens instantaneously at the CPB removal time of access unit n (of current picture) , CpbRemovalTime [n] .
–The current decoded picture (unfiltered) is stored in the DPB in an empty picture storage buffer, the DPB fullness is increased by one, and the current picture (unfiltered) is marked as "used for long-term reference" .
–The current decoded picture (filtered) is in an empty picture storage buffer (not stored in the DPB) , the DPB fullness remains unchanged, and the current picture (filtered) is marked as "used for short-term reference" .
After decoding of current picture (both filtered an unfiltered) , when curr_pic_as_ref_enabled_flag is equal to 1, the unfiltered version of current picture will be removed from the DPB. While the filtered version of current picture will be put in the DPB. After the current picture is processed, the filtered/unfiltered version of current picture is referred as the filtered/unfiltered version of past picture respectively. The next to be decoded picture is referred as the next current picture. The following aspects are addressed in two approaches:
Approach A:
–The time to remove the unfiltered version of past picture can be indicated by the instance that the removal of this picture from DPB happens any time after the decoding of current picture, but has to be before decoding of the next current picture (can be after parsing the slice header of the first slice of the next current picture) . One example of the removal time is immediately after decoding of the current picture, at the CPB removal time of the last decoding unit of access unit n (containing the current picture) .
–When the unfiltered version of past picture is removed from DPB, the DPB fullness is decremented by one.
–Right after the unfiltered version of past picture is removed from DPB, the filtered version of past picture is put into DPB, the DPB fullness is incremented by one.
Approach B:
–The filtered version of current picture is put into DPB, in the position of the unfiltered version of current picture, to replace it.
–The time to move the unfiltered version of past picture into DPB can be indicated by: it can happen any time after the decoding of current picture, but has to be before decoding of the next current picture (can be after parsing the slice header of the first slice of the next current picture) . One example of the replace time is immediately after decoding of the current picture, at the CPB removal time of the last decoding unit of access unit n (containing the current picture) .
–The DPB fullness remains unchanged.
In a variation to the third embodiment, before decoding the current picture (but after parsing the slice header of the first slice of the current picture) , the filtered version and unfilered version of current picture are the same if it is known that the in-loop filters (deblocking and SAO) are disabled for the entire picture. The operations related to the unfiltered version of current picture such as, putting it into DPB and incrementing DPB fullness by one, and removing it from DPB and decrementing DPB fullness by one, is not necessary. In this case, the operations for the filtered version of current picture, can be the same as specified in the third embodiment, or the operations for the filtered version of current picture is not necessary since it is the same as the unfiltered version in this case.
In the three embodiments mentioned above, the flag curr_pic_as_ref_enabled_flag can be a sequence level, picture level or slice level flag, indicating that for a whole sequence/picture/slice, the current picture may be used as reference picture.
The identification of the situation that no in-loop filters are used for the entire picture (deblocking and SAO are disabled for the picture) can be represented in the following conditions:
The SAO filter is not used for the current picture, if one of the three cases is true:
Case 1: when sequence level SAO enable flag  sample_adaptive_offset_enabled_flag is false.
Case 2: when sequence level SAO enable flag sample_adaptive_offset_enabled_flag is true, there is only once slice in the picture, and the slice header flag (s) slice_sao_luma_flag and slice_sao_chroma_flag (if chroma components exist) is (are) false.
Case 3: when sequence level SAO enable flag sample_adaptive_offset_enabled_flag is true, there are more than once slice in the picture, and the slice header flag (s) slice_sao_luma_flag and slice_sao_chroma_flag (if chroma components exist) for all slices are false.
The deblocking filter is not used for the current picture, if one of the three cases is true:
Case 1: There is only one slice in the picture, and the slice header flag slice_deblocking_filter_disabled_flag is present and is true.
Case 2: There is only one slice in the picture, the slice header flag slice_deblocking_filter_disabled_flag is not present, and the picture level pps_deblocking_filter_disabled_flag is true.
Case 3: There is more than one slice in the picture, all the slice header flag slice_deblocking_filter_disabled_flag are true when present; or when not present, the picture level pps_deblocking_filter_disabled_flag is true.
DPB size management for IntraBC coded blocks
In the first embodiment, when both filtered and unfiltered versions of current picture are placed into the DPB before the decoding of current picture, the DPB size (maxDpbPicBuf) is kept unchanged.
In the second embodiment, the filtered version of current picture is placed into the  DPB before the decoding of current picture while the other hand, the unfiltered picture is not placed into DPB. Alternatively, the unfiltered version of current picture can be placed into the DPB before the decoding of current picture while the filtered picture is not put into DPB. In both cases, the maxDpbPicBuf is modified as maxDpbPicBuf–curr_pic_as_ref_enabled_flag. If curr_pic_as_ref_enabled_flag is equal to 1, one buffer is reserved for the one version that is not in DPB.
In a variation to the second embodiment, during calculating the DPB size using maxDpbPicBuf–curr_pic_as_ref_enabled_flag, the curr_pic_as_ref_enabled_flag part is also conditioned by the identification of the use of in-loop filters in the current picture. The process can be represented by the following statements:
–if no filter is used for current picture, DPB size is maxDpbPicBuf;
–other wise, if curr_pic_as_ref_enabled_flag is true, DPB size is maxDpbPicBuf–1
–other wise, DPB size is maxDpbPicBuf
The flag curr_pic_as_ref_enabled_flag can be incorporated in a sequence level, picture level or slice level flag indicating that the current picture may be used as reference picture for a whole corresponding sequence/picture/slice.
In the third embodiment, the filtered version of current picture is placed into the DPB before the decoding of current picture while the unfiltered picture is not put into DPB. Alternatively, the unfiltered version of current picture can be placed into the DPB before the decoding of current picture while the filtered picture is not put into DPB. In both cases the maxDpbPicBuf is modified as maxDpbPicBuf–1. One buffer is reserved for the one version that is not in DPB.
Fig. 1 illustrates a flowchart of an exemplary coding system using coding modes including IntraBC mode (Intra-block copy mode) and Inter prediction mode according to an embodiment of the present invention, where two picture buffers are allocated in the decoded picture buffer (DPB) to store the reconstructed current picture after in-loop filtering and the reconstructed current picture before in-loop filtering. The system stores one or more previously  reconstructed pictures after in-loop filtering in a DPB (decoded picture buffer) in step 110. A video bitstream including compressed data associated with a current picture is received in step 120. A first picture buffer is allocated in the DPB as shown in step 130 and a second picture buffer is allocated in the DPB as shown in step 140. One or more reconstructed image units associated with the current picture are derived from the video bitstream in step 150. The reconstructed image units before the in-loop filtering are stored in the first picture buffer as shown in step 160. The reconstructed image units after the in-loop filtering are stored in the second picture buffer as shown in step 170. The current reconstructed image unit is reconstructed using the reconstructed image units before the in-loop filtering in the first picture buffer to derive IBC prediction if a current reconstructed image unit is coded in the IBC mode as shown in step 180. The current reconstructed image unit is reconstructed using the previously reconstructed pictures after the in-loop filtering in the DPB to derive Inter prediction if the current reconstructed image unit is coded in the Inter prediction mode as shown in step 190.
Fig. 2 illustrates a flowchart of an exemplary coding system using coding modes including IntraBC mode (Intra-block copy mode) and Inter prediction mode according to an embodiment of the present invention, where one picture buffer is allocated in the decoded picture buffer (DPB) and one picture buffer is allocated in a temporary buffer outside the DPB to store the reconstructed current picture after in-loop filtering and the reconstructed current picture before in-loop filtering. The system stores one or more previously reconstructed pictures after in-loop filtering in a DPB (decoded picture buffer) in step 210. A video bitstream including compressed data associated with a current picture is received in step 220. A first picture buffer and a second picture buffer are allocated in the DPB or in a temporary buffer outside the DPB as shown in step 230, where one of the first picture buffer and the second picture buffer is in the DPB and one of the first picture buffer and the second picture buffer is in the temporary buffer outside the DPB. One or more reconstructed image units associated with the current picture are derived from the video bitstream in step 240. The reconstructed image units before the in-loop filtering are stored in the first picture buffer as shown in step 250. The  reconstructed image units after the in-loop filtering are stored in the second picture buffer as shown in step 260. The current reconstructed image unit is reconstructed using the reconstructed image units before the in-loop filtering in the first picture buffer to derive IBC prediction if a current reconstructed image unit is coded in the IBC mode as shown in step 270. The current reconstructed image unit is reconstructed using the previously reconstructed pictures after the in-loop filtering in the DPB to derive Inter prediction if the current reconstructed image unit is coded in the Inter prediction mode as shown in step 280.
The flowcharts shown above are intended to illustrate examples of IntraBC coding and Inter coding according to the present invention. A person skilled in the art may modify each step, re-arranges the steps, split a step, or combine steps to practice the present invention without departing from the spirit of the present invention. In the disclosure, specific syntax and semantics have been used to illustrate examples to implement embodiments of the present invention. A skilled person may practice the present invention by substituting the syntax and semantics with equivalent syntax and semantics without departing from the spirit of the present invention.
The above description is presented to enable a person of ordinary skill in the art to practice the present invention as provided in the context of a particular application and its requirement. Various modifications to the described embodiments will be apparent to those with skill in the art, and the general principles defined herein may be applied to other embodiments. Therefore, the present invention is not intended to be limited to the particular embodiments shown and described, but is to be accorded the widest scope consistent with the principles and novel features herein disclosed. In the above detailed description, various specific details are illustrated in order to provide a thorough understanding of the present invention. Nevertheless, it will be understood by those skilled in the art that the present invention may be practiced.
Embodiment of the present invention as described above may be implemented in various hardware, software codes, or a combination of both. For example, an embodiment of  the present invention can be one or more electronic circuits integrated into a video compression chip or program code integrated into video compression software to perform the processing described herein. An embodiment of the present invention may also be program code to be executed on a Digital Signal Processor (DSP) to perform the processing described herein. The invention may also involve a number of functions to be performed by a computer processor, a digital signal processor, a microprocessor, or field programmable gate array (FPGA) . These processors can be configured to perform particular tasks according to the invention, by executing machine-readable software code or firmware code that defines the particular methods embodied by the invention. The software code or firmware code may be developed in different programming languages and different formats or styles. The software code may also be compiled for different target platforms. However, different code formats, styles and languages of software codes and other means of configuring code to perform the tasks in accordance with the invention will not depart from the spirit and scope of the invention.
The invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described examples are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.

Claims (25)

  1. A method of managing a DPB (decoded picture buffer) and decoding a video bitstream in a video decoding system, wherein the video decoding system uses coding modes including an Inter prediction mode and a Intra Block Copy (IBC) mode, comprising:
    storing one or more previously reconstructed pictures after in-loop filtering in the DPB (decoded picture buffer) ;
    receiving the video bitstream including compressed data associated with a current picture;
    allocating a first picture buffer in the DPB;
    allocating a second picture buffer in the DPB;
    deriving one or more reconstructed image units associated with the current picture from the video bitstream;
    storing said one or more reconstructed image units before the in-loop filtering in the first picture buffer;
    storing said one or more reconstructed image units after the in-loop filtering in the second picture buffer;
    reconstructing a current reconstructed image unit using said one or more reconstructed image units before the in-loop filtering in the first picture buffer to derive IBC prediction if the current reconstructed image unit is coded in the IBC mode; and
    reconstructing the current reconstructed image unit using said one or more previously reconstructed pictures after the in-loop filtering in the DPB to derive Inter prediction if the current reconstructed image unit is coded in the Inter prediction mode.
  2. The method of Claim 1, wherein said allocating the first picture buffer in the DPB and said allocating the second picture buffer in the DPB are performed before the current picture is decoded.
  3. The method of Claim 2, wherein DPB buffer fullness is incremented by one each time when either the first picture buffer or the second picture buffer is allocated in the DPB.
  4. The method of Claim 2, wherein the first picture buffer is marked to indicate that the first picture buffer is used for long-term reference and the second picture buffer is marked to indicate that the second picture buffer is used for short-term reference.
  5. The method of Claim 1, wherein the first picture buffer allocated is removed from the DPB after the current picture is reconstructed.
  6. The method of Claim 5, wherein the second picture buffer allocated stays in the DPB and is used as a short term reference picture for decoding of subsequent pictures.
  7. The method of Claim 5, wherein DPB buffer fullness is decremented by one when the first picture buffer allocated is removed from the DPB.
  8. The method of Claim 5, wherein a variable to indicate a maximum DPB buffer size remains to be the same as the maximum DPB buffer size specified for High Efficiency Video Coding (HEVC) Screen Content Coding (SCC) Draft 3.
  9. The method of Claim 1, wherein said allocating the first picture buffer in the DPB, said storing said one or more reconstructed image units before the in-loop filtering in the first picture buffer and said reconstructing the reconstructed current image unit using said one or more reconstructed image units before the in-loop filtering in the first picture buffer to derive IBC prediction if a current reconstructed image unit is coded in the IBC mode are performed only when a flag indicates that the current picture as a reference picture is enabled.
  10. The method of Claim 9, wherein the flag is signalled in a sequence level, picture level or slice level.
  11. The method of Claim 1, wherein each reconstructed image unit corresponds to one prediction unit (PU) , coding unit (CU) , coding tree unit (CTU) , or slice.
  12. The method of Claim 1, wherein a variable to indicate a maximum DPB buffer size is subtracted by a value of a syntax element specifying whether the current picture is enabled to be used as a reference picture for the current picture, where the value equal to one specifies that the IBC mode is enabled for the current picture.
  13. The method of Claim 1, further comprising determining if the in-loop filtering is disabled for the current picture, storing only said one or more reconstructed image units before the in-loop filtering in the first picture buffer if the in-loop filter is disabled.
  14. A method of managing a DPB (decoded picture buffer) and decoding a video bitstream in a video decoding system, wherein the video decoding system uses coding modes including an Inter prediction mode and a Intra Block Copy (IBC) mode, comprising:
    storing one or more previously reconstructed pictures after in-loop filtering in the DPB (decoded picture buffer) ;
    receiving the video bitstream including compressed data associated with a current picture;
    allocating a first picture buffer and a second picture buffer in the DPB or in a temporary buffer outside the DPB, wherein one of the first picture buffer and the second picture buffer is in the DPB and one of the first picture buffer and the second picture buffer is in the temporary buffer outside the DPB;
    deriving one or more reconstructed image units associated with the current picture from the video bitstream;
    storing said one or more reconstructed image units before the in-loop filtering in the first picture buffer;
    storing said one or more reconstructed image units after the in-loop filtering in the second picture buffer;
    reconstructing a current reconstructed image unit using said one or more reconstructed image units before the in-loop filtering in the first picture buffer to derive IBC prediction if the current reconstructed image unit is coded in the IBC mode; and
    reconstructing the current reconstructed image unit using said one or more previously reconstructed pictures after the in-loop filtering in the DPB to derive Inter prediction if the current reconstructed image unit is coded in the Inter prediction mode.
  15. The method of Claim 14, wherein said allocating the first picture buffer and the second picture buffer in the DPB or in the temporary buffer outside the DPB are performed before the current picture is decoded.
  16. The method of Claim 14, wherein if the first picture buffer is allocated in the DPB, the first picture buffer allocated is removed from the DPB after the current picture is reconstructed.
  17. The method of Claim 16, wherein the second picture buffer is placed into the DPB after the current picture is reconstructed.
  18. The method of Claim 14, wherein if the first picture buffer is allocated in the temporary buffer outside the DPB, the first picture buffer is removed from the temporary buffer after the current picture is reconstructed.
  19. The method of Claim 18, wherein the second picture buffer allocated stays in the DPB after the current picture is reconstructed.
  20. The method of Claim 14, wherein a variable to indicate a maximum DPB buffer size is subtracted by a value of a syntax element specifying whether the current picture is enabled to be used as a reference picture for the current picture, where the value equal to one specifies that  the IBC mode is enabled for the current picture.
  21. The method of Claim 14, wherein each reconstructed image unit corresponds to one prediction unit (PU) , coding unit (CU) , coding tree unit (CTU) or slice.
  22. The method of Claim 14, wherein allocating a first picture buffer and a second picture buffer in the DPB or in a temporary buffer outside the DPB, said storing said one or more reconstructed image units before the in-loop filtering in the first picture buffer, and said reconstructing the reconstructed current image unit using said one or more reconstructed image units before the in-loop filtering in the first picture buffer to derive IBC prediction if a current reconstructed image unit is coded in the IBC mode are performed only when a flag indicates that the current picture as a reference picture is enabled.
  23. The method of Claim 22, wherein the flag is signalled in a sequence level, picture level or slice level.
  24. An apparatus for managing a DPB (decoded picture buffer) and decoding a video bitstream in a video decoding system, wherein the video decoding system uses coding modes including an Inter prediction mode and a Intra Block Copy (IBC) mode, comprising one or more electronic circuits arranged to:
    store one or more previously reconstructed pictures after in-loop filtering in the DPB (decoded picture buffer) ;
    receive the video bitstream including compressed data associated with a current picture;
    allocate a first picture buffer in the DPB;
    allocate a second picture buffer in the DPB;
    derive one or more reconstructed image units associated with the current picture from the video bitstream;
    store said one or more reconstructed image units before the in-loop filtering in the first picture buffer;
    store said one or more reconstructed image units after the in-loop filtering in the second picture buffer;
    if a current reconstructed image unit is coded in the IBC mode, reconstruct the current reconstructed image unit using said one or more reconstructed image units before the in-loop filtering in the first picture buffer to derive IBC prediction; and
    if the current reconstructed image unit is coded in the Inter prediction mode, reconstruct the current reconstructed image unit using said one or more previously reconstructed pictures after the in-loop filtering in the DPB to derive Inter prediction.
  25. An apparatus for managing a DPB (decoded picture buffer) and decoding a video bitstream in a video decoding system, wherein the video decoding system uses coding modes including an Inter prediction mode and a Intra Block Copy (IBC) mode, comprising one or more electronic circuits arranged to:
    store one or more previously reconstructed pictures after in-loop filtering in the DPB (decoded picture buffer) ;
    receive the video bitstream including compressed data associated with a current picture;
    allocate a first picture buffer and a second picture buffer in the DPB or in a temporary buffer outside the DPB, wherein one of the first picture buffer and the second picture buffer is in the DPB and one of the first picture buffer and the second picture buffer is in the temporary buffer outside the DPB;
    derive one or more reconstructed image units associated with the current picture from the video bitstream;
    store said one or more reconstructed image units before the in-loop filtering in the first  picture buffer;
    store said one or more reconstructed image units after the in-loop filtering in the second picture buffer;
    if a current reconstructed image unit is coded in the IBC mode, reconstruct the current reconstructed image unit using said one or more reconstructed image units before the in-loop filtering in the first picture buffer to derive IBC prediction; and
    if the current reconstructed image unit is coded in the Inter prediction mode, reconstruct the current reconstructed current image unit using said one or more previously reconstructed pictures after the in-loop filtering in the DPB to derive Inter prediction.
PCT/CN2016/083737 2015-05-29 2016-05-27 Method of decoded picture buffer management for intra block copy mode WO2016192594A1 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201680031167.1A CN107615762B (en) 2015-05-29 2016-05-27 Method and device for managing decoding image buffer and decoding video bit stream
CA2985872A CA2985872C (en) 2015-05-29 2016-05-27 Method of decoded picture buffer management for intra block copy mode
EP16802517.9A EP3292691A4 (en) 2015-05-29 2016-05-27 Method of decoded picture buffer management for intra block copy mode
CN202010460921.1A CN111818340B (en) 2015-05-29 2016-05-27 Method and device for managing decoding image buffer and decoding video bit stream
US15/577,237 US10587881B2 (en) 2015-05-29 2016-05-27 Method of decoded picture buffer management for intra block copy mode

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201562168144P 2015-05-29 2015-05-29
US62/168,144 2015-05-29
US201562182685P 2015-06-22 2015-06-22
US62/182,685 2015-06-22
US201562183799P 2015-06-24 2015-06-24
US62/183,799 2015-06-24

Publications (1)

Publication Number Publication Date
WO2016192594A1 true WO2016192594A1 (en) 2016-12-08

Family

ID=57440175

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2016/083737 WO2016192594A1 (en) 2015-05-29 2016-05-27 Method of decoded picture buffer management for intra block copy mode

Country Status (5)

Country Link
US (1) US10587881B2 (en)
EP (1) EP3292691A4 (en)
CN (2) CN111818340B (en)
CA (1) CA2985872C (en)
WO (1) WO2016192594A1 (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020156540A1 (en) * 2019-02-02 2020-08-06 Beijing Bytedance Network Technology Co., Ltd. Buffer management for intra block copy in video coding
CN113396592A (en) * 2019-02-02 2021-09-14 北京字节跳动网络技术有限公司 Buffer management for intra block copy in video coding
US11523107B2 (en) 2019-07-11 2022-12-06 Beijing Bytedance Network Technology Co., Ltd. Bitstream conformance constraints for intra block copy in video coding
US11528476B2 (en) 2019-07-10 2022-12-13 Beijing Bytedance Network Technology Co., Ltd. Sample identification for intra block copy in video coding
US11546581B2 (en) 2019-03-04 2023-01-03 Beijing Bytedance Network Technology Co., Ltd. Implementation aspects in intra block copy in video coding
US11575888B2 (en) 2019-07-06 2023-02-07 Beijing Bytedance Network Technology Co., Ltd. Virtual prediction buffer for intra block copy in video coding
US11882287B2 (en) 2019-03-01 2024-01-23 Beijing Bytedance Network Technology Co., Ltd Direction-based prediction for intra block copy in video coding
US11985308B2 (en) 2019-03-04 2024-05-14 Beijing Bytedance Network Technology Co., Ltd Implementation aspects in intra block copy in video coding

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115134610A (en) * 2015-06-11 2022-09-30 杜比实验室特许公司 Method for encoding and decoding image using adaptive deblocking filtering and apparatus therefor
US11159788B2 (en) * 2018-08-03 2021-10-26 Mediatek Inc. Method and apparatus of enhanced Intra Block Copying mode for video coding
KR102609949B1 (en) 2018-08-17 2023-12-04 후아웨이 테크놀러지 컴퍼니 리미티드 Reference image management in video coding
WO2020113065A1 (en) * 2018-11-27 2020-06-04 Op Solutions, Llc Adaptive block update of unavailable reference frames using explicit and implicit signaling
US11196988B2 (en) * 2018-12-17 2021-12-07 Apple Inc. Reference picture management and list construction
US10904545B2 (en) * 2018-12-26 2021-01-26 Tencent America LLC Method for syntax controlled decoded picture buffer management
WO2020177662A1 (en) * 2019-03-01 2020-09-10 Beijing Bytedance Network Technology Co., Ltd. Implementation aspects in intra block copy in video coding
US11394990B2 (en) 2019-05-09 2022-07-19 Tencent America LLC Method and apparatus for signaling predictor candidate list size
US11212545B2 (en) 2019-06-07 2021-12-28 Tencent America LLC Method and apparatus for improved implicit transform selection
US11303913B2 (en) 2019-06-19 2022-04-12 Qualcomm Incorporated Decoded picture buffer indexing
WO2021007328A1 (en) 2019-07-11 2021-01-14 Tencent America LLC Method and apparatus for video coding
US11616962B2 (en) 2019-07-15 2023-03-28 Tencent America LLC Method and apparatus for video coding
US11375243B2 (en) 2019-07-17 2022-06-28 Tencent America LLC Method and apparatus for video coding
US11310511B2 (en) 2019-10-09 2022-04-19 Tencent America LLC Method and apparatus for video coding
US20230049909A1 (en) * 2019-12-31 2023-02-16 Koninklijke Kpn N.V. Partial output of a decoded picture buffer in video coding
BR112022014484A2 (en) * 2020-01-23 2022-09-13 Huawei Tech Co Ltd METHOD OF DECODING AN ENCODED VIDEO SEQUENCE AND DECODER, METHOD OF ENCODING A VIDEO SEQUENCE AND ENCODER, AND NON-TRANSIENT COMPUTER-READABLE MEDIA
WO2021235802A1 (en) * 2020-05-18 2021-11-25 엘지전자 주식회사 Image or video coding on basis of information related to picture output
US11743459B2 (en) * 2020-09-29 2023-08-29 Qualcomm Incorporated Filtering process for video coding

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090147850A1 (en) * 2007-12-07 2009-06-11 Thomson Licensing Methods and apparatus for decoded picture buffer (DPB) management in single loop decoding for multi-view video
CN103873872A (en) * 2012-12-13 2014-06-18 联发科技(新加坡)私人有限公司 Reference image management method and device
WO2015054811A1 (en) * 2013-10-14 2015-04-23 Microsoft Corporation Features of intra block copy prediction mode for video and image coding and decoding

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100581601B1 (en) * 1999-11-02 2006-05-22 삼성전자주식회사 The Method and System that realize block copy using blending blocks by changeable sacn order
EP1949701A1 (en) * 2005-10-11 2008-07-30 Nokia Corporation Efficient decoded picture buffer management for scalable video coding
US9445128B2 (en) * 2006-12-08 2016-09-13 Freescale Semiconductor, Inc. System and method of determining deblocking control flag of scalable video system for indicating presentation of deblocking parameters for multiple layers
TWI387347B (en) * 2009-02-18 2013-02-21 Novatek Microelectronics Corp Picture decoder, reference-picture communication interface, and method for controlling reference image
US8885729B2 (en) * 2010-12-13 2014-11-11 Microsoft Corporation Low-latency video decoding
US8842723B2 (en) * 2011-01-03 2014-09-23 Apple Inc. Video coding system using implied reference frames
KR101578308B1 (en) * 2011-06-30 2015-12-16 텔레폰악티에볼라겟엘엠에릭슨(펍) Reference picture signaling
KR20130058584A (en) * 2011-11-25 2013-06-04 삼성전자주식회사 Method and apparatus for encoding image, and method and apparatus for decoding image to manage buffer of decoder
CN102438147B (en) * 2011-12-23 2013-08-07 上海交通大学 Intra-frame synchronous stereo video multi-reference frame mode inter-view predictive coding and decoding method
WO2014089805A1 (en) 2012-12-13 2014-06-19 Mediatek Singapore Pte. Ltd. A new reference management method for video coding
US10904551B2 (en) * 2013-04-05 2021-01-26 Texas Instruments Incorporated Video coding using intra block copy
US9503715B2 (en) * 2013-08-30 2016-11-22 Qualcomm Incorporated Constrained intra prediction in video coding
US9554141B2 (en) * 2013-11-18 2017-01-24 Arris Enterprises, Inc. Intra block copy for intra slices in high efficiency video coding (HEVC)
US20150271515A1 (en) * 2014-01-10 2015-09-24 Qualcomm Incorporated Block vector coding for intra block copy in video coding
WO2015136941A1 (en) * 2014-03-13 2015-09-17 Sharp Kabushiki Kaisha Constrained reference picture parameters
US10432928B2 (en) * 2014-03-21 2019-10-01 Qualcomm Incorporated Using a current picture as a reference for video coding
US9877034B2 (en) * 2014-04-14 2018-01-23 Avago Technologies General Ip (Singapore) Pte. Ltd. Pipelined video decoder system
US10404979B2 (en) * 2016-03-17 2019-09-03 Mediatek Inc. Video coding with interpolated reference pictures

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090147850A1 (en) * 2007-12-07 2009-06-11 Thomson Licensing Methods and apparatus for decoded picture buffer (DPB) management in single loop decoding for multi-view video
CN103873872A (en) * 2012-12-13 2014-06-18 联发科技(新加坡)私人有限公司 Reference image management method and device
WO2015054811A1 (en) * 2013-10-14 2015-04-23 Microsoft Corporation Features of intra block copy prediction mode for video and image coding and decoding

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JOSHI, RAJAN ET AL.: "High Efficiency Video Coding (HEVC) Screen Content Coding: Draft 3", JOINT COLLABORATIVE TEAM ON VIDEO CODING(JCT-VC) OF ITU-T SG 16 WP 3 AND ISOI IEC JTC 1/SC 29/WG 1120TH MEETING, 10 February 2015 (2015-02-10), Geneva, CH, XP055321224 *
See also references of EP3292691A4

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113396592B (en) * 2019-02-02 2023-11-14 北京字节跳动网络技术有限公司 Buffer management for intra block copying in video codec
US11228775B2 (en) 2019-02-02 2022-01-18 Beijing Bytedance Network Technology Co., Ltd. Data storage in buffers for intra block copy in video coding
US11375217B2 (en) 2019-02-02 2022-06-28 Beijing Bytedance Network Technology Co., Ltd. Buffer management for intra block copy in video coding
US11438613B2 (en) 2019-02-02 2022-09-06 Beijing Bytedance Network Technology Co., Ltd. Buffer initialization for intra block copy in video coding
CN113396592A (en) * 2019-02-02 2021-09-14 北京字节跳动网络技术有限公司 Buffer management for intra block copy in video coding
WO2020156540A1 (en) * 2019-02-02 2020-08-06 Beijing Bytedance Network Technology Co., Ltd. Buffer management for intra block copy in video coding
US11956438B2 (en) 2019-03-01 2024-04-09 Beijing Bytedance Network Technology Co., Ltd. Direction-based prediction for intra block copy in video coding
US11882287B2 (en) 2019-03-01 2024-01-23 Beijing Bytedance Network Technology Co., Ltd Direction-based prediction for intra block copy in video coding
US11546581B2 (en) 2019-03-04 2023-01-03 Beijing Bytedance Network Technology Co., Ltd. Implementation aspects in intra block copy in video coding
US11985308B2 (en) 2019-03-04 2024-05-14 Beijing Bytedance Network Technology Co., Ltd Implementation aspects in intra block copy in video coding
US11575888B2 (en) 2019-07-06 2023-02-07 Beijing Bytedance Network Technology Co., Ltd. Virtual prediction buffer for intra block copy in video coding
US11936852B2 (en) 2019-07-10 2024-03-19 Beijing Bytedance Network Technology Co., Ltd. Sample identification for intra block copy in video coding
US11528476B2 (en) 2019-07-10 2022-12-13 Beijing Bytedance Network Technology Co., Ltd. Sample identification for intra block copy in video coding
US11523107B2 (en) 2019-07-11 2022-12-06 Beijing Bytedance Network Technology Co., Ltd. Bitstream conformance constraints for intra block copy in video coding

Also Published As

Publication number Publication date
US20180160122A1 (en) 2018-06-07
CA2985872C (en) 2020-04-14
CA2985872A1 (en) 2016-12-08
CN111818340A (en) 2020-10-23
CN107615762B (en) 2020-06-26
CN107615762A (en) 2018-01-19
EP3292691A4 (en) 2019-01-23
EP3292691A1 (en) 2018-03-14
CN111818340B (en) 2022-05-13
US10587881B2 (en) 2020-03-10

Similar Documents

Publication Publication Date Title
US10587881B2 (en) Method of decoded picture buffer management for intra block copy mode
AU2019222914B2 (en) Method and apparatus for using a current picture as a reference picture
US11122276B2 (en) Method and system of decoded picture buffer for intra block copy mode
US10575013B2 (en) Method and apparatus for decoded picture buffer management in video coding system using intra block copy
US11146794B2 (en) Method of system for video coding using intra block copy mode

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16802517

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2985872

Country of ref document: CA

WWE Wipo information: entry into national phase

Ref document number: 15577237

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2016802517

Country of ref document: EP