These days, video based applications are on the rise and the Internet is expected to satisfactorily cater to the bandwidth intensive and latency sensitive video content, notwithstanding its shortcomings like packet loss, etc. While we cannot do much about the physical network that makes up the Internet, we can sure make video encoding techniques more efficient and effective. If H.264-SVC is standardized to give interoperability and backward compatibility, we might just hit gold!
The above image gives a glimpse of what H.264-SVC is. You can click here to read about its predecessor technology H.264-AVC, which by the way is the most widely used video coding technique today.
Getting slightly technical, In SVC, there is a base layer of video stream & there are multiple enhancement layers above it. H.264-SVC is a set of improvements over H.264 AVC and it introduces Temporal, Spatial and Quality Scalability.
The base layer has a single video stream with a certain frame rate, and the temporal scalability adds enhancement layers with additional frame rates (For example, base layer might contain qCIF-176×144 while the enhancement layers contain CIF-352×288 & 4CIF-704×576). Similarly, spatial scalability adds additional resolutions in the enhancement layers (Eg. 7.5 frames per second, 15 fps, 30 fps, etc). The Quality Scalability improves the SNR (Signal to Noise Ratio) in the enhancement layers (Eg. 128 Kbps, 256 Kbps, 512 Kbps, etc).
So, an SVC stream incorporates multiple streams in a single stream for transmission and storage of video. But it is not always necessary to provide all types of scalability for every video stream and hence SVC stream can be customized according to the needs of an application.
H.264-SVC has multiple advantages. One obvious advantage is the ability to send a single video stream to multiple heterogeneous clients. One can also do that by using transcoding, and video conferencing systems use that technique for rate matching, but this takes up a relatively large amount of processor load as the video stream sent to each client needs to be encoded individually. Also, transcoding introduces some latency on its own. And H.264-SVC is useful even for multi-casting.
An SVC video stream is just 10-20% larger than the size of the largest stream it carries. So, when one SVC stream is sent instead of multiple individual video streams, a lot of bandwidth and storage space is saved. More over, the base video stream layer of lower quality can be stored separately, instead of storing all the layers. This might be useful for video surveillance.
Its believed that H.264 SVC can give a decent (manageable) picture quality even at 20-40% packet loss in the network while the maximum tolerable packet loss for H.264 AVC might be around 1-5%.
Also, since H.264 SVC algorithms are implemented in software, SVC clients can run on a variety of network devices like PC, Laptop, Cell Phone, Tablets, desktop/ room Video Conferencing systems, video surveillance systems, etc.
But the picture is not totally rosy! As of today, H.264-SVC is not a full standard like the H.264 AVC, which means, there is little or no inter-interoperability between the SVC based clients of different vendors. Which means, all the devices need to be from a single vendor to realize the SVC advantages! Actually, even when the VOIP industry and various other industries were struggling with proprietary technologies, the video industry set an example by following open standards (like H.264 AVC). But to take a huge step backwards now, when the whole industry is standardizing is a little strange! But lets hope everyone agrees on standards and interoperability sooner.
Also, SVC requires that the base stream be transmitted safely across the network even if the enhancement layers are subjected to packet loss. They have worked some methods to achieve this, but on a private network, one could always enable end to end QoS with base layer transmission having the highest priority. This cannot be applied to the Internet though!
There is a workaround for the lack of interoperability – Introducing Gateways that can do the translation. In some cases, gateways are required even between the same vendor H.264 SVC and AVC devices, as they are not always able to talk to each other! But adding gateways increases the cost, complexity and also latency.
To keep yourself updated with the various computer network technologies, you could subscribe to this blog with your email address in the sidebar box mentioned as “Get Email updates when new articles are published”.