IP Library Granted Patent US 9,918,079
Granted Patent B2
US 9,918,079 · App. 13/888,635 · Granted Mar 13, 2018

Electronic device and motion compensation method

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 9,918,079
App. No.
13/888,635
Granted
Mar 13, 2018
Kind
B2
Abstract

An electronic device for motion compensation is provided. The electronic device has a processing unit configured to perform a decoding program on a video bitstream to output decoding data, wherein the decoding data has a plurality of inter-prediction macroblocks, and the processing unit further generates a plurality of first pixel interpolation values according to the inter-prediction macroblocks which are smaller than a predetermined macroblock size. A motion compensation acceleration circuit is configured to generate a plurality of second pixel interpolation values according to the inter-prediction macroblocks which are larger than or equal to the predetermined macroblocks size, and generate a plurality of reconstructed macroblocks according to the first pixel interpolation values, the second pixel interpolation values, and a plurality of corresponding residue values.

Claims (36)

1. An electronic device for motion compensation, comprising:

a hardware processor configured to:

perform a decoding program on a video bitstream to output decoding data, wherein the decoding data comprises a plurality of inter-prediction macroblocks, and

generate a plurality of first pixel interpolation values with each of the plurality of the first pixel interpolation values being generated based on the inter-prediction macroblocks which are smaller than a predetermined macroblock size; and

a motion compensation acceleration circuit separate from the hardware processor, the motion compensation acceleration circuit comprising a plurality of individual parallel linear filters configured to perform a motion compensation process to generate a plurality of second pixel interpolation values, the motion compensation acceleration circuit being configured to:

receive the first pixel interpolation values from the hardware processor,

generate the plurality of second pixel interpolation values, each of the plurality of the second pixel interpolation values being generated based on the inter-prediction macroblocks having sizes larger than or equal to the predetermined macroblock size, wherein the motion compensation process comprises three to five clock cycles, a number of the clock cycles being dependent on a pixel precision or a macroblock size, and the clock cycles being defined by a series of successive phases that calculate intermediate prediction values to generate the plurality of second pixel interpolation values, and

generate a plurality of reconstructed macroblocks with each reconstructed macroblock being generated based on: the first pixel interpolation values, the second pixel interpolation values, and a plurality of corresponding residue values.

2. The electronic device as claimed in claim 1 , wherein the video bitstream is encoded according to H.264 standard or VC-1 standard.

3. The electronic device as claimed in claim 2 , wherein the predetermined macroblock size is 8×8 bits.

4. The electronic device as claimed in claim 1 , wherein the hardware processor is further configured to store the first pixel interpolation values in a motion compensation reference macroblock buffer, and the motion compensation acceleration circuit is configured to read the first pixel interpolation values from the motion compensation reference macroblock buffer, and generate the reconstructed macroblocks by adding the first pixel interpolation values, the second interpolation values and the corresponding residue values.

5. The electronic device as claimed in claim 1 , wherein the decoding program executed by the hardware processor further comprises an entropy decoding program and a decoding parameter calculating program.

6. The electronic device as claimed in claim 1 , wherein the motion compensation acceleration circuit is further configured to divide the inter-prediction macroblocks having sizes larger than the predetermined macroblock size into a plurality of sub-macroblocks which match the predetermined macroblock size.

7. The electronic device as claimed in claim 6 , the motion compensation process being performed on the inter-prediction macroblocks or the sub-macroblocks matching the predetermined macroblock size.

8. The electronic device as claimed in claim 7 , wherein the motion compensation process performed on the inter-prediction macroblocks is a horizontal pixel interpolation process, a vertical pixel interpolation process or a diagonal pixel interpolation process, and the linear filters are configured to perform the horizontal pixel interpolation process, and the motion compensation acceleration circuit further comprises a transposition register array configured to perform transposition of the inter-prediction macroblocks, so that the linear filters are further configured to perform the vertical pixel interpolation process or the diagonal pixel interpolation process.

9. The electronic device as claimed in claim 7 , wherein the motion compensation reference macroblock buffer is a ping-pong buffer configured to store a plurality of reference macroblocks in the video bitstream, and the hardware processor is further configured to write the reference macroblocks to the motion compensation reference macroblock buffer and read the reference macroblocks from the motion compensation reference macroblock buffer simultaneously.

10. A motion compensation method applied in an electronic device comprising a hardware processor and a motion compensation acceleration circuit separate from the hardware processor, the motion compensation acceleration circuit comprising a plurality of individual parallel filters configured to perform a motion compensation process to generate a plurality of second pixel interpolation values, the method comprising:

performing a decoding program on a video bitstream to output decoding data by the hardware processor, wherein the decoding data comprises a plurality of inter-prediction macroblocks;

generating a plurality of first pixel interpolation values with each of the plurality of the first pixel interpolation values being generated based on the inter-prediction macroblocks which are smaller than a predetermined macroblock size by the hardware processor;

generating the plurality of second pixel interpolation values, each of the plurality of the second pixel interpolation values being generated based on the inter-prediction macroblocks having sizes larger than or equal to the predetermined macroblock size by the motion compensation acceleration circuit, wherein the motion compensation process comprises three to five clock cycles, a number of the clock cycles being dependent on a pixel precision or a macroblock size, and the clock cycles being defined by a series of successive phases that calculate intermediate prediction values to generate the plurality of second pixel interpolation values; and

generating, by the motion compensation acceleration circuit, a plurality of reconstructed macroblocks with each reconstructed macroblock being generated based on: the first pixel interpolation values, the second pixel interpolation values and a plurality of corresponding residue values.

11. The motion compensation method as claimed in claim 10 , wherein the video bitstream is encoded according to H.264 standard or VC-1 standard.

12. The motion compensation method as claimed in claim 10 , wherein the predetermined macroblock size is 8×8 bits.

13. The motion compensation method as claimed in claim 10 , further comprising:

storing the first pixel interpolation values in a motion compensation reference macroblock buffer by the hardware processor;

reading the first pixel interpolation values from the motion compensation reference macroblock buffer by the motion compensation acceleration circuit; and

adding, by the motion compensation acceleration circuit, the first pixel interpolation values, the second pixel interpolation values, and the corresponding residue values to generate the reconstructed macroblocks.

14. The motion compensation method as claimed in claim 10 , wherein the decoding program executed by the hardware processor further comprises an entropy decoding program and a decoding parameter calculating program.

15. The motion compensation method as claimed in claim 10 , further comprising:

dividing the inter-prediction macroblocks having sizes larger than the predetermined macroblock size into a plurality of sub-macroblocks which match the predetermined macroblock size by the motion compensation acceleration circuit.

16. The motion compensation method as claimed in claim 15 , the motion compensation process being performed on the inter-prediction macroblocks or the sub-macroblocks matching the predetermined macroblock size.

17. The motion compensation method as claimed in claim 16 , wherein the motion compensation process performed on the inter-prediction macroblocks is a horizontal pixel interpolation process, a vertical pixel interpolation process or a diagonal pixel interpolation process, and the linear filters are configured to perform the horizontal pixel interpolation process, and the motion compensation acceleration circuit further comprising a transposition register array configured to perform transposition of the inter-prediction macroblocks, so that the linear filters are further configured to perform the vertical pixel interpolation process or the diagonal pixel interpolation process.

18. The motion compensation method as claimed in claim 16 , wherein the motion compensation reference macroblock buffer is a ping-pong buffer configured to store a plurality of reference macroblocks in the video bitstream, and the method further comprising:

writing the reference macroblocks to the motion compensation reference macroblock buffer and reading the reference macroblocks from the motion compensation reference macroblock buffer by the processing unit simultaneously.

19. The electronic device as claimed in claim 1 , wherein the motion compensation process is performed in three clock cycles.

20. The electronic device as claimed in claim 1 , wherein the motion compensation process is performed in four clock cycles.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 11, 2015
From: VIA TELECOM CO., LTD.
To: INTEL CORPORATION
Reel/Frame 037096/0075 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 27, 2013
From: VIA TELECOM, INC.
To: VIA TELECOM CO., LTD.
Reel/Frame 031298/0044 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 7, 2013
From: XI, YINGLAI; LI, QIANG; CHEN, ZHICHONG; LI, JUMEI
To: VIA TELECOM, INC.
Reel/Frame 030363/0676 →