Intra-block copy for natural video content
A device for decoding video data can be configured to receive a first syntax element in a syntax structure set to a first value indicating that an intra block copy mode is enabled for slices corresponding to the syntax structure; receive a second syntax element in the syntax structure set to a first value indicating that the intra block copy mode is enabled for non-intra slices corresponding to the syntax structure; and in response to the second syntax element being set to the first value for the second syntax element and in response to a slice type for a block of video data being a non-intra slice, receive a third syntax element for the block of video data set to a first value indicating that the intra block copy mode is enabled for the block of video data.
1 . A method of decoding video data, the method comprising:
receiving a first syntax element in a syntax structure, wherein a first value for the first syntax element indicates that an intra block copy mode is enabled for slices corresponding to the syntax structure and a second value for the first syntax element indicates that the intra block copy mode is disabled for the slices corresponding to the syntax structure;
in response to the first syntax element being set to the first value for the first syntax element, receiving a second syntax element in the syntax structure, wherein a first value for the second syntax element indicates that the intra block copy mode is enabled for non-intra slices corresponding to the syntax structure and a second value for the second syntax element indicates that the intra block copy mode is disabled for non-intra slices corresponding to the syntax structure;
in response to the second syntax element being set to the first value for the second syntax element and in response to a slice type for a block of video data being a non-intra slice, receiving a third syntax element for the block of video data, wherein a first value for the third syntax element indicates that the intra block copy mode is enabled for the block of video data and a second value for the third syntax element indicates that the intra block copy mode is disabled for the block of video data;
in response to the third syntax element being set to the first value for the third syntax element, decoding the block of video data using the intra block copy mode;
outputting a decoded picture of video data comprising the decoded block of video data;
in response to a second instance of the second syntax element being set to the second value for the second syntax element and in response to a slice type for a second block of video data being an intra slice, receiving a second instance of the third syntax element for the second block of video data;
in response to the second instance of the third syntax element being set to the second value, decoding the second block of video data using the intra block copy mode; and
outputting a second decoded picture of video data comprising the second decoded block of video data.
2 . The method of claim 1 , further comprising:
in response to the first syntax element being set to the first value for the first syntax element, receiving a fourth syntax element in the syntax structure, wherein a first value for the fourth syntax element indicates that a reconstruction reordered intra block copy mode is enabled for the slices corresponding to the syntax structure and a second value for the second syntax element indicates that the reconstruction reordered intra block copy mode is disabled for non-intra slices corresponding to the syntax structure.
3 . The method of claim 1 , further comprising:
in response to the first syntax element being set to the first value for the first syntax element, receiving a fourth syntax element in the syntax structure, wherein a first value for the fourth syntax element indicates that an intra block copy with template matching mode is enabled for the slices corresponding to the syntax structure and a second value for the second syntax element indicates that the intra block copy with template matching mode is disabled for the slices corresponding to the syntax structure.
4 . The method of claim 1 , further comprising:
in response to the first syntax element being set to the first value for the first syntax element, receiving a fourth syntax element, wherein a first value for the fourth syntax element indicates that intra block copy merge tools are enabled for one or more blocks of the slices corresponding to the syntax structure and a second value for the second syntax element indicates that the intra block copy merge tools are disabled for the one or more blocks of the slices corresponding to the syntax structure.
5 . The method of claim 1 , wherein decoding the block of video data using the intra block copy mode comprises:
determining a block vector for the block;
locating a prediction block for the block, in a same picture as the block, using the block vector; and
decoding the block based on the prediction block.
6 . The method of claim 5 , wherein determining the block vector for the block comprises:
generating a list of candidate block vectors;
receiving an index value;
selecting a candidate block vector from the list of candidates; and
determining the block vector based on the selected candidate.
7 . The method of claim 6 , wherein the selected candidate comprise a block vector predictor and determining the block vector based on the selected candidate comprises adding a block vector difference to the block vector predictor.
8 . The method of claim 6 , wherein the selected candidate comprises the block vector.
9 . The method of claim 1 , wherein the decoded block of video data comprises screen content video.
10 . The method of claim 1 , wherein the second decoded block of video data comprises natural video content.
11 . A device for decoding video data, the device comprising:
a memory configured to store video data;
one or more processors implemented in circuitry and configured to:
receive a first syntax element in a syntax structure, wherein a first value for the first syntax element indicates that an intra block copy mode is enabled for slices corresponding to the syntax structure and a second value for the first syntax element indicates that the intra block copy mode is disabled for the slices corresponding to the syntax structure;
in response to the first syntax element being set to the first value for the first syntax element, receive a second syntax element in the syntax structure, wherein a first value for the second syntax element indicates that the intra block copy mode is enabled for non-intra slices corresponding to the syntax structure and a second value for the second syntax element indicates that the intra block copy mode is disabled for non-intra slices corresponding to the syntax structure;
in response to the second syntax element being set to the first value for the second syntax element and in response to a slice type for a block of video data being a non-intra slice, receive a third syntax element for the block of video data, wherein a first value for the third syntax element indicates that the intra block copy mode is enabled for the block of video data and a second value for the third syntax element indicates that the intra block copy mode is disabled for the block of video data;
in response to the third syntax element being set to the first value for the third syntax element, decode the block of video data using the intra block copy mode;
output a decoded picture of video data comprising the decoded block of video data
in response to a second instance of the second syntax element being set to the second value for the second syntax element and in response to a slice type for a second block of video data being an intra slice, receive a second instance of the third syntax element for the second block of video data;
in response to the second instance of the third syntax element being set to the second value, decode the second block of video data using the intra block copy mode; and
output a second decoded picture of video data comprising the second decoded block of video data.
12 . The device of claim 11 , wherein the one or more processors are further configured to:
in response to the first syntax element being set to the first value for the first syntax element, receive a fourth syntax element in the syntax structure, wherein a first value for the fourth syntax element indicates that a reconstruction reordered intra block copy mode is enabled for the slices corresponding to the syntax structure and a second value for the second syntax element indicates that the reconstruction reordered intra block copy mode is disabled for non-intra slices corresponding to the syntax structure.
13 . The device of claim 11 , wherein the one or more processors are further configured to:
in response to the first syntax element being set to the first value for the first syntax element, receive a fourth syntax element in the syntax structure, wherein a first value for the fourth syntax element indicates that an intra block copy with template matching mode is enabled for the slices corresponding to the syntax structure and a second value for the second syntax element indicates that the intra block copy with template matching mode is disabled for the slices corresponding to the syntax structure.
14 . The device of claim 11 , wherein the one or more processors are further configured to:
in response to the first syntax element being set to the first value for the first syntax element, receive a fourth syntax element, wherein a first value for the fourth syntax element indicates that intra block copy merge tools are enabled for one or more blocks of the slices corresponding to the syntax structure and a second value for the second syntax element indicates that the intra block copy merge tools are disabled for the one or more blocks of the slices corresponding to the syntax structure.
15 . The device of claim 11 , wherein to decode the block of video data using the intra block copy mode, wherein the one or more processors are further configured to:
determine a block vector for the block;
locate a prediction block for the block, in a same picture as the block, using the block vector; and
decode the block based on the prediction block.
16 . The device of claim 15 , wherein to determine the block vector for the block, the one or more processors are further configured to:
generate a list of candidate block vectors;
receive an index value;
select a candidate block vector from the list of candidates; and
determine the block vector based on the selected candidate.
17 . The device of claim 16 , wherein the selected candidate comprise a block vector predictor and wherein to determine the block vector based on the selected candidate, the one or more processors are further configured to add a block vector difference to the block vector predictor.
18 . The device of claim 16 , wherein the selected candidate comprises the block vector.
19 . The device of claim 11 , wherein the decoded block of video data comprises screen content video.
20 . The device of claim 11 , wherein the second decoded block of video data comprises natural video content.
21 . The device of claim 11 , further comprising:
a display configured to display the decoded picture of video data.
22 . The device of claim 11 , wherein the device comprises one or more of a camera, a computer, a mobile device, a broadcast receiver device, or a set-top box.
23 . A computer-readable storage medium storing instructions that when executed by one or more processors cause the one or more processors to:
receive a first syntax element in a syntax structure, wherein a first value for the first syntax element indicates that an intra block copy mode is enabled for slices corresponding to the syntax structure and a second value for the first syntax element indicates that the intra block copy mode is disabled for the slices corresponding to the syntax structure;
in response to the first syntax element being set to the first value for the first syntax element, receive a second syntax element in the syntax structure, wherein a first value for the second syntax element indicates that the intra block copy mode is enabled for non-intra slices corresponding to the syntax structure and a second value for the second syntax element indicates that the intra block copy mode is disabled for non-intra slices corresponding to the syntax structure; in response to the second syntax element being set to the first value for the second syntax element and in response to a slice type for a block of video data being a non-intra slice, receive a third syntax element for the block of video data, wherein a first value for the third syntax element indicates that the intra block copy mode is enabled for the block of video data and a second value for the third syntax element indicates that the intra block copy mode is disabled for the block of video data;
in response to the third syntax element being set to the first value for the third syntax element, decode the block of video data using the intra block copy mode;
output a decoded picture of video data comprising the decoded block of video data
in response to a second instance of the second syntax element being set to the second value for the second syntax element and in response to a slice type for a second block of video data being an intra slice, receive a second instance of the third syntax element for the second block of video data;
in response to the second instance of the third syntax element being set to the second value, decode the second block of video data using the intra block copy mode; and
output a second decoded picture of video data comprising the second decoded block of video data.