1. 18 Apr, 2017 1 commit
  2. 17 Apr, 2017 1 commit
  3. 11 Feb, 2017 1 commit
  4. 13 Jan, 2017 1 commit
    • Frank Barchard's avatar
      add Intel Code Analyst markers · a7c87e19
      Frank Barchard authored
      add macros to enable/disable code analyst around blocks of code.
      
      Normally these macros should not be used, but if performance
      details are wanted for intel code, enable them around the code
      and then run via the iaca tool, available on the intel website.
      
      BUG=libyuv:670
      TEST=~/iaca-lin64/bin/iaca.sh -64 out/Release/libyuv_unittest
      R=wangcheng@google.com
      
      Review-Url: https://codereview.chromium.org/2626193002 .
      a7c87e19
  5. 11 Jan, 2017 2 commits
  6. 08 Nov, 2016 1 commit
  7. 12 Oct, 2016 1 commit
  8. 11 Oct, 2016 2 commits
  9. 08 Oct, 2016 1 commit
  10. 24 Aug, 2016 1 commit
    • Frank Barchard's avatar
      NV12 allow NULL for Y · 17d31e6a
      Frank Barchard authored
      The conversion from NV12 and other Bi or Tri planar formats, differs only in the UV handling.  The helper function supports passing a NULL for the dst_y channel indicating you only want to do the UV conversion.
      
      TBR=harryjin@google.com
      TEST=LibYUVConvertTest.NV12ToI420_NullY (601 ms)
      BUG=libyuv:626
      
      Review URL: https://codereview.chromium.org/2276703002 .
      17d31e6a
  11. 13 Jul, 2016 2 commits
    • Frank Barchard's avatar
      3efba30c
    • Frank Barchard's avatar
      Test nv21 layout of Android420ToI420 function. · abcb70f1
      Frank Barchard authored
      to Y,U,V and a pixel stride for U and V.  The pixel stride is expected to be 1 or 2.
      
      [ RUN      ] LibYUVConvertTest.Android420ToI420_1_Any
      [       OK ] LibYUVConvertTest.Android420ToI420_1_Any (253 ms)
      [ RUN      ] LibYUVConvertTest.Android420ToI420_1_Unaligned
      [       OK ] LibYUVConvertTest.Android420ToI420_1_Unaligned (250 ms)
      [ RUN      ] LibYUVConvertTest.Android420ToI420_1_Invert
      [       OK ] LibYUVConvertTest.Android420ToI420_1_Invert (254 ms)
      [ RUN      ] LibYUVConvertTest.Android420ToI420_1_Opt
      [       OK ] LibYUVConvertTest.Android420ToI420_1_Opt (247 ms)
      [ RUN      ] LibYUVConvertTest.Android420ToI420_2_Any
      [       OK ] LibYUVConvertTest.Android420ToI420_2_Any (132 ms)
      [ RUN      ] LibYUVConvertTest.Android420ToI420_2_Unaligned
      [       OK ] LibYUVConvertTest.Android420ToI420_2_Unaligned (122 ms)
      [ RUN      ] LibYUVConvertTest.Android420ToI420_2_Invert
      [       OK ] LibYUVConvertTest.Android420ToI420_2_Invert (124 ms)
      [ RUN      ] LibYUVConvertTest.Android420ToI420_2_Opt
      [       OK ] LibYUVConvertTest.Android420ToI420_2_Opt (119 ms)
      
      TEST=LibYUVConvertTest.Android420ToI420_Opt
      BUG=libyuv:604
      R=braveyao@chromium.org
      
      Review URL: https://codereview.chromium.org/2146733002 .
      abcb70f1
  12. 12 Jul, 2016 1 commit
  13. 27 May, 2016 1 commit
  14. 20 Jan, 2016 1 commit
  15. 19 Jan, 2016 1 commit
    • Frank Barchard's avatar
      Fix memory overwrite in YUY2ToNV12 odd wdiths · 58cb5349
      Frank Barchard authored
      When width was odd Y channel wrote an extra pixel.
      This change splits the Y from UV into a temporary
      buffer and memcpy's to the destination.  Performance
      is slower.
      
      Was
      YUY2ToNV12_Any (307 ms)
      YUY2ToNV12_Unaligned (213 ms)
      TestYUY2ToNV12 (181 ms)
      YUY2ToNV12_Opt (177 ms)
      YUY2ToNV12_Invert (177 ms)
      
      Npw
      YUY2ToNV12_Any (300 ms)
      YUY2ToNV12_Unaligned (226 ms)
      YUY2ToNV12_Invert (206 ms)
      TestYUY2ToNV12 (184 ms)
      YUY2ToNV12_Opt (181 ms)
      TBR=harryjin@google.com
      BUG=libyuv:545
      
      Review URL: https://codereview.chromium.org/1593833002 .
      58cb5349
  16. 13 Jan, 2016 1 commit
  17. 11 Jan, 2016 1 commit
  18. 11 Dec, 2015 1 commit
  19. 18 Nov, 2015 1 commit
  20. 17 Nov, 2015 1 commit
  21. 10 Nov, 2015 1 commit
  22. 04 Nov, 2015 1 commit
  23. 03 Nov, 2015 1 commit
  24. 02 Nov, 2015 1 commit
  25. 27 Oct, 2015 1 commit
  26. 16 Oct, 2015 1 commit
  27. 13 Oct, 2015 1 commit
  28. 07 Oct, 2015 2 commits
    • 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
    • Frank Barchard's avatar
      Add J444ToARGB conversion function. · f00bc9ef
      Frank Barchard authored
      J444 is JPeg YUV color space with 444 subsampling.
      This implementation uses the existing I444ToARGB conversion, which is
      BT.601 color space with 444 subsampling, but passing in the jpeg
      color matrix constants.
      
      TBR=harryjin@google.com
      BUG=449
      
      Review URL: https://codereview.chromium.org/1387313002 .
      f00bc9ef
  29. 25 Sep, 2015 1 commit
    • 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
  30. 22 Sep, 2015 1 commit
    • Frank Barchard's avatar
      Replace random with fastrand · 16f12b58
      Frank Barchard authored
      random / rand is slow and impacts performance testing.
      Although its only called to clear a frame once, a typical profile shows
      it high in the overall profile, when doing 1000 frames for a benchmark.
      
      95.10%  libyuv_unittest  libyuv_unittest      [.] YUY2ToARGBRow_SSSE3
       2.01%  libyuv_unittest  libc-2.19.so         [.] __random_r
       1.13%  libyuv_unittest  libc-2.19.so         [.] __random
      
      Replace random is a faster version for unittests.
      
      set LIBYUV_WIDTH=1280
      set LIBYUV_HEIGHT=720
      set LIBYUV_REPEAT=999
      set LIBYUV_FLAGS=-1
      out\release\libyuv_unittest --gtest_filter=*YUY2ToARGB*  | findms
      
      Was
      libyuvTest.YUY2ToARGB_Opt (497 ms)
      
      Now
      libyuvTest.YUY2ToARGB_Opt (454 ms)
      
      R=harryjin@google.com
      BUG=none
      
      Review URL: https://codereview.chromium.org/1361813002 .
      16f12b58
  31. 18 Sep, 2015 1 commit
  32. 06 Sep, 2015 1 commit
  33. 03 Sep, 2015 1 commit
  34. 21 Aug, 2015 1 commit
  35. 18 Aug, 2015 1 commit
    • Frank Barchard's avatar
      xmmword cast for clang · cda9d38a
      Frank Barchard authored
      clangcl use compare_win for 32 bit, allowing fallback and enabling avx2 code for clang.
      move defines/protos to compare_row.h
      fix issue with odd width ARGBCopyAlpha functions by copying destination to temp buffer, then doing alpha copy, then copy back to destination.
      
      R=harryjin@google.com
      TBR=harryjin@google.com
      BUG=libyuv:484
      
      Review URL: https://webrtc-codereview.appspot.com/59379004.
      cda9d38a
  36. 13 Aug, 2015 1 commit