- 13 Jan, 2017 1 commit
-
-
Frank Barchard authored
add macros to enable/disable code analyst around blocks of code. Normally these macros should not be used, but if performance details are wanted for intel code, enable them around the code and then run via the iaca tool, available on the intel website. BUG=libyuv:670 TEST=~/iaca-lin64/bin/iaca.sh -64 out/Release/libyuv_unittest R=wangcheng@google.com Review-Url: https://codereview.chromium.org/2626193002 .
-
- 19 Dec, 2016 1 commit
-
-
Frank Barchard authored
BUG=libyuv:666 TESTED= unittests built and passed with jpeg disabled. R=kjellander@chromium.org Review-Url: https://codereview.chromium.org/2585373002 .
-
- 14 Dec, 2016 1 commit
-
-
Frank Barchard authored
The difference was assigned to an int, causing a warning on Visual C. BUG=662 TEST=tested with try bots. R=devangelakos@google.com Review-Url: https://codereview.chromium.org/2574373002 .
-
- 07 Dec, 2016 1 commit
-
-
Frank Barchard authored
BUG=libyuv:660 TEST=try bots R=kjellander@chromium.org Review URL: https://codereview.chromium.org/2554213003 .
-
- 22 Nov, 2016 1 commit
-
-
Frank Barchard authored
Add MSA optimized ARGBToRGB565Row_MSA, ARGBToARGB1555Row_MSA, ARGBToARGB4444Row_MSA, ARGBToUV444Row_MSA functions R=fbarchard@google.com BUG=libyuv:634 Performance Gain (vs C vectorized) ARGBToRGB565Row_MSA - ~1.6x ARGBToRGB565Row_Any_MSA - ~1.6x ARGBToARGB1555Row_MSA - ~1.3x ARGBToARGB1555Row_Any_MSA - ~1.3x ARGBToARGB4444Row_MSA - ~3.8x ARGBToARGB4444Row_Any_MSA - ~3.8x ARGBToUV444Row_MSA - ~2.4x ARGBToUV444Row_Any_MSA - ~2.4x Performance Gain (vs C non-vectorized) ARGBToRGB565Row_MSA - ~2.8x ARGBToRGB565Row_Any_MSA - ~2.8x ARGBToARGB1555Row_MSA - ~2.2x ARGBToARGB1555Row_Any_MSA - ~2.2x ARGBToARGB4444Row_MSA - ~6.8x ARGBToARGB4444Row_Any_MSA - ~6.6x ARGBToUV444Row_MSA - ~6.7x ARGBToUV444Row_Any_MSA - ~6.7x Review URL: https://codereview.chromium.org/2520003004 .
-
- 07 Nov, 2016 1 commit
-
-
Frank Barchard authored
Improved unittests detect different in arm64 rounding. TEST=util/android/test_runner.py gtest -s libyuv_unittest -t 7200 --verbose --release --gtest_filter=*Half* -a "--libyuv_width=640 --libyuv_height=360" BUG=libyuv:560 R=wangcheng@google.com Review URL: https://codereview.chromium.org/2478313004 .
-
- 01 Nov, 2016 1 commit
-
-
Frank Barchard authored
64 bit version made similar to 32 bit with registers 1 for load and store results, and 2 and 3 as expanded float temporary values. TEST=out/Release/libyuv_unittest --gtest_filter=*Half* BUG=libyuv:560 R=wangcheng@google.com Review URL: https://codereview.chromium.org/2467723002 .
-
- 26 Oct, 2016 1 commit
-
-
Frank Barchard authored
R=fbarchard@google.com BUG=libyuv:634 Performance Gain (vs C vectorized) I422AlphaToARGBRow_MSA : ~1.4x I422AlphaToARGBRow_Any_MSA : ~1.4x I422ToRGB24Row_MSA : ~4.8x I422ToRGB24Row_Any_MSA : ~4.8x Performance Gain (vs C non-vectorized) I422AlphaToARGBRow_MSA : ~7.0x I422AlphaToARGBRow_Any_MSA : ~7.0x I422ToRGB24Row_MSA : ~7.9x I422ToRGB24Row_Any_MSA : ~7.7x Review URL: https://codereview.chromium.org/2454433003 .
-
- 25 Oct, 2016 1 commit
-
-
Frank Barchard authored
Debug builds of x86 gcc/clang can run out of register. Previously NDEBUG or _DEBUG was used to detect a debug build. But those macros are not set by gentoo builds. This CL switches to the compiler predefine __OPTIMIZE__ which is built into clang and gcc. BUG=libyuv:602 TEST=untested R=wangcheng@google.com Review URL: https://codereview.chromium.org/2451503002 .
-
- 21 Oct, 2016 1 commit
-
-
Frank Barchard authored
void HalfFloat1Row_NEON(const uint16* src, uint16* dst, float, int width) { asm volatile ( "1: \n" MEMACCESS(0) "ld1 {v1.16b}, [%0], #16 \n" // load 8 shorts "subs %w2, %w2, #8 \n" // 8 pixels per loop "uxtl v2.4s, v1.4h \n" // 8 int's "uxtl2 v1.4s, v1.8h \n" "scvtf v2.4s, v2.4s \n" // 8 floats "scvtf v1.4s, v1.4s \n" "fcvtn v4.4h, v2.4s \n" // 8 floatsgit "fcvtn2 v4.8h, v1.4s \n" MEMACCESS(1) "st1 {v4.16b}, [%1], #16 \n" // store 8 shorts "b.gt 1b \n" : "+r"(src), // %0 "+r"(dst), // %1 "+r"(width) // %2 : : "cc", "memory", "v1", "v2", "v4" ); } void HalfFloatRow_NEON(const uint16* src, uint16* dst, float scale, int width) { asm volatile ( "1: \n" MEMACCESS(0) "ld1 {v1.16b}, [%0], #16 \n" // load 8 shorts "subs %w2, %w2, #8 \n" // 8 pixels per loop "uxtl v2.4s, v1.4h \n" // 8 int's "uxtl2 v1.4s, v1.8h \n" "scvtf v2.4s, v2.4s \n" // 8 floats "scvtf v1.4s, v1.4s \n" "fmul v2.4s, v2.4s, %3.s[0] \n" // adjust exponent "fmul v1.4s, v1.4s, %3.s[0] \n" "uqshrn v4.4h, v2.4s, #13 \n" // isolate halffloat "uqshrn2 v4.8h, v1.4s, #13 \n" MEMACCESS(1) "st1 {v4.16b}, [%1], #16 \n" // store 8 shorts "b.gt 1b \n" : "+r"(src), // %0 "+r"(dst), // %1 "+r"(width) // %2 : "w"(scale * 1.9259299444e-34f) // %3 : "cc", "memory", "v1", "v2", "v4" ); } TEST=LibYUVPlanarTest.TestHalfFloatPlane_One BUG=libyuv:560 R=hubbe@chromium.org Review URL: https://codereview.chromium.org/2430313008 .
-
- 20 Oct, 2016 2 commits
-
-
Frank Barchard authored
AVX unpack parameters were reverse ordered causing incorrect results on AVX2 hardware. TEST=/usr/local/google/home/fbarchard/intelsde/sde -skx -- out/Release/libyuv_unittest --gtest_filter=*Half* BUG=libyuv:560 R=wangcheng@google.com Review URL: https://codereview.chromium.org/2438893002 .
-
Frank Barchard authored
Halffloats have a limited range. It shouldnt normally come up, but if the scale value passed in produces a small value, the half floats will be denormals, which are slow and/or flust to zero. This test ensures they behave the same in C and SIMD and tests the performance of denormals. TEST=TestHalfFloatPlane_denormal BUG=libyuv:560 R=hubbe@chromium.org Review URL: https://codereview.chromium.org/2424233004 .
-
- 14 Oct, 2016 1 commit
-
-
Frank Barchard authored
R=wangcheng@google.com, hubbe@chromium.org BUG=libyuv:560 Review URL: https://codereview.chromium.org/2418763006 .
-
- 13 Oct, 2016 1 commit
-
-
Frank Barchard authored
Port SSE2 version to AVX2. BUG=libyuv:572 TEST=/usr/local/google/home/fbarchard/intelsde/sde -skx -- out/Release/libyuv_unittest --gtest_filter=*Extract* R=wangcheng@google.com, magjed@chromium.org Review URL: https://codereview.chromium.org/2420553002 .
-
- 12 Oct, 2016 1 commit
-
-
Frank Barchard authored
R=kjellander@chromium.org BUG=libyuv:649 Review URL: https://codereview.chromium.org/2414763002 .
-
- 11 Oct, 2016 2 commits
-
-
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 .
-
Frank Barchard authored
I420 output can be slow due to multi channel write. Putting the U and V into a single side by side buffer can improve performance. TBR=wangcheng@google.com BUG=None Review URL: https://codereview.chromium.org/2403223003 .
-
- 30 Sep, 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=untested R=hubbe@chromium.org Review URL: https://codereview.chromium.org/2381493006 .
-
- 28 Sep, 2016 1 commit
-
-
Frank Barchard authored
Original bt709 color space coefficients were full range yuv for higher quality. This change makes the coefficients use the video constrained color space the same as bt601 which is 16 to 240 for Y and 16 to 235 for chroma channels. BUG=libyuv:639 TEST=libyuv unittests run locally R=hubbe@chromium.org Review URL: https://codereview.chromium.org/2367253003 .
-
- 27 Sep, 2016 1 commit
-
-
Frank Barchard authored
Signed vectors are rarely used in libyuv... remove macros for now. Remove word shuffler, use byte shuffler in row_msa. Bump version number. TBR=manojkumar.bhosale@imgtec.com BUG=libyuv:634 Review URL: https://codereview.chromium.org/2375553002 .
-
- 16 Sep, 2016 2 commits
-
-
Frank Barchard authored
TBR=kjellander@chromium.org BUG=libyuv:637, chromium:646279 Review URL: https://codereview.chromium.org/2340933005 .
-
Frank Barchard authored
BUG=libyuv:635 TEST=try bots R=harryjin@google.com Review URL: https://codereview.chromium.org/2347733002 .
-
- 14 Sep, 2016 1 commit
-
-
Frank Barchard authored
BUG=libyuv:636 TESTED=try bots R=kjellander@chromium.org Review URL: https://codereview.chromium.org/2339813002 .
-
- 30 Aug, 2016 1 commit
-
-
Frank Barchard authored
On visual c 2013 and earlier a warning is generated if externs are not declared with the same alignment as the declaration, when using /ltcg BUG=libyuv:633 TEST=standalong test built with cl /Bv /GL /Ox /nologo a.cc b.cc /link /ltcg R=skal@google.com Review URL: https://codereview.chromium.org/2291533004 .
-
- 25 Aug, 2016 1 commit
-
-
Frank Barchard authored
Add test for SplitUVPlane and MergeUVPlane Add public methods SplitUVPlanes and MergeUVPlanes based on the optimized assembly functions that already exists. TEST=SplitUVPlane unittest BUG=libyuv:629 R=braveyao@chromium.org Review URL: https://codereview.chromium.org/2279603002 .
-
- 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
The conversion from NV12 and other Bi or Tri planar formats, differs only in the UV handling. The helper function supports passing a NULL for the dst_y channel indicating you only want to do the UV conversion. TBR=harryjin@google.com TEST=LibYUVConvertTest.NV12ToI420_NullY (601 ms) BUG=libyuv:626 Review URL: https://codereview.chromium.org/2276703002 .
-
- 23 Aug, 2016 1 commit
-
-
Frank Barchard authored
TBR=magjed@chromium.org BUG=libyuv:629 TEST=LibYUVConvertTest.NV12ToI420_Opt Review URL: https://codereview.chromium.org/2267303002 .
-
- 22 Aug, 2016 1 commit
-
-
Frank Barchard authored
BUG=libyuv:630 TBR=harryjin@google.com TEST=android build locally tested. Review URL: https://codereview.chromium.org/2225763003 . Review URL: https://codereview.chromium.org/2269793002 .
-
- 08 Aug, 2016 1 commit
-
-
Frank Barchard authored
BUG=libyuv:626 Review URL: https://codereview.chromium.org/2225763003 .
-
- 14 Jul, 2016 1 commit
-
-
Frank Barchard authored
Fix for duplicate define ../../third_party/libyuv/include/libyuv/scale_row.h:29:9: error: 'LIBYUV_DISABLE_X86' macro redefined [-Werror,-Wmacro-redefined] ^ GYP version relys on headers disabling the optimization. This CL does the same for BUILD.gn TBR=kjellander@chromium.org BUG=libyuv:625 Review URL: https://codereview.chromium.org/2149823003 .
-
- 13 Jul, 2016 2 commits
-
-
Frank Barchard authored
Fix for unaligned memory exception. R=braveyao@chromium.org BUG=libyuv:616 Review URL: https://codereview.chromium.org/2152553002 .
-
Frank Barchard authored
to Y,U,V and a pixel stride for U and V. The pixel stride is expected to be 1 or 2. [ RUN ] LibYUVConvertTest.Android420ToI420_1_Any [ OK ] LibYUVConvertTest.Android420ToI420_1_Any (253 ms) [ RUN ] LibYUVConvertTest.Android420ToI420_1_Unaligned [ OK ] LibYUVConvertTest.Android420ToI420_1_Unaligned (250 ms) [ RUN ] LibYUVConvertTest.Android420ToI420_1_Invert [ OK ] LibYUVConvertTest.Android420ToI420_1_Invert (254 ms) [ RUN ] LibYUVConvertTest.Android420ToI420_1_Opt [ OK ] LibYUVConvertTest.Android420ToI420_1_Opt (247 ms) [ RUN ] LibYUVConvertTest.Android420ToI420_2_Any [ OK ] LibYUVConvertTest.Android420ToI420_2_Any (132 ms) [ RUN ] LibYUVConvertTest.Android420ToI420_2_Unaligned [ OK ] LibYUVConvertTest.Android420ToI420_2_Unaligned (122 ms) [ RUN ] LibYUVConvertTest.Android420ToI420_2_Invert [ OK ] LibYUVConvertTest.Android420ToI420_2_Invert (124 ms) [ RUN ] LibYUVConvertTest.Android420ToI420_2_Opt [ OK ] LibYUVConvertTest.Android420ToI420_2_Opt (119 ms) TEST=LibYUVConvertTest.Android420ToI420_Opt BUG=libyuv:604 R=braveyao@chromium.org Review URL: https://codereview.chromium.org/2146733002 .
-
- 11 Jul, 2016 1 commit
-
-
Frank Barchard authored
webrtc doesnt include the headers that the functions are prototyped in. This CL makes the convert.h include those headers to allow webrtc to update to the head libyuv. TBR=harryjin@google.com BUG=libyuv:620,webrtc:6091,webrtc:6094 TESTED=local build and try bots Review URL: https://codereview.chromium.org/2141683002 .
-
- 08 Jul, 2016 1 commit
-
-
Frank Barchard authored
TBR=harryjin@google.com BUG=libyuv:618 Review URL: https://codereview.chromium.org/2132993003 .
-
- 06 Jul, 2016 1 commit
-
-
Frank Barchard authored
Mking color conversion use simple arrays within structure, which will be referenced via register pointer. R=harryjin@google.com BUG=libyuv:616 TEST=CC=gcc-4.4 CXX=g++-4.4 LD=ld-4.4 make -f linux.mk Review URL: https://codereview.chromium.org/2127863003 .
-
- 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 .
-
- 24 Jun, 2016 3 commits
-
-
Frank Barchard authored
R=wangcheng@google.com, harryjin@google.com BUG=libyuv:607 Review URL: https://codereview.chromium.org/2093913004 .
-
Frank Barchard authored
upscale a YUV image. observe change in hue.. green especially. disable ScaleFilterCols_SSSE3, falling back on ScaleFilterCols_C observe hue.. green especially, is better. was ScaleFrom1280x720_Bilinear (1620 ms) now ScaleFrom1280x720_Bilinear (1907 ms) BUG=libyuv:605 TEST=try bots R=harryjin@google.com, wangcheng@google.com Review URL: https://codereview.chromium.org/2084533006 .
-
Frank Barchard authored
the ScaleFilterCols_SSSE3 function fails at runtime if vectorsize is not used. BUG=libyuv:610,libyuv:605 R=wangcheng@google.com Review URL: https://codereview.chromium.org/2080223007 .
-