]> granicus.if.org Git - libvpx/log
libvpx
11 years agocatch all for new block sizes
Jim Bankoski [Fri, 19 Apr 2013 16:48:56 +0000 (09:48 -0700)]
catch all for new block sizes

Just make sure we don't stop them from testing in speed 1.

Change-Id: Iec9b3dba0a32616ff7a451207e0f54b81bb72575

11 years agoset up a new speed 1
Jim Bankoski [Fri, 19 Apr 2013 15:04:57 +0000 (08:04 -0700)]
set up a new speed 1

slightly worse results for faster encodes

Change-Id: I25ea82a18ce20635dbcd328808c1d05ac1f58fd7

11 years agoMerge "Adjustments to key frame sizing." into experimental
Paul Wilkins [Fri, 19 Apr 2013 09:27:22 +0000 (02:27 -0700)]
Merge "Adjustments to key frame sizing." into experimental

11 years agoAdjustments to key frame sizing.
Paul Wilkins [Tue, 16 Apr 2013 17:59:39 +0000 (18:59 +0100)]
Adjustments to key frame sizing.

Adjustments take heavier account of the frame near a kf
in deciding boost and limit the total number that can contribute.
Also adjusted the minq calculations such that in most cases we
generate a smaller key frame.
Modified the code that accounts for how static the sequence is and
added some adjustment based on image size. This is still very
crude but smaller images tend to behave better with a larger
delta between KF Q and other frames than larger image formats.
Changes give sizable gains in overall PSNR  on all the test sets but the
biggest gains (~3%) were on the std-hd set.
The gains were smaller for SSIM but still significant.
Average PSNR results are mixed because this metric can very easily
be altered by having a very good / lossless coding of one or two frames.
Some of the YT and YT-HD clips in particular have blank lead ins and
allowing lossless coding of these appears to make a big difference to
average PSNR but it reality does not help much at all.

Change-Id: I6bfe485a1d330b47c783832f1717c95c535464ec

11 years agoMerge changes I320e160e,Iddd99733 into experimental
John Koleszar [Fri, 19 Apr 2013 01:51:17 +0000 (18:51 -0700)]
Merge changes I320e160e,Iddd99733 into experimental

* changes:
  Removing rounding from UV MV calculation
  make buid_inter_predictors block size agnostic (luma)

11 years agoRemoving rounding from UV MV calculation
John Koleszar [Mon, 15 Apr 2013 20:18:24 +0000 (13:18 -0700)]
Removing rounding from UV MV calculation

Consider the previous behavior for the MV 1 3/8 (11/8 pel). In the
existing code, the fractional part of the MV is considered separately,
and rounded is applied, giving a result of 6/8. Rounding is not required
in this case, as we're increasing the precision from a q3 to a q4, and
the correct value 11/16 can be represented exactly.

Slight gain observed (+.033 average on derf)

Change-Id: I320e160e8b12f1dd66aa0ce7966b5088870fe9f8

11 years agomake buid_inter_predictors block size agnostic (luma)
John Koleszar [Sat, 13 Apr 2013 00:19:57 +0000 (17:19 -0700)]
make buid_inter_predictors block size agnostic (luma)

This commit converts the luma versions of vp9_build_inter_predictors_sb
to use a common function. Update the convolution functions to support
block sizes larger than 16x16, and add a foreach_predicted_block walker.

Next step will be to calculate the UV motion vector and implement SBUV,
then fold in vp9_build_inter16x16_predictors_mb and SPLITMV.

At the 16x16, 32x32, and 64x64 levels implemented in this commit, each
plane is predicted with only a single call to vp9_build_inter_predictor.
This is not yet called for SPLITMV. If the notion of SPLITMV/I8X8/I4X4
goes away, then the prediction block walker can go away, since we'll
always predict the whole bsize in a single step. Implemented using a
block walker at this stage for SPLITMV, as a 4x4 "prediction block size"
within the BLOCK_SIZE_MB16X16 macroblock. It would also support other
rectangular sizes too, if the blocks smaller than 16x16 remain
implemented as a SPLITMV-like thing. Just using 4x4 for now.

There's also a potential to combine with the foreach_transformed_block
walker if the logic for calculating the size of the subsampled
transform is made more straightforward, perhaps as a consequence of
supporing smaller macroblocks than 16x16. Will watch what happens there.

Change-Id: Iddd9973398542216601b630c628b9b7fdee33fe2

11 years agoMerge "Fixing rounding inside vp9_mv_bit_cost function." into experimental
Dmitry Kovalev [Thu, 18 Apr 2013 23:09:28 +0000 (16:09 -0700)]
Merge "Fixing rounding inside vp9_mv_bit_cost function." into experimental

11 years agoFixing rounding inside vp9_mv_bit_cost function.
Dmitry Kovalev [Thu, 18 Apr 2013 22:37:11 +0000 (15:37 -0700)]
Fixing rounding inside vp9_mv_bit_cost function.

Change-Id: I7209a05919162a8155520bc543658ddb69ba12ce

11 years agoMerge "Code cleanup inside findnearmv code." into experimental
Dmitry Kovalev [Thu, 18 Apr 2013 22:29:44 +0000 (15:29 -0700)]
Merge "Code cleanup inside findnearmv code." into experimental

11 years agoMerge "Make the use of pred buffers consistent in MB/SB" into experimental
Jingning Han [Thu, 18 Apr 2013 22:24:55 +0000 (15:24 -0700)]
Merge "Make the use of pred buffers consistent in MB/SB" into experimental

11 years agoCode cleanup inside findnearmv code.
Dmitry Kovalev [Wed, 17 Apr 2013 21:33:05 +0000 (14:33 -0700)]
Code cleanup inside findnearmv code.

Using predefined clamp function, removing redundant variables, declare and
init on the same line.

Change-Id: I14636eb242194bac33f8a9d4a273a416d32856fc

11 years agoMake the use of pred buffers consistent in MB/SB
Jingning Han [Mon, 15 Apr 2013 16:31:27 +0000 (09:31 -0700)]
Make the use of pred buffers consistent in MB/SB

Use in-place buffers (dst of MACROBLOCKD) for  macroblock prediction.
This makes the macroblock buffer handling consistent with those of
superblock. Remove predictor buffer MACROBLOCKD.

Change-Id: Id1bcd898961097b1e6230c10f0130753a59fc6df

11 years agoReplacing BOOLEAN_DECODER with vp9_reader inside vp9_detokenize.
Dmitry Kovalev [Tue, 16 Apr 2013 22:49:10 +0000 (15:49 -0700)]
Replacing BOOLEAN_DECODER with vp9_reader inside vp9_detokenize.

Change-Id: I71369a30a86111ae737168c795a29b4d8cff6ebf

11 years agoMerge "Adding DEFAULT_PRED_PROB_{0, 1, 2} constants." into experimental
Dmitry Kovalev [Thu, 18 Apr 2013 21:39:14 +0000 (14:39 -0700)]
Merge "Adding DEFAULT_PRED_PROB_{0, 1, 2} constants." into experimental

11 years agoMerge "Motion vector decoding code cleanup." into experimental
Dmitry Kovalev [Thu, 18 Apr 2013 21:38:38 +0000 (14:38 -0700)]
Merge "Motion vector decoding code cleanup." into experimental

11 years agoMerge "Changing argument type of vp9_get_mv_joint from MV to MV*." into experimental
Dmitry Kovalev [Thu, 18 Apr 2013 21:27:44 +0000 (14:27 -0700)]
Merge "Changing argument type of vp9_get_mv_joint from MV to MV*." into experimental

11 years agoMerge "convolve: support larger blocks, fix asm saturation bug" into experimental
John Koleszar [Thu, 18 Apr 2013 21:27:16 +0000 (14:27 -0700)]
Merge "convolve: support larger blocks, fix asm saturation bug" into experimental

11 years agoMerge "Replacing VP9_COMBINEENTROPYCONTEXTS macro with function." into experimental
Dmitry Kovalev [Thu, 18 Apr 2013 21:26:34 +0000 (14:26 -0700)]
Merge "Replacing VP9_COMBINEENTROPYCONTEXTS macro with function." into experimental

11 years agoMerge "Moving functions from vp9_dboolhuff.c to vp9_decodframe.c." into experimental
Dmitry Kovalev [Thu, 18 Apr 2013 21:26:18 +0000 (14:26 -0700)]
Merge "Moving functions from vp9_dboolhuff.c to vp9_decodframe.c." into experimental

11 years agoMerge "Renaming y1dc_delta_q, uvdc_delta_q, uvac_delta_q fields from VP9Common."...
Dmitry Kovalev [Thu, 18 Apr 2013 21:26:06 +0000 (14:26 -0700)]
Merge "Renaming y1dc_delta_q, uvdc_delta_q, uvac_delta_q fields from VP9Common." into experimental

11 years agoMerge "Transforming decode_sb_row to decode_tile function." into experimental
Dmitry Kovalev [Thu, 18 Apr 2013 21:25:52 +0000 (14:25 -0700)]
Merge "Transforming decode_sb_row to decode_tile function." into experimental

11 years agoconvolve: support larger blocks, fix asm saturation bug
John Koleszar [Thu, 18 Apr 2013 20:05:38 +0000 (13:05 -0700)]
convolve: support larger blocks, fix asm saturation bug

Updates the common convoloution code to support blocks larger than
16x16, and rectangular blocks. This uncovered a bug in the SSSE3
filtering routines due to the order of application of saturation.
This commit fixes that bug, adjusts the unit test to bias its
random values towards the extremes, and adds a test to ensure that
all filters conform to the expected pairwise addition structure.

Change-Id: I81f69668b1de0de5a8ed43f0643845641525c8f0

11 years agoMotion vector decoding code cleanup.
Dmitry Kovalev [Thu, 18 Apr 2013 18:05:34 +0000 (11:05 -0700)]
Motion vector decoding code cleanup.

Change-Id: I9790baedbd4acb7113575efc6f228b2656c42ff7

11 years agoMerge "Use BLOCK_SIZE_TYPE in foreach_ walker" into experimental
John Koleszar [Thu, 18 Apr 2013 04:02:58 +0000 (21:02 -0700)]
Merge "Use BLOCK_SIZE_TYPE in foreach_ walker" into experimental

11 years agoMerge "Fix edge bug in recent merge of 64x64 and 32x32 inter predictors." into experi...
Ronald S. Bultje [Wed, 17 Apr 2013 23:30:42 +0000 (16:30 -0700)]
Merge "Fix edge bug in recent merge of 64x64 and 32x32 inter predictors." into experimental

11 years agoFix edge bug in recent merge of 64x64 and 32x32 inter predictors.
Ronald S. Bultje [Wed, 17 Apr 2013 23:12:02 +0000 (16:12 -0700)]
Fix edge bug in recent merge of 64x64 and 32x32 inter predictors.

Change-Id: I83aa188d414922db19cccb210c4001c02d5a404c

11 years agoMerge "Remove skip_recon_sb" into experimental
Yunqing Wang [Wed, 17 Apr 2013 22:56:58 +0000 (15:56 -0700)]
Merge "Remove skip_recon_sb" into experimental

11 years agoRemove skip_recon_sb
Yunqing Wang [Fri, 12 Apr 2013 23:57:23 +0000 (16:57 -0700)]
Remove skip_recon_sb

Removed skip_recon_sb(). Cleanup code so that we could combine
decode_sb and decode_mb later.

Change-Id: I24d1dd5283e2565072838a03c344938b88bfd35c

11 years agoUse BLOCK_SIZE_TYPE in foreach_ walker
John Koleszar [Fri, 12 Apr 2013 21:12:05 +0000 (14:12 -0700)]
Use BLOCK_SIZE_TYPE in foreach_ walker

Change-Id: I655305c9e22bdd9abc893d3c40d4bc6616aa1d35

11 years agoMerge "clean out experiments" into experimental
Yaowu Xu [Wed, 17 Apr 2013 21:53:00 +0000 (14:53 -0700)]
Merge "clean out experiments" into experimental

11 years agoMerge "make lf_deltas dependent on filter_lvl" into experimental
Yaowu Xu [Wed, 17 Apr 2013 21:51:55 +0000 (14:51 -0700)]
Merge "make lf_deltas dependent on filter_lvl" into experimental

11 years agoMerge "Make alt_extra_bits a local variable" into experimental
Adrian Grange [Wed, 17 Apr 2013 21:50:39 +0000 (14:50 -0700)]
Merge "Make alt_extra_bits a local variable" into experimental

11 years agoMerge "Remove unused file vp9_context.c." into experimental
Ronald S. Bultje [Wed, 17 Apr 2013 20:49:48 +0000 (13:49 -0700)]
Merge "Remove unused file vp9_context.c." into experimental

11 years agoTransforming decode_sb_row to decode_tile function.
Dmitry Kovalev [Wed, 17 Apr 2013 20:42:51 +0000 (13:42 -0700)]
Transforming decode_sb_row to decode_tile function.

Also moving frame size check into read_frame_size function.

Change-Id: Ib098d83bd50081bfc2941c87aea0dc58cb39583e

11 years agoRemove unused file vp9_context.c.
Ronald S. Bultje [Wed, 17 Apr 2013 20:40:31 +0000 (13:40 -0700)]
Remove unused file vp9_context.c.

Change-Id: Id268ccaf1aefee6a3ed3e31486d4370f1c25e8cb

11 years agoMoving functions from vp9_dboolhuff.c to vp9_decodframe.c.
Dmitry Kovalev [Wed, 17 Apr 2013 19:14:27 +0000 (12:14 -0700)]
Moving functions from vp9_dboolhuff.c to vp9_decodframe.c.

List of moved functions: vp9_decode_uniform, vp9_decode_term_subexp,
vo9_inv_recenter_nonneg, vp9_decode_unsigned_max.

Change-Id: Ib518beb90b791690c5c93de17b8bdbf560033b41

11 years agoAdding DEFAULT_PRED_PROB_{0, 1, 2} constants.
Dmitry Kovalev [Wed, 17 Apr 2013 18:45:35 +0000 (11:45 -0700)]
Adding DEFAULT_PRED_PROB_{0, 1, 2} constants.

Also using ALLOWED_REFS_PER_FRAME instead of 3.

Change-Id: I810dd8521d8138edb9dbd78edede49b62f706554

11 years agoMerge "Remove BLOCK_SIZE_LG2." into experimental
Ronald S. Bultje [Wed, 17 Apr 2013 18:22:44 +0000 (11:22 -0700)]
Merge "Remove BLOCK_SIZE_LG2." into experimental

11 years agoMerge "Add SSE2 versions for rectangular sad and sad4d functions." into experimental
Ronald S. Bultje [Wed, 17 Apr 2013 18:22:32 +0000 (11:22 -0700)]
Merge "Add SSE2 versions for rectangular sad and sad4d functions." into experimental

11 years agoChanging argument type of vp9_get_mv_joint from MV to MV*.
Dmitry Kovalev [Wed, 17 Apr 2013 18:21:28 +0000 (11:21 -0700)]
Changing argument type of vp9_get_mv_joint from MV to MV*.

Change-Id: I28c3026946fc1bde7074e6e0198da93bb0d75dfe

11 years agoMerge "replace hev_thr_lut[][] with simpler logic" into experimental
Yaowu Xu [Wed, 17 Apr 2013 18:08:36 +0000 (11:08 -0700)]
Merge "replace hev_thr_lut[][] with simpler logic" into experimental

11 years agoMake alt_extra_bits a local variable
Adrian Grange [Wed, 17 Apr 2013 18:07:12 +0000 (11:07 -0700)]
Make alt_extra_bits a local variable

alt_extra_bits is now only used in a local context so
remove it from the twopass_rc structure.

Change-Id: I5bbf0a3dba9712a3da45760f7bb865243705b53e

11 years agoclean out experiments
Yaowu Xu [Mon, 15 Apr 2013 17:35:59 +0000 (10:35 -0700)]
clean out experiments

that are related to using reconstructed pixel for selecting reference
motion vectors.

Change-Id: I048dfae39ca7385e344b57d46347ecc6e753e1bb

11 years agoRemove BLOCK_SIZE_LG2.
Ronald S. Bultje [Wed, 17 Apr 2013 18:00:30 +0000 (11:00 -0700)]
Remove BLOCK_SIZE_LG2.

It is unused.

Change-Id: Ied3269ffacf9b6303bc9d85f996384c3575ef812

11 years agomake lf_deltas dependent on filter_lvl
Yaowu Xu [Thu, 4 Apr 2013 16:00:53 +0000 (09:00 -0700)]
make lf_deltas dependent on filter_lvl

Change-Id: Idb0d11e3ae9afabe667a9f327bf4d3aa84f63649

11 years agoreplace hev_thr_lut[][] with simpler logic
Yaowu Xu [Wed, 3 Apr 2013 22:22:54 +0000 (15:22 -0700)]
replace hev_thr_lut[][] with simpler logic

Using filter_level/16 instead.

Change-Id: I73a7e83a785d6aa6f9b5d22cf66e22f0a39ed078

11 years agoMerge "Fairly basic integration of rectangular blocks in encoding RD loop." into...
Ronald S. Bultje [Wed, 17 Apr 2013 17:46:45 +0000 (10:46 -0700)]
Merge "Fairly basic integration of rectangular blocks in encoding RD loop." into experimental

11 years agoMerge "Change to do LPF in SB64 order" into experimental
Yaowu Xu [Wed, 17 Apr 2013 17:37:20 +0000 (10:37 -0700)]
Merge "Change to do LPF in SB64 order" into experimental

11 years agoAdd SSE2 versions for rectangular sad and sad4d functions.
Ronald S. Bultje [Wed, 17 Apr 2013 17:31:59 +0000 (10:31 -0700)]
Add SSE2 versions for rectangular sad and sad4d functions.

About 11% overall encoder speedup with the sbsegment experiment enabled.

Change-Id: Iffb1bdba6932d9f11a6c791cda8697ccf9327183

11 years agoChange to do LPF in SB64 order
Yaowu Xu [Thu, 11 Apr 2013 00:43:58 +0000 (17:43 -0700)]
Change to do LPF in SB64 order

Change-Id: I41b3f5932ecd6256e8207369ad19aa81e7987be1

11 years agoMerge "Move configure_arnr_filter function" into experimental
Adrian Grange [Wed, 17 Apr 2013 17:12:31 +0000 (10:12 -0700)]
Merge "Move configure_arnr_filter function" into experimental

11 years agoMerge "Fixed overflow test on boost calculation" into experimental
Adrian Grange [Wed, 17 Apr 2013 17:12:15 +0000 (10:12 -0700)]
Merge "Fixed overflow test on boost calculation" into experimental

11 years agoFairly basic integration of rectangular blocks in encoding RD loop.
Ronald S. Bultje [Wed, 17 Apr 2013 16:25:06 +0000 (09:25 -0700)]
Fairly basic integration of rectangular blocks in encoding RD loop.

Adds RD integration for 32x16, 16x32, 64x32 and 32x64 rectangular blocks.
Derf almost +0.6%, HD a little over +1.0%, STDHD +1.3%.

Change-Id: Id651fdb6a655fdbb5c47009757e63317acfb88a5

11 years agoRecursive partition syntax coding
Jingning Han [Tue, 16 Apr 2013 07:18:02 +0000 (00:18 -0700)]
Recursive partition syntax coding

Enable recursive partition information coding from SB64X64 down to
MB16X16. The bit-stream syntax is now supporting rectangular block
sizes. It starts from SB64X64 and recursively describes the partition
type of the current block. If the partition type is PARTITION_NONE,
the block is coded as a single unit; if it is PARTITION_HORZ or
PARTITION_VERT, the block is segmented into two independently coded
rectangular units, with no further partition needed; otherwise, the
block is segmented into 4 square blocks. i.e., PARTITION_SPLIT case,
each can be potentially further partitioned.

Forward adaptive probability modeling is used for the partition
information coding, conditioned on the current block size.

Change-Id: I499365fb547839d555498e3bcc0387d8a3587d87

11 years agoMerge "Replacing BOOL_DECODER with vp9_reader inside vp9_decodemv." into experimental
Dmitry Kovalev [Wed, 17 Apr 2013 01:27:35 +0000 (18:27 -0700)]
Merge "Replacing BOOL_DECODER with vp9_reader inside vp9_decodemv." into experimental

11 years agoMerge "Adding vp9_write_prob function (macro for now)." into experimental
Dmitry Kovalev [Wed, 17 Apr 2013 01:22:21 +0000 (18:22 -0700)]
Merge "Adding vp9_write_prob function (macro for now)." into experimental

11 years agoReplacing BOOL_DECODER with vp9_reader inside vp9_decodemv.
Dmitry Kovalev [Tue, 16 Apr 2013 21:03:05 +0000 (14:03 -0700)]
Replacing BOOL_DECODER with vp9_reader inside vp9_decodemv.

Also a little bit of code cleanup: replacing pbi->common with cm,
pbi->mb with xd.

Change-Id: I2f70a005704a2833d644dfaafc4cd354e6e8532b

11 years agoMerge "Adding write_le16 and write_le32 functions." into experimental
John Koleszar [Wed, 17 Apr 2013 00:45:48 +0000 (17:45 -0700)]
Merge "Adding write_le16 and write_le32 functions." into experimental

11 years agoMerge "Slightly hackish workaround to support rectangles in directional intra predict...
Ronald S. Bultje [Wed, 17 Apr 2013 00:05:20 +0000 (17:05 -0700)]
Merge "Slightly hackish workaround to support rectangles in directional intra predictors." into experimental

11 years agoMerge "Faster vp9_short_fdct4x4 and vp9_short_fdct8x4." into experimental
Jim Bankoski [Tue, 16 Apr 2013 23:33:43 +0000 (16:33 -0700)]
Merge "Faster vp9_short_fdct4x4 and vp9_short_fdct8x4." into experimental

11 years agoAdding write_le16 and write_le32 functions.
Dmitry Kovalev [Tue, 16 Apr 2013 23:26:25 +0000 (16:26 -0700)]
Adding write_le16 and write_le32 functions.

Change-Id: I7057ed8e2a13a3c5367e2923eb4b3260bd7cf546

11 years agoAdding vp9_write_prob function (macro for now).
Dmitry Kovalev [Tue, 16 Apr 2013 23:23:17 +0000 (16:23 -0700)]
Adding vp9_write_prob function (macro for now).

Change-Id: Ic795cf6fc202bf32c9b5b0b3cef9ac422af53cd0

11 years agoFaster vp9_short_fdct4x4 and vp9_short_fdct8x4.
Christian Duvivier [Mon, 25 Mar 2013 23:18:38 +0000 (16:18 -0700)]
Faster vp9_short_fdct4x4 and vp9_short_fdct8x4.

Scalar path is about 1.3x faster (2.1% overall encoder speedup).
SSE2 path is about 5.0x faster (8.4% overall encoder speedup).

Change-Id: I360d167b5ad6f387bba00406129323e2fe6e7dda

11 years agoMove configure_arnr_filter function
Adrian Grange [Tue, 16 Apr 2013 22:55:31 +0000 (15:55 -0700)]
Move configure_arnr_filter function

This function is now called from configures the ARNR
filter so it belongs with the other temporal filter
functions.

Change-Id: I64211875918364b5b8edfb97743e573c6def1663

11 years agoReplacing VP9_COMBINEENTROPYCONTEXTS macro with function.
Dmitry Kovalev [Tue, 16 Apr 2013 22:30:28 +0000 (15:30 -0700)]
Replacing VP9_COMBINEENTROPYCONTEXTS macro with function.

Change-Id: I3bbc31840af69481e1d9bb4427c9ee25abf82946

11 years agoFixed overflow test on boost calculation
Adrian Grange [Tue, 16 Apr 2013 22:12:20 +0000 (15:12 -0700)]
Fixed overflow test on boost calculation

Normalization of the frame boost value was being done
when it reached the value 1028. The intention was to
keep to a range of 10 bits, so it should have been
clipped above 1023.

Change-Id: I0afdddc1d2eb9e7822ec4578903cbe6ec0b33b91

11 years agoRenaming y1dc_delta_q, uvdc_delta_q, uvac_delta_q fields from VP9Common.
Dmitry Kovalev [Tue, 16 Apr 2013 22:05:52 +0000 (15:05 -0700)]
Renaming y1dc_delta_q, uvdc_delta_q, uvac_delta_q fields from VP9Common.

New names are y_dc_delta_q, uv_dc_delta_q, uv_ac_delta_q.

Change-Id: I4acae1fc23a4697ce2c5a5becb8dc28ef0a4b552

11 years agoSlightly hackish workaround to support rectangles in directional intra predictors.
Ronald S. Bultje [Sun, 14 Apr 2013 17:37:49 +0000 (10:37 -0700)]
Slightly hackish workaround to support rectangles in directional intra predictors.

Change-Id: I8a4da6925f2d58a426c4d122df8b97bb69452e49

11 years agoMerge "Moving tx_type == DCT_DCT checks inside iht_add functions." into experimental
Dmitry Kovalev [Tue, 16 Apr 2013 21:18:37 +0000 (14:18 -0700)]
Merge "Moving tx_type == DCT_DCT checks inside iht_add functions." into experimental

11 years agoRemove the mb_no_coeff_skip flag
John Koleszar [Tue, 9 Apr 2013 17:54:19 +0000 (10:54 -0700)]
Remove the mb_no_coeff_skip flag

This flag was added to VP8 to allow a mode where MB-level skipping
was not allowed, saving a bit per mb. It was never used in practice,
and hasn't been tested in VP9, so remove it.

Change-Id: Id450ec6904c6d06c1919508e7efc52d05cde5631

11 years agoMoving tx_type == DCT_DCT checks inside iht_add functions.
Dmitry Kovalev [Tue, 16 Apr 2013 18:02:57 +0000 (11:02 -0700)]
Moving tx_type == DCT_DCT checks inside iht_add functions.

tx_type == DCT_DCT check is an implementation detail of iht_add. Also
adding dequant_add_y function with explicit DCT_DCT check inside.

Change-Id: Ia3cb0225601752cdef0ff6f0acd3a09d9dbd8938

11 years agoMerge "Code cleanup inside vp9_reconintra4x4.c file." into experimental
Dmitry Kovalev [Tue, 16 Apr 2013 17:24:32 +0000 (10:24 -0700)]
Merge "Code cleanup inside vp9_reconintra4x4.c file." into experimental

11 years agoMerge "Adding mv_joint_vertical and mv_joint_horizontal functions." into experimental
Dmitry Kovalev [Tue, 16 Apr 2013 17:24:01 +0000 (10:24 -0700)]
Merge "Adding mv_joint_vertical and mv_joint_horizontal functions." into experimental

11 years agoMerge "Optimize the scaling calculation" into experimental
Yunqing Wang [Tue, 16 Apr 2013 16:14:22 +0000 (09:14 -0700)]
Merge "Optimize the scaling calculation" into experimental

11 years agoMerge "Removing extra params from x_add_residual() functions" into experimental
Scott LaVarnway [Tue, 16 Apr 2013 15:58:28 +0000 (08:58 -0700)]
Merge "Removing extra params from x_add_residual() functions" into experimental

11 years agoOptimize the scaling calculation
Yunqing Wang [Thu, 4 Apr 2013 16:56:02 +0000 (09:56 -0700)]
Optimize the scaling calculation

In decoder, the scaling calculation, such as (mv * x_num / x_den),
is fairly time-consuming. In this patch, we check if the scaling
happens or not at frame level, and then decide which function to
call to skip scaling calculation when no scaling is needed. Tests
showed a 3% decoder performance gain.

Change-Id: I270901dd0331048e50368cfd51ce273dd82b8733

11 years agoMerge "Replacing vp9_read, vp9_read_literal, vp9_read_bit macros with functions....
John Koleszar [Tue, 16 Apr 2013 14:00:40 +0000 (07:00 -0700)]
Merge "Replacing vp9_read, vp9_read_literal, vp9_read_bit macros with functions." into experimental

11 years agoRemoving extra params from x_add_residual() functions
Scott LaVarnway [Tue, 16 Apr 2013 13:59:01 +0000 (09:59 -0400)]
Removing extra params from x_add_residual() functions

Now that the predictor is the dest, we do not need the
extra parameters.

Change-Id: I31e2c3d2015f4a1cd12e7f04536d8db478582a0a

11 years agoMerge "Removing TRUE and FALSE macro definitions." into experimental
John Koleszar [Tue, 16 Apr 2013 13:55:13 +0000 (06:55 -0700)]
Merge "Removing TRUE and FALSE macro definitions." into experimental

11 years agoMerge "Removing extra params in dequant functions" into experimental
Scott LaVarnway [Tue, 16 Apr 2013 13:37:00 +0000 (06:37 -0700)]
Merge "Removing extra params in dequant functions" into experimental

11 years agoRemoving TRUE and FALSE macro definitions.
Dmitry Kovalev [Mon, 15 Apr 2013 22:24:39 +0000 (15:24 -0700)]
Removing TRUE and FALSE macro definitions.

Using regular 0 and 1 constants now.

Change-Id: Ie763503cbb727847cc8f1d6506cd6f2ee607f056

11 years agoReplacing vp9_read, vp9_read_literal, vp9_read_bit macros with functions.
Dmitry Kovalev [Mon, 15 Apr 2013 21:54:19 +0000 (14:54 -0700)]
Replacing vp9_read, vp9_read_literal, vp9_read_bit macros with functions.

This is the first CL with vp9_reader changes. All another macro
definitions will be replaced after.

Change-Id: I1c6bd9c9a612ec1663d484d6adb4fb720af54063

11 years agoMerge "Fix lingering x->skip settings if static_threshold is used." into experimental
Ronald S. Bultje [Mon, 15 Apr 2013 21:20:47 +0000 (14:20 -0700)]
Merge "Fix lingering x->skip settings if static_threshold is used." into experimental

11 years agoMerge "Add rectangular block size variance/sad functions." into experimental
Ronald S. Bultje [Mon, 15 Apr 2013 21:20:25 +0000 (14:20 -0700)]
Merge "Add rectangular block size variance/sad functions." into experimental

11 years agoMerge "Make filter RD code and encode breakout variance size-independent." into exper...
Ronald S. Bultje [Mon, 15 Apr 2013 20:58:01 +0000 (13:58 -0700)]
Merge "Make filter RD code and encode breakout variance size-independent." into experimental

11 years agoFix lingering x->skip settings if static_threshold is used.
Ronald S. Bultje [Mon, 15 Apr 2013 19:50:32 +0000 (12:50 -0700)]
Fix lingering x->skip settings if static_threshold is used.

Keyframes don't set this variable, so it would use the last set
values from inter frames.

Change-Id: Ie1ef45ece2c44b21b5d55f6cea9f7d6e7a445692

11 years agoAdd rectangular block size variance/sad functions.
Jingning Han [Mon, 15 Apr 2013 17:00:34 +0000 (10:00 -0700)]
Add rectangular block size variance/sad functions.

With this, the RD loop properly supports rectangular blocks.

Change-Id: Iece79048fb4e84741ee1ada982da129a7bf00470

11 years agoMake filter RD code and encode breakout variance size-independent.
Ronald S. Bultje [Sat, 13 Apr 2013 17:01:46 +0000 (10:01 -0700)]
Make filter RD code and encode breakout variance size-independent.

Static threshold results slightly up (+0.1% on derf), probably b/c
we now take the filter (sharp/lowpass) into account for the breakout
decision.

Change-Id: I9f597601da434205142afd05f32690e7ba8fd690

11 years agoAdding mv_joint_vertical and mv_joint_horizontal functions.
Dmitry Kovalev [Mon, 15 Apr 2013 19:07:26 +0000 (12:07 -0700)]
Adding mv_joint_vertical and mv_joint_horizontal functions.

Change-Id: Ieaec2c48f3752b8558ba051caaf4ba2ab0e9e84d

11 years agoMerge "Motion vector decoder cleanup." into experimental
Dmitry Kovalev [Mon, 15 Apr 2013 18:28:52 +0000 (11:28 -0700)]
Merge "Motion vector decoder cleanup." into experimental

11 years agoCode cleanup inside vp9_reconintra4x4.c file.
Dmitry Kovalev [Mon, 15 Apr 2013 17:54:40 +0000 (10:54 -0700)]
Code cleanup inside vp9_reconintra4x4.c file.

Using ROUND_POWER_OF_TWO macro, using array initialization syntax for
less code.

Change-Id: I661453a6b29a9046fcff0a3f18fccb452b5eb39d

11 years agoRemoving extra params in dequant functions
Scott LaVarnway [Mon, 15 Apr 2013 17:43:11 +0000 (13:43 -0400)]
Removing extra params in dequant functions

Now that the predictor is the dest, we do not need the
extra parameters.

Change-Id: I78db73d39b5aff62f15303f3d51ad2797eae74b6

11 years agoMerge "Reorder enum i4X4 predcition modes" into experimental
Yaowu Xu [Mon, 15 Apr 2013 17:37:37 +0000 (10:37 -0700)]
Merge "Reorder enum i4X4 predcition modes" into experimental

11 years agoMerge "Fix width/height switch-up in U/V SB quantize code." into experimental
Ronald S. Bultje [Mon, 15 Apr 2013 17:27:22 +0000 (10:27 -0700)]
Merge "Fix width/height switch-up in U/V SB quantize code." into experimental

11 years agoMerge "Removed unused structs in vp9_onyx_int.h." into experimental
Ronald S. Bultje [Mon, 15 Apr 2013 17:27:10 +0000 (10:27 -0700)]
Merge "Removed unused structs in vp9_onyx_int.h." into experimental

11 years agoFix width/height switch-up in U/V SB quantize code.
Ronald S. Bultje [Sat, 13 Apr 2013 19:40:34 +0000 (12:40 -0700)]
Fix width/height switch-up in U/V SB quantize code.

Change-Id: I697514efd6024e1b4153bbde58ae5e323b030981

11 years agoRemoved unused structs in vp9_onyx_int.h.
Ronald S. Bultje [Sat, 13 Apr 2013 17:06:58 +0000 (10:06 -0700)]
Removed unused structs in vp9_onyx_int.h.

Change-Id: I1f2dbf04a0140a7cc2060b0a9efb4ed8e5270d3d

11 years agoMerge "Initial addition of multiple ARF frames" into experimental
Adrian Grange [Mon, 15 Apr 2013 16:46:16 +0000 (09:46 -0700)]
Merge "Initial addition of multiple ARF frames" into experimental

11 years agoInitial addition of multiple ARF frames
Adrian Grange [Tue, 2 Apr 2013 22:08:50 +0000 (15:08 -0700)]
Initial addition of multiple ARF frames

This is work-in-progress, it implements multiple ARF
encoding behind an experimental flag.

It adds the ability to insert multiple ARF frames into a
single ARF group. This patch implements the reordering
of the coded frames, and implements a fixed-length coding
pattern. It applies a fixed quantizer strategy based on
where the frame is in the coding sequence.

Further work to modify the rate control strategy is
ongoing and will be submitted via a set of future patches.

In this first step, each ARF group is recursively
bisected and an ARF frame added at that position in the
sequence. The recursion continues until ARF frames are
within MIN_GF_INTERVAL frames.

The code sits behind the "multiple-arf" experimental
flag ("CONFIG_MULTIPLE_ARF"). The experimental flag
"oneshotq" ("CONFIG_ONESHOTQ") also needs to be enabled
for this patch to work correctly.

Change-Id: Ie473b05ebb43ac473c0cfb659b2b8042823085e2