Search

EP-4736455-A1 - BLOCK VECTOR STORING AND TOOL HARMONIZATION FOR BLOCK VECTOR RELATED VIDEO CODING

EP4736455A1EP 4736455 A1EP4736455 A1EP 4736455A1EP-4736455-A1

Abstract

A method of encoding or decoding video data includes storing a block vector (BV) for a current block in a history BV list for encoding or decoding a subsequent block, wherein the current block is encoded or decoded in intra temporal motion vector prediction (IntraTMP) mode, and wherein the history BV list includes BVs for blocks that do not neighbor the subsequent block; deriving a candidate list of BVs for the subsequent block based on BVs from the history BV list that includes the BV for the current block; and encoding or decoding the subsequent block based on the candidate list of BVs.

Inventors

  • LIN, PO-HAN
  • LIN, JIAN-LIANG
  • CHANG, YAO-JEN
  • SEREGIN, VADIM
  • KARCZEWICZ, MARTA

Assignees

  • QUALCOMM INCORPORATED

Dates

Publication Date
20260506
Application Date
20240627

Claims (20)

  1. 1 . A method of encoding or decoding video data, the method comprising: storing a block vector (BV) for a current block in a history BV list for encoding or decoding a subsequent block, wherein the current block is encoded or decoded in intra temporal motion vector prediction (IntraTMP) mode, and wherein the history BV list includes BVs for blocks that do not neighbor the subsequent block; deriving a candidate list of BVs for the subsequent block based on BVs from the hi story BV list that includes the BV for the current block; and encoding or decoding the subsequent block based on the candidate list of BVs.
  2. 2, The method of claim 1 , wherein deriving the candidate list of BV s for the subsequent block comprises: adding BVs from blocks neighboring the subsequent block to an initial candidate list; adding BVs from the history BV list to the initial candidate list; determining template matching costs for BVs in the initial candidate list; and deriving the candidate list of BVs based on the template matching costs for the BVs in the initial candidate list.
  3. 3. The method of claim 1, wherein storing the BV for the current block comprises: one of clipping or rounding an actual BV for the current block to generate a clipped or rounded BV for the current block; and storing the clipped or rounded BV for the current block.
  4. 4. The method of claim 1 , wherein the current block is not a neighboring block of the subsequent block.
  5. 5. The method of claim 1, wherein the subsequent block is encoded or to be decoded in IntraTMP mode or intra block copy (IBC) mode.
  6. 6. The method of claim 1, further comprising: utilizing each of the BVs in the candidate list of BVs as a starting BV for a template matching process associated with each of the BVs; and determining a prediction signal for the subsequent block based on the template matching process associated with each of the BVs, wherein encoding or decoding the subsequent block comprises encoding or decoding the subsequent block based on the prediction signal.
  7. 7. The method of claim 1, wherein an order of BVs in the history BV list is based on coding order of the blocks including the current block.
  8. 8. The method of claim 1 , wherein encoding or decoding the subsequent block comprises decoding the subsequent block, wherein decoding the subsequent block comprises: determining a prediction signal based on at least one BV in the candidate list of BVs; receiving residual information indicative of a difference between the prediction signal and tire subsequent block; and reconstructing the subsequent block based on the prediction signal and the residual information.
  9. 9. The method of claim 1, wherein encoding or decoding the subsequent block comprises encoding the subsequent block, wherein encoding the subsequent block comprises: determining a prediction signal, wherein at least one BV in the candidate list of BVs identifies or is used to identify a block used to derive the prediction signal; determining residual information indicative of a difference between the prediction signal and the subsequent block; and signaling the residual information.
  10. 10. A device for encoding or decoding video data, the device comprising: one or more memories configured to store the video data; and processing circuitry coupled to the one or more memories, wherein the processing circuitry is configured to: store a block vector (BV) for a current block in a history BV list for encoding or decoding a subsequent block, wherein the current block is encoded or decoded in intra temporal motion vector prediction (IntraTMP) mode, and wherein the history BV list includes BVs for blocks that do not neighbor the subsequent block; derive a candidate list of BVs for the subsequent block based on BV s from the history BV list that includes the BV for the current block; and encode or decode the subsequent block based on the candidate list of BVs .
  11. 1 1 . The device of claim 10, wherein to derive the candidate list of BV s for the subsequent block, the processing circuitry is configured to: add BVs from blocks neighboring the subsequent block to an initial candidate list; add BVs from the history BV list to the initial candidate list; determine template matching costs for BVs in the initial candidate list; and derive the candidate list of BVs based on the template matching costs for the BVs in the initial candidate list.
  12. 12. The device of claim 10, wherein to store the BV for the current block, the processing circuitry' is configured to: one of clip or round an actual BV for the current block to generate a clipped or rounded BV for the current block; and store the clipped or rounded BV for the current block.
  13. 13. The device of claim 10, wherein the current block is not a neighboring block of the subsequent block.
  14. 14. The device of claim 10, wherein the subsequent block is encoded or to be decoded in IntraTMP mode or intra block copy (IBC) mode.
  15. 15. The device of claim 10, wherein the processing circuitry is configured to: utilize each of the BVs in the candidate list of BVs as a starting BV for a template matching process associated with each of the BVs; and determine a prediction signal for the subsequent block based on the template matching process associated with each of the BVs, wherein to encode or decode the subsequent block, the processing circuitry is configured to encode or decode the subsequent block based on the prediction signal.
  16. 16. The device of claim 10, wherein an order of BVs in the history BV list is based on coding order of the blocks including the current block.
  17. 17. The device of claim 10, wherein to encode or decode the subsequent block comprises, the processing circuitry is configured to decode the subsequent block, wherein to decode the subsequent block, the processing circuitry' is configured to: determine a prediction signal based on at least one BV in the candidate list of BVs; receive residual information indicative of a difference between the prediction signal and tire subsequent block; and reconstruct the subsequent block based on the prediction signal and the residual information.
  18. 18. The device of claim 10, wherein to encode or decode the subsequent block, the processing circuitry' is configured to encode the subsequent block, wherein to encode the subsequent block, the processing circuitry is configured to: determine a prediction signal, wherein at least one BV in the candidate list of BVs identifies or is used to identify a block used to derive the prediction signal; determine residual information indicative of a difference between the prediction signal and the subsequent block; and signal the residual information.
  19. 19. The device of claim 10, wherein the device comprises one or more of a camera, a computer, a mobile device, a broadcast receiver device, or a set-top box.
  20. 20. A computer-readable storage medium having stored thereon instructions that, when executed, cause one or more processors to: store a block vector (BV) for a current block in a history BV list for encoding or decoding a subsequent block, wherein the current block is encoded or decoded m intra temporal motion vector prediction (IntraTMP) mode, and wherein the history BV list includes B Vs for blocks that do not neighbor the subsequent block; derive a candidate list of BVs for the subsequent block based on B Vs from the history BV list that includes the BV for the current block; and encode or decode the subsequent block based on the candidate list of BVs.

Description

BLOCK VECTOR STORING AND TOOL HARMONIZATION FOR BLOCK VECTOR RELATED VIDEO CODING [0001] This application claims priority to U.S. Patent Application No. 18/755,330, filed June 26, 2024, and U.S. Provisional Application No. 63/51 1 ,471 , filed June 30, 2023, the entire contents of which are hereby incorporated by reference herein. U.S. Patent Application No. 18/755,330, filed June 26, 2024 claims the benefit of U.S. Provisional Application No. 63/51 1,471 , filed June 30, 2.023, TECHNICAL FIELD [0002] This disclosure relates to video encoding and video decoding. BACKGROUND [0003] Digital video capabilities can be incorporated into a wide range of devices, including digital televisions, digital direct broadcast systems, wireless broadcast systems, personal digital assistants (PDAs), laptop or desktop computers, tablet computers, e-book readers, digital cameras, digital recording devices, digital media players, video gaming devices, video game consoles, cellular or satellite radio telephones, so-called “smart phones,” video teleconferencing devices, video streaming devices, and the like. Digital video devices implement video coding techniques, such as those described in the standards defined by MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4. Part 10, Advanced Video Coding (AVC), ITU-T H.265/High Efficiency Video Coding (HEVC), ITU-T H.266/Versatile Video Coding (VVC), and extensions of such standards, as well as proprietary video codecs/formats such as AOMedia Video 1 (AVI) that was developed by the Alliance for Open Media. The video devices may transmit, receive, encode, decode, and/or store digital video information more efficiently by implementing such video coding techniques. [0004] Video coding techniques include spatial (intra-picture) prediction and/or temporal (inter-picture) prediction to reduce or remove redundancy inherent in video sequences. For block-based video coding, a video slice (e.g., a video picture or a portion of a video picture) may be partitioned into video blocks, which may also be referred to as coding tree units (CTUs), coding units (CUs) and/or coding nodes. Video blocks in an mtra-coded (I) slice of a picture are encoded using spatial prediction with respect to reference samples in neighboring blocks in the same picture. Video blocks in an inter-coded (P or B) slice of a picture may use spatial prediction with respect to reference samples in neighboring blocks in the same picture or temporal prediction with respect to reference samples in other reference pictures. Pictures may be referred to as frames, and reference pictures may be referred to as reference frames. SUMMARY [0005] In general, this disclosure describes techniques for block vector (B V) related tools which include IBC (Intra block copy) and IntraTMP (intra template matching prediction), and tools such as the BV storing process and pruning process, including harmonization with other tools. The example techniques may improve the coding efficiency of BV related tools. As described in more detail, if a current block is encoded or decoded using IntraTMP mode, a BV for that current block may be available in a history BV list for encoding or decoding a subsequent block, lire history BV list includes BVs of blocks that may not neighbor the subsequent block. With the example techniques, the improvement in the BV related tools may result in reduced bandwidth utilization and/or increased storage efficiency. Accordingly, the example techniques may improve the overall operation of a video encoder and/or a video decoder and improve the performance of a video coding system. [0006] In one example, the disclosure describes a method of encoding or decoding video data, the method comprising: storing a block vector (BV) for a current block in a history BV list for encoding or decoding a subsequent block, wherein the current block is encoded or decoded in intra temporal motion vector prediction (IntraTMP) mode, and wherein the history BV list includes BVs for blocks that do not neighbor the subsequent block; deriving a candidate list of BVs for the subsequent block based on BVs from the history BV list that includes the BV for the current block; and encoding or decoding the subsequent block based on the candidate list of BVs. [0007] In one example, the disclosure describes a device for encoding or decoding video data, the device comprising: one or more memories configured to store the video data; and processing circuitry' coupled to the one or more memories, wherein the processing circuitry' is configured to: store a block vector (BV) for a current block in a history BV list for encoding or decoding a subsequent block, wherein the current block is encoded or decoded in intra temporal motion vector prediction (IntraTMP) mode, and wherein the history BV list includes BVs tor blocks that do not neighbor the subsequent block; derive a candidate list of BVs for the subsequent block based on BVs from the history BV list that includes the B