Real-time video streaming
Real-time video-streaming events with many participants, such as virtual classrooms and video conferences, require a low delay when transmitting a video to a receiver in order to provide a good quality of experience. However, maintaining such a low delay poses a considerable challenge when participants have a fluctuating connection due to e.g. an unstable wireless access point or network congestion.
The most-widely used solution to provide some form of flexibility without introducing extra encoding complexity is a simulcast solution (or adaptive streaming). In this solution, a video provider encodes a video with a limited set of different configurations. As a result, users are always limited to switch only between this limited set. Moreover, they can only switch between different representations at certain frames in the video.
At the moment, the only way to offer full flexibility consists of transcoding a video stream in the network. This transcoder must fully decode an incoming video stream, before inserting different partial content and/or applying different technical characteristics. Then, the video is fully re-encoded again. This full re-encoding step is a very computationally complex step that is not required in our own solution.
Network Distributed Video Coding
Network Distributed Video Coding solves the complexity problem associated with the flexibility of generating video streams with different partial content (viewport extraction, logo insertion, banner insertion, compositions, video watermarking, …) and different technical characteristics (coding structure including picture type (I, P, B) and reference structure, bitrate, frame rate, spatial resolution, bit depth, color gamut, chroma format, video codecs, decoding complexity, parallelization properties of the video stream, …) originating from the same source video.
Network Distributed Video Coding has an architecture based on residual encoder (RE) modules. Sidestreams containing coding information for the video at certain bit rates are first calculated. The RE modules use this information to skip all encoding steps of a traditional encoder, except for the encoding of the residual. By reducing the amount of bits used to encode the residual, the RE modules can then provide bitstreams with personalized bit rates for several users at the same time without the complexity of an encoder.
NDVC has been investigated within MPEG: