[FFmpeg-devel] [PATCH] Add 128 bit murmur3 hash function.
Michael Niedermayer
michaelni at gmx.at
Sat May 11 21:21:22 CEST 2013
On Fri, May 10, 2013 at 08:05:18AM +0200, Reimar Döffinger wrote:
> On 10.05.2013, at 04:14, Michael Niedermayer <michaelni at gmx.at> wrote:
> >> +{
> >> + uint64_t k = get_k1(src);
> >> + k ^= c->h1;
> >> + k = ROT(k, 27);
> >> + k += c->h2;
> >> + k *= 5;
> >> + k += 0x52dce729;
> >> + c->h1 = k;
> >> +
> >> + k = get_k2(src);
> >> + k ^= c->h2;
> >> + k = ROT(k, 31);
> >> + k += c->h1;
> >> + k *= 5;
> >> + k += 0x38495ab5;
> >> + c->h2 = k;
> >> +}
> >
> > interleaving the operations a bit might improve performance
>
> How?
what i had in mind was something like this:
(note, i dont know at all if its faster)
uint64_t k1 = get_k1(src);
uint64_t k2 = get_k2(src);
k1 ^= c->h1;
k2 ^= c->h2;
k1 = ROT(k1, 27);
k2 = ROT(k2, 31);
k1 += D;
k2 += C;
k1 += c->h2;
c->h1 = 5 * k1;
k2 += c->h1;
c->h2 = 5 * k2;
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
The educated differ from the uneducated as much as the living from the
dead. -- Aristotle
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20130511/c7b72b32/attachment.asc>
More information about the ffmpeg-devel
mailing list