Frank Barchard
2c7aa0070a
remove I422ToBGRA and use I422ToRGBA internally
...
Removes low levels for I420ToBGRA and I420ToRAW and reimplements them as I420ToRGBA and I420ToRGB24 with transposed color matrix.
Adds unittests that do 1 step conversion vs 2 steps to test end swapping versions match direct conversions.
R=harryjin@google.com
BUG=libyuv:518
Review URL: https://codereview.chromium.org/1427993004 .
2015-11-02 10:24:12 -08:00
Frank Barchard
5d97b93369
refactor I420ToABGR to use I420ToARGBRow
...
Using a transposed conversion matrix, I420ToARGB can output ABGR.
R=harryjin@google.com , xhwang@chromium.org
BUG=libyuv:473
Review URL: https://codereview.chromium.org/1413573010 .
2015-10-30 11:56:57 -07:00
Frank Barchard
cdbdf5b723
Fix debug compilation problems for gcc and 32 bit x86.
...
In some methods with 7 arguments gcc fails to find enough registers
to compile the assembler code when compiling debug. Simplest solution
is to skip the assembler version in debug of those particular functions
(I422Alpha -> ARBG/ABGR)
R=harryjin@google.com ,bratell@opera.com
BUG=libyuv:517
Review URL: https://codereview.chromium.org/1423283002 .
2015-10-28 14:27:29 -07:00
Frank Barchard
b86dbf24d3
refactor I420AlphaToABGR to use I420AlphaToARGB internally
...
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 .
2015-10-27 14:17:21 -07:00
Frank Barchard
cf160cdbaa
implement I444ToABGR by swapping uv and transpose matrix
...
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 .
2015-10-27 10:21:21 -07:00
Frank Barchard
2844662e1c
Add avx512bw detection code
...
R=harryjin@google.com
BUG=libyuv:514
Review URL: https://codereview.chromium.org/1413463004 .
2015-10-26 14:42:49 -07:00
Frank Barchard
1502832a70
switch cpu flags to 0 for unitialized to avoid compare
...
R=harryjin@google.com
BUG=libyuv:512
Review URL: https://codereview.chromium.org/1418253002 .
2015-10-23 10:57:42 -07:00
Frank Barchard
ad36ba5c48
initialize cpu flags to fix compile error on windows
...
R=harryjin@google.com
BUG=libyuv:512
Review URL: https://codereview.chromium.org/1422733003 .
2015-10-22 15:16:31 -07:00
Frank Barchard
430bb0a0f0
odd width 444 fix
...
TBR=harryjin@google.com
BUG=libyuv:510
Review URL: https://codereview.chromium.org/1415583003 .
2015-10-21 20:03:19 -07:00
Frank Barchard
90335f6043
bug fix for odd width 16/24 bit to i420
...
A bug was introduced on arm when the code for 'any' width switch to
a temporary stack buffer and simd.
The C version handles odd width by doing 1 pixel, instead of averaging 2.
But the SIMD any version is supposed to replicate the last pixel, then
the subsampling in Neon will average the pixel with itself, producing
the same result.
The previous version did this, but only for ARGB 32 bit, which was to
avoid introducing issues with subsampled YUY2 source. This CL adds
replication for RGB 16 bit values.
TBR=harryjin@google.com
BUG=libyuv:510
Review URL: https://codereview.chromium.org/1418983003 .
2015-10-21 18:23:02 -07:00
Frank Barchard
5bf4de0806
width and 3 bug fix in odd width support of ARGBToI411
...
TBR=harryjin@google.com
BUG=none
Review URL: https://codereview.chromium.org/1415213002 .
2015-10-21 12:45:08 -07:00
Frank Barchard
ba4b409d51
Fix ARGBToI411 odd width bug.
...
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 .
2015-10-21 12:22:24 -07:00
Frank Barchard
9daa550a2e
Move cpu_info variable outside ifdef
...
Fix compile error on arm, mips etc due to undefined variable.
TBR=harryjin@google.com
BUG=none
Review URL: https://codereview.chromium.org/1403373008 .
2015-10-20 16:32:44 -07:00
Frank Barchard
9be6d21ae7
write to cpu_flags once
...
To make init cpu flags thread safe, there can only be one write to the variable.
R=richard.winterton@intel.com , harryjin@google.com
BUG=libyuv:508
Review URL: https://codereview.chromium.org/1412793006 .
2015-10-20 16:24:01 -07:00
Frank Barchard
cf19a0c9a2
nv21 any fix
...
R=harryjin@google.com
BUG=libyuv:507
Review URL: https://codereview.chromium.org/1410643002 .
2015-10-15 16:24:51 -07:00
Frank Barchard
52a5504950
fix for C version of YUV to RGB for Arm
...
YuvPixel for arm was miscomputing YG.
TBR=harryjin@google.com
BUG=libyuv:506
Review URL: https://codereview.chromium.org/1402333002 .
2015-10-15 12:43:37 -07:00
Frank Barchard
4abd096548
fix for yuv to rgb on arm64.
...
fill in aarch64 yuv constants to match how the code expects them.
TBR=harryjin@google.com
BUG=libyuv:502
Review URL: https://codereview.chromium.org/1396253004 .
2015-10-12 12:02:54 -07:00
Frank Barchard
2e4466e282
change all pix parameters to width for consistency
...
TBR=harryjin@google.com
BUG=none
Review URL: https://codereview.chromium.org/1398633002 .
2015-10-07 22:30:36 -07:00
Frank Barchard
76a599ec3b
fix jpeg and bt.709 yuvconstants for neon64.
...
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 .
2015-10-07 19:46:56 -07:00
Frank Barchard
fae8e66d43
Fix for AVX2 dither function.
...
Fix for 64 bit gcc parameter in dither function which requires m not r,
when ABI uses register.
BUG=none
Review URL: https://codereview.chromium.org/1399463002 .
2015-10-07 19:17:56 -07:00
Frank Barchard
8f0cadede4
port ARGB to 565 dithering AVX2 code to GCC.
...
Previously the assembly code was only available to Windows.
This CL ports the AVX2 code to GCC syntax.
TBR=harryjin@google.com
BUG=libyuv:492
Review URL: https://codereview.chromium.org/1391273003 .
2015-10-07 19:13:59 -07:00
Frank Barchard
cc89e3a77b
port ARGB to 565 dithering SSE2 code to GCC.
...
Previously the assembly code was only available to Windows.
This CL ports the SSE2 code to GCC syntax.
When running a profiler on all the unittests, this function
was the slowest of all functions that still ran in C code.
3.71% libyuv_unittest libyuv_unittest [.] ARGBToRGB565DitherRow_C
Was
ARGBToRGB565Dither_Opt (2894 ms)
Now
ARGBToRGB565Dither_Opt (432 ms)
TBR=harryjin@google.com
BUG=libyuv:492
Review URL: https://codereview.chromium.org/1397673002 .
2015-10-07 18:24:50 -07:00
Frank Barchard
3e38762d6b
fix avx2 box filter bug for yuv down sampling.
...
offset to second group of pixels was off by 16.
should have been 32, not 16.
requires avx2 hardware and wide image for test.
R=harryjin@google.com
TBR=harryjin@google.com
BUG=libyuv:492,libyuv:501
Review URL: https://codereview.chromium.org/1395603002 .
2015-10-07 11:02:33 -07:00
Frank Barchard
013080f2d2
Pass yuvconstants to YUV conversions for neon 64 bit
...
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 .
2015-10-06 22:19:14 -07:00
Frank Barchard
914a9856c7
Reimplement NV21ToARGB to allow different color matrix.
...
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 .
2015-10-06 20:34:44 -07:00
Frank Barchard
68fa59c873
add box scaling avx2 optimization for gcc
...
TBR=harryjin@google.com
BUG=libyuv:492
Review URL: https://codereview.chromium.org/1392803002 .
2015-10-06 20:01:02 -07:00
Frank Barchard
f00bc9ef46
Add J444ToARGB conversion function.
...
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 .
2015-10-06 18:46:53 -07:00
Frank Barchard
d70293993f
port scale box filter sse2 to gcc
...
TBR=harryjin@google.com
BUG=libyuv:492
Review URL: https://codereview.chromium.org/1393653002 .
2015-10-06 16:54:26 -07:00
Frank Barchard
3eefeaeb69
test xsave before calling xgetbv.
...
R=agl@chromium.org , harryjin@google.com
BUG=libyuv:497
Review URL: https://codereview.chromium.org/1382803002 .
2015-09-30 17:25:41 -07:00
Frank Barchard
2cc1a2b233
Remove sse2 functions that also have ssse3
...
ARGBBlendRow_SSE2, ARGBAttenuateRow_SSE2, and MirrorRow_SSE2
Since vast majority of CPUs have SSSE3 now, removing the SSE2
improves the performance of CPU dispatching.
R=harryjin@google.com
BUG=none
Review URL: https://codereview.chromium.org/1377053003 .
2015-09-30 14:24:44 -07:00
Frank Barchard
d039ad6e9b
Width use memory instead of register for 32 bit fpic.
...
Code runs out of registers on 32 bit fpic builts.
TBR=harryjin@google.com
BUG=libyuv:496
Review URL: https://codereview.chromium.org/1369053002 .
2015-09-25 15:36:04 -07:00
Frank Barchard
febc26a2c9
win64 version of I422AlphaToARGB.
...
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 .
2015-09-25 15:06:41 -07:00
Frank Barchard
9a0e12f5f1
AVX2 1 step I422AlphaToARGB for gcc and win.
...
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 .
2015-09-25 13:37:42 -07:00
Frank Barchard
e365cdde3b
I420Alpha row function in 1 pass.
...
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 .
2015-09-25 10:29:20 -07:00
Frank Barchard
d4594beefc
switch from ebp to ebx.
...
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 .
2015-09-24 17:25:11 -07:00
Frank Barchard
8fb2048e9f
Fix nv12 64 bit gcc increment.
...
Should be 16 bytes, but was 0x16 causing memory corruption.
TBR=harryjin@google.com
BUG=libyuv:492
Review URL: https://codereview.chromium.org/1368693002 .
2015-09-24 10:19:17 -07:00
Frank Barchard
accc04e6d8
NV12ToARGB_AVX2 ported to gcc
...
TBR=harryjin@google.com
BUG=none
Review URL: https://codereview.chromium.org/1364913002 .
2015-09-23 15:54:16 -07:00
Frank Barchard
000cf89ca8
YUY2ToARGB avx2 in 1 step conversion.
...
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 .
2015-09-23 11:15:18 -07:00
Frank Barchard
2b92ec8d0f
Fix git markers introduced on landing previous CL
...
BUG=none
Review URL: https://codereview.chromium.org/1359023003 .
2015-09-22 15:00:57 -07:00
Frank Barchard
5f3d4270d1
yuy2 to rgb gcc versions
...
read in read function for yuv conversion
R=harryjin@google.com
BUG=libyuv:488
Review URL: https://codereview.chromium.org/1355393002 .
2015-09-22 14:27:33 -07:00
Frank Barchard
03cd8584e7
Read Y channel in read function for yuv conversion.
...
Allows reader to support YUY2 format.
Also contains fix for win64 build for yuv conversion.
TBR=harryjin@google.com
BUG=libyuv:488
Review URL: https://codereview.chromium.org/1355333002 .
2015-09-22 12:05:16 -07:00
Frank Barchard
f96890a0be
yuvconstants for all YUV to RGB conversion functions.
...
R=harryjin@google.com
BUG=libyuv:488
Review URL: https://codereview.chromium.org/1363503002 .
2015-09-22 10:26:03 -07:00
Frank Barchard
62c49dc811
move constants into common
...
R=harryjin@google.com
BUG=libyuv:488
Review URL: https://codereview.chromium.org/1359443005 .
2015-09-18 16:28:44 -07:00
Frank Barchard
0381673d19
port I444 to ARGB to matrix. Add I444 to ABGR.
...
R=harryjin@google.com
BUG=libyuv:488,libyuv:490
Review URL: https://codereview.chromium.org/1348763005 .
2015-09-18 14:36:15 -07:00
Frank Barchard
28427a53e2
I444ToABGR for android
...
Reimplements I444ToARGB as a matrix function.
new I444ToABGR as matrix functions with wrappers and any functions.
Allows for future J444 and H444 versions.
I444ToABGR user level function added.
BUG=libyuv:490, libyuv:449
R=harryjin@google.com
Review URL: https://codereview.chromium.org/1355733002 .
2015-09-18 11:20:58 -07:00
Frank Barchard
28ce7d94f5
j422toabgr neon port using i422toabgr matrix function.
...
R=harryjin@google.com
BUG=libyuv:488
Review URL: https://codereview.chromium.org/1353923003 .
2015-09-17 15:20:55 -07:00
Frank Barchard
6fcbae1409
J422ToARGB Neon but not aarch64
...
TBR=harryjin@google.com
BUG=libyuv:493
Review URL: https://codereview.chromium.org/1348203004 .
2015-09-17 12:43:05 -07:00
Frank Barchard
6a6b67e7a9
Add H422ToARGB armv7 neon version.
...
Patch provided by zhongwei.yao@linaro.org
R=fbarchard@chromium.org , fbarchard@google.com
BUG=libyuv:488
Review URL: https://codereview.chromium.org/1344393002 .
2015-09-17 10:38:15 -07:00
Frank Barchard
509c644245
Add J422ToARGB armv7 neon version.
...
R=fbarchard@chromium.org , fbarchard@google.com
BUG=libyuv:488
Review URL: https://codereview.chromium.org/1334173005 .
2015-09-15 15:01:48 -07:00
Frank Barchard
73c32d92d7
neon64 use yuvconstants like 32 bit code.
...
TBR=harryjin@google.com
BUG=libyuv:488
Review URL: https://codereview.chromium.org/1345643002 .
2015-09-14 16:43:07 -07:00
Frank Barchard
a67927c994
use struct instead of vectors
...
TBR=harryjin@google.com
BUG=libyuv:488
Review URL: https://codereview.chromium.org/1345623003 .
2015-09-14 16:07:58 -07:00
Frank Barchard
909160b3b5
use same macros as row_gcc.cc
...
R=harryjin@google.com
BUG=libyuv:488
Review URL: https://codereview.chromium.org/1343863002 .
2015-09-14 15:36:10 -07:00
Frank Barchard
fcacbfb27f
validate scan EOI from end for better coverage
...
R=tpsiaki@google.com
BUG=libyuv:478
Review URL: https://codereview.chromium.org/1344623003 .
2015-09-14 10:58:51 -07:00
Frank Barchard
67a9e30225
neon yuv matrix function
...
R=harryjin@google.com
BUG=libyuv:488
Review URL: https://codereview.chromium.org/1337973002 .
2015-09-11 11:12:30 -07:00
Frank Barchard
316e1ab996
avx2 width parameter bug fix
...
R=harryjin@google.com
BUG=libyuv:489
Review URL: https://codereview.chromium.org/1321773004 .
2015-09-09 11:56:35 -07:00
Frank Barchard
ed55d24d9f
H420 functionality
...
R=harryjin@google.com
BUG=libyuv:488
Review URL: https://webrtc-codereview.appspot.com/54869004 .
2015-09-06 11:01:40 -07:00
Frank Barchard
67b06e66cb
I422ToABGR for win64. Moves any functions to accomidate win64 subset of formats.
...
TBR=harryjin@google.com
BUG=libyuv:488
Review URL: https://webrtc-codereview.appspot.com/57679004 .
2015-09-03 11:00:18 -07:00
Frank Barchard
7060e0d826
I420ToABGRMatrix functions with J420ToABGR wrapper.
...
Allows direct conversion from JPeg to ABGR for android.
BUG=libyuv:488
R=harryjin@google.com
Review URL: https://webrtc-codereview.appspot.com/55719004 .
2015-09-03 10:42:36 -07:00
Frank Barchard
925c3d9e26
I420ToARGB conversion with matrix.
...
Take color conversion constants as a parameter to row function for I420ToARGBMatrixRow_SSSE3.
Allows future variations of color space using a single low level.
R=harryjin@google.com
BUG=libyuv:488
Review URL: https://webrtc-codereview.appspot.com/56669004 .
2015-09-02 10:45:42 -07:00
Frank Barchard
0bc626a5d7
nolint removed
...
R=harryjin@google.com
BUG=none
Review URL: https://webrtc-codereview.appspot.com/59389004 .
2015-08-31 10:52:13 -07:00
Frank Barchard
0735245c52
pinsrw instruction allows reading 2 bytes directly into an xmm register.
...
Saving a gpr register allows the register to not be pushed for now, and in future it can be used to point to color conversion matrix or alpha channel.
R=harryjin@google.com
BUG=libyuv:488
Review URL: https://webrtc-codereview.appspot.com/52789004 .
2015-08-28 17:03:54 -07:00
Frank Barchard
be11f500f0
Use ebp to point to conversion table.
...
Proof of concept that conversions can table color matrix as a parameter.
R=harryjin@google.com
BUG=libyuv:472, libyuv:488
Review URL: https://webrtc-codereview.appspot.com/58489004 .
2015-08-28 12:00:49 -07:00
Frank Barchard
3c4f5735ce
use pointer to inverse table for clangcl
...
R=harryjin@google.com
TBR=harryjin@google.com
BUG=none
Review URL: https://webrtc-codereview.appspot.com/54859004 .
2015-08-26 12:53:03 -07:00
Frank Barchard
5452cce452
port row to clangcl
...
BUG=libyuv:487
R=harryjin@google.com
Review URL: https://webrtc-codereview.appspot.com/53799005 .
2015-08-25 16:15:42 -07:00
Frank Barchard
fa7ce4af3f
fixed table for clangcl
...
R=harryjin@google.com
BUG=libyuv:487
Review URL: https://webrtc-codereview.appspot.com/53799004 .
2015-08-25 10:47:30 -07:00
Frank Barchard
d317a70c1d
llvm64 link error fix.
...
R=harryjin@google.com
BUG=libyuv:485
Review URL: https://webrtc-codereview.appspot.com/58479004 .
2015-08-24 14:21:04 -07:00
Frank Barchard
4dfdabb552
I420AlphaToABGR for android version of yuva conversion
...
Same as I420AlphaToARGB but first step converts to ABGR instead of ARGB.
TBR=harryjin@google.com
BUG=libyuv:473
Review URL: https://webrtc-codereview.appspot.com/52779004 .
2015-08-20 19:36:59 -07:00
Frank Barchard
ee9aaea02f
i422torgb565 is asm for clangcl as well
...
Merge branch 'master' of https://chromium.googlesource.com/libyuv/libyuv into convertcl
allow lto for llvm but not gcc
R=harryjin@google.com
BUG=libyuv:469
Review URL: https://webrtc-codereview.appspot.com/52769004 .
2015-08-19 10:46:30 -07:00
Frank Barchard
94d4269936
clang use scalewin
...
R=harryjin@google.com
TBR=harryjin@google.com
BUG=libyuv:469
Review URL: https://webrtc-codereview.appspot.com/51329004 .
2015-08-18 14:50:27 -07:00
Frank Barchard
cda9d38a4e
xmmword cast for clang
...
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 .
2015-08-18 11:13:12 -07:00
Frank Barchard
baf6a3c1bd
Using the visual C source allows clangcl to fallback seamlessly to visual c, and supports SSE41 and AVX2 versions.
...
R=harryjin@google.com
BUG=libyuv:469
Review URL: https://webrtc-codereview.appspot.com/58469004 .
2015-08-17 10:47:43 -07:00
Frank Barchard
278d88f872
Copy Alpha odd width support
...
R=harryjin@google.com
BUG=none
Review URL: https://webrtc-codereview.appspot.com/59369004 .
2015-08-13 15:05:14 -07:00
Frank Barchard
8e7a62f22a
I420AlphaToARGB conversion for planar YUV with Alpha to ARGB.
...
R=brucedawson@chromium.org , harryjin@google.com
BUG=libyuv:473
Review URL: https://webrtc-codereview.appspot.com/54829004 .
2015-08-12 17:01:24 -07:00
Frank Barchard
58f0020137
use visual c 32 bit code for clangcl
...
R=harryjin@google.com
BUG=libyuv:483
Review URL: https://webrtc-codereview.appspot.com/54819004 .
2015-08-11 10:10:45 -07:00
Frank Barchard
9425c4b01a
rotate nv12 any width
...
BUG=libyuv:464
R=harryjin@google.com
Review URL: https://webrtc-codereview.appspot.com/55709004 .
2015-08-07 23:48:38 -07:00
Frank Barchard
1f461f73d8
remove align directives
...
R=harryjin@google.com
BUG=none
Review URL: https://webrtc-codereview.appspot.com/54809004 .
2015-08-04 17:00:03 -07:00
Frank Barchard
6e7ef3fddc
allow xgetbv to be disabled for drmemory testing
...
R=harryjin@google.com
BUG=none
Review URL: https://webrtc-codereview.appspot.com/56649004 .
2015-08-04 15:00:39 -07:00
Frank Barchard
e40384b6d9
remove 32 bit gcc version of UV transpose
...
TBR=harryjin@google.com
BUG=libyuv:481
Review URL: https://webrtc-codereview.appspot.com/52249004 .
2015-08-03 18:03:55 -07:00
Frank Barchard
f14c433916
rotate macros used for source
...
R=brucedawson@chromium.org , harryjin@google.com
BUG=libyuv:481
Review URL: https://webrtc-codereview.appspot.com/52239004 .
2015-08-03 16:12:18 -07:00
Frank Barchard
7cd7f5a80f
avx ifdef for scale HAS_SCALEADDROW_AVX2.
...
R=jzern@google.com
BUG=libyuv:480
Review URL: https://webrtc-codereview.appspot.com/53779004 .
2015-07-31 17:17:14 -07:00
Frank Barchard
f242a4a1a1
ValidateJpeg check for valid pointer and size
...
R=harryjin@google.com
BUG=chromium:497297
Review URL: https://webrtc-codereview.appspot.com/57649004 .
2015-07-30 15:49:48 -07:00
Frank Barchard
93464b926c
Add rotate any support. Fix for sobel for neon which does 16 at a time, not 8. Disable scaling color test that fails on arm. Test is not complete.
...
R=harryjin@google.com
BUG=libyuv:479
Review URL: https://webrtc-codereview.appspot.com/52229004 .
2015-07-28 15:06:20 -07:00
Frank Barchard
45230390ff
add support for odd width rotate
...
R=harryjin@google.com
BUG=libyuv:464
Review URL: https://webrtc-codereview.appspot.com/52219004 .
2015-07-28 14:30:07 -07:00
Frank Barchard
cb54e8b69a
rename rotate macros and functions to match
...
BUG=libyuv:477
R=harryjin@google.com
Review URL: https://webrtc-codereview.appspot.com/52199004 .
2015-07-27 17:00:41 -07:00
Frank Barchard
18a9027ad9
const warning fix on dither, bump chromium deps and add files to ignore list generated by arm build
...
BUG=none
R=harryjin@google.com
Review URL: https://webrtc-codereview.appspot.com/57639004 .
2015-07-27 11:47:01 -07:00
Frank Barchard
2fa4f5a3ea
Adds files and functions for rotate any, but does not hook them up to the caller.
...
rotate any
R=harryjin@google.com
BUG=libyuv:464
Review URL: https://webrtc-codereview.appspot.com/53769004 .
2015-07-27 10:32:08 -07:00
Frank Barchard
3a3a89ccd4
rotate include and proto cleanup
...
R=harryjin@google.com
BUG=libyuv:468
Review URL: https://webrtc-codereview.appspot.com/55679005 .
2015-07-22 18:09:04 -07:00
Frank Barchard
5be90d23ee
rotate row included
...
R=tpsiaki@google.com
BUG=libyuv:468
Review URL: https://webrtc-codereview.appspot.com/55679004 .
2015-07-22 17:10:08 -07:00
Frank Barchard
892807d860
move asm out of rotate into win/gcc and header
...
R=harryjin@google.com
BUG=libyuv:468
Review URL: https://webrtc-codereview.appspot.com/51319004 .
2015-07-22 11:22:55 -07:00
Frank Barchard
ce98129951
yuy2tonv12
...
R=bcornell@google.com
BUG=libyuv:466
Review URL: https://webrtc-codereview.appspot.com/51309004 .
2015-07-17 16:22:59 -07:00
Frank Barchard
faa4b14f85
uyvy to nv12
...
R=harryjin@google.com
BUG=libyuv:466
Review URL: https://webrtc-codereview.appspot.com/50339004 .
2015-07-17 14:43:19 -07:00
Frank Barchard
faebf89ce0
src_uv typo fix
...
R=harryjin@google.com
BUG=none
Review URL: https://webrtc-codereview.appspot.com/51299004 .
2015-07-15 18:21:06 -07:00
Frank Barchard
3d190ee9f1
break rotate into files by cpu in preparation for optimization.
...
R=bcornell@google.com
BUG=libyuv:464
Review URL: https://webrtc-codereview.appspot.com/51289004 .
2015-07-14 10:23:10 -07:00
Frank Barchard
673fe7a684
create rotate_row header
...
R=tpsiaki@google.com , tpsiaki
BUG=none
TESTED=local build still works.
Review URL: https://webrtc-codereview.appspot.com/50329004 .
2015-07-09 14:40:35 -07:00
Frank Barchard
0e83b64e88
scalerow avx2 bug fix. was using ymm2 instead of ymm3.
...
R=harryjin@google.com
BUG=libyuv:462
Review URL: https://webrtc-codereview.appspot.com/56639004 .
2015-07-07 17:48:04 -07:00
Frank Barchard
715a29195b
vpermq for avx2 ARGB4444ToARGB, ARGB1555ToARGB and RGB565ToARGB
...
R=harryjin@google.com
BUG=libyuv:462
Review URL: https://webrtc-codereview.appspot.com/52759004 .
2015-07-07 17:06:04 -07:00
Frank Barchard
97b35daf75
disable faulty avx2 in argb conversions and box filter. and extend temporary buffer to 128 for an avx2 any function.
...
R=harryjin@google.com
BUG=libyuv:462
TESTED=libyuv_unittest run on haswell laptop
Review URL: https://webrtc-codereview.appspot.com/53759004 .
2015-07-07 15:40:24 -07:00
Frank Barchard
0737ff5bd0
128 for avx2
...
R=harryjin@google.com
BUG=libyuv:461
Review URL: https://webrtc-codereview.appspot.com/55649004 .
2015-07-04 09:13:20 -07:00
Frank Barchard
9487b9d6d8
any allow for avx2 32 pixels at a time of argb
...
R=harryjin@google.com
BUG=libyuv:461
Review URL: https://webrtc-codereview.appspot.com/54779004 .
2015-07-01 17:50:48 -07:00
Frank Barchard
82180e8296
rgb24toyuv use 1 or 2 steps consistently.
...
R=bcornell@google.com , impjdi@google.com
BUG=libyuv:459
Review URL: https://webrtc-codereview.appspot.com/52149004 .
2015-06-29 16:51:05 -07:00