• Ronald S. Bultje's avatar
    Superblock coding. · 5d4cffb3
    Ronald S. Bultje authored
    This commit adds a pick_sb_mode() function which selects the best 32x32
    superblock coding mode. Then it selects the best per-MB modes, compares
    the two and encodes that in the bitstream.
    
    The bitstream coding is rather simplistic right now. At the SB level,
    we code a bit to indicate whether this block uses SB-coding (32x32
    prediction) or MB-coding (anything else), and then we follow with the
    actual modes. This could and should be modified in the future, but is
    omitted from this commit because it will likely involve reorganizing
    much more code rather than just adding SB coding, so it's better to let
    that be judged on its own merits.
    
    Gains on derf: about even, YT/HD: +0.75%, STD/HD: +1.5%.
    
    Change-Id: Iae313a7cbd8f75b3c66d04a68b991cb096eaaba6
    5d4cffb3
md5_utils.h 1.32 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 */