Abstract:
The invention relates to interpreting the change in the increment of the RTP TS field as occurring either due to silence suppression for a voice flow or a change in sampling/frame rate of a video flow. By interpreting this change correctly, the value of the TS_STRIDE field in robust header compression may be correctly calculated leading to efficient header compression performance. In one aspect, there is disclosed a method of improving ROHC between an Access Network (AN) having a compressor and an Access Terminal (AT) having a decompressor, comprising providing flow information to the compressor relating to a change in the increment of an RTP TS field of a header; determining the change in the increment of an RTP TS field as occurring either due to silence suppression or due to a change in a sampling/frame rate; and taking appropriate action for TS_STRIDE.

Description:
CLAIM OF PRIORITY UNDER 35 U.S.C. §119  
       [0001]     The present Application for Patent claims priority to Provisional Application No. 60/731,024, entitled “System And Method For Improving Robust Header Compression (ROHC) Efficiency By Correct Interpretation Of Change In The Increment Of The RTP Timestamp,” filed Oct. 27, 2005, and assigned to the assignee hereof and hereby expressly incorporated by reference herein. 
     
    
     BACKGROUND  
       [0002]     1. Field  
         [0003]     The invention relates to data compression and decompression in a communication system and, in particular, to a system and method for improving Robust Header Compression (ROHC) efficiency.  
         [0004]     2. Background  
         [0005]     ROHC is an Internet Engineering Task Force (IETF) header compression framework that provides for high efficiency and robustness in wireless communication systems. Among other features, ROHC supports Real-time Transfer Protocol/User Datagram Protocol/Internet Protocol (RTP/UDP/IP) and UDP/IP compression profiles.  
         [0006]     The ROHC working group is also specifying support for a Transmission Control Protocol/Internet Protocol (TCP/IP) compression profile.  
         [0007]     ROHC exhibits robustness, i.e., the ability to tolerate errors on the wireless links. ROHC is useable with multi-media applications and provides for header compression for various applications, protocols, and wireless technologies. Header compression is a technique to reduce the packet size transmitted over a link thereby increasing the link efficiency and throughput. Header compression is particularly useful on slow links or when packet sizes are small where a reduction in the header size results in a significant decrease in the header overhead. Header compression achieves this by leveraging header field redundancies in packets belonging to the same flow. In particular, many packet header fields such as source and destination addresses remain constant throughout the duration of a flow while other fields such as sequence numbers change predictably to allow header compression to transmit only a few bytes of header information per packet.  FIG. 1  illustrates a typical ROHC compression/decompression block diagram  100  of IP/UDP/RTP headers over a communication link. Typically, reference copies of the full headers are stored at a ROHC compressor  102  and a ROHC decompressor  104  in order to reliably communicate and reconstruct original packet headers. There is a need in the art, however, for a system and method for improving ROHC efficiency by correctly interpreting change in increment of the RTP Timestamp field either due to silence suppression for a voice flow or due to a change in sampling/frame rate of a video flow.  
       SUMMARY  
       [0008]     The invention relates to the change in the increment of the RTP Timestamp field as occurring either due to silence suppression for a voice flow or due to change in sampling/frame rate of a video flow. By interpreting this change correctly, the value of the TS_STRIDE in ROHC may be correctly calculated leading to efficient header compression performance.  
         [0009]     In one aspect, there is disclosed a method of improving ROHC between an Access Network (AN) having a compressor and an Access Terminal (AT) having a decompressor, comprising providing flow information to the compressor relating to a change in the increment of a Real-Time Transfer Protocol Timestamp (RTP TS) field of a header; determining the change in the increment of a RTP TS field as occurring either due to silence suppression or due to a change in sampling/frame rate based on the flow information; and sending an appropriate TS_STRIDE value from the access network to the access terminal to achieve efficient ROHC. If the ROHC compressor determines that the RTP TS field increment is changed due to silence suppression, then there is no change to the TS_STRIDE value; if the ROHC compressor determines that RTP TS field increment is changed due to a change in the sampling/frame rate, then the TS_STRIDE value is changed in accordance with the sampling/frame rate. With this aspect, silence suppression may occur only in voice flow, and the change in sampling/frame rate may occur only in video flow.  
         [0010]     In another aspect, there is disclosed a system providing ROHC between an access network having a compressor and an access terminal having a decompressor, comprising means for providing flow information to the compressor relating to a change in the increment of an RTP TS field of a header; means for determining the change in RTP TS field increment as occurring either due to silence suppression or due to a change in sampling/frame rate based on the flow information; and means for sending an appropriate TS_STRIDE value from the access network to the access terminal to achieve efficient ROHC. The means for providing the flow information to the compressor may further comprise means for setting the TS_STRIDE value in response to a change in the increment of the RTP TS field. With this aspect, if the determining means determines that the RTP TS field increment is changed due to silence suppression, then there is no change to the TS_STRIDE value; and if the determining means determines that the RTP TS field increment is changed due to a change in the sampling/frame rate, then the TS_STRIDE value is changed in accordance with the sampling/frame rate.  
         [0011]     It is appreciated that in the above aspects, the compressor may be at the access terminal and the decompressor may be at the access network and the system and method for improving ROHC efficiency by correctly interpreting change in the increment of the RTP TS would still work. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0012]      FIG. 1  illustrates a block diagram of a typical ROHC compressor/decompressor in a communication system;  
         [0013]      FIG. 2  illustrates an RTP header;  
         [0014]      FIG. 3  is a flowchart illustrating the operations of the improved ROHC of the invention; and  
         [0015]      FIG. 4  illustrates an apparatus to perform the method of  FIG. 3 . 
     
    
     DETAILED DESCRIPTION  
       [0016]     As explained above, ROHC is a header compression scheme that compresses RTP/UDP/IP headers efficiently. Referring to  FIG. 2 , there is shown an RTP header  200 . One of the techniques ROHC uses to compress headers is to compress an RTP Sequence Number (RTP SN) field  202  and then use linear relations from the RTP SN field  202  to other changing fields such as an RTP Timestamp (RTP TS) field  204 . The RTP SN field  202  increases by one (1) for every transmitted packet, while the RTP TS field  204  increments according to a sampling rate. According to RFC 3550, available at URL www.faqs.org/rfcs/rfc3550.html, which is fully incorporated herein by reference, “[i]f an audio application reads blocks covering 160 sampling periods from the input device, the timestamp would be increased by 160 for each such block, regardless of whether the block is transmitted in a packet or dropped as silent.” 
         [0017]     In order to compress headers, the ROHC compressor needs to estimate the increment in the RTP TS field  204  from packet to packet. The value of a parameter called TS_STRIDE is set equal to this increment in the RTP TS field  204 . Once this regular change is known, the ROHC compressor can compress a scaled value of the RTP TS field  204 , scaled by the regular jump from packet to packet. This allows it to achieve savings in the size of compressed headers. Moreover, in order to compress this scaled of the RTP TS field  204 , the ROHC compressor needs to communicate the value of TS_STRIDE to the ROHC decompressor.  
         [0000]     Behavior of Voice Source with Silence Suppression  
         [0018]     For voice carried over RTP/UDP/IP, the RTP TS field  204  in the RTP header  200  typically increases by a fixed amount from packet to packet. As an example, for a voice codec producing 20 msec packets sampled at 8 kHz, the RTP TS field  204  increases by the number of samples contained in 20 msec, e.g., 8000*0.02=160.  
         [0019]     In order to conserve bandwidth when sending Voice over IP (VoIP), the sender can make use of a technique called Silence Suppression. This technique causes the frames generated when the user is silent (or equivalently, when the vocoder is generating ⅛ th  rate frames, as in the case of a vocoder like EVRC) to not be transmitted. This translates into bandwidth savings and increased capacity for communication systems. However, as explained earlier, the RTP TS field  204  increments even during periods of Silence Suppression.  
         [0020]     Thus, the first frame generated after the end of the Silence Suppression period will show a jump in the increment of the RTP TS field  204 . As an example, for a voice codec producing  20  msec packets sampled at 8 KHz, if say 5 “silent” packets have been suppressed, the RTP TS field  204  will increase by 160*(5+1)=960. In this case, even though there is now a change in the increment of the RTP TS field from 160 to 960, subsequent frames will still have increments of 160 and thus the ROHC compressor should continue using the TS_STRIDE value of 160.  
         [0000]     Behavior of Video Source with Adaptive Sampling/Frame Rate  
         [0021]     Certain video sources can adapt their sampling/frame rates dynamically during a flow, causing the increment of the RTP TS field  204  to change. As an example, the TS_STRIDE increment may be 50 for the first 10 packets of a video flow, but may change to 100 for the next 10 packets (due to a change in the video&#39;s sampling/frame rate). In this case, the ROHC compressor should change its value of the TS_STRIDE when the video&#39;s sampling/frame rate changes.  
         [0000]     Calculation of the TS_STRIDE  
         [0022]     The problem arises due to the requirement that the ROHC compressor needs to interpret the change in the increment of the RTP TS field  204  differently for voice and video flows. In particular, in the case of voice flows, it should not change the value of the TS_STRIDE when there is a change in the increment of the RTP TS field  204  due to silence suppression. For adaptive video flows, on the other hand, the ROHC compressor should change the value of the TS_STRIDE when there is a change in the increment of the RTP TS field  204  due to a change in the video&#39;s sampling/frame rate.  
         [0023]     The invention identifies that in order to improve the current ROHC, the ROHC compressor should distinguish between the two different causes of change to the increment of the RTP TS field  204 . More specifically, the invention recognizes the following: 
        (1) For voice flows, only silence suppression may take place; typically there is no sampling rate change; and     (2) For video flows, change in the increment of the RTP TS field may be caused only by a sampling/frame rate change; silence suppression never takes place (silence suppression is only for voice media).        
 
         [0026]     From the above two observations, silence suppression and sampling or sampling/frame rate change are mutually exclusive; that is, neither silence suppression nor sampling/frame rate change happens in the same flow. Thus, the ROHC compressor can interpret the change in the increment of the RTP TS field  204  correctly if flow information is fed to it.  
         [0027]     Such information about the type of flow may be known to the access network.  
         [0028]     As an example, in 3GPP/3GPP2 systems, the RAN/PDSN typically has access to information about the type of flow and can feed this to the ROHC compressor located in the access network. The AT, on the other hand, may or may not have information about the type of flow. In case the AT does not have such information, one option may be for the AN to pass it such information.  
         [0029]     Referring to  FIG. 3 , there is shown a flowchart  300  illustrating the operations of the improved ROHC of the invention. In block  302 , the AN provides to the AT with flow information relating to a change in the increment of the RTP TS field  204 . In block  304 , the TS_STRIDE value is set equal to the increment in the RTP TS field  204 . In block  306 , the ROHC compressor determines the change in RTP TS field increment  204  as occurring either due to silence suppression or due to a change in sampling/frame rate. If the ROHC compressor determines that the RTP TS field increment  204  changes due to silence suppression, then there is no change in the value of TS_STRIDE in block  308 . On the other hand, if the ROHC compressor determines that the RTP TS field increment  204  changes due to a sampling or sampling/frame rate change, then there is a change in the value of TS_STRIDE in block  310 . In block  312 , the AN performs the appropriate behavior for TS_STRIDE, i.e., it sends the TS_STRIDE value to the AT if TS_STRIDE is changed due to a sampling or frame rate change and does not send TS_STRIDE if the change in increment of the RTP TS field is due to silence suppression. As stated above, silence suppression occurs only in voice flow, and the change in the sampling/frame rate occurs only in video flow. The invention also contemplates that the compressor may reside at the AT and the decompressor may reside at the AN. In this case, the AN needs to pass flow information to the AT since the compressor is at the AT.  
         [0030]     It is appreciated that if the ROHC compressor does not interpret the change in the increment of the RTP TS field  204  differently based on the type of flow, its performance may suffer. For example, 
        (1) If the ROHC compressor always assumes that change in the increment of the RTP TS field  204  is due to sampling or a sampling/frame rate change, this may cause inefficiencies if the flow is voice. This may cause the ROHC compressor to send a new TS_STRIDE in a larger compressed header (typically an IR, IR-DYN or UOR-2 Ext3 packet) to the decompressor, when the first packet after silence suppression is received. Also, when a few packets subsequent to this first packet have been received, the ROHC compressor will need to revert back to the earlier TS_STRIDE and again communicate this change to the decompressor using a larger header. This will lead to inefficiencies in ROHC performance, particularly when talkspurts are small.     (2) If the ROHC performance always assumes that change in the increment of the RTP TS field  204  is due to silence suppression, this may cause inefficiencies for adaptive video flows. For such flows, even when the sampling/frame rate changes, the ROHC compressor will never attempt to change its value of TS_STRIDE. This may again impact the header compression efficiency of ROHC since the correct TS_STRIDE is not being used for compression.        
 
         [0033]     Accordingly, the invention discloses an improved system and method for the ROHC compressor to interpret changes in the increment of the RTP TS field correctly when either silence suppression takes place in voice flows or the sampling/frame rate changes in adaptive video flows. This leads to better compression efficiency for ROHC.  
         [0034]      FIG. 4  illustrates an apparatus comprising means  402 - 412  to perform the method of  FIG. 3 . The means  402 - 412  in  FIG. 4  may be implemented in hardware, software or a combination of hardware and software.  
         [0035]     One of skill would further appreciate that the various illustrative logical blocks, modules, and steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.  
         [0036]     The various illustrative logical blocks, modules, and circuits described in connection with the embodiments disclosed herein may be implemented or performed with a general purpose processor, a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.  
         [0037]     The steps of a method or algorithm described in connection with the embodiments disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module may reside in Random Access Memory (RAM), flash memory, Read Only Memory (ROM), Electrically Programmable ROM (EPROM), Electrically Erasable Programmable ROM (EEPROM), registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor such the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an ASIC.  
         [0038]     The previous description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.