1. 26 Jul, 2019 1 commit
  2. 18 Jul, 2019 1 commit
  3. 01 Jul, 2019 1 commit
  4. 29 May, 2019 1 commit
  5. 14 May, 2019 1 commit
  6. 12 Apr, 2019 1 commit
  7. 05 Mar, 2019 1 commit
  8. 01 Nov, 2018 1 commit
  9. 25 Oct, 2018 1 commit
  10. 24 Oct, 2018 2 commits
  11. 10 Oct, 2018 1 commit
    • Frank Barchard's avatar
      NV21ToRAW and NV12ToRAW functions added · 97b3990d
      Frank Barchard authored
      RAW is a big endian style RGB buffer with R first in memory, then G and B.
      Convert NV21 and NV12 to RAW format.
      
      Performance on SkylakeX for 720p with AVX2
      I420ToRAW_Opt (388 ms)
      H420ToRAW_Opt (371 ms)
      NV12ToRAW_Opt (341 ms)
      NV21ToRAW_Opt (339 ms)
      
      SSSE3
      I420ToRAW_Opt (507 ms)
      H420ToRAW_Opt (481 ms)
      NV12ToRAW_Opt (498 ms)
      NV21ToRAW_Opt (493 ms)
      
      C
      I420ToRAW_Opt (2287 ms)
      H420ToRAW_Opt (2246 ms)
      NV12ToRAW_Opt (2191 ms)
      NV21ToRAW_Opt (2204 ms)
      
      Performance on Pixel 2 for 720p
      out/Release/bin/run_libyuv_unittest -v -t 7200 --gtest_filter=*NV??ToR*Opt --libyuv_repeat=1000 --libyuv_width=1280 --libyuv_height=720
      LibYUVConvertTest.NV12ToRGB24_Opt (1739 ms)
      LibYUVConvertTest.NV21ToRGB24_Opt (1734 ms)
      LibYUVConvertTest.NV12ToRAW_Opt (1719 ms)
      LibYUVConvertTest.NV21ToRAW_Opt (1691 ms)
      LibYUVConvertTest.NV12ToRGB565_Opt (2152 ms)
      
      Bug: libyuv:778, b:117522975
      Test: add new NV21ToRAW and NV12ToRAW tests
      Change-Id: Ieabb68a2c6d8c26743e609c5696c81bb14fb253f
      Reviewed-on: https://chromium-review.googlesource.com/c/1272615
      Commit-Queue: Frank Barchard <fbarchard@chromium.org>
      Reviewed-by: 's avatarFrank Barchard <fbarchard@chromium.org>
      Reviewed-by: 's avatarMirko Bonadei <mbonadei@chromium.org>
      97b3990d
  12. 03 Oct, 2018 1 commit
  13. 04 Sep, 2018 1 commit
  14. 10 Aug, 2018 1 commit
  15. 03 Aug, 2018 1 commit
  16. 09 Jul, 2018 1 commit
  17. 04 Jul, 2018 1 commit
    • Frank Barchard's avatar
      msa use void * for loads · 9ac881f4
      Frank Barchard authored
      the built in __msa_ld_b() expects a void * without const.
      Cast pointers to void * to avoid build warning.
      
      TBR=johannkoenig@google.com
      Bug: libyuv:805
      Change-Id: Iabc4820ecf4a3a7dcb0063e67ce276ae2a4f0501
      Tested: gn gen out/Release "--args=is_debug=false target_os=\"android\" target_cpu=\"mips64el\" mips_arch_variant=\"r6\" mips_use_msa=true is_component_build=true is_clang=true"
      ninja -v -C out/Release libyuv_unittest
      Reviewed-on: https://chromium-review.googlesource.com/1125400
      Commit-Queue: Frank Barchard <fbarchard@chromium.org>
      Reviewed-by: 's avatarFrank Barchard <fbarchard@chromium.org>
      9ac881f4
  18. 26 Jun, 2018 1 commit
  19. 12 Jun, 2018 1 commit
  20. 11 May, 2018 1 commit
  21. 13 Apr, 2018 1 commit
    • Frank Barchard's avatar
      use attribute to alias for punning float to int · 7e5e1275
      Frank Barchard authored
      Bug: libyuv:791
      Test: g++ -Iinclude -I../libvpx/third_party/libwebm -I../libvpx/vp8 -I../libvpx/vp8 -I../libvpx/vp9 -I../libvpx/vp9 -Iinclude -m64 -DNDEBUG -O3 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -Wdisabled-optimization -Wfloat-conversion -Wpointer-arith -Wtype-limits -Wcast-qual -Wvla -Wuninitialized -Wunused -Wextra -I. -I"../libvpx" -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -Wno-unused-parameter -c -o third_party/libyuv/source/row_common.cc.o source/row_common.cc
      Change-Id: Ia006cb9212b671ae668cab5ec0b29759024a2c8a
      Reviewed-on: https://chromium-review.googlesource.com/1012462Reviewed-by: 's avatarJohann Koenig <johannkoenig@google.com>
      Commit-Queue: Frank Barchard <fbarchard@chromium.org>
      7e5e1275
  22. 03 Apr, 2018 1 commit
    • Frank Barchard's avatar
      Disable AVX512 for iOS simulator xcode 9 builds. · a9626b9d
      Frank Barchard authored
      iOS simulator has the option to build with xcode instead of clang.
      GN use_xcode_clang=true enables the xcode build.
      As of version Xcode 9.2, the clang version used does not support
      AVX512.  The version reported is version 9, but for normal clang,
      version 7 is sufficient to AVX512.
      When a version of XCode does support AVX512, the version check can
      be updated to allow AVX512 for newer versions of XCode.
      with XCode 9.2 the following macro is set.
      __APPLE_CC__ 6000
      
      Bug: libyuv:789
      Test: gn gen out/Release "--args=is_debug=false target_os=\"ios\" ios_enable_code_signing=false target_cpu=\"x86\" use_xcode_clang=true"
      Change-Id: I5a9a0b4a2760c7d09a4bcb464b3668979113b07e
      Reviewed-on: https://chromium-review.googlesource.com/991595Reviewed-by: 's avatarrichard winterton <rrwinterton@gmail.com>
      a9626b9d
  23. 28 Mar, 2018 2 commits
  24. 20 Mar, 2018 1 commit
  25. 10 Mar, 2018 1 commit
  26. 27 Feb, 2018 2 commits
  27. 22 Feb, 2018 1 commit
  28. 21 Feb, 2018 1 commit
  29. 15 Feb, 2018 2 commits
  30. 07 Feb, 2018 1 commit
  31. 02 Feb, 2018 1 commit
    • Frank Barchard's avatar
      I422ToUYVYRow_AVX2 use vpmovzxbd instead of vpermq · 5790a765
      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: 's avatarrichard winterton <rrwinterton@gmail.com>
      Reviewed-by: 's avatarCheng Wang <wangcheng@google.com>
      5790a765
  32. 01 Feb, 2018 1 commit
    • Frank Barchard's avatar
      I420ToYUY2_AVX2 port · 664c7356
      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: 's avatarrichard winterton <rrwinterton@gmail.com>
      664c7356
  33. 27 Jan, 2018 1 commit
  34. 26 Jan, 2018 1 commit
  35. 25 Jan, 2018 1 commit
  36. 24 Jan, 2018 1 commit