loop_filter_level computation.

35 views
Skip to first unread message

vijay

unread,
Apr 12, 2012, 8:53:31 AM4/12/12
to WebM Discussion
Hi all,

For loop_filter_level computation reference encoder uses the
vp8cx_pick_filter_level_fast() or vp8cx_pick_filter_level for
different value of --cpu-used. I had fixed the --cpu-used=0 and
created two different executables. In one case I had enabled the
vp8cx_pick_filter_level_fast() and masked the
vp8cx_pick_filter_level() function call. And in another case vice
versa.


I had drawn the RD curves for 5 different QP values (no bit-rate
control used) for different resolution streams (SD, 720p, 1080p).

But I hadn't seen any PSNR gain by using vp8cx_pick_filter_level()
(which very compuationally intensive).

I had analysed the compuations also for all streams. So I found that
vp8cx_pick_filter_level() is almost 16 times more comutationally
intensive than vp8cx_pick_filter_level_fast().

So my question is why we are using vp8cx_pick_filter_level() if it
doesn't give any quality gain and 16 times more complex than
vp8cx_pick_filter_level_fast().

Thanks,
Vijay.

John Koleszar

unread,
Apr 12, 2012, 1:00:41 PM4/12/12
to webm-d...@webmproject.org
I see you tested with different resolutions, but did you test
different sources too? The effect of the loopfilter is material
dependent.

Thanks for looking at this! It may well be that the distinction
between the two functions is less important than it was in the past.
If there's an opportunity for a good speed bump here, it's definitely
worth looking into.

> --
> You received this message because you are subscribed to the Google Groups "WebM Discussion" group.
> To post to this group, send email to webm-d...@webmproject.org.
> To unsubscribe from this group, send email to webm-discuss...@webmproject.org.
> For more options, visit this group at http://groups.google.com/a/webmproject.org/group/webm-discuss/?hl=en.
>

vijay

unread,
Apr 12, 2012, 1:57:59 PM4/12/12
to WebM Discussion
Hi John,

Thanks for answering. I did this experiment with different sources.
SPACE_CREW, toys_and_calender, Night_720, Basketball_1080p(class B
sequence)
many other sequences. And all the sequences shown similar behaviour.
No PSNR difference between two.

Regards,
Vijay.
> > To post to this group, send email to webm-disc...@webmproject.org.
> > To unsubscribe from this group, send email to webm-discuss+unsubscr...@webmproject.org.

John Koleszar

unread,
Apr 12, 2012, 2:55:31 PM4/12/12
to webm-d...@webmproject.org
"No PSNR difference" meaning minimal, or zero? If zero, I'd suspect a
bug. Do you have graphs you can share?

I tried this very quickly, and I definitely saw a noticeable drop in
PSNR, both in VBR and fixed-QP modes:

$ ./vpxenc.baseline ~/g/video/crew_cif.y4m -o /dev/null --psnr
Pass 1/1 frame 300/300 327512B 8733b/f 262009b/s 30239 ms (9.92 fps)
Stream 0 PSNR (Overall/Avg/Y/U/V) 33.894 34.218 33.290 37.767 36.492

$ ./vpxenc.new ~/g/video/crew_cif.y4m -o /dev/null --psnr
Pass 1/1 frame 300/300 325919B 8691b/f 260735b/s 29196 ms (10.28 fps)
Stream 0 PSNR (Overall/Avg/Y/U/V) 33.836 34.155 33.222 37.744 36.453

$ ./vpxenc.baseline --min-q=24 --max-q=24 ~/g/video/crew_cif.y4m -o
/dev/null --psnr
Pass 1/1 frame 300/300 1221626B 32576b/f 977300b/s 36633 ms (8.19 fps)
Stream 0 PSNR (Overall/Avg/Y/U/V) 39.336 39.373 38.580 41.942 41.300

$ ./vpxenc.new --min-q=24 --max-q=24 ~/g/video/crew_cif.y4m -o /dev/null --psnr
Pass 1/1 frame 300/300 1223567B 32628b/f 978853b/s 36312 ms (8.26 fps)
Stream 0 PSNR (Overall/Avg/Y/U/V) 39.292 39.329 38.540 41.892 41.230

Back of the envelope and a couple other tests says this might meet our
general criteria for speed optimizations (~10% increase in perf per 1%
quality hit). I'd like to run it on a bigger test set to see if there
are any interesting outliers.

> To post to this group, send email to webm-d...@webmproject.org.
> To unsubscribe from this group, send email to webm-discuss...@webmproject.org.

vkumar...@gmail.com

unread,
Apr 12, 2012, 3:01:35 PM4/12/12
to webm-d...@webmproject.org
Sorry i should have written negligible difference.

vijay bansal

unread,
Apr 13, 2012, 2:20:08 AM4/13/12
to webm-d...@webmproject.org
Hi John,

I am sharing the PSNR results for filter level computation study.
Currently curves are drawn between PSNR luma & bit-rate.
I see negligible gain(.02 dB -.05 dB) by using slower algo but
complexity wise it is far more complex than faster filter_level
computation algo.

Regards,
Vijay.

deblocking_study_share.xls

Attila Nagy

unread,
Apr 13, 2012, 4:05:27 AM4/13/12
to webm-d...@webmproject.org
Could you share the whole encoder parameter list that you have used?

Attila Nagy

unread,
Apr 13, 2012, 4:29:30 AM4/13/12
to webm-d...@webmproject.org
currently in realtime mode at speed 4 we have "slow" filter and i switched that to fast.
this is on Intel(R) Xeon(R) CPU           E5520  @ 2.27GHz.

./vpxenc.baseline --rt --cpu-used=-4 --target-bitrate=2000 --fps=30000/1001 -w 640 -h 480 -o /dev/null soccer_30fps_w640h480.yuv --psnr
Pass 1/1 frame  300/300  2540246B   67739b/f 2030166b/s 6020617 us (49.83 fps)
Stream 0 PSNR (Overall/Avg/Y/U/V) 37.964 38.362 37.027 43.421 44.807

./vpxenc.fast --rt --cpu-used=-4 --target-bitrate=2000 --fps=30000/1001 -w 640 -h 480 -o /dev/null soccer_30fps_w640h480.yuv --psnr
Pass 1/1 frame  300/300  2534950B   67598b/f 2025934b/s 5006367 us (59.92 fps)
Stream 0 PSNR (Overall/Avg/Y/U/V) 37.742 38.165 36.822 43.340 44.658

./vpxenc.baseline --rt --cpu-used=-4 --target-bitrate=1000 --fps=30000/1001 -w 640 -h 480 -o /dev/null soccer_30fps_w640h480.yuv --psnr
Pass 1/1 frame  300/300  1277566B   34068b/f 1021031b/s 5773755 us (51.96 fps)
Stream 0 PSNR (Overall/Avg/Y/U/V) 34.920 35.413 34.012 41.236 42.689

./vpxenc.fast --rt --cpu-used=-4 --target-bitrate=1000 --fps=30000/1001 -w 640 -h 480 -o /dev/null soccer_30fps_w640h480.yuv --psnr
Pass 1/1 frame  300/300  1274653B   33990b/f 1018703b/s 4446564 us (67.47 fps)
Stream 0 PSNR (Overall/Avg/Y/U/V) 34.842 35.337 33.937 41.182 42.592

vijay bansal

unread,
Apr 13, 2012, 8:20:59 AM4/13/12
to webm-d...@webmproject.org
Hi,

Your results shows significant performance difference between two algos.
Around 20-30% performance drop by using slower one. And PSNR wise not
much differerence.

Comparison between Y psnr for two cases 2mbps and 1mbps where slower
is better in PSNR term.

2mbps : 0.148 dB(slower has 4232 more bits/sec)
1mbps : 0.075 dB(slower has 2328 more bits/sec)

So overall I think slower algo doesn't give much PSNR gain but we
loose in performance.

Regards,
Vijay.

Reply all
Reply to author
Forward
0 new messages