- 24 Feb, 2018 1 commit
-
-
Frank Barchard authored
Each byte is converted to float (0.0 to 255.0) and then multiplied by a scale parameter. Bug: None Test: arm 64 build passes. Change-Id: I04736798540b8d985f60abdf0388e24a209d075b Reviewed-on: https://chromium-review.googlesource.com/930226 Commit-Queue: Frank Barchard <fbarchard@chromium.org> Reviewed-by: Ian Field <ianfield@google.com>
-
- 07 Feb, 2018 1 commit
-
-
Frank Barchard authored
Bug: libyuv:750 Test: builds and runs and passes more tidy tests Change-Id: I023699a7aa61ea3f5e4a21647112691ea5739281 Reviewed-on: https://chromium-review.googlesource.com/902170Reviewed-by: Weiyong Yao <braveyao@chromium.org>
-
- 24 Jan, 2018 1 commit
-
-
Frank Barchard authored
TBR=braveyao@chromium.org Bug: libyuv:774 Test: git cl lint Change-Id: I51cf8107a8db17fbc9952d610f3e4d7aac5aa743 Reviewed-on: https://chromium-review.googlesource.com/882217Reviewed-by: Frank Barchard <fbarchard@chromium.org>
-
- 23 Jan, 2018 1 commit
-
-
Frank Barchard authored
Append _t to all sized types. uint64 becomes uint64_t etc Bug: libyuv:774 Test: try bots build on all platforms Change-Id: Ide273d7f8012313d6610415d514a956d6f3a8cac Reviewed-on: https://chromium-review.googlesource.com/879922Reviewed-by: Miguel Casas <mcasas@chromium.org>
-
- 02 Jan, 2018 2 commits
-
-
Frank Barchard authored
Convert planar 8 bit formats to planar 16 bit formats. Includes msan fix for Convert8To16Row_Opt unittest. I420 is YUV bt.601 8 bits per channel with 420 subsampling. I010 is YUV bt.601 10 bits per channel with 420 subsampling. I is color space - bt.601. The function does no color space conversion so H420ToI010 is aliased to this function as well. 0 = 420 subsampling. The chroma channels are half width / height. 10 = 10 bits per channel, stored in low 10 bits of 16 bit samples. For SSSE3 version: out/Release/libyuv_unittest --gtest_filter=*LibYUVConvertTest.I420ToI010_Opt --libyuv_width=1280 --libyuv_height=720 --libyuv_repeat=999 --libyuv_flags=-1 --libyuv_cpu_info=-1 [ RUN ] LibYUVConvertTest.I420ToI010_Opt [ OK ] LibYUVConvertTest.I420ToI010_Opt (276 ms) Bug: libyuv:751 Test: LibYUVConvertTest.I420ToI010_Opt Change-Id: I072876ee4fd74a2b74f459b628838bc808f9bdd2 Reviewed-on: https://chromium-review.googlesource.com/846421Reviewed-by: Miguel Casas <mcasas@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
-
Frank Barchard authored
LIBYUV_SSSE3_ONLY was for functions that have SSE2 and SSSE3 but are compiling for SSSE3, so SSE2 will never be used. Remove the SSE2 implementation of ARGBSHUFFLEROW_SSE2 and rely on SSSE3. Bug: libyuv: 769 Test: ~/intelsde/sde -p4 -- out/Release/libyuv_unittest --gtest_filter=LibYUVConvertTest.ARGBToABGR_Opt Change-Id: I7443f4d8ee3c6f47edd2cf1d5a1eb0f8d7a1eeeb Reviewed-on: https://chromium-review.googlesource.com/846541Reviewed-by: Weiyong Yao <braveyao@chromium.org> Reviewed-by: Frank Barchard <fbarchard@chromium.org>
-
- 15 Dec, 2017 1 commit
-
-
Frank Barchard authored
Bug: libyuv:751 Test: LibYUVConvertTest.H010ToH010_Opt Change-Id: I996d309040a14193a97d05b62ac0b3e1ad1ee74b Reviewed-on: https://chromium-review.googlesource.com/823445 Commit-Queue: Frank Barchard <fbarchard@chromium.org> Reviewed-by: Cheng Wang <wangcheng@google.com> Reviewed-by: richard winterton <rrwinterton@gmail.com>
-
- 14 Dec, 2017 1 commit
-
-
Frank Barchard authored
Bug: libyuv:765 Test: build for mips still passes Change-Id: I99105ad3951d2210c0793e3b9241c178442fdc37 Reviewed-on: https://chromium-review.googlesource.com/826404Reviewed-by: Weiyong Yao <braveyao@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
-
- 11 Sep, 2017 1 commit
-
-
Frank Barchard authored
Converts packed RGB to planar and back. TBR=kjellander@chromium.org BUG=libyuv:728 TEST=MergeRGBPlane_Opt and SplitRGBPlane_Opt unittests added Change-Id: Ida59af940afcb1fc4a48bbf62c714f592665c3cc Reviewed-on: https://chromium-review.googlesource.com/658069Reviewed-by: Frank Barchard <fbarchard@google.com> Reviewed-by: Cheng Wang <wangcheng@google.com>
-
- 29 Aug, 2017 1 commit
-
-
Manojkumar Bhosale authored
TBR=kjellander@chromium.org R=fbarchard@google.com Bug:libyuv:634 Change-Id: I54a2c57d66093b887c8ba31fd7a21a102165393a Reviewed-on: https://chromium-review.googlesource.com/628557Reviewed-by: Frank Barchard <fbarchard@google.com>
-
- 17 Aug, 2017 1 commit
-
-
Frank Barchard authored
TBR=kjellander@chromium.org R=fbarchard@google.com Bug:libyuv:634 Change-Id: Ie2342f841f1bb8469fc4631b784eddd804f5d53e Reviewed-on: https://chromium-review.googlesource.com/616765Reviewed-by: Frank Barchard <fbarchard@google.com>
-
- 14 Aug, 2017 1 commit
-
-
Manojkumar Bhosale authored
TBR=kjellander@chromium.org R=fbarchard@google.com Bug:libyuv:634 Change-Id: I17bd3f87336f613ad363af7d7b9d7af49d725e56 Reviewed-on: https://chromium-review.googlesource.com/613100Reviewed-by: Frank Barchard <fbarchard@google.com>
-
- 08 Mar, 2017 1 commit
-
-
Frank Barchard authored
BUG=None TEST=try bots and lint test Change-Id: I1ab462adf2d309117862c5eb4b244a61ae202951 Reviewed-on: https://chromium-review.googlesource.com/450658 Commit-Queue: Frank Barchard <fbarchard@google.com> Reviewed-by: Henrik Kjellander <kjellander@chromium.org>
-
- 03 Mar, 2017 1 commit
-
-
Frank Barchard authored
BUG=libyuv:686 TESTED=untested Change-Id: Idfae93349dd78b1b633a596631e5397e11b77d0b Reviewed-on: https://chromium-review.googlesource.com/448320Reviewed-by: Frank Barchard <fbarchard@google.com> Reviewed-by: Henrik Kjellander <kjellander@chromium.org> Commit-Queue: Frank Barchard <fbarchard@google.com>
-
- 23 Feb, 2017 1 commit
-
-
Manojkumar Bhosale authored
BUG=libyuv:634 Change-Id: If8d60bd57f01fe95bc2fd26196466574195cc126 Performance Gain (vs C auto-vectorized) InterpolateRow_MSA - ~3.3x InterpolateRow_Any_MSA - ~2.5x ARGBSetRow_MSA - ~1.0x ARGBSetRow_Any_MSA - ~1.0x ARGBToRGB24Row_MSA - ~1.9x ARGBToRGB24Row_Any_MSA - ~1.6x MergeUVRow_MSA - ~1.6x MergeUVRow_Any_MSA - ~1.2x Performance Gain (vs C non-vectorized) InterpolateRow_MSA - ~11.3x InterpolateRow_Any_MSA - ~ 7.9x ARGBSetRow_MSA - ~ 6.2x ARGBSetRow_Any_MSA - ~ 4.0x ARGBToRGB24Row_MSA - ~ 9.9x ARGBToRGB24Row_Any_MSA - ~ 8.4x MergeUVRow_MSA - ~12.7x MergeUVRow_Any_MSA - ~ 8.0x Change-Id: If8d60bd57f01fe95bc2fd26196466574195cc126 Reviewed-on: https://chromium-review.googlesource.com/445817Reviewed-by: Frank Barchard <fbarchard@google.com> Commit-Queue: Frank Barchard <fbarchard@google.com>
-
- 14 Feb, 2017 1 commit
-
-
Frank Barchard authored
TBR=kjellander@chromium.org BUG=libyuv:679 TEST=None Change-Id: I830f31e0de58c967cb02c71f422df4c19c94c367 Reviewed-on: https://chromium-review.googlesource.com/441949Reviewed-by: Frank Barchard <fbarchard@google.com> Commit-Queue: Frank Barchard <fbarchard@google.com>
-
- 01 Feb, 2017 1 commit
-
-
Manojkumar Bhosale authored
R=fbarchard@google.com BUG=libyuv:634 Performance Gain (vs C auto-vectorized) ARGBToYJRow_MSA - ~3.2x ARGBToYJRow_Any_MSA - ~2.7x BGRAToYRow_MSA - ~3.2x BGRAToYRow_Any_MSA - ~2.7x ABGRToYRow_MSA - ~3.2x ABGRToYRow_Any_MSA - ~2.6x RGBAToYRow_MSA - ~3.1x RGBAToYRow_Any_MSA - ~2.7x ARGBToUVJRow_MSA - ~5.5x ARGBToUVJRow_Any_MSA - ~4.5x BGRAToUVRow_MSA - ~2.1x BGRAToUVRow_Any_MSA - ~2.0x ABGRToUVRow_MSA - ~2.1x ABGRToUVRow_Any_MSA - ~1.9x RGBAToUVRow_MSA - ~2.2x RGBAToUVRow_Any_MSA - ~1.9x Performance Gain (vs C non-vectorized) ARGBToYJRow_MSA - ~10.9x ARGBToYJRow_Any_MSA - ~9.2x BGRAToYRow_MSA - ~10.9x BGRAToYRow_Any_MSA - ~9.3x ABGRToYRow_MSA - ~11.0x ABGRToYRow_Any_MSA - ~9.3x RGBAToYRow_MSA - ~10.9x RGBAToYRow_Any_MSA - ~9.1x ARGBToUVJRow_MSA - ~12.4x ARGBToUVJRow_Any_MSA - ~10.5x BGRAToUVRow_MSA - ~4.7x BGRAToUVRow_Any_MSA - ~4.4x ABGRToUVRow_MSA - ~4.7x ABGRToUVRow_Any_MSA - ~4.5x RGBAToUVRow_MSA - ~4.8x RGBAToUVRow_Any_MSA - ~4.4x Review-Url: https://codereview.chromium.org/2641153003 .
-
- 18 Jan, 2017 1 commit
-
-
Manojkumar Bhosale authored
R=fbarchard@google.com BUG=libyuv:634 Performance Gain (vs C auto-vectorized) NV12ToARGBRow_MSA - ~1.5x NV12ToARGBRow_Any_MSA - ~1.4x NV12ToRGB565Row_MSA - ~1.4x NV12ToRGB565Row_Any_MSA - ~1.4x NV21ToARGBRow_MSA - ~1.5x NV21ToARGBRow_Any_MSA - ~1.5x SobelRow_MSA - ~4.3x SobelRow_Any_MSA - ~3.4x SobelToPlaneRow_MSA - ~8.0x SobelToPlaneRow_Any_MSA - ~4.7x SobelXYRow_MSA - ~3.0x SobelXYRow_Any_MSA - ~2.5x Performance Gain (vs C non-vectorized) NV12ToARGBRow_MSA - ~6.5x NV12ToARGBRow_Any_MSA - ~6.5x NV12ToRGB565Row_MSA - ~6.2x NV12ToRGB565Row_Any_MSA - ~6.1x NV21ToARGBRow_MSA - ~6.5x NV21ToARGBRow_Any_MSA - ~6.5x SobelRow_MSA - ~14.5x SobelRow_Any_MSA - ~11.3x SobelToPlaneRow_MSA - ~34.2x SobelToPlaneRow_Any_MSA - ~19.4x SobelXYRow_MSA - ~11.1x SobelXYRow_Any_MSA - ~9.1x Review-Url: https://codereview.chromium.org/2636483002 .
-
- 15 Dec, 2016 1 commit
-
-
Manojkumar Bhosale authored
R=fbarchard@google.com BUG=libyuv:634 Performance Gain (vs C vectorized) ARGBAttenuateRow_MSA - ~1.1x ARGBAttenuateRow_Any_MSA - ~1.1x ARGBToRGB565DitherRow_MSA - ~6.4x ARGBToRGB565DitherRow_Any_MSA - ~6.2x ARGBShuffleRow_MSA - ~5.1x ARGBShuffleRow_Any_MSA - ~1.9x ARGBShadeRow_MSA - ~1.1x ARGBGrayRow_MSA - ~2.6x ARGBSepiaRow_MSA - ~11.6x Performance Gain (vs C non-vectorized) ARGBAttenuateRow_MSA - ~2.46x ARGBAttenuateRow_Any_MSA - ~2.45x ARGBToRGB565DitherRow_MSA - ~9.4x ARGBToRGB565DitherRow_Any_MSA - ~12.5x ARGBShuffleRow_MSA - ~5.2x ARGBShuffleRow_Any_MSA - ~1.9x ARGBShadeRow_MSA - ~4.3x ARGBGrayRow_MSA - ~10.5x ARGBSepiaRow_MSA - ~12.2x Review-Url: https://codereview.chromium.org/2559693002 .
-
- 02 Dec, 2016 1 commit
-
-
Manojkumar Bhosale authored
R=fbarchard@google.com BUG=libyuv:634 Performance Gain (vs C vectorized) ARGBMultiplyRow_MSA - 1.4x ARGBAddRow_MSA - 8.6x ARGBSubtractRow_MSA - 8.6x ARGBMultiplyRow_Any_MSA - 1.35x ARGBAddRow_Any_MSA - 7.3x ARGBSubtractRow_Any_MSA - 7.2x Performance Gain (vs C non-vectorized) ARGBMultiplyRow_MSA - 4.4x ARGBAddRow_MSA - 27x ARGBSubtractRow_MSA - 22x ARGBMultiplyRow_Any_MSA - 3.5x ARGBAddRow_Any_MSA - 23x ARGBSubtractRow_Any_MSA - 18x Review URL: https://codereview.chromium.org/2529983002 .
-
- 08 Nov, 2016 1 commit
-
-
Frank Barchard authored
BUG=libyuv:654 R=kjellander@chromium.org Review URL: https://codereview.chromium.org/2469353005 .
-
- 24 Oct, 2016 1 commit
-
-
Frank Barchard authored
R=fbarchard@google.com BUG=libyuv:634 Performance Gains :- (vs C vectorized) I422ToARGBRow_MSA : ~1.6x I422ToRGBARow_MSA : ~1.6x I422ToARGBRow_Any_MSA : ~1.58x I422ToRGBARow_Any_MSA : ~1.6x Performance Gains :- (vs C non-vectorized) I422ToARGBRow_MSA : ~7x I422ToRGBARow_MSA : ~7x I422ToARGBRow_Any_MSA : ~6.9x I422ToRGBARow_Any_MSA : ~6.8x Regarding performance measurement, We have created standalone tests which pass in row's data from a 1920x1080 filled buffer to both the C and MSA functions. And such N iterations are executed to get more accurate timings of C vs MSA. Review URL: https://codereview.chromium.org/2430313005 .
-
- 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 1 commit
-
-
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 .
-
- 15 Oct, 2016 1 commit
-
-
Frank Barchard authored
R=wangcheng@google.com, hubbe@chromium.org BUG=libyuv:560 Review URL: https://codereview.chromium.org/2421993002 .
-
- 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 .
-
- 08 Oct, 2016 2 commits
-
-
Frank Barchard authored
TBR=wangcheng@google.com BUG=libyuv:647 TESTED=LibYUVConvertTest.YUY2ToI422_Opt Review URL: https://codereview.chromium.org/2393393006 .
-
Frank Barchard authored
This function is the first step of YUY2 To I420. Provided primarily for diagnostics. TBR=wangcheng@google.com BUG=libyuv:647 TESTED=LibYUVConvertTest.YUY2ToY_Opt Review URL: https://codereview.chromium.org/2399153004 .
-
- 07 Oct, 2016 1 commit
-
-
Frank Barchard authored
R=fbarchard@google.com BUG=libyuv:634 Performance gains as below, YUY2ToI422, YUY2ToI420 :- YUY2ToYRow_MSA : ~10x YUY2ToUVRow_MSA : ~11x YUY2ToUV422Row_MSA : ~9x YUY2ToYRow_Any_MSA : ~6x YUY2ToUVRow_Any_MSA : ~5x YUY2ToUV422Row_Any_MSA : ~4x UYVYToI422, UYVYToI420 :- UYVYToYRow_MSA : ~10x UYVYToUVRow_MSA : ~11x UYVYToUV422Row_MSA : ~9x UYVYToYRow_Any_MSA : ~6x UYVYToUVRow_Any_MSA : ~5x UYVYToUV422Row_Any_MSA : ~4x Review URL: https://codereview.chromium.org/2397693002 .
-
- 06 Oct, 2016 1 commit
-
-
Frank Barchard authored
YUY2ToI422_Any_Neon previously required 16 pixels and duplicated the last pixel. The replication was not necessary after a previous change to treat YUY2 to 4 byte macro pixels. TBR=harryjin@google.com BUG=libyuv:648 TESTED=util/android/test_runner.py gtest -s libyuv_unittest -t 7200 --verbose --release --gtest_filter=*YUY2ToI422* -a "--libyuv_width=17 --libyuv_height=7 --libyuv_repeat=999 --libyuv_flags=1" Review URL: https://codereview.chromium.org/2399143002 .
-
- 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 .
-
- 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 .
-
- 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 .
-
- 26 Sep, 2016 1 commit
-
-
Frank Barchard authored
This patch adds MSA optimized ARGBMirrorRow function in libYUV project. Performance gain ~3x R=fbarchard@google.com BUG=libyuv:634 Review URL: https://codereview.chromium.org/2368313003 .
-
- 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 .
-