platform/upstream/libvpx.git
9 years agoSome internal-stats, vp9-highbitdepth bug fixes
Deb Mukherjee [Fri, 5 Dec 2014 21:40:50 +0000 (13:40 -0800)]
Some internal-stats, vp9-highbitdepth bug fixes

Change-Id: I0363d98f6f6558a43276aec48f27dca37c93f5ad

9 years agoMerge "Remove redundant vp9_zero in choose_partitioning"
Jingning Han [Fri, 5 Dec 2014 19:47:57 +0000 (11:47 -0800)]
Merge "Remove redundant vp9_zero in choose_partitioning"

9 years agoMerge "Enable conditional skip path in rd_pick_intra_sby_mode"
Jingning Han [Fri, 5 Dec 2014 19:25:30 +0000 (11:25 -0800)]
Merge "Enable conditional skip path in rd_pick_intra_sby_mode"

9 years agoMerge "Use hybrid RD and non-RD coding flow for key frame coding"
Jingning Han [Fri, 5 Dec 2014 19:25:19 +0000 (11:25 -0800)]
Merge "Use hybrid RD and non-RD coding flow for key frame coding"

9 years agoRemove redundant vp9_zero in choose_partitioning
Jingning Han [Fri, 5 Dec 2014 18:38:09 +0000 (10:38 -0800)]
Remove redundant vp9_zero in choose_partitioning

It makes the overall speed -6 about 2% faster with no compression
performance change.

Change-Id: I680a967b421caa2c5a5cdb821311c4726a2df45a

9 years agoEnable conditional skip path in rd_pick_intra_sby_mode
Jingning Han [Thu, 4 Dec 2014 22:53:36 +0000 (14:53 -0800)]
Enable conditional skip path in rd_pick_intra_sby_mode

These speed-up features for key frame coding are only turned on
in the settings of hybrid non-RD and RD mode decision. It provides
about 20% speed-up to the hybrid key frame coding at the expense
of certain compression performance loss. For vidyo1, the key frame
coding statistics are changed
9838F, 35.020 dB, 61677 us -> 9920F, 34.834 dB, 47556 us

Overall rtc set compression performance is down by -0.257%.

Change-Id: I0025447fda26bb7855e982955642b5f55d71b51f

9 years agoUse hybrid RD and non-RD coding flow for key frame coding
Jingning Han [Thu, 4 Dec 2014 17:29:24 +0000 (09:29 -0800)]
Use hybrid RD and non-RD coding flow for key frame coding

When block size is below 16x16, the encoder swap from non-RD to
RD mode for key frame coding. This largely brough back the key
frame compression performance. For vidyo1 at 1000 kbps, the key
frame coding statistics are changed

9978F, 34.183 dB, 36807 us -> 9838F, 35.020 dB, 61677 us

As compared to the full RD case
7187F, 34.930 dB, 214470 us

The overall rtc set coding performance (single key frame setting)
is improved by 1.5%.

Change-Id: I78a4ecf025d7b24ec911e85be94e01da05e77878

9 years agoMerge "vp9_ethread: the tile-based multi-threaded encoder"
Yunqing Wang [Fri, 5 Dec 2014 16:23:49 +0000 (08:23 -0800)]
Merge "vp9_ethread: the tile-based multi-threaded encoder"

9 years agoMerge "Increase strength of AQ1."
Paul Wilkins [Fri, 5 Dec 2014 12:11:43 +0000 (04:11 -0800)]
Merge "Increase strength of AQ1."

9 years agoMerge "Use the RTC optimizations when in high bitdepth mode."
Debargha Mukherjee [Fri, 5 Dec 2014 03:22:27 +0000 (19:22 -0800)]
Merge "Use the RTC optimizations when in high bitdepth mode."

9 years agoMerge "vp9_reader: reorder struct members"
James Zern [Fri, 5 Dec 2014 00:08:08 +0000 (16:08 -0800)]
Merge "vp9_reader: reorder struct members"

9 years agoMerge "Corrected the renaming of CONFIG_VP9_HIGH ro CONFIG_VP9_HIGHBITDEPTH."
Debargha Mukherjee [Thu, 4 Dec 2014 23:52:35 +0000 (15:52 -0800)]
Merge "Corrected the renaming of CONFIG_VP9_HIGH ro CONFIG_VP9_HIGHBITDEPTH."

9 years agoUse the RTC optimizations when in high bitdepth mode.
Peter de Rivaz [Thu, 4 Dec 2014 10:51:10 +0000 (10:51 +0000)]
Use the RTC optimizations when in high bitdepth mode.

Change 72193 made the encoder behave differently
when configured with and without high bitdepth.
This change means the same algorithm is used for both.

Change-Id: I707a44a94afca773a9e0c2f7ebeeea83030257c5

9 years agoMerge "Loop filter test fix"
James Zern [Thu, 4 Dec 2014 23:14:20 +0000 (15:14 -0800)]
Merge "Loop filter test fix"

9 years agovp9_ethread: the tile-based multi-threaded encoder
Yunqing Wang [Tue, 2 Dec 2014 23:47:41 +0000 (15:47 -0800)]
vp9_ethread: the tile-based multi-threaded encoder

Currently, VP9 supports column-tile encoding, which allows a frame
to be encoded in multiple column tiles independently. The number of
column tiles are set by encoder option "--tile-columns". This
provides a way to encode a frame in parallel.

Based on previous set of patches, this patch implemented the tile-
based multi-threaded encoder. Each thread processes one or more
tiles.

Usage:
For HD clips:
--tile-columns=2 --threads=1/2/3/4

While using 4 threads, tests showed that the encoder achieved
2.3X - 2.5X speedup at good-quality speed 3, and 2X speedup at
realtime speed 5.

Change-Id: Ied987f8f2618b1283a8643ad255e88341733c9d4

9 years agoMerge "Fixes a missing highbitdepth convolve call bug"
Deb Mukherjee [Thu, 4 Dec 2014 19:19:59 +0000 (11:19 -0800)]
Merge "Fixes a missing highbitdepth convolve call bug"

9 years agoMerge "Free motion vector array before re-allocating"
Adrian Grange [Thu, 4 Dec 2014 15:08:37 +0000 (07:08 -0800)]
Merge "Free motion vector array before re-allocating"

9 years agoCorrected the renaming of CONFIG_VP9_HIGH ro CONFIG_VP9_HIGHBITDEPTH.
Peter de Rivaz [Thu, 4 Dec 2014 11:01:46 +0000 (11:01 +0000)]
Corrected the renaming of CONFIG_VP9_HIGH ro CONFIG_VP9_HIGHBITDEPTH.

Change 71789 renamed CONFIG_VP9_HIGH to CONFIG_VP9_HIGHBITDEPTH.
However, one use of CONFIG_VP9_HIGH was missed.

Change-Id: I0ebb9c71380c6d810a25708d15471abf9533e695

9 years agoLoop filter test fix
Deb Mukherjee [Thu, 4 Dec 2014 00:26:48 +0000 (16:26 -0800)]
Loop filter test fix

Related to fixing random number range.

Change-Id: I84d004600e1f6918badf08d08da421b4e8cc4826

9 years agoMerge "Various updates to vp8."
Marco [Thu, 4 Dec 2014 02:12:47 +0000 (18:12 -0800)]
Merge "Various updates to vp8."

9 years agoMerge "acm_random: provide full range for Rand16()"
James Zern [Thu, 4 Dec 2014 02:05:36 +0000 (18:05 -0800)]
Merge "acm_random: provide full range for Rand16()"

9 years agoMerge "sse2 visual studio build fix"
Tom Finegan [Thu, 4 Dec 2014 02:05:03 +0000 (18:05 -0800)]
Merge "sse2 visual studio build fix"

9 years agoFixes a missing highbitdepth convolve call bug
Deb Mukherjee [Thu, 4 Dec 2014 01:48:50 +0000 (17:48 -0800)]
Fixes a missing highbitdepth convolve call bug

Bug was introduced in https://gerrit.chromium.org/gerrit/#/c/72122/

Change-Id: Idb500ea619a30e7bc50e22fb8ee03be5282f41db

9 years agoacm_random: provide full range for Rand16()
James Zern [Mon, 1 Dec 2014 23:10:00 +0000 (15:10 -0800)]
acm_random: provide full range for Rand16()

the gtest implementation used only returns values between 0 and 2^31-1

+ temporarily disable some tests in fdct8x8_test which misbehave with the
  new range

Change-Id: I45381076f0bea3317cc6728305890e4fd2f2facd

9 years agoMerge "acm_random: provide full range for Rand8()"
James Zern [Thu, 4 Dec 2014 00:58:42 +0000 (16:58 -0800)]
Merge "acm_random: provide full range for Rand8()"

9 years agoMerge "Use memset for initialization to 0"
Adrian Grange [Thu, 4 Dec 2014 00:50:39 +0000 (16:50 -0800)]
Merge "Use memset for initialization to 0"

9 years agosse2 visual studio build fix
Deb Mukherjee [Wed, 3 Dec 2014 23:18:44 +0000 (15:18 -0800)]
sse2 visual studio build fix

Change-Id: Id8c8c3be882bcd92afea3ccec6ebdf3f208d28ef

9 years agoFree motion vector array before re-allocating
Adrian Grange [Tue, 2 Dec 2014 00:05:22 +0000 (16:05 -0800)]
Free motion vector array before re-allocating

Change-Id: I0c39136d67e1e83020d61f86b062a04182ec9b00

9 years agoMerge "Increase delta-qp for aq=3 mode, after key frame."
Marco [Thu, 4 Dec 2014 00:03:06 +0000 (16:03 -0800)]
Merge "Increase delta-qp for aq=3 mode, after key frame."

9 years agoVarious updates to vp8.
Marco [Mon, 10 Nov 2014 21:07:05 +0000 (13:07 -0800)]
Various updates to vp8.

Change-Id: Icc7a816491897107764e4c936288e9000e6319b8

9 years agoMerge "Fix indent in source_var_based_partition_search_method"
Jingning Han [Wed, 3 Dec 2014 23:43:40 +0000 (15:43 -0800)]
Merge "Fix indent in source_var_based_partition_search_method"

9 years agoUse memset for initialization to 0
Adrian Grange [Mon, 1 Dec 2014 21:58:44 +0000 (13:58 -0800)]
Use memset for initialization to 0

Change-Id: I714ca22b5d51016bf8b035cf457616c707257641

9 years agoMerge "vp9: sync threads after a longjmp"
James Zern [Wed, 3 Dec 2014 22:30:55 +0000 (14:30 -0800)]
Merge "vp9: sync threads after a longjmp"

9 years agoIncrease delta-qp for aq=3 mode, after key frame.
Marco [Wed, 3 Dec 2014 18:19:54 +0000 (10:19 -0800)]
Increase delta-qp for aq=3 mode, after key frame.

For a few refresh periods after key frame, use large qp-delta
to increase quality ramp-up.

Change-Id: Ib5a150fb2dfa6bafd0d4e6b5d28dfd0724b61319

9 years agoacm_random: provide full range for Rand8()
James Zern [Wed, 26 Nov 2014 23:17:49 +0000 (15:17 -0800)]
acm_random: provide full range for Rand8()

the gtest implementation used only returns values between 0 and 2^31-1

+ temporarily disable some tests in lpf_8_test which misbehave with the
  new range

Change-Id: I8a026680c4b8c12dc14d4f24c33edb2315963114

9 years agoFix indent in source_var_based_partition_search_method
Jingning Han [Wed, 3 Dec 2014 20:37:36 +0000 (12:37 -0800)]
Fix indent in source_var_based_partition_search_method

Change-Id: I6e5e0571d6967b9b992966336715e35bb97f187e

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 agovp9: sync threads after a longjmp
James Zern [Wed, 3 Dec 2014 00:51:27 +0000 (16:51 -0800)]
vp9: sync threads after a longjmp

Synchronize all threads immediately as a subsequent decode call may
cause a resize invalidating some allocations.

fixes one aspect of crbug.com/437655

Change-Id: Ie993b62c2756478543206ddbe43ec6268d90a470

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 agoIncrease strength of AQ1.
Paul Wilkins [Fri, 21 Nov 2014 20:26:38 +0000 (12:26 -0800)]
Increase strength of AQ1.

This patch greatly increase the strength of AQ1.

Visual tests show strong gains on many clips but their is a big
hit on psnr.

SSIM is more mixed with some winners and losers.

Change-Id: Idaa5d3b41d8576096bfa000b62bc531c3d8bf6a1

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_reader: reorder struct members
James Zern [Tue, 25 Nov 2014 03:27:07 +0000 (19:27 -0800)]
vp9_reader: reorder struct members

improves locality of reference

Change-Id: Ia4d55bb8c98e479528d88303fa35e8c74fbf939d

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