Improve vp9_idct4x4_1_add_sse2

Simple modification to reduce number of cycles in the
function.
Original function number of cycles: 973
Modified function number of cycles: 835
Improvment factor: 1.165

Tested with: park_joy_420_720p50.y4m

Change-Id: Ic5857272ea3aafe21d5ef9a69258d78c688f69bd
Added optimized vp9_idct32x32_34_add_dspr2

Change-Id: I2ba9467525b87a8e4a58f0c546e63031b4e38a4e
Localizing NEARESTMV special cases in the code.

Removing special case handling from vp9_tree_probs_from_distribution(),
tree_merge_probs(), and vp9_tokens_from_tree_offset() functions. Replacing
inter_mode_offset() function with macro INTER_OFFSET which is used now for
vp9_inter_mode_tree definition.

Change-Id: Iff75a1499d460beb949ece543389c8754deaf178
Cleaning up read_mv_probs() function.

Change-Id: I7a1e88b5977076e22736c0d6af1d4dcc19d39a6a
Adding read_reference_mode() function.

Change-Id: I517ad7e1a48910f0d2e95feacd23f143d28b42d6
Using max_tx_size instead of bsize when possible.

Change-Id: I246364bc4270ca13aefb4bc3445bcf102b3170dc
Cleaning up vp9_quantize_b_c() function.

Change-Id: I42c75530a8c9cff68480657f074131e6b60d9fca
Unifying tile decoding for both direct and inverse tile order.

Now tile decoding consists of two stages:
1. Find tile buffer start and its size, put this info into tile_buffers.
2. Decode each tile based on information from tile_buffers.

It seems that stage 1 can also be reused by multithreaded tile decoder.

Change-Id: If0cdaefdd6d10bb41c63561346c9ae4cfac081dd
Removed unused rate parameter.

Change-Id: I6e4a266fdbad1d222eb45d45b67bbb82d091821a
Remove TEXTREL from 32bit encoder

This patch fixed the issue reported in "Issue 655: remove textrel's
from 32-bit vp9 encoder". The set of vp9_subpel_variance functions
that used x86inc.asm ABI didn't build correctly for 32bit PIC. The
fix was carefully done under the situation that there was not
enough registers.

After the change, we got
$ eu-findtextrel libvpx.so
eu-findtextrel: no text relocations reported in 'libvpx.so'

Change-Id: I1b176311dedaf48eaee0a1e777588043c97cea82
Replacing (raster_block >> tx_size) with (block >> (tx_size << 1)).

The new expression is much more logical than previous one. Surprisingly
both expressions give exactly the same set of dependent values
-- have_top, have_left, have_right -- in vp9_predict_intra_block.

Change-Id: I63eb1b592b8c37883b3a0dbb1f3daa271e446109
Merge "Removed unused rate parameter."
Merge "Remove TEXTREL from 32bit encoder"
Disable zeroblock forcing for lossless coding mode

This to make sure that prediction residue always get coded in lossless
mode.

This commit also fixed lossless unit test

Change-Id: I537726ee55328d4e4cf0a0196393a67e12bfcde1
Merge "Unifying tile decoding for both direct and inverse tile order."
Merge "Disable zeroblock forcing for lossless coding mode"
Improve loopfilter function

This patch continued the work done in "Rewrite loop_filter_info_n
struct"(commit:00dbd369c70270428d56da6d15ea5486fc821c52) to further
improve loopfilter function.

1. Instead of storing pointers to thresholds, store loopfilter
levels within 64x64 SB;
2. Since loopfilter levels are already calculated in setup_mask,
we don't need call build_lfi to look up them again. Just save
loopfilter levels in setup_mask.
3. Reorganized and simplified filter_block_plane().

Tests showed a ~0.8% decoder speedup.

Change-Id: I723c7779738bbc2afcb9afa2c6f78580ee6c3af7
Merge "Improve vp9_idct4x4_1_add_sse2"
Correct a couple of typos

Change-Id: Ic470c6c9ce27b615c9645b9cb0d67526417bc374
Optimizing set_contexts() function.

Inlining set_contexts_on_border() into set_contexts(). The only difference
is the additional check that "has_eob != 0" in addition to
"xd->mb_to_right_edge < 0" and "xd->mb_to_right_edge < 0". If has_eob == 0
then memset does the right thing and works faster.

Change-Id: I5206f767d729f758b14c667592b7034df4837d0e