myrao / libyuv

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

Optimize SSIM #270

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
SSIM is slow.  Optimize it!

libyuvTest.BenchmarkSsim_Opt (17375 ms)
libyuvTest.BenchmarkPsnr_Opt (92 ms)
188.8x slower than Psnr.

Psnr uses SSE4.1
SSE4 libyuvTest.BenchmarkPsnr_Opt (92 ms)
C    libyuvTest.BenchmarkPsnr_Opt (639 ms)
6.94x faster with SSE4.

SSim C is 27.19x slower than Psnr C.

Original issue reported on code.google.com by fbarch...@google.com on 16 Sep 2013 at 5:22

GoogleCodeExporter commented 8 years ago
The SSim in libvpx that this is based on has been optimized for x64 SSE2.
Suggest starting with that.  It has 4 issues
1. not ported to 32 bit.   Uses too many registers.
2. not ported to AVX2.  Could be faster.
3. not ported to Neon.  Would lend itself nicely.
4. not ported to NaCL.  Requires memory references changes, and gcc 4.4 inline 
or intrinsics.
Also looks like it could be optimized some more, if its still slow.

Original comment by fbarch...@google.com on 24 Sep 2013 at 11:29

GoogleCodeExporter commented 8 years ago

Original comment by fbarch...@google.com on 1 Dec 2014 at 6:16

GoogleCodeExporter commented 8 years ago
Deferring indefinitely due to lack of demand.

Original comment by fbarch...@google.com on 12 Jan 2015 at 5:46