Adler-32算法使用Neon优化

1、简单实现

下面代码是Adler-32算法的简单实现,我们来整理一下这段代码的逻辑:

A = 1 + D1 + D2 + ... + Dn (mod 65521)

B = (1 + D1) + (1 + D1 + D2) + ... + (1 + D1 + D2 + ... + Dn) (mod 65521)
  = nxD1 + (n-1) x D2 + (n-2) x D3 + ... + Dn + n (mod 65521)

Adler-32(D) = (B x 65536) + A

看到这个公式相信大家已经有了思路,对于A的计算很简单简单的相加,对于B的相加需要一个系数

const uint32_t MOD_ADLER = 65521;

uint32_t adler32(unsigned char *data

你可能感兴趣的:(性能优化,arm开发,算法)