System and method for decoding digital video data. The decoding system employs hardware accelerators that assist a core processor in performing selected decoding tasks. The hardware accelerators are configurable to support a plurality of existing and future encoding/decoding formats. The accelerators are configurable to support substantially any existing or future encoding/decoding formats that fall into the general class of DCT-based, entropy decoded, block-motion-compensated compression algorithms. The hardware accelerators illustratively comprise a programmable entropy decoder, an inverse quantization module, a inverse discrete cosine transform module, a pixel filter, a motion compensation module and a de-blocking filter. The hardware accelerators function in a decoding pipeline wherein at any given stage in the pipeline, while a given function is being performed on a given macroblock, the next macroblock in the data stream is being worked on by the previous function in the pipeline.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A method of decoding a digital video data stream in a digital video decoding system, comprising: (a) configuring an inverse quantization accelerator and an inverse transform accelerator to respectively perform an inverse quantization function and an inverse transform function on a first set of data elements of the data stream, the first set of data elements being of a first media format; (b) performing inverse quantization on an i th data element of the first set of data elements; (c) performing an inverse transform operation on a product of the inverse quantization of the i th data element, while performing inverse quantization on an i+1 st data element in the first set of data elements; (d) configuring the inverse quantization accelerator and an inverse transform accelerator to respectively perform an inverse quantization function and an inverse transform function on a second set of data elements of the data stream, the second set of data elements being of a second media format; (e) performing inverse quantization on a j th data element of the second set of data elements with the inverse quantization accelerator; and (f) performing an inverse transform operation on a product of the inverse quantization of the j th data element, while performing inverse quantization on a j+1 st data element of the second set of data elements.
2. The method of claim 1 wherein performing step (f) further comprises performing pixel filtering on the j th data element while performing the inverse transform operation on the product of the inverse quantization of the j th data element.
3. The method of claim 2 further comprising: (g) performing motion compensation on the j th data element using a product of the inverse transform operation performed on the j th data element and a product of the pixel filtering performed on the j th data element, while performing an inverse transform operation on a product of the inverse quantization of the j+1 st data element and while performing inverse quantization on a j+2 nd data element of the second set of data elements.
4. The method of claim 1 wherein the data elements represent macroblocks of a digital video image.
5. A method of decoding a digital video data stream in a digital video decoding system, comprising: (a) configuring an inverse transform accelerator, a pixel filtering accelerator, and a motion compensation accelerator to respectively perform an inverse transform function, a pixel filtering function, and a motion compensation function on a first set of data elements of the data stream, the first set of data elements being of a first media format; (b) concurrently performing an inverse transform operation and pixel filtering on an i th data element of the first set of data elements; (c) performing motion compensation on the i th data element using a product of the inverse transform operation performed on the i th data element and a product of the pixel filtering performed on the i th data element, while concurrently performing an inverse transform operation and pixel filtering on an i+1 st data element of the first set of data elements; (d) configuring the inverse transform accelerator, the pixel filtering accelerator, and the motion compensation accelerator to respectively perform an inverse transform function, a pixel filtering function, and a motion compensation function on a second set of data elements of the data stream, the second set of data elements being of a second media format; (e) concurrently performing an inverse transform operation and pixel filtering on a j th data element of the first set of data elements; and (f) performing motion compensation on the th data element using a product of the inverse transform operation performed on the j th data element and a product of the pixel filtering performed on the j th data element, while concurrently performing an inverse transform operation and pixel filtering on a j+1 st data element of the first set of data elements.
6. The method of claim 5 wherein the data elements represent macroblocks of a digital video image.
7. A digital video decoding system, comprising: an inverse quantization accelerator and an inverse transform accelerator configured to respectively perform an inverse quantization function and an inverse transform function on a first set of data elements of the data stream, the first set of data elements being of a first media format; the inverse quantization accelerator performing inverse quantization on an i th data element of the first set of data elements; the inverse transform accelerator performing inverse transform operation on a product of the inverse quantization of the i th data element, while performing inverse quantization on an i+1 st data element in the first set of data elements; wherein the inverse quantization accelerator and the inverse transform accelerator are configured to respectively perform an inverse quantization function and an inverse transform function on a second set of data elements of the data stream, the second set of data elements being of a second media format; the inverse quantization accelerator performing inverse quantization on a j th data element of the second set of data elements with the inverse quantization accelerator; and the inverse transform accelerator performing an inverse transform operation on a product of the inverse quantization of the j th data element, while performing inverse quantization on a j+1 st data element of the second set of data elements.
8. The digital video decoding system of claim 7 , wherein the inverse transform accelerator performs the inverse transform operation on the product of the inverse quantization of the j th data element by performing pixel filtering on the j th data element while performing the inverse transform operation on the product of the inverse quantization of the j th data element.
9. The digital video decoding system of claim 8 , further comprising a motion compensation module configured to perform motion compensation on the j th data element using a product of the inverse transform operation performed on the j th data element and a product of the pixel filtering performed on the j th data element, while performing an inverse transform operation on a product of the inverse quantization of the j+1 st data element and while performing inverse quantization on a j+2 nd data element of the second set of data elements.
10. The digital video decoding system of claim 7 wherein the data elements represent macroblocks of a digital video image.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
February 1, 2011
July 24, 2012
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.