Flexible range reduction
First Claim
1. In a computing system that implements a video encoder, a method comprising:
- with the computing system that implements the video encoder, encoding plural pictures in a given entry point segment among plural entry point segments of a sequence to produce encoded data, wherein the encoding includes performing motion compensation for at least some macroblocks of the plural pictures as part of a motion compensation loop, and wherein the encoding also includes;
if range reduction is used for the plural pictures, scaling down plural samples of the plural pictures from an original sample range to a reduced sample range prior to subsequent encoding of the plural samples in the reduced sample range, wherein the scaling down the plural samples of the plural pictures for the range reduction occurs outside of the motion compensation loop; and
otherwise, range reduction not being used for the plural pictures, skipping the scaling down the plural samples of the plural pictures; and
outputting the encoded data, including signaling one or more range reduction syntax elements in an entry point header for the given entry point segment to control scaling up of the plural samples of the plural pictures in the given entry point segment to the original sample range during decoding, wherein the one or more range reduction syntax elements apply to the plural pictures in the given entry point segment until a next entry point header for a next entry point segment among the plural entry point segments of the sequence, and wherein the entry point header further includes a one-bit syntax element that indicates whether the given entry point segment includes any B-pictures that reference a picture in a previous entry point segment among the plural entry point segments of the sequence;
wherein the encoding further comprises, if the one-bit syntax element indicates the given entry point segment may include a B-picture that references a picture in the previous entry point segment, setting the one or more range reduction syntax elements for the given entry point segment to values of corresponding range reduction syntax elements for the previous entry point segment.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques and tools are described for flexible range reduction of samples of video. For example, an encoder signals a first set of one or more syntax elements for range reduction of luma samples and signals a second set of one or more syntax elements for range reduction of chroma samples. The encoder selectively scales down the luma samples and chroma samples in a manner consistent with the first syntax element(s) and second syntax element(s), respectively. Or, an encoder signals range reduction syntax element(s) in an entry point header for an entry point segment, where the syntax element(s) apply to pictures in the entry point segment. If range reduction is used for the pictures, the encoder scales down samples of the pictures. Otherwise, the encoder skips the scaling down. A decoder performs corresponding parsing and scaling up operations.
36 Citations
24 Claims
-
1. In a computing system that implements a video encoder, a method comprising:
-
with the computing system that implements the video encoder, encoding plural pictures in a given entry point segment among plural entry point segments of a sequence to produce encoded data, wherein the encoding includes performing motion compensation for at least some macroblocks of the plural pictures as part of a motion compensation loop, and wherein the encoding also includes; if range reduction is used for the plural pictures, scaling down plural samples of the plural pictures from an original sample range to a reduced sample range prior to subsequent encoding of the plural samples in the reduced sample range, wherein the scaling down the plural samples of the plural pictures for the range reduction occurs outside of the motion compensation loop; and otherwise, range reduction not being used for the plural pictures, skipping the scaling down the plural samples of the plural pictures; and outputting the encoded data, including signaling one or more range reduction syntax elements in an entry point header for the given entry point segment to control scaling up of the plural samples of the plural pictures in the given entry point segment to the original sample range during decoding, wherein the one or more range reduction syntax elements apply to the plural pictures in the given entry point segment until a next entry point header for a next entry point segment among the plural entry point segments of the sequence, and wherein the entry point header further includes a one-bit syntax element that indicates whether the given entry point segment includes any B-pictures that reference a picture in a previous entry point segment among the plural entry point segments of the sequence; wherein the encoding further comprises, if the one-bit syntax element indicates the given entry point segment may include a B-picture that references a picture in the previous entry point segment, setting the one or more range reduction syntax elements for the given entry point segment to values of corresponding range reduction syntax elements for the previous entry point segment. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. In a computing system that implements a video decoder, a method comprising:
-
receiving encoded data in a bitstream; and with the computing system that implements the video decoder, decoding at least some of the encoded data to reconstruct plural pictures in a given entry point segment among plural entry point segments of a sequence, wherein the decoding includes performing motion compensation for at least some macroblocks of the plural pictures as part of a motion compensation loop, and wherein the decoding also includes; parsing one or more range reduction syntax elements in an entry point header for the given entry point segment, wherein the one or more range reduction syntax elements apply to the plural pictures in the given entry point segment until a next entry point header for a next entry point segment among the plural entry point segments of the sequence, wherein the entry point header further includes a one-bit syntax element that indicates whether the given entry point segment includes any B-pictures that reference a picture in a previous entry point segment among the plural entry point segments of the sequence, and wherein, if the one-bit syntax element indicates the given entry point segment may include a B-picture that references a picture in the previous entry point segment, the one or more range reduction syntax elements for the given entry point segment are set to values of corresponding range reduction syntax elements for the previous entry point segment; if range reduction is used for the plural pictures, scaling up plural samples of the plural pictures from a reduced sample range to an original sample range after other decoding of the plural samples in the reduced sample range, wherein the scaling up the plural samples of the plural pictures for the range reduction occurs outside of the motion compensation loop; and otherwise, range reduction not being used for the plural pictures, skipping the scaling up the plural samples. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
-
18. A computing system comprising a processor and memory, wherein the computing system is adapted to perform a method comprising:
-
receiving encoded data in a bitstream; and decoding at least some of the encoded data to reconstruct plural pictures in a given entry point segment among plural entry point segments of a sequence, wherein the decoding includes performing motion compensation for at least some macroblocks of the plural pictures as part of a motion compensation loop, and wherein the decoding also includes; parsing one or more range reduction syntax elements in an entry point header for the given entry point segment, wherein the one or more range reduction syntax elements apply to the plural pictures in the given entry point segment until a next entry point header for a next entry point segment among the plural entry point segments of the sequence, wherein the entry point header further includes a one-bit syntax element that indicates whether the given entry point segment includes any B-pictures that reference a picture in a previous entry point segment among the plural entry point segments of the sequence, and wherein, if the one-bit syntax element indicates the given entry point segment may include a B-picture that references a picture in the previous entry point segment, the one or more range reduction syntax elements for the given entry point segment are set to values of corresponding range reduction syntax elements for the previous entry point segment; if range reduction is used for the plural pictures, scaling up plural samples of the plural pictures from a reduced sample range to an original sample range after other decoding of the plural samples in the reduced sample range, wherein the scaling up the plural samples of the plural pictures for the range reduction occurs outside of the motion compensation loop, wherein the scaling up includes division operations, and wherein all of the division operations are implemented using right shift operations; and otherwise, range reduction not being used for the plural pictures, skipping the scaling up the plural samples. - View Dependent Claims (19, 20)
-
-
21. A computing system comprising a processor and memory, wherein the computing system is adapted to perform a method comprising:
-
encoding plural pictures in a given entry point segment among plural entry point segments of a sequence to produce encoded data, wherein the encoding includes performing motion compensation for at least some macroblocks of the plural pictures as part of a motion compensation loop, and wherein the encoding also includes; evaluating one or more of (a) target bit rate, (b) content characteristics of the plural pictures in the given entry point segment and (c) computational capabilities; based at least in part on the evaluating, determining whether to use range reduction for the plural pictures in the given entry point segment; if range reduction is used for the plural pictures, scaling down plural samples of the plural pictures from an original sample range to a reduced sample range prior to subsequent encoding of the plural samples in the reduced sample range, wherein the scaling down the plural samples of the plural pictures for the range reduction occurs outside of the motion compensation loop; and otherwise, range reduction not being used for the plural pictures, skipping the scaling down the plural samples of the plural pictures; and outputting the encoded data, including signaling one or more range reduction syntax elements in an entry point header for the given entry point segment to control scaling up of the plural samples of the plural pictures in the given entry point segment to the original sample range during decoding, wherein the one or more range reduction syntax elements apply to the plural pictures in the given entry point segment until a next entry point header for a next entry point segment among the plural entry point segments of the sequence, and wherein the entry point header further includes a one-bit syntax element that indicates whether the given entry point segment includes any B-pictures that reference a picture in a previous entry point segment among the plural entry point segments of the sequence; wherein the encoding further comprises, if the one-bit syntax element indicates the given entry point segment may include a B-picture that references a picture in the previous entry point segment, setting the one or more range reduction syntax elements for the given entry point segment to values of corresponding range reduction syntax elements for the previous entry point segment. - View Dependent Claims (22, 23, 24)
-
Specification