Initial commit

Change-Id: I4712afb3912625e7aaccfa5160dcf78ee252f159
convert to ANSI-C
Fix UV plane ac/dc quantizer transposition

Typo caused incorrect quantizer to be used for UV blocks.

Change-Id: I26faad370a16ea5b35ae49396d17b8903602499e
Fix declaration after statement warning

Change-Id: I038a3d547ada367c85d99cdae202562d644f19e0
convert to plain-C

there were still some dandling local variables.
fix output loop for small height

the logic was broken in case of small height (1 macroblock row only).
add vc9+ makefile

nmake /F Makefile.vc9 cfg=release-static
    objdir=h:\projects\webp\repo\build\libwebp ARCH=x64

given that you are in x64 mode, this command will build libwebp in
the <objdir>\release-static

Change-Id: I42e1849f5cdb7638db3b79d3658e2852d3969cc2
for cross_compiling=yes to prevent executing any binary

this was causing problems with security softwares like Bit9

Change-Id: Id335ef3f8370cdeab77529be0559f2ee35fc14a1
use uintptr_t for casting pointers to ints

this is required on 32bit platforms
(and is the recommended way to do so, actually)

Change-Id: I8785be523e91a6ed2806612984b3830eab4da757
fix two numeric typos

Change-Id: I817bb424919f26c64475795935135ee8783486dd
fancy chroma upscaling

When FANCY_UPSCALING is defined, use a smoothing filter for upscaling
the U/V chroma fields. The filter used is a separable t[1 3 3 1] x [1 3 3 1]
filter. It can be easily changed in macros MIX_*.

The upscaling code reside on the thing shell between user and core
decoding (in webp.c), and not in the core decoder. As such, this smoothing
process can still be offloaded to GPU in some future and is not integral
part of the decoding process.

Coincidentaly: changed the way data is tranfered to user. For profile 2 (no
filtering), it used to be on a per-block basis. Now, for all profiles, we
emit rows of pixels (between 8 and 24 in height) when they are ready.
This makes the upscaling code much easier.

Will update the test vectors MD5 sums soon (as they'll be broken
after this change)

Change-Id: I2640ff12596cb8b843a4a376d7347447d9b9f778
Merge "fancy chroma upscaling"
fix signature of VP8StoreBlock

cygwin spotted that.

Change-Id: I24a0767b438b0937c5dbd85f8a6db1be8ab51e70
fix endian problem on PowerPC

not super-elegant, but should work without
having to go into deeper hacking (like: creating
an endian.h file, etc.)

Change-Id: I43100ec67a22393c87e11357078efffc750060f5
lot of cosmetics

just flushing the pile:
 - get rid of Put4 in dsp.c
 - move LD4 enum value
 - move more fields and code under the ONLY_KEYFRAME_CODE compile flag
 - update test_ref.ppm reference (now with FANCY_UPSCALER)
 - simplify VP8GetSignedValue()
 - use HE and VE naming for prediction mode instead of H and V
 - some missing c89 fixes
 - code style nits

all test vectors still passing
simplify the logic of GetCoeffs()

We only need to know _if_ there's some non-zero coeffs at all,
not the exact number of these.

+ code-style nits clean-up

Change-Id: Ice9acf00aef999d70affe4629cb56ae7709140ab
reset eof_ at construction time

not critical, but makes things sound

Change-Id: Ib013259924d38dca6f7521d7f1ab09ecc1d3b933
speed-up fancy upscaler

by processing two rows at a time.
The [9 3 3 1] weights are decomposed as
[1 1 1 1] + [0 2 2 0] + [8 0 0 0] for better
reuse of sub-expressions, too.

Change-Id: I87ab549048ed249d38add73bb3241dfa0c583328
dwebp: change -yuv option to -raw
change the layout to IMC2

This is easier visually
(cf http://www.fourcc.org/yuv.php#IMC2)

Change-Id: I8e8495908f98a392bf629d41f14eb7835ba027e1
table-less version of clip_8b()

added some dynamic range analysis too.

Change-Id: I76804adbfceccd83639c5821b4f0f5b9e7d6c82c