- 22 Sep, 2016 1 commit
-
-
Frank Barchard authored
As per the preparation patch added in Chromium sources at, 2150943003: Add MIPS SIMD Arch (MSA) build flags for GYP/GN builds This patch adds first MSA optimized function in libYUV project. BUG=libyuv:634 R=fbarchard@google.com Review URL: https://codereview.chromium.org/2285683002 .
-
- 24 Aug, 2016 2 commits
-
-
Frank Barchard authored
Add public methods SplitUVPlanes and MergeUVPlanes based on the optimized assembly functions that already exists. Also, de-duplicate the CPU dispatching code for these functions by moving them to helper functions. BUG=libyuv:629 R=braveyao@chromium.org Review URL: https://codereview.chromium.org/2277603004 .
-
Frank Barchard authored
BUG=libyuv:631 TEST=unittests build/pass R=harryjin@google.com Review URL: https://codereview.chromium.org/2271053003 .
-
- 07 Jun, 2016 1 commit
-
-
Frank Barchard authored
arm64 8 TestARGBExtractAlpha (10019 ms) <-original 64 bit code arm64 8 x2 TestARGBExtractAlpha (7639 ms) arm64 16 TestARGBExtractAlpha (7369 ms) <- new 64 bit code thumb32 8 TestARGBExtractAlpha (9505 ms) <- original 32 bit code thumb32 8 x2 TestARGBExtractAlpha (7400 ms) thumb32 8 x2i TestARGBExtractAlpha (7266 ms) <- new 32 bit code arm32 8 TestARGBExtractAlpha (10002 ms) BUG=libyuv:572 TESTED=local test on nexus 9 R=harryjin@google.com, wangcheng@google.com Review URL: https://codereview.chromium.org/2035573002 .
-
- 28 May, 2016 1 commit
-
-
Frank Barchard authored
blur requires memory be aligned. change the unittest allocator to guarantee 64 byte alignment. re-enable blur any test that fails if memory is unaligned. TBR=harryjin@google.com BUG=libyuv:596,libyuv:594 TESTED=local build passes with row.h removed from tests. Review URL: https://codereview.chromium.org/2019753002 .
-
- 27 May, 2016 1 commit
-
-
Frank Barchard authored
add SIMD_ALIGNED to unittest header. BUG=libyuv:594 TESTED=local build passes with row.h removed from tests. R=harryjin@google.com Review URL: https://codereview.chromium.org/2001373002 .
-
- 26 May, 2016 1 commit
-
-
Magnus Jedvert authored
BUG=libyuv:572 R=fbarchard@google.com Review URL: https://codereview.chromium.org/1995293002 .
-
- 08 Apr, 2016 1 commit
-
-
Frank Barchard authored
When using C version of I420Interpolate for msan, a 50% interpolation would cause stride to be cast to int, which could cause erroneous memory reads on 64 bit build. This CL makes the stride use ptrdiff_t for HalfRow_C BUG=libyuv:582 TESTED=try bots tests R=dhrosa@google.com Review URL: https://codereview.chromium.org/1872953002 .
-
- 05 Feb, 2016 1 commit
-
-
Frank Barchard authored
When attempting to normalize function names to end in Row_SIMD it was made harder with MIPS_DSPR2 naming convention. Other CPUs do not include the vendor. This should be named consistently. Removed the DISABLE_MIPS in favour of DISABLE_ASM for consistency with other processors. TBR=harryjin@google.com BUG=libyuv:562 Review URL: https://codereview.chromium.org/1677633002 .
-
- 19 Jan, 2016 1 commit
-
-
Frank Barchard authored
When width was odd Y channel wrote an extra pixel. This change splits the Y from UV into a temporary buffer and memcpy's to the destination. Performance is slower. Was YUY2ToNV12_Any (307 ms) YUY2ToNV12_Unaligned (213 ms) TestYUY2ToNV12 (181 ms) YUY2ToNV12_Opt (177 ms) YUY2ToNV12_Invert (177 ms) Npw YUY2ToNV12_Any (300 ms) YUY2ToNV12_Unaligned (226 ms) YUY2ToNV12_Invert (206 ms) TestYUY2ToNV12 (184 ms) YUY2ToNV12_Opt (181 ms) TBR=harryjin@google.com BUG=libyuv:545 Review URL: https://codereview.chromium.org/1593833002 .
-
- 06 Jan, 2016 1 commit
-
-
Frank Barchard authored
R=dhrosa@google.com, harryjin@google.com BUG=libyuv:538 Review URL: https://codereview.chromium.org/1558093003 .
-
- 17 Dec, 2015 1 commit
-
-
Frank Barchard authored
Remove inaccurate specializations for 1/4 and 3/4, since they round incorrectly. Specialize for 100% and 50% are kept due to performance. Make C and ARM code match SSSE3. Make unittests expect zero difference. BUG=libyuv:535 R=harryjin@google.com Review URL: https://codereview.chromium.org/1533643005 .
-
- 15 Dec, 2015 1 commit
-
-
Frank Barchard authored
When scaling down by 2 the formula should round consistently. (a+b+c+d+2)/4 The C version did but the SSE2 version was doing 2 averages. avg(avg(a,b),avg(c,d)) This change uses a sum, then rounds. R=dhrosa@google.com, harryjin@google.com BUG=libyuv:447,libyuv:527 Review URL: https://codereview.chromium.org/1513183004 .
-
- 09 Dec, 2015 2 commits
-
-
Frank Barchard authored
Benchmark out\release\libyuv_unittest --libyuv_width=1279 --libyuv_height=719 --libyuv_repeat=999 --libyuv_flags=-1 --gtest_filter=*Blend* | sortms Was I420Blend_Any (2321 ms) I420Blend_Unaligned (1684 ms) I420Blend_Opt (1675 ms) I420Blend_Invert (1653 ms) BlendPlane_Invert (1556 ms) BlendPlane_Any (1552 ms) BlendPlane_Unaligned (1548 ms) BlendPlane_Opt (1535 ms) ARGBBlend_Unaligned (659 ms) ARGBBlend_Any (596 ms) ARGBBlend_Invert (591 ms) ARGBBlend_Opt (508 ms) BlendPlaneRow_Unaligned (186 ms) BlendPlaneRow_Opt (171 ms) Now ARGBBlend_Any (621 ms) ARGBBlend_Unaligned (585 ms) ARGBBlend_Invert (564 ms) ARGBBlend_Opt (512 ms) I420Blend_Unaligned (347 ms) I420Blend_Invert (345 ms) I420Blend_Any (337 ms) I420Blend_Opt (327 ms) BlendPlane_Unaligned (187 ms) BlendPlaneRow_Unaligned (187 ms) BlendPlane_Invert (186 ms) BlendPlane_Any (186 ms) BlendPlaneRow_Opt (173 ms) BlendPlane_Opt (171 ms) which is comparable to aligned case out\release\libyuv_unittest --libyuv_width=1280 --libyuv_height=720 --libyuv_repeat=999 --libyuv_flags=-1 --gtest_filter=*Blend* | sortms ARGBBlend_Any (625 ms) ARGBBlend_Unaligned (602 ms) ARGBBlend_Invert (508 ms) ARGBBlend_Opt (506 ms) I420Blend_Any (353 ms) I420Blend_Unaligned (322 ms) I420Blend_Invert (304 ms) I420Blend_Opt (301 ms) BlendPlaneRow_Unaligned (188 ms) BlendPlane_Unaligned (186 ms) BlendPlane_Invert (185 ms) BlendPlane_Any (184 ms) BlendPlaneRow_Opt (173 ms) BlendPlane_Opt (169 ms) R=dhrosa@google.com, harryjin@google.com BUG=libyuv:527 Review URL: https://codereview.chromium.org/1513443002 .
-
Frank Barchard authored
out/Release/libyuv_unittest --libyuv_width=1280 --libyuv_height=720 --libyuv_repeat=9999 --libyuv_flags=-1 --gtest_filter=*I420Blend_Opt Was LibYUVPlanarTest.I420Blend_Opt (2335 ms) Now LibYUVPlanarTest.I420Blend_Opt (1937 ms) vs SSSE3 LibYUVPlanarTest.I420Blend_Opt (2599 ms) BUG=libyuv:527 R=dhrosa@google.com Review URL: https://codereview.chromium.org/1505673003 .
-
- 07 Dec, 2015 2 commits
-
-
Frank Barchard authored
R=dhrosa@google.com, harryjin@google.com BUG=libyuv:527 Review URL: https://codereview.chromium.org/1507683003 .
-
Frank Barchard authored
TBR=harryjin@google.com BUG=libyuv:528 Review URL: https://codereview.chromium.org/1506973002 .
-
- 06 Dec, 2015 1 commit
-
-
Frank Barchard authored
AVX2 version can process 16 pixels at a time for improved memory bandwidth and fewer instructions. unittests improved to test unaligned memory, and test exactness when alpha is 0 or 255. R=dhrosa@google.com, harryjin@google.com BUG=libyuv:527 Review URL: https://codereview.chromium.org/1505433002 .
-
- 26 Nov, 2015 1 commit
-
-
Frank Barchard authored
YUV version of interpolation between two images. R=dhrosa@google.com, harryjin@google.com BUG=libyuv:526 Review URL: https://codereview.chromium.org/1479593002 .
-
- 04 Nov, 2015 1 commit
-
-
Frank Barchard authored
R=harryjin@google.com BUG=none Review URL: https://codereview.chromium.org/1429693006 .
-
- 03 Nov, 2015 1 commit
-
-
Frank Barchard authored
Add unittests that do 1 step conversion vs 2 step conversion. Tests end swapping versions match direct conversions. R=harryjin@google.com BUG=libyuv:518 Review URL: https://codereview.chromium.org/1419103007 .
-
- 02 Nov, 2015 1 commit
-
-
Frank Barchard authored
Removes low levels for I420ToBGRA and I420ToRAW and reimplements them as I420ToRGBA and I420ToRGB24 with transposed color matrix. Adds unittests that do 1 step conversion vs 2 steps to test end swapping versions match direct conversions. R=harryjin@google.com BUG=libyuv:518 Review URL: https://codereview.chromium.org/1427993004 .
-
- 30 Oct, 2015 1 commit
-
-
Frank Barchard authored
Using a transposed conversion matrix, I420ToARGB can output ABGR. R=harryjin@google.com, xhwang@chromium.org BUG=libyuv:473 Review URL: https://codereview.chromium.org/1413573010 .
-
- 08 Oct, 2015 1 commit
-
-
Frank Barchard authored
yuv constants for bt.601 were previously ported to neon64, as well as the code to respect other color spaces. But the jpeg and bt.709 colour conversion constants were still in armv7 form. This changes the constants for aarch64 builds to be compatible with the code. yuv constants are now passed as const * Remove Yvu constants which were used for older version on nv21 but not new code. TBR=harryjin@google.com BUG=none Review URL: https://codereview.chromium.org/1398623002 .
-
- 07 Oct, 2015 1 commit
-
-
Frank Barchard authored
Low level for NV21ToARGB written to accept yuv matrix used by other YUV to ARGB functions. Previously NV21 was implemented for Windows using NV12 with a different matrix that swapped U and V. But the Arm version of the low level does not allow the matrix U and V contributions to be swapped. Using a new low level function that reads NV21 and uses the same yuvconstants as other YUV conversion functions allows an Arm port of this function. TBR=harryjin@google.com BUG=libyuv:500 Review URL: https://codereview.chromium.org/1388273002 .
-
- 30 Sep, 2015 1 commit
-
-
Frank Barchard authored
ARGBBlendRow_SSE2, ARGBAttenuateRow_SSE2, and MirrorRow_SSE2 Since vast majority of CPUs have SSSE3 now, removing the SSE2 improves the performance of CPU dispatching. R=harryjin@google.com BUG=none Review URL: https://codereview.chromium.org/1377053003 .
-
- 22 Sep, 2015 1 commit
-
-
Frank Barchard authored
R=harryjin@google.com BUG=libyuv:488 Review URL: https://codereview.chromium.org/1363503002 .
-
- 13 Aug, 2015 1 commit
-
-
Frank Barchard authored
R=harryjin@google.com BUG=none Review URL: https://webrtc-codereview.appspot.com/59369004.
-
- 17 Jul, 2015 2 commits
-
-
Frank Barchard authored
R=bcornell@google.com BUG=libyuv:466 Review URL: https://webrtc-codereview.appspot.com/51309004.
-
Frank Barchard authored
R=harryjin@google.com BUG=libyuv:466 Review URL: https://webrtc-codereview.appspot.com/50339004.
-
- 28 May, 2015 1 commit
-
-
fbarchard@google.com authored
odd width support for ARGBSobel functions. Improves performance for images that are not a multiple of 8 pixels. BUG=444 TESTED=libyuvTest.ARGBSobel_Opt R=harryjin@google.com Review URL: https://webrtc-codereview.appspot.com/54589004 git-svn-id: http://libyuv.googlecode.com/svn/trunk@1415 16f28f9a-4ce2-e073-06de-1de4eb20be90
-
- 27 May, 2015 1 commit
-
-
fbarchard@google.com authored
Change Sobel to use JPeg Luma calculation instead of extracting G channel. Using luma produces a better sobel that respects all 3 channels of RGB. Historically the G channel was used to improve performance, and because the luma of I420 is a constrained range, hurting quality. Using the JPeg variation of YUV, the luma is more accurate, including cross platform, better optimized for AVX2 and odd widths, and full range. BUG=444 TESTED=ARGBSobelXY_Opt R=harryjin@google.com Review URL: https://webrtc-codereview.appspot.com/57479004 git-svn-id: http://libyuv.googlecode.com/svn/trunk@1414 16f28f9a-4ce2-e073-06de-1de4eb20be90
-
- 07 Apr, 2015 1 commit
-
-
fbarchard@google.com authored
BUG=none TESTED=RGB565ToI420 R=tpsiaki@google.com Review URL: https://webrtc-codereview.appspot.com/46829004 git-svn-id: http://libyuv.googlecode.com/svn/trunk@1359 16f28f9a-4ce2-e073-06de-1de4eb20be90
-
- 26 Mar, 2015 1 commit
-
-
fbarchard@google.com authored
Scale down by 2 AVX2 port. Processes twice as many pixels as SSE2 and takes advantage of 3 argument instructions to reduce register usage and number of instructions. BUG=314 TESTED=libyuvTest.ScaleDownBy2_Box R=tpsiaki@google.com Review URL: https://webrtc-codereview.appspot.com/42959004 git-svn-id: http://libyuv.googlecode.com/svn/trunk@1347 16f28f9a-4ce2-e073-06de-1de4eb20be90
-
- 19 Mar, 2015 1 commit
-
-
fbarchard@google.com authored
Enable assembly for clangcl build on Windows. Previously assembly was disabled so clangcl would work, but only with C code. As clangcl mimics both Visual C and GCC, ifdefs need to pick one or the other or often you'll end up with both. In this CL we disable most Visual C code and use the GCC versions which allow assembly for both 32 and 64 bit intel. BUG=412 TESTED=clang=1 build on windows R=tpsiaki@google.com Review URL: https://webrtc-codereview.appspot.com/51389004 git-svn-id: http://libyuv.googlecode.com/svn/trunk@1341 16f28f9a-4ce2-e073-06de-1de4eb20be90
-
- 24 Feb, 2015 1 commit
-
-
fbarchard@google.com authored
BUG=403 TESTED=avx2 emulator Review URL: https://webrtc-codereview.appspot.com/34359004 git-svn-id: http://libyuv.googlecode.com/svn/trunk@1293 16f28f9a-4ce2-e073-06de-1de4eb20be90
-
- 07 Feb, 2015 1 commit
-
-
fbarchard@google.com authored
BUG=398 TESTED=untested R=harryjin@google.com Review URL: https://webrtc-codereview.appspot.com/37999004 git-svn-id: http://libyuv.googlecode.com/svn/trunk@1268 16f28f9a-4ce2-e073-06de-1de4eb20be90
-
- 12 Jan, 2015 1 commit
-
-
fbarchard@google.com authored
Change rectangle low level functions to use more conventional row functions including 'any' variations. Previously the yuv function SetPlane stored 32 bit values. Now a more conventional memset() style function is used for YUV that stores bytes. On Haswell a rep stosb is used for YUV. Overall benefit of this CL is improved performance for 'any' width, and simpler row assembly instead of full image assembly. Previously ARGBRect used a low level function that supported a rectangle in assembly. Now it uses a row function, and relies on row coalesce to combine into a single low level call. BUG=371 TESTED=untested R=brucedawson@google.com, harryjin@google.com Review URL: https://webrtc-codereview.appspot.com/35689004 git-svn-id: http://libyuv.googlecode.com/svn/trunk@1222 16f28f9a-4ce2-e073-06de-1de4eb20be90
-
- 07 Jan, 2015 2 commits
-
-
fbarchard@google.com authored
BUG=387 TESTED=ARGBRect_Invert R=harryjin@google.com Review URL: https://webrtc-codereview.appspot.com/37539004 git-svn-id: http://libyuv.googlecode.com/svn/trunk@1219 16f28f9a-4ce2-e073-06de-1de4eb20be90
-
fbarchard@google.com authored
BUG=none TESTED=rectangle unittests R=harryjin@google.com Review URL: https://webrtc-codereview.appspot.com/35639004 git-svn-id: http://libyuv.googlecode.com/svn/trunk@1218 16f28f9a-4ce2-e073-06de-1de4eb20be90
-