[prev in list] [next in list] [prev in thread] [next in thread] 

List:       helix-producer-dev
Subject:    Re: [Helix-producer-dev] PSNR Calculation for RM files
From:       Karl Lillevold <karll () real ! com>
Date:       2004-05-22 17:50:30
Message-ID: 40AF92E6.1070107 () real ! com
[Download RAW message or body]

The recommended method to obtain PSNR numbers from RV10 is via 
RealMediaSplitter and Avisynth, or directly from the encoder via its 
calcPSNR function.

We do not generally recommend PSNR as the only measure, even though if 
done correctly, RV10 should come out very well.  The main problem is to 
obtain the numbers in a fair and comparable manner for every codec.  It 
takes only a little mistake, like frame misalignment, or the use of the 
noisyEdgeFilter, that does not make much visual difference, but then the 
PSNR to be completely wrong and always lower than it should be.

On the same topic, I just came across a new codec comparison
http://jfl1974.free.fr/HTM/32_Test_Codec_Video.htm It's in French, but 
the graphs are universal, and include PSNR. RV10 comes out better than 
the other codecs in this test, the others being XviD 1.0 (MPEG-4), WMV9 
Pro, VP6, H.264. I know the person who ran this test, used the method 
below to obtain PSNR and SSIM for all the codecs.

steps needed:

install (register) realmediasplitter.ax
http://sourceforge.net/projects/guliverkli/

install Avisynth 2.54 or higher (/not/ 2.0)
http://sourceforge.net/project/showfiles.php?group_id=57023

create a script like this, save as compare.avs:

---
source=AVISource("sourcefile.avi").ConvertToYUY2()
video=DirectShowSource("encodedfile.rmvb",fps=25).ConvertToYUY2()

# --> PSNR analysis <--
Compare(video,source,"Y","psnrlog.txt")
---

Open this in virtualdub, play it through, close virtualdub. PSNR numbers 
now in psnrlog.txt.

Note that for this to work, no frames can be skipped in the RM file, so 
for most high bitrates this should be OK, or with the new 
vbrUnconstrainedBitrate rate control likewise, it guarantees that all 
frames are encoded.

You can also use the codec option calcPSNR to make the encoder produce 
PSNR numbers in a log file while encoding.
http://forum.doom9.org/showthread.php?s=&threadid=72321

Hope this helps,
  Karl Lillevold       mailto:karll@real.com
  Sr. Codec Engineer | RealNetworks Codec Group

Leonardo Pinheiro wrote:
> Hi all,
> 
>    Does anyone knows how to calculate the PSNR comparing a RM file and 
> the original uncompressed file ?
>    I found some tools that would do it, but using AVI files, nothing for 
> RM files.
> 
> Thanks in advance.
> 
> Leo.
> 
> 
> _______________________________________________
> Helix-producer-dev mailing list
> Helix-producer-dev@lists.helixcommunity.org
> http://lists.helixcommunity.org/mailman/listinfo/helix-producer-dev



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic