platform/upstream/libvpx.git
8 years agoMerge "vpxenc: Allow non i420 input for VP10."
Tom Finegan [Tue, 29 Sep 2015 18:56:21 +0000 (18:56 +0000)]
Merge "vpxenc: Allow non i420 input for VP10."

8 years agoMerge "aq-mode for SVC: Add consec_zero_mv to layer context."
Marco Paniconi [Tue, 29 Sep 2015 17:47:39 +0000 (17:47 +0000)]
Merge "aq-mode for SVC: Add consec_zero_mv to layer context."

8 years agovpxenc: Allow non i420 input for VP10.
Tom Finegan [Tue, 29 Sep 2015 17:45:00 +0000 (10:45 -0700)]
vpxenc: Allow non i420 input for VP10.

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

Change-Id: I3bd26a516ef3d2742c523af570f639f9312df6df

8 years agoMerge "Fix a macro definition"
Yaowu Xu [Tue, 29 Sep 2015 17:22:49 +0000 (17:22 +0000)]
Merge "Fix a macro definition"

8 years agoMerge "build/make/iosbuild.sh: Remove jobs argument."
Tom Finegan [Tue, 29 Sep 2015 17:08:55 +0000 (17:08 +0000)]
Merge "build/make/iosbuild.sh: Remove jobs argument."

8 years agoaq-mode for SVC: Add consec_zero_mv to layer context.
Marco [Tue, 29 Sep 2015 17:00:16 +0000 (10:00 -0700)]
aq-mode for SVC: Add consec_zero_mv to layer context.

Change-Id: I63fadf1c7240d4b2893384f75c519311e9659d47

8 years agoFix a macro definition
Yaowu Xu [Tue, 29 Sep 2015 16:34:42 +0000 (09:34 -0700)]
Fix a macro definition

to be consistent with the head file name.

Change-Id: I9634332a2b3fac7e7f3b7ef58821ea7c81c5c813

8 years agoMerge "VP8: Update rate correction factor for drop_overshoot feature."
Marco Paniconi [Mon, 28 Sep 2015 19:53:10 +0000 (19:53 +0000)]
Merge "VP8: Update rate correction factor for drop_overshoot feature."

8 years agoVP8: Update rate correction factor for drop_overshoot feature.
Marco [Mon, 28 Sep 2015 15:31:06 +0000 (08:31 -0700)]
VP8: Update rate correction factor for drop_overshoot feature.

Update rate correction factor when we drop the frame due to overshoot.
Only affects when the drop_overshoot feature is on: screen_content_mode = 2.

Change-Id: I67e24de979b4c74744151d2ceb3cd75fec2a1e7a

8 years agoMerge "comment out fdct32"
Angie Chiang [Mon, 28 Sep 2015 17:26:22 +0000 (17:26 +0000)]
Merge "comment out fdct32"

8 years agoMerge "vp9/10: improve support for render_width/height."
Ronald S. Bultje [Mon, 28 Sep 2015 16:25:28 +0000 (16:25 +0000)]
Merge "vp9/10: improve support for render_width/height."

8 years agoMerge "Rename display_{size,width,height} to render_*."
Ronald S. Bultje [Mon, 28 Sep 2015 16:25:20 +0000 (16:25 +0000)]
Merge "Rename display_{size,width,height} to render_*."

8 years agoMerge "vp10: code reference_mode in uncompressed header."
Ronald S. Bultje [Mon, 28 Sep 2015 16:23:11 +0000 (16:23 +0000)]
Merge "vp10: code reference_mode in uncompressed header."

8 years agoMerge "vp10: split UV int4x4 loopfilter flag in one for each covered edge."
Ronald S. Bultje [Mon, 28 Sep 2015 16:23:00 +0000 (16:23 +0000)]
Merge "vp10: split UV int4x4 loopfilter flag in one for each covered edge."

8 years agovp9/10: improve support for render_width/height.
Ronald S. Bultje [Sat, 26 Sep 2015 01:51:55 +0000 (21:51 -0400)]
vp9/10: improve support for render_width/height.

In the decoder, map this to the output variable vpx_image_t.r_w/h.
This is intended as an improved version of VP9D_GET_DISPLAY_SIZE,
which doesn't work with parallel frame decoding. In the encoder,
map this to a codec control func (VP9E_SET_RENDER_SIZE) that takes
a w/h pair argument in a int[2] (identical to VP9D_GET_DISPLAY_SIZE).

Also add render_size to the encoder_param_get_to_decoder unit test.

See issue 1030.

Change-Id: I12124c13602d832bf4c44090db08c1009c94c7e8

8 years agoMerge "vp9/10 encoder: prevent NULL access on failure"
James Zern [Sat, 26 Sep 2015 01:52:52 +0000 (01:52 +0000)]
Merge "vp9/10 encoder: prevent NULL access on failure"

8 years agoRename display_{size,width,height} to render_*.
Ronald S. Bultje [Sat, 26 Sep 2015 01:34:29 +0000 (21:34 -0400)]
Rename display_{size,width,height} to render_*.

The name "display_*" (or "d_*") is used for non-compatible information
(that is, the cropped frame dimensions in pixels, as opposed to the
intended screen rendering surface size). Therefore, continuing to use
display_* would be confusing to end users. Instead, rename the field
to render_*, so that struct vpx_image can include it.

Change-Id: Iab8d2eae96492b71c4ea60c4bce8121cb2a1fe2d

8 years agoMerge "vp10: remove MACROBLOCK.{highbd_,}itxfm_add function pointer."
Ronald S. Bultje [Sat, 26 Sep 2015 01:20:14 +0000 (01:20 +0000)]
Merge "vp10: remove MACROBLOCK.{highbd_,}itxfm_add function pointer."

8 years agoMerge "vp10: remove MACROBLOCK.fwd_txm4x4 function pointer."
Ronald S. Bultje [Sat, 26 Sep 2015 01:19:49 +0000 (01:19 +0000)]
Merge "vp10: remove MACROBLOCK.fwd_txm4x4 function pointer."

8 years agocomment out fdct32
Angie Chiang [Sat, 26 Sep 2015 01:18:27 +0000 (18:18 -0700)]
comment out fdct32

comment out fdct32
remove fdct32 test

Change-Id: I31c47fb435377465cd3265e39621ca50d3aae656

8 years agovp10: code reference_mode in uncompressed header.
Ronald S. Bultje [Sat, 26 Sep 2015 00:32:14 +0000 (20:32 -0400)]
vp10: code reference_mode in uncompressed header.

See issue 1041 point 2.

Change-Id: I6fc6427b1a0edff828e39d43428e3271491f8ac5

8 years agovp10: split UV int4x4 loopfilter flag in one for each covered edge.
Ronald S. Bultje [Wed, 9 Sep 2015 20:50:07 +0000 (16:50 -0400)]
vp10: split UV int4x4 loopfilter flag in one for each covered edge.

In practice, this fixes the issue that if you have an odd number of
mi_cols, on the full right of the image, the UV int4x4 loopfilter
will be skipped over odd cols as well as odd rows (because it holds a
single variable for both edges).

See issue 1016.

Change-Id: Id53b501cbff9323a8239ed4775ae01fe91874b7e

8 years agoMerge "Revert "remove static from fdct4/8/16/32""
James Zern [Sat, 26 Sep 2015 00:12:43 +0000 (00:12 +0000)]
Merge "Revert "remove static from fdct4/8/16/32""

8 years agovp10: remove MACROBLOCK.{highbd_,}itxfm_add function pointer.
Ronald S. Bultje [Fri, 11 Sep 2015 19:45:23 +0000 (15:45 -0400)]
vp10: remove MACROBLOCK.{highbd_,}itxfm_add function pointer.

This is preparatory work for allowing per-segment lossless coding.

See issue 1035.

Change-Id: I9487d02717ee3e766aee61a487780056bb35d2d3

8 years agovp10: remove MACROBLOCK.fwd_txm4x4 function pointer.
Ronald S. Bultje [Tue, 22 Sep 2015 18:01:48 +0000 (14:01 -0400)]
vp10: remove MACROBLOCK.fwd_txm4x4 function pointer.

This is preparatory work for allowing per-segment lossless coding.

See issue 1035.

Change-Id: Idd72e2a42d90fa7319c10122032d1a7c7a54dc05

8 years agobuild/make/iosbuild.sh: Remove jobs argument.
Tom Finegan [Fri, 25 Sep 2015 22:18:17 +0000 (15:18 -0700)]
build/make/iosbuild.sh: Remove jobs argument.

This can be handled via MAKEFLAGS.

Change-Id: I3a58a8a41f6570cb3b80c7c97e51735b82bf4ec9

8 years agoMerge "build/make/configure.sh: Embed bitcode in arm darwin targets."
Tom Finegan [Fri, 25 Sep 2015 22:14:38 +0000 (22:14 +0000)]
Merge "build/make/configure.sh: Embed bitcode in arm darwin targets."

8 years agoMerge "vp9/10 decoder_remove: check pbi pointer"
James Zern [Fri, 25 Sep 2015 19:31:07 +0000 (19:31 +0000)]
Merge "vp9/10 decoder_remove: check pbi pointer"

8 years agoMerge "VP8: Adjust rate correction factor for drop due to overshoot."
Marco Paniconi [Fri, 25 Sep 2015 18:59:58 +0000 (18:59 +0000)]
Merge "VP8: Adjust rate correction factor for drop due to overshoot."

8 years agoLimit cyclic refresh on steady background blocks.
Marco [Tue, 23 Jun 2015 15:34:06 +0000 (08:34 -0700)]
Limit cyclic refresh on steady background blocks.

Use the existing QP condition on limiting cyclic refresh, and add
addiitonal condition that block has been encoded with zero/small motion
x frames in row (where x is at least several times the refresh period).
Additional condition only affect non-screen content mode.

This helps to improve visual stability for noisy input, where on steady
background areas the application of delta_qp may lead to encoding the noise.

Also added a change to use the true skip (after encoding) to update the
last QP.

Change-Id: I234a1128d017d284cf767fdb58ef6c59d809f679

8 years agoMerge "configure: reference the README for missing yasm"
James Zern [Fri, 25 Sep 2015 03:22:15 +0000 (03:22 +0000)]
Merge "configure: reference the README for missing yasm"

8 years agovp9/10 decoder_remove: check pbi pointer
James Zern [Fri, 25 Sep 2015 02:50:42 +0000 (19:50 -0700)]
vp9/10 decoder_remove: check pbi pointer

fixes crash on error

Change-Id: Ibb1ef5565fb833cdee1a49335473d98f1187ef43

8 years agoMerge "Change size on first frame and change config cause crash."
Jacky Chen [Fri, 25 Sep 2015 01:04:07 +0000 (01:04 +0000)]
Merge "Change size on first frame and change config cause crash."

8 years agoVP8: Adjust rate correction factor for drop due to overshoot.
Marco [Thu, 24 Sep 2015 22:15:29 +0000 (15:15 -0700)]
VP8: Adjust rate correction factor for drop due to overshoot.

Change-Id: Id70ca2e18a46247720eb631ae13a8430bd8b0954

8 years agobuild/make/configure.sh: Embed bitcode in arm darwin targets.
Tom Finegan [Thu, 24 Sep 2015 21:55:51 +0000 (14:55 -0700)]
build/make/configure.sh: Embed bitcode in arm darwin targets.

When the iOS SDK major version is 9 or higher:
- Pass -fembed-bitcode to compiler, assembler, and linker.
- Add a warning for simulator targets since yasm doesn't know
  what -fembed-bitcode means, and exits with an error.

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

Change-Id: I38c997a0225e53c5dd1b4ddf7935d21362953f76

8 years agoMerge "build/make/configure.sh: Silence arm target Xcode7 link warnings."
Tom Finegan [Thu, 24 Sep 2015 18:44:32 +0000 (18:44 +0000)]
Merge "build/make/configure.sh: Silence arm target Xcode7 link warnings."

8 years agoMerge "build/make/configure.sh: Fix armv7 builds in Xcode7."
Tom Finegan [Thu, 24 Sep 2015 18:44:23 +0000 (18:44 +0000)]
Merge "build/make/configure.sh: Fix armv7 builds in Xcode7."

8 years agobuild/make/configure.sh: Silence arm target Xcode7 link warnings.
Tom Finegan [Fri, 18 Sep 2015 23:01:32 +0000 (16:01 -0700)]
build/make/configure.sh: Silence arm target Xcode7 link warnings.

Always add IOS_VERSION_MIN to darwin arm cflags. The warning occured
because the default (9.0) does not match the value set by configure
(6.0).

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

Change-Id: Ia9085ceeca10e057f9eb781c14f07581bb6280a5

8 years agobuild/make/configure.sh: Fix armv7 builds in Xcode7.
Tom Finegan [Fri, 18 Sep 2015 22:58:41 +0000 (15:58 -0700)]
build/make/configure.sh: Fix armv7 builds in Xcode7.

- Use the iphoneos SDK path (instead of macosx).
- Detect iOS SDK major version and disable media (armv6) when using
  iOS SDK version 9 or higher.

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

Change-Id: I12f77dbeee4c0084e8322f6841813da8b5e91c16

8 years agobuild/make/configure.sh: docs for soft_{dis|en}able.
Tom Finegan [Wed, 23 Sep 2015 18:42:37 +0000 (11:42 -0700)]
build/make/configure.sh: docs for soft_{dis|en}able.

Add function comments explaining what the functions do and do not do.

Change-Id: I23dea09f93bc5cdbea6a0077f90683a1df2f74dc

8 years agovp9/10 encoder: prevent NULL access on failure
James Zern [Thu, 24 Sep 2015 00:55:51 +0000 (17:55 -0700)]
vp9/10 encoder: prevent NULL access on failure

Change-Id: I1fc8e0b3d48675cd5428b7b36f7cc28ab32cbf71

8 years agoconfigure: reference the README for missing yasm
James Zern [Thu, 24 Sep 2015 00:51:42 +0000 (17:51 -0700)]
configure: reference the README for missing yasm

Change-Id: I2ad799901385011764affadeaddcc271df21509f

8 years agoRevert "remove static from fdct4/8/16/32"
James Zern [Thu, 24 Sep 2015 00:45:27 +0000 (17:45 -0700)]
Revert "remove static from fdct4/8/16/32"

This reverts commit 8903b9fa8345726efbe9b92a759c98cc21c4c14b.

there is no reason for these to be global

Change-Id: I66a31c06f8426aeca348ef12d9b9ab59d6d5e55d

8 years agoMerge "VP9: Remove frame_parallel_decoding_mode from macroblockd"
James Zern [Thu, 24 Sep 2015 00:33:16 +0000 (00:33 +0000)]
Merge "VP9: Remove frame_parallel_decoding_mode from macroblockd"

8 years agoMerge "Non-rd mode: Limit transform size for intra to 16x16."
Marco Paniconi [Thu, 24 Sep 2015 00:12:02 +0000 (00:12 +0000)]
Merge "Non-rd mode: Limit transform size for intra to 16x16."

8 years agoVP9: Remove frame_parallel_decoding_mode from macroblockd
Scott LaVarnway [Wed, 23 Sep 2015 23:06:46 +0000 (16:06 -0700)]
VP9: Remove frame_parallel_decoding_mode from macroblockd

Not used.

Change-Id: I71527d0ee43a5730f1a2527e7ab687a77a137db4

8 years agoMerge "Adjust rd calculation in choose_tx_size_from_rd"
Hui Su [Wed, 23 Sep 2015 21:39:43 +0000 (21:39 +0000)]
Merge "Adjust rd calculation in choose_tx_size_from_rd"

8 years agoAdjust rate-boost threshold in cyclic refresh for seg#2.
Marco [Wed, 23 Sep 2015 18:47:20 +0000 (11:47 -0700)]
Adjust rate-boost threshold in cyclic refresh for seg#2.

Small gain in metrics (average ~0.2dB), small
reduction in rate fluctuation.

Change-Id: Id75bd89c168486f075308fb474ebd26e3bdfb85b

8 years agoNon-rd mode: Limit transform size for intra to 16x16.
Marco [Tue, 22 Sep 2015 17:42:55 +0000 (10:42 -0700)]
Non-rd mode: Limit transform size for intra to 16x16.

Limit transform size for intra to 16x16, for non-screen content mode.
Little/no change in speed or metrics.
32x32 intra block is rarley selected in RTC (non-screen content) case,
but some visual improvement can be seen in some example,
e.g., captured_video_dark_whd.yuv.

Change-Id: I68e2db87875343b3fb9bb407a7709f0088f84072

8 years agoAdjust rd calculation in choose_tx_size_from_rd
hui su [Tue, 22 Sep 2015 21:08:28 +0000 (14:08 -0700)]
Adjust rd calculation in choose_tx_size_from_rd

Coding gain:
derflr 0.142%
hevclr 0.153%
hevcmr 0.124%

Change-Id: I63b56ae3a9002c3a266e10e2964135ed43b0ba53

8 years agoRestrict get_msb inputs
Johann [Mon, 21 Sep 2015 23:55:28 +0000 (16:55 -0700)]
Restrict get_msb inputs

Add a warning and assert that inputs for get_msb must not be zero.

Change-Id: I8c6f289ff13248f6e3a8bc24aab3712ed33022a6

8 years agoMerge "remove static from fdct4/8/16/32"
Angie Chiang [Mon, 21 Sep 2015 23:25:26 +0000 (23:25 +0000)]
Merge "remove static from fdct4/8/16/32"

8 years agoMerge "Remove vpx_filter_block1d16_v8_intrin_ssse3"
Johann Koenig [Mon, 21 Sep 2015 19:17:18 +0000 (19:17 +0000)]
Merge "Remove vpx_filter_block1d16_v8_intrin_ssse3"

8 years agoremove static from fdct4/8/16/32
Angie Chiang [Sat, 19 Sep 2015 01:46:22 +0000 (18:46 -0700)]
remove static from fdct4/8/16/32

remove static from fdct4/8/16/32 in vp10/encoder/dct.c
add prefix vp10_ to fdct4/8/16/32
add vp10/encoder/dct.h

Change-Id: I644827a191c1a7761850ec0b1da705638b618c66

8 years agoMerge "Non-rd pickmode: Don't skip checking zeromv-last mode."
Marco Paniconi [Mon, 21 Sep 2015 18:26:28 +0000 (18:26 +0000)]
Merge "Non-rd pickmode: Don't skip checking zeromv-last mode."

8 years agoChange size on first frame and change config cause crash.
jackychen [Mon, 21 Sep 2015 16:37:46 +0000 (09:37 -0700)]
Change size on first frame and change config cause crash.

Reallocation of mi buffer fails if change size on the first frame and
change config in subsequent frames. Add a condition for resolution
check to avoid assertion failure.

BUG=1074

Change-Id: Ie26ed816a57fa871ba27a72db9805baaaeaba9f3

8 years agoNon-rd pickmode: Don't skip checking zeromv-last mode.
Marco [Mon, 21 Sep 2015 17:20:14 +0000 (10:20 -0700)]
Non-rd pickmode: Don't skip checking zeromv-last mode.

Reference frame masking logic may skip checking zeromv-last mode.
Fix to avoid this and make sure zero-last is always checked.

No noticeable change in speed, and PSNR/SSIM metrics on RTC set overall
neutral (very small gain ~0.02).
Small visual improvement on few RTC clips.

Change-Id: I26eacdc449126424001a4a64e5ac31949f064417

8 years agoMerge "Create sub8x8 block inter prediction function"
Jingning Han [Mon, 21 Sep 2015 16:13:37 +0000 (16:13 +0000)]
Merge "Create sub8x8 block inter prediction function"

8 years agovp9_end_to_end_test: disable vp10 w/high bitdepth
James Zern [Sat, 19 Sep 2015 16:14:18 +0000 (09:14 -0700)]
vp9_end_to_end_test: disable vp10 w/high bitdepth

the range check in dct.c (abs(input[i]) < (1 << bit)) will fail in many
cases. this was broken at the time this check was added

BUG=1076

Change-Id: I3df8c7a555e95567d73ac16acda997096ab8d6e2

8 years agoCreate sub8x8 block inter prediction function
Jingning Han [Fri, 18 Sep 2015 23:27:52 +0000 (16:27 -0700)]
Create sub8x8 block inter prediction function

Change-Id: Ib161e6fb3eb081f7176a1d969fed16a7d1ffc320

8 years agoMerge "configure: add --extra-cxxflags option"
James Zern [Fri, 18 Sep 2015 23:18:10 +0000 (23:18 +0000)]
Merge "configure: add --extra-cxxflags option"

8 years agoRemove vpx_filter_block1d16_v8_intrin_ssse3
Johann [Fri, 18 Sep 2015 22:59:12 +0000 (15:59 -0700)]
Remove vpx_filter_block1d16_v8_intrin_ssse3

This was rewritten and moved to vpx_dsp/x86/vpx_subpixel_8t_ssse3.asm
in 195883023bb39b5ee5c6811a316ab96d9225034d

Change-Id: I117ce983dae12006e302679ba7f175573dd9e874

8 years agoMerge "iosbuild: Enable PIC for x86 targets."
Tom Finegan [Fri, 18 Sep 2015 19:38:55 +0000 (19:38 +0000)]
Merge "iosbuild: Enable PIC for x86 targets."

8 years agoMerge "iosbuild: Add --test-link argument."
Tom Finegan [Fri, 18 Sep 2015 19:38:45 +0000 (19:38 +0000)]
Merge "iosbuild: Add --test-link argument."

8 years agovp9_arf_freq_test: disable vp10 w/high bitdepth
James Zern [Fri, 18 Sep 2015 02:44:17 +0000 (19:44 -0700)]
vp9_arf_freq_test: disable vp10 w/high bitdepth

the range check in dct.c (abs(input[i]) < (1 << bit)) will fail in the
25-29 range. this was broken at the time this check was added

Change-Id: I8ca9607f6cbdc8be7f47696ffeabbab3ac5727e2

8 years agoMerge "Refactor mbmi_ext structure"
Jingning Han [Fri, 18 Sep 2015 00:49:14 +0000 (00:49 +0000)]
Merge "Refactor mbmi_ext structure"

8 years agoiosbuild: Enable PIC for x86 targets.
Tom Finegan [Thu, 17 Sep 2015 23:22:07 +0000 (16:22 -0700)]
iosbuild: Enable PIC for x86 targets.

Change-Id: I03b1e8f983f8cd87519aefda732210359b319c81

8 years agoiosbuild: Add --test-link argument.
Tom Finegan [Thu, 17 Sep 2015 23:21:22 +0000 (16:21 -0700)]
iosbuild: Add --test-link argument.

Shortcut arg for --extra-configure-args --enable-examples. Enables
the examples, and thus ensures that all versions of libvpx that
iosbuild.sh produces can actually be linked.

Change-Id: I2ddda094361bf0ac77f8d2ae542e4dc7b2cab158

8 years agoMerge "Add SVC codec control to set frame flags and buffer indices."
Marco Paniconi [Thu, 17 Sep 2015 22:29:07 +0000 (22:29 +0000)]
Merge "Add SVC codec control to set frame flags and buffer indices."

8 years agoMerge changes from topic 'tile-thread-cleanup'
James Zern [Thu, 17 Sep 2015 22:00:23 +0000 (22:00 +0000)]
Merge changes from topic 'tile-thread-cleanup'

* changes:
  vp9/decode_tiles_mt: move frame count accum from loop
  VP9Decoder: remove duplicate tile_worker_info
  vp9/decode_tiles_mt: move some inits from inner loop
  vp9_accumulate_frame_counts: pass counts directly

8 years agoMerge "vpx_subpixel_8t_ssse3: fix reg counts/access"
James Zern [Thu, 17 Sep 2015 21:31:14 +0000 (21:31 +0000)]
Merge "vpx_subpixel_8t_ssse3: fix reg counts/access"

8 years agovpx_subpixel_8t_ssse3: fix reg counts/access
James Zern [Thu, 17 Sep 2015 00:33:34 +0000 (17:33 -0700)]
vpx_subpixel_8t_ssse3: fix reg counts/access

fixes build on windows x64; previously 'heightq' i.e., the 64-bit register
was accessed when only the 32-bit value was needed. given this is from a
stack variable the upper bits were undefined.

+ bump register/xmm counts; users of SETUP_LOCAL_VARS touch xmm13 in
64-bit builds and filter_block1d16_v* uses one extra temp variable

Change-Id: I9c768c0b2047481d1d3b11c2e16b2f8de6eb0d80

8 years agoRefactor mbmi_ext structure
Jingning Han [Thu, 17 Sep 2015 16:50:19 +0000 (09:50 -0700)]
Refactor mbmi_ext structure

This commit removes mbmi_ext_base pointer from MACROBLOCK struct.
Its use case can be fully covered by cpi->mbmi_ext_base pointer.

Change-Id: I155351609336cf5b6145ed13c21b105052727f30

8 years agoAdd SVC codec control to set frame flags and buffer indices.
Marco [Wed, 2 Sep 2015 18:34:00 +0000 (11:34 -0700)]
Add SVC codec control to set frame flags and buffer indices.

Add SVC codec control to set the frame flags and buffer indices
for each spatial layer of the current (super)frame to be encoded.
This allows the application to set (and change on the fly) the
reference frame configuration for spatial layers.

Added an example layer pattern (spatial and temporal layers)
in vp9_spatial_svc_encoder for the bypass_mode using new control.

Change-Id: I05f941897cae13fb9275b939d11f93941cb73bee

8 years agovp10: do sub8x8 block reconstruction in full subblocks.
Ronald S. Bultje [Tue, 8 Sep 2015 18:48:33 +0000 (14:48 -0400)]
vp10: do sub8x8 block reconstruction in full subblocks.

This means that we don't reconstruct in 4x4 dimensions, but in
blocksize dimensions, e.g. 4x8 or 8x4. This may in some cases lead
to performance improvements. Also, if we decide to re-introduce
scalable coding support, this would fix the fact that you need to
re-scale the MV halfway the block in sub8x8 non-4x4 blocks.

See issue 1013.

Change-Id: If39c890cad20dff96635720d8c75b910cafac495

8 years agovp10: fix 4:2:2 chroma MVs for 8x4/4x4 blocks.
Ronald S. Bultje [Tue, 8 Sep 2015 13:57:30 +0000 (09:57 -0400)]
vp10: fix 4:2:2 chroma MVs for 8x4/4x4 blocks.

In vp9, the bottom MV would be the average of the topright and
bottomleft luma MV (instead of the bottomleft/bottomright luma MV).

See issue 993.

Change-Id: Ic91c0b195950e7b32fc26c84c04788a09321e391

8 years agovp10: remove double MV value check.
Ronald S. Bultje [Tue, 8 Sep 2015 18:35:24 +0000 (14:35 -0400)]
vp10: remove double MV value check.

This has virtually no effect on coding efficiency, but it is more
logical from a theoretical perspective (since it makes no sense to
me that you would exclude a MV from a list just because it's sign-
inversed value is identical to a value already in a list), and it
also makes the code simpler (it removes a duplicate value check in
cases where signbias is equal between the two MVs being compared).

See issue 662.

Change-Id: I23e607c6de150b9f11d1372fb2868b813c322d37

8 years agovp10: move coding of tx_mode element to the non-arithcoded header.
Ronald S. Bultje [Tue, 8 Sep 2015 18:33:17 +0000 (14:33 -0400)]
vp10: move coding of tx_mode element to the non-arithcoded header.

See issue 1040 point 3.

Change-Id: If051b92c24a34d6a39861fb7d7180c5ca32f3d82

8 years agovp10: code sign bit before absolute value in non-arithcoded header.
Ronald S. Bultje [Tue, 8 Sep 2015 18:26:42 +0000 (14:26 -0400)]
vp10: code sign bit before absolute value in non-arithcoded header.

For reading, this makes the operation branchless, although it still
requires two shifts. For writing, this makes the operation as fast
as writing an unsigned value, branchlessly. This is also how other
codecs typically code signed, non-arithcoded bitstream elements.

See issue 1039.

Change-Id: I6a8182cc88a16842fb431688c38f6b52d7f24ead

8 years agoMerge "vp10: don't reset contextual skip flag if block has no coefficients."
Ronald S. Bultje [Wed, 16 Sep 2015 20:55:14 +0000 (20:55 +0000)]
Merge "vp10: don't reset contextual skip flag if block has no coefficients."

8 years agoMerge "Add support for color-range."
Ronald S. Bultje [Wed, 16 Sep 2015 20:26:10 +0000 (20:26 +0000)]
Merge "Add support for color-range."

8 years agoMerge "VP9 dynamic resizing unit test with bitrate change."
Jacky Chen [Wed, 16 Sep 2015 16:55:14 +0000 (16:55 +0000)]
Merge "VP9 dynamic resizing unit test with bitrate change."

8 years agovp10: don't reset contextual skip flag if block has no coefficients.
Ronald S. Bultje [Tue, 8 Sep 2015 18:24:30 +0000 (14:24 -0400)]
vp10: don't reset contextual skip flag if block has no coefficients.

The implicitly changed value would be used for contextualizing future
skip flags of neighbour blocks (bottom/right), which is certainly not
what was intended. The original code stems from vp8, and was useful
in cases where coding of the skip flag was disabled. In vp9, the skip
flag is always coded. The result of this change is that for bitstream
parsing purposes, decoding of the skip flag becomes independent of
decoding of block coefficients.

See issue 1014.

Change-Id: I8629e6abe76f7c1d649f28cd6fe22a675ce4a15d

8 years agoAdd support for color-range.
Ronald S. Bultje [Wed, 16 Sep 2015 01:56:51 +0000 (21:56 -0400)]
Add support for color-range.

In decoder, export (eventually) into vpx_image_t.range field. In
encoder, use oxcf->color_range to set it (same way as for
color_space).

See issue 1059.

Change-Id: Ieabbb2a785fa58cc4044bd54eee66f328f3906ce

8 years agoMerge "vp10: fix entropy counts for the hp bit."
Ronald S. Bultje [Wed, 16 Sep 2015 01:53:44 +0000 (01:53 +0000)]
Merge "vp10: fix entropy counts for the hp bit."

8 years agoVP9 dynamic resizing unit test with bitrate change.
jackychen [Tue, 15 Sep 2015 22:47:11 +0000 (15:47 -0700)]
VP9 dynamic resizing unit test with bitrate change.

Verify the dynamic resizer behavior for real time, 1 pass CBR mode.
Start at low target bitrate, raise the bitrate in the middle of the
clip, verify that scaling-up does occur after bitrate changed.

Change-Id: I7ad8c9a4c8288387d897dd6bdda592f142d8870c

8 years agoMerge "fix implicit declaration"
Angie Chiang [Wed, 16 Sep 2015 00:20:43 +0000 (00:20 +0000)]
Merge "fix implicit declaration"

8 years agoMerge changes from topic 'fix-vp9-bitstream-test'
James Zern [Tue, 15 Sep 2015 23:14:34 +0000 (23:14 +0000)]
Merge changes from topic 'fix-vp9-bitstream-test'

* changes:
  vp9_encoder_parms_get_to_decoder: cosmetics
  vp9...parms_get_to_decoder: remove unneeded func
  vp9...parms_get_to_decoder: fix EXPECT param order
  vp9_encoder_parms_get_to_decoder: delete dead code
  fix BitstreamParms test
  vp9_encoder_parms_get_to_decoder: remove vp10
  yuvconfig2image(): add explicit cast to avoid conv warning
  vp9/10 decoder_init: add missing alloc cast
  vp9/10: set color_space on preview frame
  vp10: add extern "C" to headers
  vp9: add extern "C" to headers

8 years agoMerge "VP9 dynamic resizing unit test."
Marco Paniconi [Tue, 15 Sep 2015 22:26:03 +0000 (22:26 +0000)]
Merge "VP9 dynamic resizing unit test."

8 years agoMerge "SVC fix to set worst/best_quality per layer."
Marco Paniconi [Tue, 15 Sep 2015 22:06:13 +0000 (22:06 +0000)]
Merge "SVC fix to set worst/best_quality per layer."

8 years agoVP9 dynamic resizing unit test.
jackychen [Tue, 15 Sep 2015 21:17:04 +0000 (14:17 -0700)]
VP9 dynamic resizing unit test.

Verify the dynamic resizer behavior for real time, 1 pass CBR mode.
Run at low bitrate, with resize_allowed = 1, and verify that we get
one resize down event.

Change-Id: Ic347be60972fa87f7d68310da2a055679788929d

8 years agoSVC fix to set worst/best_quality per layer.
Marco [Tue, 15 Sep 2015 16:54:19 +0000 (09:54 -0700)]
SVC fix to set worst/best_quality per layer.

Allow the worst/best_quality to be set per layer via the
VP9E_SET_SVC_PARAMETERS control.

Change-Id: Icba5ec8ac757152f3bb7860d6010d9174a7bd578

8 years agoAdd cyclic refresh parameters to svc-layer context.
Marco [Tue, 8 Sep 2015 15:47:42 +0000 (08:47 -0700)]
Add cyclic refresh parameters to svc-layer context.

For 1 pass CBR spatial-SVC:
Add cyclic refresh parameters to the svc-layer context.

This allows cyclic refresh (aq-mode=3) to be applied to
the whole super-frame (all spatial layers).
This gives a performance improvement for spatial layer encoding.

Addd the aq_mode mode on/off setting as command line option.

Change-Id: Ib9c3b5ba3cb7851bfb8c37d4f911664bef38e165

8 years agoFix two pass svc encoding
Debargha Mukherjee [Tue, 15 Sep 2015 13:11:24 +0000 (06:11 -0700)]
Fix two pass svc encoding

Fixes temporal scalability. Updates were inadvertently turned
off for two pass svc causing crashes due to gf_group.index
growing unchecked.

Change-Id: Iff759946bf61bbde70630347cc8fa4d51a8c2d2f

8 years agoMerge "Remove leftover of "frame_parallel_decoding""
Yaowu Xu [Tue, 15 Sep 2015 02:24:36 +0000 (02:24 +0000)]
Merge "Remove leftover of "frame_parallel_decoding""

8 years agoRemove leftover of "frame_parallel_decoding"
Yaowu Xu [Tue, 15 Sep 2015 01:06:28 +0000 (18:06 -0700)]
Remove leftover of "frame_parallel_decoding"

The variable has been removed by a previous commit, but missed this
instance.

Change-Id: Ia34474b0be4945cc6cb9191f0d7cd24a99a4c22e

8 years agoChange parameters for VP9 dynamic resizing.
jackychen [Mon, 14 Sep 2015 23:15:07 +0000 (16:15 -0700)]
Change parameters for VP9 dynamic resizing.

Use a smaller window in dynamic resizing and wait a shorter
time after key frame.

Change-Id: I086f840cdec3c6bdaa9acfe11346d919e445973d

8 years agoMerge "CR: Don't attempt to read qindex_delta for segments CR is unaware of."
Alex Converse [Mon, 14 Sep 2015 22:59:24 +0000 (22:59 +0000)]
Merge "CR: Don't attempt to read qindex_delta for segments CR is unaware of."

8 years agoCR: Don't attempt to read qindex_delta for segments CR is unaware of.
Alex Converse [Mon, 14 Sep 2015 18:43:38 +0000 (11:43 -0700)]
CR: Don't attempt to read qindex_delta for segments CR is unaware of.

Found by the remoting VideoEncoderVpxTest.Vp9LossyUnchangedFrame unit
test under asan.

Change-Id: Icac63051bf37c7355e661837b57c257d58c764fc

8 years agoMerge "For 1 pass: always use the normative filter in vp9_scale_if_required()"
Marco Paniconi [Mon, 14 Sep 2015 20:36:34 +0000 (20:36 +0000)]
Merge "For 1 pass: always use the normative filter in vp9_scale_if_required()"