The network loss in an IP network is considered one of the most challenging aspects of IP QoS that is not guaranteed due to its complex behavior. This problem arises due to the complexity in predicting the probability of a packet to be lost. For the voice traffic, it is very difficult to tolerate a packet loss greater than 5% as it will be harmful to the voice quality [50]. There are some main factors that depend on the amount of packet loss that can be tolerated like the encoding algorithm and the sampling rate of the voice stream.
The importance of having low packet loss rates in VoIP applications to sustain high perceived voice call quality has led to a number of loss repair methods introduced (e.g.: FEC and LBR). It was shown previously that FEC is much preferred over LBR [63]. Forward Error Correction (FEC) recovers lost packets by transmitting redundant data. FEC schemes send redundant information along with the original information, so as to recover the lost original information. Nowadays, the Reed-Solomon codes are considered one of the most commonly used FEC coding schemes [66, 68]. Reed-Solomon codes are systematic block based codes that take digital data and add parity in order to recover from errors. Reed- Solomon codes are considered one of the most convenient techniques for VoIP applications, as every RTP packet can be represented as one of the data symbols of a codeword while the parity bits will hold some redundant information of previous packets.
In general, one of the major drawbacks of using FEC is increasing the delay in the communication process because the receiver cannot start the playback until it receives the parity data. Therefore, the level of FEC scheme applied to a stream of RTP packets must be addressed carefully by an adaptive redundant control algorithm. Thus, an optimization problem arises from here which is choosing an appropriate FEC scheme to be applied with the guarantee of higher perceived call quality. It is precisely the goal of the particular research in this chapter is to solve this problem, we have observed in current VoIP applications that the delay factor is not taken into consideration when adjusting the coding scheme which may lead to recover some of the packet losses at the expense of crossing the acceptable delay level, which may lead to a worse overall call quality. In this chapter, we have addressed this problem carefully, we have studied the effect of using different RS codes on the VoIP call quality, we have done a subjective interactive testing that leads us to deduce a single metric called APU score to rate the call quality. We then propose our redundant control algorithm (APU algorithm). The APU algorithm chooses the optimum RS code during the call according to the current/expected QoS parameters in order to attain the maximum interactive call quality that can be achieved.
7.5
Reviewing Related Work
Forward Error Correction has been introduced in Voice over IP (VoIP) applications to enhance the overall voice quality. Although these methods can reduce the effect of packet loss, they increase the amount of bandwidth and delay. Consequently, the FEC scheme applied to stream of RTP packets must be addressed carefully by an adaptive control algorithm. Research has been carried out to solve this optimization problem. While the literature is extensive, we review some of relevant previous work in this section and we show our contribution in this area.
J-C. Bolot and A.Garcia [69] introduce an adaptive FEC control algorithm named the ―Bolot algorithm‖, this algorithm tries to maintain the loss rate after reconstruction at the receiver side. The Bolot algorithm will add redundancy only if the network loss rate is below the LOW mark, so it does not waste bandwidth. C.Padhye, K-J. Christensen and W.Moreno [70] show that the Bolot algorithm does not consider the change in network loss rate before reconstruction in its decision to change the amount of redundancy. This lead them to introduce the ―USF algorithm‖ which is build on the Bolot algorithm. It detects loss bursts and considers the history of packet losses in the network before changing the amount of redundancy dynamically.
W.Jiang and H.Schulzrinne studied the loss repair methods applied to the VoIP applications. In [63, 71] they studied the relation between the packet interval and the FEC performance. They also perform subjective testing to see the influence of the bursty loss on the perceived quality. Finally, they show that the FEC is much preferred over LBR, if the main codec is already a low bit rate codec. In [71] they evaluate three commonly used codecs, G.729, G.723.1 and ILBC with FEC. They found that G.729 with FEC generally prevails.
M.Rousan and A.Nawasrah [72] introduced the Bandwidth Optimized Adaptive FEC (BOAFEC) approach to optimize the redundancy of the generated codewords from a Reed-Solomon (RS) encoder in order to save the bandwidth of the channel. This approach succeeded in saving 25% of the redundant bandwidth which allows a subscription for more clients on the same server. Moreover, this scheme responds to the high network losses by settling on the maximum allowed amount of redundancy.
T-Y.Huang, K-T.Chen, P.Hunang and P-J.Wang [66, 68] examines how much redundancy Skype adds to its voice streams. They show that Skype‘s control algorithm does not take the individual codec and bursty loss factors into consideration by comparing Skype‘s behavior under 3 codecs used in Skype, G.729, ISAC and SVOPC. This leads them to derive an optimal redundancy control policy for a desired VoIP quality under certain network conditions for G.711 and G.729 codecs. Although this methodology is considered useful, it misses adding the one-way delay as a main factor of adjusting the percentage of packets carrying
redundant information because they derived the optimum redundancy ratio based on the PESQ score which does not take into account other impairments such as transmission delay.
Although extensive work has been done in this area, we found that most of the work had focused on adjusting the redundancy ratio (the percentage of packets that carry redundant voice data [66]) based on the current or expected network conditions but no one addresses choosing the optimal and appropriate RS code according to the QoS parameters and switching between the codes dynamically in the call. Consequently, we have studied the effect of using three different commonly used RS codes in VoIP applications separately on the VoIP call quality and then we propose the APU algorithm to switch between those 3 different codes dynamically based on the current/expected network conditions. We left for the future, the merging of the APU algorithm with other redundancy control algorithms to adjust the percentage of packets that carry redundant data to save bandwidth.