dilagurung / libyuv

Automatically exported from code.google.com/p/libyuv
BSD 3-Clause "New" or "Revised" License
0 stars 0 forks source link

Horizontal Filter #285

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
When scaling with bilinear or box, memory behavior is poor.
A quick test shows the bilinear filter is much faster if you point the 2nd row 
to the first.

And a bit faster if you write specific code to skip the 2nd row.
100 ms - unfiltered
112 ms - bilinear horizontal specialized code
130 ms - bilinear horizontal stride 0
173 ms - bilinear

Original issue reported on code.google.com by fbarch...@google.com on 9 Nov 2013 at 12:31

GoogleCodeExporter commented 9 years ago
Done.  r853 performance:
set LIBYUV_WIDTH=640
set LIBYUV_HEIGHT=360
set LIBYUV_REPEAT=4000
ScaleFrom1920x1080_Box (5826 ms)
ScaleFrom1920x1080_Bilinear (1499 ms)
ScaleFrom1920x1080_Linear (1314 ms)
ScaleFrom1920x1080_None (1245 ms)
ScaleTo1920x1080_None (10925 ms)
ScaleTo1920x1080_Box (4730 ms)
ScaleTo1920x1080_Bilinear (4723 ms)

ARGBScaleTo1920x1080_Bilinear (5054 ms)
ARGBScaleTo1920x1080_Linear (3789 ms)
ARGBScaleTo1920x1080_None (3107 ms)
ARGBScaleFrom1920x1080_None (688 ms)
ARGBScaleFrom1920x1080_Bilinear (686 ms)
ARGBScaleFrom1920x1080_Linear (678 ms)

Original comment by fbarch...@google.com on 13 Nov 2013 at 9:20