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. 29 Sep, 2016 1 commit
  3. 28 Sep, 2016 1 commit
  4. 30 Aug, 2016 1 commit
  5. 14 Jul, 2016 1 commit
  6. 13 Jul, 2016 1 commit
  7. 12 Jul, 2016 1 commit
  8. 26 May, 2016 1 commit
  9. 08 Apr, 2016 1 commit
  10. 10 Feb, 2016 2 commits
  11. 13 Jan, 2016 1 commit
  12. 21 Dec, 2015 1 commit
  13. 17 Dec, 2015 1 commit
  14. 07 Dec, 2015 1 commit
  15. 02 Dec, 2015 1 commit
  16. 10 Nov, 2015 1 commit
  17. 04 Nov, 2015 1 commit
  18. 03 Nov, 2015 1 commit
  19. 02 Nov, 2015 1 commit
  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. 22 Oct, 2015 1 commit
  23. 21 Oct, 2015 1 commit
    • Frank Barchard's avatar
      Fix ARGBToI411 odd width bug. · ba4b409d
      Frank Barchard authored
      The any function for handling ARGBToI411 was not handling the pixel
      replication correctly.  On 422 and odd width was handled by duplicating
      a pixel of source.  411 needs replication for remainders of 1, 2 or 3
      pixels.
      
      The C version was handling odd width but with an average of the remainder
      pixels, which does not match the SIMD 'any' handling off remainder.
      This changes the odd width handling to mimic the any version.
      
      TBR=harryjin@google.com
      BUG=libyuv:491
      
      Review URL: https://codereview.chromium.org/1411733004 .
      ba4b409d
  24. 15 Oct, 2015 1 commit
  25. 12 Oct, 2015 1 commit
  26. 08 Oct, 2015 2 commits
  27. 07 Oct, 2015 2 commits
    • Frank Barchard's avatar
      Pass yuvconstants to YUV conversions for neon 64 bit · 013080f2
      Frank Barchard authored
      SETUP provided by zhongwei.yao@linaro.org
      
      Previously the 64 bit Neon code had hard coded constants in the setup macro
      for YUV conversion, while 32 bit Neon code supported the yuvconstants
      parameter.
      
      This change accepts the constants passed to the YUV conversion row function,
      allowing different color spaces to be respected - naming JPEG and BT.709.
      As well as the existing BT.601.
      
      TBR=harryjin@google.com
      BUG=libyuv:472
      
      Review URL: https://codereview.chromium.org/1384323002 .
      013080f2
    • 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
  28. 25 Sep, 2015 2 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
      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
  29. 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
  30. 22 Sep, 2015 2 commits
  31. 18 Sep, 2015 2 commits
  32. 17 Sep, 2015 2 commits