IP Library Granted Patent US 11,412,213
Granted Patent B2
US 11,412,213 · App. 17/384,246 · Granted Aug 9, 2022

Implementation aspects in intra block copy in video coding

Inventors: Jizheng Xu (San Diego, CA); Li Zhang (San Diego, CA); Kai Zhang (San Diego, CA); Hongbin Liu (Beijing, CN); Yue Wang (Beijing, CN)
Assignees: BEIJING BYTEDANCE NETWORK TECHNOLOGY CO., LTD.; BYTEDANCE INC.
H04N19/105H04N19/176H04N19/423H04N19/593
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,412,213
App. No.
17/384,246
Granted
Aug 9, 2022
Kind
B2
Abstract

A method of visual media processing includes determining, for a conversion between a current video block of visual media data and a bitstream representation of the current video block, a buffer that stores reference samples for prediction in an intra block copy mode; for a sample spatially located at location of the current video block relative to an upper-left position of a coding tree unit including the current video block and having a block vector, computing a corresponding reference in the buffer at a reference location, wherein the reference location is determined using the block vector and the location; and upon determining that the reference location lies outside the buffer, re-computing the reference location based at least in part on a location of the current video block relative to the coding tree unit including the current video block.

Claims (52)

1. A method of visual media processing, comprising:

determining, for a conversion of a current video block of a video and a bitstream of the video, that a first coding mode is applied on the current video block;

deriving a first block vector (BVx, BVy) for the current video block;

generating prediction samples for the current video block based on the first block vector and a luma buffer, wherein reconstructed samples of previous video blocks without being applied a filtering operation are stored in the luma buffer, and wherein in the first coding mode, the prediction samples are derived from a same picture including the current video block; and

performing the conversion based on the prediction samples;

wherein a size of the luma buffer is indicated by M=mW and N=H, wherein M is a width of the luma buffer, N is a height of the luma buffer, W is a width of a coding tree block including the current video block, and H is a height of a coding tree block including the current video block,

wherein m is a positive integer and derived based on W or H,

wherein W, H, M and N are all positive integer, and

wherein, for any pixel (x0, y0) in the current video block, y0+BVy and x0+BVx are restricted to a certain range.

2. The method of claim 1 , wherein y0+BVy should be in a range of [0, . . . , N−1], and x0+BVx should be in a range of [0, . . . , M−1].

3. The method of claim 1 , wherein the luma buffer is reset before coding a picture or a slice.

4. The method of claim 3 , wherein elements of the luma buffer are reset with a fixed value.

5. The method of claim 1 , wherein the reference area includes nearest available m−1 coding tree blocks in a coding tree block row.

6. The method of claim 1 , wherein after reconstructing a position (x, y) relative to an upper-left corner of a picture, a value at position (x mod M, y mod N) in the luma buffer is updated with a reconstructed value of the position (x, y).

7. The method of claim 1 , wherein the conversion includes encoding the current video block into the bitstream.

8. The method of claim 1 , wherein the conversion includes decoding the current video block from the bitstream.

9. An apparatus for processing video data comprising a processor and a non-transitory memory with instructions thereon, wherein the instructions upon execution by the processor, cause the processor to:

determine, for a conversion of a current video block of a video and a bitstream of the video, that a first coding mode is applied on the current video block;

derive a first block vector (BVx, BVy) for the current video block;

generate prediction samples for the current video block based on the first block vector and a luma buffer, wherein reconstructed samples of previous video blocks without being applied a filtering operation are stored in the luma buffer, and wherein in the first coding mode, the prediction samples are derived from a same picture including the current video block; and

perform the conversion based on the prediction samples,

wherein a size of the luma buffer is indicated by M=mW and N=H, wherein M is a width of the luma buffer, N is a height of the luma buffer, W is a width of a coding tree block including the current video block, and H is a height of a coding tree block including the current video block,

wherein m is a positive integer and derived based on W or H,

wherein W, H, M and N are all positive integers, and

wherein for any pixel (x0, y0) in the current video block, y0+BVy and x0+BVx are restricted to a certain range.

10. The apparatus of claim 9 , wherein y0+BVy should be in a range of [0, . . . , N−1], and x0+BVx should be in a range of [0, . . . , M−1].

11. The apparatus of claim 9 , wherein the luma buffer is reset before coding a picture or a slice.

12. The apparatus of claim 11 , wherein elements of the luma buffer are reset with a fixed value.

13. The apparatus of claim 9 , wherein the reference area includes nearest available m−1 coding tree blocks in a coding tree block row.

14. The apparatus of claim 9 , wherein after reconstructing a position (x, y) relative to an upper-left corner of a picture, a value at position (x mod M, y mod N) in the luma buffer is updated with a reconstructed value of the position (x, y).

15. The apparatus of claim 9 , wherein the conversion includes encoding the current video block into the bitstream.

16. The apparatus of claim 9 , wherein the conversion includes decoding the current video block from the bitstream.

17. A non-transitory computer-readable storage medium storing instructions that cause a processor to:

determine, for a conversion of a current video block of a video and a bitstream of the video, that a first coding mode is applied on the current video block;

derive a first block vector (BVx, BVy) for the current video block;

generate prediction samples for the current video block based on the first block vector and a luma buffer, wherein reconstructed samples of previous video blocks without being applied a filtering operation are stored in the luma buffer, and wherein in the first coding mode, the prediction samples are derived from a same picture including the current video block; and

perform the conversion based on the prediction samples,

wherein a size of the luma buffer is indicated by M=mW and N=H, wherein M is a width of the luma buffer, N is a height of the luma buffer, W is a width of a coding tree block including the current video block, and H is a height of a coding tree block including the current video block,

wherein m is a positive integer and derived based on W or H,

wherein W, H, M and N are all positive integers, and

wherein for any pixel (x0, y0) in the current video block, y0+BVy and x0+BVx are restricted to a certain range.

18. A non-transitory computer-readable recording medium storing a bitstream of a video which is generated by a method performed by a video processing apparatus, wherein the method comprises:

determining, that a first coding mode is applied on a current video block of the video;

deriving a first block vector (BVx, BVy) for the current video block;

generating prediction samples for the current video block based on the first block vector and a luma buffer, wherein reconstructed samples of previous video blocks without being applied a filtering operation are stored in the luma buffer, and wherein in the first coding mode, the prediction samples are derived from a same picture including the current video block; and

generating the bitstream based on the prediction samples,

wherein a size of the luma buffer is indicated by M=mW and N=H, wherein M is a width of the luma buffer, N is a height of the luma buffer, W is a width of a coding tree block including the current video block, and H is a height of a coding tree block including the current video block,

wherein m is a positive integer and derived based on W or H,

wherein W, H, M and N are all positive integers, and

wherein for any pixel (x0, y0) in the current video block, y0+BVy and x0+BVx are restricted to a certain range.

19. The non-transitory computer-readable storage medium of claim 17 , wherein the luma buffer is reset before coding a picture or a slice.

20. The non-transitory computer-readable recording medium of claim 18 , wherein the luma buffer is reset before coding a picture or a slice.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2021
From: XU, JIZHENG; ZHANG, LI; ZHANG, KAI
To: BYTEDANCE INC.
Reel/Frame 056966/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2021
From: LIU, HONGBIN; WANG, YUE
To: BEIJING BYTEDANCE NETWORK TECHNOLOGY CO., LTD.
Reel/Frame 056966/0514 →
Priority Claims (7)
WO PCT/CN2019/076848 · Mar 4, 2019 · international
WO PCT/CN2019/077725 · Mar 11, 2019 · international
WO PCT/CN2019/079151 · Mar 21, 2019 · international
WO PCT/CN2019/085862 · May 7, 2019 · international
WO PCT/CN2019/088129 · May 23, 2019 · international
WO PCT/CN2019/091691 · Jun 18, 2019 · international
WO PCT/CN2019/093552 · Jun 28, 2019 · international
Continuity (2)
Continuation PCTCN2020077418 · Mar 2, 2020
Related Publication 20210368164A1 · Nov 25, 2021