Distributed Video Coding (DVC) is a new paradigm in video coding. For many applications with processing and power limitations such as video compression on mobile devices, multi-sensor systems, etc., there is a requirement to minimize complexity and power usage at the transmitter side. Essentially in DVC, the encoding complexity is transferred to the receiver side, i.e. encoder complexity is reduced and decoder complexity is increased.
DVC does intra-frame encoding of correlated video frames without exploiting computationally expensive correlation between frames at the encoder side. Instead, the temporal frame correlation is estimated at the decoder side.. This motion information extraction is performed to build an estimate, called side information (SI), of some frames of the sequence. The quality of this SI has a strong impact on the coding performance of the system.
DVC principles are based on the Slepian-Wolf theorem (lossless case) and Wyner-Ziv theorem (lossy case). Slepian-Wolf showed that the compression rate of separate encodings of correlated sources is the same as that of joint encoding/decoding in the lossless case. Wyner and Ziv extended the Slepian and Wolf theorem to the lossy case.
At the encoder, an input video sequence is divided into key frames and Wyner-Ziv frames. Each key frame is encoded using a conventional intraframe encoder (for example H.264, JPEG2000, etc.) while each Wyner-Ziv frame is encoded using a distributed encoder to generate Wyner-Ziv bits. As an option, the encoder can transmit some extra information (EI) to the decoder.
At the decoder, each key frame is decoded using the conventional intraframe decoder. Wyner-Ziv frames are decoded using the distributed decoder with the assistance of SI. SI can be generated using any previous decoded frames and/or the EI transmitted from the encoder. The generated SI of a Wyner-Ziv frame can be viewed as its estimate and can be used by the distributed decoder to decode the Wyner-Ziv bits. If the received Wyner-Ziv bits (a subset of parity bits) are not enough for decoding, the decoder requests additional parity bits from the encoder via a feedback channel.