|
|
|
| United States Patent | 5920572 |
| Link to this page | http://www.wikipatents.com/5920572.html |
| Inventor(s) | Washington; Emanuel (Union City, CA);
Perkins; Mike (Louisville, CO);
Johnson; Brian (San Francisco, CA);
How; Stephen (San Diego, CA);
Daines; Nolan (Fremont, CA);
Ayers; Tom (San Jose, CA);
Vertrees; Keith (San Deigo, CA) |
| Abstract | A transport stream decoder/demultiplexer is provided which includes a
program clock recovery circuit for recovering a program clock from program
clock reference (PCR) values contained in selected transport packets. A
processor is provided for extracting elementary stream data from transport
packets labeled with packet identification codes (PIDs) that are specified
by a host processor. The processor separately stores the elementary stream
data of each stream. A host processor interface is also provided for
transferring data between an external host processor and the program clock
recovery circuit. A memory manager may be provided for storing the data
extracted by the processor for each elementary stream in a corresponding
queue. The queues may be maintained by the memory manager in an external
RAM. A descrambler interface may be provided for transferring scrambled
data and data derived from conditional access information between the
processor and an external descrambler. In addition, at least one
elementary stream interface, such as a video interface or audio interface,
may be provided for outputting extracted elementary stream data for a
particular elementary stream from a corresponding queue. Furthermore, a
high speed interface may be provided for outputting transport packet data
prior to data extraction by the processor. |
|
|
|
Title Information  |
|
|
|
|
|
Drawing from US Patent 5920572 |
|
|
Transport stream decoder/demultiplexer for hierarchically organized
audio-video streams |
|
|
|
|
|
| Publication Date |
July 6, 1999 |
|
|
|
|
|
| Filing Date |
January 11, 1996 |
|
|
|
|
|
|
|
|
|
|
|
| Parent Case |
This is a continuation of U.S. Ser. No. 08/497,690 filed Jun. 30, 1995, now
abandoned. |
|
|
|
|
|
|
|
|
|
|
|
|
|
Title Information  |
|
|
References  |
|
|
| *references marked with an asterisk below are user-added references |
|
U.S. References |
|
|
| Add a new US reference: |
| | Reference | Relevancy | Comments | Reference | Relevancy | Comments | 5621463 Lyons 348/386.1 Apr,1997 |      Your vote accepted [0 after 0 votes] | | 5619501 Tamer 370/392 Apr,1997 |      Your vote accepted [0 after 0 votes] | | 5617146 Duffield
Apr,1997 |      Your vote accepted [0 after 0 votes] | | 5588025 Strolle 375/316 Dec,1996 |      Your vote accepted [0 after 0 votes] | | 5574505 Lyons 375/240.26 Nov,1996 |      Your vote accepted [0 after 0 votes] | | 5568403 Deiss 709/236 Oct,1996 |      Your vote accepted [0 after 0 votes] | | 5566089 Hoogenboom 358/1.15 Oct,1996 |      Your vote accepted [0 after 0 votes] | | 5563648 Menand 725/142 Oct,1996 |      Your vote accepted [0 after 0 votes] | | 5559999 Maturi 713/400 Sep,1996 |      Your vote accepted [0 after 0 votes] | | 5548532 Menand 370/477 Aug,1996 |      Your vote accepted [0 after 0 votes] | | 5539920 Menand
Jul,1996 |      Your vote accepted [0 after 0 votes] | | 5521979 Deiss 380/212 May,1996 |      Your vote accepted [0 after 0 votes] | | 5515106 Chaney 725/48 May,1996 |      Your vote accepted [0 after 0 votes] | | 5510845 Yang 348/476 Apr,1996 |      Your vote accepted [0 after 0 votes] | | 5489947 Cooper 348/589 Feb,1996 |      Your vote accepted [0 after 0 votes] | | 5475754 Bridgewater
Dec,1995 |      Your vote accepted [0 after 0 votes] | | 5475688 Bridgewater
Dec,1995 |      Your vote accepted [0 after 0 votes] | | 5473609 Chaney 370/312 Dec,1995 |      Your vote accepted [0 after 0 votes] | | 5467139 Lankford 348/512 Nov,1995 |      Your vote accepted [0 after 0 votes] | | 5459789 Tamer 380/241 Oct,1995 |      Your vote accepted [0 after 0 votes] | | 5457780 Shaw
Oct,1995 |      Your vote accepted [0 after 0 votes] | | 5448568 Delpuch 348/423.1 Sep,1995 |      Your vote accepted [0 after 0 votes] | | 5430485 Lankford 348/423.1 Jul,1995 |      Your vote accepted [0 after 0 votes] | | 5426464 Casavant 375/240.12 Jun,1995 |      Your vote accepted [0 after 0 votes] | | 5410355 Kolczynski 375/240.01 Apr,1995 |      Your vote accepted [0 after 0 votes] | | 5396492 Lien 370/412 Mar,1995 |      Your vote accepted [0 after 0 votes] | | 5381181 Deiss 348/423.1 Jan,1995 |      Your vote accepted [0 after 0 votes] | | 5371547 Siracusa 375/240.01 Dec,1994 |      Your vote accepted [0 after 0 votes] | | 5365272 Siracusa 375/240.25 Nov,1994 |      Your vote accepted [0 after 0 votes] | | 5361097 Kolczynski 375/240.01 Nov,1994 |      Your vote accepted [0 after 0 votes] | | 5289276 Siracusa 348/469 Feb,1994 |      Your vote accepted [0 after 0 votes] | | 5287178 Acampora 348/384.1 Feb,1994 |      Your vote accepted [0 after 0 votes] | | 5287182 Haskell 348/500 Feb,1994 |      Your vote accepted [0 after 0 votes] | | 5231486 Acampora 375/240.23 Jul,1993 |      Your vote accepted [0 after 0 votes] | | 4748618 Brown 370/419 May,1988 |      Your vote accepted [0 after 0 votes] | | 5400401 Wasilewski 380/212 Dec,1969 |      Your vote accepted [0 after 0 votes] | | |
|
|
|
|
U.S. References |
|
|
Foreign References |
|
|
|
|
|
|
Foreign References |
|
|
Other References |
|
|
|
|
|
|
Other References |
|
|
|
|
|
References  |
|
|
Claims  |
|
|
The invention claimed is:
1. A transport stream demultiplexer for demultiplexing program data from
transport packets, each of said transport packets having a packet
identifier PID, a unique PID being assigned to packets carrying program
clock references PCRs of a desired program, said apparatus comprising:
a first processor for extracting said unique PID assigned to transport
packets carrying said PCRs of said desired program,
a PCR circuit responsive to said unique PID, for extracting each PCR from
each received transport packet having said unique PID,
a PCR counter for producing a PCR clock count in response to a clock signal
received at a clock input,
an external host processor interface, for transferring to a second external
processor one or more values on which a difference between a PCR clock
count from said PCR counter and an extracted PCR from said PCR circuit
depends and for receiving from the second external processor a digitally
filtered PCR clock phase error based on said difference between said PCR
clock count and said extracted PCR, and
a digital to analog converter for converting said digitally filtered PCR
clock phase error to analog form, and feeding said analog form of said
digitally filtered PCR clock phase error via at least a voltage controlled
oscillator VCXO to said clock input of said PCR counter, wherein an output
of the VCXO is received at said clock input as said clock signal, so as to
adjust a phase error of said PCR counter relative to said extracted PCR.
2. The demultiplexer of claim 1 wherein the second external processor is
selectively programmable to digitally filter said difference between said
PCR clock count and said extracted PCR to produce said phase error in a
user-definable fashion.
3. The demultiplexer of claim 1 wherein said external host processor
interface transfers from said first processor to said second external
processor a program definition of said desired program, including said
unique PID, and wherein said external host processor interface transfers
said unique PID from said second external processor to said PCR circuit.
4. The transport stream demultiplexer of claim 1 wherein:
said first processor responds to selected PIDs by extracting elementary
stream data from only particular ones of said transport packets that
contain one of said selected PIDs, and separately stores said extracted
data of each elementary stream in a memory.
5. The transport stream demultiplexer of claim 4 further comprising:
a descrambler interface, for receiving from said first processor scrambled
data contained in at least some of said transport packets containing
selected PIDs and for outputting descrambled data to said first processor.
6. The transport stream demultiplexer of claim 4 wherein said memory in
which said first processor stores said external data is an external RAM,
said transport stream demultiplexer further comprising:
a memory manager for managing the external RAM, for storing at least some
of said extracted data and for transferring data between the external RAM
and said external host processor interface.
7. The transport stream demultiplexer of claim 6 wherein said first
processor causes said memory manager to store said extracted data of each
stream in a separate queue maintained by said memory manager in the
external RAM.
8. The transport stream demultiplexer of claim 7 wherein said memory
manager maintains, for each queue, the start address of the queue in the
external RAM, and the tail address of the queue in the external RAM.
9. The transport stream demultiplexer of claim 8 wherein, for at least some
of said queues, said memory manager also maintains the head address of at
least one of said queues in the external RAM.
10. The transport stream demultiplexer of claim 6 wherein each of said
queues has an independently selectable size.
11. The transport stream demultiplexer of claim 6 further comprising:
at least one elementary stream interface, for obtaining extracted data from
said memory manager for a specific elementary stream and for outputting
said extracted data obtained from said memory manager to an external
elementary stream decoder.
12. The transport stream demultiplexer of claim 11 further comprising:
an internal memory in which said external host processor interface stores a
table containing a plurality of entries, including at least one entry
which indicates a particular PID and whether or not said at least one
table entry is active, said first processor accessing said table for each
transport packet, and extracting elementary stream data from only said
transport packets containing a PID that matches one of said particular
PIDs of each of said table entries indicated as being active.
13. The transport stream demultiplexer of claim 1 wherein the VCXO is an
external VCXO, wherein an input of an external RC filter is connected to
an output of said digital to analog converter wherein an input of the
external VCXO is connected to an output of the RC filter, wherein an
output of the external VCXO is connected to said clock input of said PCR
counter, and wherein said digital to analog converter is a sigma delta
digital to analog converter.
14. A method for demultiplexing program data from transport packets of a
transport stream, each of said transport packets having a PID, a unique
PID being assigned to packets carrying PCR's of a desired program, said
method comprising the steps of:
using a first processor, extracting said unique PID assigned to transport
packets carrying said PCRs of said desired program,
in response to said unique PID, extracting each PCR from each received
transport packet having said unique PID,
producing a PCR clock count in response to a clock signal received at a
clock input,
transferring to a second external processor one or more values on which a
difference between a PCR clock count and an extracted PCR depends and for
receiving from the second external processor a digitally filtered PCR
clock phase error based on said difference between said PCR clock count
and said extracted PCR, and
converting said digitally filtered PCR clock phase error to analog form,
and feeding said analog form of said digitally filtered PCR clock phase
error via at least a voltage controlled oscillator VCXO to said clock
input, wherein an output of the VCXO is received at said clock input as
said clock signal, so as to adjust a phase error of said PCR clock count
relative to said extracted PCR.
15. The method of claim 14 further comprising the step of:
selectively programming the second external processor to digitally filter
said difference between said PCR clock count and said extracted PCR to
produce said phase error in a user-definable fashion.
16. The method of claim 14 further comprising the steps of:
transferring from said first processor to said second external processor a
program definition of said desired program, including said unique PID, and
receiving from said second external processor, said unique PID for use in
said step of extracting each PCR.
17. The method of claim 14 further comprising the step of:
in response to selected PIDs, using said processor to extract elementary
stream data from only particular ones of said transport packets that
contain one of said selected PIDs, and to store separately said extracted
data of each elementary stream in a memory.
18. The method of claim 17 comprising the steps of:
transferring from said first processor to a descrambler scrambled data
contained in at least some of said transport packets containing selected
PIDs, and
transferring descrambled data from the descrambler to said first processor.
19. The method of claim 17 wherein said memory in which said first
processor stores said extracted data is an external RAM, said method
further comprising the steps of:
using a memory manager, managing the external RAM, storing at least some of
said extracted data in the external RAM, and transferring data between the
external RAM and the second external processor.
20. The method of claim 19 further comprising the step of:
using said first processor and said memory manager, storing said extracted
data of each stream in a separate queue maintained by said memory manager
in the external RAM.
21. The method of claim 20 further comprising the step of:
using said memory manager, maintaining for each queue the start address of
said queue in the external RAM, and the tail address of said queue in the
external RAM.
22. The method of claim 21 further comprising the step of:
using said memory manager, maintaining the head address of at least one of
said queues in the external RAM.
23. The method of claim 20 wherein each of said queues has an independently
selectable size.
24. The method of claim 17 further comprising the steps of:
obtaining extracted data from said memory manager for a specific elementary
stream, and
outputting said extracted data obtained from said memory manager to an
external elementary stream decoder.
25. The method of claim 24 further comprising the steps of:
storing in an internal memory a table containing a plurality of entries,
including at least one entry which indicates a particular PID and whether
or not said at least one table entry is active,
using said first processor, accessing said table for each transport packet,
and extracting elementary stream data from only said transport packets
containing a PID that matches one of said particular PIDs of each of said
active table entries indicated as being active.
26. The method of claim 14 wherein the VCXO is an external VCXO, said
method further comprising the steps of:
using an external RC filter, low pass filtering said analog form of said
digitally filtered PCR clock phase error,
inputting said low pass filtered, digitally PCR clock phase error to the
external VCXO, and
outputting said clock signal from the external VCXO to said clock input,
wherein said step of converting said digitally filtered PCR clock phase
error to analog form comprises using a sigma delta digital to analog
converter.
27. A bitstream produced by a method for demultiplexing program data from
transport packets of a transport stream, each of said transport packets
having a PID, a unique PID being assigned to packets carrying PCR's of a
desired program, said method comprising the steps of:
using a first processor, extracting said unique PID assigned to transport
packets carrying said PCRs of said desired program,
in response to said unique PID, extracting each PCR from each received
transport packet having said unique PID,
producing a PCR clock count in response to a clock signal received at a
clock input,
transferring to a second external processor one or more values on which a
difference between a PCR clock count and an extracted PCR depends and for
receiving from the second external processor a digitally filtered PCR
clock phase error based on said difference between said PCR clock count
and said extracted PCR, and
converting said digitally filtered PCR clock phase error to analog form,
and feeding said analog form of said digitally filtered PCR clock phase
error via at least a voltage controlled oscillator VCXO to said clock
input, wherein an output of the VCXO is received at said clock input as
said clock signal, so as to adjust a phase error of said PCR clock count
relative to said extracted PCR.
28. The bitstream of claim 27 wherein said method further comprises the
step of:
selectively programming the second external processor to digitally filter
said difference between said PCR clock count and said extracted PCR to
produce said phase error in a user-definable fashion.
29. The bitstream of claim 27 wherein said method further comprises the
steps of:
transferring from said first processor to said second external processor a
program definition of said desired program, including said unique PID, and
receiving from said second external processor, said unique PID for use in
said step of extracting each PCR.
30. The bitstream of claim 27 wherein said method further comprises the
step of:
in response to selected PIDs, using said processor to extract elemen | | |