WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Transport stream decoder/demultiplexer for hierarchically organized audio-video streams    
United States Patent5920572   
Link to this pagehttp://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)
AbstractA 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 Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5920572
Transport stream decoder/demultiplexer for hierarchically organized

     audio-video streams - US Patent 5920572 Drawing
Transport stream decoder/demultiplexer for hierarchically organized audio-video streams
Inventor     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)
Owner/Assignee     Divicom Inc. (Milpitas, CA)
Patent assignment
All assignments
Publication Date     July 6, 1999
Application Number     08/585,109
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     January 11, 1996
US Classification     370/535 348/476 370/497 370/522 375/240.25
Int'l Classification     H04J 003/12
Examiner     Olms; Douglas W.
Assistant Examiner     Hom; Shick
Attorney/Law Firm     LLP; Proskauer Rose
Address
Parent Case     This is a continuation of U.S. Ser. No. 08/497,690 filed Jun. 30, 1995, now abandoned.
Priority Data    
USPTO Field of Search     370/487 370/488 370/535 370/497 370/389 370/392 370/394 370/498 370/522 348/384 348/426 348/476 348/423 348/460 364/514 A
Patent Tags     transport stream decoder/demultiplexer hierarchically organized audio-video streams
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5621463
Lyons
348/386.1
Apr,1997

[0 after 0 votes]
5619501
Tamer
370/392
Apr,1997

[0 after 0 votes]
5617146
Duffield

Apr,1997

[0 after 0 votes]
5588025
Strolle
375/316
Dec,1996

[0 after 0 votes]
5574505
Lyons
375/240.26
Nov,1996

[0 after 0 votes]
5568403
Deiss
709/236
Oct,1996

[0 after 0 votes]
5566089
Hoogenboom
358/1.15
Oct,1996

[0 after 0 votes]
5563648
Menand
725/142
Oct,1996

[0 after 0 votes]
5559999
Maturi
713/400
Sep,1996

[0 after 0 votes]
5548532
Menand
370/477
Aug,1996

[0 after 0 votes]
5539920
Menand

Jul,1996

[0 after 0 votes]
5521979
Deiss
380/212
May,1996

[0 after 0 votes]
5515106
Chaney
725/48
May,1996

[0 after 0 votes]
5510845
Yang
348/476
Apr,1996

[0 after 0 votes]
5489947
Cooper
348/589
Feb,1996

[0 after 0 votes]
5475754
Bridgewater

Dec,1995

[0 after 0 votes]
5475688
Bridgewater

Dec,1995

[0 after 0 votes]
5473609
Chaney
370/312
Dec,1995

[0 after 0 votes]
5467139
Lankford
348/512
Nov,1995

[0 after 0 votes]
5459789
Tamer
380/241
Oct,1995

[0 after 0 votes]
5457780
Shaw

Oct,1995

[0 after 0 votes]
5448568
Delpuch
348/423.1
Sep,1995

[0 after 0 votes]
5430485
Lankford
348/423.1
Jul,1995

[0 after 0 votes]
5426464
Casavant
375/240.12
Jun,1995

[0 after 0 votes]
5410355
Kolczynski
375/240.01
Apr,1995

[0 after 0 votes]
5396492
Lien
370/412
Mar,1995

[0 after 0 votes]
5381181
Deiss
348/423.1
Jan,1995

[0 after 0 votes]
5371547
Siracusa
375/240.01
Dec,1994

[0 after 0 votes]
5365272
Siracusa
375/240.25
Nov,1994

[0 after 0 votes]
5361097
Kolczynski
375/240.01
Nov,1994

[0 after 0 votes]
5289276
Siracusa
348/469
Feb,1994

[0 after 0 votes]
5287178
Acampora
348/384.1
Feb,1994

[0 after 0 votes]
5287182
Haskell
348/500
Feb,1994

[0 after 0 votes]
5231486
Acampora
375/240.23
Jul,1993

[0 after 0 votes]
4748618
Brown
370/419
May,1988

[0 after 0 votes]
5400401
Wasilewski
380/212
Dec,1969

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


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