- 11 Oct, 2016 1 commit
-
-
Frank Barchard authored
YUV 411 is very uncommon format. Remove support. Update documentation to reflect that 411 is deprecated. Simplify tests for YUV to only test with the new side by side YUV but keep old 3 plane test around with a macro for now. BUG=libyuv:645 R=kjellander@chromium.org Review URL: https://codereview.chromium.org/2406123002 .
-
- 03 Oct, 2016 1 commit
-
-
Frank Barchard authored
Low level support for 12 bit 420, 422 and 444 YUV video frame conversion. BUG=libyuv:560, chromium:445071 TEST=LibYUVPlanarTest.TestHalfFloatPlane on windows R=hubbe@chromium.org, wangcheng@google.com Review URL: https://codereview.chromium.org/2387713002 .
-
- 29 Sep, 2016 1 commit
-
-
Frank Barchard authored
BUG=libyuv:560,chromium:445071 TEST=untested R=hubbe@chromium.org Review URL: https://codereview.chromium.org/2371293002 .
-
- 27 Sep, 2016 1 commit
-
-
Frank Barchard authored
BUG=libyuv:560 TEST=local compile for windows R=wangcheng@google.com Review URL: https://codereview.chromium.org/2364293002 .
-
- 28 Jun, 2016 1 commit
-
-
Frank Barchard authored
The old guard only checked for defined(_M_X64) which is defined by mingw64. Add a test for defined(_MSC_VER) which is defined for clangcl and visual c but not mingw. mingw should use row_gcc.cc for both 32 and 64 bit. R=harryjin@google.com BUG=webm:1252,libyuv:613 TEST=local gcc/clang builds on linux tested and try bots for others. Review URL: https://codereview.chromium.org/2105603002 .
-
- 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 .
-
- 26 May, 2016 1 commit
-
-
Magnus Jedvert authored
BUG=libyuv:572 R=fbarchard@google.com Review URL: https://codereview.chromium.org/1995293002 .
-
- 18 Feb, 2016 1 commit
-
-
Frank Barchard authored
ARGBToJ420 had an SSSE3 version, but not AVX2. ARGBToI420 had an AVX2, so adapt that code to J420. TBR=harryjin@google.com BUG=libyuv:553 Review URL: https://codereview.chromium.org/1702373004 .
-
- 13 Jan, 2016 1 commit
-
-
Frank Barchard authored
R=harryjin@google.com BUG=libyuv:546 Review URL: https://codereview.chromium.org/1574253004 .
-
- 12 Jan, 2016 1 commit
-
-
Frank Barchard authored
Macro define and macro ifdef didnt match, leading to C code being used. Make macro match function name. TBR=harryjin@google.com BUG=libyuv:543 Review URL: https://codereview.chromium.org/1579023002 .
-
- 21 Dec, 2015 1 commit
-
-
Frank Barchard authored
BUG=libyuv:535 R=dhrosa@google.com Review URL: https://codereview.chromium.org/1535833003 .
-
- 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 .
-
- 09 Dec, 2015 2 commits
-
-
Frank Barchard authored
R=harryjin@google.com BUG=libyuv:531 Review URL: https://codereview.chromium.org/1515503005 .
-
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 .
-
- 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 .
-
- 02 Dec, 2015 1 commit
-
-
Frank Barchard authored
R=dhrosa@google.com, harryjin@google.com, jzern@chromium.org BUG=libyuv:527 Review URL: https://codereview.chromium.org/1491533002 .
-
- 18 Nov, 2015 1 commit
-
-
Frank Barchard authored
Before I420ToARGB_Opt (594 ms) I422ToARGB_Opt (483 ms) I411ToARGB_Opt (748 ms) *** I444ToARGB_Opt (452 ms) I400ToARGB_Opt (218 ms) After I420ToARGB_Opt (591 ms) I422ToARGB_Opt (454 ms) I411ToARGB_Opt (502 ms) *** I444ToARGB_Opt (441 ms) I400ToARGB_Opt (216 ms) TBR=harryjin@google.com BUG=libyuv:525 Review URL: https://codereview.chromium.org/1459513002 .
-
- 17 Nov, 2015 1 commit
-
-
Frank Barchard authored
improves performance on older CPUs where movdqa is faster. TBR=harryjin@google.com BUG=libyuv:492 Review URL: https://codereview.chromium.org/1455463002 .
-
- 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 2 commits
-
-
Frank Barchard authored
TBR=harryjin@google.com BUG=libyuv:518 Review URL: https://codereview.chromium.org/1420033004 .
-
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 .
-
- 27 Oct, 2015 2 commits
-
-
Frank Barchard authored
swap U and V and transpose conversion matrix, so I420AlphaToARGB and I420AlphaToABGR share low level code. Having less code with same performance allows more focused optimization for future ARM versions. R=harryjin@google.com TBR=harryjin@chromium.org BUG=libyuv:473,libyuv:516 Review URL: https://codereview.chromium.org/1422263002 .
-
Frank Barchard authored
U contributes to B and G. V contributes to R and G. By swapping U and V, they contribute to the opposite channels. Adjust the matrix so the U contribution is in the matrix location such that it till contribute to the new B channel and vice versa. This allows ABGR versions of YUV conversion to use the same low level code as ARGB, just using a different matrix and swapping U and V pointers. As a result the existing I444ToABGRRow functions are no longer needed and are removed. Previously this function was only Intel AVX2 optimized for Windwos. Now it is also optimized for Arm and GCC. ARMv7 Neon Was LibYUVConvertTest.I444ToABGR_Opt (75971 ms) Now LibYUVConvertTest.I444ToABGR_Opt (3672 ms) 20.6 times faster. R=xhwang@chromium.org BUG=libyuv:515 Review URL: https://codereview.chromium.org/1414133006 .
-
- 08 Oct, 2015 3 commits
-
-
Frank Barchard authored
TBR=harryjin@google.com BUG=none Review URL: https://codereview.chromium.org/1398633002 .
-
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 .
-
Frank Barchard authored
Previously the assembly code was only available to Windows. This CL ports the SSE2 code to GCC syntax. When running a profiler on all the unittests, this function was the slowest of all functions that still ran in C code. 3.71% libyuv_unittest libyuv_unittest [.] ARGBToRGB565DitherRow_C Was ARGBToRGB565Dither_Opt (2894 ms) Now ARGBToRGB565Dither_Opt (432 ms) TBR=harryjin@google.com BUG=libyuv:492 Review URL: https://codereview.chromium.org/1397673002 .
-
- 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 .
-
- 25 Sep, 2015 4 commits
-
-
Frank Barchard authored
Was I420AlphaToARGB_Premult (8861 ms) I420AlphaToARGB_Opt (7119 ms) Now I420AlphaToABGR_Premult (2840 ms) I420AlphaToARGB_Opt (484 ms) C function switched to 1 step. Was I420AlphaToARGB_Premult (8862 ms) I420AlphaToABGR_Opt (6718 ms) Now I420AlphaToARGB_Premult (8706 ms) I420AlphaToARGB_Opt (6541 ms) R=harryjin@google.com BUG=libyuv:496, libyuv:473 Review URL: https://codereview.chromium.org/1359183003 .
-
Frank Barchard authored
C I420AlphaToARGB_Opt (5169 ms) SSSE3 I420AlphaToARGB_Opt (432 ms) AVX2 I420AlphaToARGB_Opt (358 ms) and with premultiplication as 2 step process: I420AlphaToARGB_Premult (7029 ms) I420AlphaToARGB_Premult (757 ms) I420AlphaToARGB_Premult (508 ms) R=harryjin@google.com BUG=libyuv:496,libyuv:473 Review URL: https://codereview.chromium.org/1372653003 .
-
Frank Barchard authored
API change - I420AlphaToARGB takes flag indicating if RGB should be premultiplied by alpha. This version implements an efficient SSSE3 version for Windows. C version done in 2 steps. Was libyuvTest.I420AlphaToARGB_Any (1136 ms) libyuvTest.I420AlphaToARGB_Unaligned (1210 ms) libyuvTest.I420AlphaToARGB_Invert (966 ms) libyuvTest.I420AlphaToARGB_Opt (1031 ms) libyuvTest.I420AlphaToABGR_Any (1020 ms) libyuvTest.I420AlphaToABGR_Unaligned (1359 ms) libyuvTest.I420AlphaToABGR_Invert (1082 ms) libyuvTest.I420AlphaToABGR_Opt (986 ms) R=harryjin@google.com BUG=libyuv:496 Review URL: https://codereview.chromium.org/1367093002 .
-
Frank Barchard authored
ebx encodes more efficiently (1 byte less) for most address modes, than ebp. previously it was used for 411 format, but the reader uses pinsrw now avoiding gpr register. BUG=libyuv:488 R=harryjin@google.com Review URL: https://codereview.chromium.org/1365003003 .
-
- 23 Sep, 2015 1 commit
-
-
Frank Barchard authored
Includes UYVYToARGB ssse3 fix. Was YUY2ToARGB_Opt (433 ms) 69.79% libyuv_unittest libyuv_unittest [.] I422ToARGBRow_AVX2 20.73% libyuv_unittest libyuv_unittest [.] YUY2ToUV422Row_AVX2 6.04% libyuv_unittest libyuv_unittest [.] YUY2ToYRow_AVX2 0.77% libyuv_unittest libyuv_unittest [.] YUY2ToARGBRow_AVX2 Now YUY2ToARGB_Opt (280 ms) 95.66% libyuv_unittest libyuv_unittest [.] YUY2ToARGBRow_AVX2 BUG=libyuv:494 R=harryjin@google.com Review URL: https://codereview.chromium.org/1364813002 .
-
- 22 Sep, 2015 4 commits
-
-
Frank Barchard authored
BUG=none Review URL: https://codereview.chromium.org/1359023003 .
-
Frank Barchard authored
read in read function for yuv conversion R=harryjin@google.com BUG=libyuv:488 Review URL: https://codereview.chromium.org/1355393002 .
-
Frank Barchard authored
Allows reader to support YUY2 format. Also contains fix for win64 build for yuv conversion. TBR=harryjin@google.com BUG=libyuv:488 Review URL: https://codereview.chromium.org/1355333002 .
-
Frank Barchard authored
R=harryjin@google.com BUG=libyuv:488 Review URL: https://codereview.chromium.org/1363503002 .
-
- 18 Sep, 2015 2 commits
-
-
Frank Barchard authored
R=harryjin@google.com BUG=libyuv:488 Review URL: https://codereview.chromium.org/1359443005 .
-
Frank Barchard authored
Reimplements I444ToARGB as a matrix function. new I444ToABGR as matrix functions with wrappers and any functions. Allows for future J444 and H444 versions. I444ToABGR user level function added. BUG=libyuv:490, libyuv:449 R=harryjin@google.com Review URL: https://codereview.chromium.org/1355733002 .
-