OFFSET CALCULATION IN SWITCHED INTERPOLATION FILTERS
First Claim
1. A video encoding method for encoding a current video block, the method comprising:
- interpolating, via an encoder, a first block of predictive values associated with a sub-integer pixel position based on a first reference video unit within a first list of reference data, and a second block of predictive values associated with the sub-integer pixel position based on a second reference video unit within a second list of reference data;
calculating, via an encoder, for sub-integer pixel positions, a first offset value based on the first block of predictive values and the current video block, and a second offset value based on the first offset value and the second block of predictive values;
determining, via an encoder, a final block of offset values based on the first block of predictive values, the second block of predictive values, the first offset values, and the second offset values; and
encoding, via an encoder, the current video block based on the final block of offset values.
1 Assignment
0 Petitions
Accused Products
Abstract
This disclosure describes techniques for adding offset to predictive video blocks during video coding. In one example, a method of encoding a video block includes interpolating a first block of predictive values based on a first reference video unit within a first list of reference data, and a second block of predictive values based on a second reference video unit within a second list of reference data, calculating, for sub-integer pixel positions, a first offset value based on the first block and the current video block, and a second offset value based on the first offset value and the second block, determining a final block of offset values based on the first block of predictive values, the second block of predictive values, the first offset values, and the second offset values, and encoding the current video block based on the final block of offset values.
64 Citations
45 Claims
-
1. A video encoding method for encoding a current video block, the method comprising:
-
interpolating, via an encoder, a first block of predictive values associated with a sub-integer pixel position based on a first reference video unit within a first list of reference data, and a second block of predictive values associated with the sub-integer pixel position based on a second reference video unit within a second list of reference data; calculating, via an encoder, for sub-integer pixel positions, a first offset value based on the first block of predictive values and the current video block, and a second offset value based on the first offset value and the second block of predictive values; determining, via an encoder, a final block of offset values based on the first block of predictive values, the second block of predictive values, the first offset values, and the second offset values; and encoding, via an encoder, the current video block based on the final block of offset values. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. An apparatus that encodes video data, the apparatus comprising a video encoder that:
-
interpolates a first block of predictive values associated with a sub-integer pixel position based on a first reference video unit within a first list of reference data, and a second block of predictive values associated with the sub-integer pixel position based on a second reference video unit within a second list of reference data; calculates, for sub-integer pixel positions, a first offset value based on the first block of predictive values and the current video block, and a second offset value based on the first offset value and the second block of predictive values; determines a final block of offset values based on the first block of predictive values, the second block of predictive values, the first offset values, and the second offset values; and encodes the current video block based on the final block of offset values. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A computer-readable medium comprising instructions encoded on the computer-readable medium that, upon execution, cause a processor within a video encoder to:
-
interpolate a first block of predictive values associated with a sub-integer pixel position based on a first reference video unit within a first list of reference data, and a second block of predictive values associated with the sub-integer pixel position based on a second reference video unit within a second list of reference data; calculate, for sub-integer pixel positions, a first offset value based on the first block of predictive values and the current video block, and a second offset value based on the first offset value and the second block of predictive values; determine a final block of offset values based on the first block of predictive values, the second block of predictive values, the first offset values, and the second offset values; and encode the current video block based on the final block of offset values. - View Dependent Claims (23, 24, 25, 26, 27, 28, 29, 30, 31)
-
-
32. An apparatus that encodes video data, the apparatus comprising:
-
means for interpolating a first block of predictive values associated with a sub-integer pixel position based on a first reference video unit within a first list of reference data, and a second block of predictive values associated with the sub-integer pixel position based on a second reference video unit within a second list of reference data; means for calculating, for sub-integer pixel positions, a first offset value based on the first block of predictive values and the current video block, and a second offset value based on the first offset value and the second block of predictive values; means for determining a final block of offset values based on the first block of predictive values, the second block of predictive values, the first offset values, and the second offset values; and means for encoding the current video block based on the final block of offset values. - View Dependent Claims (33, 34, 35, 36, 37, 38, 39, 40, 41)
-
-
42. A video encoding method comprising:
-
encoding, via an encoder, as a first pass, a current frame using sequence filters, without using offsets; if all reference frames with an id=0 are separated from the current frame by the same number of frames, then; encoding, via an encoder, as a picture order content (POC) pass, the current frame using sequence filters, without using offsets, on POC weighted reference frames; if the rate-distortion characteristic of the POC pass defines a lower rate distortion cost value than the rate-distortion characteristic of the first pass, then; using the POC weighted reference frames for encoding; and storing the rate-distortion characteristic of the POC pass as a variable; if the rate-distortion characteristic of the first pass defines a lower rate distortion cost value than the rate-distortion characteristic of the POC pass, then storing the rate-distortion characteristic of the first pass as the variable; if all reference frames with an id=0 are not separated from the current frame by the same number of frames, then storing the rate-distortion characteristic of the first pass as the variable; computing, via an encoder, frame filters and offsets on the current frame; encoding, via an encoder, as a second pass, the current frame using the frame filters and offsets computed; if the rate-distortion characteristic of the second pass defines a lower rate distortion cost value than the rate-distortion characteristic stored in the variable, then; storing the rate-distortion characteristic of the second pass as the variable; and increasing a quantization step by one and encoding, as a third pass, the current frame using the frame filters and offsets computed; if the rate-distortion characteristic of the second pass does not define a lower rate distortion cost value than the rate-distortion characteristic stored in the variable, then increasing the quantization step by one and encoding, as the third pass, the current frame using the sequence filters, without using offsets; if the rate-distortion characteristic of the third pass defines a lower rate distortion cost value than the rate-distortion characteristic stored in the variable, then adding the encoding of the third pass to the bitstream; if the rate-distortion characteristic of the third pass does not define a lower rate distortion cost value than the rate-distortion characteristic stored in the variable, then adding the encoding of the variable to the bitstream; and computing, via an encoder, sequence filters to encode the next frame.
-
-
43. An apparatus that encodes video data, the apparatus comprising a video encoder that:
-
encodes, as a first pass, a current frame using sequence filters, without using offsets; if all reference frames with an id=0 are separated from the current frame by the same number of frames, then; encodes, as a picture order content (POC) pass, the current frame using sequence filters, without using offsets, on POC weighted reference frames; if the rate-distortion characteristic of the POC pass defines a lower rate distortion cost value than the rate-distortion characteristic of the first pass, then; uses the POC weighted reference frames to encode; and stores the rate-distortion characteristic of the POC pass as a variable; if the rate-distortion characteristic of the first pass defines a lower rate distortion cost value than the rate-distortion characteristic of the POC pass, then stores the rate-distortion characteristic of the first pass as the variable; if all reference frames with an id=0 are not separated from the current frame by the same number of frames, then stores the rate-distortion characteristic of the first pass as the variable; computes frame filters and offsets on the current frame; encodes, as a second pass, the current frame using the frame filters and offsets computed; if the rate-distortion characteristic of the second pass defines a lower rate distortion cost value than the rate-distortion characteristic stored in the variable, then; stores the rate-distortion characteristic of the second pass as the variable; and increases a quantization step by one and encodes, as a third pass, the current frame using the frame filters and offsets computed; if the rate-distortion characteristic of the second pass does not define a lower rate distortion cost value than the rate-distortion characteristic stored in the variable, then increases the quantization step by one and encodes, as the third pass, the current frame using the sequence filters, without using offsets; if the rate-distortion characteristic of the third pass defines a lower rate distortion cost value than the rate-distortion characteristic stored in the variable, then adds the encoding of the third pass to the bitstream; if the rate-distortion characteristic of the third pass does not define a lower rate distortion cost value than the rate-distortion characteristic stored in the variable, then adds the encoding of the variable to the bitstream; and computes sequence filters to encode the next frame.
-
-
44. A computer-readable medium comprising instructions encoded on the computer-readable medium that, upon execution, cause a processor within a video encoder to:
-
encode, as a first pass, a current frame using sequence filters, without using offsets; if all reference frames with an id=0 are separated from the current frame by the same number of frames, then; encode, as a picture order content (POC) pass, the current frame using sequence filters, without using offsets, on POC weighted reference frames; if the rate-distortion characteristic of the POC pass defines a lower rate distortion cost value than the rate-distortion characteristic of the first pass, then; use the POC weighted reference frames to encode; and store the rate-distortion characteristic of the POC pass as a variable; if the rate-distortion characteristic of the first pass defines a lower rate distortion cost value than the rate-distortion characteristic of the POC pass, then store the rate-distortion characteristic of the first pass as the variable; if all reference frames with an id=0 are not separated from the current frame by the same number of frames, then stores the rate-distortion characteristic of the first pass as the variable; compute frame filters and offsets on the current frame; encode, as a second pass, the current frame using the frame filters and offsets computed; if the rate-distortion characteristic of the second pass defines a lower rate distortion cost value than the rate-distortion characteristic stored in the variable, then; store the rate-distortion characteristic of the second pass as the variable; and increase a quantization step by one and encodes, as a third pass, the current frame using the frame filters and offsets computed; if the rate-distortion characteristic of the second pass does not define a lower rate distortion cost value than the rate-distortion characteristic stored in the variable, then increase the quantization step by one and encodes, as the third pass, the current frame using the sequence filters, without using offsets; if the rate-distortion characteristic of the third pass defines a lower rate distortion cost value than the rate-distortion characteristic stored in the variable, then add the encoding of the third pass to the bitstream; if the rate-distortion characteristic of the third pass does not define a lower rate distortion cost value than the rate-distortion characteristic stored in the variable, then add the encoding of the variable to the bitstream; and compute sequence filters to encode the next frame.
-
-
45. An apparatus that encodes video data, the apparatus comprising:
-
means for encoding, via an encoder, as a first pass, a current frame using sequence filters, without using offsets; if all reference frames with an id=0 are separated from the current frame by the same number of frames, then; means for encoding, via an encoder, as a picture order content (POC) pass, the current frame using sequence filters, without using offsets, on POC weighted reference frames; if the rate-distortion characteristic of the POC pass defines a lower rate distortion cost value than the rate-distortion characteristic of the first pass, then; means for using the POC weighted reference frames for encoding; and means for storing the rate-distortion characteristic of the POC pass as a variable; if the rate-distortion characteristic of the first pass defines a lower rate distortion cost value than the rate-distortion characteristic of the POC pass, then means for storing the rate-distortion characteristic of the first pass as the variable; if all reference frames with an id=0 are not separated from the current frame by the same number of frames, then means for storing the rate-distortion characteristic of the first pass as the variable; means for computing, via an encoder, frame filters and offsets on the current frame; means for encoding, via an encoder, as a second pass, the current frame using the frame filters and offsets computed; if the rate-distortion characteristic of the second pass defines a lower rate distortion cost value than the rate-distortion characteristic stored in the variable, then; means for storing the rate-distortion characteristic of the second pass as the variable; and means for increasing a quantization step by one and encoding, as a third pass, the current frame using the frame filters and offsets computed; if the rate-distortion characteristic of the second pass does not define a lower rate distortion cost value than the rate-distortion characteristic stored in the variable, then means for increasing the quantization step by one and encoding, as the third pass, the current frame using the sequence filters, without using offsets; if the rate-distortion characteristic of the third pass defines a lower rate distortion cost value than the rate-distortion characteristic stored in the variable, then means for adding the encoding of the third pass to the bitstream; if the rate-distortion characteristic of the third pass does not define a lower rate distortion cost value than the rate-distortion characteristic stored in the variable, then means for adding the encoding of the variable to the bitstream; and means for computing, via an encoder, sequence filters to encode the next frame.
-
Specification