mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-08-20 20:24:45 +03:00
SIMD Filter. rearrange operations
This commit is contained in:
parent
3b67d8c516
commit
49f4de699f
|
@ -57,12 +57,11 @@ ImagingFilter3x3i_4u8(Imaging imOut, Imaging im, const INT16* kernel,
|
||||||
|
|
||||||
MM_KERNEL_SUM(ss0, 0, 0x00);
|
MM_KERNEL_SUM(ss0, 0, 0x00);
|
||||||
MM_KERNEL_SUM(ss0, 1, 0x55);
|
MM_KERNEL_SUM(ss0, 1, 0x55);
|
||||||
|
ss0 = _mm_srai_epi32(ss0, PRECISION_BITS);
|
||||||
|
|
||||||
MM_KERNEL_SUM(ss1, 0, 0xaa);
|
MM_KERNEL_SUM(ss1, 0, 0xaa);
|
||||||
MM_KERNEL_SUM(ss1, 1, 0xff);
|
MM_KERNEL_SUM(ss1, 1, 0xff);
|
||||||
|
ss1 = _mm_srai_epi32(ss1, PRECISION_BITS);
|
||||||
ss0 = _mm_packs_epi32(
|
|
||||||
_mm_srai_epi32(ss0, PRECISION_BITS),
|
|
||||||
_mm_srai_epi32(ss1, PRECISION_BITS));
|
|
||||||
|
|
||||||
MM_KERNEL_SUM(ss2, 1, 0x00);
|
MM_KERNEL_SUM(ss2, 1, 0x00);
|
||||||
MM_KERNEL_SUM(ss3, 1, 0xaa);
|
MM_KERNEL_SUM(ss3, 1, 0xaa);
|
||||||
|
@ -71,11 +70,11 @@ ImagingFilter3x3i_4u8(Imaging imOut, Imaging im, const INT16* kernel,
|
||||||
|
|
||||||
MM_KERNEL_SUM(ss2, 0, 0x55);
|
MM_KERNEL_SUM(ss2, 0, 0x55);
|
||||||
MM_KERNEL_SUM(ss3, 0, 0xff);
|
MM_KERNEL_SUM(ss3, 0, 0xff);
|
||||||
|
ss2 = _mm_srai_epi32(ss2, PRECISION_BITS);
|
||||||
|
ss3 = _mm_srai_epi32(ss3, PRECISION_BITS);
|
||||||
|
|
||||||
ss2 = _mm_packs_epi32(
|
ss0 = _mm_packs_epi32(ss0, ss1);
|
||||||
_mm_srai_epi32(ss2, PRECISION_BITS),
|
ss2 = _mm_packs_epi32(ss2, ss3);
|
||||||
_mm_srai_epi32(ss3, PRECISION_BITS));
|
|
||||||
|
|
||||||
ss0 = _mm_packus_epi16(ss0, ss2);
|
ss0 = _mm_packus_epi16(ss0, ss2);
|
||||||
_mm_storeu_si128((__m128i*) &out[x], ss0);
|
_mm_storeu_si128((__m128i*) &out[x], ss0);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user