Claims
- 1. A method for processing a plurality of digital streams, wherein each digital stream includes packets sequenced for continuous presentation, said method comprising:
receiving packets for each of said plurality of digital streams; associating each of said packets with a respective stream of said plurality of digital streams; and determining that a subset of packets of one of said plurality of digital streams is to be processed before other subsets of packets.
- 2. The method of claim 1 further comprising storing said received packets in a buffer.
- 3. The method of claim 2 further comprising
selecting said subset of packets for processing; and retrieving said subset of packets from said buffer.
- 4. The method of claim 3 wherein said subset of packets is retrieved in an order received.
- 5. The method of claim 1 further comprises assigning a priority to each of said plurality of digital streams.
- 6. The method of claim 5 further comprises determining said subset of packets to be processed based on said one of said plurality of digital streams being associated with a highest priority.
- 7. The method of claim 5 wherein said priority is representative of a deadline.
- 8. The method of claim 7 wherein said deadline is derived from a Decoding Time Stamp extracted from a header of an associated access unit.
- 9. The method of claim 1 wherein said subset of packets are sequenced, said subset of sequenced packets constituting an access unit.
- 10. The method of claim 9 wherein an access unit is a representation of a video frame.
- 11. The method of claim 9 wherein an access unit is a representation of an audio frame.
- 12 The method of claim 1 further comprising determining another subset of said one of said plurality of digital streams is associated with a new access unit.
- 13. The method of claim 12 wherein determining said another subset is associated with said new access unit further comprises adjusting a priority associated with said one of said plurality of digital streams.
- 14. The method of claim 13 wherein adjusting said priority occurs in response to a packet of said another subset being received as a first unprocessed packet.
- 15. The method of claim 1 further comprising maintaining a state associated with each of said plurality of digital streams.
- 16. The method of claim 15 wherein said state includes parameters for said processing said subset.
- 17. The method of claim 15 wherein said state includes pixel data representing at least one frame of video.
- 18. The method of claim 15 further comprising allocating memory for storing said state.
- 19. The method of claim 18 wherein allocating memory includes recursively subdividing a memory into quadrants to form allocation units, where one of said allocation units is a quadrant that cannot be further subdivided without at least one dimension becoming smaller than the corresponding dimension of a video frame.
- 20. The method of claim 18 wherein a memory is allocated in pages, where each of said pages is a contiguous memory unit of a fixed size.
- 21. The method of claim 20 where unallocated pages are managed using a free list configured to manage unused pages of memory.
- 22. Apparatus for processing a plurality of digital streams, wherein each digital stream includes packets sequenced for continuous presentation, said apparatus comprising:
means for receiving packets for each of said plurality of digital streams; means for associating each of said packets with a respective stream of said plurality of digital streams; and means for determining that a subset of packets of one of said plurality of digital streams is to be processed before other subsets of packets of other digital streams.
- 23. The apparatus of claim 22 further comprising a buffer for storing said received packets.
- 24. The apparatus of claim 23 further comprising
means for selecting said subset of packets for processing; and means for retrieving said subset of packets from said buffer.
- 25. The apparatus of claim 22 further comprises means for assigning a priority to each of said plurality of digital streams.
- 26. The apparatus of claim 25 further comprises means for determining said subset of packets to be processed based on said one of said plurality of digital streams being associated with a highest priority.
- 27. The apparatus of claim 25 wherein said priority is representative of a deadline.
- 28. The apparatus of claim 26 further comprises a means for extracting a Decoding Time Stamp from a header of an associated access unit, wherein said Decoding Time Stamp is used to derive said deadline.
- 29 The apparatus of claim 22 further comprising means for determining another subset of said one of said plurality of digital streams is associated with a new access unit.
- 30. The apparatus of claim 29 wherein said means for determining said another subset is associated with said new access unit further comprises means for adjusting a priority associated with said one of said plurality of digital streams.
- 31. The apparatus of claim 30 further comprising means for adjusting said priority is in response to a packet of said another subset being received as a first unprocessed packet.
- 32. The apparatus of claim 22 further comprising means for maintaining a state associated with each of said plurality of digital streams.
- 33. The apparatus of claim 32 wherein said means for maintaining a state includes a memory for storing processing parameters.
- 34. The apparatus of claim 32 wherein said means for maintaining said state includes memory for storing pixel data representing at least one frame of video.
- 35. The apparatus of claim 34 further comprising means for recursively subdividing said memory into quadrants.
- 36. The apparatus of claim 34 further comprising means for partitioning said memory into pages, where each of said pages is a contiguous memory unit of a fixed size.
- 37. The apparatus of claim 36 further comprising a free list for managing unused pages of memory.
- 38. The apparatus of claim 36 further comprising a translation look-aside buffer for mapping virtual addresses to page addresses.
- 39. The apparatus of claim 36 further comprising means for retrieving pages from memory and merging data into blocks of a requested size.
- 40. The apparatus of claim 39 further comprising a cache for storing one or more pages that have been retrieved from memory.
- 41. A method of processing a plurality of streams of data, the method comprising:
identifying a single stream of said plurality of streams; converting a subset of data corresponding to said identified single stream from a first format to a second format; and classifying a next subset of data for said single identified stream.
- 42. The method of claim 41 further comprising maintaining a state associated with each of said plurality of streams.
- 43. The method of claim 42 wherein said state includes data that represents one or more of video, audio and non-A/V data.
- 44. A method of scheduling a plurality of streams of data, the method comprising:
classifying a first subset of data associated with a first stream to distinguish said subset of data from a second subset of data associated with a second stream; and selecting only said first subset of data for conversion from a first format to a second format during a first interval of time.
- 45. The method of claim 44, further comprising converting from said first format to said second format during which no other of said plurality of streams are converted.
- 46. The method of claim 45, further comprising maintaining a state associated with said second subset during said first interval, wherein said state includes data that represents one or more of video, audio and non-A/V data.
- 47. The method of claim 46, wherein said data represents video and includes pixel data representing at least one frame of video.
- 48. The method of claim 44, wherein classifying said first subset of data comprises:
prioritizing said first and said second subsets of data; and tagging said first and said second subsets of data with a first priority and a second priority, respectively.
- 49. The method of claim 48, wherein said first priority and said second priority represent respective priorities for a first stream and a second stream.
- 50. The method of claim 48, wherein said first priority is associated with a first duration of time to a first deadline and said second priority is associated with a second duration of time to a second deadline, where said first duration is shorter than said second duration.
- 51. An apparatus for converting each stream of a plurality streams, the method comprising:
a classifier module configured to assign a tag indicating a priority to data of each packet for each of said plurality of streams; a buffer associated with each of said plurality of streams and configured to store a subset of tags; and a packet scheduler module configured to select only one of said plurality of streams for conversion from a first format to a second format during a first interval of time.
- 52. The apparatus of claim 51, wherein a first packet of a frame is lower in priority than a second packet of said frame of one of said plurality of streams.
- 53. The apparatus of claim 51, further comprising a priority queue module configured to store the relative priorities associated with one or more subsets of tags.
- 54. The apparatus of claim 53, wherein said priority queue module is configured to provide a range of priorities to said packet schedule module for scheduling the conversion of data of said packet from said first format to said second format.
REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. Provisional Application No. 60/429,819, entitled “Method and Apparatus for Time-Multiplexed Processing of Multiple Digital Video Programs,” filed Nov. 27, 2002, the contents of which are hereby incorporated by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60429819 |
Nov 2002 |
US |