@@ -212,9 +212,9 @@ void VibranceAlgorithm_SSE(unsigned char *Src, unsigned char *Dest, int Width, i
212212 Dest3 = _mm_or_si128 (Dest3, _mm_shuffle_epi8 (Green8, _mm_setr_epi8 (-1 , -1 , 11 , -1 , -1 , 12 , -1 , -1 , 13 , -1 , -1 , 14 , -1 , -1 , 15 , -1 )));
213213 Dest3 = _mm_or_si128 (Dest3, _mm_shuffle_epi8 (Red8, _mm_setr_epi8 (10 , -1 , -1 , 11 , -1 , -1 , 12 , -1 , -1 , 13 , -1 , -1 , 14 , -1 , -1 , 15 )));
214214
215- _mm_store_si128 ((__m128i *)(LinePD + 0 ), Dest1);
216- _mm_store_si128 ((__m128i *)(LinePD + 16 ), Dest2);
217- _mm_store_si128 ((__m128i *)(LinePD + 32 ), Dest3);
215+ _mm_storeu_si128 ((__m128i *)(LinePD + 0 ), Dest1);
216+ _mm_storeu_si128 ((__m128i *)(LinePD + 16 ), Dest2);
217+ _mm_storeu_si128 ((__m128i *)(LinePD + 32 ), Dest3);
218218 }
219219 for (; X < Width; X ++) {
220220 int Blue, Green, Red, Max;
@@ -254,12 +254,12 @@ int main() {
254254 int Stride = Width * 3 ;
255255 int Radius = 11 ;
256256 int Adjustment = 50 ;
257- /* int64 st = cvGetTickCount();
257+ int64 st = cvGetTickCount ();
258258 for (int i = 0 ; i <50 ; i++) {
259259 VibranceAlgorithm_SSE (Src, Dest, Width, Height, Stride, Adjustment);
260260 }
261261 double duration = (cv::getTickCount () - st) / cv::getTickFrequency () * 20 ;
262- printf("%.5f\n", duration);*/
262+ printf (" %.5f\n " , duration);
263263 VibranceAlgorithm_SSE (Src, Dest, Width, Height, Stride, Adjustment);
264264 Mat dst (Height, Width, CV_8UC3, Dest);
265265 imshow (" origin" , src);
0 commit comments