Built with: C++, Visual Studio C++
Introduction
Distributed Video Coding (DVC) is a new video paradigm based on two information theorems: the Slepian-Wolf and Wyner-Ziv. In this new video paradigm, the source statistic is exploited at the decoder only so the complexity is shifted from the encoder to the decoder. Since the encoding requirement is much lower than that of conventional video codec, the DVC codec is very useful in some emerging applications such as wireless low-power surveillance systems, wireless PC cameras, multimedia sensor network and mobile camera phones.
Project objective
The main objective of the project is to develop a working distributed video coding tool with a strong potential for new applications. We will focus on building a working C DVC version with acceptable performance. Our DVC codec is designed and implemented based on the well-known Stanford and DISCOVER architectures. Some advanced modules such as minimum rate estimation may be included in our implementation to improve the codec system.
Main features
- Our design is based on feedback-channel DVC systems (Stanford and DISCOVER).
- We focus on implementing a DCT domain DVC codec.
- Using DCT block 4x4 and LPDCA with code length 1584 bits for QCIF video format, and code length 6336 for CIF video format.
- Using H.264 for coding Intra frame.
- Offline Laplacian parameters (sent from the encoder to the decoder).
- The system is developed in Visual C with only standard libraries.
- The system includes the configuration file to control the system parameters.
- The system works fast enough (below 100ms for encoding and around 2 minutes for decoding one WZ frame with QCIF format (the decoding time depends on desired quality)).
- The system is comparable with available DVC codec systems at least in slow motion test video sequences.
- The system is extendable, clear code and easy to understand.
- This version supports the QCIF, CIF, and VGA video format with Y component (other components can be extended easily).
- This version supports the GOP is 2 (1 WZ frame is inserted between 2 key frames).
Diagram