IP Library Granted Patent US 7,227,895
Granted Patent B1
US 7,227,895 · App. 10/014,689 · Granted Jun 5, 2007

System and method for generating decoded digital video image data

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 7,227,895
App. No.
10/014,689
Granted
Jun 5, 2007
Kind
B1
Abstract

Methods and systems are disclosed for decoding image data including I-picture, P-picture, and B-picture encoded data. A method includes receiving encoded image data and selectively performing a modified inverse discrete cosine transform (IDCT) process to generate output pixel array blocks at a lower resolution than the resolution of the received image data. The image data can be 8×8 pixel array blocks, which are used to produce lower resolution pixel array blocks such as, for example, 4×8 or 4×4 pixel array blocks. In certain instances, after the IDCT process is performed, the resulting pixel data is up-sampled before motion compensation is performed. Furthermore, in certain instances, the resulting pixel data is subjected to motion compensation and scaled to display size prior to display.

Claims (153)

1. A method for decoding image data comprising:

receiving encoded image data comprising I-picture, P-picture, and B-picture data;

performing inverse discrete cosine transform IDCT decoding on I-picture data at a first resolution;

storing the decoded I-picture data, scaling the stored I-picture data based on a display size, and outputting the scaled I-picture data for display;

performing IDCT decoding on P-picture data at the first resolution;

performing motion compensation processing on the decoded P-picture data;

storing the motion-compensated P-picture data, scaling the stored P-picture data based on the display size, and outputting the scaled P-picture data for display;

performing IDCT decoding on B-picture data at a second resolution, the second resolution being lower than the first resolution;

performing motion compensation processing on the decoded B-picture data; and

storing the motion-compensated B-picture data, scaling the stored B-picture data to the display size, and outputting the scaled B-picture data for display.

2. A method as recited in claim 1 , wherein the first resolution comprises full vertical resolution and one-half horizontal resolution.

3. A method for decoding image data comprising:

receiving encoded image data comprising I-picture, P-picture, and B-picture data;

performing inverse discrete cosine transform IDCT decoding on I-picture data at a first resolution, wherein the first resolution comprises full vertical resolution and one-half horizontal resolution;

storing the decoded I-picture data, scaling the stored I-picture data based on a display size, and outputting the scaled I-picture data for display;

performing IDCT decoding on P-picture data at the first resolution;

performing motion compensation processing on the decoded P-picture data;

storing the motion-compensated P-picture data, scaling the stored P-picture data based on the display size, and outputting the scaled P-picture data for display;

performing IDCT decoding on B-picture data at a second resolution, the second resolution being lower than the first resolution;

performing motion compensation processing on the decoded B-picture data at a first resolution by:

retrieving stored B-picture data based on motion vector data;

determining if the motion vector data specifies a pixel position that does not have a corresponding pixel within the retrieved B-picture data;

if the motion vector data has a missing pixel, up-sampling the retrieved B-picture data to compute a replacement pixel; and

down-sampling the B-picture data with the replacement pixel to the second resolution; and

storing the motion-compensated B-picture data, scaling the stored B-picture data to the display size, and outputting the scaled B-picture data for display.

4. A method as recited in claim 1 , wherein the second resolution comprises one-half vertical resolution and one-half horizontal resolution.

5. A method as recited in claim 1 , further comprising up-sampling the IDCT-decoded B-picture data to the first resolution prior to performing motion compensation.

6. A method for decoding image data comprising:

receiving encoded image data comprising I-picture, P-picture, and B-picture data;

performing inverse discrete cosine transform IDCT decoding on I-picture data at a first resolution;

storing the decoded I-picture data, scaling the stored I-picture data based on a display size, and outputting the scaled I-picture data for display;

performing IDCT decoding on P-picture data at the first resolution;

performing motion compensation processing on the decoded P-picture data;

storing the motion-compensated P-picture data, scaling the stored P-picture data based on the display size, and outputting the scaled P-picture data for display;

performing IDCT decoding on B-picture data at a second resolution, the second resolution being lower than the first resolution;

up-sampling the IDCT-decoded B-picture data to the first resolution;

performing motion compensation processing on the B-picture data by

retrieving stored B-picture data at the first resolution based on motion vector data;

determining if the motion vector data specifies a pixel position that does not have a corresponding pixel within the retrieved B-picture data;

if the motion vector data has a missing pixel, up-sampling the retrieved B-picture data to compute a replacement pixel; and

down-sampling the B-picture data with the computed missing pixel to the first resolution; and

storing the motion-compensated B-picture data, scaling the stored B-picture data to the display size, and outputting the scaled B-picture data for display.

7. A system for decoding image data including I-picture, P-picture, and B-picture encoded data, comprising:

a memory;

an IDCT decoder for performing IDCT decoding on I-picture and P-picture data at a first resolution and on B-picture data at a second resolution lower than the first resolution;

a processor for storing the decoded I-picture data in the memory, performing motion compensation processing on the decoded P-picture and B-picture data, and storing the motion-compensated P-picture and B-picture data in memory; and

a video scaler which scales the stored I-picture, P-picture, and B-picture data based on a display size and outputs the scaled data for display.

8. A system as recited in claim 7 , wherein the first resolution comprises full vertical resolution and half horizontal resolution of the original unencoded picture and the second resolution comprises half vertical and half horizontal resolution of the original unencoded picture.

9. A system as recited in claim 8 , comprising an up-sampling element which converts the B-picture decoded data from the IDCT decoder from the first resolution to the second resolution.

10. A system for decoding image data including I-picture, P-picture, and B-picture encoded data, comprising:

a memory;

an IDCT decoder for performing IDCT decoding on I-picture data and P-picture data at a first resolution and B-picture data at a second resolution lower than the first resolution;

a processor which stores the IDCT-decoded I-picture data in the memory, performs motion compensation processing on the decoded P-picture and B-picture data, and stores the motion-compensated P-picture and B-picture data in memory; and

a video scaler which scales the stored I-picture, P-picture, and B-picture data to the display size and outputs the scaled data for display.

11. A method of decoding image data comprising:

receiving an array of discrete cosine transform (“DCT”) coefficients representing a block of image data of one of a plurality of types of pictures;

performing inverse discrete cosine transform on a sub-portion of the DCT coefficients to obtain a block of pixel data equal in size to the sub-portion if the block of image data represents a first type of picture;

performing motion compensation on the block of pixel data to obtain a second block of pixel data;

scaling the second block of pixel data based on a size of a display; and

displaying the second block of pixel data on the display.

12. The method of claim 11 , wherein the first type of picture includes a bi-directionally predictive-coded picture.

13. The method of claim 11 , wherein the array of DCT coefficients is 8×8 in size and the sub-portion of the DCT coefficients is 4×8 in size.

14. The method of claim 11 , wherein the array of DCT coefficients is 8×8 in size and the sub-portion of the DCT coefficients is 4×4 in size.

15. A method of decoding image data comprising:

receiving an array of discrete cosine transform (“DCT”) coefficients representing a block of image data of one of a plurality of types of pictures;

performing inverse discrete cosine transform on a sub-portion of the DCT coefficients to obtain a first block of pixel data equal in size to the sub-portion if the block of image data represents a first type of picture;

up-sampling the first block of pixel data to obtain a second block of pixel data;

performing motion compensation on the second block of pixel data to obtain a third block of pixel data; and

displaying the third block of pixel data.

16. The method of claim 15 , further comprising:

scaling the third block of pixel data based on a size of a display.

17. The method of claim 15 , wherein the first type of picture is a bi-directionally predictive-coded picture.

18. The method of claim 15 , wherein the array of DCT coefficients is 8×8 in size and the sub-portion of the DCT coefficients is 4×4 in size.

19. The method of claim 18 , wherein the second block of pixel data is 4×8.

20. A computer readable medium containing instructions, which if executed by a computer system, causes the computer system to perform an operation comprising:

receiving encoded image data comprising I-picture, P-picture, and B-picture data;

performing inverse discrete cosine transform IDCT decoding on I-picture data at a first resolution;

storing the decoded I-picture data, scaling the stored I-picture data based on a display size, and outputting the scaled I-picture data for display;

performing IDCT decoding on P-picture data at the first resolution;

performing motion compensation processing on the decoded P-picture data;

storing the motion-compensated P-picture data, scaling the stored P-picture data based on the display size, and outputting the scaled P-picture data for display;

performing IDCT decoding on B-picture data at a second resolution, the second resolution being lower than the first resolution;

performing motion compensation processing on the decoded B-picture data; and

storing the motion-compensated B-picture data, scaling the stored B-picture data to the display size, and outputting the scaled B-picture data for display.

21. A computer readable medium containing instructions, which if executed by a computer system, causes the computer system to perform an operation for decoding image data, the operation comprising:

receiving an array of discrete cosine transform (“DCT”) coefficients representing a block of image data of one of a plurality of types of pictures;

performing inverse discrete cosine transform on a sub-portion of the DCT coefficients to obtain a block of pixel data equal in size to the sub-portion if the block of image data represents a first type of picture;

performing motion compensation on the block of pixel data to obtain a second block of pixel data;

scaling the second block of pixel data based on a size of a display; and

displaying the second block of pixel data on the display.

22. A computer readable medium containing instructions, which if executed by a computer system, causes the computer system to perform an operation for decoding image data, the operation comprising:

receiving an array of discrete cosine transform (“DCT”) coefficients representing a block of image data of one of a plurality of types of pictures;

performing inverse discrete cosine transform on a sub-portion of the DCT coefficients to obtain a first block of pixel data equal in size to the sub-portion if the block of image data represents a first type of picture;

up-sampling the first block of pixel data to obtain a second block of pixel data;

performing motion compensation on the second block of pixel data to obtain a third block of pixel data; and

displaying the third block of pixel data.

23. A system for decoding image data including I-picture, P-picture, and B-picture encoded data, comprising:

means for receiving encoded image data comprising I-picture, P-picture, and B-picture data;

means for performing inverse discrete cosine transform IDCT decoding on I-picture data at a first resolution, wherein the first resolution comprises full vertical resolution and one-half horizontal resolution;

means for storing the decoded I-picture data, scaling the stored I-picture data based on a display size, and outputting the scaled I-picture data for display;

means for performing IDCT decoding on P-picture data at the first resolution;

means for performing motion compensation processing on the decoded P-picture data;

means for storing the motion-compensated P-picture data, scaling the stored P-picture data based on the display size, and outputting the scaled P-picture data for display;

means for performing IDCT decoding on B-picture data at a second resolution, the second resolution being lower than the first resolution;

means for performing motion compensation processing on the decoded B-picture data at a first resolution by:

retrieving stored B-picture data based on motion vector data;

determining if the motion vector data specifies a pixel position that does not have a corresponding pixel within the retrieved B-picture data;

if the motion vector data has a missing pixel, up-sampling the retrieved B-picture data to compute a replacement pixel; and

down-sampling the B-picture data with the replacement pixel to the second resolution; and

means for storing the motion-compensated B-picture data, scaling the stored B-picture data to the display size, and outputting the scaled B-picture data for display.

24. A system for decoding image data including I-picture, P-picture, and B-picture encoded data, comprising:

means for receiving encoded image data comprising I-picture, P-picture, and B-picture data;

means for performing inverse discrete cosine transform IDCT decoding on I-picture data at a first resolution;

means for storing the decoded I-picture data, scaling the stored I-picture data based on a display size, and outputting the scaled I-picture data for display;

means for performing IDCT decoding on P-picture data at the first resolution;

means for performing motion compensation processing on the decoded P-picture data;

means for storing the motion-compensated P-picture data, scaling the stored P-picture data based on the display size, and outputting the scaled P-picture data for display;

means for performing IDCT decoding on B-picture data at a second resolution, the second resolution being lower than the first resolution;

means for up-sampling the IDCT-decoded B-picture data to the first resolution;

means for performing motion compensation processing on the B-picture data by:

retrieving stored B-picture data at the first resolution based on motion vector data;

determining if the motion vector data specifies a pixel position that does not have a corresponding pixel within the retrieved B-picture data;

if the motion vector data has a missing pixel, up-sampling the retrieved B-picture data to compute a replacement pixel; and

down-sampling the B-picture data with the computed missing pixel to the first resolution; and

means for storing the motion-compensated B-picture data, scaling the stored B-picture data to the display size, and outputting the scaled B-picture data for display.

25. A computer readable medium containing instructions, which if executed by a computer system, causes the computer system to perform an operation for decoding image data, the operation comprising:

receiving encoded image data comprising I-picture, P-picture, and B-picture data;

performing inverse discrete cosine transform IDCT decoding on I-picture data at a first resolution, wherein the first resolution comprises full vertical resolution and one-half horizontal resolution;

storing the decoded I-picture data, scaling the stored I-picture data based on a display size, and outputting the scaled I-picture data for display;

performing IDCT decoding on P-picture data at the first resolution;

performing motion compensation processing on the decoded P-picture data;

storing the motion-compensated P-picture data, scaling the stored P-picture data based on the display size, and outputting the scaled P-picture data for display;

performing IDCT decoding on B-picture data at a second resolution, the second resolution being lower than the first resolution;

performing motion compensation processing on the decoded B-picture data at a first resolution by:

retrieving stored B-picture data based on motion vector data;

determining if the motion vector data specifies a pixel position that does not have a corresponding pixel within the retrieved B-picture data;

if the motion vector data has a missing pixel, up-sampling the retrieved B-picture data to compute a replacement pixel; and

down-sampling the B-picture data with the replacement pixel to the second resolution; and

storing the motion-compensated B-picture data, scaling the stored B-picture data to the display size, and outputting the scaled B-picture data for display.

26. A computer readable medium containing instructions, which if executed by a computer system, causes the computer system to perform an operation for decoding image data, the operation comprising:

receiving encoded image data comprising I-picture, P-picture, and B-picture data;

performing inverse discrete cosine transform IDCT decoding on I-picture data at a first resolution;

storing the decoded I-picture data, scaling the stored I-picture data based on a display size, and outputting the scaled I-picture data for display;

performing IDCT decoding on P-picture data at the first resolution;

performing motion compensation processing on the decoded P-picture data;

storing the motion-compensated P-picture data, scaling the stored P-picture data based on the display size, and outputting the scaled P-picture data for display;

performing IDCT decoding on B-picture data at a second resolution, the second resolution being lower than the first resolution;

up-sampling the IDCT-decoded B-picture data to the first resolution;

performing motion compensation processing on the B-picture data by retrieving stored B-picture data at the first resolution based on motion vector data;

determining if the motion vector data specifies a pixel position that does not have a corresponding pixel within the retrieved B-picture data;

if the motion vector data has a missing pixel, up-sampling the retrieved B-picture data to compute a replacement pixel; and

down-sampling the B-picture data with the computed missing pixel to the first resolution; and

storing the motion-compensated B-picture data, scaling the stored B-picture data to the display size, and outputting the scaled B-picture data for display.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2019
From: SONY CORPORATION
To: SATURN LICENSING LLC
Reel/Frame 048974/0222 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 11, 2015
From: SONY ELECTRONICS INC.
To: SONY CORPORATION
Reel/Frame 036330/0420 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 11, 2001
From: WANG, JASON NAXIN; TSUKAGOSHI, IKUO
To: SONY CORPORATION; SONY ELECTRONICS, INC.
Reel/Frame 012382/0463 →