IP Library Granted Patent US 8,254,461
Granted Patent B2
US 8,254,461 · App. 11/779,668 · Granted Aug 28, 2012

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

Assignee: Apple Inc.
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,254,461
App. No.
11/779,668
Granted
Aug 28, 2012
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 (45)

1. A method of decoding coded video data, comprising:

calculating, for a current frame of video data to be decoded, a scale factor (Z) based on a ratio of two time differences (Δt 1 /Δt 2 ), the first time difference (Δt 1 ) representing a temporal difference between the current frame and a first reference frame and the second time difference (Δt 2 ) representing a temporal difference between the first reference frame and a second reference frame, the scale factor representing the ratio multiplied by a power of two (Z=2 N *(Δt 1 /Δt 2 )) subject to rounding,

predicting data of pixelblocks of the current frame from data of the reference frames according to predictive coding techniques, and

further comprising, as part of the prediction, interpolating a motion vector (mv PB ) of the pixelblocks from a motion vector (mv REF ) of a co-located pixelblock in one of the reference frames as mv PB =mv REF *Z/2 N .

2. The method of claim 1 , further comprising interpolating motion vectors for other pixelblocks of the current frame using the scale factor Z.

3. The method of claim 1 , wherein the division by 2 N is accomplished by shifting digits of a binary value.

4. The method of claim 1 , wherein the division causes a shift of eight bit positions of a binary value.

5. A method of decoding coded video data, comprising:

calculating, for a current frame of video data to be decoded, a scale factor (Z) based on a ratio of two time differences (Δt 1 /Δt 2 ), the first time difference (Δt 1 ) representing a temporal difference between the current frame and a first reference frame and the second time difference (Δt 2 ) representing a temporal difference between the first reference frame and a second reference frame, the scale factor representing the ratio multiplied by a power of two (Z=2 N *(Δt 1 /Δt 2 )) subject to rounding,

predicting data of pixelblocks of the current frame from data of the reference frames according to predictive coding techniques,

as part of the prediction, determining whether motion vectors for the pixelblock are to be interpolated from motion vectors of the reference frames, and

if so, interpolating motion vectors (mv PB[i] ) of the respective pixelblocks from motion vector (mv REF[i] ) of a co-located pixelblock in one of the reference frames as mv PB =mv REF *Z/2 N ,

wherein the scale factor (Z) is common to motion vector derivations of all pixelblocks i in the current frame.

6. The method of claim 5 , wherein the division by 2 N is accomplished by shifting digits of a binary value.

7. The method of claim 5 , wherein the division causes a shift of eight bit positions of a binary value.

8. A video decoder, comprising:

a motion estimator to calculate, for a current frame of video data to be decoded, a scale factor (Z) based on a ratio of two time differences (Δt 1 /Δt 2 ), the first time difference (Δt 1 ) representing a temporal difference between the current frame and a first reference frame and the second time difference (Δt 2 ) representing a temporal difference between the first reference frame and a second reference frame, the scale factor representing the ratio multiplied by a power of two (Z=2 N *(Δt 1 /Δt 2 )) subject to rounding , and

a predictor to predict data of pixelblocks of the current frame from data of the reference frames according to predictive coding techniques,

wherein the estimator further interpolates a motion vector (mv PB ) of the pixelblocks from a motion vector (mv REF ) of a co-located pixelblock in one of the reference frames as mv PB =mv REF *Z/2 N .

9. The decoder of claim 8 , wherein the motion estimator further interpolates motion vectors for other pixelblocks of the current frame using the scale factor Z.

10. The decoder of claim 8 , wherein the motion estimator performs the division by 2 N by shifting digits of a binary value.

11. The decoder of claim 8 , wherein N=8.

12. A video decoder, comprising:

a motion estimator to calculate, for a current frame of video data to be decoded, a scale factor (Z) based on a ratio of two time differences (Δt 1 /Δt 2 ), the first time difference (Δt 1 ) representing a temporal difference between the current frame and a first reference frame and the second time difference (Δt 2 ) representing a temporal difference between the first reference frame and a second reference frame, the scale factor representing the ratio multiplied by a power of two(Z=2 N *(Δt 1 /Δt 2 )) subject to rounding,

a predictor to predict data of pixelblocks of the current frame from data of the reference frames according to predictive coding techniques, including a motion vector,

wherein the estimator interpolates motion vectors (mv PB[i] ) of the respective pixelblocks from a motion vector (mv REF[i] ) of a co-located pixelblock in one of the reference frames as mv PB =mv REF *(Z/2 N ,

wherein the scale factor Z is common to motion vector derivations of all pixelblocks i in the current frame.

13. The decoder of claim 12 , wherein the motion estimator performs the division by 2 N by shifting digits of a binary value.

14. The decoder of claim 12 , wherein N=8.

15. Non-transitory computer readable medium storing program instructions that, when executed by a processing device, cause the device to:

calculate, for a current frame of video data to be decoded, a scale factor (Z) based on a ratio of two time differences (Δt 1 /Δt 2 ), the first time difference (Δt 1 ) representing a temporal difference between the current frame and a first reference frame and the second time difference (Δt 2 ) representing a temporal difference between the first reference frame and a second reference frame, the scale factor representing the ratio multiplied by a power of two (Z=2 N *(Δt 1 /Δt 2 ) subject to rounding,

predict data of pixelblocks of the current frame from data of the reference frames according to predictive coding techniques, and

as part of the prediction, interpolate a motion vector (mv PB ) of the pixelblocks from a motion vector (mv REF ) of a co-located pixelblock in one of the reference frames as mv PB =mv REF *Z/2 N .

16. The medium of claim 15 , wherein the instructions further cause the device to interpolate motion vectors for other pixelblocks of the current frame using the scale factor.

17. The medium of claim 15 , wherein the instructions further cause the device to perform the division by 2 N by shifting digits of a binary value.

18. The medium of claim 15 , wherein N=8.

19. Non-transitory computer readable medium storing

program instructions that, when executed by a processing device, cause the device to:

calculate, for a current frame of video data to be decoded, a scale factor (Z) based on a ratio of two time differences (Δt 1 /Δt 2 ), the first time difference (Δt 1 ) representing a temporal difference between the current frame and a first reference frame and the second time difference (Δt 2 ) representing a temporal difference between the first reference frame and a second reference frame, the scale factor representing the ratio multiplied by a power of two (Z=2 N *(Δt 1 /Δt 2 ))subject to rounding,

predict data of pixelblocks of the current frame from data of the reference frames according to predictive coding techniques,

determine whether motion vectors for the pixelblock are to be interpolated from motion vectors of the reference frames, and

if so, interpolate motion vectors (mv PB[i] ) of the respective pixelblocks from motion vector (mv REF[i] ) of a co-located pixelblock in one of the reference frames as mv PB =mv REF *Z/2 N ,

wherein the scale factor Z is common to motion vector derivations of all the pixelblocks i in the current frame.

20. The medium of claim 19 , wherein the division by 2 N is accomplished by shifting digits of a binary value.

21. The medium of claim 19 , wherein N=8.

Assignments (1)
MERGER Recorded Apr 14, 2011
From: APPLE COMPUTER, INC.
To: APPLE INC.
Reel/Frame 026129/0474 →
Continuity (5)
Continuation 11621980 · Jan 10, 2007
Continuation 10792514 · Mar 2, 2004
Continuation 10313773 · Dec 6, 2002
Provisional Application 60398625 · Jul 24, 2002
Related Publication 20090022225A1 · Jan 22, 2009