platform/upstream/libvpx.git
11 years agoDisable zeroblock forcing for lossless coding mode
Yaowu Xu [Fri, 8 Nov 2013 17:49:08 +0000 (09:49 -0800)]
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

11 years agoMerge "Remove TEXTREL from 32bit encoder"
Yunqing Wang [Fri, 8 Nov 2013 16:26:30 +0000 (08:26 -0800)]
Merge "Remove TEXTREL from 32bit encoder"

11 years agoMerge "Removed unused rate parameter."
Paul Wilkins [Fri, 8 Nov 2013 12:24:51 +0000 (04:24 -0800)]
Merge "Removed unused rate parameter."

11 years agoMerge "Add back vp9_short_idct32x32_1_add_neon which is deleted in cleanup I63df79a13...
hkuang [Thu, 7 Nov 2013 22:42:29 +0000 (14:42 -0800)]
Merge "Add back vp9_short_idct32x32_1_add_neon which is deleted in cleanup I63df79a13cf62aa2c9360a7a26933c100f9ebda3."

11 years agoRemove TEXTREL from 32bit encoder
Yunqing Wang [Wed, 6 Nov 2013 19:06:21 +0000 (11:06 -0800)]
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

11 years agoMerge "Fix the variable naming in encode_block"
Jingning Han [Thu, 7 Nov 2013 19:39:04 +0000 (11:39 -0800)]
Merge "Fix the variable naming in encode_block"

11 years agoMerge "Miscelleneous changes in detokenize for speed"
Deb Mukherjee [Thu, 7 Nov 2013 17:40:07 +0000 (09:40 -0800)]
Merge "Miscelleneous changes in detokenize for speed"

11 years agoMerge "disable avx/avx2 for old versions of MSVC"
Yaowu Xu [Thu, 7 Nov 2013 17:29:31 +0000 (09:29 -0800)]
Merge "disable avx/avx2 for old versions of MSVC"

11 years agoFix the variable naming in encode_block
Jingning Han [Wed, 6 Nov 2013 19:34:06 +0000 (11:34 -0800)]
Fix the variable naming in encode_block

The term x represents macroblock pointer across encode_block. Change
the two local variable names to avoid confusion.

Change-Id: Ic732e73023525d673c0a678ed2708ac1edf5a3f9

11 years agoRemoved unused rate parameter.
Paul Wilkins [Wed, 23 Oct 2013 14:10:59 +0000 (15:10 +0100)]
Removed unused rate parameter.

Change-Id: I6e4a266fdbad1d222eb45d45b67bbb82d091821a

11 years agoMerge "Move SVC per-frame loop from sample app into libvpx proper"
Ivan Maltz [Thu, 7 Nov 2013 01:24:05 +0000 (17:24 -0800)]
Merge "Move SVC per-frame loop from sample app into libvpx proper"

11 years agoMerge "Using pd->dqcoeff instead of pd->qcoeff in the decoder."
Dmitry Kovalev [Thu, 7 Nov 2013 00:59:57 +0000 (16:59 -0800)]
Merge "Using pd->dqcoeff instead of pd->qcoeff in the decoder."

11 years agoUsing pd->dqcoeff instead of pd->qcoeff in the decoder.
Dmitry Kovalev [Thu, 7 Nov 2013 00:14:45 +0000 (16:14 -0800)]
Using pd->dqcoeff instead of pd->qcoeff in the decoder.

It is more logical to use dqcoeff buffer to put there *dequantized*
transform coefficients (inside inverse_transform_block and
decode_coefs functions). Dequantization happens inside WRITE_COEF_CONTINUE
macro.

qcoeff buffer should be only used in the encoder for *quantized*
transform coefficients.

Change-Id: Ifd54bef272bbf5311ced6669c4f1079f998af5d7

11 years agoMove SVC per-frame loop from sample app into libvpx proper
Ivan Maltz [Wed, 23 Oct 2013 18:53:37 +0000 (11:53 -0700)]
Move SVC per-frame loop from sample app into libvpx proper

SVC multiple layer per frame encoding is invoked with vpx_svc_init and
vpx_svc_encode. These interfaces are designed to be invoked from ffmpeg.
Additional improvements:
- make dummy frame handling a bit more explicit
- fixed bug with single layer encodes
- track individual frame sizes and psnrs instead of averages
- parameterized quantizer, 16th scalefactors, more logging,
- enabled single layer encodes to generate baseline
- include new mode for 3 layer I frame with 5 total layers

Change-Id: I46cfa600d102e208c6af8acd6132e0cc25cda8d4

11 years agoMerge "Replacing mi_{width,height}_log2 with num_8x8_blocks_{wide,high}_lookup."
Dmitry Kovalev [Wed, 6 Nov 2013 22:18:33 +0000 (14:18 -0800)]
Merge "Replacing mi_{width,height}_log2 with num_8x8_blocks_{wide,high}_lookup."

11 years agoMerge "Allow test data path to be set by preprocessor symbol"
Joshua Litt [Wed, 6 Nov 2013 21:37:19 +0000 (13:37 -0800)]
Merge "Allow test data path to be set by preprocessor symbol"

11 years agoReplacing mi_{width,height}_log2 with num_8x8_blocks_{wide,high}_lookup.
Dmitry Kovalev [Wed, 6 Nov 2013 21:34:23 +0000 (13:34 -0800)]
Replacing mi_{width,height}_log2 with num_8x8_blocks_{wide,high}_lookup.

Change-Id: I04c55daef89bca2b85cb7db0850f9b052abc5a7c

11 years agoMerge "Removes stack allocation of token_cache"
Deb Mukherjee [Wed, 6 Nov 2013 21:12:47 +0000 (13:12 -0800)]
Merge "Removes stack allocation of token_cache"

11 years agoAllow test data path to be set by preprocessor symbol
Joshua Litt [Mon, 4 Nov 2013 21:47:30 +0000 (13:47 -0800)]
Allow test data path to be set by preprocessor symbol

Change-Id: I19c482c7cba34db574b3f33178ba20aede49779e

11 years agoMerge "Missing _ means no sse3 for vp9_h_predictor_32x32."
Yaowu Xu [Wed, 6 Nov 2013 21:04:28 +0000 (13:04 -0800)]
Merge "Missing _ means no sse3 for vp9_h_predictor_32x32."

11 years agodisable avx/avx2 for old versions of MSVC
Yaowu Xu [Tue, 5 Nov 2013 22:45:55 +0000 (14:45 -0800)]
disable avx/avx2 for old versions of MSVC

Change-Id: Ifb40757c9c6b353482cfeef929af282ee0136c6c

11 years agoRemoves stack allocation of token_cache
Deb Mukherjee [Tue, 5 Nov 2013 19:19:27 +0000 (11:19 -0800)]
Removes stack allocation of token_cache

Removes stack-allocation of token_cache in the tokenize
function in the encoder.

Change-Id: Ifdbab76dc2b23384da0080d2e9390533e489db8c

11 years agowebmenc: Clean up the truly egregious style issues.
Tom Finegan [Wed, 6 Nov 2013 18:02:31 +0000 (10:02 -0800)]
webmenc: Clean up the truly egregious style issues.

I'm sure I could do more, but I don't know how long this code has to
live. I think this at least makes the code a little easier to read and
understand.

Change-Id: I6ca76357f89468d4851a3d1826e7aefa498e51d1

11 years agoMerge "Move WebM writing support out of vpxenc.c."
Tom Finegan [Wed, 6 Nov 2013 19:30:25 +0000 (11:30 -0800)]
Merge "Move WebM writing support out of vpxenc.c."

11 years agoMerge "optimize decode_bool operation"
Yaowu Xu [Wed, 6 Nov 2013 18:25:52 +0000 (10:25 -0800)]
Merge "optimize decode_bool operation"

11 years agoMove WebM writing support out of vpxenc.c.
Tom Finegan [Tue, 5 Nov 2013 18:02:18 +0000 (10:02 -0800)]
Move WebM writing support out of vpxenc.c.

This is mainly a clean up patchset. It moves the WebM writing support
out of vpxenc and into its own source file. Changes to tools_common and
vpxdec result from relocation of shared bits of code.

Change-Id: Iee55d3285f56e0a548f791094fb14c5ac5346a26

11 years agoMissing _ means no sse3 for vp9_h_predictor_32x32.
Paul Wilkins [Wed, 6 Nov 2013 13:57:55 +0000 (13:57 +0000)]
Missing _ means no sse3 for vp9_h_predictor_32x32.

Error in script means vp9_h_predictor_32x32 sse3 version
is not enabled.

Change-Id: Ia43672740da1ecdfb7fcd420490ef424b04accc4

11 years agoSimply a macro
Yaowu Xu [Wed, 6 Nov 2013 01:13:00 +0000 (17:13 -0800)]
Simply a macro

Change-Id: I1c0c1b92aab33b1e4321b8e584a934fe58e0b324

11 years agoAdd back vp9_short_idct32x32_1_add_neon which is deleted in
hkuang [Thu, 31 Oct 2013 17:06:23 +0000 (10:06 -0700)]
Add back vp9_short_idct32x32_1_add_neon which is deleted in
cleanup I63df79a13cf62aa2c9360a7a26933c100f9ebda3.

Change-Id: I034848cf05031618818f7df2e7f9c35102686948

11 years agoMerge "Removing old code."
Dmitry Kovalev [Tue, 5 Nov 2013 22:28:43 +0000 (14:28 -0800)]
Merge "Removing old code."

11 years agoMerge "Fixes to buffer update for temporal layers."
Marco Paniconi [Tue, 5 Nov 2013 19:09:08 +0000 (11:09 -0800)]
Merge "Fixes to buffer update for temporal layers."

11 years agoMerge "Unified approach for backward probability update."
Dmitry Kovalev [Tue, 5 Nov 2013 18:59:04 +0000 (10:59 -0800)]
Merge "Unified approach for backward probability update."

11 years agoMiscelleneous changes in detokenize for speed
Deb Mukherjee [Fri, 1 Nov 2013 23:01:52 +0000 (16:01 -0700)]
Miscelleneous changes in detokenize for speed

Changes to reduce branching in detokenization  in order
to improve decode speed.

Change-Id: I23a74d072cc14d99f6fc054c1e6a72021e777903

11 years agotoken_cache changes in decoder
Deb Mukherjee [Tue, 5 Nov 2013 00:34:18 +0000 (16:34 -0800)]
token_cache changes in decoder

Removes stack-alocation of token_cache in decode_coefs function

Seems to achieve about 1% decode speed improvement as tested on
25 480p videos.

Change-Id: I8e7eb3361fa09d9654dfad0677a6d606701fdc6e

11 years agoMerge "Remove one shot q experiment"
Deb Mukherjee [Tue, 5 Nov 2013 17:29:31 +0000 (09:29 -0800)]
Merge "Remove one shot q experiment"

11 years agoMerge "Fix the use case of plane_block_idx in sub8x8 RD"
Jingning Han [Tue, 5 Nov 2013 17:27:05 +0000 (09:27 -0800)]
Merge "Fix the use case of plane_block_idx in sub8x8 RD"

11 years agoMerge "Avoid mv cost check for invalid mv values"
Jingning Han [Tue, 5 Nov 2013 17:01:05 +0000 (09:01 -0800)]
Merge "Avoid mv cost check for invalid mv values"

11 years agoMerge "Remove unused members from VP9_COMP"
Adrian Grange [Tue, 5 Nov 2013 15:45:03 +0000 (07:45 -0800)]
Merge "Remove unused members from VP9_COMP"

11 years agoAvoid mv cost check for invalid mv values
Jingning Han [Tue, 5 Nov 2013 02:45:45 +0000 (18:45 -0800)]
Avoid mv cost check for invalid mv values

The compound inter prediction could potentially run with initial
motion vectors of invalid value and check the mv_cost, which triggers
overheap read. This commit resolves this issue by forcing a motion
vector value check for compound inter modes of both superblock and
sub8x8 block sizes.

Change-Id: I4f4fc19ce83c8272782bc382f12c82a3f03212fc

11 years agooptimize decode_bool operation
Yaowu Xu [Mon, 4 Nov 2013 22:56:37 +0000 (14:56 -0800)]
optimize decode_bool operation

Change-Id: I7fe44633d29046ddd38c88c00e8520d27ac748bf

11 years agoRemoving old code.
Dmitry Kovalev [Tue, 5 Nov 2013 00:38:15 +0000 (16:38 -0800)]
Removing old code.

Change-Id: Ie05cc5e2d8ce12eacdf482a8b75e5a6ce6f59f57

11 years agoUnified approach for backward probability update.
Dmitry Kovalev [Tue, 5 Nov 2013 00:12:29 +0000 (16:12 -0800)]
Unified approach for backward probability update.

Replacing update_mode_probs() and adapt_probs() with tree_merge_probs().

Change-Id: I50b2c968d67c9265f5216c700cbeba25fb014654

11 years agoSplitting partition_probs array into two arrays.
Dmitry Kovalev [Sat, 2 Nov 2013 01:23:06 +0000 (18:23 -0700)]
Splitting partition_probs array into two arrays.

We only update partition_probs for inter frames but they are constant
for key frames. It is not necessary to have constants inside frame
context and copy them every time. This change reduces FRAME_CONTEXT size
by at least 48 bytes.

Change-Id: If70a53be51043f37fe7d113853217937710932a7

11 years agoRemove unused members from VP9_COMP
Adrian Grange [Mon, 4 Nov 2013 20:17:54 +0000 (12:17 -0800)]
Remove unused members from VP9_COMP

Removed:
goldfreq, avg_encode_time, avg_pick_mode_time,
cpu_freq, interquantizer
member variables from VP9_COMP since they are no longer
used in the code.

Change-Id: I010a82c217d0da03c3f53d1858d3462190c12dcf

11 years agoMerge "Remove unused member variables from VP9_COMP"
Adrian Grange [Mon, 4 Nov 2013 19:39:23 +0000 (11:39 -0800)]
Merge "Remove unused member variables from VP9_COMP"

11 years agoMerge "Removing 'new' probability calculation from convert_distribution()."
Dmitry Kovalev [Mon, 4 Nov 2013 19:14:58 +0000 (11:14 -0800)]
Merge "Removing 'new' probability calculation from convert_distribution()."

11 years agoRemove unused member variables from VP9_COMP
Adrian Grange [Mon, 4 Nov 2013 19:01:43 +0000 (11:01 -0800)]
Remove unused member variables from VP9_COMP

Removed three members from the VP9_COMP data structure:
inter_zz_count, gf_bad_count, gf_update_recommended.

These were part of the VP8 real-time mode implementation
that was removed from the initial VP9 codecbase.

Change-Id: I866b083b88ef02c74837277d50ce532ca88492f3

11 years agoMerge "Add second ref frame check back in rdcost hist"
Jingning Han [Sun, 3 Nov 2013 23:17:08 +0000 (15:17 -0800)]
Merge "Add second ref frame check back in rdcost hist"

11 years agoFix the use case of plane_block_idx in sub8x8 RD
Jingning Han [Sun, 3 Nov 2013 19:16:38 +0000 (11:16 -0800)]
Fix the use case of plane_block_idx in sub8x8 RD

This commit fixes the use case of plane_block_idx, which determines
the plane (Y/U/V) index based on block index. When block idx >= 4 in
sub8x8 block loop, it should be of chroma components.

Change-Id: I072705aa7b35445524ac607089ca8ce54b7ba478

11 years agoAdd second ref frame check back in rdcost hist
Jingning Han [Sun, 3 Nov 2013 17:14:46 +0000 (09:14 -0800)]
Add second ref frame check back in rdcost hist

Update best_inter_rd and best_inter_ref_frame only in single ref
frame case.

Change-Id: Id56825b231a62d6852bd83811410c05a7569f715

11 years agoMerge "vp9 ssse3 d207_predictor_32x32: add missing GLOBAL()"
James Zern [Sat, 2 Nov 2013 19:25:47 +0000 (12:25 -0700)]
Merge "vp9 ssse3 d207_predictor_32x32: add missing GLOBAL()"

11 years agovp9 ssse3 d207_predictor_32x32: add missing GLOBAL()
James Zern [Sat, 2 Nov 2013 03:33:22 +0000 (20:33 -0700)]
vp9 ssse3 d207_predictor_32x32: add missing GLOBAL()

removes a textrel for sh_b23456789abcdefff

Change-Id: I80cb9dfd8e49a0fe884c8ff76472275b3a00cb57

11 years agoRemoving 'new' probability calculation from convert_distribution().
Dmitry Kovalev [Fri, 1 Nov 2013 22:09:43 +0000 (15:09 -0700)]
Removing 'new' probability calculation from convert_distribution().

We don't have to calculate 'new' probability in convert_distribution()
because it is enough to calculate only 'new' counters which could be used
to calculate probability if necessary. That's why removing a lot of unused
temporary probability arrays and reducing number of get_binary_prob()
calls.

Change-Id: I4e14eb7203d1ace61bbddefd6b9b6326be83ba63

11 years agoMerge "Convert filter kernel choice to lookup"
Yaowu Xu [Fri, 1 Nov 2013 20:43:09 +0000 (13:43 -0700)]
Merge "Convert filter kernel choice to lookup"

11 years agoConvert filter kernel choice to lookup
Yaowu Xu [Fri, 1 Nov 2013 16:40:20 +0000 (09:40 -0700)]
Convert filter kernel choice to lookup

Also removed unused declaration related 6 tap filter

Change-Id: Ic17f516141d885157918505f4204081e4c951fad

11 years agoFixes to buffer update for temporal layers.
Marco Paniconi [Fri, 1 Nov 2013 18:03:03 +0000 (11:03 -0700)]
Fixes to buffer update for temporal layers.

When a frame is dropped due to |buffer_level| < 0 for a given temporal layer,
the buffer level for the upper temporal layers was not updated (in calc_pframe_target_size()).
This change fixes that.

Also, use the layer per-frame-bandwidth for updating the buffer level
of the higher layers when a frame is dropped.

Change-Id: I660c23f3229b47e9d124a950b480314b4307c5a8

11 years agoMerge "Cleanup. Adding const to function pointer arguments."
Dmitry Kovalev [Fri, 1 Nov 2013 17:57:03 +0000 (10:57 -0700)]
Merge "Cleanup. Adding const to function pointer arguments."

11 years agoMerge "Cleaning up read_skip_coeff() function."
Dmitry Kovalev [Fri, 1 Nov 2013 17:56:55 +0000 (10:56 -0700)]
Merge "Cleaning up read_skip_coeff() function."

11 years agoTwo optimizations:
Yaowu Xu [Fri, 1 Nov 2013 14:24:07 +0000 (07:24 -0700)]
Two optimizations:

1. Reduced the size memset based on eob for 32x32 transform. The reset
of non-zero coefficient should probably go into where they are read in
inverse transform functions. (TODO)
2. Removed a redundant level of indirection.
vp9_iht4x4_add() checks transform type and call vp9_iht4x4_16_add()
for tranforms other than DCT_DCT. In this case, the DCT_DCT case
has been already handled here.

Change-Id: Iacbc77da761f0b308df5acea0f20c9add9f33d20

11 years agoMerge "simplify read_coef_prob()"
Yaowu Xu [Fri, 1 Nov 2013 13:59:17 +0000 (06:59 -0700)]
Merge "simplify read_coef_prob()"

11 years agoMerge "Removing is_intra_mode() function."
Dmitry Kovalev [Fri, 1 Nov 2013 01:06:53 +0000 (18:06 -0700)]
Merge "Removing is_intra_mode() function."

11 years agosimplify read_coef_prob()
Yaowu Xu [Thu, 31 Oct 2013 01:06:42 +0000 (18:06 -0700)]
simplify read_coef_prob()

Change-Id: I529c634db4f81ba5386092c126f53312b1e51b2b

11 years agoCleaning up read_skip_coeff() function.
Dmitry Kovalev [Thu, 31 Oct 2013 21:53:18 +0000 (14:53 -0700)]
Cleaning up read_skip_coeff() function.

Making code easier to read and avoiding calculation of skip context twice.

Change-Id: I42c376b1a1811bc842bf6420bf81d2de7a1bf980

11 years agoMerge "Reducing the number of foreach_transformed_block() calls."
Dmitry Kovalev [Thu, 31 Oct 2013 21:34:47 +0000 (14:34 -0700)]
Merge "Reducing the number of foreach_transformed_block() calls."

11 years agoCleanup. Adding const to function pointer arguments.
Dmitry Kovalev [Thu, 31 Oct 2013 21:34:21 +0000 (14:34 -0700)]
Cleanup. Adding const to function pointer arguments.

Change-Id: I12c67c8c0fa1aa7fb3f7d6cc2ef65be29c4ea292

11 years agoReducing the number of foreach_transformed_block() calls.
Dmitry Kovalev [Thu, 31 Oct 2013 20:52:08 +0000 (13:52 -0700)]
Reducing the number of foreach_transformed_block() calls.

The change doesn't affect the bitstream. It changes the order or function
calls and affects how we reconstruct intra- and inter-blocks. Speed up is
about 1...1.5%.

For intra-blocks:
  Before:
    for each transform block read tokens
    for each transform block do prediction
    for each transform block do inverse transform
  Now:
    for each transform block
      read tokens
      do prediction
      do inverse transform

For inter-blocks:
  Before:
    for each transform block read tokens
    for each transform block do inverse transform
  Now:
    for each transform block
      read tokens
      do inverse transform

Change-Id: I12a79bf1aa5a18c351b8010369bd3ff1deae1570

11 years agoMerge "mb_lpf_horizontal_edge AVX2 optimization"
Yaowu Xu [Thu, 31 Oct 2013 17:43:57 +0000 (10:43 -0700)]
Merge "mb_lpf_horizontal_edge AVX2 optimization"

11 years agoMerge "Fix x_offset_q4/y_offset_q4 calculation"
Yunqing Wang [Thu, 31 Oct 2013 16:47:54 +0000 (09:47 -0700)]
Merge "Fix x_offset_q4/y_offset_q4 calculation"

11 years agomb_lpf_horizontal_edge AVX2 optimization
Tamar Levy [Wed, 30 Oct 2013 15:04:31 +0000 (09:04 -0600)]
mb_lpf_horizontal_edge AVX2 optimization

This CL contains two AVX2 optimized loop filter functions,
mb_lpf_horizontal_edge_w_avx2_8 and mb_lpf_horizontal_edge_w_avx2_16.

Change-Id: I604e4fe6e99752b7800c2ea98721d97f7e0b931b

11 years agoRemove one shot q experiment
Deb Mukherjee [Thu, 31 Oct 2013 07:20:55 +0000 (00:20 -0700)]
Remove one shot q experiment

The experiment is no longer used and can be removed.

Change-Id: I9feab378fc895c120aa375353c68f93cad090609

11 years agoUpdates to 1-pass:
Marco Paniconi [Tue, 22 Oct 2013 18:30:06 +0000 (11:30 -0700)]
Updates to 1-pass:

   -Don't reduce maxQ for gold/alt in CBR mode.

   -Fix to min/maxQ for first/initial key frame.

   -Add more speeds to datarate test and reduce the starting bitrate for test.

Change-Id: Id2a333d76dd3f6a51b322ca984588e2a22159c58

11 years agoMerge "Enable all-zero coeff block index for sub8x8 blk"
Jingning Han [Wed, 30 Oct 2013 23:00:57 +0000 (16:00 -0700)]
Merge "Enable all-zero coeff block index for sub8x8 blk"

11 years agoMerge "Reducing the number of recursive calls."
Dmitry Kovalev [Wed, 30 Oct 2013 22:14:18 +0000 (15:14 -0700)]
Merge "Reducing the number of recursive calls."

11 years agoReplacing (SWITCHABLE_FILTERS + 1) with SWITCHABLE_FILTER_CONTEXTS.
Dmitry Kovalev [Wed, 30 Oct 2013 21:40:34 +0000 (14:40 -0700)]
Replacing (SWITCHABLE_FILTERS + 1) with SWITCHABLE_FILTER_CONTEXTS.

Change-Id: I9781a62bc1a4cd9176554d1271d87dbcafda9cb0

11 years agoEnable all-zero coeff block index for sub8x8 blk
Jingning Han [Wed, 30 Oct 2013 20:52:55 +0000 (13:52 -0700)]
Enable all-zero coeff block index for sub8x8 blk

This commit makes zcoeff_blk cache the case where the entire block
is quantized to be zero (without applying zero-forcing) in the rate-
distortion optimization loop, and skip the forward DCT, quantization,
inverse DCT, and reconstruction process in the encode_block stage.

It now works for all the block sizes, including sub8x8 blocks.

Change-Id: I5ae60a9c436ba3637d11666733554bec4580ef98

11 years agoReducing the number of recursive calls.
Dmitry Kovalev [Wed, 30 Oct 2013 19:17:05 +0000 (12:17 -0700)]
Reducing the number of recursive calls.

Both decode_modes_sb and decode_modes_b had conditions to immediately
return at the beginning. Eliminating these conditions here and calling
these functions only to do a real work. Also unrolling loop for
PARTITION_SPLIT.

Change-Id: I2fc41cb74ac491f045a2f04fe68d30ff4aaa555d

11 years agovp9/decode: align tile worker data allocation
James Zern [Wed, 30 Oct 2013 07:33:09 +0000 (08:33 +0100)]
vp9/decode: align tile worker data allocation

fixes a crash in assembly on 32-bit linux/windows

Change-Id: I0c27e6c0ece9732b5eb2ee5b59ff42c3c8016c50

11 years agoMerge "vp9_decodframe.c: use vpx_memset instead of cast"
Johann [Wed, 30 Oct 2013 01:40:18 +0000 (18:40 -0700)]
Merge "vp9_decodframe.c: use vpx_memset instead of cast"

11 years agoMerge "idct_blk_mmx.c: use vpx_memset instead of cast"
Johann [Wed, 30 Oct 2013 01:40:01 +0000 (18:40 -0700)]
Merge "idct_blk_mmx.c: use vpx_memset instead of cast"

11 years agoMerge "decodframe.c: use vpx_memset instead of cast"
Johann [Wed, 30 Oct 2013 01:39:24 +0000 (18:39 -0700)]
Merge "decodframe.c: use vpx_memset instead of cast"

11 years agoMerge "threading.c: use vpx_memset instead of cast"
Johann [Wed, 30 Oct 2013 01:39:00 +0000 (18:39 -0700)]
Merge "threading.c: use vpx_memset instead of cast"

11 years agoMerge "idct_blk.c: use vpx_memset instead of cast"
Johann [Wed, 30 Oct 2013 01:38:20 +0000 (18:38 -0700)]
Merge "idct_blk.c: use vpx_memset instead of cast"

11 years agoFix x_offset_q4/y_offset_q4 calculation
Yunqing Wang [Tue, 29 Oct 2013 17:40:13 +0000 (10:40 -0700)]
Fix x_offset_q4/y_offset_q4 calculation

"<< SUBPEL_BITS" needs to be added in the calculation. Call
set_scaled_offsets() to calculate x_offset_q4 and y_offset_q4.

Change-Id: Ied130ea771510e918f51cd1dc3abe57f4c0962b5

11 years agoMerge "vp9: add multi-threaded tile decoder"
James Zern [Wed, 30 Oct 2013 00:44:22 +0000 (17:44 -0700)]
Merge "vp9: add multi-threaded tile decoder"

11 years agoMerge "vp9/decode: add get_tile()"
James Zern [Wed, 30 Oct 2013 00:34:56 +0000 (17:34 -0700)]
Merge "vp9/decode: add get_tile()"

11 years agovp9: add multi-threaded tile decoder
James Zern [Sat, 26 Oct 2013 12:33:45 +0000 (14:33 +0200)]
vp9: add multi-threaded tile decoder

tiles are decoded in parallel within a single frame

Change-Id: I7aca87cb1c239b74eceef72bdc9f672faebac373

11 years agovp9/decode: add get_tile()
James Zern [Mon, 28 Oct 2013 20:43:05 +0000 (21:43 +0100)]
vp9/decode: add get_tile()

factorizes the code in decode_tiles(). reading the offsets backwards
wasn't doing anything to prove tile independence

Change-Id: I0395d3c77205852ebdc55efedc68291e93cef85c

11 years agoMerge "Adding const to vp9_quantize_b_{32x32,} parameters."
Dmitry Kovalev [Tue, 29 Oct 2013 23:57:52 +0000 (16:57 -0700)]
Merge "Adding const to vp9_quantize_b_{32x32,} parameters."

11 years agoMerge "CL for adding AVX-AVX2 support in libvpx."
Erik Niemeyer [Tue, 29 Oct 2013 22:55:54 +0000 (15:55 -0700)]
Merge "CL for adding AVX-AVX2 support in libvpx."

11 years agoAdding const to vp9_quantize_b_{32x32,} parameters.
Dmitry Kovalev [Tue, 29 Oct 2013 22:25:19 +0000 (15:25 -0700)]
Adding const to vp9_quantize_b_{32x32,} parameters.

Change-Id: I56f8c50ac382202f66040cd9cfaa05d889572fc7

11 years agoCL for adding AVX-AVX2 support in libvpx.
Erik Niemeyer [Tue, 29 Oct 2013 15:48:12 +0000 (09:48 -0600)]
CL for adding AVX-AVX2 support in libvpx.

Change-Id: Idc03f3fca4bf2d0afd33631ea1d3caf8fc34ec29

11 years agoFixing clang warning.
Dmitry Kovalev [Tue, 29 Oct 2013 21:50:27 +0000 (14:50 -0700)]
Fixing clang warning.

Warning was: "implicit conversion from enumeration type 'VPX_SCALING_MODE'
(aka 'enum vpx_scaling_mode_1d') to different enumeration type
'VPX_SCALING'".

Change-Id: I45689e439a8775bc1e7534d0ea1ff7c729f2c7f5

11 years agoMerge "Fixing wrongly initialized tx_type variable."
Dmitry Kovalev [Tue, 29 Oct 2013 21:07:16 +0000 (14:07 -0700)]
Merge "Fixing wrongly initialized tx_type variable."

11 years agovp9_decodframe.c: use vpx_memset instead of cast
Johann [Tue, 29 Oct 2013 19:51:48 +0000 (12:51 -0700)]
vp9_decodframe.c: use vpx_memset instead of cast

Fix warning with -Wstrict-aliasing=1

Change-Id: Idfac09be1ab328923883e63436577f1018c895b8

11 years agoidct_blk_mmx.c: use vpx_memset instead of cast
Johann [Tue, 29 Oct 2013 19:16:26 +0000 (12:16 -0700)]
idct_blk_mmx.c: use vpx_memset instead of cast

Fix warning with -Wstrict-aliasing=1

Change-Id: Ic37013e6477cf213925830d0bd8e6f17364ff7cc

11 years agodecodframe.c: use vpx_memset instead of cast
Johann [Tue, 29 Oct 2013 19:05:27 +0000 (12:05 -0700)]
decodframe.c: use vpx_memset instead of cast

Fix warning with -Wstrict-aliasing=1

Change-Id: Ic4e511af924247800e87d5f990636565f3dd91d2

11 years agothreading.c: use vpx_memset instead of cast
Johann [Tue, 29 Oct 2013 18:59:56 +0000 (11:59 -0700)]
threading.c: use vpx_memset instead of cast

Fix warning with -Wstrict-aliasing=1

Change-Id: I43df2781656dd7b3f4c0ec6daa283d7a78928a0c

11 years agoidct_blk.c: use vpx_memset instead of cast
Johann [Tue, 29 Oct 2013 18:27:58 +0000 (11:27 -0700)]
idct_blk.c: use vpx_memset instead of cast

Fix warning with -Wstrict-aliasing=1

Change-Id: Ibf4af991f2c82b8ccbdc20362da64be669564333

11 years agoMerge "changed to comply with strict aliasing rule"
Yaowu Xu [Tue, 29 Oct 2013 20:44:07 +0000 (13:44 -0700)]
Merge "changed to comply with strict aliasing rule"

11 years agoFixing wrongly initialized tx_type variable.
Dmitry Kovalev [Tue, 29 Oct 2013 19:18:53 +0000 (12:18 -0700)]
Fixing wrongly initialized tx_type variable.

Wrong value was used in get_tx_type_4x4() function, so making
initialization before that call.

Change-Id: Ief30bb1e0c03b2f23d993bbf9ae18d7150ba9a83