FIELD OF THE INVENTION This invention relates to transmission of audio data, video data, control data, or other information and, in particular, to signaling time-slice information for efficiently using information broadcasting resources.
BACKGROUND OF THE INVENTION Video streaming, data streaming, and broadband digital broadcast programming is increasing in popularity in network applications. An example of a digital broadband broadcast network enjoying popularity in Europe and elsewhere world-wide is Digital Video Broadcast (DVB) which, in addition to the delivery of televisual content, is also capable of delivering data. The Advanced Television Systems Committee (ATSC) has also defined a digital broadband broadcast network. Both ATSC and DVB use a containerization technique in which content for transmission is placed into MPEG-2 packets that act as data containers. Thus, the containers can be used to transport any suitably digitized data including, but not limited to High Definition TV, multiple channel Standard definition TV (PAL/NTSC or SECAM), broadband multimedia data and interactive services, and the like. Transmitting and receiving digital broadband programming usually requires the transmission and reception equipment to be powered up continuously so as to be able to send or receive all the streaming information. However, in the current state of the art, power consumption levels, especially in the front end of a digital broadcast receiver, are relatively high.
Reducing these power-consumption levels would therefore improve the operating efficiency of the broadcasting equipment.
SUMMARY OF THE INVENTION To reduce receiver power consumption in a digital broadband broadcasting system, information is transmitted and received periodically in bursts. The term “periodically” refers to something that happens repeatedly at intervals that can change. In such a system, a transmitter can communicate to a receiver accurate information regarding when the receiver should expect to receive transmission bursts. Providing this type of information is referred to as providing or signaling time-slice information. Based on received time-slice signaling information, the receiver can be powered down, which can include being put into a reduced power-consumption state, during idle time between receiving transmission bursts. This advantageously results in reduced power consumption by the receiver.
In accordance with various illustrative embodiments of the invention, time-slice information is added to packet headers. The time-slice information may be relative timing information that corresponds to an amount of time between transmission of a current packet of a current burst from a data service and transmission of a first-transmitted packet of a subsequent burst from the data service.
A transmitter-system component, such as a multi-protocol encapsulator, can encode time-slice information while forming packets to be transmitted in bursts. The encapsulator can include an elastic buffer that stores data from one or more information service providers. Such an elastic buffer can be large enough to store at least two bursts worth of information from substantially all of the information services for which the transmitter is transmitting bursts of information. When the encapsulator has received at least two bursts worth of information from an information service provider and has received whatever data the transmitter will send between two such bursts, the encapsulator can determine how much time will elapse between transmission of the first burst and transmission of the second burst. This time information can be added to one or more of the packets of a transmission burst. In this manner, encapsulated packets can carry accurate information regarding how much time will elapse between receiving a current burst and receiving a subsequent burst.
Time-slice information can include the duration of a burst, an amount of time between original bursts, the time between an original burst and a copy of the burst, and numbering of original bursts. This type of time-slice information can be placed into packet headers, such as one or more bytes reserved, but not used, for media access control addressing.
Computer-executable instructions for signaling time-slice information, in accordance with the invention, are stored on computer-readable media.
BRIEF DESCRIPTION OF THE DRAWINGS The invention is illustrated by way of example and not limited in the accompanying figures in which like reference numerals indicate similar elements and in which:
FIG. 1 shows a simplified diagram of a conventional streaming digital broadcasting system;
FIG. 2 shows a waveform of the streaming signal output by the conventional digital broadcasting system ofFIG. 1;
FIG. 3 shows a digital broadband broadcast terminal including a receiver and client;
FIG. 4 shows a first preferred embodiment of a time-slicing digital broadcasting system in accordance with the invention;
FIG. 5 is a graph showing changes over time in the contents of an elastic buffer in the broadcasting system ofFIG. 4;
FIG. 6 shows the transmission rate of a signal output by a transmitter in the system ofFIG. 4;
FIG. 7 is a table that lists fields and their respective sizes for a data broadcast descriptor;
FIGS. 8 and 9 are tables that show various multi protocol encapsulation-related information;
FIG. 10 shows coding related to the use of various media access control addressing bytes;
FIG. 11 is a graph showing changes over time in the contents of a receiver elastic buffer in the broadcasting system ofFIG. 4;
FIG. 12 shows the transmission rate of a time-division multiplexed signal output by a transmitter in the system ofFIG. 4;
FIG. 13 shows an alternative preferred embodiment of a time-slicing digital broadcasting system;
FIG. 14 is a graph showing changes over time in the contents of an elastic buffer in the broadcasting system ofFIG. 13;
FIG. 15 is a graph showing changes over time in the outputs of the elastic buffers and in the contents of a network operator elastic buffer in the system ofFIG. 13; and
FIG. 16 shows the transmission rate of a time-division multiplexed signal output by a transmitter in the system ofFIG. 13.
FIG. 17 is a graph of bit rate against time for data of a first data service and of a second data service of a video service provider.
FIG. 18 is a graph of bit rate against time for output of elastic buffer A ofFIG. 13.
FIG. 19 is similar toFIG. 17 and is a graph of bit rate against time for data of a third data service and of a fourth data service from video service provider B ofFIG. 13.
FIG. 20 is similar toFIG. 18 and is a graph of bit rate against time for output of elastic buffer B ofFIG. 13.
FIG. 21 is similar toFIGS. 18 and 20 and is a graph of bit rate against time for the output signal from the network operator elastic buffer ofFIG. 13.
FIG. 22 shows an MPE packet including an MPE packet payload and a set of time-slicing parameters that can be used in various permutations and combinations for signaling time-slice information.
FIG. 23 shows down numbering of MPE packets within a time slice of MPE packets.
FIG. 24 shows a time-slice-boundary indication of a packet to indicate that the packet is the first packet of the burst of packets.
FIG. 25 shows next burst indications that indicate whether the next burst will be a copy of a previously transmitted burst.
FIG. 26 shows signaling of an amount of time between transmission of a current packet and the first packet of the next original burst.
FIG. 27 shows signaling of an amount of time between transmission of a current packet and the first packet of the next copy burst.
FIG. 28 shows signaling of an amount of time between transmission of a current packet and the first packet of the next burst.
FIG. 29 shows numbering of original and copy bursts.
FIG. 30 illustrates how time-slice information may be contained in the adaptation field of an MPEG II transport stream packet in accordance with an embodiment of the invention.
DETAILED DESCRIPTION OF THE INVENTIONFIG. 1 is a simplified diagram of a conventional streamingdigital broadcasting system10 in which aninformation signal21 originating at aninformation service provider11 is transmitted to a client accessing adigital broadcast receiver15. Theinformation signal21 is typically sent from theservice provider11 to atransmitter13 over a link, which can be an Internet link. Thetransmitter13 broadcasts the information signal to thereceiver15 as astreaming signal23, typically by means of a broadcast antenna (not shown).
In a conventional signal transmission application, thetransmitter13 provides a continuous or a slowly varying data stream having a bandwidth of approximately 100 Kbit/sec, such as shown inFIG. 2. Thestreaming signal23 thus exhibits the same transmission rate of 100 Kbit/sec. Thedigital broadcast receiver15 necessarily operates in a constant powered-on mode in order to receive all the information provided by thestreaming signal23, which may also include one or more other data streams provided by one or more other information service providers (not shown).
With respect to signaling time-slice information, using absolute-clock-time information may be undesirable because, in digital broadband broadcasting systems, accurate enough clock information may not be available. Typical clock resolution is approximately one second.
There are proposals to add time-slice information into service information (SI) tables to indicate time-slice information. SI tables are used to carry control information such as tuning parameters, digital broadband broadcast service parameters, subtitling in digital television, and electronic-program-guide information. A problem with using SI tables to carry time-slice information is that SI tables are sent independently of time-slice bursts. This means that information can come during the idle time between two bursts. To reduce power consumption, though, the receiver should be able to be shut down, including being put into a reduced-power-consumption mode, during this idle time between transmission bursts.
Referring toFIG. 3, a terminal12, which can be a mobile terminal, such as a cellular telephone, a personal digital assistant, a portable computer, and the like, includes areceiver14, aclient16, and anantenna19. A digital broadband broadcast signal22 is also shown. In thereceiver14, a processor can perform part of the data path processing and can handle lower level protocols, such aslayer 2 information, which can include digital video broadcasting digital storage media command and control (DVB DSM-CC) section protocol packets, service information (SI) tables, and multi protocol encapsulated (MPE) packets. Software running on theclient16 can handlelayer3 and higher layers including TCP/IP and application-specific layers. The term “lower layer protocols,” as used herein, refers to protocols lower than the network and/or transport layers. Passing time-slice information, which is specified in absolute—rather than relative—terms, between the processors of thereceiver14 and theclient16 typically introduces undesirable latency into the time-slice information due to potentially variable latency between the two processors.
The amount of time it takes to transfer data between processors may contribute to this type of undesirable latency. For example, when a first processor requests a data bus that is shared between the first processor and a second processor, the bus may be busy performing a different transfer. This type of situation can introduce a variable amount of latency before the first processor can acquire the data bus to perform the desired data transfer. In addition, software latency may be caused by software not reacting immediately to requests, such as a time-slice-reception interrupt. Delays in servicing interrupts can be caused by execution of non-interruptible software by thereceiver14 or theclient16 or by both thereceiver14 and theclient16.
There are also proposals to add time slice information into a higher layer protocol. A problem with these proposed solutions is that higher-level protocols are handled with higher-level software, which is typically run by theclient16. As discussed above, there is variable latency when transferring information between thereceiver14 andclient16. So, when transferring time-slice information from theclient16 to thereceiver14, maintaining accurate time information may not be possible.
Adding time slice information to packet headers and using time-slice information that specifies timing information in relative terms overcomes the various limitations of the proposals discussed above. The relative timing information can correspond to an amount of time between transmission bursts. For instance, for two bursts from a single information service provider, the first burst can carry in its packet headers information specifying how much later the receiver should expect to receive the second burst.
A transmitter-system component, such as a multi-protocol encapsulator, can encode time-slice information while forming packets to be transmitted in bursts. The encapsulator can add the time-slice information to packet headers. This time-slice information can specify in relative terms when the transmitter will send a next transmission burst for the same information service. As described in more detail below, the encapsulator can include an elastic buffer that stores data from one or more information service providers. Such an elastic buffer can be large enough to store at least two bursts worth of information from substantially all of the information services for which the transmitter is transmitting bursts of information. When the encapsulator has received at least two bursts worth of information from an information service provider and has received whatever data the transmitter will send between two such bursts, the encapsulator can determine how much time will elapse between transmission of the first burst and transmission of the second burst. This time information can be added to one or more of the packets of a transmission burst. In this manner, encapsulated packets can carry accurate information regarding how much time will elapse between receiving a current burst and receiving a subsequent burst. This information can be accurate, because an encapsulator, as described above, can determine how much data there is between a current packet and the start of a subsequent burst.
FIG. 4 depicts an embodiment of a time-slicingdigital broadcasting system30, in which time-slice information can be signaled in accordance with the invention, including atransmitter system20 and areceiver system40. A first information stream originating at a first information service provider17 in thetransmitter system20 is intended for downstream transmittal to a client using adigital broadcast receiver41 in thereceiver system40. During operation of thetransmitter system20, adata signal25 is received from the first information service provider17 over a network link. A predetermined interval of the streaming information in the data signal25 is initially buffered in a firstelastic buffer35 as a bufferedinformation interval27. As will be apparent, the firstelastic buffer35 may be replaced by any other suitable type of input buffer, including but not limited to, a first-in, first-out (FIFO) buffer, a ring buffer, or a dual buffer having separate input and output sections.
In a preferred embodiment, the bufferedinformation interval27 is then formatted by using, for example, amulti-protocol encapsulator37 in accordance with Section7 of European Standard EN 301192“Digital Video Broadcasting(DVB);DVB specification for data broadcasting.” The firstelastic buffer35 can be integrated with themulti-protocol encapsulator37 to comprise asingle device39. After encapsulation, themulti-protocol encapsulator37 sends an encapsulatedinformation interval29 to adigital broadcast transmitter31 for broadcast to thedigital broadcast receiver41 as a time-slicing signal51, as described in greater detail below.
The amount of information inputted into the firstelastic buffer35 as a function of time can be represented by a sawtooth waveform71 shown in the graph ofFIG. 5. As the first service provider17 supplies the data signal25, the data information in the firstelastic buffer35 increases to a buffer maximum level, here denoted by a first localmaximum value73. The buffer maximum level is related to the amount of memory designated in the firstelastic buffer35 for storing the first information signal.
The size of the firstelastic buffer35 is generally specified to be at least as large as the information stream supplied by the service provider17 in the time interval between successive waveform maxima (e.g., the first localmaximum value73 and a second local maximum value75). The bufferedinformation interval27 of the firstelastic buffer35 is periodically sent via themulti-protocol encapsulator37 to thedigital broadcast transmitter31 such that the specified memory capacity in the firstelastic buffer35 is not exceeded. When the bufferedinformation interval27 is sent to thedigital broadcast transmitter31, the quantity of buffered information remaining in the firstelastic buffer35 drops to a localminimum value74, which can be zero.
The firstelastic buffer35 may include an ‘AF’ flag which can be set when an “almost full” byte count79 is reached to indicate when the firstelastic buffer35 is about to exceed the designated memory capacity. Preferably, the process of outputting the bufferedinformation interval27 begins when the AF flag is set. This serves to provide storage capacity for a subsequent interval of the streaming information sent by the service provider17 (here represented by the next part of the waveform71). When the next streaming data information interval has been inputted, the buffered information in the firstelastic buffer35 reaches a second localmaximum value75 which is subsequently outputted when the AF flag is set, resulting in a secondlocal minimum value76. The process is repeated, yielding a third local maximum value77 and a third localminimum value78.
Each subsequent portion of the streaming data buffered in the firstelastic buffer35 is thus successively outputted to thedigital broadcast transmitter31 for transmission to thedigital broadcast receiver41. This action produces the time-slicing signal51, a portion of which is shown inFIG. 6. The time-slicing signal51 comprises a continuous series of transmission bursts, exemplified by transmission bursts53,55, and57. In the example provided, the transmission burst53 corresponds to the buffered information transfer represented by the transition of the waveform71 from the localmaximum value73 to the localminimum value74. Likewise, the next transmission burst55 corresponds to the buffered information transfer represented by the transition of the waveform71 from the localmaximum value75 to the localminimum value76, and the transmission burst57 corresponds to the buffered information transfer represented by the transition from the local maximum value77 to the localminimum value78.
In an illustrative embodiment of the invention, each of the transmission bursts53,55, and57 is a 4-Mbit/sec pulse approximately one second in duration to provide a transfer of four Mbits of buffered information per transmission burst. The transmission bursts53,55, and57 are spaced at approximately 40-second intervals such that the time-slicing signal51 effectively broadcasts at an average signal information transmittal rate of 100 Kbits per second (i.e., the same as the transmittal rate of the incoming streaming signal23). The 40-second signal segment stored in theelastic buffer35 comprises the signal information to be broadcast to thedigital broadcast receiver41 as any one of the transmission bursts53,55, and57, for example.
An example of encoding time-slice information is provided in the context of DVB multi protocol encapsulation (WE) of digital video broadcasting (DVB) packets.FIG. 7 is a table that lists fields and their respective sizes for a data broadcast descriptor in accordance with EN 300468.Data_broadcast_id80 is a 16-bit field that identifies the data broadcast specification that is used to broadcast the data in the broadcast network. Allocations of the value of this field are found in ETR162. A Data_broadcast_id Value of 0x0005 is reserved for multi protocol encapsulation.
The size of a DVB MPE packet header is fixed. This type of packet header includes media access control (MAC) address bytes.FIG. 8 is a table that depicts syntax of a datagram_section in accordance with EN301192. MAC_address_190-1 through MAC_address_690-6 are six bytes—some or all of—which are conventionally used for MAC addressing of various network components.
FIG. 9 is a table that shows the syntax of a multiprotocol_encapsulation_info structure in accordance with EN 301192. A descriptor defines how many of the MAC address bytes are valid for MAC addressing.MAC_address_range92 is a 3-bit field that indicates the number of MAC address bytes that are used for differentiating multicast services.FIG. 10 shows the coding of the MAC_address-range field92 ofFIG. 9 in accordance with EN301192.FIG. 10 shows which MAC address bytes are valid for MAC addressing based on various MAC_address-range values. For a given value of MAC-address range92, the remaining MAC addressing bytes remain unused. For instance, for a MAC-address range value of 0x01, MAC-address bytes1 through5 remain unused. For a MAC-address range value of 0x02, MAC-address bytes1 through4 remain unused and so on.
InFIG. 9, there is a 3-bit field96 marked as reserved. Thisreserved field96 can be used to define different meanings for MAC address bits being used to signal time-slice information. For instance, one or more of these 3 reserved bits can be used to specify how bytes that are reserved, but not used, for MAC addressing are being used for time-slice information.
FIG. 30 illustrates an embodiment in which time-slice information is included in anadaptation field3002 of an MPEG II transport stream packet. Adaptationfield control bits3004 included in anMPEG II header3006 may be used to signal the presence of the time-slice information inadaptation field3002. In an illustrative embodiment,adaptation control field3004 includes two bits. A bit value of “00” may indicate that the adaptation field is reserved for future use, a bit value of “01” may indicate that a payload is present, but an adaptation field is not present, a bit value of “10” may indicate that an adaptation field is present, but no payload is present, and a bit value of “11” may indicate that an adaptation field and payload are present.
A terminal12 may be configured to analyze adaptationfield control bits3004 to determine whether or not theadaptation field3002 is present. When theadaptation field3002 is present, whether relative timing information is present and, if so, how it has been encoded may be determined from theadaptation field3002. If present, relative timing information may then be extracted from theadaptation field3002 for use in the manner described herein. Alternatively, a value of “00” for the adaptationfield control bits3004, may, in the future, be used in connection with specifying relative timing information.
Time-slice information can include the length of a burst, an amount of time between original bursts, the time between an original burst and a copy of the burst, and numbering of original bursts. This type of time-slice information can be placed into packet headers, for instance in the MAC address bytes90-1 through90-6 discussed above. Various combinations and permutations of this type of time-slice information can be placed into the packet headers. For example, the length of a burst and the amount of time between original bursts can be used without other time-slice information. Examples of time-slice information are discussed below in more detail in connection withFIGS. 17-29.
Referring again toFIG. 4, thedigital broadcast receiver41 sends the time-slicing signal51 to astream filtering unit43 to strip the encapsulation from the information signal which had been added by themulti-protocol encapsulator37. The encapsulation may carry Internet Protocol (IP) packets, for example. In a preferred embodiment, Boolean protocol filtering is used to minimize the amount of logic needed for filtering operations performed by thestream filtering unit43, and thus optimize the capacity of thedigital broadcast receiver41. A filtered information interval is then sent to a receiverelastic buffer45 which functions to temporarily store the information signal comprising any one of the transmission bursts53,55, and57 before being sent downstream to anapplication processor47 for conversion into an information data stream49. This action can be illustrated with reference to the graph ofFIG. 11 in which sawtooth waveform81 diagrammatically represents as a function of time the quantity of information signal stored in the receiverelastic buffer45. In a preferred embodiment, the size of the receiverelastic buffer45 in thereceiver system40 is substantially the same as the size of the firstelastic buffer35 in thetransmitter system20.
When the transmission burst53 has been received in the receiverelastic buffer45, the waveform81 reaches a firstlocal maximum83. The byte count stored in the receiverelastic buffer45 then decreases from the firstlocal maximum83 to a firstlocal minimum84 as corresponding information is transferred from the receiverelastic buffer45 to theapplication processor47. Preferably, the rate at which the contents of the receiverelastic buffer45 is transferred to theapplication processor47 is at least as great as the rate at which data information is placed into the firstelastic buffer35. This serves to insure that the receiverelastic buffer45 is available to store the next transmission burst55. When the next transmission burst55 is received at the receiverelastic buffer45, the waveform81 increases to a secondlocal maximum85 which decreases to a second local minimum86 as the received information interval is transferred from the receiverelastic buffer45 to theapplication processor47 for conversion to a data packet.
The process continues with the next transmission burst57 producing a thirdlocal maximum87 which decreases to a thirdlocal minimum88. Preferably, the receiverelastic buffer45 includes an ‘AE’ flag to indicate when an “almost empty”byte count82 has been reached and an AF flag to indicate when an “almost full”byte count89 has been reached. As explained in greater detail below, the AE and AF flags can be advantageously utilized to synchronize the powering up and the powering down respectively of thedigital broadcast receiver41 with the timing of incoming transmission bursts, such as the transmission bursts53,55, and57.
The data packets thus being converted from the received information intervals in the receiverelastic buffer45 are continuously reformatted into the information transmission stream49 by theapplication processor47 which functions to continuously input data from the receiverelastic buffer45. As can be appreciated by one skilled in the relevant art, while thedigital broadcast transmitter31 remains powered-up in a transmission mode during each transmission burst53,55, and57, thedigital broadcast transmitter31 can be advantageously powered down in the ‘idle’ time intervals between the transmission bursts53 and55, and between the transmission bursts55 and57 to reduce operational power requirements. Powering down can be accomplished, for example, by a controlled switch as is well-known in the relevant art.
In particular, thedigital broadcast transmitter31 can be powered down aftertermination point61 of transmission burst53 (shown at t=1 sec), and can remain powered-down until just beforeinitiation point63 of transmission burst55 (shown at t=40 sec). Similarly, thedigital broadcast transmitter31 can power down aftertermination point65 of transmission burst55 (shown at t=41 sec), and can remain powered-down until just beforeinitiation point67 of transmission burst57 (shown at t=80 sec). At the completion of the transmission burst57, indicated as termination point69 (shown at t=81 sec), thedigital broadcast transmitter31 can again be powered down.
Decoding of time-slice information can be done in theapplication processor47. Upon receiving a burst of packets,stream filtering unit43 filters (at least) one time slice and stores the filtered time slice's information to receiverelastic buffer45. Thestream filtering unit43 notifies theapplication processor47 that a new time slice has been received. Theapplication processor47 can then decode the time-slice information and start other processing as appropriate.
An information service provider sets the MAC_IP_mapping_flag 1-bit flag94 (FIG. 9) to ‘1’ if the service uses the IP to MAC mapping as described in IETF RFC1112. If this flag is set to ‘0’, the mapping of IP address to MAC address is done outside the scope of the EN 301192.
When receiving IP multicast services, the MAC address is generated from the IP address carried inside the data_gram section. So, IP address information is copied to the MAC address bits90-1 through90-6. The receiver, therefore, can perform address filtering also by using an IP address, and in that case all of the MAC address bits can be available for carrying time-slice information of for any other purpose.
In an illustrative embodiment of the invention, the time-slicingdigital broadcasting system30 includes one or more additional service providers, exemplified by asecond service provider18, shown inFIG. 4. Thesecond service provider18 sends asecond data signal26 to thedigital broadcast transmitter31 over a network link. The second data signal26 received from thesecond service provider18 is placed into a secondelastic buffer36 and likewise encapsulated using, for example, amulti-protocol encapsulator38. Amultiplexer33 processes the encapsulated signals from the firstelastic buffer35 and the secondelastic buffer36 into a time-division multiplexed (TDM) signal91, described in greater detail below, for broadcast to thedigital broadcast receiver41.
It should be understood that if only one service provider is sending information to thedigital broadcast transmitter31, the first service provider17 for example, themultiplexer33 is not required for operation of the time-slicingdigital broadcasting system30. Accordingly, in the first preferred embodiment, above, the signal in the firstelastic buffer35 can be provided directly to thedigital broadcast transmitter31 via themulti-protocol encapsulator37.
For the embodiment shown inFIG. 4, in which two service providers are supplying information signals, the TDM signal91, shown inFIG. 12, comprises a continuous series of transmission bursts, including transmission bursts53,55, and57 resulting from information signals provided by the firstelastic buffer35, interlaced with transmission bursts93,95, and97 resulting from information signals provided by the secondelastic buffer36. In the example provided, each of the transmission bursts93,95, and97 occurs approximately 10 seconds after a corresponding transmission burst53,55, or57. As can be appreciated by one skilled in the relevant art, the disclosed method is not limited to this 10-second spacing and other temporal spacing values can be used as desired. Moreover, if additional service providers are included in the time-slicingdigital broadcasting system30, one or more sets of interlaced transmission bursts (not shown) will be included in the TDM signal91.
In an illustrative embodiment of the invention, the powered-up receive mode of thedigital broadcast receiver41, inFIG. 4, is synchronized with a transmission window during which period thedigital broadcast transmitter31 is transmitting. Thus, for receipt of the time-slicing signal51, for example, thedigital broadcast receiver41 remains powered-up in a receive mode during each incoming transmission burst53,55, and57 and can be powered down in the time intervals between the transmission bursts53 and55, and between the transmission bursts55 and57.
By way of example, such synchronization can be achieved by using burst sizes of either fixed or programmable size, and by using the AE flag and “almost empty”byte count82, above, as a criterion to power up thedigital broadcast receiver41 and prepare to receive the next transmission burst after fixed or slowly-varying time intervals. That is, thedigital broadcast receiver41 acquires information intermittently broadcast as described above. The client may also configure the digitalbroadcast video receiver41 to tale into account any transmission delays resulting from, for example, a bit rate adaptation time, a receiver switch-on time, a receiver acquisition time, and/or a bit-rate variation time interval. A typical value for the adaptation time may be about 10 μsec, and for the switch-on times or acquisition times a typical value may be about 200 msec. Thedigital broadcast receiver41 is thus configured to power-up sufficiently in advance of an incoming burst to accommodate the applicable delay factors. Similarly, the AF flag and the “almost full”byte count89, above, can be used as a criterion to power-up thedigital broadcast receiver41.
In an illustrative embodiment of the invention, a TDMdigital broadcasting system100 is shown inFIG. 13 including a plurality of service providers101-107 sending respective information streams to corresponding elastic buffers111-117. The outputs of each of the elastic buffers111-117 are formatted by means of a plurality ofmulti-protocol encapsulators109 as described above. The respective outputs121-127 of themulti-protocol encapsulators109 are provided to a network operatorelastic buffer131 as shown. The size of the information interval stored in any of the elastic buffers111-117 is a function of time, as represented bysawtooth waveform121 inFIG. 14.
The network operatorelastic buffer131 stores a predetermined amount of buffered information from each of the elastic buffers111-117. The information is provided to amultiplexer133 and sent to adigital broadcast transmitter135 for broadcast as a TDM signal137. The network operatorelastic buffer131 functions to receive and store multiple inputs from each of the elastic buffers111-117 before outputting to themultiplexer133. In way of example, thewaveform140 inFIG. 15 represents the buffered information as a function of time in the elastic buffers111-117. Theinput121 received from the elastic buffer111 is represented atlocal peak value141 of thewaveform140, theinput123 received from theelastic buffer113 is represented at thelocal peak value143, theinput125 received from the elastic buffer115 is represented at thelocal peak value145, and theinput127 received from the elastic buffer117 is represented at thelocal peak value147.
The resulting TDM signal137 broadcast by thedigital broadcast transmitter135 is shown inFIG. 16 where the information stream provided by the service provider101 appears as transmission bursts151,153, and155 (here shown with solid fill for clarity). In a preferred embodiment, the multiplexer bandwidth is approximately 12 Mbit/sec, and transmission bursts151,153, and155 are correspondingly 12-Mbit/sec bursts of approximately one second duration. The transmission burst151, for example, may comprises three 4-Mbit/sec transmission bursts provided to the network operatorelastic buffer131 by the elastic buffer111. A subsequent 12-Mbit/sec transmission burst161 may comprise three 4-Mbit/sec transmission bursts provided to the network operatorelastic buffer131 by theelastic buffer113.
In an illustrative embodiment of the invention, the transmission bursts originating with a particular service provider may comprise a unique data stream. For example, the transmission bursts151,153, and155 comprise a first data stream, originating at the service provider17, where the data stream has a burst-on time of about 333 msec and a burst-off time of about 39.667 sec. The first data stream comprises subsequent transmission bursts occurring precisely every forty seconds (not shown), each transmission burst including information originating at the service provider17. Similarly, the transmission burst161 comprises a second data stream along with transmission bursts163,165, and subsequent transmission bursts (not shown) occurring every forty seconds, where the second data stream includes information originating at theservice provider19. In one alternative embodiment, thedigital broadcast receiver41 is synchronized to selectively receive only the first data stream, for example. Accordingly, in this embodiment thedigital broadcast receiver41 is powered-up for at least 333 msec every forty seconds to receive the transmission bursts151,153,155, and subsequent first-data-stream transmission bursts, and powered down in the interval time periods.
Returning now to the example, which was discussed above in connection withFIGS. 7-10, of encoding time-slice information in the context of DVB multi protocol encapsulation (MPE) of digital video broadcasting (DVB) packets, an example of data signals from various transmitter system components is provided in connection withFIGS. 17-21, wherein video service provider A101 includes a first data service and a second data service, and video service provider B103 includes a third data service and a fourth data service.FIG. 17 is a graph of bit rate against time for data of a first data service and of a second data service of video service provider A101 ofFIG. 13. The bit rate of the output signal of service provider A101 comprises thebit rate1701 of a first data service plus thebit rate1702 of a second data service.
FIG. 18 is a graph of bit rate against time for output of elastic buffer A111 ofFIG. 13. The portions of the signal labeled1701-1,1701-2,1701-3, and1701-4 correspond to data fromdata service1 of video service provider A101. The portions of the signal labeled1702-1,1702-2,1702-3, and1702-4 correspond to data fromdata service2 of video service provider A101.
FIG. 19 is similar toFIG. 17.FIG. 19 is a graph of bit rate against time for data of a third data service and of a fourth data service from video service provider B103 ofFIG. 13. The bit rate of the output signal of service provider B103 comprises thebit rate1903 of the third data service plus thebit rate1904 of the fourth data service.
FIG. 20 is similar toFIG. 18.FIG. 20 is a graph of bit rate against time for output ofelastic buffer B113 ofFIG. 13. The portions of the signal labeled1903-1,1903-2,1903-3, and1903-4 correspond to data fromdata service3 of video service provider B103. The portions of the signal labeled1904-1,1904-2,1904-3, and1904-4 correspond to data fromdata service4 of video service provider B103.
FIG. 21 is similar toFIGS. 18 and 20.FIG. 21 is a graph of bit rate against time foroutput signal140 from network operatorelastic buffer131 ofFIG. 13. The portions of the signal labeled1701-5,1701-6,1701-7, and1701-8 correspond to data fromdata service1 of video service provider A101. In accordance with an embodiment of the invention, the bit rate for these portions of thesignal140 is higher and the duration of each of these portions of thesignal140 is shorter than the corresponding portions1702-1,1702-2,1702-3, and1702-4 of the signal fromdata service1. Similarly, the portions of the signal labeled1903-5,1903-6,1903-7, and1903-8 correspond to data fromdata service3 of video service provider B103. In this manner, the portions of the data signal140 shown inFIG. 21 contains data fromdata services1,3,2, and4 in a repeating pattern.
As discussed above, time-slice information can include the length of a burst, an amount of time between original bursts, the time between an original burst and a copy of the burst, and numbering of original bursts.FIG. 22 shows apacket2200 including apacket payload2220 and a set of time slicing parameters2202-2218 that can be used in various permutations and combinations for signaling time-slice information, as described in more detail below. As will be apparent, time-slice information can be signaled using reserved unused bits of any suitable protocol, including, but not limited to, digital video broadcasting digital storage media command and control (DVB DSM-CC) section protocol.
Packet index2202 can be used for numbering packets within a time slice or burst of packets.FIG. 23 shows down numbering from 4 to 0 of packets2200-1 through2200-5 within atime slice2300 comprising 5packets2200. Numbering packets down to a predetermined value such as 1 or 0 can be used to signal the end of a burst of packets.
Similarlypackets2200 can be numbered in ascending order from a predetermined first value to signal the beginning of a burst of packets.
A time-slice-boundary indication2204 can be used for signaling a first packet of a burst of packets or a last packet of a burst of packets.FIG. 24 shows a value of 1 for time-slice-boundary indication2204-1 of packet2200-1 to indicate that this packet is the first packet of the time-slice or burst ofpackets2400. Similarly, time-slice-boundary indication2204-5 of packet2200-5 could have a different value, for than packets2200-1 through2200-4 to indicate that packet2200-5 is the last packet of the burst ofpackets2400. The time slice-boundary indication can be a single bit, in which case it can be used to signal either the first packet or the last packet of a burst of packets. By using a 2-bit time-slice-boundary-2204, both the first and last packets of a burst of packets can be identified.
When used as an indication of the first packet of a burst of packets, the time-slice-boundary indication2204 can be combined with thepacket index2202 in the down-counting mode to dynamically define the number of packets in a burst of packets.
Combining the time-slice-boundary indication2204 with thepacket index2202 in the down-counting mode provides a robust way of signaling the beginning of variable-length bursts of packets having less than or equal to a predetermined maximum number of packets. Similarly, when used as an indication of the last packet of a burst of packets, the time-slice-boundary indication2204 can be combined with thepacket index2202 in the up-counting mode to dynamically signal the end or last packet of variable-sized bursts of packets.
Bursts of packets can be transmitted more than once. This can be useful for error-detection and/or error-correction purposes. An original burst of packets refers to a first transmission of a burst of packets. A copy burst refers to a re-transmission of an original burst. Areceiver14 can usepacket indexes2202, when one or more copies of bursts are being transmitted, for uniquely identifyingpackets2200 to determine whether a particular original packet has already been correctly received.
FIG. 25 shows next burst indications2206-1 through2206-5 for which a value of 0 indicates that the next burst of packets for a particular data service will be a copy of a previously transmitted burst. Next burst indications2206-1,2206-2, and2206-4 have a value of 0, which indicate that bursts2500-2,2500-3, and2500-5 will be copies of previously transmitted bursts. A value of 1 indicates that the next burst to be transmitted will be an original burst. For example, next burst indication2206-3 has a value of 1, which indicates that the next burst2500-4 will be an original burst.
A value for the time to next original time-slice parameter2208 can be used to specify an amount of time between transmission of a current packet and the first-transmitted packet of the next transmitted original burst of packets from the same data service of the same information service provider from which the current packet came. As used herein, transmission may refer to a broadcast, multicast, or unicast, and data can include, but is not limited to, IP protocol-encoded data.FIG. 26 shows first and secondoriginal bursts2600 and2604 ofpackets2200. The value t1 of time to next original2208-5 represents an amount of time between transmission of packet2200-5, also referred to as the current packet, and packet2200-10, which is the first packet of the nextoriginal burst2604 from the data service and information service provider of the current packet. Twelve bits can be used to specify this type of information with a resolution of approximately 10 milliseconds. Similarly, value t1+12208-4 indicates an amount of time between transmitting packet2200-4 and packet2200-10, and value t1+22208-3 indicates an amount of time between transmitting packet2200-3 and packet2200-10.
If thereceiver14 receives an original burst of packets with errors, the receiver can then power itself up to receive any copy bursts corresponding to the correctly received original burst. If thereceiver14 receives an original burst of packets without errors, the receiver can then ignore any copy bursts corresponding to the correctly received original burst. Ignoring copy bursts in this manner can include keeping the receiver powered down during one or more time periods during which copy bursts to be ignored could otherwise be received.
A value for the time tonext copy parameter2210 can be used to specify an amount of time between transmission of a current packet and the first packet of the next transmitted copy burst of the current burst of packets from the same data service of the same information service provider.FIG. 27 shows anoriginal burst2700 and a copy burst2702 ofpackets2200. The value t2 of time to next copy2210-5 represents an amount of time between transmission of packet2200-5, also referred to as the current packet, oforiginal burst2700 and packet2200-1 of copy burst2702, which is the first packet of the next copy burst from the data service and information service provider of the current packet. Twelve bits can be used to specify this type of information with a resolution of approximately 10 milliseconds. Similarly, value t2+12210-4 indicates an amount of time between transmitting packet2200-4 oforiginal burst2700 and packet2200-1 of copy burst2702, and value t2+22210-3 indicates an amount of time between transmitting packet2200-3 oforiginal burst2700 and packet2200-1 of copy burst2702.
As discussed above in connection with the discussion of time to next original2208, if thereceiver14 receives an original burst of packets with errors, the receiver can then power itself up to receive any copy bursts corresponding to the correctly received original burst. If thereceiver14 receives an original burst of packets without errors, the receiver can then ignore any copy bursts corresponding to the correctly received original burst.
A value for the time to next burst time-slice parameter2212 can be used to specify an amount of time between transmission of a current packet and the first packet of the next transmitted burst of packets-regardless of whether the next burst is an original burst or a copy burst-from the same data service of the same information service provider.FIG. 28 shows anoriginal burst2800 and a copy burst2802 ofpackets2200. The value t3 of time to next burst2212-5 represents an amount of time between transmission of packet2200-5, also referred to as the current packet, oforiginal burst2800 and packet2200-1 of copy burst2802, which is the first packet of the next copy burst from the data service and information service provider of the current packet. Twelve bits can be used to specify this type of information with a resolution of approximately 10 milliseconds. Similarly, value t3+12212-4 indicates an amount of time between transmitting packet2200-4 oforiginal burst2800 and packet2200-1 of copy burst2802, and value t3+22212-3 indicates an amount of time between transmitting packet2200-3 oforiginal burst2800 and packet2200-1 of copy burst2802. Similarly, the value t4 of time to next burst2212-10 represents an amount of time between transmission of packet2200-5, also referred to as the current packet, of copy burst2802 and packet2200-6 oforiginal burst2804, which is the first packet of the nextoriginal burst2804 from the data service and information service provider of the current packet. Similarly, value t4+12212-9 indicates an amount of time between transmitting packet2200-4 of copy burst2802 and packet2200-6 oforiginal burst2804, and value t4+22212-8 indicates an amount of time between transmitting packet2200-3 of copy burst2802 and packet2200-6 oforiginal burst2804.
As discussed above in connection with the discussion of time to next original2208 and time tonext copy2210, if thereceiver14 receives an original burst of packets with errors, the receiver can then power itself up to receive any copy bursts corresponding to the correctly received original burst. Based on time tonext burst2212, however, even if thereceiver14 receives an original burst of packets without errors, the receiver may need to be powered up for a copy regardless of having correctly received the original burst.
Bursts of packets can be indexed with atime slice index2214 such that original bursts are uniquely indexed and copy bursts have the same indexes as their corresponding original bursts.FIG. 29 shows two original bursts2900-1 and2900-4, which have values of 1 and 2 for time slice indexes2214-1 and2214-4. Copy bursts2900-2 and2900-3 are copies of original burst2900-1. These copy bursts2900-2 and2900-3 therefore have the same value of 1 for their respective time slice indexes2214-2 and2214-3. Similarly, copy burst2900-5, which is a copy of original burst2900-4, has the same time slice index value of 2 as original burst2900-4.
A time-slice-duration parameter2216 can be used to indicate how long transmission of a current burst of packets takes. Areceiver14 can set a timer to shut the receiver off after an amount of time corresponding to the time slice duration2216 elapses from the beginning of reception of a burst of packets. Time slice duration2216 can be specified as a 4-bit value in increments of 100 milliseconds. Thereceiver14 can also shut the receiver off a predetermined amount of time after the beginning of reception of a packet.
A maximum transmission unit (MTU) size parameter2218 can be used to optimize receiver memory usage. Values such as 1024, 2048, and 4096 kilobytes, as well as other suitable values, can be used for this parameter.
As mentioned above, various permutations and combinations of the time-slice parameters2202-2218 can be used for signaling time-slice information. For instance, an 8-bit packet index2202 in down-counting mode, a 1-bit next burst indication2206 that indicates whether the next burst is an original burst or a copy burst, a 1-bit time-slice boundary indication2204 that indicates the beginning of a time slice, a 12-bit time tonext burst2212 having a resolution of 10 milliseconds, and a 4-bit time-slice duration having a resolution of 100 milliseconds can be used together to signal time-slice information. If the remaining time-slice parameters are not used, signaling time-slice information this way uses 26 bits. If MPE packet header bytes reserved, but unused, for MAC addressing are used for signaling time-slice information with the time-slice parameters discussed in this paragraph, 2 MAC addressing bytes would remain available for MAC addressing.
Alternatively, an 8-bit packet index2202 in down-counting mode, a 1-bit next burst indication2206 that indicates whether the next burst is an original burst or a copy burst, a 1-bit time-slice boundary indication2204 that indicates the beginning of a time slice, a 12-bit time to next original2208 having a resolution of 10 milliseconds, a 12-bit time tonext copy2210 having a resolution of 10 milliseconds, and a 4-bit time-slice duration having a resolution of 100 milliseconds can be used together to signal time-slice information. If the remaining time-slice parameters are not used, signaling time-slice information in this manner uses 38 bits. If MPE packet header bytes reserved, but unused, for MAC addressing are used for signaling time-slice information with the time-slice parameters discussed in this paragraph, 1 MAC addressing byte would remain available for MAC addressing.
While the invention has been described with reference to particular embodiments, it will be understood that the invention is by no means limited to the particular constructions and methods herein disclosed and/or shown in the drawings, but also comprises any modifications or equivalents within the scope of the claims.