Software

Here you can download some Matlab ® scripts and C/C++ programs I wrote as support tools for my research activity. Please feel free to contact me for comments and improvements.

 abekas2yuvThe software converts the abekas file format into the YUV progressive format. The software is the same that you can download from here

 burst_counterThis Matlab script provides the average burst length of given error pattern specified as a string of characters '0' and '1'

 burst_counterIt provides the same results of the Matlab scripts burst_counter (see above) but it is implemented in C

 dct_frameThis Matlab script performs the DCT computation over a nonoverlapped grid of disjoint blocks

 gilbert_modelThis Matlab script computes an error pattern with a given burst length and packet loss rate generated according to a two states Gilbert model. For further details see: E. N. Gilbert, “Capacity of a burst-noise channel,” Bell System Technical Journal, vol. 39, pp. 1253–1266, September 1960

 h264_quarter_pel
This Matlab script performs the quarter pixel frame upsampling as specified by the H.264/AVC video coding standard. The script also performs frame edge padding to allow out of boundary motion vectors

 luma_grabberThis Matlab script returns a matrix containing the luminance component of the frame numbers specified as input parameters

 psnr_calculationThis Matlab script returns the PSNR between the original YUV video sequence and the decoded one. The PSNR is computed over the luminance and the two chromatic components

 transmitter_simulator
This C++ program simulates the transmission of an H.264/AVC bitstream through an error prone channel which drops coded packets according to a given packet loss rate

 yuv2rgbThis Matlab script performs the YUV to RGB conversion according to what described here

 yuv422to420converter
This Matlab script performs the spatial downsampling of the chrominance components of one YUV video sequence file 

 modified_h264_decoder
This software is a modified version of the H.264/AVC encoder/decoder reference software provided by JVT (version JM12.3). The encoder allows to avoid intra macroblock prediction in inter coded slices. Conversely, the decoder allows to dump some useful data (e.g. motion vectors, coding modes, prediction residuals, etc.) to perform some further analysis. WARNING: The current decoder works only with bitstreams coded with the Baseline profile

 spatiotemporal_indexThis Matlab script computes the spatial and temporal indexes according to the ITU-R specifications provided in the following document: "Subjective video quality assessment methods for multimedia applications", Recommendation ITU-R, P 910, September 1999.

Updated version (May 2014) which:
  • Doesn't require the Image Processing Toolbox to be installed
  • Fixes a small discrepancy between the ITU specification and zero padding for SI
  • Handles different bit depths with scaling of final values in the 8 bit depth range

 image_class A C++ class which implements a 2D image with several useful functionalities for storing, accessing, etc. The class also provides several overloaded operators to simplify operations like: sum, subtraction, multiplication, etc. between two images

 H.264/AVC forward 4x4 DCT & quantization
A Matlab MEX function which performs the 4x4 Discrete Cosine Transform (DCT) and quantization as specified in the H.264/AVC video coding standard

 H.264/AVC inverse quantization & inverse4x4 DCT
A Matlab MEX function which performs the 4x4 inverse quantization and Inverse Discrete Cosine Transform (IDCT) as specified in the H.264/AVC video coding standard

blur_metricA Matlab script which computes the blur metric for image quality assessment as described in the work: P. Marziliano, F. Dufaux, S. Winkler and T. Ebrahimi, "Perceptual blur and ringing metrics: application to JPEG2000", Signal Processing: Image Communication, vol. 19, no. 2, pp. 163-172, February 2004

 ringing_metricA Matlab script which computes the ringing metric for image quality assessment as described in the work: P. Marziliano, F. Dufaux, S. Winkler and T. Ebrahimi, "Perceptual blur and ringing metrics: application to JPEG2000", Signal Processing: Image Communication, vol. 19, no. 2, pp. 163-172, February 2004

Ringing impairment addition
A Matlab script which introduces, over the luminance component, the ringing impairment as specified in the ITU-T document: "Principles of a reference impairment system for video", Recommendation ITU-T P 930, August 1996

 SSIM index computation
A C++ program which computes the Structural SIMilarity (SSIM) index as specified in the paper: Z. Wang, A. C. Bovik, H. R. Sheikh, and E. P. Simoncelli, "Image quality assessment: from error visibility to structural similarity", IEEE Transactions on Image Processing, vol. 13 no. 4, pp. 600 - 612, April 2004

 compute_GBIMA Matlab script which computes the Generalized Block Impairment Metric (GBIM) as proposed in the work: H. R. Wu and M. Yuen, "A generalized block-edge impairment metric for video coding", IEEE Signal Process. Lett., vol. 4, no. 11, pp. 317-320, Nov. 1997