Video captured from thermal imaging systems, hand-held camcorders is typically jerky due to small, unwanted camera movements. Video stabilization techniques are used to generate a stabilized video sequence by modeling the undesirable camera movements and eradicating from the input video sequence. The Video Stabilization System is an embedded solution using one of such techniques.
The system can be broadly divided into following sub-modules:
Video Capturing Unit: This section is responsible for configuring the video source and retrieving the video data. The retrieved video is presented to the scheduler.
Jitter Estimation Unit: The MEU estimates the motion vectors between the current and previous frames of the processed video data while reading the frames one by one from the DDR3 memory. The estimated motion vectors are smoothed by applying the low pass filter. The difference between the actual and the smoothed motion vectors signifies the estimated jitter in the incoming video sequence.
Jitter Compensation Unit: This unit applies the estimated jitter on the frames after reading it from the DDR3. The resultant, jitter corrected video is stored in the DDR3 memory.
Video Output Unit: This unit reads the jitter compensated frame and presents it in compliance with timing standards of the video encoders for displaying it on the display screen.
Video DMA (VDMA): This module is responsible for partitioning the DDR bandwidth among different modules by implementing a Video Direct Memory Access (VDMA). Multiple read/write ports can be instantiated and an optimized arbitration strategy is implemented to satisfy the throughput needs of all the read/write ports.