WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
System and method for multiplexing a plurality of digital program services for transmission to remote locations    
United States Patent5319707   
Link to this pagehttp://www.wikipatents.com/5319707.html
Inventor(s)Wasilewski; Anthony J. (Alpharetta, GA); Bagley; Julius B. (Marietta, GA)
AbstractA system and method for multiplexing a plurality of digital programs for transmission to a plurality of remote locations is claimed. An encoder is provided that first generates a plurality of subframe data streams each comprising a continuous sequence of subframes. Each subframe in each subframe data stream comprises at least a transport layer region and a program data region. For each subframe data stream, portions of the program data region of each of the subframes in that subframe data stream are allocated to selected ones of the plurality of programs. Mapping information is provided in the transport layer region of each subframe for use by a decoder in extracting a selected program from each subframe. A multiplex data stream is then generated at the encoder that comprises a continuous sequence of superframes. Each superframe comprises a superframe transport layer region and a subframe data region. A portion of the subframe data region of each superframe is allocated to at least one subframe from each of the plurality of subframe data streams. A superframe map is then generated and transmitted with each superframe that specifies at least the location of each subframe within the superframe. The multiplex data stream is then transmitted to the plurality of remote locations. According to one embodiment, at an intermediate location, subframe data streams may be extracted from one multiplex data stream for re-routing within other multiplex data streams.
   














 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 5319707
System and method for multiplexing a plurality of digital program

     services for transmission to remote locations - US Patent 5319707 Drawing
System and method for multiplexing a plurality of digital program services for transmission to remote locations
Inventor     Wasilewski; Anthony J. (Alpharetta, GA); Bagley; Julius B. (Marietta, GA)
Owner/Assignee     Scientific Atlanta (Atlanta, GA)
Patent assignment
All assignments
Publication Date     June 7, 1994
Application Number     07/970,918
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     November 2, 1992
US Classification     380/212 348/473 380/241 380/261
Int'l Classification     H04N 007/167
Examiner     Cain; David C.
Assistant Examiner    
Attorney/Law Firm     Woodcock Washburn Kurtz Mackiewicz & Norris
Address
Parent Case    
Priority Data    
USPTO Field of Search     380/10 380/14 380/13 380/15 380/19
Patent Tags     multiplexing plurality digital program services transmission remote locations
   
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
5091936
Katznelson
380/237
Feb,1992

[0 after 0 votes]
4994909
Graves
725/92
Feb,1991

[0 after 0 votes]
4866770
Seth-Smith
380/212
Sep,1989

[0 after 0 votes]
4857799
Spindt
313/495
Aug,1989

[0 after 0 votes]
4829569
Seth-Smith
380/234
May,1989

[0 after 0 votes]
4787085
Suto
370/509
Nov,1988

[0 after 0 votes]
4742543
Frederiksen
380/237
May,1988

[0 after 0 votes]
4587514
Schas
341/87
May,1986

[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
 


What is claimed is:

1. A method of combining a plurality of digital programs into a multiplex data stream for transmitting said programs from an origination point to at least one remote location, wherein each program comprises a single bit stream containing a combination of related digital services, said method comprising the steps of:

a) multiplexing selected ones of the digital programs to generate a subframe data stream having a format comprising a continuous sequence of subframes different portions of each subframe being allocated to different ones of said digital programs;

b) generating for each subframe a subframe multiplex map that at least indirectly specifies which portions of that subframe are allocated to which of said selected digital programs, and inserting the subframe multiplex map in the subframe;

c) repeating step (a) and (b) a selected number of times, each time for different selected ones of said digital programs, thereby generating a plurality of subframe data streams each containing different ones of said digital programs and each comprising a continuous sequence of subframes;

d) multiplexing selected ones of the subframe data streams to generate said multiplex data stream, said multiplex data stream having a format comprising a continuous sequence of superframes, each superframe containing at least one subframe from at least one of said selected subframe data streams; and

e) generating, for each superframe in the multiplex data stream, a superframe map that specifies the location of each subframe within that superframe, and inserting the superframe map in that superframe.

2. A method according to claim 1 wherein each subframe has a format comprising a plurality of lines, a first group of lines in each subframe defining a subframe transport layer region and a second group of lines defining a program data region, and wherein step (a) comprises performing the following steps for each subframe:

(i) partitioning the program data region of the subframe into a plurality of program data packets;

(ii) allocating different portions of each program data packet in the subframe to different ones of said programs;

(iii) generating a program multiplex control packet that specifies which portions of each program data packet in the subframe are allocated to which programs; and

(iv) inserting the program multiplex control packet in the transport layer region of the subframe, the subframe multiplex map generated in step (b) for that subframe specifying the location of the program multiplex control packet within the transport layer region.

3. A method according to claim 2 wherein each of said programs has a respective data rate, and wherein step (a)(ii) comprises allocating different portions of each program data packet to different ones of said programs in proportion to the respective data rates of said programs.

4. A method according to claim 3 further comprising the step of adjusting, on a per subframe basis, the size of the portions allocated to each program as the respective data rates of the programs change.

5. A method according to claim 2 further comprising the step of:

(a') generating a plurality of system related data packets including system data packets (SDP's), system teletext packets (STT's), addressable data packets (ADP's), service seed packets (SSP's) and program virtual channel map packets (PVCMP's); and

(b') inserting selected ones of said system related data packets in the transport layer region of each subframe, the subframe multiplex map generated in step (b) for each subframe specifying the location of each system related data packet inserted within the transport layer region of that subframe.

6. A method according to claim 1 wherein each superframe has a format comprising an adjustable number of successive blocks, a first portion of each block comprising a block synchronization byte (BSYNC), a second portion of each block comprising a data portion, and a last portion of each block comprising a block error code generated in accordance with a block error coding scheme.

7. A method according to claim 6 wherein a first group of blocks in each superframe define a superframe transport layer region of that superframe, and a second group of blocks define a subframe data region, the superframe map generated for each superframe being inserted in the superframe transport layer region of that superframe.

8. A method according to claim 7 wherein each subframe has a format comprising a plurality of lines, and wherein the data portion of each block in the subframe data region of each superframe contains a single line of one of the subframes in that superframe.

9. A method according to claim 6 further comprising the step of inserting, in a first block of each superframe, a superframe synchronization word (FSYNC), and wherein the superframe map for each superframe is inserted in the superframe immediately following the superframe synchronization word.

10. A method according to claim 1 wherein each superframe has a format comprising an adjustable number of successive blocks, a first group of blocks in each superframe defining a superframe transport layer region of that superframe, and a second group of blocks defining a subframe data region, said method further comprising the steps of:

(i) generating a subframe virtual channel map packet that contains information that specifies, for each program, which subframe data stream contains that program; and

(ii) periodically inserting the subframe virtual channel map packet in the transport layer region of one of the successive superframes, the superframe map for each superframe into which the subframe virtual channel map is inserted further specifying the location of the subframe virtual channel map packet within the transport layer region of that superframe.

11. A method according to claim 1 further comprising the step of transmitting successive superframes of said multiplex data stream at a constant rate.

12. A method according to claim 6 wherein each block comprises a predetermined number of bits, and wherein said method further comprises the step of transmitting successive superframes of said multiplex data stream at a constant rate such that the multiplex data stream is transmitted at a bit rage equal to F.sub.SF (n)(B) bits per second, where F.sub.SF is the rate at which successive superframes are transmitted, n is the number of blocks in each superframe, and b is the number of bits in each block.

13. A method of decoding a multiplex data stream of the type recited in claim 1, said method comprising the steps of:

a) receiving the multiplex data stream and selecting one of said programs;

b) determining which subframe data stream contains the selected program;

c) for each successive superframe of the received multiplex data stream, performing the following steps:

(i) extracting the superframe map from the superframe and determining from the extracted superframe map the location of each subframe within that superframe; and

(ii) extracting from the superframe the subframe in that superframe that is one of the subframes of the subframe data stream that contains the selected program;

d) for each subframe extracted in step (c)(ii), performing the following steps:

(i) extracting the subframe multiplex map from the subframe and identifying, based at least in-part upon information contained within that multiplex map, which portion of the subframe is allocated to the selected program; and

(ii) extracting the identified portion from the subframe; and

e) combining the portions extracted from each subframe in step (d)(ii) to reconstruct the selected program.

14. A method according to claim 13 wherein the multiplex data stream contains mapping information that specifies, for each program, which subframe data stream contains that program, and wherein step (b) comprises:

(i) extracting the mapping information from the received multiplex data stream; and

(ii) determining from the extracted mapping information which of the subframe data streams contains the selected program.

15. A method according to claim 13 wherein each subframe of each subframe data stream has a format comprising a plurality of successive lines, a first group of lines in each subframe defining a transport layer region of that subframe and a second group of lines defining a program data region, and wherein the program data region of each subframe is partitioned into a plurality of program data packets and different portions of each program data packet are allocated to different ones of said programs, and further wherein the transport layer region of each subframe contains a program multiplex control packet that specifies which portions of each program data packet in that subframe are allocated to which programs and the subframe multiplex map in each subframe specifies the location, within the transport layer region, of the program multiplex control packet for that subframe, and still further wherein step (d) comprises performing the following steps for each subframe:

(i) extracting the subframe multiplex map from the subframe and determining therefrom the location of the program multiplex control packet within the transport layer region of the subframe;

(ii) extracting the located program multiplex control packet from the transport layer region;

(iii) identifying, based upon the extracted program multiplex control packet, which portion of each program data packet of the subframe is allocated to the selected program; and

(iv) extracting the portion identified in step (d)(iii) from each of the program data packets in the subframe.

16. An encoder apparatus for combining a plurality of digital programs into a multiplex data stream, wherein each program comprises a single bit stream containing a combination of related digital services, said encoder comprising:

a control computer for controlling the operation of the encoder;

a plurality of subframe multiplexers, each coupled to the control computer and each being coupled to receive a respective group of said programs, each subframe multiplexer being operative to multiplex its respective group of programs to form a subframe data stream having a format comprising a continuous sequence of subframes wherein different portions of each subframe are allocated to different ones of said respective group of programs, each subframe multiplexer being further operative to insert, in each subframe, a subframe multiplex map that specifies, at least indirectly, which portions of each subframe are allocated to which programs; and

a superframe multiplexer coupled to each of said subframe multiplexers for receiving said subframe data streams and for multiplexing selected ones of said subframe data streams to generate said multiplex data stream, said multiplex data stream having a format comprising a continuous sequence of superframes, each superframe containing at least one subframe from at least one of said selected subframe data streams, said superframe multiplexer being further operative to generate, for each superframe in the multiplex data stream, a superframe map that specifies the location of each subframe contained in that superframe, and to insert the superframe map in that superframe.

17. An encoder according to claim 16 wherein each subframe has a format comprising a plurality of lines, a first group of lines in each subframe defining a subframe transport layer region and a second group of lines defining a program data region, and wherein each subframe multiplexer comprises:

a subframe controller coupled to the control computer for generating, for each subframe, the subframe multiplex map and at least one program multiplex control packet;

a program multiplexer coupled to the subframe controller and responsive to said program multiplex control packets for multiplexing said respective group of programs in a time-division manner to produce a continuous sequence of program data packets, different portions of each program data packet being allocated to different ones of said group of programs; and

a subframe builder coupled to the subframe controller and to said program multiplexer for constructing each subframe in accordance with the subframe multiplex map generated for that subframe, wherein for each subframe, the subframe builder is operative; (i) to insert a number of consecutive program data packets in the program data region of the subframe, (ii) to insert the program multiplex control packet for that subframe in the transport layer region of the subframe at a location specified by the subframe multiplex map for that subframe, and (iii) to insert the subframe multiplex map at a beginning of the subframe.

18. An encoder according to claim 17 wherein, for each program data packet to be inserted in a particular subframe, the program multiplex control packet generated for that subframe by the subframe controller specifies which portions of each program data packet are to be allocated to which programs, and wherein the program multiplexer is responsive to the multiplex control packet for generating each of the program data packets in accordance with the information specified therein.

19. An encoder according to claim 17 wherein the subframe builder is further operative to insert a subframe synchronization word (SFSYNC) in a first line of each subframe and to insert the subframe multiplex map in each frame such that the subframe multiplex map immediately follows the subframe synchronization word (SFSYNC).

20. An encoder according to claim 17 wherein the control computer is further operative to construct a plurality of system related data packets including system data packets (SDP's), system teletext packets (STT's), addressable data packets (ADP's), service seed packets (SSP's) and program virtual channel map packets (PVCMP's), said subframe builder in each subframe multiplexer inserting selected ones of said system related data packets in the transport layer regions of each subframe, the subframe multiplex map generated for each subframe by the subframe controller specifying the number and location of each system related data packet to be inserted in the transport layer region of that subframe.

21. An encoder according to claim 18 wherein each of said digital programs has a respective data rate and wherein said portions of each program data packet are allocated to said programs in proportion to the respective data rates of each program.

22. An encoder according to claim 21 wherein said subframe multiplexer is further operative to adjust, on a per subframe basis, the size of each portion of each program data packet allocated to a particular program as the respective data rates of each program change.

23. An encoder according to claim 16 wherein said superframe multiplexer comprises:

a superframe controller coupled to the control computer for generating said superframe map; and

a superframe builder coupled to the superframe controller and coupled to receive successive subframes from each subframe multiplexer for constructing each superframe in accordance with the superframe map generated by the superframe controller, and for inserting each superframe map in its respective superframe.

24. An encoder according to claim 23 wherein said superframe multiplexer further comprises an interleaver coupled to an output of said superframe builder for interleaving portions of each superframe to reduce burst errors during subsequent transmission of the multiplex data stream to a remote location.

25. An encoder according to claim 23 wherein each superframe has a format comprising an adjustable number of successive blocks, a first group of blocks in each superframe defining a superframe transport layer region of that superframe and a second group of blocks defining a subframe data region, said superframe builder including:

means for inserting a block syncrhonization byte (BSYNC) in a first portion of each block; and

means for inserting a superframe syncrhonization word (FSYNC) in a first block of each superframe.

26. An encoder according to claim 25 wherein the superframe multiplexer further comprises block error coding means for generating a block error code for each block and appending the block error code to the block.

27. An encoder according to claim 23 wherein the control computer is further operative to generate a subframe virtual channel map packet that contains information that specifies, for each program, which subframe data stream contains that program, and wherein the superframe builder of the superframe multiplexer further comprises means for periodically inserting the subframe virtual channel map packet in the transport layer regions of selected superframes, the superframe map for each superframe into which the subframe virtual channel map packet is inserted further specifying the location of the subframe virtual channel map packet within that superframe.

28. A decoder for use at a remote location to decode a multiplex data stream received at that location, said received multiplex data stream containing a multiplexed combination of digital programs and having a format comprising a continuous sequence of superframes each comprising a predetermined number of blocks, a first group of blocks in each superframe defining a transport layer region of that superframe and a second group of blocks defining a subframe data region, the subframe data region of each superframe comprising a multiplexed combination of subframes, different portions of each subframe being allocated to different ones of said digital programs and at least one subframe in each superframe containing data for a different group of said programs than another subframe in that superframe, said decoder comprising:

a receiver for receiving successive superframes of the multiplex data stream;

a selector for selecting at least one of said digital programs for extraction from said received multiplexed data stream;

a superframe demultiplexer comprising:

a superframe map extractor for locating and extracting a superframe map from a received superframe of the received multiplex data stream, said superframe map specifying the location of each subframe contained within that superframe; and

a subframe extractor at least indirectly responsive to the extracted superframe map for identifying which subframe in the received superframe contains data for the selected program and for extracting that subframe from the received superframe; and

a subframe demultiplexer coupled to the superframe demultiplexer for receiving the extracted subframe from the superframe demultiplexer, said subframe demultiplexer comprising:

a subframe multiplex map extractor for extracting a subframe multiplex map from the extracted subframe that specifies, at least indirectly, which portions of the subframe are allocated to which digital programs; and

a program extractor responsive to the extracted subframe multiplex map for identifying, based at least in-part upon information contained in the subframe multiplex map, which portion of the subframe is allocated to the selected program, and for extracting the identified portion from the subframe.

29. A decoder according to claim 28 wherein the multiplex data stream contains mapping information that specifies, for each program, which subframe data stream contains that program, and wherein the superframe demultiplexer further comprises means for extracting the mapping information from the received multiplex data stream and identifying therefrom which subframe in the received superframe contains data for the selected program.

30. A decoder for use at a remote location to decode a multiplex data stream received at that location, said received multiplex data stream containing a multiplexed combination of digital programs and having a format comprising a continuous sequence of superframes each containing a multiplexed combination of subframes, each subframe comprising a transport layer region and a program data region, the program data region of each subframe being partitioned into a plurality of program data packets, different portions of each program data packet being allocated to different ones of said digital programs, at least one subframe in each superframe containing data for a different group of said programs than another subframe in that superframe, the transport layer region of each subframe containing a program multiplex control packet that specifies, for each program data packet within that subframe, which portions of each program data packet are allocated to which programs, the transport layer region of each subframe further containing a subframe multiplex map which specifies, for that subframe, the location of the program multiplex control packet contained in the transport layer region of that subframe, said decoder comprising:

a receiver for receiving successive superframes of the multiplex data stream;

a selector for selecting at least one of said digital programs for extraction from said received multiplexed data stream;

a superframe demultiplexer comprising:

a superframe map extractor for locating and extracting a superframe map from a received superframe of the received multiplex data stream, said superframe map specifying the location of each subframe contained within that superframe; and

a subframe extractor at least indirectly responsive to the extracted superframe map for identifying which subframe in the received superframe contains data for the selected program and for extracting that subframe from the received superframe; and

a subframe demultiplexer coupled to the superframe demultiplexer for receiving the extracted subframe from the superframe demultiplexer, said subframe demultiplexer comprising:

a subframe multiplex map extractor for extracting the subframe multiplex map from the received subframe and for identifying therefrom the location of the program multiplex control packet within the transport layer region of that subframe;

means for extracting the program multiplex control packet from the transport layer region of the received subframe; and

a program extractor responsive to the extracted program multiplex control packet for identifying, based upon information contained in the extracted program multiplex control packet, which portion of each program data packet in the received subframe is allocated to the selected program, and for extracting the identified portion from each program data packet.

31. A decoder according to claim 30 wherein the multiplex data stream contains mapping information that specifies, for each program, which subframe data stream contains that program, and wherein the superframe demultiplexer further comprises means for extracting the mapping information from the received multiplex data stream and identifying therefrom which subframe in the received superframe contains data for the selected program.

32. A method comprising the steps of:

a) receiving a plurality of multiplex data streams, each multiplex data stream containing a multiplexed combination of subframe data streams wherein each subframe data stream comprises a continuous sequence of subframes, said received multiplex data streams each having a format comprising a continuous sequence of superframes, each superframe in a particular multiplex data stream containing at least one subframe from at least one of the subframe data streams contained in that multiplex data stream and each superframe further containing a superframe map that specifies the location of each subframe within that superframe;

b) for each received multiplex data stream, demultiplexing and separating the subframe data streams contained in that multiplex data stream and providing each subframe data stream in a separate channel;

c) selecting a plurality of said demultiplexed and separated subframe data streams, at least one of said selected subframe data streams having been demultiplexed and separated from a different multiplex data stream than others of said selected subframe data streams;

d) multiplexing said selected subframe data streams to generate a new multiplex data stream having a format comprising a continuous sequence of superframes wherein each superframe comprises at least one subframe from at least one of said selected subframe data streams;

e) generating, for each superframe in the new multiplex data stream, a superframe map that specifies the location of each subframe within that superframe, and inserting the superframe map in that superframe; and

f) transmitting the new multiplex data stream to at least one reception site.

33. A method according to claim 32 wherein for each received multiplex data stream step (b) comprises:

(i) for each successive superframe of the received multiplex data stream, extracting the superframe map from the superframe, and based upon information contained therein, locating, extracting and separating the subframes contained in that superframe; and

(ii) combining each subframe extracted from a particular superframe with corresponding subframes extracted from previous superframes to reproduce each subframe data stream and provide each subframe data stream on a separate channel.

34. A method according to claim 32 wherein each superframe of said new multiplex data stream and each of said received multiplex data streams has a format comprising an adjustable number of successive blocks, a first portion of each block comprising a block synchronization byte (BSYNC), a second portion of each block comprising a data portion, and a last portion of each block comprising a block error code generated in accordance with a block error coding scheme.

35. A method according to claim 32 wherein a first group of blocks in each superframe of the new multiplex data stream define a superframe transport layer region of that superframe, and a second group of blocks define a subframe data region, the superframe map generated in step (c) for each superframe of the new multiplex data stream being inserted in the superframe transport layer region of that superframe.

36. A method according to claim 32 further comprising the step of inserting, in a first block of each superframe of the new multiplex data stream a superframe synchronization word (FSYNC), and wherein step (e) comprises inserting the superframe map for each superframe at a location immediately following the superframe synchronization word.

37. A method according to claim 32 wherein step (f) comprises transmitting successive superframes of said new multiplex data stream at a constant rate.

38. A method according to claim 34 wherein each block comprises a predetermined number of bits, and wherein step (f) comprises transmitting successive superframes of said new multiplex data stream at a constant rate such that the new multiplex data stream is transmitted at a bit rate equal to F.sub.SF (n)(B) bits per second, where F.sub.SF is the rate at which successive superframes are transmitted, n is the number of blocks in each superframe, and B is the number of bits in each block.

39. A headend installation comprising:

a plurality of receivers each tuned to receive a different one of a plurality of multiplex data streams transmitted from at least one encoder site, each multiplex data stream containing a multiplexed combination of subframe data streams wherein each subframe data stream comprises a continuous sequence of subframes, said received multiplex data streams each having a format comprising a continuous sequence of superframes, each superframe in a particular multiplex data stream containing at least one subframe from at least one of the subframe data streams contained in that multiplex data stream and each superframe further containing a superframe map that specifies the location of each subframe within that superframe;

a plurality of superframe demultiplexers each coupled to a respective one of said receivers for demultiplexing and separating the subframe data streams contained in the multiplex data streams received by that receiver and for providing each of the separated subframe data stream on a separate channel;

re-routing means for selecting a plurality of said demultiplexed and separated subframe data streams, at least one of said selected subframe data streams having been demultiplexed and separated from a different multiplex data stream than others of said selected subframe data streams; and

a superframe multiplexer coupled to receive each of said selected subframe data streams for multiplexing said selected subframe data streams to generate a new multiplex data stream, said new multiplex data stream having a format comprising a continuous sequence of superframes, each superframe containing at least one subframe from each of said selected subframe data streams, said superframe multiplexer being further operative to generate, for each superframe in the multiplex data stream, a superframe map that specifies the location of each subframe contained in that superframe, and to insert the superframe map in that superframe.

40. A headend installation according to claim 39 wherein said superframe multiplexer comprises:

a superframe controller for generating the superframe map for each superframe; and

a superframe builder coupled to the superframe controller and coupled to receive successive subframes from each subframe multiplexer for constructing each superframe in accordance with the superframe map generated by the superframe controller, and for inserting each superframe map in its respective superframe.

41. A headend installation according to claim 40 wherein said superframe multiplexer further comprises an interleaver coupled to an output of said superframe builder for interleaving portions of each superframe to reduce burst errors during subsequent transmission of the multiplex data stream to a remote location.

42. A headend installation according to claim 40 wherein each superframe of the new multiplex data stream has a format comprising an adjustable number of successive blocks, a first group of blocks in each superframe defining a superframe transport layer region of that superframe and a second group of block defining a subframe data region, said superframe builder including:

means for inserting a block synchronization byte (BSYNC) in a first portion of each block; and

means for inserting a superframe synchronization word (FSYNC) in a first block of each superframe.

43. A headend installation according to claim 42 wherein the superframe multiplexer further comprises block error coding means for generating a block error code for each block and appending the block error code to the block.

44. A headend installation according to claim 39 further comprising a transmitter coupled to said superframe multiplexer for transmitting successive superframes of said new multiplex data stream at a constant rate.

45. A headend installation according to claim 42 wherein each block comprises a predetermined number of bits, and wherein said headend installation further comprises a transmitter coupled to said superframe multiplexer for transmitting successive superframes of said new multiplex data stream at a constant rate such that the multiplex data stream is transmitted at a bit rate equal to F.sub.SF (n)(B) bits per second, where F.sub.SF is the rate at which successive superframes are transmitted, n is the number of blocks in each superframe, and B is the number of bits in each block.

46. A headend installation according to claim 39 wherein each superframe demultiplexer comprises:

a superframe map extractor for locating and extracting a superframe map from a superframe of the received multiplex data stream, said superframe map specifying the location of each subframe contained within that superframe;

a subframe extractor coupled to the superframe map extractor and at least indirectly responsive to the extracted superframe map for determining the location of each subframe within the superframe and for extracting and separating each subframe from the superframe.

47. A digital data stream containing a multiplexed combination of digital programs wherein each program comprises a combination of related digital services, said data stream comprising a continuous sequence of superframes,

each superframe containing a plurality of subframes, and each superframe containing a superframe map that specifies for that superframe the location of each of the subframes in that superframe,

each subframe in each superframe containing a multiplexed combination of data from a subset of said digital programs wherein different portions of each subframe are allocated to different ones of said programs of said subset, at least one of the subframes in a particular superframe containing a multiplexed combination of digital programs from a different subset than another subframe in that superframe, each subframe further containing a subframe multiplex map that at least indirectly specifies which portions of that subframe are allocated to which programs of said subset.

48. A digital data stream according to claim 47 wherein each subframe in each superframe has a format comprising a plurality of lines, a first group of lines in each subframe defining a subframe transport layer region and a second group of lines defining a program data region, the program data region of each subframe being portioned into a plurality of program data packets, and wherein different portions of each program data packet in each subframe are allocated to different ones of the programs of said subset.

49. A digital data stream according to claim 48 wherein the transport layer region of each subframe in each superframe contains a program multiplex control packet that specifies which portions of each program data packet in that subframe are allocated to which programs of said subset.

50. A digital data stream according to claim 48 wherein each of said digital programs has a respective data rate, and wherein different portions of each program data packet in each subframe are allocated to different ones of said programs of said subset in proportion to the respective data rates of said programs of said subset.

51. A digital data stream according to claim 48 wherein the transport layer region of each subframe in each superframe contains a plurality of system related data packets including system data packets (SDP's), system teletext packets (STT's), addressable data packets (ADP's), service seed packets (SSP's) and program virtual channel map packets (PVCMP's), and wherein the subframe multiplex map in each subframe specifies the location of each system related data packet in the transport layer region of that subframe.

52. A digital data stream according to claim 47 wherein each superframe has a format comprising an adjustable number of successive blocks, a first portion of each block comprising a block synchronization byte (BSYNC), a second portion of each block comprising a data portion, and a last portion of each block comprising a block error code generated in accordance with a block error coding scheme.

53. A digital data stream according to claim 52 wherein a first group of blocks in each superframe define a superframe transport layer region of that superframe, and a second group of blocks define a subframe data region, the superframe map of each superframe being located in the superframe transport layer region of said each superframe.

54. A digital data stream according to claim 53 wherein each subframe has a format comprising a plurality of lines, and wherein the data portion of each block in the subframe data region of each superframe contains a single line of one of the subframes in that superframe.

55. A digital data stream according to claim 52 wherein a first block of each superframe contains a superframe synchronization word (FSYNC), and wherein the superframe map for each superframe is located in the superframe immediately following the superframe synchronization word.
 Description Submit all comments and votes
 


FIELD OF THE INVENTION

The present invention relates generally to digital signal transmission, and more particularly, to a system and method of multiplexing a plurality of digital services for transmission to a plurality of remote locations.

BACKGROUND OF THE INVENTION

The background of the present invention is described herein in the context of subscription television systems, such as cable television and direct broadcast satellite (DBS) systems, that distribute a variety of program services to subscribers, but the invention is by no means limited thereto except as expressly set forth in the accompanying claims.

In the subscription television industry, "programmers" produce "programs" for distribution to various remote locations. A "program" is a collection of related video, audio and other services, such as closed-captioning and teletext services. A single programmer may wish to supply many such programs. Typically, a programmer will supply these services via satellite to either individual subscribers (e.g., DBS subscribers), cable television operators, or both. In the case of cable television operators, the services transmitted via satellite are received at the operator's "cable head-end" installations. A cable operator typically receives programs and other services from many programmers and then distributes them to its subscribers. In addition, a cable operator may insert locally produced services at the cable-head end. The selected services and locally produced services are then transmitted to the individual subscribers via a coaxial cable distribution network. In the case of DBS subscribers, each subscriber is capable of receiving a satellite down-link from the programmers directly.

In the past, subscription television systems, including cable and DBS systems, have operated in the analog domain. Recently, however, the subscription television industry has begun to move toward all digital or hybrid analog/digital systems wherein prior to transmission, all or some of the analog signals are converted to digital signals. Digital signal transmission offers the advantage that digital data can be processed at both the transmission and reception ends to improve picture quality. In addition, digital data compression techniques have be