Add support for VC++2013

Change-Id: I5f979135d371c3fc7b9485e29479f112baa5fa3b
Disable avx/avx2 for Visual Studio 2010

VS2010 only supports avx. There is currently no avx code
in libvpx so don't create a special case for it.

Change-Id: I39a11410367712b98bc6122c5a42fabffcdb94cf
vpxenc: add --aq-mode flag to control adaptive quantization

Change-Id: I2a08c00e8576099abc84b6ef05cb3567426e29cf
Fix decoder mismatch with ssse3 enabled

This patch fixed issue 661: "Decoder produces mismatched outputs
with ssse3 enabled and disabled." In sub-pixel filters, a pixel
value was multiplied by a filter coefficient, and the results
were added up. The order of adding up these multiplications had to
be arranged carefully to prevent incorrect overflowing.

Change-Id: Ia78663dfe74a2d46900f1c6fb07c21fac273892f
Fix stack pointer in sub-pixel filters

In commit "3d50da5397d20abc932d81453b26cde758293a40", the stack
pointer was modified while aligning the stack, and it needed to
be pop out at the end.

Change-Id: I39e4adc6b8aa3379854dd264d41aa6f0f15c7953
Take out assertion from inverse transforms

Separate the rounding and right shift operations of forward transform
from those of inverse transform. Take out the assertion check from
inverse transforms. If the transform coefficients were constructed to
cause intermediate steps of inverse transform overflow, the codec will
just let it overflow without breaking the decoding flow.

Change-Id: Ia7ce15dfd1a73b4abbaa78cbc74ec718523c5b1b
Correct ssse3 8/16-pixel wide sub-pixel filter calculation

Although no mismatch was indicated for 8/16 wide sub-pixel filters
in issue 661, they had similar problems that could cause mismatch
potentially. This patch fixed calculations in HORIZx8/16
and VERTx8/16.

Change-Id: Ib85412d690bea5609a51f0e50e7c858406b8ff9e
improve vp9_idct32x32_34(x1.472)&1024(x1.032)_add_sse2

vp9_idct32x32_34_add_sse2:
speedup: 1.472
IDCT32_1D_34 and MULTIPLICATION_AND_ADD_2 are optimized
based on the fact that Only upper-left 8x8 has
non-zero values.

vp9_idct32x32_1024_add_sse2:
speedup: 1.032

Tested with: park_joy_420_720p50.y4m

Change-Id: I8670ce547552b48695049de298e2fc46ce28dfbc
Merge tx selection into RD calculation

Change-Id: I406021e34b31b899202a99b39d3da4fa06ebee69
Simplify super_block_yrd()

Change-Id: Iae16644faeed920e69cd5d1db71e2e1e4bda241c
Moving token-encoding related stuff from common to encoder.

Change-Id: I0e59d320407b3bed0ba3622a7b29975f6fad7ebf
Moving reaster_block_offset{,_int16} from vp9_blockd.h to vp9_rdopt.h.

Change-Id: I5a5888d4639cc6b7eb266be47581dd15ba08c91e
Simplify mask checking in loop filters

Considering a horizontal edge, if mask_16x16 is 1 for an even-
indexed 8x8 block, then mask_16x16 is 1 for next 8x8 block in
same row. Similiar to a verticle edge, if mask_16x16 is 1 for
an even-rowed 8x8 block, then mask_16x16 is 1 for the 8x8 block
right below it in next raw. Based on that, the mask_16x16 checking
can be simplified to save cycles. The corresponding 8-pixel
vp9_mb_lpf_horizontal_edge code can also be removed.

Change-Id: Ic3fe7a5674322239208cbe2731dc3216ce2084f3
Merge "Merge tx selection into RD calculation"
Merge "Simplify super_block_yrd()"
Merge "Moving reaster_block_offset{,_int16} from vp9_blockd.h to vp9_rdopt.h."
Merge "Moving token-encoding related stuff from common to encoder."
Fix bug in extend_frame chroma extended too far

This fixes issue 667.

In the case where the frame was an odd number of pixels
wide or high, the border was being extended by one col
or row too far.

The calculation of color plane dimensions was modified
to use those already computed at the time the frame
buffer was allocated.

Also freed the temporary scaling buffer in vpxdec to
prevent a memory leak.

Change-Id: I195bc81d84c0fc5d8260c1232200d62399e4b51f
Merge branch 'forest'

Bookkeeping. master already contains everything
in forest.

Change-Id: I1471064eef341411c6ed0c9e855fce18cff12ebc
Merge "Simplify mask checking in loop filters"