jrdeng / libyuv

Automatically exported from code.google.com/p/libyuv (2015-08-19)
http://code.google.com/p/libyuv
BSD 3-Clause "New" or "Revised" License
0 stars 0 forks source link

C match SIMD exactly #447

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Currently C and SIMD dont exactly match for some functions/cpus.
Functions that do odd width use a combination of C and SIMD and can show a 
subtle artifact.   See this chromoting bug 
https://code.google.com/p/chromium/issues/detail?id=493914

For this use case, its important that C and SIMD match.
Neither needs to be accurate, and different platforms can be different.  But 
the C needs to exactly match the SIMD.

Reduce tolerance in unittests to zero.
Change C to mimic SIMD, even if performance is substantially worse for C.

Original issue reported on code.google.com by fbarch...@chromium.org on 3 Jun 2015 at 10:37

GoogleCodeExporter commented 9 years ago
The following unittests contain EXPECT_NEAR and are likely not exact:
color_test.cc
convert_test.cc
math_test.cc
planar_test.cc
scale_color_test.cc
version_test.cc

The following unittests contain a diff threshold and are likely not exact:
compare_test.cc
scale_argb_test.cc
scale_test.cc

The following unittests do not contain NEAR or diff and are likely exact:
basictypes_test.cc
cpu_test.cc
rotate_argb_test.cc
rotate_test.cc
video_common_test.cc

Original comment by fbarch...@google.com on 30 Jun 2015 at 7:38

GoogleCodeExporter commented 9 years ago
in planar_test attenuate, unattenuate and interpolate have differences

Original comment by fbarch...@google.com on 1 Jul 2015 at 8:25