Abstract:
An apparatus for dynamically controlling the delivery of data over a network is provided. The apparatus includes a network interface circuit with at least one communication port adapted to be coupled to a network. The apparatus further includes an encoder that is communicatively coupled to the network interface circuit. The encoder is adapted to receive data from a source and to encode the data with a selectable level of compression. The network interface circuit includes a control mechanism that provides a signal to select the level of compression for the encoder based on at least one parameter.

Description:
[0001]     This application is a continuation of U.S. application Ser. No. 09/598,642, filed on Jun. 21, 2000. 
     
    
     TECHNICAL FIELD  
       [0002]     The present invention relates generally to the field of telecommunications and, in particular, to reducing loss in transmission quality under changing network conditions.  
       BACKGROUND  
       [0003]     Telecommunication networks transport signals between devices, e.g., telephones, computers, facsimile machines, televisions and other devices, at diverse locations. Originally, telecommunication networks were designed to carry primarily voice traffic. Thus, the telephone network was designed around frequency channels with a narrow frequency band, e.g., a low data rate.  
         [0004]     With the introduction of computers, the telephone networks have been called on to carry additional types of traffic, e.g., video, and high-speed data. Further, new telecommunications networks have been developed, e.g., asynchronous transfer mode (ATM) networks, to respond to the need for transmitting higher volumes of data at higher speeds.  
         [0005]     Video traffic typically is data intensive. To reduce the burden of the video traffic on the telecommunications network, it is common practice to compress the video data prior to transmission. Several standards exist for compressing video data. For example, the Motion Picture Expert Group has promulgated a family of standards for compression of video data referred to as the “MPEG” standards. Under these standards, the amount of data compression is selectable and can vary from application to application. With video compression, an encoder essentially transmits signals to a corresponding decoder that includes changes in the video image from frame-to-frame. The decoder reproduces the original video signal based on the transmitted changes.  
         [0006]     Once compressed, video data is typically provided to a transport network, e.g., an ATM network, through a network interface card. The network interface card used in a specific embodiment depends on the type of connection to the network. For example, an inverse multiplexer (IMUX) is used in some systems to provide a connection to the network via a plurality of time division multiplexed connections, e.g., T1, and E1 connections. The ATM Forum has promulgated a specification for transport of ATM cells using an inverse multiplexer. The standard is titled “Inverse Multiplexing for ATM (IMA) Specification Version 1.1,” AF-PHY-0086.001, March 1999 (the “IMA Specification”). The IMA specification is incorporated by reference. In other systems, the network interface card comprises an interface for a DS3 line or other appropriate interface card based on the type of connection to the network.  
         [0007]     In current designs, a problem exists in delivering compressed video over a network via an IMUX network interface card such as an IMA compliant IMUX. The problem arises when one of the plurality of T1 or E1 connections carrying the video data to the network is lost. When the connection is lost, the available bandwidth that was used to deliver the video data is reduced. Eventually, some of the video data is lost during transmission over the network.  
         [0008]     At the video decoder, the results of the loss of the connection can be catastrophic. The video decoder continues to attempt to reconstruct the video signal from the data received over the network. With portions of the data missing, the decoder begins to produce a lower quality video output since not all changes for a given frame are received. Due to the nature of compressed video, this problem is only compounded with each passing frame of video. Thus, it does not take long before the quality of the video output at the receiver is completely degraded.  
         [0009]     For the reasons stated above, and for other reasons stated below which will become apparent to those skilled in the art upon reading and understanding the present specification, there is a need in the art for a mechanism that reduces loss in transmission quality under changing network conditions.  
       SUMMARY  
       [0010]     The above-mentioned problems with telecommunications networks and other problems are addressed by embodiments of the present invention and will be understood by reading and studying the following specification. Embodiments of the present invention provide a mechanism that assures quality of data transmission over a network by monitoring at least one parameter for the network and, when necessary, adjusting the compression of data to account for the changed condition. Advantageously, this mechanism operates on the fly and can account for changes on a frame-by-frame basis in video transmission.  
         [0011]     More particularly, in one embodiment an apparatus for dynamically controlling the delivery of data over a network is provided. The apparatus includes a network interface circuit with at least one communication port adapted to be coupled to a network. The apparatus further includes an encoder that is communicatively coupled to the network interface circuit. The encoder is adapted to receive data from a source and to encode the data with a selectable level of compression. The network interface circuit includes a control mechanism that provides a signal to select the level of compression for the encoder based on at least one parameter. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0012]      FIG. 1  is a block diagram of an embodiment of a telecommunications network including an access device with a control mechanism that establishes a level of compression for an encoder for at least one data source according to the teachings of the present invention.  
         [0013]      FIG. 2  is a flowchart of an embodiment of a process for the operation of the network of  FIG. 1 .  
         [0014]      FIG. 3  is a flowchart of an embodiment of a process for generating a control signal to adjust a level of compression for an encoder in an access device according to the teachings of the present invention.  
         [0015]      FIG. 4  is a flowchart of an embodiment of a process for adjusting a level of compression for an encoder in an access device of a telecommunications network according to the teachings of present invention.  
         [0016]      FIG. 5  is a flowchart of another embodiment of a process for adjusting a level of compression for an encoder in an access device of a telecommunications network according to the teachings of the present invention.  
         [0017]      FIG. 6  is a block diagram of an embodiment of a distance learning system that includes a plurality of access devices each with a control mechanism that establishes a level of compression for an encoder for at least one data source according to the teachings of the present invention. 
     
    
     DETAILED DESCRIPTION  
       [0018]     In the following detailed description, reference is made to the accompanying drawings that form a part hereof, and in which is shown by way of illustration specific illustrative embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention, and it is to be understood that other embodiments may be utilized and that logical, mechanical and electrical changes may be made without departing from the spirit and scope of the present invention. The following detailed description is, therefore, not to be taken in a limiting sense.  
         [0019]      FIG. 1  is a block diagram of an embodiment of a telecommunications network, indicated generally at  100 , including access devices  102 - 1 , . . . ,  102 -N each with an associated control mechanism  104 - 1 , . . . ,  104 -N that establishes a level of compression for an associated encoder  106 - 1 , . . . ,  106 -N for at least one data source according to the teachings of the present invention. Network  100  further includes transport network  108  that couples access device  102 - 1 , . . . ,  102 -N together. Due to the similarities between access device  102 - 1  and  102 -N, only access device  102 - 1  is described in detail. However, it is understood that the other access devices in network  100  are constructed in a similar manner. Further, although only two access devices are shown in  FIG. 1 , it is understood that any appropriate number of access devices may be included in a particular application.  
         [0020]     Access device  102 - 1  is coupled to transport network  108  through network interface circuit  110 - 1 . In one embodiment, network interface circuit  110 - 1  comprises an inverse multiplexer (IMUX) that is compliant with the IMA Specification incorporated by reference above. In other embodiments, network interface circuit  110 - 1  comprises a network interface card that is compatible with a communication medium used to connect access device  102 - 1  with transport network  108 , e.g., an inverse multiplexer, a DS3 card, a network interface card for an optical link or the like.  
         [0021]     Network interface circuit  110 - 1  includes a plurality of ports  112 - 1  for connection to transport network  108 . Ports  112 - 1  are coupled to transport network  108  over a plurality of communication links  114 . In one embodiment, transport network  108  comprises an asynchronous transfer mode (ATM) network. Further, in one embodiment, communication links  114  comprise a plurality of T1 or E1 communication links. In other embodiments, communication links  114  comprise a DS3 communication link, fiber-optic links or any other appropriate communication link that is adapted to carry data to transport network  108 .  
         [0022]     Network interface circuit  110 - 1  further includes control mechanism  104 - 1 . Control mechanism  104 - 1  is coupled to encoder  106 - 1  over bus  114 - 1 . In one embodiment, bus  114 - 1  comprises a PCI bus. Further, in one embodiment, encoder  106 - 1  comprises an encoder that is compatible with at least one of the standards promulgated by the Motion Picture Expert Group (MPEG) for compression of video data. In other embodiments, encoder  106 - 1  uses any other appropriate compression algorithm for compressing data from the data source.  
         [0023]     In one embodiment, network interface circuit  110 - 1  is co-located in a housing with encoder  106 - 1 . Advantageously this allows control mechanism  104 - 1  to communicate easily with encoder  106 - 1  to control its level of compression or data rate.  
         [0024]     In one embodiment, network interface circuit  110 - 1  further includes data port  116 - 1  and telephony ports  118 - 1 . Data port  116 - 1  is adapted to be coupled to, for example, a 10BaseT Ethernet local area network (LAN), a 100BaseT Ethernet LAN, or other appropriate data network. Similarly, telephony port  118 - 1  is adapted to be coupled to any appropriate telephony communication line, e.g., a T1 or E1 line.  
         [0025]     Access device  102 - 1  further includes decoder  120 - 1 . Decoder  120 - 1  is used to decode data received from an encoder located in another access device connected to transport network  108 . Thus, in some embodiments, a particular access device may include an encoder, a decoder, or both an encoder and a decoder. Therefore, although access device  102 - 1  and  102 -N each show an encoder and a decoder, it is understood that access devices in network  100  are not limited to including both an encoder and a decoder. The operation of system  100  is described in terms of the flowchart of  FIG. 2 .  
         [0026]     In operation, network  100  transports data between access devices over transport network  108 . Advantageously, network  100  includes control mechanism  104 - 1  that adjusts a level of encoding in encoder  106 - 1  to reduce loss of transmission quality in response to changing network conditions. The method begins a block  200 . A block  202  control mechanism  104 - 1  sets a level of encoding for encoder  106 - 1 . For example, control mechanism  104 - 1  communicates a rate for encoder  106 - 1  over PCI bus  114 - 1 . In another embodiment, control mechanism  104 - 1  also provides further parameters to encoder  106 - 1  to control the encoding level of encoder  106 - 1 .  
         [0027]     Access device  102 - 1  generates data for transmission over transport network  108 . At block  204 , encoder  106 - 1  receives data from at least one data source. In one embodiment, the at least one data source comprises a source of video data, e.g., a camera, video player, or other appropriate source of video data. At block  206 , encoder  106 - 1  encodes the data received from the data source using the level of compression specified at block  206 . Encoder  106 - 1  provides the encoded data to network interface circuit  110 - 1 . Network interface circuit  110 - 1  passes the encoded data over connections  114  to transport network  108 . Transport network  108  routes the data to, for example, access device  102 -N. In access device  102 -N, network interface circuit  110 -N passes the encoded data to decoder  120 -N. Decoder  120 -N decodes the data and provides the data to the data sink, for example, a television, a monitor, a computer, or other appropriate data sink.  
         [0028]     At block  208 , control mechanism  104 - 1  determines whether a change in condition has been detected on network  100 . For example, control mechanism  104 - 1  determines whether one or more of communication links  114  has become unusable, e.g., the link is cut or disconnected. Alternatively, control mechanism  104 - 1  monitors a congestion bit for transport network  108  or other diagnostic mechanism for monitoring the capacity of transport network  108 , e.g., buffer levels, statistics on cell loss, cyclic redundancy check at the ATM layer, cyclic redundancy check at the MPEG layer, or other appropriate statistic. In one embodiment, the end-to-end channel of an IMA Control Protocol (ICP) cell, specified in the IMA Specification, is used to communicate a changed condition between access devices. For example, the state of buffers at a decoder requiring a change in the rate of the encoder or a lost connection detected at the decoder is communicated over the end-to-end channel to the access device and encoder associated with transmission to the decoder.  
         [0029]     When a change in network conditions is detected, control mechanism  104 - 1  provides a signal to encoder  106 - 1  to adjust its level of encoding. For example, when a communication link is lost, control mechanism  104 - 1  calculates a new rate of encoding for encoder  106 - 1  and transmits the new rate to encoder  106 - 1  over bus  114 - 1  at block  210 . Further, control mechanism  104 - 1  may also provide information on the rate change to the associated decoder over, for example, the end-to-end channel of an ICP cell.  
         [0030]     In one embodiment, control mechanism  104 - 1  controls the rate of encoding for a plurality of sources. In some embodiments, control mechanism  104 - 1  reduces data rates for all sources proportionately. In other embodiments, control mechanism  104 - 1  reduces data rates for each source selectively based on a set algorithm or criteria. In other embodiments, control mechanism  104 - 1  adjusts other inputs to encoder  106 - 1  to adapt the output of encoder  106 - 1  to the changed condition. These other inputs can be used as a primary control of encoder  106 - 1  or as a secondary adjustment implemented after an initial rate change. The other inputs include, but are not limited to, settings for quantizers, buffer sizes, on/off padding, coefficients, video resolution, and any other appropriate adjustments or inputs acceptable to the encoder.  
         [0031]      FIG. 3  is a flowchart of an embodiment of a process for generating a control signal to adjust a level of encoding for an encoder in an access device according to the teachings of the present invention. This method is implemented, for example, in control mechanism  104 - 1  of access device  102 - 1  in system  100  during a synchronization process. The synchronization process may be accomplished either when a connection for a data stream is initialized, or during a resynchronization process after a change in bandwidth.  
         [0032]     The method begins a block  300 . At block  302 , the method determines the physical bandwidth available for the access device. For example, when a number of physical links are used, the method calculates the available bandwidth by multiplying the number of links times the link rate. At block  304 , the method determines whether any unencoded data sources are provided to the access device. If unencoded data sources are provided to the access device, the method subtracts out bandwidth associated with the unencoded data sources at block  306  from the physical bandwidth determined at block  302 . If there are no unencoded data sources, the method proceeds directly to block  308 .  
         [0033]     At block  308 , the method determines whether the access device receives any audio data. If the access device receives audio data, the method subtracts out bandwidth associated with the audio data at block  310 . If, however, the access device does not receive audio data, the method proceeds directly to block  312 .  
         [0034]     At block  312 , the method sets the rate for the encoder of the access device based on the available bandwidth. The method ends at block  314 .  
         [0035]      FIG. 4  is a flowchart of an embodiment of a process for adjusting a level of encoding for an encoder in an access device of a telecommunications network according to the teachings of present invention. This method is implemented, for example, in control mechanism  104 - 1  of access device  102 - 1  in system  100 . In one embodiment, the method of  FIG. 4  is implemented as part of diagnostic routines that periodically monitor aspects of access device  102 - 1  as indicated at block  402 . This monitoring includes, for example, monitoring of buffer levels, loss of cells, error levels as indicated based on cyclic redundancy checks based on cells at the ATM layer or at the MPEG layer or other appropriate parameters or conditions of the network.  
         [0036]     At block  404 , the method determines whether a threshold in the monitored condition has been exceeded. If the threshold has been exceeded, the method adjusts the rate of the encoder at block  406 , e.g., reduces the level of encoding to compensate for the excess in errors in the system.  
         [0037]     At block  408 , the method determines whether the monitored condition is acceptable after adjusting the rate. If not, the method proceeds to refine the rate at block  410  and returns to block  408 . If, however, the method determines that the monitored condition is acceptable, the method returns to block  402 . Similarly, if the method determines a block  404  that the threshold has not been exceeded, the method also returns to block  402 .  
         [0038]      FIG. 5  is a flowchart of another embodiment of a process for adjusting a level of compression for an encoder in an access device of a telecommunications network according to the teachings of the present invention. This method is implemented, for example, in control mechanism  104 - 1  of access device  102 - 1  in system  100 . In one embodiment, the method of  FIG. 5  is implemented as part of a diagnostic routine that periodically monitors a network congestion bit.  
         [0039]     The method begins at block  500  and monitors a network congestion bit at block  502 . At block  504 , the method determines whether the network congestion bit indicates congestion in the network. If not, the method returns to block  502 . If, however, the method determines that there is network congestion, the method proceeds to block  506 . At block  506 , the method adjusts the rate of the encoder, e.g., reduces the output rate of the encoder, to compensate for the network congestion.  
         [0040]     At block  508 , the method determines whether the congestion bit has been reset. If not, the method returns to block  508 . If, however, the congestion bit has been reset, the method proceeds to block  510 . At block  510 , the method sets a timer. At block  512 , the method determines whether sufficient time has elapsed since the reset of the congestion bit to allow the encoder to return to a higher data rate. If not, the method returns to block  512 . If, however, sufficient time has elapsed, the method proceeds to block  514  and adjusts the rate of the encoder, e.g., returns the encoder to the original rate.  
         [0041]      FIG. 6  is a block diagram of an embodiment of a distance learning system, indicated generally at  600 , that includes a plurality of access devices  602 - 1 , . . . ,  602 -N each with a control mechanism that establishes a level of compression for an encoder for at least one data source according to the teachings of the present invention. In one embodiment, each of access devices  602 - 1 , . . . ,  602 -N is constructed as shown and described above with respect to  FIG. 1 . Further, each of access devices  602 - 1 , . . . ,  602 -N implements one or more of the functions described above with respect to  FIGS. 1 through 5 . Access devices  602 - 1 , . . . ,  602 -N are coupled together over transport network  608 . In one embodiment, transport network  608  comprises an ATM network coupled to the access devices over a plurality of T1 or E1 lines.  
         [0042]     Distance learning system  600  includes a plurality of data sources coupled to each access device. For example, access device  602 - 1  is coupled to receive data from camera/microphone  656 - 1 , telephone  661 , and computer or network  662 - 1 . Access device  602 - 1  is similarly coupled to a plurality of data sources. Further, each access device also includes one or more data sinks, e.g., monitor/speakers  658 - 1 , telephone  661 , and computer or network  662 - 1 . It is understood, however, that each access device may be coupled to any appropriate combination or subcombination of data sources and data sinks.  
         [0043]     In operation, distance learning system  600  transport data between access devices over transport network  608 . Advantageously, access devices  602 - 1 , . . . ,  602 -N each include a control mechanism that controls an encoder based on conditions in the network as described above with respect to one or more of  FIGS. 1 through 5 .  
       CONCLUSION  
       [0044]     Embodiments of the present invention have been described. The embodiments provide a mechanism for reducing loss in quality transmission over a network with changing network conditions. Specifically, embodiments of the present invention utilize a control mechanism that adjusts the level of encoding for an encoder based on a monitored condition or parameter of a network. For example, the control mechanism may adjust the encoding level based on the monitored bandwidth availability, network congestion bit, or other statistical information relating to the quality of transmission over a network.  
         [0045]     Although specific embodiments have been illustrated and described in this specification, it will be appreciated by those of ordinary skill in the art that any arrangement that is calculated to achieve the same purpose may be substituted for the specific embodiment shown. This application is intended to cover any adaptations or variations of the present invention. For example, the transport network in other embodiments comprises other packet-based networks. Further, the control mechanism of an access device provides control data to an associated encoder over any appropriate communications mechanism. An access device in other embodiments includes one or more encoders and one or more decoders. Further, in some embodiments, an access device includes no decoders. Further, in other embodiments, other parameters or statistics that indicate the quality of transmission in the network may be used by a control mechanism to adjust the rate of an encoder.