07-09-2014 08:39 AM
Hi,
I'm doing the blockiness test on PQA to a basic video stream (just frames one-color, one second has black frames, one second has white frames, one second green frames and so on). I made a test with provider AVI single and another test with provider digital AV (banc 8133 with modules 6545 and 2172 for HDMI). I get almost a similar behavior for two tests but numerical values are totally different. I want to know what is the ideal blockiness value for a perfect frame (no-blockiness at all) ? is it 1?
Carolina
07-09-2014 10:34 AM
Carolina1: The quick answer to your question is that the perfect score is 0, no difference in macroblock edges. This can be demonstrated by loading attached AVI in PQA.
Blockiness:
Checkers:
07-10-2014 04:34 AM
Hi,
I think for me it is better to use checkers processor because I have to test decoder devices (Set-top-box) instead encoder devices. Thank you for your answer and video. Do you have the same video but HD format 1080p?
Carolina
07-10-2014 09:40 AM
About the AVI I created:
I built that video using the IMAQ AVI functionality by creating frames in Paint for the resolution I wanted, then built them up. I am attaching the code and source that I used to make a 1080p video that you could expand and change up if you'd like. The code isn't perfect, just a quick concept.
About Checkers:
Using the Checkers processor is most likely going to require some post processing work in LabVIEW. At a minimum, it is going to require you analyzing the multi-point metrics from within PQA rather than the single-point. Single-point averages out the entire frame, so if you have 1 bad block, its hard to tell that from other things that might be going on. Multipoint breaks the frame up in the 'Block size' that you specify, and effectively returns that 2D array as a 1D array (all of row 0 data, followed by all of row 1 data, followed by all of row 2 data, etc) , so its results can be challenging to look at too. Basically, you'll be looking for one or more multi-point block that had a spiked value, indicating that it ran into a hard edge.
If you bring the Checkers data back into LabVIEW, you can re-compose it into a 2D array, and also use an intensity graph to better see what the returned data is indicating. I have a demonstration of this that I can share, but would prefer not to post that to the public forum. If you'd like to contact your local NI Support team and open a service request, I can share that internally through them. It will be provided as-is as a demonstration, I can't fully support it.
One other tip, it's much more CPU intensive, but to get the most granular Checkers results, I would recommend reducing the block size to 4 (the lowest it can go). This block size is different than the one used for Blockiness.
About SSIM:
Using Checkers is ultimately challenging unless you can control your video source, and use a source that doesn't contain hard unnatural lines in it (like on-screen text or borders). If you can control your source, and you can control the replaying of it to your DUT, I would recommend the SSIM processor with a reference video. Using this method you create a 'Golden' known-good reference, and then compare your future acquisitions to it. SSIM is an advanced vision algoritihm that detects unnatural defects in pictures the way that humans perceive them. Something like a macroblocking error will score very high because it is not natural in a scene.
07-10-2014 10:05 AM
Hi,
Really I didn't know that checkers has a lot of work and I don't have Labview. But I can control my video, I'm just using images as you send me and I create avi videos as you. Then I use this video with the AVI single provider and then I send it to my set-top-box, finally I made the comparison between two videos. Actually I haven't worked with the SSIM or PSNR processors, but I will do it next week.
Carolina
07-10-2014 10:20 AM