The present method and apparatus relate to telecommunications. More specifically, the present method and apparatus relate to high-speed data multiplexing of telecommunications data signals.
People have generally come to rely on telecommunications more than ever before. The growing demand for telecommunications services has fueled improvements in the capabilities of devices and protocols designed to reliably and quickly process and transmit the service signals. For example, video-on-demand (VOD) services now allow subscribers to order and view video programs anytime.
However, VOD services are highly demanding of resources. In satellite or cable television communications for example, a VOD program is typically assigned to a single telecommunications transport stream that delivers the video program signals to the subscriber. When many people order different programs, bandwidth and other system resources are quickly consumed. Moreover, the increasing number of program signals being requested and delivered to specific subscriber locations at selectable times complicates the processing, routing, and delivery of VOD programs. There exists a need for telecommunications devices that have improved capabilities for flexibly and quickly processing large quantities of telecommunications signals, especially demanding signals such as video-on-demand.
Further, in mixed-protocol networks, video program signals are typically transmitted to subscribers using different transmissions protocols and mediums. One common protocol used for compressing video programs for transmission is known as Motion Picture Experts Group (MPEG). A video program can be represented and transmitted as an MPEG transport stream over mediums such as digital video broadcast over asynchronous serial interfaces (commonly referred to as ASI) and gigabit Ethernet (GigE). Each transport stream may carry single or multiple service programs. While GigE mediums are generally capable of higher performance when compared with ASI mediums, ASI compliant devices are already deployed in many networks. Therefore, it is desirable for telecommunications devices to support different types of video transport streams.
The present method and apparatus provide high-speed data multiplexing of telecommunications data signals. In one of many possible embodiments, an apparatus provides for high-speed multiplexing of Motion Picture Experts Group (MPEG) transport streams in a cable network. The apparatus includes an input interface, a demultiplexer, and an output interface. The input interface is configured to receive a number of transport streams carrying programming services. The demultiplexer is configured to access user-defined logic and to generate the internal transport streams based on the user-defined logic. The demultiplexer is further configured to add the programming services to at least one of the internal transport streams based on the user-defined logic. The output interface is configured to output the internal transport streams.
The accompanying drawings illustrate various embodiments of the present method and apparatus and are a part of the specification. Together with the following description, the drawings demonstrate and explain the principles of the present method and apparatus. The illustrated embodiments are examples of the present method and apparatus and do not limit the scope thereof.
Throughout the drawings, identical reference numbers designate similar, but not necessarily identical, elements.
I. Introduction
The present specification describes apparatuses and methods for high-speed data multiplexing. More specifically, the present apparatuses and methods provide the ability to multiplex and otherwise process large quantities of MPEG data at high speeds. This can be accomplished by implementing logic and devices configured to perform aliasing, duplicating, demultiplexing, multiplexing, and routing functions on MPEG transport streams. A host controller operating in the background can receive logic configurations from a cable operator and load the logic configurations into a lookup table. The values in the lookup table can be accessed and entries identified based on packet and source identifiers association with the MPEG transport streams. The MPEG transport streams are then multiplexed according to the identified values in the lookup table. With these features and the features described below, the present apparatuses and methods can be implemented to provide high-speed multiplexing and reliable delivery of data transport streams carrying audio/video programs (e.g., video-on-demand programs) to subscribers over cable, satellite, or other networks.
In addition, the present methods and apparatuses can be configured to receive and process MPEG data in different formats (e.g., Ethernet and ASI). The MPEG data can then be output in different formats, including Ethernet, ASI, and quadrature amplitude modulation (QAM) radio frequency (RF) outputs. This allows cable operators to implement the present methods and apparatuses to utilize the speed of Ethernet technologies while still leveraging already-deployed ASI units.
In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present method and apparatus for high-speed data multiplexing. It will be apparent, however, to one skilled in the art that the present apparatus and method may be practiced without these specific details. Reference in the specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. The appearance of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment.
As will be discussed in detail below, the SEM devices (100) are configured to process the received data transport streams in preparation for sending multiplexed output transport streams downstream to subscriber locations (150). Communication mediums and protocols between the headend (110) and the subscriber locations (150) may comprise any communications mediums and protocols known to those skilled in the art, including but not limited to fiber optics, coaxial cable, hybrid fiber-coax, wireless, Ethernet, ASI, radio frequency (RF), etc.
While
The cable network shown in
The transport streams can be in the form of different signaling protocols. For example, the VOD server (120) and/or the headend (110) are able to provide transport streams in MPEG (e.g., MPEG-2) format, which includes streams of MPEG packetized data. The SEM device (100) receives and processes the MPEG transport streams. The SEM device (100) is configured to selectively encrypt and route the MPEG transport streams to appropriate subscriber locations (150) based on routing instructions defined by the cable operator in the SEM device (100). The SEM device (100) can then output service program signals to appropriate subscribers at the subscriber locations (150). These functions and features of the SEM device (100) will be described in detail below.
In the context of video-on-demand programs, a subscriber at a particular subscriber location (150) may request delivery of a video-on-demand (VOD) program. In response, the VOD server (120) provides the requested VOD program, and the SEM device (100) at the headend (110) receives a transport stream containing data representative of the requested program. The SEM device (100) processes the transport stream in accordance with parameters defined by the cable operator to prepare output containing data representative of the requested program for transmission to the subscriber locations (150). As will be discussed below, the SEM device (100) is configured to process large quantities of such transport streams in this manner to provide high-speed multiplexing and reliable delivery of service programs to the subscriber locations (150).
MPEG data transport streams can be propagated through the cable network of
II. SEM Device Inputs and Outputs
A. GigE Ports
The SEM device (100) can include gigabit Ethernet (GigE) ports (210) configurable for receiving and/or transmitting GigE input and/or output (212). The GigE ports (210) can comprise small form factor pluggable (SFP) optical interfaces.
B. ASI Ports
The GigE ports (210) and ASI ports (220) are configured not only to receive MPEG transport streams from the headend (110;
C. 10/100 Base-T Ports
The SEM device (100) can include a number of 10/100 Base-T ports (230) for receiving and transmitting 10/100 Base-T signals (232). The 10/100 Base-T ports (230) can comprise RJ-45 interfaces. Typically, the 10/100 Base-T ports (230) are configured for both input and output. As will be discussed below in more detail, the SEM device (100) generally uses the 10/100 Base-T signals (232) for control commands and feedback.
D. ASI Monitor Port
E. RF Output Ports
The SEM device (100) can include a number of RF output ports (260) for transmitting RF output (262). The RF output (262) can include quadrature amplitude modulated (QAM) signals that can carry service programs to the subscriber locations (150;
III. SEM Device Components and Operation
The QAM modulator (360) receives multiplexed transport streams from the Mux FPGA (330) and is able to modulate the transport streams for output as RF output (262). For example, the QAM modulator (360) can modulate the transport streams up to 256-QAM for transmission to the subscriber locations (150;
The internal transport streams can be selectively sent to an encryption module (370) for encryption processing. The SEM device (100) is configured to append encryption identifiers to the transport stream packets to indicate whether the transport stream should be encrypted with the encryption module (370). The encryption module (370) can be bypassed by transport streams that include a “no encryption” identifier. The appending and monitoring of the encryption identifiers will be described in more detail below.
The processing of input transport streams, internal transport streams, and output transport streams through the GigE transceiver (310), GigE processor (320), Mux FPGA (330), ASI transceiver (340), ASI monitor transmitter (350), QAM modulator (360), and encryption module (370) is controlled by a host processor (380) that is coupled to the GigE processor (310), Mux FPGA (330), and encryption module (370) via a peripheral connection interface (PCI) bus (390). The cable operator can utilize control signals (e.g., 10/100 Base-T input/output (232)) to direct or configure the host processor (380). The host processor (380) can then communicate instructions to and receive feedback signals from the GigE processor (320), Mux FPGA (330), and encryption module (370) over the PCI bus (390). The components shown in
A. GigE Transceiver
With respect to the reception and processing of GigE input (212), MPEG-2 input transport streams in GigE format can be received by the GigE transceiver (310). The GigE transceiver can employ any technology known in the art for interfacing with SFP connector interfaces to receive and transmit GigE transport streams.
B. GigE Processor
The GigE transceiver (310) sends the received GigE transport streams to the GigE processor (320). The transport streams received from the GigE transceiver (310) are encapsulated in gigabit Ethernet frames. Each GigE frame includes an IP datagram and a User Datagram Protocol (UDP) segment having up to seven MPEG-2 transport packets from one or more unique packet identifier (PID) streams. The UDP segment may contain MPEG packets from a single or multiple service program transport streams. The GigE processor (320) can remove jitter from the MPEG Ethernet packets based on the incoming transport stream bit rate and the variable delay through the cable network. The GigE processor (320) buffers and time-stamps the incoming transport streams.
The GigE processor (320) identifies the IP addresses of the incoming packets to determine whether the packets are to be processed by the particular SEM device (100). The GigE processor (320) then peels the IP packets to their user datagram protocol (UDP) layer and informs the host processor (380) via the PCI bus (390) of what is identified as incoming input. The GigE processor (320) can be configured to append routing tags to packet streams to indicate an internal transport stream to which the packet should be routed. This selection may be based on logic loaded by the host processor (380). In one embodiment, the GigE processor (320) is based on the BCM1250 processor provided by Broadcom Corporation of Irvine, Calif. An integrated chip mulip-processor (CMP) based on the BCM1250 dual processor can be configured to perform the GigE processor (320) functions described herein.
C. Host Processor
The host processor (380) can process the packet messages in accordance with logic defined by the cable operator, thereby taking user entry into account for the processing of the packets. Based on the user-defined logic, the host processor (380) determines which data packets to filter and which data packets to encrypt and compose into a transport stream. The host processor (380) is able to instruct the GigE processor (320) and Mux FPGA (330) of how to package and build sixteen internal transport streams from the input transport streams, including setting the out-going bit rate for each of the sixteen output transport streams. In one embodiment, each of the outgoing transport streams is generated with the same rate. The process of generating up to sixteen output transport streams from the input transport streams based on user-defined logic includes functions such as buffering, demultiplexing, multiplexing, collecting MPEG program association tables (PATs), collecting MPEG program map tables (PMTs), MPEG packet identifier (PIED) aliasing, MPEG PID remapping, rate conversion, and routing. The host processor (380) is configured to work with the Mux FPGA (330) and the GigE processor (320) to perform these steps, which steps will be discussed in detail below.
D. Encryption Module
Once the internal transport streams have been generated, the encryption module 370 can encrypt any of the transport streams having an encryption identifier. As denoted by the dotted lines of the encryption module (370) shown in
E. ASI Transceiver
The SEM device (100) can process ASI input (222) similar to the processing of GigE input (212) described above. The ASI transceiver (340) receives ASI input (222) transport streams via the ASI ports (220;
F. Mux FPGA
GigE transport streams are received from the GigE processor (320;
The GigE transport streams are received into a first-in-first-out (FIFO) buffer (408), where the transport stream packets are held before being sent to a demultiplexer (Demux) (412).
The Mux FPGA (330) is also configured to receive ASI transport streams from the ASI transceiver (340;
From the ASI input interface (416), the ASI transport streams travel to a multiplexer (Mux) (420), which multiplexes the ASI transport streams into a single transport stream having a bit rate equal to the aggregate of the bit rates of the incoming ASI transport streams (up to a maximum of approximately 900 Mbits per second). This single transport stream is then received by a FIFO buffer (424), where the transport stream packets are held before being sent to the demultiplexer (Demux) (412).
In one embodiment, the transport streams received by the Demux (412) comprise MPEG-2 data packets. The packet structure received at the Demux (412) can include 196 bytes, of which four bytes identify the source port that received the packet, four bytes contain a timestamp, and 188 bytes contain the MPEG-2 packet. The timestamp and source port bytes can be appended to incoming MPEG-2 packets when received by the SEM device (100). The five lowest significant bits of the first four bytes of each packet identify a target transport stream, i.e., one of the sixteen internal transport streams that will be generated by the Demux (412), to which the incoming packet will be added. The packet also contains an additional bit to differentiate between GigE transport streams and ASI transport streams to enable the SEM device (100) to recognize in which form of input the packets are encapsulated.
The Demux (412) is configured to generate internal transport streams from multiplexed ASI transport stream (now a single transport stream) and the GigE transport streams. In the embodiment shown in
The multiplexed transport stream is sent from the ASI/GigE Mux (432) to a packet buffer (434) and a PID/Source extractor (436). The packet buffer (434) holds the transport stream packets while the PID/Source extractor (436) extracts packet identifiers (PIDs) and source identifiers from the packets. The packet buffer (434) can comprise a random access memory (RAM) or other suitable type of memory.
The PID/Source extractor (436) is configured to extract packet identifiers (PID) and source identifiers from the packets of the transport stream received from the ASI/GigE Mux (432). The source identifier indicates the port by which the packets were received. As mentioned above, the source identifier is appended to incoming packets of the transport streams. MPEG packet identifiers (PIDs) are known to those skilled in the art and can be used to identify particular service programs or transport streams with which packets are associated. For example, a stream of packets representative of a particular service program may carry a particular PID.
The extracted identifiers can be sent to a synchronous dynamic random access memory (SDRAM) (440), which contains a lookup table configured for using the extracted PID and source identifiers to identify new PIDs to be assigned to packets of generated internal transport streams. An embodiment of the look-up table will be discussed in more detail below. The assignment of new PIDs to the packets is referred to as PID aliasing and is utilized to allow for PID duplication/replication without introducing identical PID values into the same transport stream. This allows output transport streams to contain multiple duplicate programs because the duplicate programs are assigned unique new MPEG packet identifiers (PIDs). With this feature, the SEM device (100) can take an incoming program and replicate it multiple times across any of the sixteen internal transport streams, which allows the program to be distributed to multiple subscribers.
To enable PID duplication, the entries in the lookup table of the SDRAM 440 should include a number of options for new PID values. For example, in one embodiment, up to sixteen entries exist for every PID lookup, one for each internal transport stream. In other words, sixteen PID aliases are available for each PID lookup. Each packet can be subjected to the PID aliasing process multiple times (e.g., eight times) to allow for PID duplication.
The new PIDs are sent to two PID alias buffers (442). The PID alias buffers (442) also receive the transport stream packets from the packet buffer (434). Each of the PID alias buffers (442) receives a separate transport stream. The new PIDs are then inserted into the appropriate packets of the transport streams. The transport streams having the new PIDs are then sent to a transport stream buffer (444) having two separate RAM buffers (446, 448). The first RAM buffer (446) forms internal transport streams buffers for the received transport streams [0-7]. The second RAM (448) buffer forms internal transport stream buffers for received transport streams [8-15]. The formation of the internal transport streams, including steps for determining which incoming service programs are assigned to which internal transport stream buffers, will be discussed in further detail below in relation to the look-up table of the SDRAM (440). In one embodiment, each of the RAM buffers (446, 448) includes a buffer for each of the sixteen internal transport streams. These buffers can be configured to hold up to forty-two packets for each of the internal transport streams.
Each RAM buffer (446, 448) is read out independently by read buffers (450, 452). An arbiter is implemented for each RAM buffer (446, 448) to determine which of the eight internal transport stream buffers should be read. The generated internal transport streams are sent from the RAM buffers (446, 448) to rate conversion blocks (458, 460;
Returning now to
As shown in
Returning now to
Two different sources are included for generating bit rates for the internal transport streams. If the output is to be by QAM RF output (262;
In one embodiment, the NCO uses a twenty-two bit accumulator and a 188 down counter both running at 54 MHz. Every time the accumulator rolls over, the down counter is incremented. When the down counter count reaches zero, a packet tick is generated. The accumulator rollover rate, the packet tick rate, and thus the bit rate can be determined using the following equations, in which A is a twenty-one bit programmable offset value, RO is the accumulator rollover rate, TR is the packet tick rate, and BR is the bit rate:
Based on the above equations, the NCO is capable of producing bit rate values from approximately 103 bits per second up to approximately 432 Mega bits per second.
A timestamp counter will be latched at each packet tick as a packet is read from the Demux (412) to the rate conversion blocks (458, 460). The latched timestamp is then compared with the appended timestamp (discussed above) to determine a program clock reference (PCR) correction value. Those skilled in the art will understand the use of the PCR correction value in the bit rate conversions performed at the rate conversion blocks (458, 460). A programmable eight-bit offset can also be added to the PCR correction value to offset fixed delays.
The programmable rate conversion for the internal transport streams allows the SEM device (100) to maximize utilization of available bandwidth. If only a few transport streams are being generated, those transport streams can be converted to higher bit rates up to an aggregate value of nearly 1 gigabit per second (e.g., 900 Mbits per second). The SEM device (100) is also able to use rate conversion to support higher numbers of transport streams by converting the bit rates to lower values that preferably add up to the maximum aggregate bit rate. In this manner, the SEM device (100) is able to assign bit rates that maximize utilization of available bandwidth for different and varying numbers of transport streams.
As shown in
The message capture control (462) can be configured to extract messages from the incoming ASI streams. In one embodiment, the message capture control (462) can extract up to 128 PIDs and write them to memory at the host processor (380;
As the internal transport streams are being generated, the host processor (380;
Once the packets of the internal transport streams have been converted to desired bit rates and appropriate data messages have been inserted, the internal transport streams are sent to an encryption input interface (468). The encryption input interface (468) processes the packets of the transport streams in preparation for transmission to the encryption module (370), which may be on a board separate from the Mux FPGA (330;
The encryption module (370) can include an access control processor (ACP) configured to encrypt the transport streams according to any known encryption methods. The encryption module (370) then sends the encrypted transport streams back to the Mux FPGA (330;
Not every transport stream or program in a transport stream will be sent to the encryption module (370) for encryption. As shown in
The transport streams can be sent from the encryption output interface (470) to different interfaces for different types of output. As shown in
The Ethernet Mux (472) is configured to re-mulitplex the transport streams (e.g., transport streams [0-15]) into a single transport stream. The Ethernet Mux (472) appends a time stamp and an identifier indicating the source port to each packet of the incoming transport streams. The packets for each transport stream are then stored in FIFO buffers. The packets are then read from the FIFO buffers into a multiplexer that multiplexes the transport streams into the single transport stream. The single transport stream undergoes PCR correction and is sent to the GigE processor (320;
The QAM output interface (474) includes a channel for each of the transport streams [0-7]. The QAM output interface (474) receives an information clock signal from a QAM module (not shown) of the SEM device (100). The information clock signal is at the MPEG rate for each of the channels. The QAM output interface (474) can include FIFO buffers for each of the channels and can output one data bit from each FIFO buffer on the rising edge of each information clock cycle. The QAM output interface (474) further includes a packet counter that counts and issues packet ticks to the rate conversion blocks (458, 460). On each packet tick, an MPEG packet is converted to a serial stream and written into the FIFO buffer along with a sync bit. The sync bit will be “true” for the first bit of the MGEG packet.
Note that while only four RF output ports (260;
The ASI interface (476) shown in
The ASI interface (476) is also configured to receive and output the ASI monitor signal (252;
IV. Exemplary Process Flow
At step 720, target internal transport streams are determined for routing based on the logic in the lookup table (600;
At step 730, PIDs can be replicated to duplicate service programs across or within the internal transport streams. PID duplication is made possible by aliasing PIDs at step 740. New PIDs are identified in the lookup table (600;
At step 750, messages are injected in the internal transport streams. The host processor (380;
At step 760, the internal transport streams are generated at user-defined bit rates. The bit rates can be determined from information in the lookup table. The ability to convert transport streams to different bit rates provides the capability to maximize usage of available bandwidth based on the number of transport streams and service programs that are being processed. The bit rate conversion can be performed in any of the ways discussed above.
At step 770, the internal transport streams are selectively encrypted based on encryption bits in the packets. The encryption bits are appended to the internal transport stream packets based on the identified logic in the lookup table (600;
At step 780, the internal transport streams are output. Output streams can take the form of GigE, ASI, and QAM RF signals. In one embodiment, incoming GigE transport streams can be multiplexed by the SEM device (100) as described above and output as GigE transport streams, while incoming ASI transport streams can be multiplexed and output as GigE, ASI, or QAM RF signals. In one embodiment, the aggregate rate of the output signals can reach up to nearly one gigabit per second (e.g., approximately 900 Mbits per second). Any of the functions described above can be implemented to perform the steps shown in
The steps discussed above can be performed by processors being directed by instructions stored on computer-readable mediums. The instructions direct execution of the steps described above. Any type of computer-readable medium known in the art may be used. In one embodiment, SDRAM is used to store the instructions. The instructions can be in the form of software, firnware, embedded code, microcode, machine language, and the like.
V. Conclusion
In conclusion, the present apparatuses and methods described above provide capabilities for high-speed data multiplexing, routing, and selectively encrypting of MPEG transport streams of different formats. Transport stream packets can be aliased, duplicated, and multiplexed into internal transport streams for transmittal to appropriate subscriber locations. A host processor running in the background allows cable operators to define and implement logic to control the multiplexing of transport streams according to the operator's desired configuration. The logic is made accessible to a multiprocessor integrated chip for controlling multiplexing processes. The transport streams are multiplexed based on logic implemented in a lookup table with reduced latency that enables high-speed performance. Wide buses and high transmission and clock frequencies also help enable the high-speeds of the transport streams.
Moreover, the methods and apparatuses convert multiplexed transport streams to rates that utilize available bandwidth. The aggregate bit rates for the multiplexed transport streams can reach up to approximately 900 Mbits per second, according to one embodiment. In one embodiment, an MPEG-2 cross-point switch is provided that is able to handle up to approximately 900 Mbits per second of MPEG-2 data.
The apparatuses and methods allow cable operators to utilize Ethernet speeds and technologies while still leveraging deployed ASI devices. The SEM device (100;
VI. Alternative Embodiments
The preceding description has been presented only to illustrate and describe the present method and apparatus. It is not intended to be exhaustive or to limit the present method and apparatus to any precise form disclosed. Many modifications and variations are possible in light of the above teaching.
The foregoing embodiments were chosen and described in order to illustrate principles of the method and apparatus as well as some practical applications. The preceding description enables others skilled in the art to utilize the method and apparatus in various embodiments and with various modifications as are suited to the particular use contemplated. It is intended that the scope of the method and apparatus be defined by the following claims.
This application claims priority under 35 U.S.C. §119(e) to U.S. Provisional Patent Application Ser. No. 60/506,274, filed on Sep. 26, 2003, the contents of which are hereby incorporated by reference in their entirety.
Number | Date | Country | |
---|---|---|---|
60506274 | Sep 2003 | US |