• Paul Wilkins's avatar
    Modified mode skip functionality. · 4f660cc0
    Paul Wilkins authored
    A previous speed feature skipped modes not used in earlier
    partitions but this not longer worked as intended following
    changes to the partition coding order and in conjunction
    with some other speed features (Especially speed 2 and above).
    
    This modified mode skip feature sets a mask after the first X
    modes have been tested in each partition depending on the
    reference frame of the current best case.
    
    This patch also makes some changes to the order modes are
    tested to fit better with this skip functionality.
    
    Initial testing suggests speed and rd hit count improvements
    of up to 20% at speed 1. Quality results. (derf -1.9%, std hd  +0.23%).
    
    Change-Id: Idd8efa656cbc0c28f06d09690984c1f18b1115e1
    4f660cc0
md5_utils.h 1.33 KiB
/*
 * This is the header file for the MD5 message-digest algorithm.
 * The algorithm is due to Ron Rivest.  This code was
 * written by Colin Plumb in 1993, no copyright is claimed.
 * This code is in the public domain; do with it what you wish.
 * Equivalent code is available from RSA Data Security, Inc.
 * This code has been tested against that, and is equivalent,
 * except that you don't need to include two pages of legalese
 * with every copy.
 * To compute the message digest of a chunk of bytes, declare an
 * MD5Context structure, pass it to MD5Init, call MD5Update as
 * needed on buffers full of bytes, and then call MD5Final, which
 * will fill a supplied 16-byte array with the digest.
 * Changed so as no longer to depend on Colin Plumb's `usual.h'
 * header definitions
 *  - Ian Jackson <ian@chiark.greenend.org.uk>.
 * Still in the public domain.
#ifndef MD5_H
#define MD5_H
#define md5byte unsigned char
#define UWORD32 unsigned int
typedef struct MD5Context MD5Context;
struct MD5Context
    UWORD32 buf[4];
    UWORD32 bytes[2];
    UWORD32 in[16];
void MD5Init(struct MD5Context *context);
void MD5Update(struct MD5Context *context, md5byte const *buf, unsigned len);
void MD5Final(unsigned char digest[16], struct MD5Context *context);
void MD5Transform(UWORD32 buf[4], UWORD32 const in[16]);
#endif /* !MD5_H */