]>
granicus.if.org Git - libvpx/log
Hui Su [Tue, 3 Nov 2015 20:55:14 +0000 (20:55 +0000)]
Merge "Generate intra prediction reference values only when necessary"
Marco Paniconi [Tue, 3 Nov 2015 19:54:52 +0000 (19:54 +0000)]
Merge "Adjust threshold for datarate frame drop test."
Alex Converse [Tue, 3 Nov 2015 17:52:34 +0000 (17:52 +0000)]
Merge "misc fixes: Remove a wasted value."
Alex Converse [Tue, 3 Nov 2015 17:50:34 +0000 (17:50 +0000)]
Merge "Add target for Mac OS X 10.11 'El Capitan'"
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
Jacky Chen [Mon, 2 Nov 2015 23:37:23 +0000 (23:37 +0000)]
Merge "vpx_scale: fix the issue in msan test."
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
Marco Paniconi [Mon, 2 Nov 2015 22:08:01 +0000 (22:08 +0000)]
Merge "Move noise level estimate outside denoiser."
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
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
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
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
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
Debargha Mukherjee [Fri, 30 Oct 2015 20:57:10 +0000 (20:57 +0000)]
Merge "Convert motion search config from AoS to SoA"
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
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
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."
James Zern [Thu, 29 Oct 2015 23:41:25 +0000 (16:41 -0700)]
vp9_decodeframe.h: add missing include
Change-Id: I8ef772a016a79cab88bee8e9739530aa030baaa9
hui su [Thu, 29 Oct 2015 22:53:20 +0000 (15:53 -0700)]
Specify feasible parameter values for lossless mode
Change-Id: I53d9719dcb81fa83fe3c920a552db5a0f1cacefa
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
Jacky Chen [Thu, 29 Oct 2015 21:00:36 +0000 (21:00 +0000)]
Merge "VP9_resizing: add limitation to the downsacling resolution."
Alex Converse [Thu, 29 Oct 2015 19:58:24 +0000 (19:58 +0000)]
Merge "Shrink probability remap tables."
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
Jacky Chen [Thu, 29 Oct 2015 16:00:15 +0000 (16:00 +0000)]
Merge "VP9 decoder: Add more test vectors for resizing."
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
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
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."
Alex Converse [Wed, 28 Oct 2015 20:48:52 +0000 (20:48 +0000)]
Merge "Revert "Replace the zero handling in extend_to_full_distribution.""
Johann Koenig [Wed, 28 Oct 2015 19:18:49 +0000 (19:18 +0000)]
Merge "Skip AS detection when using --enable-external-build"
Johann Koenig [Wed, 28 Oct 2015 19:16:42 +0000 (19:16 +0000)]
Merge "Only set sysroot when alt_libc finds a directory"
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
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
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
Hangyu Kuang [Wed, 28 Oct 2015 15:04:25 +0000 (15:04 +0000)]
Merge "Add 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
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
Johann [Tue, 27 Oct 2015 22:38:47 +0000 (15:38 -0700)]
Only set sysroot when alt_libc finds a directory
Change-Id: Idc0a9adb4fb371272d6c8c98737f66c6cf209e37
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
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
Marco Paniconi [Tue, 27 Oct 2015 19:10:01 +0000 (19:10 +0000)]
Merge "Adjustments to vp9-denoising."
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
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
Yaowu Xu [Tue, 27 Oct 2015 17:07:50 +0000 (17:07 +0000)]
Merge "Reorder code to be consistent accross branches"
Alex Converse [Tue, 27 Oct 2015 16:54:49 +0000 (16:54 +0000)]
Merge "Replace the zero handling in extend_to_full_distribution."
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
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
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
Marco Paniconi [Mon, 26 Oct 2015 20:52:16 +0000 (20:52 +0000)]
Merge "Code cleanup for vp9-denoiser."
Paul Wilkins [Mon, 26 Oct 2015 19:12:34 +0000 (19:12 +0000)]
Merge "Incorrect frame used in KF boost loop."
Paul Wilkins [Mon, 26 Oct 2015 19:12:08 +0000 (19:12 +0000)]
Merge "Bug in clamping of base_frame_target."
Marco [Mon, 26 Oct 2015 19:01:52 +0000 (12:01 -0700)]
Code cleanup for vp9-denoiser.
Change-Id: Ibb573f50c4bf2cfb382b589803f3363db0ac1285
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
Debargha Mukherjee [Mon, 26 Oct 2015 18:04:49 +0000 (18:04 +0000)]
Merge "Optimize vpx_quantize_{b,b_32x32} assembler."
Debargha Mukherjee [Mon, 26 Oct 2015 18:03:46 +0000 (18:03 +0000)]
Merge "Optimize vp9_highbd_block_error_8bit assembly."
Alex Converse [Mon, 26 Oct 2015 17:05:00 +0000 (17:05 +0000)]
Merge "palette: Replace rand() call with custom LCG."
Jingning Han [Mon, 26 Oct 2015 16:25:56 +0000 (16:25 +0000)]
Merge "Use explicit block position in foreach_transformed_block"
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
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
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
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
Ronald S. Bultje [Thu, 22 Oct 2015 21:14:20 +0000 (21:14 +0000)]
Merge "vp10: merge ext_ipred_bltr 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."
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."
Ronald S. Bultje [Thu, 22 Oct 2015 21:14:00 +0000 (21:14 +0000)]
Merge "vp10: don't allow comp_inter_inter on keyframes."
Ronald S. Bultje [Thu, 22 Oct 2015 21:12:44 +0000 (21:12 +0000)]
Merge "vp10: fix tile size in remuxing step."
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."
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."
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."
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
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
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
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
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
Ronald S. Bultje [Tue, 20 Oct 2015 23:40:36 +0000 (19:40 -0400)]
vp10: fix tile size in remuxing step.
Change-Id: Id48fb193bbdb3afed1d0db26c4ddded65a293b1b
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
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
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
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."
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
Ronald S. Bultje [Tue, 20 Oct 2015 16:13:03 +0000 (12:13 -0400)]
vp10: disallow coding zero-sized tiles-in-frame/frames-in-superframe.
See issue 1088.
Change-Id: Icb15d33b4e316add848f210b50cbccd7c7847207
Marco [Tue, 20 Oct 2015 17:38:09 +0000 (10:38 -0700)]
Setting change in sample encoder: vpx_temporal_svc_encoder.c
Change-Id: Ifb384fa571eb08b516ed08fe05b8bca0c94b1edf
Hui Su [Tue, 20 Oct 2015 16:37:31 +0000 (16:37 +0000)]
Merge "VP10: some changes to palette mode"
Ronald S. Bultje [Tue, 20 Oct 2015 15:57:21 +0000 (15:57 +0000)]
Merge "vp10: write colorspace info for profile 0 intraonly frames."
Ronald S. Bultje [Tue, 20 Oct 2015 15:57:12 +0000 (15:57 +0000)]
Merge "vp10: per-segment lossless coding."
Ronald S. Bultje [Tue, 20 Oct 2015 15:57:05 +0000 (15:57 +0000)]
Merge "vp10: add extended-intra prediction edges experiment."
Ronald S. Bultje [Tue, 20 Oct 2015 15:56:56 +0000 (15:56 +0000)]
Merge "vp10: allow MV refs to point outside visible image."
Ronald S. Bultje [Tue, 20 Oct 2015 15:56:49 +0000 (15:56 +0000)]
Merge "vp10: allow forward updates for keyframe y intra mode probabilities."
Ronald S. Bultje [Tue, 20 Oct 2015 15:56:42 +0000 (15:56 +0000)]
Merge "vp10: merge keyframe/interframe uvintramode/partition probabilities."
Ronald S. Bultje [Tue, 20 Oct 2015 15:56:34 +0000 (15:56 +0000)]
Merge "vp10: make segmentation probs use generic probability model."
Geza Lore [Mon, 19 Oct 2015 13:05:35 +0000 (14:05 +0100)]
Optimize vpx_quantize_{b,b_32x32} assembler.
Added optimization of the 8 bit assembly quantizer routines. This makes
these functions up to 100% faster, depending on encoding parameters.
This patch maskes the encoder faster in both the high bitdepth and 8bit
configurations. In the high bitdepth configuration, it effects profile 0
only.
Based on my profiling using 1080p input the net gain is between 1-3% for
the 8 bit config, and around 2.5-4.5% for the high bitdepth config,
depending on target bitrate. The difference between the 8 bit and high
bitdepth configurations for the same encoder run is reduced by 1% in all
cases I have profiled.
Change-Id: I86714a6b7364da20cd468cd784247009663a5140
James Zern [Tue, 20 Oct 2015 02:46:36 +0000 (02:46 +0000)]
Merge "vp8cx: remove deprecated reference/entropy controls"
Ronald S. Bultje [Mon, 19 Oct 2015 16:18:57 +0000 (12:18 -0400)]
vp10: write colorspace info for profile 0 intraonly frames.
See issue 1087.
Change-Id: I231f6f12f870d0a56391daf1673536048418b207
James Zern [Fri, 16 Oct 2015 23:47:38 +0000 (16:47 -0700)]
vp8cx: remove deprecated reference/entropy controls
VP8E_UPD_ENTROPY, VP8E_UPD_REFERENCE and VP8E_USE_REFERENCE have been
deprecated since the initial public release
Change-Id: Ied16b441eec13434d85f1ab115d49ccaf5f2f7b0
Ronald S. Bultje [Mon, 12 Oct 2015 21:54:25 +0000 (17:54 -0400)]
vp10: per-segment lossless coding.
Some more testing of this patch would probably be useful, but I
think the basics of it should work fine now.
See issue 1035.
Change-Id: I4a36d58f671c5391cb09d564581784a00ed26245
Ronald S. Bultje [Mon, 12 Oct 2015 14:35:46 +0000 (10:35 -0400)]
vp10: add extended-intra prediction edges experiment.
This experiment allows using full above/right edges for all transform
sizes whenever available (for d45/d63), and adds bottom/left edges for
d207.
See issue 1043.
Change-Id: I5cf7f345e783e8539bb6b6d2c9972fb1d6d0a78b
Ronald S. Bultje [Fri, 2 Oct 2015 16:09:24 +0000 (12:09 -0400)]
vp10: allow MV refs to point outside visible image.
In VP9, the ref MV had to point to a block that itself fully resided
within the visible image, i.e. all borders of the image had to be
within the visible borders of the coded frame. This is somewhat
illogical, and had obscure side effects, e.g. clamping of fairly
reasonable motion vectors such as 0,0 were clipped to negative values
if the block was overhanging on frame edges (such as the last rows
on 1080p content), which makes no sense whatsoever.
Instead, relax clamping constraints such that the ref MVs are allowed
to point to blocks exactly outside the visible edges in both Y as well
as UV planes, including the 8tap filter edges (that's why the offset is
8 pixels + block size).
See issue 1037.
Change-Id: I2683eb2a18b24955e4dcce36c2940aa2ba3a1061
Ronald S. Bultje [Tue, 13 Oct 2015 18:08:24 +0000 (14:08 -0400)]
vp10: allow forward updates for keyframe y intra mode probabilities.
See issue 1040 point 5.
Change-Id: I51a70b9eade39efba392a1457bd70a3c515525cb
Ronald S. Bultje [Tue, 13 Oct 2015 18:07:47 +0000 (14:07 -0400)]
vp10: merge keyframe/interframe uvintramode/partition probabilities.
This has various benefits:
- simplify implementations because we don't have to switch between
multiple probability tables depending on frametype
- allows fw subexp and bw adaptivity for partitions/uvmode in keyframes
See issue 1040 point 5.
Change-Id: Ia566aa2863252d130cee9deedcf123bb2a0d3765
Ronald S. Bultje [Tue, 13 Oct 2015 18:06:28 +0000 (14:06 -0400)]
vp10: make segmentation probs use generic probability model.
Locate them (code-wise) in frame_context, and have them be updated
as any other probability using the subexp forward and adaptive bw
updates.
See issue 1040 point 1.
TODOs:
- real-world default probabilities
- why is counts sometimes NULL in the decoder? Does that mean bw
adaptivity updates only work on some frames? (I haven't looked
very closely yet, maybe this is a red herring.)
Change-Id: I23b57b4e5e7574b75f16eb64823b29c22fbab42e
Yaowu Xu [Fri, 16 Oct 2015 23:25:08 +0000 (16:25 -0700)]
Add a new enum type vpx_color_range_t
to make meaning of color_range obvious.
Change-Id: I303582e448b82b3203b497e27b22601cc718dfff