EE398A - Image and Video Compression

Term Project - Compression of Stereo Image Pairs


1. Project groups


Group ID
Students
Presentation
Report
1
Marland Sitt, Charles Dunn and Oren Hazi
2
Idoia Ochoa-Alvaret, Christopher Li and Nima Soltani
3
John Hamann and Vickey Yeh
4
Deepa Palamadai Sundar, Debabrata Sengupta and Divya Elayakumar

Project Competition Result


2. Introduction


Your task is to compress stereo image pairs and develop and implement the most efficient algorithm that you can think of. You can apply things that you have learned in class, adopt any ideas from the literature, or incorporate techniques that have found their way into standards. The only rule is that you must implement everything from scratch in MATLAB or C. We also encourage you to be original and explore new ideas that will probably occur to you while working on the project.


3. Starter kit


Download the starter kit here
Download the test images here
In the starter kit, you will find the following MATLAB files:
a) ee398aproject.m
b) Encode_Stereo.m
c) Decode_Stereo.m

The file ee398aproject.m contains a basic framework for opening stereo images, calling encode and decode functions and testing the quality of output images. The starter kit also contains 14 training images that you can use to design your algorithms and choose values for any parameters, create tables, etc.


4. Algorithm evaluation


The project goal is to compress stereo image pairs to the smallest average number of bits while maintaining a quality of 37dB PSNR or better for each image pair. The exact measurement of bitrate and quality is described in the following in detail.

The test setup expects input left and right images in an RGB color format, concatenated side-by-side, similar to the training images. RGB format is useful for viewing the images on a standard display. PSNR measurement is performed in YCbCr color format. The conversion from RGB to YCbCr is done in the provided wrapper file. Note that the Cb and Cr components are down-sampled by a factor of two before measuring PSNR. The encoder must generate an output bitstream that contains all the necessary information required for decoding. In order to view the decoded file, a routine is provided to double the resolution of the decoded Cb and Cr components and convert to RGB format.

a) Bitrate measurement
The size of the bitstream file is measured in terms of bits. This is also printed by the provided wrapper code in ee398aproject.m. The objective is to minimize the average bitrate over a set of stereo image pairs. When we evaluate your algorithm, we will average the bitrate across 7 test image pairs which are not part of the training set. While developing your algorithm, we suggest that you consider the bitrate averaged over the training set, or a part of the training set. For example, you might want to divide the training set into a set of image pairs for training code books and parameters and another set to test the performance. The images in the training set are representative of the images in the test set that we will use for the ultimate evaluation of your algorithm.


b) PSNR measurement
We define the sum of squared differences (SSD) between two images X1 and X2 as,

SSD is first computed for each component Y,Cb and Cr for the left and right images.

SSD_Left = SSD(Y_org_L, Y_dec_L) + SSD(Cb_org_L, Cb_dec_L) + SSD(Cr_org_L, Cr_dec_L),

SSD_Right = SSD(Y_org_R, Y_dec_R) + SSD(Cb_org_R, Cb_dec_R) + SSD(Cr_org_R, Cr_dec_R),
where,
  • Y_org_L denotes Y component of original left image, Y_dec_L denotes Y component of decoded left image,
  • Y_org_R denotes Y component of original right image, Y_dec_R denotes Y component of decoded right image,
  • same notation extended to Cb and Cr components.
Note that Cb and Cr components have 1/4th the number of samples as the Y component and contribute less to the overall SSD.

Denoting the number of pixels of the left and right images as MxN, we compute the mean squared error per sample as,

MSE_Left = SSD_Left/(MN+MN/4+MN/4),

MSE_Right = SSD_Right/(MN+MN/4+MN/4).


The mean squared error for the stereo image is then computed as,

MSE = (MSE_Left + MSE_Right)/2.


Finally, the PSNR of the decoded stereo image is computed as,

PSNR = 10*log10(255^2/MSE).

For any image pair in the test set that does not pass the PSNR threshold of 37 dB, we will include the number of bits of the uncompressed image pair during the bitrate measurements.


c) Time limits
We will be using SCIEN machines to test your program. The total run time for encoding and decoding 7 test images is limited to 14 min. We will abort your program if it takes longer. Please make sure that your program runs without problems on the SCIEN machines.


5. Project Submission


a) Project report:
  • Should be submitted as pdf.
  • 2000 words typical, 4000 words max., not including references.
  • Use IEEE conference paper as model
  • Include graphs, pictures, and references
  • Groups submit ONE report, with a break-down of who did what as an appendix to the report.
The report should contain
  • Problem description in own words.
  • Detailed description and justification of your algorithm.
  • What is novel in your design? Give references to published ideas.
  • Performance of your algorithm on the provided training images.

b) MATLAB code: You must implement your encoder and decoder in MATLAB or C. You can use any function in any MATLAB toolbox, but no software from other sources may be incorporated into your algorithm. We encourage you to compare your performance against popular coding softwares, and you can use open source code for that purpose. However, your own algorithm must be implemented from scratch. Submission includes
  • Encoder code to take stereo image and generate bitstream (Encode_Stereo.m).
  • Decoder code to take bitstream and produce decoded file (Decode_Stereo.m).

c) Electronic slides of your talk (e.g. powerpoint or pdf)

Should be submitted ahead of the talk by the deadline below. We will add a slide showing the performance of your codec to the end of your slide deck.


6. Submission procedure

  • Please e-mail your submissions to mamakar@stanford.edu and harilaks@stanford.edu.
  • MATLAB functions should be included in a single zip file named "EE398A_XX_code.zip" where XX is the group number assigned to you by the TAs. Submission deadline is 11:59 pm on Mon, Mar 12.
  • Submission deadline for presentation slides ("EE398A_XX_talk.ppt" or "EE398A_XX_talk.pdf") is 11:59 pm on Wed, Mar 14.
  • Submission deadline for project report "EE398A_XX_report.pdf" is 11:59 pm on Thurs, Mar 15.








 

Home | Staff | Handouts | Sample Files | Projects | Announcements | Other
Last modified: 23-Mar-2012