1. 22 Sep, 2016 1 commit
  2. 24 Aug, 2016 2 commits
  3. 07 Jun, 2016 1 commit
    • Frank Barchard's avatar
      ARGBExtractAlpha 16 pixels at a time for ARM · 65460962
      Frank Barchard authored
      arm64   8     TestARGBExtractAlpha (10019 ms) <-original 64 bit code
      arm64   8 x2  TestARGBExtractAlpha (7639 ms)
      arm64   16    TestARGBExtractAlpha (7369 ms) <- new 64 bit code
      thumb32 8     TestARGBExtractAlpha (9505 ms) <- original 32 bit code
      thumb32 8 x2  TestARGBExtractAlpha (7400 ms)
      thumb32 8 x2i TestARGBExtractAlpha (7266 ms) <- new 32 bit code
      arm32   8     TestARGBExtractAlpha (10002 ms)
      
      BUG=libyuv:572
      TESTED=local test on nexus 9
      R=harryjin@google.com, wangcheng@google.com
      
      Review URL: https://codereview.chromium.org/2035573002 .
      65460962
  4. 28 May, 2016 1 commit
  5. 27 May, 2016 1 commit
  6. 26 May, 2016 1 commit
  7. 08 Apr, 2016 1 commit
  8. 05 Feb, 2016 1 commit
  9. 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
  10. 06 Jan, 2016 1 commit
  11. 17 Dec, 2015 1 commit
  12. 15 Dec, 2015 1 commit
  13. 09 Dec, 2015 2 commits
    • Frank Barchard's avatar
      BlendPlane any width. · a2ea9056
      Frank Barchard authored
      Benchmark
      out\release\libyuv_unittest --libyuv_width=1279 --libyuv_height=719 --libyuv_repeat=999 --libyuv_flags=-1 --gtest_filter=*Blend* | sortms
      
      Was
      I420Blend_Any (2321 ms)
      I420Blend_Unaligned (1684 ms)
      I420Blend_Opt (1675 ms)
      I420Blend_Invert (1653 ms)
      BlendPlane_Invert (1556 ms)
      BlendPlane_Any (1552 ms)
      BlendPlane_Unaligned (1548 ms)
      BlendPlane_Opt (1535 ms)
      ARGBBlend_Unaligned (659 ms)
      ARGBBlend_Any (596 ms)
      ARGBBlend_Invert (591 ms)
      ARGBBlend_Opt (508 ms)
      BlendPlaneRow_Unaligned (186 ms)
      BlendPlaneRow_Opt (171 ms)
      
      Now
      ARGBBlend_Any (621 ms)
      ARGBBlend_Unaligned (585 ms)
      ARGBBlend_Invert (564 ms)
      ARGBBlend_Opt (512 ms)
      I420Blend_Unaligned (347 ms)
      I420Blend_Invert (345 ms)
      I420Blend_Any (337 ms)
      I420Blend_Opt (327 ms)
      BlendPlane_Unaligned (187 ms)
      BlendPlaneRow_Unaligned (187 ms)
      BlendPlane_Invert (186 ms)
      BlendPlane_Any (186 ms)
      BlendPlaneRow_Opt (173 ms)
      BlendPlane_Opt (171 ms)
      
      which is comparable to aligned case
      out\release\libyuv_unittest --libyuv_width=1280 --libyuv_height=720 --libyuv_repeat=999 --libyuv_flags=-1 --gtest_filter=*Blend* | sortms
      ARGBBlend_Any (625 ms)
      ARGBBlend_Unaligned (602 ms)
      ARGBBlend_Invert (508 ms)
      ARGBBlend_Opt (506 ms)
      I420Blend_Any (353 ms)
      I420Blend_Unaligned (322 ms)
      I420Blend_Invert (304 ms)
      I420Blend_Opt (301 ms)
      BlendPlaneRow_Unaligned (188 ms)
      BlendPlane_Unaligned (186 ms)
      BlendPlane_Invert (185 ms)
      BlendPlane_Any (184 ms)
      BlendPlaneRow_Opt (173 ms)
      BlendPlane_Opt (169 ms)
      
      R=dhrosa@google.com, harryjin@google.com
      BUG=libyuv:527
      
      Review URL: https://codereview.chromium.org/1513443002 .
      a2ea9056
    • Frank Barchard's avatar
      Optimize yuv alpha blend AVX2 code to do 32 pixels at time. · dee77a4e
      Frank Barchard authored
      out/Release/libyuv_unittest --libyuv_width=1280 --libyuv_height=720 --libyuv_repeat=9999 --libyuv_flags=-1 --gtest_filter=*I420Blend_Opt
      
      Was LibYUVPlanarTest.I420Blend_Opt (2335 ms)
      Now LibYUVPlanarTest.I420Blend_Opt (1937 ms)
      
      vs SSSE3
      LibYUVPlanarTest.I420Blend_Opt (2599 ms)
      
      BUG=libyuv:527
      R=dhrosa@google.com
      
      Review URL: https://codereview.chromium.org/1505673003 .
      dee77a4e
  14. 07 Dec, 2015 2 commits
  15. 06 Dec, 2015 1 commit
  16. 26 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. 08 Oct, 2015 1 commit
    • Frank Barchard's avatar
      fix jpeg and bt.709 yuvconstants for neon64. · 76a599ec
      Frank Barchard authored
      yuv constants for bt.601 were previously ported to neon64, as well
      as the code to respect other color spaces.  But the jpeg and bt.709
      colour conversion constants were still in armv7 form.  This changes
      the constants for aarch64 builds to be compatible with the code.
      
      yuv constants are now passed as const *
      
      Remove Yvu constants which were used for older version on nv21 but not new code.
      
      TBR=harryjin@google.com
      BUG=none
      
      Review URL: https://codereview.chromium.org/1398623002 .
      76a599ec
  22. 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
  23. 30 Sep, 2015 1 commit
  24. 22 Sep, 2015 1 commit
  25. 13 Aug, 2015 1 commit
  26. 17 Jul, 2015 2 commits
  27. 28 May, 2015 1 commit
  28. 27 May, 2015 1 commit
  29. 07 Apr, 2015 1 commit
  30. 26 Mar, 2015 1 commit
  31. 19 Mar, 2015 1 commit
  32. 24 Feb, 2015 1 commit
  33. 07 Feb, 2015 1 commit
  34. 12 Jan, 2015 1 commit
    • fbarchard@google.com's avatar
      Change rectangle low level functions to use more conventional row functions… · b2a6af1b
      fbarchard@google.com authored
      Change rectangle low level functions to use more conventional row functions including 'any' variations.  Previously the yuv function SetPlane stored 32 bit values. Now a more conventional memset() style function is used for YUV that stores bytes.  On Haswell a rep stosb is used for YUV.  Overall benefit of this CL is improved performance for 'any' width, and simpler row assembly instead of full image assembly.  Previously ARGBRect used a low level function that supported a rectangle in assembly.  Now it uses a row function, and relies on row coalesce to combine into a single low level call.
      BUG=371
      TESTED=untested
      R=brucedawson@google.com, harryjin@google.com
      
      Review URL: https://webrtc-codereview.appspot.com/35689004
      
      git-svn-id: http://libyuv.googlecode.com/svn/trunk@1222 16f28f9a-4ce2-e073-06de-1de4eb20be90
      b2a6af1b
  35. 07 Jan, 2015 2 commits