IP Library Granted Patent US 8,824,565
Granted Patent B2
US 8,824,565 · App. 13/161,473 · Granted Sep 2, 2014

Method and apparatus for variable accuracy inter-picture timing specification for digital video encoding with reduced requirements for division operations

Inventors: Barin Geoffry Haskell (Mountain View, CA); David William Singer (San Francisco, CA); Adriana Dumitras (Santa Clara, CA); Atul Puri (Redmond, WA)
Assignee: Apple Inc.
H04N19/00551
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,824,565
App. No.
13/161,473
Granted
Sep 2, 2014
Kind
B2
Abstract

A method and apparatus for performing motion estimation in a digital video system is disclosed. Specifically, the present invention discloses a system that quickly calculates estimated motion vectors in a very efficient manner. In one embodiment, a first multiplicand is determined by multiplying a first display time difference between a first video picture and a second video picture by a power of two scale value. This step scales up a numerator for a ratio. Next, the system determines a scaled ratio by dividing that scaled numerator by a second first display time difference between said second video picture and a third video picture. The scaled ratio is then stored calculating motion vector estimations. By storing the scaled ratio, all the estimated motion vectors can be calculated quickly with good precision since the scaled ratio saves significant bits and reducing the scale is performed by simple shifts.

Claims (28)

1. A method comprising:

receiving a plurality of encoded video pictures;

receiving a particular value that specifies a difference between a coding order value and a display order value for a particular video picture;

establishing a reference picture selection ordering using said particular value; and

decoding at least one of the plurality of video pictures by using the established reference picture selection ordering to select a reference picture for computing a motion vector.

2. The method of claim 1 , wherein computing the motion vector comprises performing an interpolation operation.

3. The method of claim 1 , wherein computing the motion vector comprises performing a bit shifting operation.

4. The method of claim 1 , wherein the bit shifting operation performs a division by a power of two value, wherein the power of two value is two hundred fifty six (256).

5. The method of claim 1 , wherein the display order value for the particular video picture is encoded in a slice header that is associated with the particular video picture.

6. The method of claim 1 , wherein the display order value for the particular video picture is encoded more than once in a bitstream comprising the plurality of encoded video pictures.

7. The method of claim 1 , wherein the display order value is compressed in a bitstream by using variable length coding, the bitstream comprising the plurality of encoded video pictures.

8. The method of claim 1 , wherein a display order value of a video picture is the order in which the video picture is displayed and a coding order value of the video picture represents the order in which the video picture is decoded.

9. The method of claim 1 , wherein the display order value is encoded in a bitstream by using an exponent of a power of two integer, the bitstream comprising the plurality of encoded video pictures.

10. The method of claim 1 , wherein decoding at least one of the plurality of video pictures comprises computing an implicit B prediction block weighting for the video picture being decoded.

11. A decoder comprising:

a module that receives a plurality of encoded video pictures;

a module that receives a particular value that specifies a difference between a coding order value and a display order value for a particular video picture;

a module that establishes a reference picture selection ordering using said particular value; and

a module that decodes at least one of the plurality of video pictures by using the established reference picture selection ordering to select a reference picture for computing a motion vector.

12. The decoder of claim 11 , wherein computing the motion vector comprises performing an interpolation operation.

13. The decoder of claim 11 , wherein computing the motion vector comprises performing a bit shifting operation.

14. The decoder of claim 13 , wherein the bit shifting operation performs a division by a power of two value, wherein the power of two value is two hundred fifty six (256).

15. The decoder of claim 11 , wherein the display order value for the particular video picture is encoded in a slice header that is associated with the particular video picture.

16. The decoder of claim 11 , wherein the display order value for the particular video picture is encoded more than once in a bitstream comprising the plurality of encoded video pictures.

17. The decoder of claim 11 , wherein the display order value is compressed in a bitstream by using variable length coding, the bitstream comprising the plurality of encoded video pictures.

18. The decoder of claim 11 , wherein a display order value of a video picture is the order in which the video picture is displayed and a coding order value of the video picture represents the order in which the video picture is decoded.

19. The decoder of claim 11 , wherein the display order value is encoded in a bitstream by using an exponent of a power of two integer, the bitstream comprising the plurality of encoded video pictures.

20. The decoder of claim 11 , wherein the module that decodes at least one of the plurality of video pictures comprises a module that computes an implicit B prediction block weighting for the video picture being decoded.

Continuity (5)
Continuation 11621977 · Jan 10, 2007
Continuation 10792514 · Mar 2, 2004
Continuation 10313773 · Dec 6, 2002
Provisional Application 60398625 · Jul 24, 2002
Related Publication 20110243235A1 · Oct 6, 2011