Psnr Calculation Tool
![](https://www.researchgate.net/profile/Patrick_Seeling/publication/2885330/figure/download/fig1/AS:279593115242501@1443671601189/Methodology-for-PSNR-calculation-for-video-transmission-over-wireless-links.png)
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 Tool](https://www.mdpi.com/applsci/applsci-08-02199/article_deploy/html/images/applsci-08-02199-g001.png)
- 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.