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
Figure 1.0 : A container
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.
Figure 2.0 : reference image
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