IP Library Granted Patent US 8,855,202
Granted Patent B2
US 8,855,202 · App. 13/191,335 · Granted Oct 7, 2014

Flexible range reduction

Inventors: Shankar Regunathan (Bellevue, WA); Sridhar Srinivasan (Redmond, WA); Jie Liang (Coquitlam, CA); Chih-Lung Lin (Redmond, WA); Minghui Xia (Bellevue, WA)
Assignee: Microsoft Corporation
H04N19/00145H04N19/00545H04N19/00587H04N19/00369H04N19/00224H04N19/00781H04N19/00884
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 8,855,202
App. No.
13/191,335
Granted
Oct 7, 2014
Kind
B2
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.

Claims (57)

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.

2. The method of claim 1 wherein the one or more range reduction syntax elements include an on/off flag and, if range reduction is on, a range reduction parameter.

3. The method of claim 2 wherein the range reduction parameter indicates scaling down by a factor other than 2.

4. The method of claim 1 wherein the scaling down occurs according to one or more linear scaling equations.

5. The method of claim 1 wherein the scaling down uses a look-up table.

6. The method of claim 1 further comprising, during the encoding:

determining a target bit rate; and

based at least in part on the target bit rate, determining whether to use range reduction for the plural pictures in the given entry point segment.

7. The method of claim 1 wherein the plural samples include luma samples and chroma samples, the method further comprising, during the encoding:

determining a target bit rate; and

based at least in part on the target bit rate, determining whether to use range reduction for (a) both the luma samples and the chroma samples, (b) the luma samples but not the chroma samples, (c) the chroma samples but not the luma samples, or (d) neither the luma samples nor the chroma samples.

8. The method of claim 1 further comprising, during the encoding:

evaluating content characteristics of the plural pictures in the given entry point segment; and

based at least in part on the content characteristics, determining whether to use range reduction for the plural pictures in the given entry point segment.

9. The method of claim 1 further comprising, during the encoding:

evaluating computational capabilities of the computing system that implements the video encoder or a computing system that implements a video decoder; and

based at least in part on the computational capabilities, determining whether to use range reduction for the plural pictures in the given entry point segment.

10. The method of claim 1 further comprising, during the encoding:

using an open-loop estimation mechanism to evaluate different scaling factors for range reduction in terms of target bit rate and/or content characteristics of the plural pictures in the given entry point segment.

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.

12. The method of claim 11 wherein the one or more range reduction syntax elements include an on/off flag and, if range reduction is on, a range reduction parameter.

13. The method of claim 12 wherein the range reduction parameter indicates scaling up by a factor other than 2.

14. The method of claim 11 wherein the scaling up occurs according to one or more linear scaling equations.

15. The method of claim 11 wherein the scaling up uses a look-up table.

16. The method of claim 11 wherein the scaling up includes multiplication operations, and wherein at least some of the multiplication operations are implemented using left shift operations.

17. The method of claim 11 wherein the scaling up includes division operations, and wherein all of the division operations are implemented using right shift operations.

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.

19. The computing system of claim 18 wherein the scaling up occurs according to one or more linear scaling equations or uses a look-up table.

20. The computing system of claim 18 wherein the plural samples include luma samples and chroma samples, and wherein the range reduction syntax elements indicate whether range reduction was used during encoding for (a) both the luma samples and the chroma samples, (b) the luma samples but not the chroma samples, (c) the chroma samples but not the luma samples, or (d) neither the luma samples nor the chroma samples.

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.

22. The computing system of claim 21 wherein the plural samples include luma samples and chroma samples, the method further comprising, as part of the determining whether to use range reduction:

determining whether to use range reduction for (a) both the luma samples and the chroma samples, (b) the luma samples but not the chroma samples, (c) the chroma samples but not the luma samples, or (d) neither the luma samples nor the chroma samples.

23. The computing system of claim 21 wherein the method further comprises, during the encoding:

using an open-loop estimation mechanism to evaluate different scaling factors for range reduction in terms of the target bit rate and/or the content characteristics of the plural pictures in the given entry point segment.

24. The computing system of claim 21 wherein the one or more range reduction syntax elements include an on/off flag and, if range reduction is on, a range reduction parameter.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034544/0001 →
Continuity (5)
Division 10989702 · Nov 15, 2004
Continuation In Part 10933907 · Sep 2, 2004
Continuation In Part 10857473 · May 27, 2004
Provisional Application 60501081 · Sep 7, 2003
Related Publication 20110280303A1 · Nov 17, 2011