diff options
author | Martin Vignali <martin.vignali@gmail.com> | 2018-03-24 20:18:05 +0100 |
---|---|---|
committer | Martin Vignali <martin.vignali@gmail.com> | 2018-03-24 20:22:08 +0100 |
commit | 1ba5ca2d721ebb8b80cd3c389854905e59fc7dfd (patch) | |
tree | 189df4d7994c710867d79512c31df89f3b2e9f9a /libswscale/x86 | |
parent | d4f6640855faf57da1ccc3cade356975fcb00207 (diff) | |
download | ffmpeg-1ba5ca2d721ebb8b80cd3c389854905e59fc7dfd.tar.gz |
swscale/rgb : add X86 SIMD (SSSE3), for shuffle_bytes_1230, shuffle_bytes_3012, shuffle_bytes_3210
Diffstat (limited to 'libswscale/x86')
-rw-r--r-- | libswscale/x86/rgb2rgb.c | 6 | ||||
-rw-r--r-- | libswscale/x86/rgb_2_rgb.asm | 6 |
2 files changed, 12 insertions, 0 deletions
diff --git a/libswscale/x86/rgb2rgb.c b/libswscale/x86/rgb2rgb.c index 5caabf03ed..e5f318a72c 100644 --- a/libswscale/x86/rgb2rgb.c +++ b/libswscale/x86/rgb2rgb.c @@ -146,6 +146,9 @@ DECLARE_ALIGNED(8, extern const uint64_t, ff_bgr2UVOffset); void ff_shuffle_bytes_2103_ssse3(const uint8_t *src, uint8_t *dst, int src_size); void ff_shuffle_bytes_0321_ssse3(const uint8_t *src, uint8_t *dst, int src_size); +void ff_shuffle_bytes_1230_ssse3(const uint8_t *src, uint8_t *dst, int src_size); +void ff_shuffle_bytes_3012_ssse3(const uint8_t *src, uint8_t *dst, int src_size); +void ff_shuffle_bytes_3210_ssse3(const uint8_t *src, uint8_t *dst, int src_size); av_cold void rgb2rgb_init_x86(void) { @@ -167,5 +170,8 @@ av_cold void rgb2rgb_init_x86(void) if (EXTERNAL_SSSE3(cpu_flags)) { shuffle_bytes_0321 = ff_shuffle_bytes_0321_ssse3; shuffle_bytes_2103 = ff_shuffle_bytes_2103_ssse3; + shuffle_bytes_1230 = ff_shuffle_bytes_1230_ssse3; + shuffle_bytes_3012 = ff_shuffle_bytes_3012_ssse3; + shuffle_bytes_3210 = ff_shuffle_bytes_3210_ssse3; } } diff --git a/libswscale/x86/rgb_2_rgb.asm b/libswscale/x86/rgb_2_rgb.asm index e4104d9be2..db45e313d8 100644 --- a/libswscale/x86/rgb_2_rgb.asm +++ b/libswscale/x86/rgb_2_rgb.asm @@ -26,6 +26,9 @@ SECTION_RODATA pb_shuffle2103: db 2, 1, 0, 3, 6, 5, 4, 7, 10, 9, 8, 11, 14, 13, 12, 15 pb_shuffle0321: db 0, 3, 2, 1, 4, 7, 6, 5, 8, 11, 10, 9, 12, 15, 14, 13 +pb_shuffle1230: db 1, 2, 3, 0, 5, 6, 7, 4, 9, 10, 11, 8, 13, 14, 15, 12 +pb_shuffle3012: db 3, 0, 1, 2, 7, 4, 5, 6, 11, 8, 9, 10, 15, 12, 13, 14 +pb_shuffle3210: db 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 SECTION .text @@ -78,3 +81,6 @@ jge .end INIT_XMM ssse3 SHUFFLE_BYTES 2, 1, 0, 3 SHUFFLE_BYTES 0, 3, 2, 1 +SHUFFLE_BYTES 1, 2, 3, 0 +SHUFFLE_BYTES 3, 0, 1, 2 +SHUFFLE_BYTES 3, 2, 1, 0 |