@@ -64,10 +64,12 @@ typedef void (*VP8LPredictorAddSubFunc)(const uint32_t* in,
6464 uint32_t * WEBP_RESTRICT out );
6565extern VP8LPredictorAddSubFunc VP8LPredictorsAdd [16 ];
6666extern VP8LPredictorAddSubFunc VP8LPredictorsAdd_C [16 ];
67+ extern VP8LPredictorAddSubFunc VP8LPredictorsAdd_SSE [16 ];
6768
6869typedef void (* VP8LProcessDecBlueAndRedFunc )(const uint32_t * src ,
6970 int num_pixels , uint32_t * dst );
7071extern VP8LProcessDecBlueAndRedFunc VP8LAddGreenToBlueAndRed ;
72+ extern VP8LProcessDecBlueAndRedFunc VP8LAddGreenToBlueAndRed_SSE ;
7173
7274typedef struct {
7375 // Note: the members are uint8_t, so that any negative values are
@@ -80,6 +82,7 @@ typedef void (*VP8LTransformColorInverseFunc)(const VP8LMultipliers* const m,
8082 const uint32_t * src ,
8183 int num_pixels , uint32_t * dst );
8284extern VP8LTransformColorInverseFunc VP8LTransformColorInverse ;
85+ extern VP8LTransformColorInverseFunc VP8LTransformColorInverse_SSE ;
8386
8487struct VP8LTransform ; // Defined in dec/vp8li.h.
8588
@@ -99,6 +102,8 @@ extern VP8LConvertFunc VP8LConvertBGRAToRGBA;
99102extern VP8LConvertFunc VP8LConvertBGRAToRGBA4444 ;
100103extern VP8LConvertFunc VP8LConvertBGRAToRGB565 ;
101104extern VP8LConvertFunc VP8LConvertBGRAToBGR ;
105+ extern VP8LConvertFunc VP8LConvertBGRAToRGB_SSE ;
106+ extern VP8LConvertFunc VP8LConvertBGRAToRGBA_SSE ;
102107
103108// Converts from BGRA to other color spaces.
104109void VP8LConvertFromBGRA (const uint32_t * const in_data , int num_pixels ,
@@ -149,21 +154,25 @@ void VP8LDspInit(void);
149154
150155typedef void (* VP8LProcessEncBlueAndRedFunc )(uint32_t * dst , int num_pixels );
151156extern VP8LProcessEncBlueAndRedFunc VP8LSubtractGreenFromBlueAndRed ;
157+ extern VP8LProcessEncBlueAndRedFunc VP8LSubtractGreenFromBlueAndRed_SSE ;
152158typedef void (* VP8LTransformColorFunc )(
153159 const VP8LMultipliers * WEBP_RESTRICT const m , uint32_t * WEBP_RESTRICT dst ,
154160 int num_pixels );
155161extern VP8LTransformColorFunc VP8LTransformColor ;
162+ extern VP8LTransformColorFunc VP8LTransformColor_SSE ;
156163typedef void (* VP8LCollectColorBlueTransformsFunc )(
157164 const uint32_t * WEBP_RESTRICT argb , int stride ,
158165 int tile_width , int tile_height ,
159166 int green_to_blue , int red_to_blue , uint32_t histo []);
160167extern VP8LCollectColorBlueTransformsFunc VP8LCollectColorBlueTransforms ;
168+ extern VP8LCollectColorBlueTransformsFunc VP8LCollectColorBlueTransforms_SSE ;
161169
162170typedef void (* VP8LCollectColorRedTransformsFunc )(
163171 const uint32_t * WEBP_RESTRICT argb , int stride ,
164172 int tile_width , int tile_height ,
165173 int green_to_red , uint32_t histo []);
166174extern VP8LCollectColorRedTransformsFunc VP8LCollectColorRedTransforms ;
175+ extern VP8LCollectColorRedTransformsFunc VP8LCollectColorRedTransforms_SSE ;
167176
168177// Expose some C-only fallback functions
169178void VP8LTransformColor_C (const VP8LMultipliers * WEBP_RESTRICT const m ,
@@ -181,6 +190,7 @@ void VP8LCollectColorBlueTransforms_C(const uint32_t* WEBP_RESTRICT argb,
181190
182191extern VP8LPredictorAddSubFunc VP8LPredictorsSub [16 ];
183192extern VP8LPredictorAddSubFunc VP8LPredictorsSub_C [16 ];
193+ extern VP8LPredictorAddSubFunc VP8LPredictorsSub_SSE [16 ];
184194
185195// -----------------------------------------------------------------------------
186196// Huffman-cost related functions.
@@ -255,6 +265,7 @@ typedef void (*VP8LBundleColorMapFunc)(const uint8_t* WEBP_RESTRICT const row,
255265 int width , int xbits ,
256266 uint32_t * WEBP_RESTRICT dst );
257267extern VP8LBundleColorMapFunc VP8LBundleColorMap ;
268+ extern VP8LBundleColorMapFunc VP8LBundleColorMap_SSE ;
258269void VP8LBundleColorMap_C (const uint8_t * WEBP_RESTRICT const row ,
259270 int width , int xbits , uint32_t * WEBP_RESTRICT dst );
260271
0 commit comments