tametika / libyuv

Automatically exported from code.google.com/p/libyuv
BSD 3-Clause "New" or "Revised" License
0 stars 0 forks source link

NV12ToARGBRow_SSSE3 used, but should be NV12ToARGBRow_AVX2, based on I422ToARGBRow_AVX2 #554

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
NV12ToARGBRow_SSSE3 used, but should be NV12ToARGBRow_AVX2
Adapt I422ToARGBRow_AVX2 to NV12

Run conversion tests

LIBYUV_FLAGS=-1 LIBYUV_WIDTH=1280 LIBYUV_HEIGHT=720 LIBYUV_REPEAT=1000 perf 
record out/Release/libyuv_unittest --gtest_filter=*ConvertTest*

perf report

Original issue reported on code.google.com by fbarch...@google.com on 26 Jan 2016 at 1:45

GoogleCodeExporter commented 8 years ago

Original comment by fbarch...@google.com on 26 Jan 2016 at 1:49

GoogleCodeExporter commented 8 years ago
LIBYUV_FLAGS=-1 LIBYUV_WIDTH=1280 LIBYUV_HEIGHT=720 LIBYUV_REPEAT=1000 perf 
record out/Release/libyuv_unittest --gtest_filter=*NV12To*RGB565*
perf report | grep Row_

    55.32%  libyuv_unittest  libyuv_unittest      [.] NV12ToARGBRow_SSSE3
    42.03%  libyuv_unittest  libyuv_unittest      [.] ARGBToRGB565Row_SSE2
     0.77%  libyuv_unittest  libyuv_unittest      [.] NV12ToRGB565Row_SSSE3
     0.14%  libyuv_unittest  libyuv_unittest      [.] NV12ToRGB565Row_Any_SSSE3
     0.08%  libyuv_unittest  libyuv_unittest      [.] RGB565ToARGBRow_SSE2

Original comment by fbarch...@google.com on 10 Feb 2016 at 6:48

GoogleCodeExporter commented 8 years ago
Was NV12ToRGB565_Opt (735 ms)
Now NV12ToRGB565_Opt (613 ms)

Original comment by fbarch...@google.com on 10 Feb 2016 at 7:10

GoogleCodeExporter commented 8 years ago
The following revision refers to this bug:
  https://chromium.googlesource.com/libyuv/libyuv.git/+/0e554b18fe2a60f2a384d0dc86154b69bb7bc1b7

commit 0e554b18fe2a60f2a384d0dc86154b69bb7bc1b7
Author: Frank Barchard <fbarchard@google.com>
Date: Wed Feb 10 19:13:41 2016

port NV12ToRGB565Row_AVX2 to gcc

NV12ToRGB565Row for Intel is implemented as a 2 step conversion:
NV12ToARGBRow_SSSE3 and ARGBToRGB565Row_SSE2

NV12ToARGBRow has an AVX2 version, so this CL implements
NV12ToRGB565Row_AVX2 with call to NV12ToARGBRow_AVX2 and
ARGBToRGB565Row_SSE2.

R=harryjin@google.com
BUG=libyuv:554

Review URL: https://codereview.chromium.org/1687953002 .

[modify] 
http://crrev.com/0e554b18fe2a60f2a384d0dc86154b69bb7bc1b7/include/libyuv/row.h
[modify] 
http://crrev.com/0e554b18fe2a60f2a384d0dc86154b69bb7bc1b7/source/row_common.cc

Original comment by bugdroid1@chromium.org on 10 Feb 2016 at 7:19

GoogleCodeExporter commented 8 years ago

Original comment by fbarch...@google.com on 10 Feb 2016 at 11:12