Aviral Mittal's Project Page
Contact : avimit@yahoo.com, aviralmittal@gmail.com


This page is dedicated to my MSc project work at ISLI, University of Edinburgh.
Design of low power Motion Estimation block for MPEG-4 AVC(ISO-14496-10)

Here is the full project including development directory, final source code,
reference C-code etc.

Here is a copy of  final report of the project work.

This project was awarded the 'Best Project 2006 Award at ISLI, University of Edinburgh'

Video Processing Files:

1). read_qcif.c : It reads a qcif  file to give individual frames out of it.
2). modify_frame.c : It reads a single 'ordered' frame from a 'ordered' qcif file,
and applies a single motion vector too all pixels in it.
It is meant be used to evaluate if motion estimation algorithm is doing the right thingi

container
Figure 1.0 : A container
 
 

container_moved

Figure 1.1: A 20,15 shift of Fig 1.0 using modify_frame.c

3). mo_compen.c : It reads as single 'ordered' frame from a 'ordered' qcif file, and applies
randomly generated motion vectors to n*m blocks, where n=row/ppsize, m=col/ppsize.
ppsize is the size of blocks in ppsize*ppsize pixels, row is the total rows in a frame, col is the total
number of coloumns in the frame.

carphone
Figure 2.0 : reference image

carphone_mod

Figure 2.1: Random Motion Vectors applied to 8x8 blocks.

Why apply random vectors?
The idea is to evaluate how good an motion estimation algorithm would be, if the current frame is
randomly distorted by a set of random motion vectors.
This process is actually reverse of motion estimation.
Motion estimation when done using 2.0 as reference and 2.1 as current, should produce those set
of random vectors, as were used to generate 2.1