platform/upstream/libvpx.git
9 years agoMerge "Remove unused ONE_LOOP entry from speed feature"
Jingning Han [Wed, 3 Dec 2014 19:34:42 +0000 (11:34 -0800)]
Merge "Remove unused ONE_LOOP entry from speed feature"

9 years agoMerge "Rework coeff probability model update for rtc coding"
Jingning Han [Wed, 3 Dec 2014 19:34:35 +0000 (11:34 -0800)]
Merge "Rework coeff probability model update for rtc coding"

9 years agoEnable non-rd mode coding on key frame, for speed 6.
Marco [Wed, 12 Nov 2014 22:51:49 +0000 (14:51 -0800)]
Enable non-rd mode coding on key frame, for speed 6.

For key frame at speed 6: enable the non-rd mode selection in speed setting
and use the (non-rd) variance_based partition.

Adjust some logic/thresholds in variance partition selection for key frame only (no change to delta frames),
mainly to bias to selecting smaller prediction blocks, and also set max tx size of 16x16.

Loss in key frame quality (~0.6-0.7dB) compared to rd coding,
but speeds up key frame encoding by at least 6x.
Average PNSR/SSIM metrics over RTC clips go down by ~1-2% for speed 6.

Change-Id: Ie4845e0127e876337b9c105aa37e93b286193405

9 years agoRemove unused ONE_LOOP entry from speed feature
Jingning Han [Wed, 3 Dec 2014 02:26:03 +0000 (18:26 -0800)]
Remove unused ONE_LOOP entry from speed feature

Change-Id: I56ead0ebc2491144c4e79e5859b05e126176702c

9 years agoRework coeff probability model update for rtc coding
Jingning Han [Wed, 3 Dec 2014 02:16:06 +0000 (18:16 -0800)]
Rework coeff probability model update for rtc coding

This commit reworks the ONE_LOOP_REDUCED coefficient probability
model update process. It allows model update for every coefficient
across the spectrum at a coarser resolution, instead of performing
precise update only for certain subset of probability models.

The overall runtime remains nearly same (<1% change) for speed -6.
The compression performance is improved by 7.5% in PSNR for speed
-5 and 4.57% for speed -6, respectively.

Change-Id: Ifb17136382ee7e39a9f34ff4a4f09a753125c8d1

9 years agoMerge "Reinsert macro to fix issue 884."
Debargha Mukherjee [Tue, 2 Dec 2014 23:32:24 +0000 (15:32 -0800)]
Merge "Reinsert macro to fix issue 884."

9 years agoMerge "Fix a warning related to VPX_EFLAG_FORCE_KF check"
Deb Mukherjee [Tue, 2 Dec 2014 22:03:55 +0000 (14:03 -0800)]
Merge "Fix a warning related to VPX_EFLAG_FORCE_KF check"

9 years agoReinsert macro to fix issue 884.
Peter de Rivaz [Tue, 2 Dec 2014 12:14:52 +0000 (12:14 +0000)]
Reinsert macro to fix issue 884.

Change 72056 unfolded some macro definitions,
but lost some alternative behaviour required for
high bitdepth encodes.
This causes the encoder to crash, see issue 884.

Change-Id: I8ce4d73c9fe0a3c10ccb86fba210fabc8b2f0ccc

9 years agoMerge "Added high bitdepth sse2 transform functions"
Debargha Mukherjee [Tue, 2 Dec 2014 20:29:21 +0000 (12:29 -0800)]
Merge "Added high bitdepth sse2 transform functions"

9 years agoFix a warning related to VPX_EFLAG_FORCE_KF check
Deb Mukherjee [Tue, 2 Dec 2014 19:35:52 +0000 (11:35 -0800)]
Fix a warning related to VPX_EFLAG_FORCE_KF check

Fixes a warning in chrome build.

Change-Id: I8fa0fd3e7ba1aecf89e5f79ce94cd64ed6a9567c

9 years agoAdded high bitdepth sse2 transform functions
Peter de Rivaz [Fri, 24 Oct 2014 07:48:02 +0000 (08:48 +0100)]
Added high bitdepth sse2 transform functions

Also removes some spurious changes in common/vp9_blockd.h which
was introduced by a rebase issue between nextgen and master branches.

Change-Id: If359f0e9a71bca9c2ba685a87a355873536bb282
(cherry picked from commit 005d80cd05269a299cd2f7ddbc3d4d8b791aebba)
(cherry picked from commit 08d2f548007fd8d6fd41da8ef7fdb488b6485af3)
(cherry picked from commit 4230c2306c194c058f56433a5275aa02a2e71d56)

9 years agoEnforce error resilient mode on in temporal svc real-time mode
Jingning Han [Tue, 2 Dec 2014 18:50:39 +0000 (10:50 -0800)]
Enforce error resilient mode on in temporal svc real-time mode

This commit makes the codec automatically turn on error resilient
mode when using real-time mode for temporal scalable coding. It
fixes an enc/dec mismatch issue and re-enables the corresponding
unit test.

Change-Id: Ie1f7134e9a78ddd43e9b1555b3ee991c8a3afd0d

9 years agoMerge "Cyclic refresh: factor segment delta-q into rate control."
Marco Paniconi [Tue, 2 Dec 2014 17:14:48 +0000 (09:14 -0800)]
Merge "Cyclic refresh: factor segment delta-q into rate control."

9 years agoMerge "Turn off temporal svc unit test in RTC setting"
Jingning Han [Tue, 2 Dec 2014 01:35:11 +0000 (17:35 -0800)]
Merge "Turn off temporal svc unit test in RTC setting"

9 years agoCyclic refresh: factor segment delta-q into rate control.
Marco Paniconi [Thu, 3 Apr 2014 01:37:04 +0000 (18:37 -0700)]
Cyclic refresh: factor segment delta-q into rate control.

Incorporate segment delta-q into estimated bits.
This generally improves the rate control under cyclic refresh (aq=3) mode.

Change-Id: I1dc60fb230e7d08357fae18909d8ed27bf58e037

9 years agoTurn off temporal svc unit test in RTC setting
Jingning Han [Mon, 1 Dec 2014 01:40:58 +0000 (17:40 -0800)]
Turn off temporal svc unit test in RTC setting

A hidden enc/dec mismatch bug was accidentally triggered by
https://gerrit.chromium.org/gerrit/#/c/72247/
Adaptively adjust mode test kick-off thresholds in RTC coding

This commit temporarily turns off the broken unit tests to avoid
blocking other CLs while fixing.

Change-Id: I0a0f195030321190ce10879cd833187680576367

9 years agoMerge "Remove repeated search_type_check_frequency assign"
Jingning Han [Mon, 1 Dec 2014 22:02:10 +0000 (14:02 -0800)]
Merge "Remove repeated search_type_check_frequency assign"

9 years agoMerge "vp9_ethread: calculate and save the tok starting address for tiles"
Yunqing Wang [Mon, 1 Dec 2014 20:49:03 +0000 (12:49 -0800)]
Merge "vp9_ethread: calculate and save the tok starting address for tiles"

9 years agoRemove default cortex-a8 tuning.
Johann [Mon, 1 Dec 2014 19:06:49 +0000 (11:06 -0800)]
Remove default cortex-a8 tuning.

Probably not even the dominant platform the library is being built for.
Add --cpu= option description to help. The option already exists.

Don't allow passing just --cpu as a no-op.

BUG=826

Change-Id: Iaa3f4f693ec78b18927b159b480daafeba0549c0

9 years agotemporal_svc encoder: Change default setting for layering_mode = 0.
Marco [Wed, 26 Nov 2014 19:11:34 +0000 (11:11 -0800)]
temporal_svc encoder: Change default setting for layering_mode = 0.

Change-Id: I5f723ada144d0bd82ee700ef28a4916fd64ba5e4

9 years agoMerge "Separate rate_correction_factor for boosted GFs"
Yaowu Xu [Wed, 26 Nov 2014 15:56:43 +0000 (07:56 -0800)]
Merge "Separate rate_correction_factor for boosted GFs"

9 years agoRemove repeated search_type_check_frequency assign
Jingning Han [Wed, 26 Nov 2014 02:34:42 +0000 (18:34 -0800)]
Remove repeated search_type_check_frequency assign

This parameter is initialized as 50. No need to re-assign the
same value in speed -6.

Change-Id: I8735a5593412df2fdcee53ae45c8ebd1c3d792e7

9 years agovp9_ethread: calculate and save the tok starting address for tiles
Yunqing Wang [Wed, 26 Nov 2014 00:53:47 +0000 (16:53 -0800)]
vp9_ethread: calculate and save the tok starting address for tiles

Each tile's tok starting address is calculated before the encoding
process. These addresses are stored so that the same calculation
won't be done again in packing bit stream.

Change-Id: I0a3be0301f002260c19a850303f2f73ebc47aa50

9 years agoMerge "tests: enable resize_test for vp8"
James Zern [Tue, 25 Nov 2014 23:12:41 +0000 (15:12 -0800)]
Merge "tests: enable resize_test for vp8"

9 years agoSeparate rate_correction_factor for boosted GFs
Yaowu Xu [Fri, 21 Nov 2014 19:55:27 +0000 (11:55 -0800)]
Separate rate_correction_factor for boosted GFs

When the golden frame is boosted, the rate correction factor is not
correlated well with other inter frames even in CBR mode. This commit
changes to use GF specific rate_correction_factor when gf_cbr_boost
is greater than 20%.

Change-Id: I6312c1564387bcacc11f4c5e8a9cfdc781b5c3ab

9 years agoRemove unfreed memory in quantize_test.cc
Johann [Tue, 25 Nov 2014 20:06:56 +0000 (12:06 -0800)]
Remove unfreed memory in quantize_test.cc

vp8_config doesn't need to be on the stack. Just use a local copy.

Change-Id: Ia241b1d87fd9422556d957f3ea43ad71eb5c414a

9 years agoCosmetic change in vp9_pick_inter_mode
Jingning Han [Mon, 24 Nov 2014 23:54:55 +0000 (15:54 -0800)]
Cosmetic change in vp9_pick_inter_mode

Change-Id: Ic072585ebffdb36982ed7b8b9f875ca6c1c656c4

9 years agoAdaptively adjust mode test kick-off thresholds in RTC coding
Jingning Han [Mon, 24 Nov 2014 22:40:42 +0000 (14:40 -0800)]
Adaptively adjust mode test kick-off thresholds in RTC coding

This commit allows the encoder to increase the mode test kick-off
thresholds if the previous best mode renders all zero quantized
coefficients, thereby saving motion search runs when possible.
The compression performance of speed -5 and -6 is down by -0.446%
and 0.591%, respectively. The runtime of speed -6 is improved by
10% for many test clips.

vidyo1, 1000 kbps
16578 b/f, 40.316 dB, 7873 ms -> 16575 b/f, 40.262 dB, 7126 ms

nik720p, 1000 kbps
33311 b/f, 38.651 dB, 7263 ms -> 33304 b/f, 38.629 dB, 6865 ms

dark720p, 1000 kbps
33331 b/f, 39.718 dB, 13596 ms -> 33324 b/f, 39.651 dB, 12000 ms

mmoving, 1000 kbps
33263 b/f, 40.983 dB, 7566 ms -> 33259 b/f, 40.978 dB, 7531 ms

Change-Id: I7591617ff113e91125ec32c9b853e257fbc41d90

9 years agoMerge "Rework forward txfm/quantization skip system in RTC coding mode"
Jingning Han [Tue, 25 Nov 2014 17:33:57 +0000 (09:33 -0800)]
Merge "Rework forward txfm/quantization skip system in RTC coding mode"

9 years agoMerge "Remove redundant intra mode penalty from vp9_pick_inter_mode"
Jingning Han [Tue, 25 Nov 2014 06:13:44 +0000 (22:13 -0800)]
Merge "Remove redundant intra mode penalty from vp9_pick_inter_mode"

9 years agovp9_ethread: modify VP9_COMP structure
Yunqing Wang [Fri, 21 Nov 2014 19:11:06 +0000 (11:11 -0800)]
vp9_ethread: modify VP9_COMP structure

This patch modified struct VP9_COMP. Created a struct ThreadData
to include data that need to be copied for each thread. In
multiple thread case, one thread processes one tile. all threads
share one copy of VP9_COMP,
(refer to VP9_COMP *cpi in the code)
but each thread has its own copy of ThreadData,
(refer to ThreadData *td in the code).
Therefore, within the scope of encode_tiles(), both cpi and td
need to be passed as function parameters.

In single thread case, the FRAME_COUNTS pointer in ThreadData
points to "counts" in VP9_COMMON.

Change-Id: Ib37908b2d8e2c0f4f9c18f38017df5ce60e8b13e

9 years agoMerge "Fix a tautological assert."
Alex Converse [Tue, 25 Nov 2014 00:36:53 +0000 (16:36 -0800)]
Merge "Fix a tautological assert."

9 years agoFix a tautological assert.
Alex Converse [Mon, 24 Nov 2014 23:00:20 +0000 (15:00 -0800)]
Fix a tautological assert.

Change-Id: I90ad08823e1d038384536fa9f458caadc2c87f38

9 years agoRemove redundant intra mode penalty from vp9_pick_inter_mode
Jingning Han [Mon, 24 Nov 2014 17:31:10 +0000 (09:31 -0800)]
Remove redundant intra mode penalty from vp9_pick_inter_mode

The intra mode penalty is covered by intra_cost_penalty. This
commit removes the other intra cost threshold, provided that the
constant 50 is negligible in normal rate-distortion cost.

Change-Id: I9b8b7483c43b9a41741622e7057def1f7d51bb72

9 years agoMerge "Key frame non-RD mode decision process"
Jingning Han [Mon, 24 Nov 2014 21:21:56 +0000 (13:21 -0800)]
Merge "Key frame non-RD mode decision process"

9 years agoMerge "Refactored idct routines and headers"
Debargha Mukherjee [Mon, 24 Nov 2014 20:47:03 +0000 (12:47 -0800)]
Merge "Refactored idct routines and headers"

9 years agoMerge "sad_test: initialize bit_depth_ in all cases"
James Zern [Mon, 24 Nov 2014 20:26:15 +0000 (12:26 -0800)]
Merge "sad_test: initialize bit_depth_ in all cases"

9 years agoRefactored idct routines and headers
Peter de Rivaz [Fri, 24 Oct 2014 07:37:39 +0000 (08:37 +0100)]
Refactored idct routines and headers

This change is made in preparation for a
subsequent patch which adds acceleration
for the highbitdepth transform functions.

The highbitdepth transform functions attempt
to use 16/32bit sse instructions where possible,
but fallback to using the C implementations if
potential overflow is detected.  For this reason
the dct routines are made global so they can be
called from the acceleration functions in the
subsequent patch.

Change-Id: Ia921f191bf6936ccba4f13e8461624b120c1f665
(cherry picked from commit 454342d4e77dbb67f4a3c10f97a57a6fcb46d9a0)

9 years agoKey frame non-RD mode decision process
Jingning Han [Thu, 20 Nov 2014 19:28:00 +0000 (11:28 -0800)]
Key frame non-RD mode decision process

This commit makes a non-RD coding mode decision process for key
frame coding. It can be optionally turned on in speed -6 and above.

Change-Id: I0847258b392877a0210b4768bef88ebc9ad009b5

9 years agoMerge "Only allow for cyclic refresh (aq=3 mode) for base layer."
Marco [Mon, 24 Nov 2014 15:46:36 +0000 (07:46 -0800)]
Merge "Only allow for cyclic refresh (aq=3 mode) for base layer."

9 years agoMerge "Indent build/make/configure.sh"
Johann [Sat, 22 Nov 2014 21:14:56 +0000 (13:14 -0800)]
Merge "Indent build/make/configure.sh"

9 years agosad_test: initialize bit_depth_ in all cases
James Zern [Sat, 22 Nov 2014 20:12:59 +0000 (12:12 -0800)]
sad_test: initialize bit_depth_ in all cases

previously 'bit_depth_', which is later used to calculate 'mask_', would
be left uninitialized in non-high-bitdepth builds

Change-Id: Ia72035f4645baf3bb0f191504f491b934cdf1e0e

9 years agoMerge "Fix some minor nits."
Paul Wilkins [Sat, 22 Nov 2014 01:39:43 +0000 (17:39 -0800)]
Merge "Fix some minor nits."

9 years agoIndent build/make/configure.sh
Johann [Fri, 21 Nov 2014 02:20:06 +0000 (18:20 -0800)]
Indent build/make/configure.sh

Whitespace changes only.

Change-Id: I92eef49db1798bc69ec003fca69995fea560d6fa

9 years agoMerge "Added highbitdepth sse2 acceleration for quantize"
Debargha Mukherjee [Sat, 22 Nov 2014 00:08:47 +0000 (16:08 -0800)]
Merge "Added highbitdepth sse2 acceleration for quantize"

9 years agoMerge changes Ie077edd0,Id31a74fc
Paul Wilkins [Fri, 21 Nov 2014 23:38:32 +0000 (15:38 -0800)]
Merge changes Ie077edd0,Id31a74fc

* changes:
  Remove rate component adjustment for AQ1
  Switch AQ1 segment basis from q ratio to rate ratio.

9 years agoMerge "Add adaptive midpoint for AQ1."
Paul Wilkins [Fri, 21 Nov 2014 23:26:18 +0000 (15:26 -0800)]
Merge "Add adaptive midpoint for AQ1."

9 years agoMerge "Add variance restriction to AQ2."
Paul Wilkins [Fri, 21 Nov 2014 23:25:43 +0000 (15:25 -0800)]
Merge "Add variance restriction to AQ2."

9 years agoOnly allow for cyclic refresh (aq=3 mode) for base layer.
Marco [Wed, 19 Nov 2014 23:31:29 +0000 (15:31 -0800)]
Only allow for cyclic refresh (aq=3 mode) for base layer.

Condition existed for temporal case, added it for spatial as well.
Issue: https://code.google.com/p/webm/issues/detail?id=878.

Change-Id: I38339207f9a94924f5568a081eabe64f867a686d

9 years agoFix some minor nits.
Paul Wilkins [Fri, 21 Nov 2014 20:27:52 +0000 (12:27 -0800)]
Fix some minor nits.

Change-Id: Ib8810d431fa20a2c78e0caaa28eb2c99903e60fb

9 years agoMerge "Further AQ1 clean up."
Paul Wilkins [Fri, 21 Nov 2014 20:58:03 +0000 (12:58 -0800)]
Merge "Further AQ1 clean up."

9 years agoRework forward txfm/quantization skip system in RTC coding mode
Jingning Han [Fri, 21 Nov 2014 20:18:53 +0000 (12:18 -0800)]
Rework forward txfm/quantization skip system in RTC coding mode

This commit allows more aggressive decision to skip forward
transform and quantization for luma component in RTC coding mode.
The chroma components remains going through the normal coding
routine, since they are not included in the non-RD mode search
process.

It reduces the runtime cost by 2% - 10%. In speed -6,
vidyo1 1000 kbps
16576 b/f, 40.281 dB, 8402 ms -> 16576 b/f, 40.323 dB, 7764 ms

nik720p 1000 kbps
33337 b/f, 38.622 dB, 7473 ms -> 33299 b/f, 38.660 dB, 7314 ms

dark720p 1000 kbps
33330 b/f, 39.785 dB, 13505 ms -> 33325 b/f, 39.714 dB, 13105 ms

The compression performance of speed -6 is improved by 0.44% in
PSNR and 1.31% in SSIM.

Change-Id: Iae9e3738de6255babea734e5897f29118bebc6d7

9 years agoMerge "Initial AQ1 restructuring."
Paul Wilkins [Fri, 21 Nov 2014 20:10:03 +0000 (12:10 -0800)]
Merge "Initial AQ1 restructuring."

9 years agoMerge "vp9_thread_test: fix 'had_error' assignment"
James Zern [Fri, 21 Nov 2014 19:35:59 +0000 (11:35 -0800)]
Merge "vp9_thread_test: fix 'had_error' assignment"

9 years agoMerge "Allow DC/H/V/TM on screen content."
Alex Converse [Fri, 21 Nov 2014 17:38:39 +0000 (09:38 -0800)]
Merge "Allow DC/H/V/TM on screen content."

9 years agoMerge "Drop special inter mode selection for screen content."
Alex Converse [Fri, 21 Nov 2014 17:38:02 +0000 (09:38 -0800)]
Merge "Drop special inter mode selection for screen content."

9 years agoMerge "Remove armv5te target"
Johann [Fri, 21 Nov 2014 16:55:22 +0000 (08:55 -0800)]
Merge "Remove armv5te target"

9 years agoRemove rate component adjustment for AQ1
Paul Wilkins [Fri, 21 Nov 2014 02:32:44 +0000 (18:32 -0800)]
Remove rate component adjustment for AQ1

In AQ1 a rate adjustment was applied for blocks coded with a
deltaq. This tends to skew the partition selection and cause
rate overshoot.

For example, consider a 64x64 super block where some but not all
sub blocks are in a low q segment and some are in a high q segment.
The choice of Q when considering large partition and transform sizes
is defined by the lowest sub block segment id (currently this implies the
lowest Q). If some parts of the larger partition are very hard this will
cause a high rate component.

The correct behavior here is for the rd code to discard the large partition
choice and break down to sub blocks where some have low and some
have high Q.  However the rate correction factor above mask the high
cost of coding at a larger partition size.

Change-Id: Ie077edd0b1b43c094898f481df772ea280b35960

9 years agoSwitch AQ1 segment basis from q ratio to rate ratio.
Paul Wilkins [Fri, 21 Nov 2014 01:28:21 +0000 (17:28 -0800)]
Switch AQ1 segment basis from q ratio to rate ratio.

In defining the Q deltas for segments in AQ1 use a rate
ratio rather than a q ratio.

Change-Id: Id31a74fcf2b7e55437e42a51c21b3cbcb57028d4

9 years agoAdd adaptive midpoint for AQ1.
Paul Wilkins [Thu, 20 Nov 2014 23:03:01 +0000 (15:03 -0800)]
Add adaptive midpoint for AQ1.

Make the midpoint variance used in AQ mode 1 segmentation
depend on the overall complexity of the frame in two pass.

Change-Id: I452814ec57f7a32352e41bb250e78066abe952dd

9 years agoCorrectly initialize "ones" value in neon quantize
Johann [Thu, 20 Nov 2014 21:24:55 +0000 (13:24 -0800)]
Correctly initialize "ones" value in neon quantize

By using 0xff for a short it was not setting the high bits. When
comparing the output with vtst to find non-zero elements it was skipping
vaules which had no low bits set such as -512 / 0xFE00.

Using -8191 as the first element of coeff will generate this condition.

BUG=883

Change-Id: Ia1e10fb809d1e7866f28c56769fe703e6231a657

9 years agoAllow DC/H/V/TM on screen content.
Alex Converse [Fri, 24 Oct 2014 22:57:48 +0000 (15:57 -0700)]
Allow DC/H/V/TM on screen content.

6.3% better compression
less than 1% compression time increase

Change-Id: Ie83c059436e54c09de9e7c87e06e0a6d40dc38fe

9 years agoDrop special inter mode selection for screen content.
Alex Converse [Tue, 18 Nov 2014 21:31:49 +0000 (13:31 -0800)]
Drop special inter mode selection for screen content.

Better mode selection was implemented for all content.

Change-Id: I479778ed21d3968892f4dce396c83733583f4f23

9 years agoRemove armv5te target
Johann [Fri, 21 Nov 2014 01:08:11 +0000 (17:08 -0800)]
Remove armv5te target

All the assembly code has been removed, the tests no longer check for
the target, and android and chrome do not use the targets.

Change-Id: I193993f7b2b0bd6478453402f573ce3606e04e8d

9 years agoMerge "vp9_ethread: move filter_cache out of RD_OPT struct"
Yunqing Wang [Fri, 21 Nov 2014 00:51:31 +0000 (16:51 -0800)]
Merge "vp9_ethread: move filter_cache out of RD_OPT struct"

9 years agoAdd variance restriction to AQ2.
Paul Wilkins [Fri, 7 Nov 2014 16:32:50 +0000 (16:32 +0000)]
Add variance restriction to AQ2.

Add an additional restriction to bit/complexity based
segmentation based on spatial variance.

Only lower Q when both the number of bits spent
in the initial encoding pass and the spatial complexity are
below a threshold. This will prevent the low Q segments
being used just because there is a surfeit of bits.

Small metrics gains especially opsnr.
derf ~0.2% std-hd ~0.3%

Change-Id: I6a8496d466d673f9b0e2b2ca6304ea7b6d8e1cce

9 years agoFurther AQ1 clean up.
Paul Wilkins [Thu, 13 Nov 2014 20:35:07 +0000 (12:35 -0800)]
Further AQ1 clean up.

Further patch to restructure AQ mode 1.

Change-Id: I566452a033d047a49a40441a7be24690ea69412d

9 years agoInitial AQ1 restructuring.
Paul Wilkins [Wed, 12 Nov 2014 20:36:16 +0000 (12:36 -0800)]
Initial AQ1 restructuring.

This is the first of a series of patches to restructure and
improve AQ mode 1 (variance based AQ).

Change-Id: Idcf693131a3ea2459dcfd957a54a65b971fa4a2a

9 years agoMerge "Fix bug in calculating number of mbs with scaling."
Paul Wilkins [Thu, 20 Nov 2014 23:45:41 +0000 (15:45 -0800)]
Merge "Fix bug in calculating number of mbs with scaling."

9 years agotests: enable resize_test for vp8
James Zern [Thu, 20 Nov 2014 22:34:40 +0000 (14:34 -0800)]
tests: enable resize_test for vp8

this was incorrectly set in test.mk by
93ffd37 Enable and fix resize_test for VP9

the test is now available when using --disable-vp9

Change-Id: I6acf44b0de647b34812ef5e18fd96447cdf9b25d

9 years agoMerge "sad_test: fix vp8-only build"
James Zern [Thu, 20 Nov 2014 22:18:37 +0000 (14:18 -0800)]
Merge "sad_test: fix vp8-only build"

9 years agovp9_thread_test: fix 'had_error' assignment
James Zern [Thu, 20 Nov 2014 22:16:28 +0000 (14:16 -0800)]
vp9_thread_test: fix 'had_error' assignment

worker hooks return false on error, fix the assignment in Execute() used
in the TestSerialInterface test

Change-Id: I93c2e45f270330ae6d35a3a303411c4ee0f31337

9 years agoMerge "vp9_ethread: move max/min partition size to mb struct"
Yunqing Wang [Thu, 20 Nov 2014 22:00:37 +0000 (14:00 -0800)]
Merge "vp9_ethread: move max/min partition size to mb struct"

9 years agovp9_ethread: move filter_cache out of RD_OPT struct
Yunqing Wang [Thu, 20 Nov 2014 20:42:36 +0000 (12:42 -0800)]
vp9_ethread: move filter_cache out of RD_OPT struct

Similar to mask_filter, the filter_cache in RD_OPT struct can be
moved out, and declared as a local variable since it is only
used in pick_inter_mode functions.

Change-Id: I412b99cca82bade07ac912064ec03dd1de6b2c17

9 years agoMerge "vp9_ethread: change mask_filter to a local variable"
Yunqing Wang [Thu, 20 Nov 2014 21:02:55 +0000 (13:02 -0800)]
Merge "vp9_ethread: change mask_filter to a local variable"

9 years agoMerge "Revert "vp9_ethread: include a pointer to mb in VP9_COMP""
Yunqing Wang [Thu, 20 Nov 2014 20:27:34 +0000 (12:27 -0800)]
Merge "Revert "vp9_ethread: include a pointer to mb in VP9_COMP""

9 years agoFix bug in calculating number of mbs with scaling.
Paul Wilkins [Thu, 20 Nov 2014 20:22:53 +0000 (12:22 -0800)]
Fix bug in calculating number of mbs with scaling.

Correct calculation of number of mbs in two pass code when
frame resizing is enabled. Always use initial number of mbs if
scaling is enabled, as this is what was used in the first pass.

Change-Id: I49a4280ab5a8b1000efcc157a449a081cbb6d410

9 years agovp9_ethread: change mask_filter to a local variable
Yunqing Wang [Thu, 20 Nov 2014 17:41:49 +0000 (09:41 -0800)]
vp9_ethread: change mask_filter to a local variable

The mask_filter in RD_OPT struct is used to record rd result in
filter decision. It is only used in pick_inter_mode functions,
and is removed from the struct and declared as a local variable.

Change-Id: I3c95c8632ba7241591ce00ef2ef5677b5e297d7b

9 years agovp9_ethread: move max/min partition size to mb struct
Yunqing Wang [Thu, 20 Nov 2014 17:24:50 +0000 (09:24 -0800)]
vp9_ethread: move max/min partition size to mb struct

The max_partition_size and max_partition_size are set at the
beginning while setting speed features, and then adjusted at
SB level. Moving them to mb struct ensures there is a local
copy for each thread.

Change-Id: I7dd08dc918d9f772fcd718bbd6533e0787720ad4

9 years agoMerge "Enable ssse3 version of vp9_fdct8x8_quant"
Jingning Han [Thu, 20 Nov 2014 17:06:39 +0000 (09:06 -0800)]
Merge "Enable ssse3 version of vp9_fdct8x8_quant"

9 years agoRevert "vp9_ethread: include a pointer to mb in VP9_COMP"
Yunqing Wang [Thu, 20 Nov 2014 03:04:07 +0000 (19:04 -0800)]
Revert "vp9_ethread: include a pointer to mb in VP9_COMP"

This reverts commit 6906d218ddd1af97228a797f4558e402231d94f1.

Another way will be used to handle mb struct.

Change-Id: Ic1111a46b2b1ee00f8f9e3fcd4cf3eb6030b2dc4

9 years agoAdded highbitdepth sse2 acceleration for quantize
Peter de Rivaz [Thu, 16 Oct 2014 12:38:46 +0000 (13:38 +0100)]
Added highbitdepth sse2 acceleration for quantize

Also includes block error.

(This patch is mostly cherry picked from
commit db7192e0b014a331a1dcb102c8a1148e9f0e1081)

Change-Id: Idef18f90b111a0d0c9546543d3347e551908fd78

9 years agoMerge "Changes SvcContext_t to SvcContext"
Deb Mukherjee [Thu, 20 Nov 2014 07:22:18 +0000 (23:22 -0800)]
Merge "Changes SvcContext_t to SvcContext"

9 years agoEnable ssse3 version of vp9_fdct8x8_quant
Jingning Han [Tue, 18 Nov 2014 20:37:59 +0000 (12:37 -0800)]
Enable ssse3 version of vp9_fdct8x8_quant

It improves the speed performance of vp9_fdct8x8_quant_sse2 by
about 5%.

Change-Id: I74b093ba4d81df64caf71ac7693f3d917f673097

9 years agosad_test: fix vp8-only build
James Zern [Wed, 19 Nov 2014 03:27:06 +0000 (19:27 -0800)]
sad_test: fix vp8-only build

ROUND_POWER_OF_TWO() is defined in vp9 headers currently, avoid it in
non-high-bitdepth code

Change-Id: Ic28b8f95ef7964800475ee8b35be5f9cea9afab6

9 years agoAdd a reset to rc tracking for dropped frames
Yaowu Xu [Wed, 19 Nov 2014 23:32:11 +0000 (15:32 -0800)]
Add a reset to rc tracking for dropped frames

VP9/DatarateTestVP9Large.ChangingDropFrameThresh/[34] fails post the
merge of commit#ffa06b37. This commit adds reset of rc tracking info
when frame is dropped, and fixes the causes of the bad interaction
between the tests and the previous commit.

Change-Id: I848acfd9fcb336359662274325190f94aac76eae

9 years agoMerge "Combine fdct8x8 and quantization process"
Jingning Han [Wed, 19 Nov 2014 19:17:44 +0000 (11:17 -0800)]
Merge "Combine fdct8x8 and quantization process"

9 years agoMerge "Add sse2 version for vp9_quantize_fp"
Jingning Han [Wed, 19 Nov 2014 19:17:36 +0000 (11:17 -0800)]
Merge "Add sse2 version for vp9_quantize_fp"

9 years agoCombine fdct8x8 and quantization process
Jingning Han [Tue, 18 Nov 2014 19:53:14 +0000 (11:53 -0800)]
Combine fdct8x8 and quantization process

This commit reworks the forward transform and quantization process
for 8x8 block coding. It combines the two operations in a single
function to save a store/load stage of the original transform
coefficients. Overall the speed -6 is slightly faster (around 1%
range). The compression performance of speed -6 is improved by
3.4%.

Change-Id: Id6628daef123f3e4649248735ec2ad7423629387

9 years agoMerge "Prevent severe rate control errors in CBR mode"
Yaowu Xu [Wed, 19 Nov 2014 00:56:06 +0000 (16:56 -0800)]
Merge "Prevent severe rate control errors in CBR mode"

9 years agoChanges SvcContext_t to SvcContext
Deb Mukherjee [Tue, 18 Nov 2014 20:25:31 +0000 (12:25 -0800)]
Changes SvcContext_t to SvcContext

Fixes a borg build.

Change-Id: I8cb510577e8d8bbc7a2e64f9e1bdfe883f49cb61

9 years agoMerge "Modify active_worst_quality setting for one pass CBR."
Marco [Tue, 18 Nov 2014 19:22:18 +0000 (11:22 -0800)]
Merge "Modify active_worst_quality setting for one pass CBR."

9 years agoMerge "change to call vp9_refining_search_sad() directly"
Yaowu Xu [Tue, 18 Nov 2014 17:14:02 +0000 (09:14 -0800)]
Merge "change to call vp9_refining_search_sad() directly"

9 years agoPrevent severe rate control errors in CBR mode
Yaowu Xu [Tue, 18 Nov 2014 16:52:21 +0000 (08:52 -0800)]
Prevent severe rate control errors in CBR mode

In rare cases, the interaction between rate correction factor and Q
choices may cause severe oscillating frame sizes that are way off
target bandwidth. This commit adds tracking of rate control results
for last two frames, and use the information to prevent oscillating
Q choices.

Change-Id: I9a6d125a15652b9bcac0e1fec6d7a1aedc4ed97e

9 years agoAdd sse2 version for vp9_quantize_fp
Jingning Han [Tue, 18 Nov 2014 16:58:09 +0000 (08:58 -0800)]
Add sse2 version for vp9_quantize_fp

vp9_quantize_fp is the quantization process used by rtc coding
mode. This commit adds a sse2 implementation of it. The
implementation is modified based on vp9_quantize_b_sse2. No speed
difference from ssse3 version.

Change-Id: I24949c5b27df160b4f35117d28858d269454e64a

9 years agoMerge "Add empty pointer check to pred buffering in rtc coding mode"
Jingning Han [Tue, 18 Nov 2014 01:40:54 +0000 (17:40 -0800)]
Merge "Add empty pointer check to pred buffering in rtc coding mode"

9 years agoModify active_worst_quality setting for one pass CBR.
Marco [Tue, 11 Nov 2014 19:01:55 +0000 (11:01 -0800)]
Modify active_worst_quality setting for one pass CBR.

Current setting had active_worst_quality set too high (close to worst_quality)
for first frame(s) following first key frame. This changes that to be somewhat
more aggressive in allowing active_worst_quality to be lower following key frame.

Also remove the 4/5 reduction in active_worst for key frame as
this should be set by the user qp_max setting.

Change-Id: I0530b3ddcc85c00e3eb7568de1b14a31206c4a4c

9 years agochange to call vp9_refining_search_sad() directly
Yaowu Xu [Mon, 17 Nov 2014 19:25:43 +0000 (11:25 -0800)]
change to call vp9_refining_search_sad() directly

The function pointer in compressor instance does not change, so this
commit changes to call the function directly.

Change-Id: I9c9c460e3475711c384b74c9842f0b4f3d037cc5

9 years agoAdd empty pointer check to pred buffering in rtc coding mode
Jingning Han [Mon, 17 Nov 2014 19:21:42 +0000 (11:21 -0800)]
Add empty pointer check to pred buffering in rtc coding mode

This commit adds a check condition to the prediction buffering
operation used in the rtc coding mode. This resolves a unit test
warning in example/vpx_tsvc_encoder_vp9_mode_7.

Change-Id: I9fd50d5956948b73b53bd8fc5a16ee66aff61995

9 years agoMerge "Code cleanup: remove unused members in RD_OPT"
Yunqing Wang [Mon, 17 Nov 2014 17:10:28 +0000 (09:10 -0800)]
Merge "Code cleanup: remove unused members in RD_OPT"