platform/upstream/libvpx.git
8 years agovp10: disallow coding zero-sized tiles-in-frame/frames-in-superframe.
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

8 years agoMerge "vp10: write colorspace info for profile 0 intraonly frames."
Ronald S. Bultje [Tue, 20 Oct 2015 15:57:21 +0000 (15:57 +0000)]
Merge "vp10: write colorspace info for profile 0 intraonly frames."

8 years agoMerge "vp10: per-segment lossless coding."
Ronald S. Bultje [Tue, 20 Oct 2015 15:57:12 +0000 (15:57 +0000)]
Merge "vp10: per-segment lossless coding."

8 years agoMerge "vp10: add extended-intra prediction edges experiment."
Ronald S. Bultje [Tue, 20 Oct 2015 15:57:05 +0000 (15:57 +0000)]
Merge "vp10: add extended-intra prediction edges experiment."

8 years agoMerge "vp10: allow MV refs to point outside visible image."
Ronald S. Bultje [Tue, 20 Oct 2015 15:56:56 +0000 (15:56 +0000)]
Merge "vp10: allow MV refs to point outside visible image."

8 years agoMerge "vp10: allow forward updates for keyframe y intra mode probabilities."
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."

8 years agoMerge "vp10: merge keyframe/interframe uvintramode/partition probabilities."
Ronald S. Bultje [Tue, 20 Oct 2015 15:56:42 +0000 (15:56 +0000)]
Merge "vp10: merge keyframe/interframe uvintramode/partition probabilities."

8 years agoMerge "vp10: make segmentation probs use generic probability model."
Ronald S. Bultje [Tue, 20 Oct 2015 15:56:34 +0000 (15:56 +0000)]
Merge "vp10: make segmentation probs use generic probability model."

8 years agoMerge "vp8cx: remove deprecated reference/entropy controls"
James Zern [Tue, 20 Oct 2015 02:46:36 +0000 (02:46 +0000)]
Merge "vp8cx: remove deprecated reference/entropy controls"

8 years agovp10: write colorspace info for profile 0 intraonly frames.
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

8 years agovp8cx: remove deprecated reference/entropy controls
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

8 years agovp10: per-segment lossless coding.
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

8 years agovp10: add extended-intra prediction edges experiment.
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

8 years agovp10: allow MV refs to point outside visible image.
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

8 years agovp10: allow forward updates for keyframe y intra mode probabilities.
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

8 years agovp10: merge keyframe/interframe uvintramode/partition probabilities.
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

8 years agovp10: make segmentation probs use generic probability model.
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

8 years agoAdd a new enum type vpx_color_range_t
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

8 years agovpx/*.h: add VPX_CTRL_* preproc defines
James Zern [Fri, 9 Oct 2015 23:31:17 +0000 (16:31 -0700)]
vpx/*.h: add VPX_CTRL_* preproc defines

allows controls to be tested for at compile-time

Change-Id: I1cd01287dc144392956c82e6dbac003f37703039

8 years agoMerge "vpx/*.h, cosmetics: fix some typos"
James Zern [Fri, 16 Oct 2015 18:47:08 +0000 (18:47 +0000)]
Merge "vpx/*.h, cosmetics: fix some typos"

8 years agoAdjustment on limiting cyclic refresh on steady blocks.
Marco [Tue, 29 Sep 2015 22:38:49 +0000 (15:38 -0700)]
Adjustment on limiting cyclic refresh on steady blocks.

Adjust the qp threshold and consec_zeromv threshold for
limiting cyclic refresh. Also increase the refresh period
when the limit amount is significant, and some code-cleanup.

Small gain in PSNR/SSIM metrics: ~0.25/0.3 gain on RTC set, speed 7.

Change only affects non-screen content.

Change-Id: I1ced87a89a132684c071e722616e445b2d18236a

8 years agoRestore partial changes from previous commit
Yaowu Xu [Thu, 15 Oct 2015 18:33:41 +0000 (11:33 -0700)]
Restore partial changes from previous commit

This portion was tested to have no effect on asan test failures.

Change-Id: I3de1dab7479148bdffc24c4568cb2e7e9963f099

8 years agoFix palette mode in multi-thread encoding setting
hui su [Thu, 15 Oct 2015 03:18:18 +0000 (20:18 -0700)]
Fix palette mode in multi-thread encoding setting

Fix a couple of memory related errors. Also fix thread test failures.

Change-Id: I0103995f832cecf1dd2380000321ac7204f0cfc0

8 years agoMerge "VP9_resizing: adjust the threshold and another improvement."
Jacky Chen [Thu, 15 Oct 2015 21:35:02 +0000 (21:35 +0000)]
Merge "VP9_resizing: adjust the threshold and another improvement."

8 years agoMerge "Fix resetting of cyclic refresh on dynamic resize change."
Marco Paniconi [Thu, 15 Oct 2015 21:09:06 +0000 (21:09 +0000)]
Merge "Fix resetting of cyclic refresh on dynamic resize change."

8 years agoVP9_resizing: adjust the threshold and another improvement.
JackyChen [Thu, 15 Oct 2015 06:04:01 +0000 (23:04 -0700)]
VP9_resizing: adjust the threshold and another improvement.

Adjust the qp threshold based on the denoising setting; not allow
to scale directly from original resolution to one half and vise versa.

Change-Id: I032a9b22f8e1c88de6bb81cf8351367223a3e40d

8 years agoFix resetting of cyclic refresh on dynamic resize change.
Marco [Thu, 15 Oct 2015 16:01:47 +0000 (09:01 -0700)]
Fix resetting of cyclic refresh on dynamic resize change.

Put the reset at the right place, during the setup and prior
to updating the map.

Change-Id: I75e550ae9d8cc15081330b8857edc04c23947875

8 years agoVP9: Rate control update for re-encode screen-content.
Marco [Tue, 13 Oct 2015 02:17:44 +0000 (19:17 -0700)]
VP9: Rate control update for re-encode screen-content.

For the re-encoding (at max-qp) on the detected high-content change:
update rate correction factor, reset rate over/under-shoot flags,
and update/reset the rate control for layered coding.

Change-Id: I5dc72bb235427344dc87b5235f2b0f31704a034a

8 years agoMerge "fix a msvc compiler warning"
Yaowu Xu [Thu, 15 Oct 2015 14:39:01 +0000 (14:39 +0000)]
Merge "fix a msvc compiler warning"

8 years agoMerge "Fix two asan failures"
Yaowu Xu [Thu, 15 Oct 2015 14:38:05 +0000 (14:38 +0000)]
Merge "Fix two asan failures"

8 years agofix a msvc compiler warning
Yaowu Xu [Wed, 14 Oct 2015 15:10:05 +0000 (08:10 -0700)]
fix a msvc compiler warning

Change-Id: Ifd6581c1bdb8d8f4b2ecf676c1a3d385dc129abf

8 years agoFix two asan failures
Yaowu Xu [Wed, 14 Oct 2015 15:37:15 +0000 (08:37 -0700)]
Fix two asan failures

Change-Id: I57865e9604ac162ef0d97deb16e81ca436a98428

8 years agoCheck for bswap* builtins before using
Johann [Wed, 14 Oct 2015 17:42:41 +0000 (10:42 -0700)]
Check for bswap* builtins before using

Canonical builtin checks for clang are to use
__has_builtin. Much less fragile than version checks.

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

Change-Id: I8151fb75899acdf1a935c23aad9441da99a9abcd

8 years agoUpstream Mozilla fix for older Apple clang builds
Johann [Tue, 13 Oct 2015 17:36:16 +0000 (10:36 -0700)]
Upstream Mozilla fix for older Apple clang builds

Also use the _mm_broadcastsi128_si256 intrisic for
Apple clang versions 4.[012]

https://bugzilla.mozilla.org/show_bug.cgi?id=1085607
https://code.google.com/p/webm/issues/detail?id=1082

Change-Id: I6bc821d8163387194ef663e94bfed91fa7281d88

8 years agoMerge "Changes to partition breakout rules."
Yaowu Xu [Tue, 13 Oct 2015 22:31:56 +0000 (22:31 +0000)]
Merge "Changes to partition breakout rules."

8 years agoChanges to partition breakout rules.
paulwilkins [Wed, 23 Sep 2015 10:13:52 +0000 (11:13 +0100)]
Changes to partition breakout rules.

Changes to the breakout behavior for partition selection.
The biggest impact is on speed 0 where encode speed in
some cases more than doubles with typically less than 1%
impact on quality.

Speed 0 encode speed impact examples
Animation test clip: +128%
Park Joy:  +59%
Old town Cross: + 109%

Change-Id: I222720657e56cede1b2a5539096f788ffb2df3a1

8 years agoMerge "VP9-SVC: Bugfix to allow skipping lower layer(s) encoding."
Marco Paniconi [Tue, 13 Oct 2015 21:09:10 +0000 (21:09 +0000)]
Merge "VP9-SVC: Bugfix to allow skipping lower layer(s) encoding."

8 years agoMerge "vp10: fix compiler warning with --enable-universal_hp."
Ronald S. Bultje [Tue, 13 Oct 2015 19:33:05 +0000 (19:33 +0000)]
Merge "vp10: fix compiler warning with --enable-universal_hp."

8 years agoMerge "Fix compiler warnings"
Hui Su [Tue, 13 Oct 2015 19:30:33 +0000 (19:30 +0000)]
Merge "Fix compiler warnings"

8 years agovp10: fix compiler warning with --enable-universal_hp.
Ronald S. Bultje [Mon, 12 Oct 2015 21:57:43 +0000 (17:57 -0400)]
vp10: fix compiler warning with --enable-universal_hp.

Change-Id: I0d7ca20bdd0fc868b28b0755e3114a4499056f45

8 years agoMerge "VP10: Add palette mode part 1"
Hui Su [Tue, 13 Oct 2015 17:34:27 +0000 (17:34 +0000)]
Merge "VP10: Add palette mode part 1"

8 years agoFix compiler warnings
hui su [Tue, 13 Oct 2015 17:16:51 +0000 (10:16 -0700)]
Fix compiler warnings

Change-Id: I761256a8100d83abf1b937f3739580237e3fad2a

8 years agoVP9-SVC: Bugfix to allow skipping lower layer(s) encoding.
Marco [Mon, 12 Oct 2015 23:05:27 +0000 (16:05 -0700)]
VP9-SVC: Bugfix to allow skipping lower layer(s) encoding.

The setting of svc->spatial_layer_to_encode was missing
in VP9E_SET_SVC_LAYER_ID.

Change-Id: I015b1a64adb9ef2644d6477a02d9d9364c8462b9

8 years agovp10: allow forward updates for uv_mode probabilities.
Ronald S. Bultje [Thu, 1 Oct 2015 14:45:46 +0000 (10:45 -0400)]
vp10: allow forward updates for uv_mode probabilities.

See issue 1040 point 4.

Change-Id: I79e06bd71a27f45770c760c47dc71bc3767a77a0

8 years agovp10: allow bw adaptivity for skip/tx probabilities in keyframes.
Ronald S. Bultje [Thu, 1 Oct 2015 14:32:57 +0000 (10:32 -0400)]
vp10: allow bw adaptivity for skip/tx probabilities in keyframes.

See issue 1040 point 3.

Change-Id: Ieef6d326b7fb50ceca5936525b7c688225a11fd1

8 years agovp10: don't write tile size marker bit if CONFIG_MISC_FIXES=0.
Ronald S. Bultje [Mon, 12 Oct 2015 20:35:32 +0000 (16:35 -0400)]
vp10: don't write tile size marker bit if CONFIG_MISC_FIXES=0.

Change-Id: I41b13b8767e30da391c2c4da9a729ca7292b16b9

8 years agovp10: remove ref-MV-dependent use of HP.
Ronald S. Bultje [Fri, 2 Oct 2015 19:07:04 +0000 (15:07 -0400)]
vp10: remove ref-MV-dependent use of HP.

This change (in a new config experiment: universal_hp) removes the
bitstream parsing dependency of the HP MV bit on the ref MV to be
coded. It also cleans up clearing of the HP bit in near/nearestMV,
since HP is always on if it's set in the frame header.

This admittedly doesn't clean up the crap that could be cleaned up,
but that's mostly because I think this needs some careful review;
not so much for coding style, but more from hardware people and from
the codec team on what we/you want. It would also be nice to get some
actual numbers on the real quality impact of this change. If, for
example, hardware people come up and tell us they don't actually care
anymore, we should probably just this code as-is and do nothing (i.e.
discard this patch).

See issue 1036.

Change-Id: Ic9b106f34422aa0f79de0c28125b72d566bd511a

8 years agovp10: remove clamp_mv2() call from vp10_find_best_ref_mvs().
Ronald S. Bultje [Fri, 2 Oct 2015 15:51:54 +0000 (11:51 -0400)]
vp10: remove clamp_mv2() call from vp10_find_best_ref_mvs().

This actually has no effect whatsoever, since the input MVs themselves
are clamped by clamp_mv_ref() already, which is significantly more
restrictive in its bounds.

Change-Id: I4a3a7b2b121ee422c56428c2a12d930c3813c06e

8 years agovp10: update assertion/allocation for tokens.
Ronald S. Bultje [Mon, 12 Oct 2015 18:45:04 +0000 (14:45 -0400)]
vp10: update assertion/allocation for tokens.

We only write EOSB tokens if we write tokens (i.e. not for skip blocks),
and we write EOSB tokens per-plane instead of per block.

Change-Id: I8d7ee99f8ec50eb7ae809f9f9282c1c91dbf6537

8 years agoVP10: Add palette mode part 1
hui su [Tue, 15 Sep 2015 19:44:13 +0000 (12:44 -0700)]
VP10: Add palette mode part 1

Add palette mode for keyframe luma channel. Palette mode is enabled
when using "--tune-content=screen" in encoding config parameters.

on screen_content testset:  +6.89%
on derlr                 :  +0.00%

Design doc (WIP):
https://goo.gl/lD4yJw

Change-Id: Ib368b216bfd3ea21c6c27436934ad87afdaa6f88

8 years agotile_worker_hook: fix -Wclobbered warning
James Zern [Sat, 10 Oct 2015 18:16:20 +0000 (11:16 -0700)]
tile_worker_hook: fix -Wclobbered warning

*tile should be marked volatile like the others due to the use of
setjmp()

Change-Id: I5dbf8e6792e4c0f34a683434b4fd06e3b4c75c4b

8 years agovpx/*.h, cosmetics: fix some typos
James Zern [Fri, 9 Oct 2015 05:43:45 +0000 (22:43 -0700)]
vpx/*.h, cosmetics: fix some typos

Change-Id: Ie9ead2c665c6c065a6b922ab66bae9be63483272

8 years agoAdd vpx_highbd_convolve_{copy,avg}_sse2
Alex Converse [Tue, 6 Oct 2015 22:59:03 +0000 (15:59 -0700)]
Add vpx_highbd_convolve_{copy,avg}_sse2

single-threaded:
swanky (silvermont): ~1% faster overall
peppy (celeron,haswell): ~1.5% faster overall

Change-Id: Ib74f014374c63c9eaf2d38191cbd8e2edcc52073

8 years agoGenerate convolve_test wrapper functions with a macro
Alex Converse [Fri, 9 Oct 2015 18:42:05 +0000 (11:42 -0700)]
Generate convolve_test wrapper functions with a macro

Change-Id: Iccb4cdc23c1845cf9cb7d69101c9f4f43675d368

8 years agoMerge "vp9/decode_tiles_mt: remove unnecessary local"
James Zern [Fri, 9 Oct 2015 17:52:34 +0000 (17:52 +0000)]
Merge "vp9/decode_tiles_mt: remove unnecessary local"

8 years agoRemove 4 mova insts from quantize_ssse3_x86_64.asm
Geza Lore [Thu, 8 Oct 2015 17:33:32 +0000 (18:33 +0100)]
Remove 4 mova insts from quantize_ssse3_x86_64.asm

Change-Id: If3cb9345b44162e600e6c74873e0cb4c207fc7fb

8 years agoMerge "Optimization of 8bit block error for high bitdepth"
Debargha Mukherjee [Fri, 9 Oct 2015 13:36:47 +0000 (13:36 +0000)]
Merge "Optimization of 8bit block error for high bitdepth"

8 years agoOptimization of 8bit block error for high bitdepth
Geza Lore [Thu, 8 Oct 2015 14:44:49 +0000 (15:44 +0100)]
Optimization of 8bit block error for high bitdepth

If high bit depth configuration is enabled, but encoding in profile 0,
the code now falls back on optimized SSE2 assembler to compute the
block errors, similar to when high bit depth is not enabled.

Change-Id: I471d1494e541de61a4008f852dbc0d548856484f

8 years agoMerge "VP9 denoiser: use skin map to improve denoising."
Jacky Chen [Thu, 8 Oct 2015 21:02:46 +0000 (21:02 +0000)]
Merge "VP9 denoiser: use skin map to improve denoising."

8 years agoVP9 denoiser: use skin map to improve denoising.
jackychen [Wed, 7 Oct 2015 22:08:20 +0000 (15:08 -0700)]
VP9 denoiser: use skin map to improve denoising.

Only denoise at small motion if it's a skin block.

Change-Id: I6235cad9dd7f76ab40e7d9cdfe6180e619c20c6e

8 years agoMerge "vp10: use subexp probability updates for MV probs."
Ronald S. Bultje [Thu, 8 Oct 2015 18:50:50 +0000 (18:50 +0000)]
Merge "vp10: use subexp probability updates for MV probs."

8 years agoMerge "vp10: skip unreachable cat6 token extrabits."
Ronald S. Bultje [Thu, 8 Oct 2015 18:50:39 +0000 (18:50 +0000)]
Merge "vp10: skip unreachable cat6 token extrabits."

8 years agoMerge "vp10: remove superframe size field for last frame in superframe."
Ronald S. Bultje [Thu, 8 Oct 2015 18:50:08 +0000 (18:50 +0000)]
Merge "vp10: remove superframe size field for last frame in superframe."

8 years agoMerge "vp9_skin_detection: fix some build warnings."
Jacky Chen [Thu, 8 Oct 2015 18:15:10 +0000 (18:15 +0000)]
Merge "vp9_skin_detection: fix some build warnings."

8 years agoMerge "vp10: use superframe marker index/size mechanism for tile size."
Ronald S. Bultje [Thu, 8 Oct 2015 17:32:52 +0000 (17:32 +0000)]
Merge "vp10: use superframe marker index/size mechanism for tile size."

8 years agovp9_skin_detection: fix some build warnings.
jackychen [Thu, 8 Oct 2015 16:50:28 +0000 (09:50 -0700)]
vp9_skin_detection: fix some build warnings.

Change-Id: Ib779c083e9775dc9922ed6e104f6275bc453bef9

8 years agovp9/decode_tiles_mt: remove unnecessary local
James Zern [Thu, 8 Oct 2015 00:45:45 +0000 (17:45 -0700)]
vp9/decode_tiles_mt: remove unnecessary local

reuse the common loop index

Change-Id: I9db45a93c219c2123917514cb8e9d4ea86454711

8 years agoMerge "vp9/tile_worker_hook: pass pbi directly"
James Zern [Wed, 7 Oct 2015 22:09:33 +0000 (22:09 +0000)]
Merge "vp9/tile_worker_hook: pass pbi directly"

8 years agoMerge changes Iaee60826,I51cf1e39
James Zern [Wed, 7 Oct 2015 22:09:21 +0000 (22:09 +0000)]
Merge changes Iaee60826,I51cf1e39

* changes:
  vp9/tile_worker_hook: add multiple tile decoding
  invalid_file_test: loosen error check w/tile-threading

8 years agoVP9_denoiser: pass address in copy_frame to make it faster.
jackychen [Wed, 7 Oct 2015 20:21:25 +0000 (13:21 -0700)]
VP9_denoiser: pass address in copy_frame to make it faster.

Change-Id: I65269ddb3ea5f911d5be38614b93c97be7e1ba76

8 years agoMerge "VP9 denoiser bug-fix: artifact caused by false buffer swap."
Marco Paniconi [Wed, 7 Oct 2015 19:08:07 +0000 (19:08 +0000)]
Merge "VP9 denoiser bug-fix: artifact caused by false buffer swap."

8 years agoMerge "vp9: simplify extrabits encoding"
Alex Converse [Wed, 7 Oct 2015 18:45:02 +0000 (18:45 +0000)]
Merge "vp9: simplify extrabits encoding"

8 years agoMerge "test/reg...check,video_source.h: avoid NOMINMAX redef"
James Zern [Wed, 7 Oct 2015 18:40:02 +0000 (18:40 +0000)]
Merge "test/reg...check,video_source.h: avoid NOMINMAX redef"

8 years agoMerge "vpxdec: quiet signed/unsigned warning"
James Zern [Wed, 7 Oct 2015 18:26:36 +0000 (18:26 +0000)]
Merge "vpxdec: quiet signed/unsigned warning"

8 years agoMerge changes I2965e786,I144bedde
James Zern [Wed, 7 Oct 2015 18:26:15 +0000 (18:26 +0000)]
Merge changes I2965e786,I144bedde

* changes:
  vpx_memset16: drop unnecessary local
  vpx_memset16: quiet signed/unsigned warning

8 years agoVP9 denoiser bug-fix: artifact caused by false buffer swap.
jackychen [Wed, 7 Oct 2015 17:44:04 +0000 (10:44 -0700)]
VP9 denoiser bug-fix: artifact caused by false buffer swap.

The artifact occurs periodically when VP9 denoiser is on and
refresh_golden_frame happen. When refresh_golden_frame happen,
we should copy the frame buffer instead of swapping the pointers.

Change-Id: Ib3204c4b04db28ecf439c6d9e61f3d146f04196d

8 years agoMerge "Move setting of refresh threshold outside loop."
Marco Paniconi [Wed, 7 Oct 2015 16:44:32 +0000 (16:44 +0000)]
Merge "Move setting of refresh threshold outside loop."

8 years agoMerge "Backports highbitdepth accelerations into vp10"
Debargha Mukherjee [Wed, 7 Oct 2015 16:28:36 +0000 (16:28 +0000)]
Merge "Backports highbitdepth accelerations into vp10"

8 years agotest/reg...check,video_source.h: avoid NOMINMAX redef
James Zern [Wed, 7 Oct 2015 06:05:15 +0000 (23:05 -0700)]
test/reg...check,video_source.h: avoid NOMINMAX redef

some mingw32 configs define this. force this to be on to ensure the
build succeeds

Change-Id: I2cc490782b6a0736aa617e6a1457fc2bc984adbb

8 years agovpxdec: quiet signed/unsigned warning
James Zern [Wed, 7 Oct 2015 05:56:34 +0000 (22:56 -0700)]
vpxdec: quiet signed/unsigned warning

Change-Id: I93c56dfa547af9b2f2b96c4f85fd9862ea67af62

8 years agovpx_memset16: drop unnecessary local
James Zern [Wed, 7 Oct 2015 05:51:35 +0000 (22:51 -0700)]
vpx_memset16: drop unnecessary local

+ add a cast

Change-Id: I2965e7867223aa25bf688c988629ac57b4971905

8 years agovpx_memset16: quiet signed/unsigned warning
James Zern [Wed, 7 Oct 2015 05:48:18 +0000 (22:48 -0700)]
vpx_memset16: quiet signed/unsigned warning

Change-Id: I144bedde7ea43f1b84360c1a7c8a042fd30abb6b

8 years agovp9/tile_worker_hook: pass pbi directly
James Zern [Thu, 1 Oct 2015 06:02:31 +0000 (23:02 -0700)]
vp9/tile_worker_hook: pass pbi directly

reduces the size of TileWorkerData reusing the storage in the worker
itself

Change-Id: If8a62fcb35167037c3da5814ab84fb81893f9cab

8 years agovp9/tile_worker_hook: add multiple tile decoding
James Zern [Sat, 26 Sep 2015 03:43:04 +0000 (20:43 -0700)]
vp9/tile_worker_hook: add multiple tile decoding

this reduces the number of synchronizations in decode_tiles_mt() and
improves overall performance when the number of threads is less than the
number of tiles

Change-Id: Iaee6082673dc187ffe0e3d91a701d1e470c62924

8 years agoMove setting of refresh threshold outside loop.
Marco [Wed, 7 Oct 2015 00:47:08 +0000 (17:47 -0700)]
Move setting of refresh threshold outside loop.

Small code cleanup. consec_zeromv refresh threshold
does not need to be computed for every super-block.

No change in behavior.

Change-Id: I8c4b1b28072f42b01d917fff6d1f62722f1e1554

8 years agoinvalid_file_test: loosen error check w/tile-threading
James Zern [Sat, 26 Sep 2015 03:31:45 +0000 (20:31 -0700)]
invalid_file_test: loosen error check w/tile-threading

The serial decode check is too strict for tile-threaded decoding as
there is no guarantee on the decode order nor which specific error
will take precedence. Currently a tile-level error is not forwarded so
the frame will simply be marked corrupt.

Change-Id: I51cf1e39e44bedeac93746154b36a4ccb2f059b1

8 years agovp9: simplify extrabits encoding
Alex Converse [Tue, 6 Oct 2015 21:03:34 +0000 (14:03 -0700)]
vp9: simplify extrabits encoding

Change-Id: I5a2abd35cb303d8f6354b3119ab95acf90405116

8 years agoMerge "SSSE3 optimisation for quantize in high bit depth"
Debargha Mukherjee [Tue, 6 Oct 2015 22:28:11 +0000 (22:28 +0000)]
Merge "SSSE3 optimisation for quantize in high bit depth"

8 years agoAdd first_spatial_layer_to_encode to SVC.
Marco [Thu, 1 Oct 2015 22:46:06 +0000 (15:46 -0700)]
Add first_spatial_layer_to_encode to SVC.

Use the existing VP9_SET_SVC control to set the
first spatial layer to encode.

Since we loop over all spatial layers inside the encoder, the
setting of spatial_layer_id via VP9_SET_SVC has no relevance.
Use it instead to set the first_spatial_layer_to_encode,
which allows an application to skip encoding lower layer(s).

Change only affects the 1 pass CBR SVC.

Change-Id: I5d63ab713c3e250fdf42c637f38d5ec8f60cd1fb

8 years agoSSSE3 optimisation for quantize in high bit depth
Julia Robson [Tue, 6 Oct 2015 11:11:14 +0000 (12:11 +0100)]
SSSE3 optimisation for quantize in high bit depth

When configured with high bit detpth enabled, the 8bit quantize
function stopped using optimised code. This made 8bit content
decode slowly. This commit re-enables the SSSE3 optimisations.

Change-Id: I194b505dd3f4c494e5c5e53e020f5d94534b16b5

8 years agoMerge "VPX: refactor vpx_idct32x32_1_add_sse2()"
Scott LaVarnway [Tue, 6 Oct 2015 11:35:15 +0000 (11:35 +0000)]
Merge "VPX: refactor vpx_idct32x32_1_add_sse2()"

8 years agoMerge "vp10: extend range for delta Q values."
Ronald S. Bultje [Tue, 6 Oct 2015 10:49:30 +0000 (10:49 +0000)]
Merge "vp10: extend range for delta Q values."

8 years agovp10: use subexp probability updates for MV probs.
Ronald S. Bultje [Thu, 1 Oct 2015 14:07:32 +0000 (10:07 -0400)]
vp10: use subexp probability updates for MV probs.

See issue 1040 point 2.

Change-Id: I0b37fe74be764610696620f1fe296dc74e4806d7

8 years agovp10: skip unreachable cat6 token extrabits.
Ronald S. Bultje [Thu, 1 Oct 2015 01:37:20 +0000 (21:37 -0400)]
vp10: skip unreachable cat6 token extrabits.

We have historically added new bits to cat6 whenever we added a new
transform size (or bitdepth, for that matter). However, we have
always coded these new bits regardless of the actual transform size,
which means that for smaller transforms, we code bits that cannot
possibly be set. The coding (quality) impact of this is negligible,
but the bigger issue is that this allows creating bitstreams with
coefficient values that are nonsensible and can cause int overflows,
which then de facto become part of the bitstream spec. By not coding
these bits, we remove this possibility.

See issue 1065.

Change-Id: Ib3186eca2df6a7a15ddc60c8b55af182aadd964d

8 years agovp10: remove superframe size field for last frame in superframe.
Ronald S. Bultje [Wed, 30 Sep 2015 21:16:28 +0000 (17:16 -0400)]
vp10: remove superframe size field for last frame in superframe.

This is identical to what the tile size does for the last tile. See
issue 1042 (which covers generalizing the superframe/tile concepts).

Change-Id: I1f187d2e3b984e424e3b6d79201b8723069e1a50

8 years agovp10: use superframe marker index/size mechanism for tile size.
Ronald S. Bultje [Wed, 30 Sep 2015 20:42:59 +0000 (16:42 -0400)]
vp10: use superframe marker index/size mechanism for tile size.

See issue 1042. Should provide slight bitstream savings in most cases
where tiles are being used.

Change-Id: Ie2808cf8ef30b3efe50804396900c4d63a3fa026

8 years agovp10: extend range for delta Q values.
Ronald S. Bultje [Thu, 1 Oct 2015 02:01:41 +0000 (22:01 -0400)]
vp10: extend range for delta Q values.

See issue 1051. 6 bits is fairly arbitrary but at least allows writing
delta Q values that are fairly normal in other codecs. I can extend to
8 if people want full range, although I personally don't have any need
for that.

Change-Id: I0a5a7c3d9b8eb3de4418430ab0e925d4a08cd7a0

8 years agoAdd the check of resolution in VP9 dynamic resizing.
jackychen [Mon, 5 Oct 2015 22:35:22 +0000 (15:35 -0700)]
Add the check of resolution in VP9 dynamic resizing.

The resolution check fixs the issue which resets resize_pending
unnecessarily and causes not-bitexact with previous one-step version.

Change-Id: I4e7660b3c8f34f59781e2e61ca30d61080c322de

8 years agoSSE2 optimisation for quantize in high bit depth
Julia Robson [Fri, 2 Oct 2015 09:20:06 +0000 (10:20 +0100)]
SSE2 optimisation for quantize in high bit depth

When configured with high bit detpth enabled, the 8bit quantize
function stopped using optimised code. This made 8bit content
decode slowly. This commit re-enables the SSE2 optimisation
(but not the SSSE3 optimisation).

Change-Id: Id015fe3c1c44580a4bff3f4bd985170f2806a9d9

8 years agoMerge "Fix to denoiser with dynamic resize."
Marco Paniconi [Mon, 5 Oct 2015 14:14:35 +0000 (14:14 +0000)]
Merge "Fix to denoiser with dynamic resize."