Multiple sequence MPEG decoder
First Claim
1. An MPEG decoder in a host computer system, the host computer system including a host processor, a system memory, a system bus, and a system memory controller, comprising:
- a memory controller interface coupled to the system memory controller;
a video stream DMA controller, coupled to the memory controller interface;
a parsing means for distributing coded motion vector information blocks and image data information blocks;
an entropy decoding means, coupled to the parsing means, receiving distributed image data blocks and decoding the image data blocks into quantized coefficient blocks;
an inverse quantization means for receiving the quantized coefficient blocks and performing an inverse quantization on said quantized coefficient blocks to form pixel value blocks;
an inverse zig-zag means for converting the pixel value blocks to pixel coefficients;
an inverse discrete cosine transform means for calculating the inverse discrete cosine transform of the pixel coefficients to produce pixel display values;
a motion vector processor means, coupled to the parsing means and receiving the distributed motion vector blocks, for decoding the motion vector blocks into pixel motion vectors;
a motion compensation unit, coupled to the motion vector analyzer and the inverse discrete cosine transform means, for adding the pixel motion vectors and pixel display values;
a video output DMA controller, coupled to the motion compensation unit and the memory controller interface, for ordering the pictures in an output order; and
a video output formatter, coupled to the video output DMA controller and the memory controller interface,wherein the system memory includes data buffers, wherein data to be decoded is provided in said buffers identified by a plurality of addresses, and wherein said DMA controller is operatively coupled to said buffers.
3 Assignments
0 Petitions
Accused Products
Abstract
An MPEG decoding system in a host system, including software instructions for decoding a first portion of MPEG encoded data, including instructions for extracting macroblock data from said MPEG encoded data and for establishing a decoding order for said macroblock data. The system further includes hardware for extracting motion vector data and display data from said macroblocks. An entropy decoder for decoding encoded AC coefficients and DC coefficients in said display data is provided. An inverse quantization unit inversely quantizing said coefficients into a resulting array of decoded AC coefficients is also provided. An de-zig-zag unit scans said array of decoded AC coefficients and DC coefficients in a zig-zag pattern to provide a block of discrete cosine transformed coefficients. A inverse discrete cosine transform unit takes the inverse discrete cosine transform of the block of discrete cosine transformed coefficients to provide a first set of pel data. A motion vector processor decodes the motion vector data to provide a second set of pel data, and a motion compensation unit adds the first and second sets of pel data.
89 Citations
36 Claims
-
1. An MPEG decoder in a host computer system, the host computer system including a host processor, a system memory, a system bus, and a system memory controller, comprising:
-
a memory controller interface coupled to the system memory controller; a video stream DMA controller, coupled to the memory controller interface; a parsing means for distributing coded motion vector information blocks and image data information blocks; an entropy decoding means, coupled to the parsing means, receiving distributed image data blocks and decoding the image data blocks into quantized coefficient blocks; an inverse quantization means for receiving the quantized coefficient blocks and performing an inverse quantization on said quantized coefficient blocks to form pixel value blocks; an inverse zig-zag means for converting the pixel value blocks to pixel coefficients; an inverse discrete cosine transform means for calculating the inverse discrete cosine transform of the pixel coefficients to produce pixel display values; a motion vector processor means, coupled to the parsing means and receiving the distributed motion vector blocks, for decoding the motion vector blocks into pixel motion vectors; a motion compensation unit, coupled to the motion vector analyzer and the inverse discrete cosine transform means, for adding the pixel motion vectors and pixel display values; a video output DMA controller, coupled to the motion compensation unit and the memory controller interface, for ordering the pictures in an output order; and a video output formatter, coupled to the video output DMA controller and the memory controller interface, wherein the system memory includes data buffers, wherein data to be decoded is provided in said buffers identified by a plurality of addresses, and wherein said DMA controller is operatively coupled to said buffers. - View Dependent Claims (2, 3, 4)
-
-
5. An MPEG decoder in a host computer system, the host computer system including a host processor, a system memory, a system bus, and a system memory controller, comprising:
-
a memory controller interface coupled to the system memory controller; a video stream DMA controller, coupled to the memory controller interface; a parsing means for distributing coded motion vector information blocks and image data information blocks; an entropy decoding means, coupled to the parsing means, receiving distributed image data blocks and decoding the image data blocks into quantized coefficient blocks; an inverse quantization means for receiving the quantized coefficient blocks and performing an inverse quantization on said quantized coefficient blocks to form pixel value blocks; an inverse zig-zag means for converting the pixel value blocks to pixel coefficients; an inverse discrete cosine transform means for calculating the inverse discrete cosine transform of the pixel coefficients to produce pixel display values; a motion vector processor means, coupled to the parsing means and receiving the distributed motion vector blocks, for decoding the motion vector blocks into pixel motion vectors; a motion compensation unit, coupled to the motion vector analyzer and the inverse discrete cosine transform means, for adding the pixel motion vectors and pixel display values; a video output DMA controller, coupled to the motion compensation unit and the memory controller interface, for ordering the pictures in an output order; and a video output formatter, coupled to the video output DMA controller and the memory controller interface, wherein the parsing means comprises a bit shifter, a state machine and a FIFO RAM. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12)
-
-
13. An MPEG decoder in a host computer system, the host computer system including a host processor, a system memory, a system bus, and a system memory controller, the system memory containing data to be decoded, comprising:
-
control means for instructing the host processor to deconstruct the encoded image data to extract macroblock level data comprising encoded picture data blocks and motion vector blocks, for instructing the host processor to determine the decoding order of the macroblock data, and for extracting picture data and quantization table data from the encoded image data; a system memory controller interface coupled to the system memory controller via the system bus; a video image data DMA controller, coupled to the system memory controller interface, the DMA controller including a video stream buffer receiving picture data from the system memory under direction of the control means; a motion compensation unit, coupled to the system memory controller interface; a slice and macroblock decompression unit, coupled to the video stream buffer and the motion compensation unit, the decompression unit comprising; a configurable parser, coupled to the video stream buffer for directing pixel data blocks and motion vector blocks; a configurable decoding unit receiving pixel data blocks and performing entropy decoding and inverse quantization on said pixel data blocks; a pixel data block inverse zig-zag scan unit, receiving pixel data blocks from the configurable decoding unit; an inverse discrete cosine transform unit receiving pixel data blocks from the inverse zigzag scan unit and performing and outputting pixel data blocks having decoded pixel value data; and a motion vector processor, coupled to the parser, receiving the motion vector blocks; a motion compensation unit, coupled to the inverse discrete cosine transform unit and the motion vector processor; a video output DMA controller, coupled to the system memory interface controller and the motion compensation unit; and a video output formatter, coupled to the system memory interface controller and the motion video output DMA controller, wherein said control means includes means for defining, in said system memory, a plurality of buffers including at least configuration buffers, data buffers, and display buffers. - View Dependent Claims (14, 18, 19, 20, 21, 22, 23)
-
-
15. An MPEG decoder in a host computer system, the host computer system including a host processor, a system memory, a system bus, and a system memory controller, comprising:
-
a memory controller interface coupled to the system memory controller; a video stream DMA controller, coupled to the memory controller interface; a parsing means for distributing coded motion vector information blocks and image data information blocks; an entropy decoding means, coupled to the parsing means, receiving distributed image data blocks and decoding the image data blocks into quantized coefficient blocks; an inverse quantization means for receiving the quantized coefficient blocks and performing an inverse quantization on said quantized coefficient blocks to form pixel value blocks; an inverse zig-zag means for converting the pixel value blocks to pixel coefficients; an inverse discrete cosine transform means for calculating the inverse discrete cosine transform of the pixel coefficients to produce pixel display values; a motion vector processor means, coupled to the parsing means and receiving the distributed motion vector blocks, for decoding the motion vector blocks into pixel motion vectors; a motion compensation unit, coupled to the motion vector analyzer and the inverse discrete cosine transform means, for adding the pixel motion vectors and pixel display values; a video output DMA controller, coupled to the motion compensation unit and the memory controller interface, for ordering the pictures in an output order; a video output formatter, coupled to the video output DMA controller and the memory controller interface; and hardware configuration registers, said configuration registers including system configuration information for said configurable parser, said configurable decoding unit, said video output DMA controller, and said video output formatter. - View Dependent Claims (16, 17)
-
-
24. An integrated circuit for decoding coded data in a host system, the host system including a host system memory, a host system processor, a host system memory controller, and a host system bus, the integrated circuit comprising:
-
a memory controller interface, coupled to the host system memory controller by the host system bus; a input/output bus, operatively coupled to the host system memory controller and the memory controller interface; an encoded data DMA controller, coupled to the I/O bus; a motion compensation unit, coupled to the I/O bus; a output data DMA controller, coupled to the I/O bus; an output formatter, coupled to the I/O bus; and data decompression hardware, having a first I/O port operatively coupled to the encoded data DMA controller and a second I/O port coupled to the motion compensation unit, said hardware receiving encoded MPEG video macroblock information at the first I/O port and outputting decoded MPEG video data at the second I/O port, wherein the system memory includes data buffers, wherein data to be decoded is provided in said buffers identified by a plurality of addressees, and wherein said encoded data DMA controller is operatively coupled to said buffers via the memory controller interface.
-
-
25. An integrated circuit for decoding coded data in a host system, the host system including a host system memory, a host system processor, a host system memory controller, and a host system bus, the integrated circuit comprising:
-
a memory controller interface, coupled to the host system memory controller by the host system bus; a input/output bus, operatively coupled to the host system memory controller and the memory controller interface; an encoded data DMA controller, coupled to the I/O bus; a motion compensation unit, coupled to the I/O bus; a output data DMA controller, coupled to the I/O bus; an output formatter, coupled to the I/O bus; and data decompression hardware, having a first I/O port operatively coupled to the encoded data DMA controller and a second I/O port coupled to the motion compensation unit, said hardware receiving encoded MPEG video macroblock information at the first I/O port and outputting decoded MPEG video data at the second I/O port, wherein the encoded data DMA controller includes a FIFO RAM, a FIFO RAM controller, an end of picture detector, and an address generator for generating said addresses. - View Dependent Claims (26, 27)
-
-
28. An integrated circuit for decoding coded data in a host system, the host system including a host system memory, a host system processor, a host system memory controller, and a host system bus, the integrated circuit comprising:
-
a memory controller interface, coupled to the host system memory controller by the host system bus; a input/output bus, operatively coupled to the host system memory controller and the memory controller interface; an encoded data DMA controller, coupled to the I/O bus; a motion compensation unit, coupled to the I/O bus; a output data DMA controller, coupled to the I/O bus; an output formatter, coupled to the I/O bus; data decompression hardware, having a first I/O port operatively coupled to the encoded data DMA controller and a second I/O port coupled to the motion compensation unit, said hardware receiving encoded MPEG video macroblock information at the first I/O port and outputting decoded MPEG video data at the second I/O port, wherein the data decompression hardware includes; a configurable parser, coupled to the system memory, for directing encoded data in pixel data blocks and motion vector blocks; a configurable decoding unit receiving pixel data blocks and performing entropy decoding and inverse quantization on said pixel data blocks; a pixel data block inverse zig-zag scan unit, receiving pixel data blocks from the configurable decoding unit; an inverse discrete cosine transform unit receiving pixel data blocks from the inverse zig-zag scan unit and performing and outputting pixel data blocks having decoded pixel value data; and a motion vector processor, coupled to the parser, receiving the motion vector blocks and generating motion pixel motion data. - View Dependent Claims (29, 30)
-
-
31. An integrated circuit for decoding coded data in a host system, the host system including a host system memory, a host system processor, a host system memory controller, and a host system bus, the integrated circuit comprising:
-
a memory controller interface, coupled to the host system memory controller by the host system bus; a input/output bus, operatively coupled to the host system memory controller and the memory controller interface; an encoded data DMA controller, coupled to the I/O bus; a motion compensation unit, coupled to the I/O bus; a output data DMA controller, coupled to the I/O bus; an output formatter, coupled to the I/O bus; and data decompression hardware, having a first I/O port operatively coupled to the encoded data DMA controller and a second I/O port coupled to the motion compensation unit, said hardware receiving encoded MPEG video macroblock information at the first I/O port and outputting decoded MPEG video data at the second I/O port, wherein the data decompression hardware further includes; a motion compensation unit, coupled to the inverse discrete cosine transform unit and the motion vector processor; a video output DMA controller, coupled to the system memory interface controller and the motion compensation unit; and a video output formatter, coupled to the system memory interface controller and the motion video output DMA controller.
-
-
32. An MPEG decoding system, comprising:
-
a host system including a host system memory, a host system memory controller, a host system processor, and a host system bus, the host system memory being divided into at least a storage area buffer, a first and a second display buffer buffers, a coded data buffer, and a first and second reference buffers; MPEG video data decoding hardware including; means for parsing image data blocks and motion vector blocks from macroblock data; means for constructing motion vector data from coded motion vector blocks; means for performing entropy decoding on coded image data blocks; means for performing inverse quantization of the coded image data blocks; means for taking the inverse discrete cosine transform of the coded image data; a motion compensation means, coupled to the means for taking the inverse discrete cosine transform and the motion vector processor, and operatively coupled to the system memory, for constructing picture data from the image data and motion vector blocks; a video output DMA controller, operatively coupled to the system memory controller and the motion compensation means; a video output formatter, coupled to the system memory and the video output DMA controller; and instruction means, provided in the storage area and executable by the host system processor, for directing encoded image data to the parsing means in a decoding order, for configuring the means for parsing image data blocks, and interacting with the host system memory to store decoded image data, display image data, and configuration data for the decoding hardware, wherein said instruction means includes means for defining, in said system memory, a plurality of buffers including at least data buffers, reference buffers, and display buffers. - View Dependent Claims (33, 36)
-
-
34. An MPEG decoding system, comprising:
-
a host system including a host system memory, a host system memory controller, a host system processor, and a host system bus, the host system memory being divided into at least a storage area buffer, a first and a second display buffer buffers, a coded data buffer, and a first and second reference buffers; MPEG video data decoding hardware including; means for parsing image data blocks and motion vector blocks from macroblock data; means for constructing motion vector data from coded motion vector blocks; means for performing entropy decoding on coded image data blocks; means for performing inverse quantization of the coded image data blocks; means for taking the inverse discrete cosine transform of the coded image data; a motion compensation means, coupled to the means for taking the inverse discrete cosine transform and the motion vector processor, and operatively coupled to the system memory, for constructing picture data from the image data and motion vector blocks; a video output DMA controller, operatively coupled to the system memory controller and the motion compensation means; a video output formatter, coupled to the system memory and the video output DMA controller; and instruction means, provided in the storage area and executable by the host system processor, for directing encoded image data to the parsing means in a decoding order, for configuring the means for parsing image data blocks, and interacting with the host system memory to store decoded image data, display image data, and configuration data for the decoding hardware, system configuration registers wherein said configuration registers include configuration information for said configurable parser, said configurable decoding unit, said video output DMA controller and Video Output Formatter. - View Dependent Claims (35)
-
Specification