Index: webrtc/modules/video_processing/util/denoiser_filter_sse2.cc |
diff --git a/webrtc/modules/video_processing/util/denoiser_filter_sse2.cc b/webrtc/modules/video_processing/util/denoiser_filter_sse2.cc |
index 54654403736b59e09c32f60a7eacb568a5eafc9f..903d7b1ec66243df449dedd7ba8421af735915e5 100644 |
--- a/webrtc/modules/video_processing/util/denoiser_filter_sse2.cc |
+++ b/webrtc/modules/video_processing/util/denoiser_filter_sse2.cc |
@@ -47,7 +47,7 @@ static void Get8x8varSse2(const uint8_t* src, |
vsum = _mm_add_epi16(vsum, _mm_srli_si128(vsum, 8)); |
vsum = _mm_add_epi16(vsum, _mm_srli_si128(vsum, 4)); |
vsum = _mm_add_epi16(vsum, _mm_srli_si128(vsum, 2)); |
- *sum = static_cast<int>(_mm_extract_epi16(vsum, 0)); |
+ *sum = static_cast<int16_t>(_mm_extract_epi16(vsum, 0)); |
// sse |
vsse = _mm_add_epi32(vsse, _mm_srli_si128(vsse, 8)); |
@@ -62,7 +62,7 @@ static void VarianceSSE2(const unsigned char* src, |
int w, |
int h, |
uint32_t* sse, |
- uint32_t* sum, |
+ int64_t* sum, |
int block_size) { |
*sse = 0; |
*sum = 0; |
@@ -126,9 +126,9 @@ uint32_t DenoiserFilterSSE2::Variance16x8(const uint8_t* src, |
int src_stride, |
const uint8_t* ref, |
int ref_stride, |
- unsigned int* sse) { |
- uint32_t sum = 0; |
- VarianceSSE2(src, src_stride, ref, ref_stride, 16, 8, sse, &sum, 8); |
+ uint32_t* sse) { |
+ int64_t sum = 0; |
+ VarianceSSE2(src, src_stride << 1, ref, ref_stride << 1, 16, 8, sse, &sum, 8); |
return *sse - ((sum * sum) >> 7); |
} |