Claims
- 1. A decoding system for decoding an incoming encoded data stream, the system comprising:
a memory unit comprising a first memory element adapted to store a data unit according to a specified data structure comprising a header portion comprising control data and a data portion comprising substantive data; a first decoding element adapted to receive a data unit stored in the first memory element and to perform a first decoding function on the data portion of the received data unit, the first decoding element adapted to perform the first decoding function according to at least one parameter stored in the header portion of the received data unit; and a second decoding element adapted to receive a data unit stored in the first memory element and to perform a second decoding function on the data portion of the received data unit, the second decoding element adapted to perform the second decoding function according to at least one parameter stored in the header portion of the received data unit.
- 2. The decoding system of claim 1 wherein the first decoding element is adapted to deposit processed data in the data portion of the first memory element after performing the first decoding function on the data portion of the received data unit, and wherein the second decoding element is adapted to perform the second decoding function on the processed data deposited in the data portion of the first memory element by the first decoding element.
- 3. The decoding system of claim 3 wherein the depositing of the processed data in the data portion of the first memory element by the first decoding element does not affect the data in the header portion of the first memory element.
- 4. The system of claim 1 wherein the incoming data stream comprises a plurality of data units, each data unit comprising a header portion comprising control data and a data portion comprising substantive data, and wherein the first memory element is adapted to store a first data unit from the incoming data stream.
- 5. The system of claim 4 wherein the first decoding element is adapted to receive the first data unit from the first memory element, to perform the first decoding function on the data portion of the first data unit according to at least one parameter stored in the header portion of the first data unit, and to deposit the processed data in the data portion of the first memory element.
- 6. The system of claim 5 wherein the memory unit further comprises a second memory element adapted to store a data unit according to a specified data structure comprising a header portion comprising control data and a data portion comprising substantive data, and wherein the second memory element is adapted to store a second data unit from the incoming data stream.
- 7. The system of claim 6 wherein the second decoding element is adapted to receive the processed data deposited in the data portion of the first memory element by the first decoding element, to perform the second decoding function on the received data according to at least one parameter stored in the header portion of the first data unit, and to deposit the processed data in the data portion of the first memory element.
- 8. The system of claim 7 wherein the first decoding element is adapted to perform the first decoding function on the data portion of the second data unit according to at least one parameter stored in the header portion of the second data unit while the second decoding element is performing the second decoding function on the data stored in the data portion of the first memory element, and to deposit the processed data in the data portion of the first memory element.
- 9. A method of decoding an encoded data unit, comprising:
(a) storing the data unit in a memory element; (b) performing a first decoding function on the data unit stored in the memory element to produce a first set of processed data; (c) storing the first set of processed data in the memory element; and (d) performing a second decoding function on the first set of processed data stored in the memory element to produce a second set of processed data. (e) storing the second set of processed data in the memory element.
- 10. The method of claim 9 further comprising:
(f) performing a third decoding function on the second set of processed data stored in the memory element to produce a third set of processed data.
- 11. The method of claim 10 further comprising:
(g) storing the third set of processed data in the memory element.
- 12. The method of claim 9 wherein the coded data unit comprises a header portion comprising control data and a data portion comprising substantive data and wherein performing step (b) comprises performing the first decoding function on the data portion of the data unit to produce a first set of processed data, storing step (c) comprises storing the first set of processed data in the memory element along with the header data of the data unit and storing step (e) comprises storing the second set of processed data in the memory element along with the header data of the data unit.
- 13. The method of claim 12 wherein storing step (c) comprises replacing the data portion of the data unit stored in the memory element with the first set of processed data and storing step (e) comprises replacing the first set of processed data stored in the memory element with the second set of processed data.
- 14. The method of claim 12 wherein performing step (b) comprises performing the first decoding function on the data portion of the data unit according to at least one parameter stored in the header portion of the data unit to produce a first set of processed data and performing step (d) comprises performing the second decoding function on the first set of processed data stored in the memory element according to at least one parameter stored in the header portion of the data unit to produce a second set of processed data.
- 15. A method of decoding an encoded digital data stream with a decoding system, the method comprising:
(a) storing a first data unit of the data stream in a first memory element; (b) executing a first stage comprising:
(i) performing a first decoding function on the first data unit stored in the first memory element and storing the resulting processed data in the first memory element; and (ii) storing a second data unit of the data stream in a second memory element; and (c) executing a second stage comprising:
(i) performing the first decoding function on the second data unit stored in the second memory element and storing the resulting processed data in the second memory element; (ii) performing a second decoding function on the processed data stored in the first memory element and storing the resulting processed data in the first memory element; and (iii) storing a third data unit of the data stream in a third memory element.
- 16. The method of claim 15 wherein n decoding functions are performed on the data stream and wherein the decoding system comprises n+1 memory elements and wherein the method further comprises sequentially executing additional stages, wherein in each stage, each decoding function is performed on data stored in one of the memory elements and the resulting processed data is stored in the same memory element.
- 17. The method of claim 16 wherein the decoding functions are performed in a pipeline scheme, wherein each decoding function is performed on data that was processed by a preceding decoding function in the pipeline in the previous stage.
- 18. The method of claim 15 further comprising a step (d) of:
(d) executing a third stage comprising:
(i) performing the first decoding function on the third data unit stored in the third memory element and storing the resulting processed data in the third memory element; (ii) performing the second decoding function on the processed data stored in the second memory element and storing the resulting processed data in the second memory element; (iii) performing a third decoding function on the processed data stored in the first memory element and storing the resulting processed data in the first memory element; and (iv) storing a fourth data unit of the data stream in a fourth memory element.
- 19. The method of claim 15 wherein each data unit comprises a header portion comprising control data and a data portion comprising substantive data, wherein performing step (b)(i) comprises performing the first decoding function on the data portion of the first data unit stored in the first memory element and storing the resulting processed data in the first memory element along with the header data of the first data unit and performing step (c)(i) comprises performing the first decoding function on the data portion of the second data unit stored in the second memory element and storing the resulting processed data in the second memory element along with the header data of the first data unit.
- 20. The method of claim 19 wherein performing step (b)(i) comprises performing the first decoding function on the data portion of the first data unit stored in the first memory element and replacing the data portion of the first data unit stored in the first memory element with the resulting processed data, wherein performing step (c)(i) comprises performing the first decoding function on the data portion of the second data unit stored in the second memory element and replacing the data portion of the second data unit stored in the second memory element with the resulting processed data, and wherein performing step (c)(ii) comprises performing the second decoding function on the processed data stored in the first memory element and replacing the processed data stored in the first memory element with the resulting processed data.
- 21. The method of claim 19 wherein performing step (b)(i) comprises performing the first decoding function on the data portion of the first data unit stored in the first memory element according to at least one parameter stored in the header portion of the first data unit, performing step (c)(i) comprises performing the first decoding function on the data portion of the second data unit stored in the second memory element according to at least one parameter stored in the header portion of the second data unit, and performing step (c)(ii) comprises performing the second decoding function on the processed data stored in the first memory element according to at least one parameter stored in the header portion of the first data unit.
INCORPORATION BY REFERENCE OF RELATED APPLICATIONS
[0001] The following U.S. Patent Applications are related to the present application and are hereby specifically incorporated by reference: patent application Ser. No. ______, entitled “VIDEO DECODING SYSTEM SUPPORTING MULTIPLE STANDARDS” (Attorney Ref No. 13301US01); patent application Ser. No. ______, entitled “METHOD OF OPERATING A VIDEO DECODING SYSTEM” (Attorney Ref. No. 13305US01); patent application Ser. No. ______, entitled “METHOD OF COMMUNICATING BETWEEN MODULES IN A DECODING SYSTEM” (Attorney Ref. No. 13304US01); patent application Ser. No. ______, entitled “INVERSE DISCRETE COSINE TRANSFORM SUPPORTING MULTIPLE DECODING PROCESSES” (Attorney Ref. No. 13303US01); and patent application Ser. No. ______, entitled “RISC PROCESSOR SUPPORTING ONE OR MORE UNINTERRUPTIBLE CO-PROCESSORS” (Attorney Ref. No. 13306US01); all filed on even date herewith. The following Provisional U.S. Patent Applications are also related to the present application and are hereby specifically incorporated by reference: Provisional Patent Application No. ______, entitled “VIDEO DECODING SYSTEM HAVING A PROGRAMMABLE VARIABLE LENGTH DECODER” (Attorney Ref. No. 13300US01); Provisional Patent Application No. ______, entitled “PROGRAMMABLE VARIABLE LENGTH DECODER” (Attorney Ref. No. 13391US01); Provisional Patent Application No. ______, entitled “DMA ENGINE HAVING MULTI-LEVEL COMMAND STRUCTURE” (Attorney Ref. No. 13390US01); and Provisional Patent Application No. ______, entitled “INVERSE QUANTIZER SUPPORTING MULTIPLE DECODING PROCESSES” (Attorney Ref. No. 13387US01); all filed on even date herewith.