- 02 Feb, 2018 2 commits
-
-
Frank Barchard authored
I422ToUYVYRow_AVX2 optimized from 7 cycles per 32 pixels to 4.6 cycles. Instead of 2 vpermq and vpunpcklbw: vmovdqu (%1),%%xmm2 vmovdqu 0x00(%1,%2,1),%%xmm3 vpermq $0xd8,%%ymm2,%%ymm2 vpermq $0xd8,%%ymm3,%%ymm3 vpunpcklbw %%ymm3,%%ymm2,%%ymm2 ..use vpmovzxbd to expand the bytes to shorts, then vpslld and vpor vpmovzxbd (%1),%%ymm2 vpmovzxbd 0x00(%1,%2,1),%%ymm3 vpslld $0x10,%%ymm3,%%ymm3 vpor %%ymm3,%%ymm2,%%ymm2 which reduces the port 5 bottleneck by 1 cycle. Bug: libyuv:556 Test: out/Release/libyuv_unittest --gtest_filter=*I42?To*UY*Opt Change-Id: I53799e53cc6b090a1a695c839094c193be3eecaf Reviewed-on: https://chromium-review.googlesource.com/899873 Commit-Queue: Frank Barchard <fbarchard@chromium.org> Reviewed-by: richard winterton <rrwinterton@gmail.com> Reviewed-by: Cheng Wang <wangcheng@google.com>
-
Frank Barchard authored
I422ToYUY2Row_AVX2 optimized from 7 cycles per 32 pixels to 6 cycles. Instead of 2 vpermq and vpunpcklbw: vmovdqu (%1),%%xmm2 vmovdqu 0x00(%1,%2,1),%%xmm3 lea 0x10(%1),%1 vpermq $0xd8,%%ymm2,%%ymm2 vpermq $0xd8,%%ymm3,%%ymm3 vpunpcklbw %%ymm3,%%ymm2,%%ymm2 ..use vpmovzxbd to expand the bytes to shorts, then vpslld and vpor vpmovzxbd (%1),%%ymm2 vpmovzxbd 0x00(%1,%2,1),%%ymm3 vpslld $0x10,%%ymm3,%%ymm3 vpor %%ymm3,%%ymm2,%%ymm2 which reduces the port 5 bottleneck by 1 cycle. Bug: libyuv:556 Test: out/Release/libyuv_unittest --gtest_filter=*I42?To*UY*Opt I422ToYUY2Row_AVX2 optimization Improve performance of AVX2 code by avoiding vpermq Bug: libyuv:556 Test: /usr/local/google/home/fbarchard/iaca-lin64/bin/iaca.sh -reduceout -arch BDW out/Release/obj/libyuv_internal/row_gcc.o Change-Id: Ie36732da23ecea1ffcc6b297bacc962780b59ef1 Reviewed-on: https://chromium-review.googlesource.com/898067 Commit-Queue: Frank Barchard <fbarchard@chromium.org> Reviewed-by: richard winterton <rrwinterton@gmail.com>
-
- 01 Feb, 2018 1 commit
-
-
Frank Barchard authored
I420 and I422 To YUY2 and UYVY ported from SSE2 to AVX2. Was SSE2 I420ToYUY2_Opt (135 ms) I420ToUYVY_Opt (148 ms) I422ToYUY2_Opt (145 ms) I422ToUYVY_Opt (142 ms) Now AVX2 I420ToYUY2_Opt (133 ms) I420ToUYVY_Opt (130 ms) I422ToYUY2_Opt (127 ms) I422ToUYVY_Opt (137 ms) Bug: libyuv:556 Test: out/Release/libyuv_unittest --sandbox_unittests --gtest_filter=*I42?To*UY*Opt Change-Id: Ic35f97cee02dc009fd98785589ba17c7cf50bb35 Reviewed-on: https://chromium-review.googlesource.com/892493 Commit-Queue: Frank Barchard <fbarchard@chromium.org> Reviewed-by: richard winterton <rrwinterton@gmail.com>
-
- 29 Jan, 2018 2 commits
-
-
Frank Barchard authored
vpshufb is used to reverse R and B channels; Code is otherwise the same as ARGBToAR30. Bug: libyuv:751 Test: ABGRToAR30 unittest Change-Id: I30e02925f5c729e4496c5963ba4ba4af16633b3b Reviewed-on: https://chromium-review.googlesource.com/891807 Commit-Queue: Frank Barchard <fbarchard@chromium.org> Reviewed-by: richard winterton <rrwinterton@gmail.com>
-
Frank Barchard authored
ABGR is the more common format on Android. This CL converts 10 bit AR30, to standard 8 bit ABGR. Unoptimized but allows better testing and feature completeness. Bug: libyuv:751 Test: LibYUVConvertTest.AR30ToABGR_Opt Change-Id: I0c7e7273158be215129e0a1d355587ae15942299 Reviewed-on: https://chromium-review.googlesource.com/891694Reviewed-by: Miguel Casas <mcasas@chromium.org>
-
- 27 Jan, 2018 1 commit
-
-
Frank Barchard authored
Was SSSE3 H010ToAR30_Opt (635 ms) Now AVX2 H010ToAR30_Opt (448 ms) Bug: libyuv:751 Test: LibYUVConvertTest.H010ToAR30_Opt Change-Id: I17b1a0e3268c4a9836e09683dd3377fb1ce60932 Reviewed-on: https://chromium-review.googlesource.com/889906 Commit-Queue: Frank Barchard <fbarchard@chromium.org> Reviewed-by: Miguel Casas <mcasas@chromium.org>
-
- 26 Jan, 2018 1 commit
-
-
Frank Barchard authored
Was SSSE3 I420ToAR30_Opt (635 ms) Now AVX2 I420ToAR30_Opt (446 ms) Bug: libyuv:751 Test: LibYUVConvertTest.H010ToAR30_Opt Change-Id: I261be19ec981136a8f453ae0d3211532a790e5c5 Reviewed-on: https://chromium-review.googlesource.com/887750Reviewed-by: Frank Barchard <fbarchard@chromium.org> Reviewed-by: Cheng Wang <wangcheng@google.com> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
-
- 25 Jan, 2018 1 commit
-
-
Frank Barchard authored
[ RUN ] LibYUVConvertTest.TestH420ToAR30 uniques: B 222, G, 222, R 222 [ OK ] LibYUVConvertTest.TestH420ToAR30 (0 ms) [ RUN ] LibYUVConvertTest.TestH420ToARGB uniques: B 220, G, 220, R 220 [ OK ] LibYUVConvertTest.TestH420ToARGB (0 ms) Bug: libyuv: 751 Test: LibYUVConvertTest.TestH420ToAR30 Change-Id: I9b75af286124c058c24799778a58c3feb9a1a1ab Reviewed-on: https://chromium-review.googlesource.com/884845Reviewed-by: Miguel Casas <mcasas@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
-
- 24 Jan, 2018 2 commits
-
-
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>
-
Frank Barchard authored
Use C99 types internally but define old types for compatibility with older API. (r1690 and earlier) TBR=braveyao@chromium.org Bug: libyuv:774 Test: try bots build on all platforms Change-Id: I06f89537da3875f74e65189897e67b69af2c2ec2 Reviewed-on: https://chromium-review.googlesource.com/882501Reviewed-by: Frank Barchard <fbarchard@chromium.org>
-
- 23 Jan, 2018 4 commits
-
-
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>
-
Frank Barchard authored
Removes macros that were part of standard basic_types header but not used by libyuv itself. TBR=braveyao@chromium.org Bug: libyuv:774 Test: try bots still build Change-Id: I8de6fad5a9277df0a50959881392ba212b1b5972 Reviewed-on: https://chromium-review.googlesource.com/879591Reviewed-by: Frank Barchard <fbarchard@chromium.org>
-
Frank Barchard authored
TBR=braveyao@chromium.org Bug: None Test: None Change-Id: I3e5564ee2b92180c8c6c9cbad57f1a303ed7bca8 Reviewed-on: https://chromium-review.googlesource.com/879266Reviewed-by: Frank Barchard <fbarchard@chromium.org>
-
Frank Barchard authored
Bug: libyuv:751 Test: LibYUVConvertTest.I420ToAR30_Opt Change-Id: Ie89c3eb2526354cf11175746bc8af72be83a1e00 Reviewed-on: https://chromium-review.googlesource.com/877541Reviewed-by: Cheng Wang <wangcheng@google.com> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
-
- 19 Jan, 2018 2 commits
-
-
Frank Barchard authored
Switch YUV conversion macro to output 16 bits per channel. STOREAR30 macro to output AR30. [ RUN ] LibYUVConvertTest.TestH420ToARGB uniques: B 220, G, 220, R 220 [ OK ] LibYUVConvertTest.TestH420ToARGB (0 ms) [ RUN ] LibYUVConvertTest.TestH010ToARGB uniques: B 256, G, 256, R 256 [ OK ] LibYUVConvertTest.TestH010ToARGB (0 ms) [ RUN ] LibYUVConvertTest.TestH010ToAR30 uniques: B 883, G, 883, R 883 [ OK ] LibYUVConvertTest.TestH010ToAR30 (0 ms) Bug: libyuv:751 Test: LibYUVConvertTest.H010ToAR30_Opt Change-Id: I902b718e2c8b68ede69625ccafebc6519d5af70d Reviewed-on: https://chromium-review.googlesource.com/869511Reviewed-by: Frank Barchard <fbarchard@chromium.org> Reviewed-by: Miguel Casas <mcasas@chromium.org> Reviewed-by: richard winterton <rrwinterton@gmail.com> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
-
Frank Barchard authored
Tests accuracy of H010ToAR30 on grey scale ramp against float and computes a histogram to detect number of unique shades for each channel. With 2 step intermediate using 8 bit RGB, the test shows 256 unique values. [ RUN ] LibYUVConvertTest.TestH420ToARGB uniques: B 220, G, 220, R 220 [ OK ] LibYUVConvertTest.TestH420ToARGB (0 ms) [ RUN ] LibYUVConvertTest.TestH010ToARGB uniques: B 256, G, 256, R 256 [ OK ] LibYUVConvertTest.TestH010ToARGB (0 ms) [ RUN ] LibYUVConvertTest.TestH010ToAR30 uniques: B 256, G, 256, R 256 [ OK ] LibYUVConvertTest.TestH010ToAR30 (0 ms) Bug: libyuv:751 Test LibYUVConvertTest.TestH010ToAR30 unittest Change-Id: I6b1e1209247cb00b79b594127b02dae5217dc400 Reviewed-on: https://chromium-review.googlesource.com/875317Reviewed-by: Miguel Casas <mcasas@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
-
- 16 Jan, 2018 1 commit
-
-
Frank Barchard authored
MEMOPREG macros are deprecated in row.h Regular expressions to remove MEMOPREG macros: MEMOPREG(movd, 0x00, [u_buf], [v_buf], 1, xmm1) \ MEMOPREG\((.*), (.*), (.*), (.*), (.*), (.*)\) "\1 \2(%\3,%\4,\5),%%\6 \\n" MEMOPREG(movdqu,0x00,1,4,1,xmm2) MEMOPREG\((.*),(.*),(.*),(.*),(.*),(.*)\) "\1 \2(%\3,%\4,\5),%%\6 \\n" MEMOPREG(movdqu,0x00,1,4,1,xmm2) MEMOPREG\((.*),(.*),(.*),(.*),(.*),(.*)\)(.*)(//.*) "\1 \2(%\3,%\4,\5),%%\6 \\n" TBR=braveyao@chromium.org Bug: libyuv:702 Test: try bots pass Change-Id: If8743abd9af2e8c549d0c7d3d49733a9b0f0ca86 Reviewed-on: https://chromium-review.googlesource.com/865964Reviewed-by: Frank Barchard <fbarchard@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
-
- 13 Jan, 2018 1 commit
-
-
Frank Barchard authored
MEMOPMEM macros are deprecated in row.h Usage examples MEMOPMEM(vmovdqu,ymm0,0x00,0,1,1) // vmovdqu %%ymm0,(%0,%1) MEMOPMEM(movdqu,xmm2,0x00,1,0,1) Regular expressions to remove MEMACCESS macros: MEMOPMEM\((.*),(.*),(.*),(.*),(.*),(.*)\)(.*)(//.*) "\1 %%\2,\3(%\4,%\5,\6)\7 \\n" MEMOPMEM\((.*),(.*),(.*),(.*),(.*),(.*)\) "\1 %%\2,\3(%\4,%\5,\6) \\n" TBR=braveyao@chromium.org Bug: libyuv:702 Test: try bots pass Change-Id: Id8c6963d544d16e39bb6a9a0536babfb7f554b3a Reviewed-on: https://chromium-review.googlesource.com/865934Reviewed-by: Frank Barchard <fbarchard@chromium.org>
-
- 12 Jan, 2018 4 commits
-
-
Frank Barchard authored
VMEMOPREG macros are deprecated in row.h Usage examples VMEMOPREG(vpavgb,0x00,0,4,1,ymm0,ymm0) // vpavgb (%0,%4,1),%%ymm0,%%ymm0 VMEMOPREG(vpavgb,0x20,0,4,1,ymm1,ymm1) Regular expressions to remove MEMACCESS macros: VMEMOPREG\((.*),(.*),(.*),(.*),(.*),(.*),(.*)\)(.*)(//.*) "\1 \2(%\3,%\4,\5),%%\6,%%\7 \\n" VMEMOPREG\((.*),(.*),(.*),(.*),(.*),(.*),(.*)\) "\1 \2(%\3,%\4,\5),%%\6,%%\7 \\n" TBR=braveyao@chromium.org Bug: libyuv:702 Test: try bots pass Change-Id: I472446606f7fd568fdf33aaacc22d5ed78673dab Reviewed-on: https://chromium-review.googlesource.com/865640Reviewed-by: Frank Barchard <fbarchard@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
-
Frank Barchard authored
VEXTOPMEM macros are deprecated in row.h Usage examples VEXTOPMEM(vextractf128,1,ymm0,0x0,1,2,1) // vextractf128 $1,%%ymm0,(%1,%2,1) Regular expressions to remove MEMACCESS macros: VEXTOPMEM\((.*),(.*),(.*),(.*),(.*),(.*),(.*)\)(.*//.*) "\1 $\2,%\3,\4(%\5,%\6,\7) \\n" Bug: libyuv:702 Test: try bots pass Change-Id: I177edf9813128408e74816672dd25abb03a5e1ca Reviewed-on: https://chromium-review.googlesource.com/865283Reviewed-by: Frank Barchard <fbarchard@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
-
Frank Barchard authored
MEMACCESS macros are deprecated in row.h Usage examples "movdqu " MEMACCESS(0) ",%%xmm0 \n" "movdqu " MEMACCESS2(0x10,0) ",%%xmm1 \n" Regular expressions to remove MEMACCESS macros: " MEMACCESS2\((.*),(.*)\) "(.*)\\n" \1(%\2)\3 \\n" " MEMACCESS\((.*)\) "(.*)\\n" (%\1)\2 \\n" Bug: libyuv:702 Test: try bots pass Change-Id: I42f62d5dede8ef2ea643e78c204371a7659d25e6 Reviewed-on: https://chromium-review.googlesource.com/862803Reviewed-by: Frank Barchard <fbarchard@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
-
Frank Barchard authored
MEMOPARG macros are deprecated in row.h #opcode " " #offset "(%" #base ",%" #index "," #scale "),%" #arg "\n" Usage examples MEMOPARG(movzwl,0x00,1,3,1,k2) // movzwl (%1,%3,1),%k2 Regular expression to remove MEMACCESS macro: MEMOPARG\((.*),(.*),(.*),(.*),(.*),(.*)\)(.*//.*) "\1 \2(%\3,%\4,\5),%\6 \\n" Bug: libyuv:702 Test: try bots pass Change-Id: I4a5ad2abf5017e651576f4c8c784be1c8dbf5a83 Reviewed-on: https://chromium-review.googlesource.com/863108Reviewed-by: Frank Barchard <fbarchard@chromium.org>
-
- 10 Jan, 2018 4 commits
-
-
Frank Barchard authored
Bug: libyuv:771 Test: build asm with ubsan and check Change-Id: I966d0bff74eef9ddfbeb93965fbff24c1472927c Reviewed-on: https://chromium-review.googlesource.com/860898Reviewed-by: Weiyong Yao <braveyao@chromium.org> Reviewed-by: Frank Barchard <fbarchard@chromium.org>
-
Shenghua Zhang authored
Because of the android sdk managed by CIPD (see go/use-adjective-apis), its deps repo ndk needs to be relocated, as well as hooked by the root DEPS instead of recursedeps. This CL addes android ndk deps in libyuv/DEPS. Bug: chromium:659808 Change-Id: I3d83c06d108d131ea1809c79955fae39d6cc737d Reviewed-on: https://chromium-review.googlesource.com/858433Reviewed-by: Frank Barchard <fbarchard@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
-
Frank Barchard authored
Bug: libyuv:702 Test: try bots pass Change-Id: I0ee094551734368f2179c298e7bf423ec80a929c Reviewed-on: https://chromium-review.googlesource.com/857845Reviewed-by: Frank Barchard <fbarchard@chromium.org>
-
Frank Barchard authored
Bug: libyuv:702 Test: try bots pass Change-Id: I76d74b5f02fe9843418108b84742e2f714d1ab0a Reviewed-on: https://chromium-review.googlesource.com/855656Reviewed-by: Frank Barchard <fbarchard@chromium.org>
-
- 09 Jan, 2018 1 commit
-
-
Frank Barchard authored
AVX2 optimized 10 bit YUV to ARGB. Bug: libyuv:751 Test: H010ToARGB unittest Change-Id: I705630beb62714b52042c2a5dcdb8b7859e734ae Reviewed-on: https://chromium-review.googlesource.com/852563 Commit-Queue: Frank Barchard <fbarchard@chromium.org> Reviewed-by: Miguel Casas <mcasas@chromium.org> Reviewed-by: richard winterton <rrwinterton@gmail.com>
-
- 08 Jan, 2018 2 commits
-
-
Frank Barchard authored
Bug: libyuv:702 Test: try bots still build Change-Id: I05317e45c885955fcda233bdddbd11ce1d246d90 Reviewed-on: https://chromium-review.googlesource.com/854770Reviewed-by: Weiyong Yao <braveyao@chromium.org> Reviewed-by: Frank Barchard <fbarchard@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
-
Frank Barchard authored
ABGR output is implemented using the same source code as ARGB, by swapping the u and v and supplying the mirrored conversion matrix. ABGR format (RGBA in memory) is popular on Android. Bug: libyuv:751 Test: H010ToABGR, I010ToABGR and I010ToARGB unittests Change-Id: I0b5103628c58dcb22a6442c03814d4d5972e0339 Reviewed-on: https://chromium-review.googlesource.com/852985 Commit-Queue: Miguel Casas <mcasas@chromium.org> Reviewed-by: Miguel Casas <mcasas@chromium.org> Reviewed-by: Frank Barchard <fbarchard@chromium.org>
-
- 07 Jan, 2018 1 commit
-
-
Frank Barchard authored
Previously H010ToAR30 was done in a 3 step conversion: H010ToH420, H420ToARGB, ARGBToAR30. This CL merges the first 2 steps into H010ToARGB, to improve performance. Caveat - only 10 bit YUV is supported at this time. Previously the low level code supported different numbers of bits - 9, 10, 12 or 16. Was 3 step conversion: LibYUVConvertTest.H010ToAR30_Any (1263 ms) LibYUVConvertTest.H010ToAR30_Unaligned (951 ms) LibYUVConvertTest.H010ToAR30_Invert (913 ms) LibYUVConvertTest.H010ToAR30_Opt (901 ms) Now 2 step conversion: LibYUVConvertTest.H010ToAR30_Any (853 ms) LibYUVConvertTest.H010ToAR30_Unaligned (811 ms) LibYUVConvertTest.H010ToAR30_Invert (781 ms) LibYUVConvertTest.H010ToAR30_Opt (755 ms) Bug: libyuv:751 Test: LibYUVConvertTest.H010ToAR30_Opt Change-Id: Ica7574040401cd57145a4827acdf3c0e58346a2a Reviewed-on: https://chromium-review.googlesource.com/853288Reviewed-by: Frank Barchard <fbarchard@chromium.org> Reviewed-by: Miguel Casas <mcasas@chromium.org>
-
- 05 Jan, 2018 2 commits
-
-
Frank Barchard authored
A sanity check that H010ToARGB is doing the correct math. The normal test only checks the C and ASM match, but they could both be wrong, or the common code could be wrong. This test checks a grey scale ramp matches expected results. Bug: libyuv:751 Test: LibYUVConvertTest.TestH420ToARGB and LibYUVConvertTest.TestH010ToARGB Change-Id: Ie8c2b91ac9993f41675c02d0dde9db72d0612450 Reviewed-on: https://chromium-review.googlesource.com/851474Reviewed-by: Miguel Casas <mcasas@chromium.org> Reviewed-by: Frank Barchard <fbarchard@chromium.org>
-
Frank Barchard authored
SSSE3 optimized 10 bit YUV conversion to ARGB in single step. Bug: libyuv:751 Test: I010ToARGB Change-Id: I234b2850e35992113ee6bd638732bafc7010a60d Reviewed-on: https://chromium-review.googlesource.com/848238 Commit-Queue: Frank Barchard <fbarchard@chromium.org> Reviewed-by: Frank Barchard <fbarchard@chromium.org> Reviewed-by: richard winterton <rrwinterton@gmail.com>
-
- 04 Jan, 2018 1 commit
-
-
Frank Barchard authored
Changed dependencies: * src/third_party/lss: https://chromium.googlesource.com/linux-syscall-support.git/+log/63f24c8221..e6527b0cd4 TBR=phoglund@chromium.org BUG=libyuv:768 TEST=None Change-Id: Ieecd96f78c841b6defed0105430b2a09168b7b54 Reviewed-on: https://chromium-review.googlesource.com/849258Reviewed-by: Frank Barchard <fbarchard@chromium.org>
-
- 03 Jan, 2018 1 commit
-
-
Patrik Höglund authored
All other DEPS-using projects have migrated away from deps_os, so let us do the same. This also fixes the roll-svn-dep bug. Bug: chromium:798336, libyuv:768 Change-Id: I1528720766af9a0f0d4906aa0ad440408232f6d0 Reviewed-on: https://chromium-review.googlesource.com/848812 Commit-Queue: Frank Barchard <fbarchard@chromium.org> Reviewed-by: Aaron Gable <agable@chromium.org> Reviewed-by: Frank Barchard <fbarchard@chromium.org>
-
- 02 Jan, 2018 4 commits
-
-
Patrik Höglund authored
Bug: libyuv:768 Test: git checkout master && tools_libyuv/autoroller/roll_deps.py Change-Id: I55f21382cb947ecff2078eb9a0fa5572ceee64b5 Reviewed-on: https://chromium-review.googlesource.com/847001 Commit-Queue: Frank Barchard <fbarchard@chromium.org> Reviewed-by: Frank Barchard <fbarchard@chromium.org>
-
Frank Barchard authored
Bug: libyuv:769 Test: try bots build Change-Id: I9633637cee1dc17bc62dd0598b1ea1edc15cf646 Reviewed-on: https://chromium-review.googlesource.com/847702Reviewed-by: Frank Barchard <fbarchard@chromium.org> Reviewed-by: Weiyong Yao <braveyao@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
-
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>
-
- 28 Dec, 2017 1 commit
-
-
Frank Barchard authored
Convert planar 8 bit formats to planar 16 bit formats. Accepts a parameter that determines the number of bits. Bug: libyuv:751 Test: Convert8To16 unittest Change-Id: I8f6ffe64428ddf5769b87e0c069093a50a2541e9 Reviewed-on: https://chromium-review.googlesource.com/835410Reviewed-by: richard winterton <rrwinterton@gmail.com>
-
- 21 Dec, 2017 1 commit
-
-
Frank Barchard authored
pshufd requires 16 byte aligned memory or a register. Use movd to a register to avoid a segfault if memory for float is misaligned Bug: libyuv:759 Test: 32 bit build of LibYUVPlanarTest.TestHalfFloatPlane_16bit_denormal Change-Id: I6fdcc4317453af5acd4700f9d46425bb2f4a205b Reviewed-on: https://chromium-review.googlesource.com/840459Reviewed-by: Miguel Casas <mcasas@chromium.org> Reviewed-by: Frank Barchard <fbarchard@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
-