Psnr Calculation Tool

Tools for various operations on raw YCbCr video files.http://en.wikipedia.org/wiki/YCbCr

I would like to compare a large number of videos to a good reference video in order to find videos with poor quality. I want to do this in a batch mode by calling a command line utility, I'm already using ffmpeg in this manner to grab video frames.

ycbcr.py - is the main class that supports the following formats:

Tool
  • IYUV
  • UYVY
  • YV12
  • NV12
  • YVYU
  • YUY2
  • 422

Supported operations:

  • basic info about a file
  • convert between any of the formats above (including correct sub- re-sampling of chroma-data)
  • split a file into individual frames
  • creates a diff between two files
  • PSNR calculations, one value per color-plane including weighted and average
  • get luma-data per frame
  • SSIM calculation on luma
  • convert between 8bpp and 10bpp
  • flip left/right, upside/down
  • draw frame number in luma-data
  • crop
  • visualization of PSNR/SSIM using matplotlib
  • reduce framerate by throwing away frames

Xp c2008 thermal receipt printer drivers for mac. Also includes a simple GUI using wxpython that wrapsthe psnr/ssim operations above.

Usage

Files

  • ycbcr.py - main class
  • plot_diff.py - matplotlib wrapper around PSNR/SSIM-calculation. Generate nice plots using luma-data.
  • verify.py - unittest
  • visual.py - matplotlib wrapper around PSNR/SSIM-calculation. Generate nice plots.

Screenshots

Here's one of the output from visual.py Jersey number font cricut.