1. 09 Dec, 2015 2 commits
  2. 07 Dec, 2015 3 commits
  3. 06 Dec, 2015 1 commit
  4. 04 Dec, 2015 1 commit
  5. 02 Dec, 2015 1 commit
  6. 26 Nov, 2015 1 commit
  7. 20 Nov, 2015 1 commit
  8. 19 Nov, 2015 2 commits
  9. 18 Nov, 2015 3 commits
  10. 17 Nov, 2015 2 commits
  11. 14 Nov, 2015 1 commit
    • Frank Barchard's avatar
      port I444ToARGB avx2 code from Visual C to GCC. · 1019e453
      Frank Barchard authored
      SSSE3
      Note: Google Test filter = *I444ToARGB*
      [==========] Running 8 tests from 1 test case.
      [----------] Global test environment set-up.
      [----------] 8 tests from LibYUVConvertTest
      [ RUN      ] LibYUVConvertTest.I444ToARGB_Any
      [       OK ] LibYUVConvertTest.I444ToARGB_Any (435 ms)
      [ RUN      ] LibYUVConvertTest.I444ToARGB_Unaligned
      [       OK ] LibYUVConvertTest.I444ToARGB_Unaligned (418 ms)
      [ RUN      ] LibYUVConvertTest.I444ToARGB_Invert
      [       OK ] LibYUVConvertTest.I444ToARGB_Invert (417 ms)
      [ RUN      ] LibYUVConvertTest.I444ToARGB_Opt
      [       OK ] LibYUVConvertTest.I444ToARGB_Opt (411 ms)
      [ RUN      ] LibYUVConvertTest.I444ToARGB_ARGB_Any
      [       OK ] LibYUVConvertTest.I444ToARGB_ARGB_Any (419 ms)
      [ RUN      ] LibYUVConvertTest.I444ToARGB_ARGB_Unaligned
      [       OK ] LibYUVConvertTest.I444ToARGB_ARGB_Unaligned (432 ms)
      [ RUN      ] LibYUVConvertTest.I444ToARGB_ARGB_Invert
      [       OK ] LibYUVConvertTest.I444ToARGB_ARGB_Invert (435 ms)
      [ RUN      ] LibYUVConvertTest.I444ToARGB_ARGB_Opt
      [       OK ] LibYUVConvertTest.I444ToARGB_ARGB_Opt (421 ms)
      [----------] 8 tests from LibYUVConvertTest (3389 ms total)
      
      AVX2
      Note: Google Test filter = *I444ToARGB*
      [==========] Running 8 tests from 1 test case.
      [----------] Global test environment set-up.
      [----------] 8 tests from LibYUVConvertTest
      [ RUN      ] LibYUVConvertTest.I444ToARGB_Any
      [       OK ] LibYUVConvertTest.I444ToARGB_Any (340 ms)
      [ RUN      ] LibYUVConvertTest.I444ToARGB_Unaligned
      [       OK ] LibYUVConvertTest.I444ToARGB_Unaligned (325 ms)
      [ RUN      ] LibYUVConvertTest.I444ToARGB_Invert
      [       OK ] LibYUVConvertTest.I444ToARGB_Invert (316 ms)
      [ RUN      ] LibYUVConvertTest.I444ToARGB_Opt
      [       OK ] LibYUVConvertTest.I444ToARGB_Opt (316 ms)
      [ RUN      ] LibYUVConvertTest.I444ToARGB_ARGB_Any
      [       OK ] LibYUVConvertTest.I444ToARGB_ARGB_Any (315 ms)
      [ RUN      ] LibYUVConvertTest.I444ToARGB_ARGB_Unaligned
      [       OK ] LibYUVConvertTest.I444ToARGB_ARGB_Unaligned (341 ms)
      [ RUN      ] LibYUVConvertTest.I444ToARGB_ARGB_Invert
      [       OK ] LibYUVConvertTest.I444ToARGB_ARGB_Invert (331 ms)
      [ RUN      ] LibYUVConvertTest.I444ToARGB_ARGB_Opt
      [       OK ] LibYUVConvertTest.I444ToARGB_ARGB_Opt (329 ms)
      [----------] 8 tests from LibYUVConvertTest (2615 ms total)
      
      TBR=harryjin@google.com
      BUG=libyuv:492
      
      Review URL: https://codereview.chromium.org/1445893002 .
      1019e453
  12. 13 Nov, 2015 1 commit
  13. 10 Nov, 2015 2 commits
  14. 09 Nov, 2015 1 commit
  15. 06 Nov, 2015 1 commit
  16. 05 Nov, 2015 1 commit
    • Frank Barchard's avatar
      YUV to RGB for x64 use registers instead of memory. · 431cb366
      Frank Barchard authored
      On Arm the YVU to RGB conversions move constants into registers.
      This change does the same for 64 bit intel builds where additional
      registers are available.
      The AVX2 saves 3 instructions by because the 2nd argument needs to be a register, so a vmovdqu was avoided.
      
      x64 builds using memory:
      AVX2  I420ToARGB_Opt (3059 ms)
      SSSE3 I420ToARGB_Opt (3959 ms)
      
      Now using registers
      AVX2  I420ToARGB_Opt (2906 ms)
      SSSE3 I420ToARGB_Opt (3928 ms)
      
      TBR=harryjin@google.com
      BUG=libyuv:520
      
      Review URL: https://codereview.chromium.org/1407353010 .
      431cb366
  17. 04 Nov, 2015 7 commits
  18. 03 Nov, 2015 1 commit
  19. 02 Nov, 2015 2 commits
  20. 30 Oct, 2015 1 commit
  21. 29 Oct, 2015 1 commit
  22. 28 Oct, 2015 2 commits
  23. 27 Oct, 2015 2 commits
    • Frank Barchard's avatar
      refactor I420AlphaToABGR to use I420AlphaToARGB internally · b86dbf24
      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 .
      b86dbf24
    • Frank Barchard's avatar
      implement I444ToABGR by swapping uv and transpose matrix · cf160cdb
      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 .
      cf160cdb