1. 11 Oct, 2016 1 commit
    • Frank Barchard's avatar
      Remove I411 support. · d363ea65
      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 .
      d363ea65
  2. 03 Oct, 2016 1 commit
  3. 29 Sep, 2016 1 commit
  4. 27 Sep, 2016 1 commit
  5. 28 Jun, 2016 1 commit
  6. 28 May, 2016 1 commit
  7. 26 May, 2016 1 commit
  8. 18 Feb, 2016 1 commit
  9. 13 Jan, 2016 1 commit
  10. 12 Jan, 2016 1 commit
  11. 21 Dec, 2015 1 commit
  12. 17 Dec, 2015 1 commit
  13. 09 Dec, 2015 2 commits
  14. 06 Dec, 2015 1 commit
  15. 02 Dec, 2015 1 commit
  16. 18 Nov, 2015 1 commit
  17. 17 Nov, 2015 1 commit
  18. 03 Nov, 2015 1 commit
  19. 02 Nov, 2015 2 commits
  20. 30 Oct, 2015 1 commit
  21. 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
  22. 08 Oct, 2015 3 commits
  23. 07 Oct, 2015 1 commit
    • Frank Barchard's avatar
      Reimplement NV21ToARGB to allow different color matrix. · 914a9856
      Frank Barchard authored
      Low level for NV21ToARGB written to accept yuv matrix used by
      other YUV to ARGB functions.
      Previously NV21 was implemented for Windows using NV12 with a different
      matrix that swapped U and V.  But the Arm version of the low level does
      not allow the matrix U and V contributions to be swapped.
      Using a new low level function that reads NV21 and uses the same
      yuvconstants as other YUV conversion functions allows an Arm port of
      this function.
      
      TBR=harryjin@google.com
      BUG=libyuv:500
      
      Review URL: https://codereview.chromium.org/1388273002 .
      914a9856
  24. 30 Sep, 2015 1 commit
  25. 25 Sep, 2015 4 commits
    • Frank Barchard's avatar
      win64 version of I422AlphaToARGB. · febc26a2
      Frank Barchard authored
      Was
      I420AlphaToARGB_Premult (8861 ms)
      I420AlphaToARGB_Opt (7119 ms)
      Now
      I420AlphaToABGR_Premult (2840 ms)
      I420AlphaToARGB_Opt (484 ms)
      
      C function switched to 1 step.
      Was
      I420AlphaToARGB_Premult (8862 ms)
      I420AlphaToABGR_Opt (6718 ms)
      
      Now
      I420AlphaToARGB_Premult (8706 ms)
      I420AlphaToARGB_Opt (6541 ms)
      
      R=harryjin@google.com
      BUG=libyuv:496, libyuv:473
      
      Review URL: https://codereview.chromium.org/1359183003 .
      febc26a2
    • Frank Barchard's avatar
      AVX2 1 step I422AlphaToARGB for gcc and win. · 9a0e12f5
      Frank Barchard authored
      C     I420AlphaToARGB_Opt (5169 ms)
      SSSE3 I420AlphaToARGB_Opt (432 ms)
      AVX2  I420AlphaToARGB_Opt (358 ms)
      
      and with premultiplication as 2 step process:
      I420AlphaToARGB_Premult (7029 ms)
      I420AlphaToARGB_Premult (757 ms)
      I420AlphaToARGB_Premult (508 ms)
      
      R=harryjin@google.com
      BUG=libyuv:496,libyuv:473
      
      Review URL: https://codereview.chromium.org/1372653003 .
      9a0e12f5
    • Frank Barchard's avatar
      I420Alpha row function in 1 pass. · e365cdde
      Frank Barchard authored
      API change - I420AlphaToARGB takes flag indicating if RGB should be
      premultiplied by alpha.
      
      This version implements an efficient SSSE3 version for Windows.
      C version done in 2 steps.
      
      Was
      libyuvTest.I420AlphaToARGB_Any (1136 ms)
      libyuvTest.I420AlphaToARGB_Unaligned (1210 ms)
      libyuvTest.I420AlphaToARGB_Invert (966 ms)
      libyuvTest.I420AlphaToARGB_Opt (1031 ms)
      libyuvTest.I420AlphaToABGR_Any (1020 ms)
      libyuvTest.I420AlphaToABGR_Unaligned (1359 ms)
      libyuvTest.I420AlphaToABGR_Invert (1082 ms)
      libyuvTest.I420AlphaToABGR_Opt (986 ms)
      
      R=harryjin@google.com
      BUG=libyuv:496
      
      Review URL: https://codereview.chromium.org/1367093002 .
      e365cdde
    • Frank Barchard's avatar
      switch from ebp to ebx. · d4594bee
      Frank Barchard authored
      ebx encodes more efficiently (1 byte less) for most address modes, than ebp.
      previously it was used for 411 format, but the reader uses pinsrw now avoiding
      gpr register.
      
      BUG=libyuv:488
      R=harryjin@google.com
      
      Review URL: https://codereview.chromium.org/1365003003 .
      d4594bee
  26. 23 Sep, 2015 1 commit
    • Frank Barchard's avatar
      YUY2ToARGB avx2 in 1 step conversion. · 000cf89c
      Frank Barchard authored
      Includes UYVYToARGB ssse3 fix.
      
      Was
      YUY2ToARGB_Opt (433 ms)
      69.79%  libyuv_unittest  libyuv_unittest      [.] I422ToARGBRow_AVX2
      20.73%  libyuv_unittest  libyuv_unittest      [.] YUY2ToUV422Row_AVX2
       6.04%  libyuv_unittest  libyuv_unittest      [.] YUY2ToYRow_AVX2
       0.77%  libyuv_unittest  libyuv_unittest      [.] YUY2ToARGBRow_AVX2
      
      Now
      YUY2ToARGB_Opt (280 ms)
      95.66%  libyuv_unittest  libyuv_unittest      [.] YUY2ToARGBRow_AVX2
      
      BUG=libyuv:494
      R=harryjin@google.com
      
      Review URL: https://codereview.chromium.org/1364813002 .
      000cf89c
  27. 22 Sep, 2015 4 commits
  28. 18 Sep, 2015 2 commits