Claims
- 1. A decoding system comprising:
a core decoder processor adapted to perform decoding functions on a coded data stream and having a co-processor interface; and a variable-length decoding accelerator adapted to perform variable-length decoding operations on variable-length code in the data stream and coupled to the co-processor interface of the core decoder processor.
- 2. The system of claim 1 wherein the core decoder processor is adapted to issue commands to the variable-length decoding accelerator and wherein the variable-length decoding accelerator is adapted to provide a command status signal to the core decoder processor, wherein the command status signal indicates whether or not a command is completed.
- 3. The system of claim 2 wherein the variable-length decoding accelerator comprises a command status register that indicates whether or not a command is completed and wherein the core decoder processor is adapted to poll the command status register to determine if the command is completed.
- 4. The system of claim 3 wherein the core decoder processor does not issue a new command to the variable-length decoder unless the command status register indicates that a previous command is completed.
- 5. The system of claim 2 wherein the core decoder processor is adapted to issue a register-read instruction to the variable-length decoding accelerator that causes the contents of a register in the variable-length decoding accelerator to be provided to the core decoder processor, wherein if the command status signal indicates that a previous command is not yet completed when a register-read instruction is issued by the core decoder processor, the contents of the register in the variable-length decoder are not provided to the core decoder processor until the command status signal indicates that the previous command is completed.
- 6. The system of claim 5 wherein the register-read instruction includes a wait bit, wherein if the wait bit is set and the command status signal indicates that a previous command is not yet completed when a register-read instruction is issued by the core decoder processor, the contents of the register in the variable-length decoder are not provided to the core decoder processor until the command status signal indicates that the previous command is completed, but wherein if the wait bit is not set and a register-read instruction is issued by the core decoder processor, the contents of the register in the variable-length decoder are provided to the core decoder processor regardless of the value of the command status signal.
- 7. The system of claim 1 wherein the core decoder processor is adapted to perform decoding functions on a coded media data stream and the variable-length decoding accelerator is adapted to perform variable-length decoding operations on variable-length code in the media data stream.
- 8. The system of claim 1 wherein the core decoder processor is adapted to perform decoding functions on a coded video data stream and the variable-length decoding accelerator is adapted to perform variable-length decoding operations on variable-length code in the video data stream.
- 9. A method of controlling a decoding accelerator, comprising:
(a) providing a command to the accelerator via a posted write operation; and (b) polling the accelerator to determine whether an operation corresponding to the command has been performed.
- 10. The method of claim 9 wherein the decoding accelerator is coupled to a core decoder processor adapted to decode a data stream and wherein the decoding accelerator is adapted to assist the core decoder processor with a decoding function, wherein providing step (a) comprises providing, with the core decoder processor, a command to the accelerator via a posted write operation, and polling step (b) comprises polling the accelerator with the core decoder processor to determine whether the operation corresponding to the command has been performed.
- 11. The method of claim 10 wherein the command provided to the accelerator by the core decoder processor instructs the accelerator to perform the decoding function and wherein polling step (b) comprises polling the accelerator with the core decoder processor to determine whether the decoding function has been completed.
- 12. The method of claim 10 further comprising a step (c), performed after providing step (a) and prior to polling step (b), of performing a second decoding function with the core decoder processor.
- 13. The method of claim 10 wherein providing step (a) comprises:
(a)(i) providing the command to the accelerator; (a)(ii) after providing the command to the accelerator, performing a second decoding function with the core decoder processor; and (a)(iii) after performing the second decoding function with the core decoder processor, writing the command to the accelerator.
- 14. The method of claim 13 wherein step (a)(iii) is performed a plurality of core decoder clock cycles after step (a)(i) is performed.
- 15. The method of claim 10 further comprising a step (c), after step (b), of:
(c) after the core decoder processor determines, via its polling of the accelerator, that the operation corresponding to the command has been performed, providing, with the core decoder processor, a second command to the accelerator via a posted write operation.
- 16. The method of claim 10 wherein first and second decoding accelerators are coupled to the core decoder processor, the first and second accelerators adapted to assist the core decoder processor with first and second decoding functions respectively, wherein providing step (a) comprises providing, with the core decoder processor, first and second commands to the first and second accelerators respectively via posted write operations, and wherein polling step (b) comprises polling the first and second accelerators with the core decoder processor to determine whether first and second operations, corresponding to the first and second commands respectively, have been performed by the first and second accelerators respectively.
- 17. The method of claim 16 further comprising a step (c), after step (b), of:
(c) after the core decoder processor determines, via its polling of the first and second accelerators, that the first and second operations have been performed by the first and second accelerators, providing, with the core decoder processor, third and fourth commands to the first and second accelerators respectively, via posted write operations.
- 18. The method of claim 17 wherein the second decoding function, performed by the second accelerator, depends on a product previously produced by the first decoding function, performed by the first accelerator.
- 19. A decoding system comprising:
a core decoder processor adapted to perform decoding functions on a coded data stream and having a co-processor interface, the co-processor interface including a co-processor status register adapted to receive a status of a co-processor; and a first decoding accelerator adapted to assist the core decoder processor with a first decoding function and coupled to the core decoder processor via the co-processor interface, wherein the first decoding accelerator is adapted to provide status data indicative of a status of the first accelerator to the co-processor status register; and a second decoding accelerator adapted to assist the core decoder processor with a second decoding function, wherein the second decoding accelerator is adapted to provide status data indicative of a status of the second accelerator to the co-processor status register.
- 20. The system of claim 19 wherein the core decoder processor is adapted to issue commands to the first and second decoding accelerators and wherein the first and second decoding accelerators are adapted to provide status data indicative of whether a command is completed to the co-processor status register.
- 21. The system of claim 19 further comprising:
a third decoding accelerator adapted to assist the core decoder processor with a third decoding function, wherein the third decoding accelerator is adapted to provide status data indicative of a status of the third accelerator to the co-processor status register.
- 22. The system of claim 19 wherein each of the first and second decoding accelerators are assigned a set of bit positions in the co-processor status register.
- 23. The system of claim 22 further comprising:
a data bus coupled to the co-processor interface and to the first and second decoding accelerators, wherein each of the first and second accelerators are adapted to provide status data to the bit positions of the data bus that correspond to the bit positions assigned each accelerator in the co-processor status register, and wherein the co-processor interface is adapted to read the contents of the data bus into the co-processor status register.
- 24. The system of claim 19 wherein the first decoding accelerator is a variable-length decoding accelerator adapted to perform variable-length decoding operations on variable-length code in the data stream.
- 25. The system of claim 19 wherein the second decoding accelerator comprises one of an inverse quantizer, an inverse transform module, a pixel filter, a motion compensation module and a deblocking filter.
- 26. The system of claim 26 wherein the second decoding accelerator is coupled to the core decoder processor via an interface other than the co-processor interface.
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 “METHOD OF OPERATING A VIDEO DECODING SYSTEM” (Attorney Ref. No. 13305US01); patent application Ser. No. ______, entitled “VIDEO DECODING SYSTEM SUPPORTING MULTIPLE STANDARDS” (Attorney Ref. No. 13301US01); patent application Ser. No. ______, entitled “MEMORY SYSTEM FOR VIDEO DECODING SYSTEM” (Attorney Ref. No. 13388US01); 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.