webm/libvpx.git
8 months agoRedesigned recursive filters adapted to block-sizes 59/67659/4 experimental
Yue Chen [Tue, 29 Oct 2013 00:14:40 +0000 (17:14 -0700)]
Redesigned recursive filters adapted to block-sizes

Recursive intra filters for 4x4 and 8x8 blocks are separately designed.
Fixed bugs in rd loop.

Change-Id: Id0b1752769f596ce8ea850863cadbc6a739804be

9 months agoFixed a bug in recursive extrapolation filter for intra prediction 86/67486/4
Yue Chen [Fri, 11 Oct 2013 18:55:03 +0000 (11:55 -0700)]
Fixed a bug in recursive extrapolation filter for intra prediction

Estimation of local mean, which is used to get zero-mean signals
before linear filtering, is corrected.

Change-Id: If73d0ae479201fc60a34baa3f15d61e5aecb1162

10 months agoMake Rand8Extremes more extreme 55/48655/2
John Koleszar [Fri, 19 Apr 2013 15:57:03 +0000 (08:57 -0700)]
Make Rand8Extremes more extreme

Previous code didn't do what was expected, we want numbers within 16 of
the extrema.

Change-Id: I20c18627c482ec66e8405ddad74ca9276c0c65dc

10 months agoNew flags for masked compound inter-inter/inter-intra 97/67097/1
Yue Chen [Wed, 4 Sep 2013 00:15:25 +0000 (17:15 -0700)]
New flags for masked compound inter-inter/inter-intra

Masked inter-inter will be enabled when CONFIG_MASKED_INTERINTER is
on. Masked inter-intra will be enabled only when both
CONFIG_MASKED_INTERINTRA and CONFIG_INTERINTRA are on.

Change-Id: I57efcfe6a3ef2d53129ef703030366503dfa3762

10 months agoMasked joint spatio-temporal prediction 77/66977/6
Yue Chen [Mon, 19 Aug 2013 22:48:50 +0000 (15:48 -0700)]
Masked joint spatio-temporal prediction

Exploit wedge partition in joint spatio-temporal prediction. One
slice will be intra predicted. The other slice will be inter
predicted.

Bit-rate reduction:
+0.583% derf        (+0.307 on top of interintra)
+1.298% stdhdraw250 (+0.367% on top of interintra)

Change-Id: Iec4bba5a47d0419778458c25b550574a42b3a250

11 months agoImproved joint spatio-temporal prediction 76/66276/3
Yue Chen [Mon, 19 Aug 2013 21:41:03 +0000 (14:41 -0700)]
Improved joint spatio-temporal prediction

Switch to the correct reference to generate intra component of joint
predictions.

Change-Id: Ibec72cf53b3be3f7333fe5a29c57e41239b30820

11 months agoAdds sb-type context to probs in interintra expt 72/65972/1
Deb Mukherjee [Thu, 15 Aug 2013 18:17:50 +0000 (11:17 -0700)]
Adds sb-type context to probs in interintra expt

Adds sb_type context to the probabilities in the interintra
experiment.

Change-Id: I5dec4318fb859a550ad5e7ed83378e17ba48e8ed

11 months agoMasked Compound Inter Prediction 42/65242/3
Yue Chen [Thu, 8 Aug 2013 22:00:51 +0000 (15:00 -0700)]
Masked Compound Inter Prediction

The masked compound motion compensation has mask types separating a
block into wedges at specific angles and offsets. The mask is used to
weight pixels from the first and second predictors to obtain the final
predictor. The weighting is smooth near the partition boundaries but
becomes a selecton farther away.

Bit-rate reduction: +0.960%(derfraw300) +0.651%(stdhdraw250)

Change-Id: I1327d22d3fc585b72ffa0e03abd90f3980f0876a

11 months agoRecursive extrapolation filter 59/65859/5
Yue Chen [Tue, 13 Aug 2013 17:44:34 +0000 (10:44 -0700)]
Recursive extrapolation filter

The recursive intra filter is implemented. 6 extrapolation intra
filters are added as extra modes for 4x4 and 8x8 blocks.
Signaling bits are added at the block level to indicate if a normal
intra mode is switched to recursive intra filter mode. They are
entropy coded by maintaining a backward adaptive probability table
showing the usage of recursive filters at different block-sizes and
different intra modes.

Bit-rate reduction: +0.458% (derf)

Change-Id: I1b8e00405ea1494002ca40de1db52c51259012c4

11 months agoMerge "Improved joint spatio-temporal prediction" into experimental
Yue Chen [Wed, 14 Aug 2013 20:47:01 +0000 (13:47 -0700)]
Merge "Improved joint spatio-temporal prediction" into experimental

11 months agoImproved joint spatio-temporal prediction 68/65868/2
Yue Chen [Tue, 13 Aug 2013 00:09:26 +0000 (17:09 -0700)]
Improved joint spatio-temporal prediction

Full search of optimal interintra mode is performed instead of
inferring the interintra mode from optimal intra mode.

Bit-rate reduction:
+0.811% stdhdraw250
+0.238% derf

Change-Id: I80e905a51fba0e9fb7eb00a3342d21f452825377

11 months agoMerge branch 'master' into experimental 03/65003/1
John Koleszar [Wed, 7 Aug 2013 21:43:17 +0000 (14:43 -0700)]
Merge branch 'master' into experimental

Conflicts:
configure
vp9/common/vp9_entropymode.c
vp9/common/vp9_onyxc_int.h
vp9/common/vp9_reconinter.c
vp9/common/vp9_reconintra.c
vp9/common/x86/vp9_idct_intrin_sse2.c
vp9/decoder/vp9_decodemv.c
vp9/decoder/vp9_decodframe.c
vp9/encoder/vp9_bitstream.c
vp9/encoder/vp9_encodeframe.c
vp9/encoder/vp9_onyx_if.c
vp9/encoder/vp9_onyx_int.h
vp9/encoder/vp9_rdopt.c

Change-Id: I2191e8cf074677d6def890720a6b095457efce18

11 months agoMerge origin/master into experimental 91/64991/2
Yue Chen [Wed, 7 Aug 2013 20:38:30 +0000 (13:38 -0700)]
Merge origin/master into experimental

Change-Id: I53dc16716ff02f35089df1aeb3e5eeb825271dab

11 months agoMerge "Clean ups of the subpel search functions"
Deb Mukherjee [Wed, 7 Aug 2013 00:28:48 +0000 (17:28 -0700)]
Merge "Clean ups of the subpel search functions"

11 months agoClean ups of the subpel search functions 46/64846/4
Deb Mukherjee [Tue, 6 Aug 2013 22:53:35 +0000 (15:53 -0700)]
Clean ups of the subpel search functions

Removes some unused code and speed features, and organizes the
interfaces for fractional mv step functions for use in new speed
features to come.

In the process a new speed feature - number of iterations per
step during the subpel search - is exposed.

No change when this parameter is set as the original value of 3.

Results:
subpel_iters_per_step = 3: baseline
subpel_iters_per_step = 2: psnr -0.067%, 1% speedup
subpel_iters_per_step = 1: psnr -0.331%, 3-4% speedup

Change-Id: I2eba8a21f6461be8caf56af04a5337257a5693a8

11 months agoMerge "Motion vector code cleanup."
Dmitry Kovalev [Tue, 6 Aug 2013 23:00:01 +0000 (16:00 -0700)]
Merge "Motion vector code cleanup."

11 months agoMerge "Place holder for high-precision 32x32 fdct"
Jingning Han [Tue, 6 Aug 2013 21:47:30 +0000 (14:47 -0700)]
Merge "Place holder for high-precision 32x32 fdct"

11 months agovariance x86inc guards 77/64777/3
Jim Bankoski [Tue, 6 Aug 2013 15:25:10 +0000 (08:25 -0700)]
variance x86inc guards

also fixed bug in sad calcs

Change-Id: I6571fcbe37556c16ae32be66dc0fd879852aac1d

11 months agosse3 intrapred x86inc protected 74/64774/3
Jim Bankoski [Tue, 6 Aug 2013 14:44:56 +0000 (07:44 -0700)]
sse3 intrapred x86inc protected

Change-Id: I4a3c83119cdf8a205920034c8019d855d5504605

11 months agoMerge "Flexible support for various pattern searches"
Deb Mukherjee [Tue, 6 Aug 2013 21:03:27 +0000 (14:03 -0700)]
Merge "Flexible support for various pattern searches"

11 months agosad + miscellaneous updates 73/64773/4
Jim Bankoski [Tue, 6 Aug 2013 14:31:54 +0000 (07:31 -0700)]
sad + miscellaneous updates

Enable use_x86inc as a commandline option.  Fix Bug with sse2 when
x86inc is disabled. Adds Sad asm protection to x86inc protection

Change-Id: Iee0f9dd235ea10e8ace512eb362ba9bebe8c9df6

11 months agoMerge "Inlining vp9_get_pred_probs_switchable_interp function."
Dmitry Kovalev [Tue, 6 Aug 2013 18:57:45 +0000 (11:57 -0700)]
Merge "Inlining vp9_get_pred_probs_switchable_interp function."

11 months agoFlexible support for various pattern searches 33/63233/9
Deb Mukherjee [Mon, 22 Jul 2013 21:47:57 +0000 (14:47 -0700)]
Flexible support for various pattern searches

Adds a few pattern searches to achieve various tradeoffs
between motion estimation complexity and performance.
The search framework is unified across these searches so that a
common pattern search function is used for all. Besides it will
be easier to experiment with various patterns or combinations
thereof at different scales in the future.

The new pattern search is multi-scale and is capable of using
different patterns at different scales.

The new hex search uses 8 points at the smallest scale
and 6 points at other scales.
Two other pattern searches - big-diamond and square are
also added. Big diamond uses 4 points at the smallest scale and
8 points in diamond shape at the larger scales.
Square is very similar conceptually to the default n-step search
but is somewhat faster since it keeps only one survivor across
all scales.

Psnr/speed-up results on derf300:

hex: -1.6% psnr%, 6-8% speed-up
big-diamond: -0.96% psnr, 4-5% speedup
square: -0.93% psnr, 4-5% speedup

Change-Id: I02a7ef5193f762601e0994e2c99399a3535a43d2

11 months agoPlace holder for high-precision 32x32 fdct 89/64789/2
Jingning Han [Tue, 6 Aug 2013 18:10:12 +0000 (11:10 -0700)]
Place holder for high-precision 32x32 fdct

Resolve compile warnings on re-define FDCT32x32_2D template.

Change-Id: Idb3a54ef8d2710ce7245b726379a0e5c875f5cad

11 months agoInlining vp9_get_pred_probs_switchable_interp function. 88/64788/1
Dmitry Kovalev [Tue, 6 Aug 2013 18:04:31 +0000 (11:04 -0700)]
Inlining vp9_get_pred_probs_switchable_interp function.

There was no benefit having this function. For example, inside
read_switchable_filter_type switchable filter context was calculated twice.

Change-Id: I79cd5bf95cbc0f6d8bf91a2e32289e01b18dcff1

11 months agoMerge "Move fdct32x32 SSE2 implementation in separate file."
Jingning Han [Tue, 6 Aug 2013 17:46:41 +0000 (10:46 -0700)]
Merge "Move fdct32x32 SSE2 implementation in separate file."

11 months agoMerge "intrapred x86inc guards"
Jim Bankoski [Tue, 6 Aug 2013 17:39:19 +0000 (10:39 -0700)]
Merge "intrapred x86inc guards"

11 months agoMotion vector code cleanup. 05/64705/2
Dmitry Kovalev [Mon, 5 Aug 2013 23:27:51 +0000 (16:27 -0700)]
Motion vector code cleanup.

Converting arguments of two functions (clamp_mv_ref, lower_mv_precision)
from int_mv* to MV*. Rewriting is_inside function to make it much shorter.

Change-Id: Ie4c4cf3eccd46707c7df099ec21fb1b61c72fc7a

11 months agoMerge "Finally removing all old block size constants."
Dmitry Kovalev [Tue, 6 Aug 2013 17:30:37 +0000 (10:30 -0700)]
Merge "Finally removing all old block size constants."

11 months agoMerge "Changing the order switchable filter enum constants."
Dmitry Kovalev [Tue, 6 Aug 2013 17:30:26 +0000 (10:30 -0700)]
Merge "Changing the order switchable filter enum constants."

11 months agoMerge "Removing unused functions."
Dmitry Kovalev [Tue, 6 Aug 2013 17:29:57 +0000 (10:29 -0700)]
Merge "Removing unused functions."

11 months agoMerge "Add variance based mode/skipping"
Deb Mukherjee [Tue, 6 Aug 2013 17:19:15 +0000 (10:19 -0700)]
Merge "Add variance based mode/skipping"

11 months agoMove fdct32x32 SSE2 implementation in separate file. 88/64688/7
Christian Duvivier [Mon, 5 Aug 2013 22:22:13 +0000 (15:22 -0700)]
Move fdct32x32 SSE2 implementation in separate file.

This is in preparation for the SSE2 version of the high-precision
32x32 forward DCT which will share a lot of code with the existing
low precision version used for rate-distortion search.

Change-Id: I7084b6bdfb480b1fabb8493fb14e3f7fcc7888c0

11 months agointrapred x86inc guards 71/64771/2
Jim Bankoski [Tue, 6 Aug 2013 16:39:30 +0000 (09:39 -0700)]
intrapred x86inc guards

Change-Id: If0399d8e11f4ebe75a5c91abb8d6a52a7709065b

11 months agoblock error / x86inc mods 10/64710/3
Jim Bankoski [Tue, 6 Aug 2013 00:27:30 +0000 (17:27 -0700)]
block error / x86inc mods

Change-Id: Icb607745634e10b9bac5019d06661ece09fcdb40

11 months agoreworked config for use_x86_inc 04/64704/4
Jim Bankoski [Tue, 6 Aug 2013 00:28:52 +0000 (17:28 -0700)]
reworked config for use_x86_inc

Support enabling it or disabling it.  Moved read out to configure.sh
so that its done once instead of in make and in config.

Change-Id: I73a9190cf31de9f03e8a577f478fa522f8c01c8b

11 months agoMerge changes I082959ab,Ib6932640
James Zern [Mon, 5 Aug 2013 23:07:09 +0000 (16:07 -0700)]
Merge changes I082959ab,Ib6932640

* changes:
  vp9/decoder: threaded row-based loop filter
  vp9/decoder: add thread worker

11 months agoFinally removing all old block size constants. 89/64689/1
Dmitry Kovalev [Mon, 5 Aug 2013 22:23:49 +0000 (15:23 -0700)]
Finally removing all old block size constants.

Change-Id: I3aae21e88b876d53ecc955260479980ffe04ad8d

11 months agofixed script problem with config_force_x86_inc 81/64681/1
Jim Bankoski [Mon, 5 Aug 2013 21:48:20 +0000 (14:48 -0700)]
fixed script problem with config_force_x86_inc

Change-Id: I226e5094d216b09dc47fa5511a66e2d314608000

11 months agoMerge "Begin to restrict x86inc.asm usage"
Jim Bankoski [Mon, 5 Aug 2013 21:17:49 +0000 (14:17 -0700)]
Merge "Begin to restrict x86inc.asm usage"

11 months agoAdd variance based mode/skipping 62/64362/4
Deb Mukherjee [Wed, 31 Jul 2013 16:33:58 +0000 (09:33 -0700)]
Add variance based mode/skipping

Adds a speed feature to skip all intra modes other than
DC_PRED if the source variance is small. This feature is
made part of speed 1 and up.

Results on derf300: psnr -0.07%, speedup about 1-2%

Also uses the source variance to fine-tune the early
termination criteria when FLAG_EARLY_TERMINATE is on.
This feature is made part of speed 2 and up.

Results on derf300: psnr -0.52%, speedup about 5-7%

Change-Id: I59e38aa836557cfa5405ae706fc64815cbfe4232

11 months agoMerge "cleanups after bw bh code"
Jim Bankoski [Mon, 5 Aug 2013 21:02:02 +0000 (14:02 -0700)]
Merge "cleanups after bw bh code"

11 months agovp9/decoder: threaded row-based loop filter 25/64025/5
James Zern [Wed, 31 Jul 2013 23:15:10 +0000 (16:15 -0700)]
vp9/decoder: threaded row-based loop filter

Currently the only threaded option for vp9 decode. Enabled when the
decoder config thread count is > 1.

Change-Id: I082959abac9e31aa4a38ed9fd68b94680e57f4df

11 months agovp9/decoder: add thread worker 24/64024/5
James Zern [Wed, 31 Jul 2013 05:46:58 +0000 (22:46 -0700)]
vp9/decoder: add thread worker

vp9/decoder/vp9_thread.[hc]
Original source:
 http://git.chromium.org/webm/libwebp.git
 100644 blob b1615d0fb8d311666b2fa4561076c62d72c2e3ff  src/utils/thread.c
 100644 blob 13a61a4c84194c3374080cbf03d881d3cd6af40d  src/utils/thread.h

Local modifications:
 - s/WebP/VP9/g
 - camelcase functions -> lower with _'s

Change-Id: Ib6932640ee34f8b4782c6fbd15864a59d5d4c5fe

11 months agoChanging the order switchable filter enum constants. 70/64670/1
Dmitry Kovalev [Mon, 5 Aug 2013 19:26:15 +0000 (12:26 -0700)]
Changing the order switchable filter enum constants.

This changeset allows to remove vp9_switchable_interp and
vp9_switchable_interp_map arrays and make code much clear. Actually we
still have to use these mapping but only inside read_interp_filter_type and
write_interp_filter_type functions.

Change-Id: I4026c6f8c4acefba6c81421b7bacbaa52cc45f50

11 months agocleanups after bw bh code 33/64333/5
Jim Bankoski [Mon, 5 Aug 2013 19:15:52 +0000 (12:15 -0700)]
cleanups after bw bh code

Cons bw/bh parms that should have been const. Additional formatting.

Change-Id: Icd36a5c9dc17dadd7284315ac0d6fef1a565ca16

11 months agoUpdate README 08/64308/3
Paweł Hajdan [Fri, 2 Aug 2013 03:08:42 +0000 (20:08 -0700)]
Update README

- new date
- add VP9 to the title
- update list of available targets

Change-Id: I56263336db393020bac5da8e42fbac3a276ffb1f

11 months agoBegin to restrict x86inc.asm usage 45/64245/7
Jim Bankoski [Mon, 5 Aug 2013 19:07:30 +0000 (12:07 -0700)]
Begin to restrict x86inc.asm usage

Chromium does not support 32bit builds for Mac which use x86inc.asm.
Make the files which include it work if 64bit or not PIC enabled
starting with vp9_copy_sse2.asm

Consolidate these targets in vp9_rtcd_defs.sh

Change-Id: If18f0b957a611efd085a3ee7d245cf1eb91e8248

11 months agoReplacing long block size enum values with shorter ones (2). 51/64351/2
Dmitry Kovalev [Fri, 2 Aug 2013 18:45:21 +0000 (11:45 -0700)]
Replacing long block size enum values with shorter ones (2).

Change-Id: I428c4d42212b757112e3acfe5b81314cfbb5fd6b

11 months agoMerge "Cleaning up vp9_build_inter_predictor function."
Dmitry Kovalev [Mon, 5 Aug 2013 08:52:11 +0000 (01:52 -0700)]
Merge "Cleaning up vp9_build_inter_predictor function."

11 months agoMerge "Replacing "txfm" with "tx" in identifiers."
Dmitry Kovalev [Sun, 4 Aug 2013 09:52:22 +0000 (02:52 -0700)]
Merge "Replacing "txfm" with "tx" in identifiers."

11 months agoreworked find_mv_ref 24/63324/27
Jim Bankoski [Sun, 4 Aug 2013 02:51:56 +0000 (19:51 -0700)]
reworked find_mv_ref

This is an attempt at rewriting vp9_find_mv_refs_idx.   I believe that it gains
about 1-2% decode speed

Change-Id: Ia5359c94ce9bb43b32652890e605e9a385485c1b

11 months agoReplacing "txfm" with "tx" in identifiers. 14/64414/1
Dmitry Kovalev [Sat, 3 Aug 2013 00:28:23 +0000 (17:28 -0700)]
Replacing "txfm" with "tx" in identifiers.

Consistent names with TX_SIZE, TX_MODE, and TX_MODE.

Change-Id: I79592218bf5a40ace89197a34a06ee7de581ed8d

11 months agoMerge "Adding is_inter_block function."
Dmitry Kovalev [Fri, 2 Aug 2013 23:54:32 +0000 (16:54 -0700)]
Merge "Adding is_inter_block function."

11 months agoCleaning up vp9_build_inter_predictor function. 06/64406/1
Dmitry Kovalev [Fri, 2 Aug 2013 23:53:18 +0000 (16:53 -0700)]
Cleaning up vp9_build_inter_predictor function.

Change-Id: I94f6b4272b95ac101de6d10f048116ba065788b0

11 months agoRemoving unused functions. 94/64394/2
Dmitry Kovalev [Fri, 2 Aug 2013 23:41:09 +0000 (16:41 -0700)]
Removing unused functions.

Removed functions:
  model_rd_for_sb_y,
  block_error_sby,
  get_sb_variance

Change-Id: Iec458df180caf6f8eac3605773841a4121dd3a8f

11 months agoMerge "Changing function arg type from int_mv* to MV*."
Dmitry Kovalev [Fri, 2 Aug 2013 23:30:06 +0000 (16:30 -0700)]
Merge "Changing function arg type from int_mv* to MV*."

11 months agoMerge "Cleanups around allow_high_precision_mv flag."
Dmitry Kovalev [Fri, 2 Aug 2013 23:27:05 +0000 (16:27 -0700)]
Merge "Cleanups around allow_high_precision_mv flag."

11 months agoAdding is_inter_block function. 40/64340/2
Dmitry Kovalev [Fri, 2 Aug 2013 23:25:33 +0000 (16:25 -0700)]
Adding is_inter_block function.

Using it instead of long unclear verbose check
"mbmi->ref_frame[0] != INTRA_FRAME".

Change-Id: I9c7b4b3797942fa962bf3ba7460fff3084beabe9

11 months agoMerge "Cleaning up set_contexts_on_border function."
Dmitry Kovalev [Fri, 2 Aug 2013 23:22:50 +0000 (16:22 -0700)]
Merge "Cleaning up set_contexts_on_border function."

11 months agoMerge "Add more checking to using_small_partition_info"
Yunqing Wang [Fri, 2 Aug 2013 22:55:09 +0000 (15:55 -0700)]
Merge "Add more checking to using_small_partition_info"

11 months agoCleaning up set_contexts_on_border function. 99/64399/1
Dmitry Kovalev [Fri, 2 Aug 2013 22:52:26 +0000 (15:52 -0700)]
Cleaning up set_contexts_on_border function.

Change-Id: I8f21c18b29f54b277fb1c167f278f109d9f3b996

11 months agoChanging function arg type from int_mv* to MV*. 97/64397/1
Dmitry Kovalev [Fri, 2 Aug 2013 22:26:32 +0000 (15:26 -0700)]
Changing function arg type from int_mv* to MV*.

Change-Id: Ic878d31df2ce783a2c9a8c4bc9ed301ec8ffe25e

11 months agoMoving struct loop_filter_info from *.h to *.c file. 59/64359/1
Dmitry Kovalev [Fri, 2 Aug 2013 18:53:49 +0000 (11:53 -0700)]
Moving struct loop_filter_info from *.h to *.c file.

Change-Id: I3fe90eb40088a5b07bdc7d66d93ffe6ef99943d5

11 months agoMerge "Fixed typos and added a few explanatory comments"
Adrian Grange [Fri, 2 Aug 2013 18:37:47 +0000 (11:37 -0700)]
Merge "Fixed typos and added a few explanatory comments"

11 months agoMerge "Changed name of rd_pick_intra4x4mby_modes"
Adrian Grange [Fri, 2 Aug 2013 18:36:46 +0000 (11:36 -0700)]
Merge "Changed name of rd_pick_intra4x4mby_modes"

11 months agoMerge "vp9: neon: convolve: replace some insns with simpler equivalents"
Johann [Fri, 2 Aug 2013 18:28:31 +0000 (11:28 -0700)]
Merge "vp9: neon: convolve: replace some insns with simpler equivalents"

11 months agoMerge "vp9: neon: convolve: simplify branching to C fallbacks"
Johann [Fri, 2 Aug 2013 18:28:25 +0000 (11:28 -0700)]
Merge "vp9: neon: convolve: simplify branching to C fallbacks"

11 months agoMerge "vp9: neon: optimise loads in horiz convolve functions"
Johann [Fri, 2 Aug 2013 18:28:04 +0000 (11:28 -0700)]
Merge "vp9: neon: optimise loads in horiz convolve functions"

11 months agoMerge "vp9: neon: add vp9_mb_lpf_* functions"
Johann [Fri, 2 Aug 2013 18:27:52 +0000 (11:27 -0700)]
Merge "vp9: neon: add vp9_mb_lpf_* functions"

11 months agoCleanups around allow_high_precision_mv flag. 44/64344/1
Dmitry Kovalev [Fri, 2 Aug 2013 18:21:16 +0000 (11:21 -0700)]
Cleanups around allow_high_precision_mv flag.

Change-Id: Ic07f5f8ffeaedd5b7513b464871f83afc82dcd5c

11 months agoReplacing long block size enum values with shorter ones. 37/64337/1
Dmitry Kovalev [Fri, 2 Aug 2013 17:48:27 +0000 (10:48 -0700)]
Replacing long block size enum values with shorter ones.

Change-Id: I0e9329490828684a4fd46f540d89114cc68e8407

11 months agoMerge "Comment out 2 unused speed features"
Yunqing Wang [Fri, 2 Aug 2013 16:58:46 +0000 (09:58 -0700)]
Merge "Comment out 2 unused speed features"

11 months agovp9: neon: convolve: replace some insns with simpler equivalents 30/64330/2
Mans Rullgard [Tue, 30 Jul 2013 17:08:17 +0000 (18:08 +0100)]
vp9: neon: convolve: replace some insns with simpler equivalents

Change-Id: I5d6906772e6e6adf68d7f0fd5b8b5207a64a3a37

11 months agovp9: neon: convolve: simplify branching to C fallbacks 29/64329/2
Mans Rullgard [Tue, 30 Jul 2013 16:33:52 +0000 (17:33 +0100)]
vp9: neon: convolve: simplify branching to C fallbacks

Change-Id: Ic7cacd02d6dc9243ad8fc85082c5618a9d1e66dc

11 months agovp9: neon: optimise loads in horiz convolve functions 28/64328/3
Mans Rullgard [Tue, 30 Jul 2013 17:11:06 +0000 (18:11 +0100)]
vp9: neon: optimise loads in horiz convolve functions

Loading to single lanes in multiple registers is expensive since
it requires a read and write of each register which saturates
the register file access.  Loading to single registers followed
by a separate transpose reduces this pressure.

Change-Id: I4cc35887ddbca80e5e635b50d2b1d158de9668ee

11 months agovp9: neon: add vp9_mb_lpf_* functions 27/64327/2
Mans Rullgard [Thu, 4 Jul 2013 18:58:41 +0000 (14:58 -0400)]
vp9: neon: add vp9_mb_lpf_* functions

Change-Id: I13e0880df234f15abc4cc7c57fe84488d5d46a75

11 months agoMerge "Cleanup: replacing xd->seg with seg, and xd->lf with lf."
Dmitry Kovalev [Fri, 2 Aug 2013 06:17:17 +0000 (23:17 -0700)]
Merge "Cleanup: replacing xd->seg with seg, and xd->lf with lf."

11 months agoMerge "Cleanup: reusing clamp_mv function."
Dmitry Kovalev [Fri, 2 Aug 2013 06:16:56 +0000 (23:16 -0700)]
Merge "Cleanup: reusing clamp_mv function."

11 months agoMerge "Remove unused vp9_short_idct10_32x32_add"
Jingning Han [Thu, 1 Aug 2013 22:41:35 +0000 (15:41 -0700)]
Merge "Remove unused vp9_short_idct10_32x32_add"

11 months agoCleanup: replacing xd->seg with seg, and xd->lf with lf. 79/64279/2
Dmitry Kovalev [Thu, 1 Aug 2013 21:53:14 +0000 (14:53 -0700)]
Cleanup: replacing xd->seg with seg, and xd->lf with lf.

Change-Id: I73b59d7699a8e7e7acd3bf8041cb6c98ce9ba4bf

11 months agoMerge "Cleanup: removing unused function arguments."
Dmitry Kovalev [Thu, 1 Aug 2013 22:07:12 +0000 (15:07 -0700)]
Merge "Cleanup: removing unused function arguments."

11 months agoCleanup: reusing clamp_mv function. 81/64281/1
Dmitry Kovalev [Thu, 1 Aug 2013 22:06:34 +0000 (15:06 -0700)]
Cleanup: reusing clamp_mv function.

Change-Id: I8715f08a3554bdb557c5f935f1dfbd671f18e766

11 months agoMerge "Nice looking motion vector clamping functions."
Dmitry Kovalev [Thu, 1 Aug 2013 21:50:14 +0000 (14:50 -0700)]
Merge "Nice looking motion vector clamping functions."

11 months agoMerge "Adds a source variance computation function"
Deb Mukherjee [Thu, 1 Aug 2013 21:18:43 +0000 (14:18 -0700)]
Merge "Adds a source variance computation function"

11 months agoMerge "vp9_get_pred_context_intra_inter cleanup."
Dmitry Kovalev [Thu, 1 Aug 2013 21:15:53 +0000 (14:15 -0700)]
Merge "vp9_get_pred_context_intra_inter cleanup."

11 months agoCleanup: removing unused function arguments. 07/64007/2
Dmitry Kovalev [Wed, 31 Jul 2013 23:59:15 +0000 (16:59 -0700)]
Cleanup: removing unused function arguments.

Change-Id: I27471768980fc631916069f24bc7c482a5c9ca17

11 months agoNice looking motion vector clamping functions. 77/63977/3
Dmitry Kovalev [Wed, 31 Jul 2013 23:11:03 +0000 (16:11 -0700)]
Nice looking motion vector clamping functions.

Removing assign_and_clamp_mv function, making implementation of clamp_mv
and clamp_mv2 more clear and consistent.

Change-Id: Iecd08e1c1bf0379f8314ebe01811f8253f4ade58

11 months agoAdds a source variance computation function 55/64255/1
Deb Mukherjee [Thu, 1 Aug 2013 19:56:12 +0000 (12:56 -0700)]
Adds a source variance computation function

Adds a function to compute source variance for various
sb_types to be used for pruning mode and partition searches.
[The existing activity measure function is currently specialized
for only 16x16 MBs and needs to be updated].

Change-Id: I22a41e6f1430184201487326fdbebb9b47e6fc24

11 months agoRemove unused vp9_short_idct10_32x32_add 53/64253/1
Jingning Han [Thu, 1 Aug 2013 19:45:16 +0000 (12:45 -0700)]
Remove unused vp9_short_idct10_32x32_add

The inverse 32x32 transform detects all zero entries and skips the
computations accordingly per 8 rows in the first 1-D operation. The
function vp9_short_idct10_32x32_add performs differently and is not
used anywhere, hence removed.

Change-Id: Ic4fad422debbde7b6b6ffed47c69fbd4268a906c

11 months agoMerge "Optimize 32x32 2D inverse DCT for speed-up"
Jingning Han [Thu, 1 Aug 2013 18:53:39 +0000 (11:53 -0700)]
Merge "Optimize 32x32 2D inverse DCT for speed-up"

11 months agoAdd more checking to using_small_partition_info 43/64243/1
Yunqing Wang [Thu, 1 Aug 2013 18:37:41 +0000 (11:37 -0700)]
Add more checking to using_small_partition_info

If the partition is out of partition size range, we don't
need to process small partition information.

Change-Id: Ice9bfbbdebe1f2ef79271a3aee17de0ed4608376

11 months agoComment out 2 unused speed features 37/64237/1
Yunqing Wang [Thu, 1 Aug 2013 18:03:34 +0000 (11:03 -0700)]
Comment out 2 unused speed features

use_min_partition_size and use_max_partition_size are not used
currently, and could be added back if needed later.

Change-Id: Ib22a9c06b064567a7c1d6d5445567ed77e0d3acc

11 months agoMerge "Adding missing const to vp9_extra_bits array."
Dmitry Kovalev [Thu, 1 Aug 2013 17:19:51 +0000 (10:19 -0700)]
Merge "Adding missing const to vp9_extra_bits array."

11 months agoFixed typos and added a few explanatory comments 27/64227/3
Adrian Grange [Thu, 1 Aug 2013 16:04:15 +0000 (09:04 -0700)]
Fixed typos and added a few explanatory comments

Change-Id: Ib4e4b41094b54874ee34343dd77c0c131ceed9d2

11 months agoChanged name of rd_pick_intra4x4mby_modes 46/63946/4
Adrian Grange [Wed, 31 Jul 2013 19:58:19 +0000 (12:58 -0700)]
Changed name of rd_pick_intra4x4mby_modes

The function name rd_pick_intra4x4mby_modes is confusing, so
I changed it to rd_pick_intra_sub_8x8_y_modes to better
reflect what the function does. Also added const qualifiers
to some of the input parameters and removed camel-case.

Change-Id: I23d53d4c7af5d79ed8a471acd59a09bbb47add39

11 months agoAdding missing const to vp9_extra_bits array. 21/64021/1
Dmitry Kovalev [Thu, 1 Aug 2013 01:51:18 +0000 (18:51 -0700)]
Adding missing const to vp9_extra_bits array.

Change-Id: Icd128ab58719e0b9066bdfa66a5d0d427a84d6df

11 months agovp9_get_pred_context_intra_inter cleanup. 17/64017/3
Dmitry Kovalev [Thu, 1 Aug 2013 01:33:04 +0000 (18:33 -0700)]
vp9_get_pred_context_intra_inter cleanup.

Change-Id: I8beeee4c020425175f7d5ec83be86afa7b95da1a

11 months agoOptimize 32x32 2D inverse DCT for speed-up 11/64011/2
Jingning Han [Wed, 31 Jul 2013 23:50:34 +0000 (16:50 -0700)]
Optimize 32x32 2D inverse DCT for speed-up

This commit exploits the sparsity of quantized coefficient matrix.
It detects each 32x8 array and skip the corresponding inverse
transformation if all entries are zero.

For ped1080p at 8000 kbps, this on average reduces the runtime of
32x32 inverse 2D-DCT SSE2 function from 6256 cycles -> 5200
cycles. It makes the overall encoding process about 2% faster at
speed 0. The speed-up is more pronounceable for the decoding process.

Change-Id: If20056c3566bd117642a76f8884c83e8bc8efbcf

11 months agoRemove unnecessary arguments in rd_pick_ref_frame 10/64010/1
Jingning Han [Thu, 1 Aug 2013 00:02:06 +0000 (17:02 -0700)]
Remove unnecessary arguments in rd_pick_ref_frame

This commit removes redundant arguments passing in the function of
rd_pick_reference_frame. This resolves the clang warnings about
potential use of uninitialized values.

Change-Id: Ic68f949a9f8fcd0a583786b0c75321104ea44739