Moving from int_mv to MV.

Converting vp9_mv_bit_cost, mv_err_cost, and mvsad_err_cost
functions for now.

Change-Id: I60e3cc20daef773c2adf9a18e30bc85b1c2eb211
Adding best_mv[2] array instead of two variables.

Change-Id: I584fe50f73879f6a72fada45714ef80893b6d549
Calculate rd cost per transformed block

This commit makes the rate-distortion optimization loop evaluate
the rd costs of regular quantization and all zero coeffs, per
transformed block. It improves speed 1 compression performance:

derf: 0.245%
yt:   0.515%

For a large partition that consists multiple transformed blocks,
this allows more flexibility to selectively force a portion of
them coded as all zero coeffs, as well be continued in the next
patches.

Change-Id: I211518be4179747b57375696f017d1160cc91851
Enable per transformed block zero coeffs forcing

This commit enables forcing all coefficients zero per transformed
block, when its rate-distortion cost is lower than regular coeff
quantization.

The overall performance improvement (including its parent patch on
calculating rd cost per transformed block) at speed 1:
derf:  0.298%
yt:    0.452%
hd:    0.741%
stdhd: 0.006%

Change-Id: I66005fe0fd7af192c3eba32e02fd6d77952accb5
Remove redundant mode update in sub8x8 decoding

The probability model used to code prediction mode is conditioned
on the immediate above and left 8x8 blocks' prediction modes. When
the above/left block is coded in sub8x8 mode, we use the prediction
mode of the bottom-right sub8x8 block as the reference to generate
the context.

This commit moves the update of mbmi.mode out of the sub8x8 decoding
loop, hence removing redundant update steps and keeping the bottom-
right block's mode for the decoding process of next blocks.

Change-Id: I1e8d749684d201c1a1151697621efa5d569218b6
Number of instructions in fdct4_1d_sse2 reduced by two.

Mathematically the results are the same.

Change-Id: I1c5126cd3ca64e8515ca6331e0989c6f7dd651a0
Change to prevent invalid memory access

After change of MI context storage , mi_8x8[]  pointer may be null for
a block outside of image border. The commit changes to access the data
only after validation of mi_row and mi_col.

Change-Id: I039c4eb486a228ea9d8e5f35ab9ae6717d718bf3
Merge "Number of instructions in fdct4_1d_sse2 reduced by two."
Small tweak in the constant quality parameter

Improves results a little.

Change-Id: I7bcac02dbb65b43a993445cf557c520197114e5c
Merge "Calculate rd cost per transformed block"
Merge "Enable per transformed block zero coeffs forcing"
vpxenc: Stop writing the WebM FrameRate element.

The FrameRate element has been deprecated.

Change-Id: I68ac496e7b33685a100a45d2772e0ff30eb6a811
Merge "vpxenc: Stop writing the WebM FrameRate element."
Merge "Small tweak in the constant quality parameter"
Merge "Adding best_mv[2] array instead of two variables."
Merge "Change to prevent invalid memory access"
Prevent using uninitialized value in RD decision

INT64_MAX may be assigned as RDCOST when RDCSOST computation is skipped
for speed, this commit to prevent INT64_MAX from being used as real
RDCOST in transform size decision.

Change-Id: I89a945134191bbdea1f1431ade70424ac079eaac
Rename defined constants

The change is to better reflect the nature of the constants.

Change-Id: Icabac6e9bceefbdb3f03f8218f88ef75943c30fb
Replace memcpy with vpx_memcpy

Also removed obselete comment

Change-Id: Iae1664777d76383639c637ee786e0d50fc45819a
Merge "Replace memcpy with vpx_memcpy"