[Ffmpeg-cvslog] CVS: ffmpeg/libavcodec motion_est.c,1.115,1.116

Corey Hickey bugfood-ml
Sat Jan 21 07:44:28 CET 2006


Michael Niedermayer wrote:
>>I don't know how universally applicable these tests are, but if 16 was
>>default before and 1 is default now, adjusting to somewhere toward the
>>middle is probably a safe change. I've attached patches for ffmpeg and
>>mplayer, if anyone else wants to test this. If the patches should be
>>applied, I'll make a patch for the mplayer man page. Otherwise, 6 could
>>just be hardcoded.
>>
>>
>>I haven't tried sc_threshold yet. My understanding is that using
> 
> 
> can you achive the same improvement with sc_threshold? if yes the patch
> is rejected, if no the patch is ok and can be applied

Well, that took a really long time, mostly because I didn't have any
idea what values to start with. I have failed to achieve the same
quality improvement with sc_threshold. Here are the PSNR results:

sc_threshold=0:         PSNR: Y:42.06, Cb:45.17, Cr:45.86, All:42.93
sc_threshold=-10:       PSNR: Y:42.06, Cb:45.17, Cr:45.86, All:42.93
sc_threshold=-20:       PSNR: Y:42.06, Cb:45.17, Cr:45.86, All:42.93
sc_threshold=-30:       PSNR: Y:42.06, Cb:45.17, Cr:45.86, All:42.93
sc_threshold=-100:      PSNR: Y:42.06, Cb:45.17, Cr:45.86, All:42.93
sc_threshold=-200:      PSNR: Y:42.06, Cb:45.17, Cr:45.86, All:42.93
sc_threshold=-300:      PSNR: Y:42.06, Cb:45.17, Cr:45.86, All:42.93
sc_threshold=-400:      PSNR: Y:42.06, Cb:45.17, Cr:45.87, All:42.94
sc_threshold=-500:      PSNR: Y:42.06, Cb:45.17, Cr:45.86, All:42.93
sc_threshold=-600:      PSNR: Y:42.06, Cb:45.17, Cr:45.86, All:42.93
sc_threshold=-700:      PSNR: Y:42.07, Cb:45.17, Cr:45.87, All:42.94
sc_threshold=-800:      PSNR: Y:42.06, Cb:45.17, Cr:45.87, All:42.94
sc_threshold=-900:      PSNR: Y:42.06, Cb:45.17, Cr:45.86, All:42.94
sc_threshold=-1000:     PSNR: Y:42.06, Cb:45.17, Cr:45.86, All:42.94
sc_threshold=-1100:     PSNR: Y:42.07, Cb:45.17, Cr:45.87, All:42.94
sc_threshold=-1200:     PSNR: Y:42.06, Cb:45.17, Cr:45.86, All:42.94
sc_threshold=-1300:     PSNR: Y:42.07, Cb:45.17, Cr:45.87, All:42.94
sc_threshold=-1400:     PSNR: Y:42.07, Cb:45.17, Cr:45.87, All:42.94
sc_threshold=-1500:     PSNR: Y:42.07, Cb:45.17, Cr:45.87, All:42.94
sc_threshold=-2000:     PSNR: Y:42.06, Cb:45.17, Cr:45.86, All:42.94
sc_threshold=-2500:     PSNR: Y:42.07, Cb:45.17, Cr:45.87, All:42.95
sc_threshold=-3000:     PSNR: Y:42.08, Cb:45.18, Cr:45.89, All:42.96
sc_threshold=-3500:     PSNR: Y:42.08, Cb:45.18, Cr:45.88, All:42.95
sc_threshold=-4000:     PSNR: Y:42.08, Cb:45.18, Cr:45.88, All:42.96
sc_threshold=-4500:     PSNR: Y:42.08, Cb:45.18, Cr:45.89, All:42.96
sc_threshold=-5000:     PSNR: Y:42.08, Cb:45.18, Cr:45.88, All:42.95
sc_threshold=-5500:     PSNR: Y:42.08, Cb:45.18, Cr:45.88, All:42.96
sc_threshold=-6000:     PSNR: Y:42.08, Cb:45.18, Cr:45.88, All:42.96
sc_threshold=-7000:     PSNR: Y:42.09, Cb:45.18, Cr:45.87, All:42.96
sc_threshold=-8000:     PSNR: Y:42.09, Cb:45.18, Cr:45.87, All:42.96
sc_threshold=-9000:     PSNR: Y:42.09, Cb:45.18, Cr:45.88, All:42.96
sc_threshold=-10000:    PSNR: Y:42.09, Cb:45.18, Cr:45.87, All:42.96

Or, if you prefer, a graph is attached.


As you can see, the PSNR hits a plateau at around sc_threshold=-3000, so
I don't think testing lower values would yield any better PSNR. As far
as visual quality goes, I didn't see any of the same gains as with my
sc_factor patch. I found a few new I-frames at higher values of
sc_threshold, but they weren't placed in locations that improved
bad-looking high-motion scenes as much as with sc_factor=6 (which,
incidentally, yields 42.97 PSNR with current CVS).

I've attached patches for ffmpeg and mplayer; they're like the last ones
I posted, except:
* I made 6 the default
* I added sc_factor to the mplayer man page
* for convenience, I moved all sc_factor lines to right after sc_threshold

You approved my previous patches contingent upon the improvement not
being attainable with sc_threshold; are these ones ok as well? Also, I
suppose making 6 the default will change the regression tests. I would
include them in the patch, but "make test" fails for me right now
regardless. It might be easier if you apply the ffmpeg part yourself.

-Corey
-------------- next part --------------
A non-text attachment was scrubbed...
Name: graph.png
Type: image/png
Size: 5420 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-cvslog/attachments/20060120/07ebf6cc/attachment.png>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: sc_factor.ffmpeg.diff
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-cvslog/attachments/20060120/07ebf6cc/attachment.asc>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: sc_factor.mplayer.diff
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-cvslog/attachments/20060120/07ebf6cc/attachment.txt>



More information about the ffmpeg-cvslog mailing list