MPEG decoding system adjusting the presentation in a predetermined manner based on the actual and requested decoding time
First Claim
1. A system for decoding a data stream, said data stream comprising an encoded data unit, a header corresponding to said encoded data unit, and a time stamp in said header for indicating a requested decoding time for said encoded data unit, comprising:
- a header memory;
a data memory;
a list memory;
a parser adapted to parse said data stream, store said header in the header memory, store said encoded data unit in the data memory beginning at a starting address and capture said time stamp;
a decoder adapted to read and decode said encoded data unit from the data memory at an actual decoding time to produce a decoded data unit; and
a storage unit adapted to store the time stamp in a list entry in said list memory, said storage unit being responsive to said decoder to access, while said encoded data unit is being decoded by said decoder, said list entry using said starting address to obtain said time stamp;
wherein the relationship between said requested decoding time and said actual decoding time affects subsequent presentation of said decoded data unit in a predetermined manner.
3 Assignments
0 Petitions
Accused Products
Abstract
A Motion Picture Experts Group (MPEG) multiplexed data bitstream includes encoded video and audio data units, which are prefixed with headers including Presentation Time Stamps (PTS) indicating desired presentation times for the respective data units. The data units are decoded, and presented at a fixed time after decoding, such that the fixed time can be subtracted from the PTS to provide a desired decoding time. The bitstream is parsed, the video and audio headers are stored in video and audio header memories, and the associated video and audio data units are stored in video and audio channel memories respectively. A first interrupt is generated each time a header is stored, and a host microcontroller responds by storing the PTS from the header and the starting address of the corresponding data unit in the channel memory as an entry in a list. A second interrupt is generated each time a data unit is decoded, and the host microcontroller responds by accessing the list using the starting address of the data unit to obtain the corresponding PTS, and thereby the desired decoding time. Decoding and presentation are synchronized by comparing the desired decoding time with a system clock time. If the desired decoding time is later than the system clock time by more than one presentation (frame) time period for the data unit, presentation of the data unit is skipped. If the desired decoding time is earlier than the system clock time by more than the presentation time period, presentation of the data unit is repeated.
265 Citations
34 Claims
-
1. A system for decoding a data stream, said data stream comprising an encoded data unit, a header corresponding to said encoded data unit, and a time stamp in said header for indicating a requested decoding time for said encoded data unit, comprising:
-
a header memory; a data memory; a list memory; a parser adapted to parse said data stream, store said header in the header memory, store said encoded data unit in the data memory beginning at a starting address and capture said time stamp; a decoder adapted to read and decode said encoded data unit from the data memory at an actual decoding time to produce a decoded data unit; and a storage unit adapted to store the time stamp in a list entry in said list memory, said storage unit being responsive to said decoder to access, while said encoded data unit is being decoded by said decoder, said list entry using said starting address to obtain said time stamp; wherein the relationship between said requested decoding time and said actual decoding time affects subsequent presentation of said decoded data unit in a predetermined manner. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A decoder for decoding a data stream, said data stream comprising an encoded data unit, and a header corresponding to said encoded data unit, said header including a time stamp indicating a requested decoding time for said encoded data unit, comprising:
-
a header memory adapted to store said header; a data memory adapted to store said encoded data unit; a list memory; a parser which parses said data stream, stores said header in said header memory, stores said encoded data unit in said data memory at a starting address, appends said starting address to said header stored in said header memory, and generates a first interrupt; a microcontroller which responds to said first interrupt by extracting said time stamp and said starting address from said header, and storing said time stamp and said starting address as a list entry in said list memory; a decoder which reads and decodes said encoded data unit from said data memory to produce a decoded data unit at an actual decoding time, and generates a second interrupt prior to decoding said encoded data unit; said microcontroller responding to said second interrupt by accessing said list entry using said starting address to obtain said time stamp; and said actual decoding time and said time stamp being used to synchronize subsequent presentation of said decoded data unit. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27)
-
-
28. A method of decoding a data stream, the data stream comprising an encoded data unit, a header corresponding to said encoded data unit, and a time stamp included in said header for indicating a requested decoding time for said encoded data unit, the method comprising the steps of:
-
(a) parsing said data stream; (b) storing said header; (c) storing said encoded data unit beginning at a starting address; (d) capturing said time stamp; (e) storing said time stamp and said starting address as a list entry; (f) reading and decoding said encoded data unit at an actual decoding time to produce a decoded data unit; and (g) accessing said list entry using said starting address to obtain said time stamp; wherein the relationship between said requested decoding time and said actual decoding time effects subsequent presentation of said decoding data unit in a predetermined manner. - View Dependent Claims (29, 30, 31, 32)
-
-
33. A decoder for decoding a data stream, said data stream comprising an encoded data unit, and a header corresponding to said encoded data unit, said header including a time stamp indicating a requested decoding time for said encoded data unit, comprising:
-
a header memory adapted to store said header; a data memory adapted to store said encoded data unit; a list memory; a parser which parses said data stream, stores said header in said header memory, stores said encoded data unit in said data memory at a starting address, appends said starting address to said header stored in said header memory, and generates a first interrupt; a microcontroller which responds to said first interrupt by extracting said time stamp and said starting address from said header, and stores said time stamp and said starting address as a list entry in said list memory; a decoder which reads and decodes said encoded data unit from said data memory to produce a decoded data unit, and generates a second interrupt prior to decoding said encoded data unit; a system timer which maintains a system clock time; and said microcontroller responding to said second interrupt, while said decoder continues decoding said encoded data unit, by accessing said list entry using said starting address to obtain said time stamp, by capturing said system clock time, and by comparing said time stamp with said captured system clock time to synchronize the presentation of said decoded data unit.
-
-
34. A decoder for decoding a data stream, said data stream comprising an encoded data unit, and a header corresponding to said encoded data unit, said header including a time stamp indicating a requested decoding time for said encoded data unit, comprising:
-
a header memory adapted to store said header; a data memory adapted to store said encoded data unit; a list memory; a parser which parses said data stream, stores said header in said header memory, stores said encoded data unit in said data memory at a starting address, appends said starting address to said header stored in said header memory, and generates a first interrupt; a microcontroller which responds to said first interrupt by extracting said time stamp and said starting address from said header, and stores said time stamp and said starting address as a list entry in said list memory; a decoder which reads and decodes said encoded data unit from said data memory to produce a decoded data unit, and generates a second interrupt prior to decoding said encoded data unit; a system timer which maintains a system clock time; said microcontroller responding to said second interrupt, while said decoder continues decoding said encoded data unit, by accessing said list entry using said starting address to obtain said time stamp, and by capturing said system clock time; and a comparator which compares said time stamp with said captured system clock time to synchronize subsequent presentation of said decoded data unit.
-
Specification