SVC stands for Scalable Video Coding.

SVC is a technique that allows encoding a video stream once in multiple layers. The layers in SVC are akin to the layers in an onion – they can be “pealed off” while maintaining the video, reducing its quality with the reduction of each layer.

This mechanism is useful when:

  1. Wanting to employ FEC to video, as we can protect the stream by adding redundant data to some of the layers only
  2. Wanting to send the video data to multiple participants, where we can send different layers to different participants based on their capabilities. This assists when using routing mechanisms for conferencing

SVC is added as part of the VP9 codec implementation in WebRTC.

Make sure you also read about simulcast.

What Happens in Simulcast?

Before diving into SVC, let’s first understand what happens in a simulcast setup. In a multi-party call, the SFU (Selective Forwarding Unit) decides which individual stream to forward to each participant. The sender sends multiple media streams, and the SFU then chooses which of these streams to forward to the participants.

SVC: Simulcast on Steroids

SVC takes the concept of simulcast to the next level. Unlike simulcast, where the sender sends multiple streams, SVC involves sending a single media stream with multiple layers. The SFU can then decide which layers to forward, almost like peeling an onion, when sending that data to other participants.

Bitrate Considerations

One of the advantages of using SVC is the efficient use of bitrate. While it does slightly increase the bitrate usage of a single stream, it consumes less bitrate overall compared to simulcast. This is because SVC involves encoding once and reusing previous layers for encoding higher layers of data.

Modalities Within SVC

So, what can you layer within SVC? There are three main modalities:

Temporal Scalability

In this modality, each layer increases the frame rate over the previous layer. This allows for smoother video playback at varying network conditions.

Signal-to-Noise Ratio (SNR)

Here, more bits are invested in enhancing the quality of each frame. This results in a clearer and more detailed video stream.

Spatial Scalability

In spatial scalability, each layer can increase the resolution of the same frame from the previous layers. This is particularly useful for adapting to different screen sizes and resolutions.

Additional reading

Tags: codec

Looking to learn more about WebRTC? 

Check my WebRTC training courses

About WebRTC Glossary

The WebRTC Glossary is an ongoing project where users can learn more about WebRTC related terms. It is maintained by Tsahi Levent-Levi of BlogGeek.me.