]> granicus.if.org Git - libvpx/log
libvpx
9 years agoVP9: Only zero counts when !frame_parallel_decoding_mode
Scott LaVarnway [Mon, 9 Nov 2015 18:14:13 +0000 (10:14 -0800)]
VP9: Only zero counts when !frame_parallel_decoding_mode

The counts are never used when frame_parallel_decoding_mode
is set.

Change-Id: Ic7a566a048297f7373c9ffbb48929ea09eff674f

9 years agoMerge changes I8c83b86d,Ic53b2ed5,I4acc8a84
James Zern [Sat, 7 Nov 2015 00:57:06 +0000 (00:57 +0000)]
Merge changes I8c83b86d,Ic53b2ed5,I4acc8a84

* changes:
  variance_test: create fn pointers w/'&' ref
  sixtap_predict_test: create fn pointers w/'&' ref
  sad_test: create fn pointers w/'&' ref

9 years agoMerge "Use accurate bit cost for uv_mode in UV intra mode RD selection"
Hui Su [Sat, 7 Nov 2015 00:22:50 +0000 (00:22 +0000)]
Merge "Use accurate bit cost for uv_mode in UV intra mode RD selection"

9 years agoUse accurate bit cost for uv_mode in UV intra mode RD selection
hui su [Fri, 6 Nov 2015 21:56:51 +0000 (13:56 -0800)]
Use accurate bit cost for uv_mode in UV intra mode RD selection

On derflr, +0.1% for VP10; however, -0.03% on VP9.

Change-Id: I09c724232ede74254043d61d3cadc506256af0af

9 years agoMerge "Revert "Add AVX vectorized vp9_diamond_search_sad""
James Zern [Fri, 6 Nov 2015 22:37:20 +0000 (22:37 +0000)]
Merge "Revert "Add AVX vectorized vp9_diamond_search_sad""

9 years agoRevert "Add AVX vectorized vp9_diamond_search_sad"
James Zern [Fri, 6 Nov 2015 21:03:13 +0000 (13:03 -0800)]
Revert "Add AVX vectorized vp9_diamond_search_sad"

This reverts commit f1342a7b070ef61b9fbdf03e899ac2107cfcb6bd.

This breaks 32-bit builds:
 runtime error: load of misaligned address 0xf72fdd48 for type 'const
__m128i' (vector of 2 'long long' values), which requires 16 byte
alignment

+ _mm_set1_epi64x is incompatible with some versions of visual studio

Change-Id: I6f6fc3c11403344cef78d1c432cdc9147e5c1673

9 years agovariance_test: create fn pointers w/'&' ref
James Zern [Fri, 6 Nov 2015 03:00:45 +0000 (19:00 -0800)]
variance_test: create fn pointers w/'&' ref

this helps some toolchains (vs9) resolve the type of the parameter

Change-Id: I8c83b86da53b1783cd18c0f765b67ba33da91d72

9 years agosixtap_predict_test: create fn pointers w/'&' ref
James Zern [Fri, 6 Nov 2015 03:00:45 +0000 (19:00 -0800)]
sixtap_predict_test: create fn pointers w/'&' ref

this helps some toolchains (vs9) resolve the type of the parameter

Change-Id: Ic53b2ed5fbce05c5b5e633b4a4ef9ea75c55360a

9 years agovp9: Disable noise estimate on resize trigger frame.
Marco [Fri, 6 Nov 2015 16:33:41 +0000 (08:33 -0800)]
vp9: Disable noise estimate on resize trigger frame.

Change-Id: I35767a6320943582ee11d737b5f240cea2d01b25

9 years agosad_test: create fn pointers w/'&' ref
James Zern [Fri, 6 Nov 2015 03:00:45 +0000 (19:00 -0800)]
sad_test: create fn pointers w/'&' ref

this helps some toolchains (vs9) resolve the type of the parameter

Change-Id: I4acc8a844d1e55b766f66482bd6d32998174d70f

9 years agoMerge "vp9: Updates to noise estimation."
Marco Paniconi [Fri, 6 Nov 2015 06:51:11 +0000 (06:51 +0000)]
Merge "vp9: Updates to noise estimation."

9 years agovp9: Updates to noise estimation.
Marco [Fri, 6 Nov 2015 00:00:15 +0000 (16:00 -0800)]
vp9: Updates to noise estimation.

Add threshold/condition on spatial_variance and brightness level.
Modification to normalization of block variance.
Change resolution limit below which we disable noise estimation.

Change-Id: If5be08a26ceda351242d8a58d2f0bc88c0a918f0

9 years agovp9_spatial_svc_encoder.sh: fix command line param
James Zern [Thu, 5 Nov 2015 23:22:39 +0000 (15:22 -0800)]
vp9_spatial_svc_encoder.sh: fix command line param

-l -> -sl, renamed in:
be3b08d [svc] Temporal svc with two pass rate control

Change-Id: I5a7b179b33d94e20e54825090659156dece928c0

9 years agoMerge "Add AVX vectorized vp9_diamond_search_sad"
Yunqing Wang [Thu, 5 Nov 2015 20:17:13 +0000 (20:17 +0000)]
Merge "Add AVX vectorized vp9_diamond_search_sad"

9 years agoAdd AVX vectorized vp9_diamond_search_sad
Geza Lore [Wed, 28 Oct 2015 14:35:04 +0000 (14:35 +0000)]
Add AVX vectorized vp9_diamond_search_sad

This function now has an AVX intrinsics version which is about 80%
faster compared to the C implementation. This provides a 2-4% total
speed-up for encode, depending on encoding parameters. The function
utilizes 3 properties of the cost function lookup table, constructed
in 'cal_nmvjointsadcost' and 'cal_nmvsadcosts'.
For the joint cost:
  - mvjointsadcost[1] == mvjointsadcost[2] == mvjointsadcost[3]
For the component costs:
  - For all i: mvsadcost[0][i] == mvsadcost[1][i]
        (equal per component cost)
  - For all i: mvsadcost[0][i] == mvsadcost[0][-i]
        (Cost function is even)
These must hold, otherwise the AVX version of the function cannot be used.

Change-Id: I184055b864c5a2dc37b2d8c5c9012eb801e9daf6

9 years agoMerge "Bias against non-zero mv for large blocks."
Marco Paniconi [Wed, 4 Nov 2015 00:01:23 +0000 (00:01 +0000)]
Merge "Bias against non-zero mv for large blocks."

9 years agoBias against non-zero mv for large blocks.
Marco [Fri, 30 Oct 2015 18:51:06 +0000 (11:51 -0700)]
Bias against non-zero mv for large blocks.

Change is only for real-time mode, speed > 5, and non-screen content mode.
Bias is based on block size and motion vector level (motion above some threshold).

Helps to improves stability in background from lightning changes.
PSNR/SSIM metrics on RTC set almost no change/neutral (within +/- 0.1).

Change-Id: I7eac13c1ae10be4ab1f40acc7f9f1df5653ece9d

9 years agoMerge "Update to encoder_breakout_test, for non-rd mode."
Marco Paniconi [Tue, 3 Nov 2015 22:40:53 +0000 (22:40 +0000)]
Merge "Update to encoder_breakout_test, for non-rd mode."

9 years agoMerge "Fix a msvc warning"
Yaowu Xu [Tue, 3 Nov 2015 21:56:25 +0000 (21:56 +0000)]
Merge "Fix a msvc warning"

9 years agoMerge "Generate intra prediction reference values only when necessary"
Hui Su [Tue, 3 Nov 2015 20:55:14 +0000 (20:55 +0000)]
Merge "Generate intra prediction reference values only when necessary"

9 years agoMerge "Adjust threshold for datarate frame drop test."
Marco Paniconi [Tue, 3 Nov 2015 19:54:52 +0000 (19:54 +0000)]
Merge "Adjust threshold for datarate frame drop test."

9 years agoUpdate to encoder_breakout_test, for non-rd mode.
Marco [Tue, 3 Nov 2015 19:47:23 +0000 (11:47 -0800)]
Update to encoder_breakout_test, for non-rd mode.

Only use non-zero threshold(s) for breakout if
the motion level of the current tested mode is low.

Change-Id: I22aae961cc42371b49d3f648560181cc54708502

9 years agoFix a msvc warning
Yaowu Xu [Tue, 3 Nov 2015 19:22:58 +0000 (11:22 -0800)]
Fix a msvc warning

Change-Id: Id5b8f597fb275395232559fea7bfeb56912b88a1

9 years agoMerge "misc fixes: Remove a wasted value."
Alex Converse [Tue, 3 Nov 2015 17:52:34 +0000 (17:52 +0000)]
Merge "misc fixes: Remove a wasted value."

9 years agoMerge "Add target for Mac OS X 10.11 'El Capitan'"
Alex Converse [Tue, 3 Nov 2015 17:50:34 +0000 (17:50 +0000)]
Merge "Add target for Mac OS X 10.11 'El Capitan'"

9 years agoAdjust threshold for datarate frame drop test.
Marco [Tue, 3 Nov 2015 16:15:04 +0000 (08:15 -0800)]
Adjust threshold for datarate frame drop test.

Current threshold is little too strict.

Change-Id: I99ec1409d095e0c2fd3b7ab398742cabcc05700b

9 years agoMerge "vpx_scale: fix the issue in msan test."
Jacky Chen [Mon, 2 Nov 2015 23:37:23 +0000 (23:37 +0000)]
Merge "vpx_scale: fix the issue in msan test."

9 years agoAdd target for Mac OS X 10.11 'El Capitan'
Alex Converse [Mon, 2 Nov 2015 22:05:37 +0000 (14:05 -0800)]
Add target for Mac OS X 10.11 'El Capitan'

Change-Id: I174f5b41be384894e41b8e2926cbf8fd0f8e21b2

9 years agoMerge "Move noise level estimate outside denoiser."
Marco Paniconi [Mon, 2 Nov 2015 22:08:01 +0000 (22:08 +0000)]
Merge "Move noise level estimate outside denoiser."

9 years agovpx_scale: fix the issue in msan test.
jackychen [Fri, 30 Oct 2015 18:08:23 +0000 (11:08 -0700)]
vpx_scale: fix the issue in msan test.

Do memset to fix msan issue due to the access of uninitialized
memory.

BUG=https://code.google.com/p/chromium/issues/detail?id=549155

Change-Id: I02f995ede79e3574e72587cc078df1a0d11af002

9 years agoMove noise level estimate outside denoiser.
Marco [Sun, 1 Nov 2015 22:40:05 +0000 (14:40 -0800)]
Move noise level estimate outside denoiser.

Source noise level estimate is also useful for
setting variance encoder parameters (variance thresholds,
qp-delta, mode selection, etc), so allow it to be used also
if denoising is not on.

Change-Id: I4fe23d47607b4e17a35287057f489c29114beed1

9 years agoMove palette-based intra prediction out of misc-fixes
hui su [Mon, 2 Nov 2015 19:11:25 +0000 (11:11 -0800)]
Move palette-based intra prediction out of misc-fixes

Change-Id: Ia59724413c4a4831390119a33d40a7d713b4b69f

9 years agoGenerate intra prediction reference values only when necessary
hui su [Sat, 31 Oct 2015 00:15:49 +0000 (17:15 -0700)]
Generate intra prediction reference values only when necessary

This can help increase encoding speed substantially.

Change-Id: Id0c009146e6e74d9365add71c7b10b9a57a84676

9 years agovp9 denoiser: Don't estimate noise on resized trigger frame.
Marco [Mon, 2 Nov 2015 17:10:01 +0000 (09:10 -0800)]
vp9 denoiser: Don't estimate noise on resized trigger frame.

Change-Id: I60461f011d1aba0b1eb6584c6940f745221915f4

9 years agoMerge "Convert motion search config from AoS to SoA"
Debargha Mukherjee [Fri, 30 Oct 2015 20:57:10 +0000 (20:57 +0000)]
Merge "Convert motion search config from AoS to SoA"

9 years agoMerge changes I3b89e7a6,I8ef772a0
James Zern [Fri, 30 Oct 2015 05:50:58 +0000 (05:50 +0000)]
Merge changes I3b89e7a6,I8ef772a0

* changes:
  vp9_dx_iface: move struct defs to separate header
  vp9_decodeframe.h: add missing include

9 years agovp9_dx_iface: move struct defs to separate header
James Zern [Thu, 29 Oct 2015 23:42:26 +0000 (16:42 -0700)]
vp9_dx_iface: move struct defs to separate header

this avoids redefining vpx_codec_vp9_dx, vpx_codec_vp9_dx_algo in
vp9_encoder_parms_get_to_decoder.cc

Change-Id: I3b89e7a62497227ee32419f1a7d30e4c10a13c05

9 years agoMerge "Make the zero handling in extend_to_full_distribution more explicit."
Alex Converse [Fri, 30 Oct 2015 00:37:33 +0000 (00:37 +0000)]
Merge "Make the zero handling in extend_to_full_distribution more explicit."

9 years agovp9_decodeframe.h: add missing include
James Zern [Thu, 29 Oct 2015 23:41:25 +0000 (16:41 -0700)]
vp9_decodeframe.h: add missing include

Change-Id: I8ef772a016a79cab88bee8e9739530aa030baaa9

9 years agoSpecify feasible parameter values for lossless mode
hui su [Thu, 29 Oct 2015 22:53:20 +0000 (15:53 -0700)]
Specify feasible parameter values for lossless mode

Change-Id: I53d9719dcb81fa83fe3c920a552db5a0f1cacefa

9 years agoMake the zero handling in extend_to_full_distribution more explicit.
Alex Converse [Thu, 8 Oct 2015 23:01:42 +0000 (16:01 -0700)]
Make the zero handling in extend_to_full_distribution more explicit.

The old workaround "p = 0 ? 0 : p -1" is misleading.

?: happens before =
assigning back to p truncates to one byte.

Therefore it is equivalent to (p - 1) & 0xFF, but the check just exists
to work around a first pass bug, so let's make the work around more
clear.

https://bugs.chromium.org/p/webm/issues/detail?id=1089

Change-Id: I587c44dd61c1f3767543c0126376f881889935af

9 years agoMerge "VP9_resizing: add limitation to the downsacling resolution."
Jacky Chen [Thu, 29 Oct 2015 21:00:36 +0000 (21:00 +0000)]
Merge "VP9_resizing: add limitation to the downsacling resolution."

9 years agoMerge "Shrink probability remap tables."
Alex Converse [Thu, 29 Oct 2015 19:58:24 +0000 (19:58 +0000)]
Merge "Shrink probability remap tables."

9 years agoVP9_resizing: add limitation to the downsacling resolution.
jackychen [Wed, 28 Oct 2015 19:30:45 +0000 (12:30 -0700)]
VP9_resizing: add limitation to the downsacling resolution.

Width and height of downscaling resolution should not be lower
than min_width and min_height which can be set as needed, both
are 180 for now.

Change-Id: I34d06704ea51affbdd814246e22ee8d41d991f00

9 years agoMerge "VP9 decoder: Add more test vectors for resizing."
Jacky Chen [Thu, 29 Oct 2015 16:00:15 +0000 (16:00 +0000)]
Merge "VP9 decoder: Add more test vectors for resizing."

9 years agoUpdate to vp9_spatial_svc_encoder.
Marco [Thu, 29 Oct 2015 01:16:24 +0000 (18:16 -0700)]
Update to vp9_spatial_svc_encoder.

Some fixes for rate control stats and bypass mode.

Change-Id: I28bed5467a681b8867cca55852d5d3a25d850f39

9 years agoVP9 decoder: Add more test vectors for resizing.
jackychen [Thu, 15 Oct 2015 21:02:46 +0000 (14:02 -0700)]
VP9 decoder: Add more test vectors for resizing.

Refer to doc "vp9-test-vectors".

BUG=https://code.google.com/p/webm/issues/detail?id=1086

Change-Id: I523d1f39141a3a86f113604cbdb9cd41cc2d6470

9 years agoMerge "VP9-SVC: Allow frame dropping due to overshoot for spatial layers."
Marco Paniconi [Wed, 28 Oct 2015 21:59:17 +0000 (21:59 +0000)]
Merge "VP9-SVC: Allow frame dropping due to overshoot for spatial layers."

9 years agoMerge "Revert "Replace the zero handling in extend_to_full_distribution.""
Alex Converse [Wed, 28 Oct 2015 20:48:52 +0000 (20:48 +0000)]
Merge "Revert "Replace the zero handling in extend_to_full_distribution.""

9 years agoMerge "Skip AS detection when using --enable-external-build"
Johann Koenig [Wed, 28 Oct 2015 19:18:49 +0000 (19:18 +0000)]
Merge "Skip AS detection when using --enable-external-build"

9 years agoMerge "Only set sysroot when alt_libc finds a directory"
Johann Koenig [Wed, 28 Oct 2015 19:16:42 +0000 (19:16 +0000)]
Merge "Only set sysroot when alt_libc finds a directory"

9 years agoRevert "Replace the zero handling in extend_to_full_distribution."
Alex Converse [Wed, 28 Oct 2015 18:48:44 +0000 (11:48 -0700)]
Revert "Replace the zero handling in extend_to_full_distribution."

This reverts commit 7f56cb29787b187c8cb1b778918ca3b80184c804.

It causes uninitialized reads in the first pass setting up later cost tables.

Change-Id: I2df498df3f5c03eff359f79edf045aed0c618dc9

9 years agoAdd more resize test videos that with larger resolution change intervals.
Hangyu Kuang [Mon, 26 Oct 2015 23:02:23 +0000 (16:02 -0700)]
Add more resize test videos that with larger resolution change intervals.

These videos change resolution every 10 frames versus every 3 frames in current
test sets.

Change-Id: Ic33f449fc9b6d2f480825d4715b8f63e70801232

9 years agoConvert motion search config from AoS to SoA
Geza Lore [Mon, 26 Oct 2015 09:39:38 +0000 (09:39 +0000)]
Convert motion search config from AoS to SoA

This is a prerequisite for vectorizing vp9_diamond_search_sad_c.

Change-Id: I49cd9148782410ca8b16e8a468ca9e7c6d088410

9 years agoMerge "Add several new test vectors with small resolution."
Hangyu Kuang [Wed, 28 Oct 2015 15:04:25 +0000 (15:04 +0000)]
Merge "Add several new test vectors with small resolution."

9 years agoAdd several new test vectors with small resolution.
Hangyu Kuang [Thu, 22 Oct 2015 23:31:13 +0000 (16:31 -0700)]
Add several new test vectors with small resolution.

Change-Id: I70b1b8162a0c9b8501358ba7d32fecd1dc020ab5

9 years agoUpdate to vp9-denoising.
Marco [Tue, 27 Oct 2015 22:50:06 +0000 (15:50 -0700)]
Update to vp9-denoising.

Set increase_denoising parameter for temporal filter.

Change-Id: Id98bf160db98dfa9aedf76e20b43e6f7c783fb1c

9 years agoOnly set sysroot when alt_libc finds a directory
Johann [Tue, 27 Oct 2015 22:38:47 +0000 (15:38 -0700)]
Only set sysroot when alt_libc finds a directory

Change-Id: Idc0a9adb4fb371272d6c8c98737f66c6cf209e37

9 years agoVP9-SVC: Allow frame dropping due to overshoot for spatial layers.
Marco [Tue, 27 Oct 2015 20:02:02 +0000 (13:02 -0700)]
VP9-SVC: Allow frame dropping due to overshoot for spatial layers.

For 1 pass CBR mode.

Change-Id: I8bceb489a850ec26f05382eecb5c0c32a1bb8883

9 years agomisc fixes: Remove a wasted value.
Alex Converse [Tue, 27 Oct 2015 17:02:31 +0000 (10:02 -0700)]
misc fixes: Remove a wasted value.

Remove delta index 254 from probability remapping and subexp coding.
Saves 1-bit when the delta index is 129.

Change-Id: I88aba565fc766b1769165be458d2efd3ce45817e

9 years agoMerge "Adjustments to vp9-denoising."
Marco Paniconi [Tue, 27 Oct 2015 19:10:01 +0000 (19:10 +0000)]
Merge "Adjustments to vp9-denoising."

9 years agoShrink probability remap tables.
Alex Converse [Tue, 27 Oct 2015 17:25:30 +0000 (10:25 -0700)]
Shrink probability remap tables.

Saves 2288 bytes in vp8+vp9 libvpx.a.

Change-Id: Iaa5712e59a9693ed58cea63de63781a96827e44e

9 years agoAdjustments to vp9-denoising.
Marco [Mon, 26 Oct 2015 21:56:46 +0000 (14:56 -0700)]
Adjustments to vp9-denoising.

Adjust variance threshold, delta-qp, and intra penalty cost,
based on estimated noise level in source.

Replace denoising_on with a level value=L/M/H.

Change-Id: I0c017dae75a5d897367d2c42dec26f2f37e447c1

9 years agoMerge "Reorder code to be consistent accross branches"
Yaowu Xu [Tue, 27 Oct 2015 17:07:50 +0000 (17:07 +0000)]
Merge "Reorder code to be consistent accross branches"

9 years agoMerge "Replace the zero handling in extend_to_full_distribution."
Alex Converse [Tue, 27 Oct 2015 16:54:49 +0000 (16:54 +0000)]
Merge "Replace the zero handling in extend_to_full_distribution."

9 years agoReorder code to be consistent accross branches
Yaowu Xu [Tue, 27 Oct 2015 16:04:40 +0000 (09:04 -0700)]
Reorder code to be consistent accross branches

This is to make future merge a bit easier.

Change-Id: I1039de381d8fe7b9988b57c23d15d0cb5f2fcd32

9 years agoFix VS build.
Alex Converse [Tue, 27 Oct 2015 06:13:03 +0000 (23:13 -0700)]
Fix VS build.

Add a cast on a double to unsigned assignment.

Change-Id: I4abce7cfa13e145ed0c71469844ac9b274aa1411

9 years agoSkip AS detection when using --enable-external-build
Johann [Mon, 26 Oct 2015 23:40:17 +0000 (16:40 -0700)]
Skip AS detection when using --enable-external-build

The option exists specifically to allow for configurations
where the build environment is different from the configure
environment.

Change-Id: I95196fa3c49700251d10ff5d256dc7380e39d0c4

9 years agoMerge "Code cleanup for vp9-denoiser."
Marco Paniconi [Mon, 26 Oct 2015 20:52:16 +0000 (20:52 +0000)]
Merge "Code cleanup for vp9-denoiser."

9 years agoMerge "Incorrect frame used in KF boost loop."
Paul Wilkins [Mon, 26 Oct 2015 19:12:34 +0000 (19:12 +0000)]
Merge "Incorrect frame used in KF boost loop."

9 years agoMerge "Bug in clamping of base_frame_target."
Paul Wilkins [Mon, 26 Oct 2015 19:12:08 +0000 (19:12 +0000)]
Merge "Bug in clamping of base_frame_target."

9 years agoCode cleanup for vp9-denoiser.
Marco [Mon, 26 Oct 2015 19:01:52 +0000 (12:01 -0700)]
Code cleanup for vp9-denoiser.

Change-Id: Ibb573f50c4bf2cfb382b589803f3363db0ac1285

9 years agoReplace the zero handling in extend_to_full_distribution.
Alex Converse [Thu, 8 Oct 2015 23:01:42 +0000 (16:01 -0700)]
Replace the zero handling in extend_to_full_distribution.

The old workaround "p = 0 ? 0 : p -1" is misleading.

?: happens before =
assigning back to p truncates to one byte.

Therefore it is equivalent to (p - 1) & 0xFF, but the check just exists
to work around a first pass bug, so let's make the work around more
clear.

https://code.google.com/p/webm/issues/detail?id=1089

Change-Id: Ia6dcc8922e1acbac0eeca23a4d564a355c489572

9 years agoMerge "Optimize vpx_quantize_{b,b_32x32} assembler."
Debargha Mukherjee [Mon, 26 Oct 2015 18:04:49 +0000 (18:04 +0000)]
Merge "Optimize vpx_quantize_{b,b_32x32} assembler."

9 years agoMerge "Optimize vp9_highbd_block_error_8bit assembly."
Debargha Mukherjee [Mon, 26 Oct 2015 18:03:46 +0000 (18:03 +0000)]
Merge "Optimize vp9_highbd_block_error_8bit assembly."

9 years agoMerge "palette: Replace rand() call with custom LCG."
Alex Converse [Mon, 26 Oct 2015 17:05:00 +0000 (17:05 +0000)]
Merge "palette: Replace rand() call with custom LCG."

9 years agoMerge "Use explicit block position in foreach_transformed_block"
Jingning Han [Mon, 26 Oct 2015 16:25:56 +0000 (16:25 +0000)]
Merge "Use explicit block position in foreach_transformed_block"

9 years agopalette: Replace rand() call with custom LCG.
Alex Converse [Wed, 14 Oct 2015 18:03:14 +0000 (11:03 -0700)]
palette: Replace rand() call with custom LCG.

The custom LCG is based on the POSIX recommend constants for a 16-bit
rand(). This implementation uses less computation than typical standard
library procedures which have been extended for 32-bit support, is
guaranteed to be reentrant, and identical everywhere.

Change-Id: I3140bbd566f44ab820d131c584a5d4ec6134c5a0
Ref: http://pubs.opengroup.org/onlinepubs/9699919799/functions/rand.html

9 years agoBug in clamping of base_frame_target.
Paul Wilkins [Wed, 21 Oct 2015 16:20:13 +0000 (17:20 +0100)]
Bug in clamping of base_frame_target.

Bug relating to issue:- http://b/25090786

base_frame_target is supposed to track the idealized bit
allocation based on error score and not the actual bits
allocated to each frame.

The clamping of this value based on the VBR min and max pct values
was causing a bug where in some cases the loop that adjusts the
active max quantizer for each GF group was running out of bits at
the end of a KF group. This caused a spike in Q and some ugly artifacts.

A second change makes sure that the calculation of the active
Q range for a group DOES, however, take account of clamping.

Change-Id: I31035e97d18853530b0874b433c1da7703f607d1

9 years agoVP9: Estimate noise level for denoiser.
Marco [Fri, 16 Oct 2015 23:14:22 +0000 (16:14 -0700)]
VP9: Estimate noise level for denoiser.

Periodically estiamte noise level in source, and only denoise
if estimated noise level is above threshold.

Change-Id: I54f967b3003b0c14d0b1d3dc83cb82ce8cc2d381

9 years agoUse explicit block position in foreach_transformed_block
Jingning Han [Fri, 23 Oct 2015 00:25:00 +0000 (17:25 -0700)]
Use explicit block position in foreach_transformed_block

Add the row and column index to the argument list of unit functions
called by foreach_transformed_block wrapper. This avoids the
repeated internal parsing according to the block index.

Change-Id: Ie7508acdac0b498487564639bc5cc6378a8a0df7

9 years agoMerge "vp10: merge ext_ipred_bltr experiment into misc_fixes."
Ronald S. Bultje [Thu, 22 Oct 2015 21:14:20 +0000 (21:14 +0000)]
Merge "vp10: merge ext_ipred_bltr experiment into misc_fixes."

9 years agoMerge "vp10: merge universal_hp experiment into misc_fixes."
Ronald S. Bultje [Thu, 22 Oct 2015 21:14:13 +0000 (21:14 +0000)]
Merge "vp10: merge universal_hp experiment into misc_fixes."

9 years agoMerge "Adjust superframe-is-optional unit test for vp10 superframe syntax."
Ronald S. Bultje [Thu, 22 Oct 2015 21:14:06 +0000 (21:14 +0000)]
Merge "Adjust superframe-is-optional unit test for vp10 superframe syntax."

9 years agoMerge "vp10: don't allow comp_inter_inter on keyframes."
Ronald S. Bultje [Thu, 22 Oct 2015 21:14:00 +0000 (21:14 +0000)]
Merge "vp10: don't allow comp_inter_inter on keyframes."

9 years agoMerge "vp10: fix tile size in remuxing step."
Ronald S. Bultje [Thu, 22 Oct 2015 21:12:44 +0000 (21:12 +0000)]
Merge "vp10: fix tile size in remuxing step."

9 years agoMerge "vp10: use correct constant for bw adaptation of seg pred probs."
Ronald S. Bultje [Thu, 22 Oct 2015 21:12:35 +0000 (21:12 +0000)]
Merge "vp10: use correct constant for bw adaptation of seg pred probs."

9 years agoMerge "vp10: don't make right edge available across tile boundaries."
Ronald S. Bultje [Thu, 22 Oct 2015 21:12:25 +0000 (21:12 +0000)]
Merge "vp10: don't make right edge available across tile boundaries."

9 years agoMerge "vp10: clip MVs before adding to find_ref_mvs() list."
Ronald S. Bultje [Thu, 22 Oct 2015 21:12:09 +0000 (21:12 +0000)]
Merge "vp10: clip MVs before adding to find_ref_mvs() list."

9 years agovp10: merge ext_ipred_bltr experiment into misc_fixes.
Ronald S. Bultje [Wed, 21 Oct 2015 19:23:16 +0000 (15:23 -0400)]
vp10: merge ext_ipred_bltr experiment into misc_fixes.

Change-Id: I2f2deb700748408b8278b7f5c29ee1f2e39785ec

9 years agovp10: merge universal_hp experiment into misc_fixes.
Ronald S. Bultje [Wed, 21 Oct 2015 19:20:22 +0000 (15:20 -0400)]
vp10: merge universal_hp experiment into misc_fixes.

Change-Id: I79fc3c0594535adc0056339c929cff69b8188760

9 years agoAdjust superframe-is-optional unit test for vp10 superframe syntax.
Ronald S. Bultje [Wed, 21 Oct 2015 14:24:49 +0000 (10:24 -0400)]
Adjust superframe-is-optional unit test for vp10 superframe syntax.

Change-Id: Ic64b6928af7ae8ecc987f845b0bf0faecdacb072

9 years agoIncorrect frame used in KF boost loop.
Paul Wilkins [Wed, 21 Oct 2015 17:48:15 +0000 (18:48 +0100)]
Incorrect frame used in KF boost loop.

Fixes a bug in the calculation of the boost for key frames.

Change-Id: I75e9c96a9e86379239fbbbecb56ccd529783dc7c

9 years agovp10: don't allow comp_inter_inter on keyframes.
Ronald S. Bultje [Wed, 21 Oct 2015 13:13:59 +0000 (09:13 -0400)]
vp10: don't allow comp_inter_inter on keyframes.

Change-Id: Ibd0e13721a2bb71c532d20b36c42f4cccf5c5de2

9 years agovp10: fix tile size in remuxing step.
Ronald S. Bultje [Tue, 20 Oct 2015 23:40:36 +0000 (19:40 -0400)]
vp10: fix tile size in remuxing step.

Change-Id: Id48fb193bbdb3afed1d0db26c4ddded65a293b1b

9 years agovp10: use correct constant for bw adaptation of seg pred probs.
Ronald S. Bultje [Tue, 20 Oct 2015 23:40:14 +0000 (19:40 -0400)]
vp10: use correct constant for bw adaptation of seg pred probs.

Change-Id: Idb869a77a126982814b8e7e288f952a65340e6be

9 years agovp10: don't make right edge available across tile boundaries.
Ronald S. Bultje [Tue, 20 Oct 2015 23:13:10 +0000 (19:13 -0400)]
vp10: don't make right edge available across tile boundaries.

Change-Id: Ia81cf3858ef6c8d1fd4b1fb2dd9627906081129d

9 years agoOptimize vp9_highbd_block_error_8bit assembly.
Geza Lore [Thu, 15 Oct 2015 17:28:31 +0000 (18:28 +0100)]
Optimize vp9_highbd_block_error_8bit assembly.

A new version of vp9_highbd_error_8bit is now available which is
optimized with AVX assembly. AVX itself does not buy us too much, but
the non-destructive 3 operand format encoding of the 128bit SSEn integer
instructions helps to eliminate move instructions. The Sandy Bridge
micro-architecture cannot eliminate move instructions in the processor
front end, so AVX will help on these machines.

Further 2 optimizations are applied:

1. The common case of computing block error on 4x4 blocks is optimized
as a special case.
2. All arithmetic is speculatively done on 32 bits only. At the end of
the loop, the code detects if overflow might have happened and if so,
the whole computation is re-executed using higher precision arithmetic.
This case however is extremely rare in real use, so we can achieve a
large net gain here.

The optimizations rely on the fact that the coefficients are in the
range [-(2^15-1), 2^15-1], and that the quantized coefficients always
have the same sign as the input coefficients (in the worst case they are
0). These are the same assumptions that the old SSE2 assembly code for
the non high bitdepth configuration relied on. The unit tests have been
updated to take this constraint into consideration when generating test
input data.

Change-Id: I57d9888a74715e7145a5d9987d67891ef68f39b7

9 years agoMerge "vp10: disallow coding zero-sized tiles-in-frame/frames-in-superframe."
Ronald S. Bultje [Tue, 20 Oct 2015 19:58:00 +0000 (19:58 +0000)]
Merge "vp10: disallow coding zero-sized tiles-in-frame/frames-in-superframe."

9 years agovp10: clip MVs before adding to find_ref_mvs() list.
Ronald S. Bultje [Tue, 20 Oct 2015 17:31:40 +0000 (13:31 -0400)]
vp10: clip MVs before adding to find_ref_mvs() list.

This causes the output of find_ref_mvs() to always be unique or zero.
A nice side-effect of this is that it also causes the output of
find_ref_mvs_sub8x8() to be unique-or-zero, and it will not ignore
available candidate MVs under certain conditions.

See issue 1012.

Change-Id: If4792789cb7885dbc9db420001d95f9b91b63bfa