mirror of
https://chromium.googlesource.com/libyuv/libyuv
synced 2026-01-01 03:12:16 +08:00
Reduce HammingDistance block size to 32k to avoid overflow
Bug: libyuv:701 Test: HammingDistance unittest with large size Change-Id: Id41a2c27eb8922d03b3a21dab32fa2e7b015ba38 Reviewed-on: https://chromium-review.googlesource.com/708335 Reviewed-by: Cheng Wang <wangcheng@google.com> Commit-Queue: Frank Barchard <fbarchard@google.com>
This commit is contained in:
parent
60f433fbd9
commit
e23b27d040
@ -110,11 +110,14 @@ uint32 ARGBDetect(const uint8* argb, int stride_argb, int width, int height) {
|
||||
return fourcc;
|
||||
}
|
||||
|
||||
// NEON version accumulates in 16 bit shorts which overflow at 65536 bytes.
|
||||
// So actual maximum is 1 less loop, which is 64436 - 32 bytes.
|
||||
|
||||
LIBYUV_API
|
||||
uint64 ComputeHammingDistance(const uint8* src_a,
|
||||
const uint8* src_b,
|
||||
int count) {
|
||||
const int kBlockSize = 65536;
|
||||
const int kBlockSize = 1 << 15; // 32768;
|
||||
const int kSimdSize = 64;
|
||||
// SIMD for multiple of 64, and C for remainder
|
||||
int remainder = count & (kBlockSize - 1) & ~(kSimdSize - 1);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user