Video Coding - Better Packet Loss Tolerance
Sep 25, 2018
Video Coding - Better Packet Loss Tolerance

The current H.264 video stream (non-hierarchical) is very mature in terms of data compression, and all the methods learned from books are used when compressing data. One of the most important ones is to send increments. information. If a video image frame is only slightly changed based on the previous frame, then when transmitting the image of the frame, it is not necessary to transmit the information that has not been changed. The codec will only transmit the incremental information and inform the receiver: "These pixels have made such changes while the other pixels remain intact." In this way, the information to be transmitted is much less than the information transmitted by the image of the entire frame, so that the compression effect is much improved.
However, when the network has packet loss, the disadvantage of this incremental information transmission method will be highlighted. Once a packet is lost, the receiving end cannot obtain the latest change information of the video image frame, so the video image will have a slight error. When the next packet is reached, the image itself is built on the wrong information, so the image quality is even worse. In response to this problem, the current codec employs a method of transmitting complete image frame information from time to time. Once a packet loss occurs, the receiver can request to update an entire frame of image to speed up the trimming process. However, this will cause an entire network delay, plus the internal processing time of the codec, the result is self-evident.
There are also some vendors that use forward error correction algorithms (FEC) to solve this problem. FEC is a type of block coding algorithm that improves the accuracy by creating redundant information and transmitting the redundant information along with the original packet stream. This redundant information can help reconstruct lost packets in the network, provided that the correct information and redundant information are sufficient. This method sounds good, but of course it costs a little. Since the codec also needs to send redundant information, the bandwidth requirements for the network increase accordingly. Some codecs guarantee sustained transmission bandwidth (video plus FEC overhead) by sacrificing the bandwidth allocated to the video. Obviously, this will bring loss to the quality of the video stream. In addition, in the FEC algorithm, before the FEC code is transmitted, a data packet must be created and the FEC code must be calculated. At the receiving end, a data packet and redundant information need to be collected to reconstruct the lost data packet, which inevitably Increase the delay. The increase in delay will reduce the interactivity of video communication and increase the difficulty of two-way conversation.
So, what can SVC solve this problem? We know that SVC creates video images through a base layer and one or more enhancement layers, which are carried in different data packets on the network, the impact of the loss of the base layer data packets and the result of non-hierarchical coding. It is consistent, but the impact of the enhancement layer packet loss is much smaller. Since the enhancement layer is based on the base layer rather than the front frame image, the packet loss of the enhancement layer only causes temporary sharpness and frame rate degradation without affecting the basic architecture of the video image.
The FEC code can protect the base layer information of the SVC video stream in the same way as non-hierarchical coding. In SVC video communication with lower resolution requirements, the use of FEC codes also has the limitations, overhead and delay problems of low bandwidth non-hierarchical coding. In the higher bandwidth requirements, the difference between tiered and non-layerable video coding techniques is very obvious. This is because there is only overhead in the base layer, but not in the enhancement layer. For example, if the FEC code adds a total of 20% overhead, and the base layer only occupies 25% of the bandwidth of the entire video communication, that is, in the layered video coding, the FEC code only occupies 5% of the entire video communication. Bandwidth, while FEC codes occupy 20% of the total bandwidth in non-layerable video coding.
Therefore, the advantages of the layered video coding technology here are reflected in the combination of the layered video stream architecture and the base layer FEC protection. For low-bandwidth calls, the effects achieved by layered video coding and non-layered video coding are similar. However, in high-bandwidth calls, layered video coding can provide higher quality video in a network that is easy to drop packets, and requires less protection than non-layerable video coding.




