MPEG1 decoding is a myth

Jun 30 2013

This is the final programming assignment for the course, Information Theory and Coding Technique, I took in this semester.

  1. Implement a MPEG video decoder (I-frame, IP-frames, IPB-frames ) with UI (display) [1].

  2. Correctly read the MPEG clips (with I, P, B frames) [2] and skip frames (e.g., B-frames) which your decoder doesn’t support.

With favors of codec experts from CMLab, I did finish finally it w/o any brain gotcha. What caught my eyes is the tool I used, GLYUVPlay, a Mac raw YUV player with some interesting function like:

  • a pixel-level inspector for your observation.
  • frame-by-frame playback for median-sized YUV videos.
  • exporting as a Quicktime movie.
  • side-by-side comparison of two YUV videos.
  • standard measurement of videos, PSNR.
  • advanced and famous metric, SSIM.

I haven’t tried SSIM yet but I did get proven that for relative PSNR, I_ONLY-based one is better than IPB_ALL one. What a lovely learning and experience.

comments powered by Disqus