tools: fix "unused-but-set" warning

Remove unused pad variable.
Efficient coding of the top-level block size (32x32 and first 16x16 block)
Efficient coding of the remaining block size information
Adds "safe" OD_COPY(), OD_MOVE() and OD_CLEAR() macros.

The only two non-binary-bitexact changes are in mcenc.c:

memcpy(est->refine_grid[0], state->mv_grid[0],
 sizeof(**state->mv_grid)*(nhmvbs + 1)*(nvmvbs + 1));
because of the order of the multiplications

memmove(mv->mvs + 1, mv->mvs + 0, sizeof(mv->mvs[0]) << 1);
because of the << 1 instead of *2.
examples: fix "ignoring return value" warnings
Adding BD-rate script to compare two RD-curves.
Updating qr.c and qr.h with correct copyright year.
Adding support for multiple block sizes to tools.
remove unused assignments
PVQ dead code removeal + 16x16 implementation

Straight-up removal of PVQ code form old implementation with similar naming that
never gets called.
Implementation of 16x16 PVQ.

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
Remove OD_MC_USEV option from encoder.

The first step in removing CGI support.
This just deletes the encoder option and all the code in mcenc that
 was enabled by it.
Remove OD_MC_USEB option from encoder.

If we no longer have USEV, then we can hard-code USEB to set, and
 don't need the flag.
Remove edge type from dynamic programming decisions.

Since the encoder will never mark edges as type V, we don't need
 all the logic to handle different edge types when doing MV
 refinement.
Remove #if 0'd code from MV estimation.

This block didn't even respect the (now removed) USEB and USEV
 flags, so it probably hadn't been run since 2006.
I don't remember what the alternate version was for, but it's
 probably not worth maintaining going forward, and revision control
 will remember it for us forever.
Remove the MV interpolation functions.

Since our MVs are now all fixed over the size of a block, we don't
 need to bilinearly interpolate them.
Adding the cfl_stats tool.
Factor out od_ec_dec_refill().

The same functionality was being used in two different places.
This factors it out.
The result is fully inlined by the compiler and in fact at least
 for LLVM the resulting object file is instruction-by-instruction
 identical.

Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
Enable PVQ by default.
Adding serial option to encoder_example.
Replace 4x8 lapping filter with a V matrix with a determinant of one.

The prior factorizations give perfect reconstruction in only the forward
 direction: post(pre(image)) = image, but are not sufficient to make
 prediction for static scenes instantly convergent.
For that we need pre(post(image)) = image as well, which can be achieved by
 having a determinant of one.

Also retrains the intra-predictors.

           RATE     DSNR
    PSNR 0.100519 -0.00655229
 PSNRHVS -2.65647 0.18569
    SSIM -1.54896 0.0565649
FASTSSIM -2.46346 0.0615487