Patent US2413070A successfully refreshed from Google Patents.
Patent US2222088A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5559999A Expired / Lapsed US ⏱️ 0.0 years remaining

MPEG decoding system including tag list for associating presentation time stamps with encoded data units

Assignee: Avago Technologies International Sales Pte Ltd
•
Filing: 1994-09-09
•
Granted: 1996-09-24
•
Expires: 2014-09-09
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

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.

Inventors

  • 👤 Greg Maturi
  • 👤 David R. Auld
  • 👤 Darren Neuman

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-24 19:32
CPC Classifications
G; G06; G06T; G06T9/00; G06T9/007; H; H04; H04N; H04N21/00; H04N21/40; H04N21/43; H04N21/4302; H04N21/4305; H04N21/4307; H04N21/43072; H04N21/44; H04N21/44004

Claims Analysis

Total Claims: 32
Claim 1
Independent Claim 207 words
A decoding system for 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 system comprising: a header memory; a data memory; a list memory; parsing means for parsing said data stream, storing said header in the header memory, storing said encoded data unit in the data memory beginning at a starting address and capturing said time stamp; computing means responsive to said parsing by the parsing means for storing said time stamp and said starting address as a list entry in said list memory; and decoding means for reading and decoding said encoded data unit from the data memory at an actual decoding time which can differ from said requested decoding time to produce a decoded data unit; the computing means being further responsive to said reading and decoding by the decoding means for accessing said list entry in the list memory using said starting address to obtain said time stamp; wherein the relationship between said requested decoding time and said actual decoding time can be utilized to synchronize subsequent presentation of said decoded data unit.
Claim 2
Dependent Claim 207 words
A decoding system for 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 system comprising: a header memory; a data memory; a list memory; parsing means for parsing said data stream, storing said header in the header memory, storing said encoded data unit in the data memory beginning at a starting address and capturing said time stamp; computing means responsive to said parsing by the parsing means for storing said time stamp and said starting address as a list entry in said list memory; and decoding means for reading and decoding said encoded data unit from the data memory at an actual decoding time which can differ from said requested decoding time to produce a decoded data unit; the computing means being further responsive to said reading and decoding by the decoding means for accessing said list entry in the list memory using said starting address to obtain said time stamp; wherein the relationship between said requested decoding time and said actual decoding time can be utilized to synchronize subsequent presentation of said decoded data unit.
Claim 3
Dependent Claim 58 words
A system as in claim 1, further comprising: system timer means for maintaining a system clock time; and comparator means for comparing said time stamp with a current value of said system clock time which constitutes said actual decoding time from the system timer means when the decoder means begins to read and decode said encoded data unit.
Claim 4
Dependent Claim 43 words
A system as in claim 1, in which: the data memory comprises a circular buffer; and the parsing means appends a value indicating a number of times the circular buffer has rolled over to the starting address for storing in the list memory.
Claim 5
Dependent Claim 34 words
A system as in claim 3, in which: said starting address is a binary number; and the parsing means appends said value to said binary number as a predetermined number of most significant bits.
Claim 6
Dependent Claim 75 words
A system as in claim 1, in which: said data stream further comprises a system time stamp; and the system further comprises: system timer means for maintaining a system clock time; comparator means for comparing said system time stamp to a current value of said system clock time; and synchronization means for adjusting the system timer means such that said current value of said system clock time becomes substantially equal to said system time stamp.
Claim 7
Dependent Claim 33 words
A system as in claim 5, in which the synchronization means adjusts the system timer means by resetting said system clock time to a value that is based on said system time stamp.
Claim 8
Dependent Claim 60 words
A system as in claim 5, in which: the system timer means comprises: a clock pulse generator; and a counter that is clocked by the clock pulse generator such that said system clock time is constituted by a count of the counter; and the synchronization means adjusts the system timer means by altering a frequency of the clock pulse generator.
Claim 9
Dependent Claim 97 words
A system as in claim 1, in which: the parsing means generates a first interrupt upon storing said header in said header memory; the computing means stores said time stamp and said starting address as a list entry in said list memory in response to said first interrupt; the decoding means generates a second interrupt upon beginning of reading and decoding said encoded data unit at said actual decoding time; and the computing means accesses said list entry in the list memory using said starting address to obtain said time stamp in response to said second interrupt.
Claim 10
Dependent Claim 287 words
A decoding system for 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 decoding time for said encoded data unit; the system comprising: a header memory; a data memory; a list memory; parsing means for parsing said data stream, storing said header in the header memory, storing said encoded data unit in the data memory beginning at a starting address and capturing said time stamp; computing means responsive to said .parsing by the parsing means for storing said time stamp and said starting address as a list entry in said list memory; decoding means for reading and decoding said encoded data unit from the data memory to produce a decoded data unit; the computing means being further responsive to said reading and decoding by the decoding means for accessing said list entry in the list memory using said starting address to obtain said time stamp; system timer means for maintaining a system clock time; comparator means for comparing said time stamp with a current value of said system clock time from the system timer means when the decoder means begins to read and decode said encoded data unit; presentation means for presenting said decoded data unit; and synchronization means for controlling the presentation means to repeat presentation of said decoded data unit if said time stamp exceeds said current value of said system clock time by more than a first predetermined value; and controlling the presentation means to skip presentation of said decoded data unit if said current value of said system clock time exceeds said time stamp by more than a second predetermined value.
Claim 11
Dependent Claim 287 words
A decoding system for 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 decoding time for said encoded data unit; the system comprising: a header memory; a data memory; a list memory; parsing means for parsing said data stream, storing said header in the header memory, storing said encoded data unit in the data memory beginning at a starting address and capturing said time stamp; computing means responsive to said .parsing by the parsing means for storing said time stamp and said starting address as a list entry in said list memory; decoding means for reading and decoding said encoded data unit from the data memory to produce a decoded data unit; the computing means being further responsive to said reading and decoding by the decoding means for accessing said list entry in the list memory using said starting address to obtain said time stamp; system timer means for maintaining a system clock time; comparator means for comparing said time stamp with a current value of said system clock time from the system timer means when the decoder means begins to read and decode said encoded data unit; presentation means for presenting said decoded data unit; and synchronization means for controlling the presentation means to repeat presentation of said decoded data unit if said time stamp exceeds said current value of said system clock time by more than a first predetermined value; and controlling the presentation means to skip presentation of said decoded data unit if said current value of said system clock time exceeds said time stamp by more than a second predetermined value.
Claim 12
Dependent Claim 79 words
A system as in claim 9, in which: the presentation means begins to present said decoded data unit at a predetermined time interval after the decoder means begins to decode said encoded data unit; said time stamp indicates said presentation time directly, and thereby indicates said decoding time indirectly as being equal to said presentation time minus said predetermined time interval; and the synchronization means determines said decoding time by subtracting said predetermined time interval from said time stamp.
Claim 13
Dependent Claim 24 words
A system as in claim 10, in which: said data stream is an MPEG bitstream; and said time stamp is a presentation time stamp.
Claim 14
Dependent Claim 19 words
A system as in claim 9, in which said first predetermined value is equal to said second predetermined value.
Claim 15
Dependent Claim 31 words
A system as in claim 12, in which: said decoded data unit is a video frame; and said first and second predetermined values are substantially equal to a frame presentation rate.
Claim 16
Dependent Claim 197 words
A decoder for decoding a data stream: the data stream comprising: an encoded data unit; and a header corresponding to said encoded data unit; the decoder comprising: a header memory; a data memory; parsing means for parsing said data stream, storing said header in the header memory, storing said encoded data unit in the data memory, and generating a first interrupt upon storing said header in the header memory; and decoding means for reading and decoding said encoded data unit from the data memory to produce a decoded data unit, and generating a second interrupt upon beginning of reading and decoding said encoded data unit; in which the data stream further comprises a time stamp included in said header for indicating a requested decoding time for said encoded data unit; the parsing means further captures and stores said time stamp; and the decoder further comprises: system timer means for maintaining a system clock time; and comparator means for reading and comparing said time stamp with a current value of said system clock time which constitutes an actual decoding time from the system timer means when the decoder means begins to read and decode said encoded data unit.
Claim 17
Dependent Claim 197 words
A decoder for decoding a data stream: the data stream comprising: an encoded data unit; and a header corresponding to said encoded data unit; the decoder comprising: a header memory; a data memory; parsing means for parsing said data stream, storing said header in the header memory, storing said encoded data unit in the data memory, and generating a first interrupt upon storing said header in the header memory; and decoding means for reading and decoding said encoded data unit from the data memory to produce a decoded data unit, and generating a second interrupt upon beginning of reading and decoding said encoded data unit; in which the data stream further comprises a time stamp included in said header for indicating a requested decoding time for said encoded data unit; the parsing means further captures and stores said time stamp; and the decoder further comprises: system timer means for maintaining a system clock time; and comparator means for reading and comparing said time stamp with a current value of said system clock time which constitutes an actual decoding time from the system timer means when the decoder means begins to read and decode said encoded data unit.
Claim 18
Dependent Claim 74 words
A decoder as in claim 14, in which: said data stream further comprises a system time stamp; and the decoder further comprises: system timer means for maintaining a system clock time; comparator means for comparing said system time stamp to a current value of said system time; and synchronization means for adjusting the system timer means such that said current value of said system clock time becomes substantially equal to said system time stamp.
Claim 19
Dependent Claim 33 words
A decoder as in claim 15, in which the synchronization means adjusts the system timer means by resetting said system clock time to a value that is based on said system time stamp.
Claim 20
Dependent Claim 60 words
A decoder as in claim 16, in which: the system timer means comprises: a clock pulse generator; and a counter that is clocked by the clock pulse generator such that said system clock time is constituted by a count of the counter; and the synchronization means adjusts the system timer means by altering a frequency of the clock pulse generator.
Claim 21
Dependent Claim 255 words
A decoder for decoding a data stream: the data stream comprising: an encoded data unit; and a header corresponding to said encoded data unit;.. the decoder comprising: a header memory; a data memory; parsing means for parsing said data stream, storing said header in the header memory, storing said encoded data unit in the data memory, and generating a first interrupt upon storing said header in the header memory; and decoding means for reading and decoding said encoded data unit from the data memory to produce a decoded data unit, and generating a second interrupt upon beginning of reading and decoding said encoded data unit; the data stream further comprising a time stamp included in said header for indicating a decoding time for said encoded data unit; the parsing means further capturing said time stamp; system timer means for maintaining a system clock time; comparator means for comparing said time stamp with a current value of said system clock time from the system timer means when the decoder means begins to read and decode said encoded data unit; presentation means for presenting said decoded data unit; and synchronization means for controlling the presentation means to repeat presentation of said decoded data unit if said time stamp exceeds said current value of said system clock time by more than a first predetermined value; and controlling the presentation means to skip presentation of said decoded data unit if said current value of said system clock time exceeds said time stamp by more than a second predetermined value.
Claim 22
Dependent Claim 255 words
A decoder for decoding a data stream: the data stream comprising: an encoded data unit; and a header corresponding to said encoded data unit;.. the decoder comprising: a header memory; a data memory; parsing means for parsing said data stream, storing said header in the header memory, storing said encoded data unit in the data memory, and generating a first interrupt upon storing said header in the header memory; and decoding means for reading and decoding said encoded data unit from the data memory to produce a decoded data unit, and generating a second interrupt upon beginning of reading and decoding said encoded data unit; the data stream further comprising a time stamp included in said header for indicating a decoding time for said encoded data unit; the parsing means further capturing said time stamp; system timer means for maintaining a system clock time; comparator means for comparing said time stamp with a current value of said system clock time from the system timer means when the decoder means begins to read and decode said encoded data unit; presentation means for presenting said decoded data unit; and synchronization means for controlling the presentation means to repeat presentation of said decoded data unit if said time stamp exceeds said current value of said system clock time by more than a first predetermined value; and controlling the presentation means to skip presentation of said decoded data unit if said current value of said system clock time exceeds said time stamp by more than a second predetermined value.
Claim 23
Dependent Claim 79 words
A decoder as in claim 18, in which: the presentation means begins to present said decoded data unit at a predetermined time interval after the decoder means begins to decode said encoded data unit; said time stamp indicates said presentation time directly, and thereby indicates said decoding time indirectly as being equal to said presentation time minus said predetermined time interval; and the synchronization means determines said decoding time by subtracting said predetermined time interval from said time stamp.
Claim 24
Dependent Claim 24 words
A decoder as in claim 19, in which: said data stream is an MPEG bitstream; and said time stamp is a presentation time stamp.
Claim 25
Dependent Claim 19 words
A decoder as in claim 18, in which said first predetermined value is equal to said second predetermined value.
Claim 26
Dependent Claim 31 words
A decoder as in claim 21, in which: said decoded data unit is a video frame; and said first and second predetermined values are substantially equal to a frame presentation rate.
Claim 27
Independent Claim 173 words
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 in a header memory; (c) storing said encoded data unit in a data memory beginning at a starting address; (d) capturing said time stamp; (e) storing said time stamp and said starting address as a list entry in a list memory; (f) reading and decoding said encoded data unit from the data memory at an actual decoding time which can differ from said requested decoding time to produce a decoded data unit; and (g) accessing said list entry in the list memory using said starting address to obtain said time stamp; wherein the relationship between said requested decoding time and said actual decoding time can be utilized to synchronize subsequent presentation of said decoded data unit.
Claim 28
Independent Claim 173 words
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 in a header memory; (c) storing said encoded data unit in a data memory beginning at a starting address; (d) capturing said time stamp; (e) storing said time stamp and said starting address as a list entry in a list memory; (f) reading and decoding said encoded data unit from the data memory at an actual decoding time which can differ from said requested decoding time to produce a decoded data unit; and (g) accessing said list entry in the list memory using said starting address to obtain said time stamp; wherein the relationship between said requested decoding time and said actual decoding time can be utilized to synchronize subsequent presentation of said decoded data unit.
Claim 29
Dependent Claim 46 words
A method as in claim 23, further comprising the steps of: (h) maintaining a system time; and (i) comparing said time stamp with a current value of said system clock time which constitutes said actual decoding time from the system timer means upon performing step (f).
Claim 30
Dependent Claim 85 words
A method as in claim 23, in which: step (b) further comprises generating a first interrupt; step (e) comprises storing said time stamp and said starting address as a list entry in said list memory in response to said first interrupt; step (f) comprises generating a second interrupt upon beginning of reading and decoding said encoded data unit; and step (g) comprises accessing said list entry in the list memory using said starting address to obtain said time stamp in response to said second interrupt.
Claim 31
Independent Claim 219 words
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 decoding time for said encoded data unit; the method comprising the steps of: (a) parsing said data stream; (b) storing said header in a header memory; (c) storing said encoded data unit in a data memory beginning at a starting address; (d) capturing said time stamp; (e) storing said time stamp and said starting address as a list entry in a list memory; (f) reading and decoding said encoded data unit from the data memory to produce a decoded data unit; and (g) accessing said list entry in the list memory using said starting address to obtain said time stamp; (h) maintaining a system time; (i) comparing said time stamp with a current value of said system clock time from the system timer means upon performing step (f); (j) repeating presentation of said decoded data unit if said time stamp exceeds said current value of said system clock time by more than a first predetermined value; and (k) skipping presentation of said decoded data unit if said current value of said system clock time exceeds said time stamp by more than a second predetermined value.
Claim 32
Independent Claim 219 words
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 decoding time for said encoded data unit; the method comprising the steps of: (a) parsing said data stream; (b) storing said header in a header memory; (c) storing said encoded data unit in a data memory beginning at a starting address; (d) capturing said time stamp; (e) storing said time stamp and said starting address as a list entry in a list memory; (f) reading and decoding said encoded data unit from the data memory to produce a decoded data unit; and (g) accessing said list entry in the list memory using said starting address to obtain said time stamp; (h) maintaining a system time; (i) comparing said time stamp with a current value of said system clock time from the system timer means upon performing step (f); (j) repeating presentation of said decoded data unit if said time stamp exceeds said current value of said system clock time by more than a first predetermined value; and (k) skipping presentation of said decoded data unit if said current value of said system clock time exceeds said time stamp by more than a second predetermined value.

References Cited (Backward Citations)

US4241398A Cited
US5287182A Cited
US5396497A Cited
US5442390A Cited
US5448568A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1999-09-24 2000-03-25 2000-09-24 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2003-09-24 2004-03-25 2004-09-24 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2007-09-24 2008-03-25 2008-09-24 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag