platform/upstream/libvpx.git
5 years agoMerge "Refactor aq mode segment_id assignment"
Jingning Han [Thu, 20 Dec 2018 00:18:20 +0000 (00:18 +0000)]
Merge "Refactor aq mode segment_id assignment"

5 years agoMerge "vpx/*.h: rm some deprecated defines/enum vals/typedefs"
James Zern [Wed, 19 Dec 2018 23:46:51 +0000 (23:46 +0000)]
Merge "vpx/*.h: rm some deprecated defines/enum vals/typedefs"

5 years agoMerge "vpx/vp8cx.h: fix some typos"
James Zern [Wed, 19 Dec 2018 23:45:50 +0000 (23:45 +0000)]
Merge "vpx/vp8cx.h: fix some typos"

5 years agoMerge "vpx_integer.h: drop VS2010 workaround"
James Zern [Wed, 19 Dec 2018 23:45:22 +0000 (23:45 +0000)]
Merge "vpx_integer.h: drop VS2010 workaround"

5 years agovpx_integer.h: drop VS2010 workaround
James Zern [Wed, 19 Dec 2018 21:01:28 +0000 (13:01 -0800)]
vpx_integer.h: drop VS2010 workaround

visual studio 2015 is the current minimum

BUG=webm:1573

Change-Id: I22139925c0a322b1da214c38d8f74fadbc34d2de

5 years agoMerge "Correct condition for skip"
Yaowu Xu [Wed, 19 Dec 2018 20:57:24 +0000 (20:57 +0000)]
Merge "Correct condition for skip"

5 years agovpx/vp8cx.h: fix some typos
James Zern [Wed, 19 Dec 2018 20:27:28 +0000 (12:27 -0800)]
vpx/vp8cx.h: fix some typos

BUG=webm:1573

Change-Id: I46faa216a4a8278a363a8111237342f73e8467eb

5 years agovpx/*.h: rm some deprecated defines/enum vals/typedefs
James Zern [Wed, 19 Dec 2018 20:23:28 +0000 (12:23 -0800)]
vpx/*.h: rm some deprecated defines/enum vals/typedefs

most predate 1.4.0 the DBG enums were deprecated in 1.6.1. VPX_KF_FIXED
is left as it's still fairly widely used

BUG=webm:1573

Change-Id: Iacaad28a6fe7251f042a2b45507b00fc5b7a0eac

5 years agoCorrect condition for skip
Yaowu Xu [Wed, 19 Dec 2018 18:48:37 +0000 (10:48 -0800)]
Correct condition for skip

Do not skip without check when lossless is requested.

Change-Id: Iceda428e7bf5ab19202b1dcb598e389fcaf6978d

5 years agoMerge "Rework set_offsets() for rd search"
Jingning Han [Wed, 19 Dec 2018 18:46:53 +0000 (18:46 +0000)]
Merge "Rework set_offsets() for rd search"

5 years agoMerge "Improve rd_variance_adjustment() for low variance blocks."
Paul Wilkins [Wed, 19 Dec 2018 09:47:27 +0000 (09:47 +0000)]
Merge "Improve rd_variance_adjustment() for low variance blocks."

5 years agoRefactor aq mode segment_id assignment
Jingning Han [Wed, 19 Dec 2018 06:43:34 +0000 (22:43 -0800)]
Refactor aq mode segment_id assignment

Factor out the segment_id assignment for various AQ modes.

Change-Id: I34a86524048621cd369baf4bafbdfac621994563

5 years agoNo need to shift in SSIM calculations
sdeng [Fri, 14 Dec 2018 00:47:10 +0000 (16:47 -0800)]
No need to shift in SSIM calculations

We only need to shift in the encoder when the input bit depth
does not equal to the encoder internal bit depth.

Change-Id: If9af62382ac6824f33dc7dcdd3d3ff7802b92e9a

5 years agoMerge "Disallow the comparison between videos with different bit depth"
Sai Deng [Wed, 19 Dec 2018 00:40:49 +0000 (00:40 +0000)]
Merge "Disallow the comparison between videos with different bit depth"

5 years agoRework set_offsets() for rd search
Jingning Han [Tue, 18 Dec 2018 23:08:28 +0000 (15:08 -0800)]
Rework set_offsets() for rd search

Factor out the segment_id setup from mi array alignment.

Change-Id: I345ad7ea7b6c9edb6f86224e1941f2c954d68ff3

5 years agovp9-svc: Adjust step_param for screen-content
Marco Paniconi [Tue, 18 Dec 2018 18:59:39 +0000 (10:59 -0800)]
vp9-svc: Adjust step_param for screen-content

Use same step_param for all spatial layers for now.
Some improvement in quality on scrolling for spatial
enhancement layer.

Change-Id: Ic9eed8ba5dd44493e9f5e81f6115df2a25825d16

5 years agoMerge "Localize x->encode_breakout setup to non-rd mode search"
Jingning Han [Tue, 18 Dec 2018 17:46:05 +0000 (17:46 +0000)]
Merge "Localize x->encode_breakout setup to non-rd mode search"

5 years agoMerge "Add frame header control to turn on PSNR_AQ mode"
Jingning Han [Tue, 18 Dec 2018 15:49:48 +0000 (15:49 +0000)]
Merge "Add frame header control to turn on PSNR_AQ mode"

5 years agoMerge "Add PSNR_AQ mode"
Jingning Han [Tue, 18 Dec 2018 15:49:36 +0000 (15:49 +0000)]
Merge "Add PSNR_AQ mode"

5 years agoMerge "Relocate tpl buffer allocation"
Jingning Han [Tue, 18 Dec 2018 06:34:49 +0000 (06:34 +0000)]
Merge "Relocate tpl buffer allocation"

5 years agoRelocate tpl buffer allocation
Jingning Han [Tue, 18 Dec 2018 00:09:06 +0000 (16:09 -0800)]
Relocate tpl buffer allocation

Move it to deeper stages where all the encoder configurations have
been set. This avoids the encoding failure when the buffer is
allocated before the encoder is fully configured.

Change-Id: I6723966fd2c7c36fbab9a92d1f3bd59c83ed95f0

5 years agovp9-svc: Fix condition in real-time speed setting
Marco Paniconi [Tue, 18 Dec 2018 02:39:22 +0000 (18:39 -0800)]
vp9-svc: Fix condition in real-time speed setting

Remove the "spatial_layer_id == 0" condition in
the speed features for setting the motion search
for screen content.

Change-Id: Ib47aea3af5f3b2e04226694b4126b2ae2f458f13

5 years agoLocalize x->encode_breakout setup to non-rd mode search
Jingning Han [Tue, 18 Dec 2018 00:49:09 +0000 (16:49 -0800)]
Localize x->encode_breakout setup to non-rd mode search

The breakout speed feature is currently only used by the non-rd
mode search path. Localize it to simplify set_offset() logic.

Change-Id: I27e7519c987a7caac2e4bd6be0ede1b9c8320e55

5 years agoAdd frame header control to turn on PSNR_AQ mode
Jingning Han [Mon, 17 Dec 2018 22:24:35 +0000 (14:24 -0800)]
Add frame header control to turn on PSNR_AQ mode

Change-Id: I46f695b15153c8c508f525a5673db24326371977

5 years agoAdd PSNR_AQ mode
Jingning Han [Mon, 17 Dec 2018 18:30:17 +0000 (10:30 -0800)]
Add PSNR_AQ mode

Placeholder to support adaptive quantizer for PSNR and SSIM coding
quality improvement.

Change-Id: Id967c9914bb1d72a6f480ef1ba9d6650914dd658

5 years agoDisallow the comparison between videos with different bit depth
sdeng [Fri, 14 Dec 2018 00:47:10 +0000 (16:47 -0800)]
Disallow the comparison between videos with different bit depth

Change-Id: I1fd8e991f2440925e989d8e7ab33fdf5f6b1d36b

5 years agovp9-svc: Adjust search step param for spatial layers
Marco Paniconi [Mon, 17 Dec 2018 23:12:04 +0000 (15:12 -0800)]
vp9-svc: Adjust search step param for spatial layers

For non-base spatial layer in screen-content mode:
use nstep but with larger step_param value than sl0,
to avoid increase in encode_time.
Some improvement on scrolling slides content.

Change-Id: Ica918ac01664431d1fabb3c674d857cf6ad87414

5 years agoMerge "vp9-svc: Define rc scene change flag per superframe"
Marco Paniconi [Mon, 17 Dec 2018 23:09:22 +0000 (23:09 +0000)]
Merge "vp9-svc: Define rc scene change flag per superframe"

5 years agoMerge "doxygen: fix --disable-examples"
Johann Koenig [Mon, 17 Dec 2018 23:07:38 +0000 (23:07 +0000)]
Merge "doxygen: fix --disable-examples"

5 years agoMerge "Remove -Wextra suppression."
Jerome Jiang [Mon, 17 Dec 2018 23:03:04 +0000 (23:03 +0000)]
Merge "Remove -Wextra suppression."

5 years agovp9-svc: Define rc scene change flag per superframe
Marco Paniconi [Mon, 17 Dec 2018 21:23:01 +0000 (13:23 -0800)]
vp9-svc: Define rc scene change flag per superframe

Define the rc->high_num_blocks_with_motion, set in the
scene change analysis, to be defined per superframe.
This is used for increasing motion search area on
some (super)frames, e.g., for scrolling.

Also some code cleanup in rt_speed_feature_.

No change in behavior.

Change-Id: I1a5c04b9cd4aef1723ce42f82e981a2ca15c8b9d

5 years agoRemove -Wextra suppression.
Jerome Jiang [Fri, 14 Dec 2018 00:00:18 +0000 (16:00 -0800)]
Remove -Wextra suppression.

BUG=webm:1246

Change-Id: Iae78e266faa9c4989500fc919b24f2f584ac0550

5 years agoMerge "Add build_motion_field()"
Angie Chiang [Mon, 17 Dec 2018 19:19:21 +0000 (19:19 +0000)]
Merge "Add build_motion_field()"

5 years agoMerge "vp8: Fix potential use-after-free in mfqe."
Jerome Jiang [Sat, 15 Dec 2018 01:00:46 +0000 (01:00 +0000)]
Merge "vp8: Fix potential use-after-free in mfqe."

5 years agoMerge "Remove unused code in tiny_ssim"
Sai Deng [Sat, 15 Dec 2018 00:50:20 +0000 (00:50 +0000)]
Merge "Remove unused code in tiny_ssim"

5 years agovp8: Fix potential use-after-free in mfqe.
Jerome Jiang [Fri, 14 Dec 2018 22:39:58 +0000 (14:39 -0800)]
vp8: Fix potential use-after-free in mfqe.

Similar issue to 842265.

The pointer in vp8 postproc refers to show_frame_mi which is only
updated on show frame. However, when there is a no-show frame which also
changes the size (thus new frame buffers allocated), show_frame_mi is
not updated with new frame buffer memory.

Change the pointer in postproc to mi which is always updated.

BUG=913246

Change-Id: I5159ba7134a06db472c29a1d84b8d39bb60c7254

5 years agoRemove unused code in tiny_ssim
sdeng [Fri, 14 Dec 2018 00:44:12 +0000 (16:44 -0800)]
Remove unused code in tiny_ssim

Change-Id: Ife6eb3f8651daa209eeeb8eff85158f00d418647

5 years agovp8-mfqe: Increase initial frame# threshold
Marco Paniconi [Fri, 14 Dec 2018 03:33:11 +0000 (19:33 -0800)]
vp8-mfqe: Increase initial frame# threshold

Increase the initial frame number threshold
for the mfqe, as using the running average of
last_base_qindex doesn't work well after very
first frame.

Only affects the very first few frames.
Fixes an issue with a test.

Change-Id: Ia249924257b44263e0b9f43cbff473902f08e28c

5 years agovp9-svc: On scene change: only reset TL in flexible mode.
Marco Paniconi [Thu, 13 Dec 2018 23:40:09 +0000 (15:40 -0800)]
vp9-svc: On scene change: only reset TL in flexible mode.

On scene/slide change detected on TL > 0 frame, only
reset the temporal layer pattern for flexible/bypass mode.

Change-Id: Ib848778addc10ef6981b92839af397833fd4a908

5 years agodoxygen: fix --disable-examples
Johann [Thu, 13 Dec 2018 21:04:09 +0000 (13:04 -0800)]
doxygen: fix --disable-examples

Only include the sample code link when they are built.

BUG=webm:1565

Change-Id: If13126b59953b51a76c964da4a8c58eb367f2dd7

5 years agoMerge "Make the use of tpl model controlled by the encoder params"
Jingning Han [Thu, 13 Dec 2018 18:13:42 +0000 (18:13 +0000)]
Merge "Make the use of tpl model controlled by the encoder params"

5 years agoMake the use of tpl model controlled by the encoder params
Jingning Han [Thu, 13 Dec 2018 17:21:28 +0000 (09:21 -0800)]
Make the use of tpl model controlled by the encoder params

The control has been exposed to the vpxenc input parameter. Remove
the internal hard coded control that disables it at speed 1 and
above settings.

Change-Id: Ib17772cb895f24da5a7d0487e748cc1a9c6740b3

5 years agoMerge "update libwebm to libwebm-1.0.0.27-352-g6ab9fcf"
James Zern [Thu, 13 Dec 2018 00:03:03 +0000 (00:03 +0000)]
Merge "update libwebm to libwebm-1.0.0.27-352-g6ab9fcf"

5 years agoupdate libwebm to libwebm-1.0.0.27-352-g6ab9fcf
James Zern [Wed, 12 Dec 2018 02:06:20 +0000 (18:06 -0800)]
update libwebm to libwebm-1.0.0.27-352-g6ab9fcf

https://chromium.googlesource.com/webm/libwebm/+log/af81f26..6ab9fcf

Change-Id: I9d56e1fbaba9b96404b4fbabefddc1a85b79c25d

5 years agoMerge "Replace mv_arr by pyramid_mv_arr"
Angie Chiang [Wed, 12 Dec 2018 22:43:44 +0000 (22:43 +0000)]
Merge "Replace mv_arr by pyramid_mv_arr"

5 years agoAdd build_motion_field()
Angie Chiang [Wed, 12 Dec 2018 20:37:49 +0000 (12:37 -0800)]
Add build_motion_field()

Move the related code into the function.
This is to facilitate of building pyramid motion field.

Change-Id: I879db2271e227af63c5eac76b0c70c985b86a2da

5 years agoReplace mv_arr by pyramid_mv_arr
Angie Chiang [Wed, 12 Dec 2018 00:06:38 +0000 (16:06 -0800)]
Replace mv_arr by pyramid_mv_arr

We plan to compute mv field in different scale.

Change-Id: I49a92d948f8b5dbab78e38c61f5f4f879bbe269f

5 years agoMerge changes I44da4884,I36e3bcae
Angie Chiang [Wed, 12 Dec 2018 19:25:53 +0000 (19:25 +0000)]
Merge changes I44da4884,I36e3bcae

* changes:
  Change interface of motion_compensated_prediction
  Move prepare_nb_full_mvs to vp9_mcomp.c

5 years agovp8: Fix to enabling MFQE
Marco Paniconi [Wed, 12 Dec 2018 05:57:57 +0000 (21:57 -0800)]
vp8: Fix to enabling MFQE

Remove the unused *_DEBUG_* enum values in vpx/vp8.h

This fixes issue with enabling MFQE, which was
caused in 4807f15, where the unused DEBUG flags
were removed from common/ppflags.h but not in vp8.h.

BUG=913246

Change-Id: I47f114ef20adc084cb4883add5ac3ebf58ae9f1d

5 years agoMerge "Rescale arf bit budget calculation"
Deepa K G [Wed, 12 Dec 2018 04:47:56 +0000 (04:47 +0000)]
Merge "Rescale arf bit budget calculation"

5 years agoMerge "Use undamped adjustment for rate correction factors"
Deepa K G [Wed, 12 Dec 2018 04:47:30 +0000 (04:47 +0000)]
Merge "Use undamped adjustment for rate correction factors"

5 years agoMerge "test/svc_end_to_end_test: fix SetConfig() signature"
James Zern [Wed, 12 Dec 2018 01:59:42 +0000 (01:59 +0000)]
Merge "test/svc_end_to_end_test: fix SetConfig() signature"

5 years agoChange interface of motion_compensated_prediction
Angie Chiang [Wed, 12 Dec 2018 00:19:50 +0000 (16:19 -0800)]
Change interface of motion_compensated_prediction

Change-Id: I44da4884eea26f0feb7b17f4100db7e5bddd14b4

5 years agoMove prepare_nb_full_mvs to vp9_mcomp.c
Angie Chiang [Mon, 10 Dec 2018 22:22:53 +0000 (14:22 -0800)]
Move prepare_nb_full_mvs to vp9_mcomp.c

Change-Id: I36e3bcae60751a9caeac03a3c94cb752b73a010b

5 years agoMerge "Refactor svc_*_test.cc"
Jerome Jiang [Tue, 11 Dec 2018 18:39:41 +0000 (18:39 +0000)]
Merge "Refactor svc_*_test.cc"

5 years agoMerge "Fix intra_count_low calculation in first pass"
Paul Wilkins [Tue, 11 Dec 2018 13:33:56 +0000 (13:33 +0000)]
Merge "Fix intra_count_low calculation in first pass"

5 years agoUse undamped adjustment for rate correction factors
Deepa K G [Tue, 11 Dec 2018 12:08:06 +0000 (17:38 +0530)]
Use undamped adjustment for rate correction factors

Undamped adjustment is used for the first frame
of each frame type while updating the rate
correction factors.

Change-Id: I42f80daa123c4cd4e45c18c6960cc7a67e7df7e6

5 years agotest/svc_end_to_end_test: fix SetConfig() signature
James Zern [Tue, 11 Dec 2018 07:01:01 +0000 (23:01 -0800)]
test/svc_end_to_end_test: fix SetConfig() signature

make the parameter constant to match the base class and mark the
function virtual. virtual is used to match the rest of the code base,
but now that c++11 is required all such functions could be changed to
override.

since:
bb3a82ec3 vp9 svc: add test for scaling partition on 1080p crash.

Change-Id: I4717f0116a231ea954b34da9cfec69c462c21699

5 years agoMerge "Clean up condition logics in rc_pick_q_and_bounds_two_pass()"
Jingning Han [Tue, 11 Dec 2018 06:42:18 +0000 (06:42 +0000)]
Merge "Clean up condition logics in rc_pick_q_and_bounds_two_pass()"

5 years agoClean up condition logics in rc_pick_q_and_bounds_two_pass()
Jingning Han [Mon, 10 Dec 2018 22:02:51 +0000 (14:02 -0800)]
Clean up condition logics in rc_pick_q_and_bounds_two_pass()

Factor out common conditions for better readability.

Change-Id: I2a2b576e7d3e5cf036e9e355fc7ce0509ecb3d7e

5 years agoMerge "Remove redundant code about motion vector test"
Hui Su [Tue, 11 Dec 2018 00:14:32 +0000 (00:14 +0000)]
Merge "Remove redundant code about motion vector test"

5 years agoRefactor svc_*_test.cc
Jerome Jiang [Mon, 10 Dec 2018 20:53:20 +0000 (12:53 -0800)]
Refactor svc_*_test.cc

Put test classes into svc_test namespace.
Make num_nonref_frames_ and mismatched_nframes private, as they're
computed by encoder/decoder hooks which shouldn't be modified outside
the class.
Add accessor to num_nonref_frames_.

Change-Id: I3836a45426796ba6a8c98dd31e21b5aec4b8abf4

5 years agoMerge "test/svc_*_test: fix SetConfig() signature"
James Zern [Mon, 10 Dec 2018 19:49:14 +0000 (19:49 +0000)]
Merge "test/svc_*_test: fix SetConfig() signature"

5 years agoRemove redundant code about motion vector test
Hui Su [Thu, 6 Dec 2018 23:03:12 +0000 (15:03 -0800)]
Remove redundant code about motion vector test

Only need to set find_fractional_mv_step once.

Change-Id: Ib59dd1e3bb8bc973f2e0f3fc436738bfaf2fad81

5 years agoMerge "Add enum definition for subpel search precision"
Hui Su [Mon, 10 Dec 2018 18:17:57 +0000 (18:17 +0000)]
Merge "Add enum definition for subpel search precision"

5 years agoMerge "apply -Wextra to third_party/"
Johann Koenig [Mon, 10 Dec 2018 16:47:03 +0000 (16:47 +0000)]
Merge "apply -Wextra to third_party/"

5 years agoMerge "vp9 screen: Update motion search offset when set to NSTEP."
Jerome Jiang [Mon, 10 Dec 2018 01:44:43 +0000 (01:44 +0000)]
Merge "vp9 screen: Update motion search offset when set to NSTEP."

5 years agoMerge "vp9 svc: add test for scaling partition on 1080p crash."
Jerome Jiang [Mon, 10 Dec 2018 01:44:20 +0000 (01:44 +0000)]
Merge "vp9 svc: add test for scaling partition on 1080p crash."

5 years agotest/svc_*_test: fix SetConfig() signature
James Zern [Sat, 8 Dec 2018 08:43:31 +0000 (00:43 -0800)]
test/svc_*_test: fix SetConfig() signature

make the parameter constant to match the base class and mark the
function virtual. virtual is used to match the rest of the code base,
but now that c++11 is required all such functions could be changed to
override.

Change-Id: I551a05bbd9d05a9eddb653f42eaad68880c88141

5 years agoMerge "Add satd avx2 implementation"
Sai Deng [Sat, 8 Dec 2018 18:43:55 +0000 (18:43 +0000)]
Merge "Add satd avx2 implementation"

5 years agovp9 svc: add test for scaling partition on 1080p crash.
Jerome Jiang [Fri, 7 Dec 2018 02:24:13 +0000 (18:24 -0800)]
vp9 svc: add test for scaling partition on 1080p crash.

BUG=webm:1578
Change-Id: Ie03ed454394933fa89f751edc6928651393f3f12

5 years agovp9 screen: Update motion search offset when set to NSTEP.
Jerome Jiang [Wed, 5 Dec 2018 02:37:02 +0000 (18:37 -0800)]
vp9 screen: Update motion search offset when set to NSTEP.

Search method and step parameter might be changed in speed settings.
In this case, we should update the search area offset due to the change
of search method.

Change-Id: I51dc584bbf35e998757da326355dd4b8a4d0093f

5 years agoMerge "test/*: use std::*tuple"
James Zern [Sat, 8 Dec 2018 04:10:38 +0000 (04:10 +0000)]
Merge "test/*: use std::*tuple"

5 years agotest/*: use std::*tuple
James Zern [Fri, 7 Dec 2018 07:58:37 +0000 (23:58 -0800)]
test/*: use std::*tuple

since:
77fa51003 Replace deprecated scoped_ptr with unique_ptr

c++11 has been required so <tuple> is safe to use

Change-Id: I873cb953104b361a8503b5839a3372ce2b99e73c

5 years agoAdd enum definition for subpel search precision
Hui Su [Fri, 7 Dec 2018 00:53:26 +0000 (16:53 -0800)]
Add enum definition for subpel search precision

To improve readability.

Change-Id: Idc08b2068c7d8ba9dadc0d559a3b4d61c2a88c94

5 years agoMerge "Optimize RDMult"
Yaowu Xu [Fri, 7 Dec 2018 22:53:43 +0000 (22:53 +0000)]
Merge "Optimize RDMult"

5 years agoMerge changes Id10f72b3,Icde1b01e,I391aa322
Angie Chiang [Fri, 7 Dec 2018 22:27:11 +0000 (22:27 +0000)]
Merge changes Id10f72b3,Icde1b01e,I391aa322

* changes:
  Implement find_prev_nb_full_mvs
  Implement get_full_mv()
  Pass mv_num into vp9_nb_mvs_inconsistency()

5 years agoapply -Wextra to third_party/
Johann [Fri, 7 Dec 2018 17:28:02 +0000 (09:28 -0800)]
apply -Wextra to third_party/

googletest builds cleanly with -Wextra

Remove comments about webm:1069. The vp8 issue is tracked in webm:1246.

Change-Id: I8bbb01d34503cc9c342f5c3aa78e9476f72b94c2

5 years agoAdd high bit Hadamard 32x32 avx2 implementation
sdeng [Wed, 7 Nov 2018 00:20:41 +0000 (16:20 -0800)]
Add high bit Hadamard 32x32 avx2 implementation

Speed test:
[ RUN      ] C/HadamardHighbdTest.DISABLED_Speed/2
Hadamard32x32[          10 runs]: 9 us
Hadamard32x32[       10000 runs]: 8914 us
Hadamard32x32[    10000000 runs]: 8991776 us

[ RUN      ] AVX2/HadamardHighbdTest.DISABLED_Speed/2
Hadamard32x32[          10 runs]: 5 us
Hadamard32x32[       10000 runs]: 4582 us
Hadamard32x32[    10000000 runs]: 4548203 us

Change-Id: Ied1b38b510bd033299f05869216d394e3b7f70f1

5 years agoMerge "Add high bit Hadamard 16x16 avx2 implementation"
Sai Deng [Fri, 7 Dec 2018 17:00:03 +0000 (17:00 +0000)]
Merge "Add high bit Hadamard 16x16 avx2 implementation"

5 years agoAdd satd avx2 implementation
sdeng [Tue, 30 Oct 2018 21:08:07 +0000 (14:08 -0700)]
Add satd avx2 implementation

Speed Test:
C/SatdHighbdTest
blocksize:   16 time:  138 us
blocksize:   64 time:  315 us
blocksize:  256 time: 1120 us
blocksize: 1024 time: 3955 us

AVX2/SatdHighbdTest
blocksize:   16 time:   89 us
blocksize:   64 time:  189 us
blocksize:  256 time:  590 us
blocksize: 1024 time: 1912 us

Change-Id: I6357174462fccd589a475b13d8114b853cab5383

5 years agoMerge "vp9 decoder: cleanup on exit if no available frame buffer."
Jerome Jiang [Fri, 7 Dec 2018 02:51:24 +0000 (02:51 +0000)]
Merge "vp9 decoder: cleanup on exit if no available frame buffer."

5 years agovp9 decoder: cleanup on exit if no available frame buffer.
Jerome Jiang [Wed, 31 Oct 2018 20:45:17 +0000 (13:45 -0700)]
vp9 decoder: cleanup on exit if no available frame buffer.

There was no setjmp on vpx_internal_error when there is no available
frame buffer, ready_for_new_data is not reset to 1.

BUG=webm:1571

Change-Id: I4f8efffb7d6fed3085b1f0229d0d1071a056b6c6

5 years agoImplement find_prev_nb_full_mvs
Angie Chiang [Thu, 6 Dec 2018 01:58:58 +0000 (17:58 -0800)]
Implement find_prev_nb_full_mvs

In single_motion_search, we use prev coded nb full mvs to compute
mv inconsistency.

lambda is set to block_area / 4.

This is a draft. Will to experiments to figure out the impact on
coding efficiency and visual quality.

Change-Id: Id10f72b3c7e6085bfbe1a6156b9fd6917843d001

5 years agoImplement get_full_mv()
Angie Chiang [Thu, 6 Dec 2018 02:17:31 +0000 (18:17 -0800)]
Implement get_full_mv()

Change-Id: Icde1b01ea7f64e2c43dcd039cc37fd306e43030f

5 years agoPass mv_num into vp9_nb_mvs_inconsistency()
Angie Chiang [Wed, 5 Dec 2018 23:19:00 +0000 (15:19 -0800)]
Pass mv_num into vp9_nb_mvs_inconsistency()

This allow av1_nb_mvs_inconsistency to cope with variant number of
motion vectors.

Change-Id: I391aa322d458cfefaf640e7b07d5ad5ce2d3375c

5 years agoMerge "configure: test -std=c++11 before enabling unit tests"
James Zern [Thu, 6 Dec 2018 22:34:14 +0000 (22:34 +0000)]
Merge "configure: test -std=c++11 before enabling unit tests"

5 years agoImprove rd_variance_adjustment() for low variance blocks.
Paul Wilkins [Thu, 6 Dec 2018 13:34:41 +0000 (13:34 +0000)]
Improve rd_variance_adjustment() for low variance blocks.

Change the cross over point for switching between per pixel
and per block variance numbers when comparing reconstruction
and source complexity.

This improves the accuracy of the comparison for low variance
regions, For example, recon and source may both have an integer per
pixel variance of 1, but one of these may actually be be 1.01 and the
other 1.99.

The reason for using per pixel at all was because this number is already
available for the source block so does not need to be recomputed
here. Changing the threshold from >0 to >100 for using per pixel values
will thus cause a little extra work for some blocks.

With my default runs on derf and nf sets their is a net gain as follows:
(-ve = better, Overal PSNR, SSIm, PSNR-HVS)

derf low res  -0.106, -0.107, -0.093
midres -0.000, -0.021, 0.001
hd res -0.198, -0.190, -0.282
nf2k -0.090, -0.088, -0.077

Change-Id: I53ef514fe1c35ee3f08c64e9b22fc05fc7fe5887

5 years agoMerge "Fix DoS in Error Streams"
Harish Mahendrakar [Thu, 6 Dec 2018 05:53:43 +0000 (05:53 +0000)]
Merge "Fix DoS in Error Streams"

5 years agoOptimize RDMult
Yaowu Xu [Thu, 29 Nov 2018 17:44:16 +0000 (09:44 -0800)]
Optimize RDMult

This commit introduces the optimized RDMult values for both key
and non-key frames. For key frames, the commit gets values back
from commit#b13f6154df9c0834d74f7e3d41e41c4208f56d18. For impact
on key frame only encodings, see commit message for that commit.

For inter frames, the values get optimzied by running encoding tests
in Q mode with the following range using 150 frames:
2 6 10 14 18 22 26 30 34 38 42 46 50 54 58 62

The impact of current set of RDMULT values:
           PSNR     SSIM     PSNR-HVS
lowres:  -0.325%   0.422%    -0.228%
midres:  -0.377%   0.158%    -0.376%
hdres:   -0.309%   0.522%    -0.322%

Test baseline is on commit#35617458

Overall, the values help PSNR based metrics, but hurt SSIM metric
slightly.

Change-Id: I7eba37a6524cb36b8498a1d104d2667781bc2089

5 years agoAdd high bit Hadamard 16x16 avx2 implementation
sdeng [Wed, 7 Nov 2018 00:20:41 +0000 (16:20 -0800)]
Add high bit Hadamard 16x16 avx2 implementation

Speed test:
[ RUN      ] C/HadamardHighbdTest.DISABLED_Speed/1
Hadamard16x16[          10 runs]: 2 us
Hadamard16x16[       10000 runs]: 1836 us
Hadamard16x16[    10000000 runs]: 1829451 us

[ RUN      ] AVX2/HadamardHighbdTest.DISABLED_Speed/1
Hadamard16x16[          10 runs]: 1 us
Hadamard16x16[       10000 runs]: 1009 us
Hadamard16x16[    10000000 runs]: 984856 us

Change-Id: I89b9cdbe19350815576d66e627df87e5025ed0a4

5 years agoMerge "remove old visual studio support"
Johann Koenig [Wed, 5 Dec 2018 23:40:57 +0000 (23:40 +0000)]
Merge "remove old visual studio support"

5 years agoMerge "Refactor datarate svc test."
Jerome Jiang [Wed, 5 Dec 2018 18:48:15 +0000 (18:48 +0000)]
Merge "Refactor datarate svc test."

5 years agoMerge "quantize neon: fix hbd builds"
Johann Koenig [Wed, 5 Dec 2018 18:20:29 +0000 (18:20 +0000)]
Merge "quantize neon: fix hbd builds"

5 years agoremove old visual studio support
Johann [Tue, 4 Dec 2018 23:52:08 +0000 (15:52 -0800)]
remove old visual studio support

Change-Id: I86682ef1aac1991e1ef6965e7aa298f6619bee13

5 years agoMerge "Fix overflow in calculating highbd SSIM"
Sai Deng [Wed, 5 Dec 2018 17:55:58 +0000 (17:55 +0000)]
Merge "Fix overflow in calculating highbd SSIM"

5 years agoMerge "Add Parse and Recon Split functions"
Harish Mahendrakar [Wed, 5 Dec 2018 17:31:00 +0000 (17:31 +0000)]
Merge "Add Parse and Recon Split functions"

5 years agoRescale arf bit budget calculation
Deepa K G [Wed, 5 Dec 2018 11:22:49 +0000 (16:52 +0530)]
Rescale arf bit budget calculation

To compute the total budget for a depth layer, exclude the count of
frames in the current layer.

Change-Id: I9ffd1f63ea597de3ea95e0832b13f5b1f35cb086

5 years agoRefactor datarate svc test.
Jerome Jiang [Wed, 5 Dec 2018 00:16:43 +0000 (16:16 -0800)]
Refactor datarate svc test.

Bring some repeated test set up into a function.

Change-Id: I6acc545a349dc16581a23baf848c91ec36a2e83f

5 years agoFix overflow in calculating highbd SSIM
sdeng [Wed, 5 Dec 2018 00:35:34 +0000 (16:35 -0800)]
Fix overflow in calculating highbd SSIM

Example internal stats
Before the fix:
Bitrate AVGPsnr GLBPsnr AVPsnrP GLPsnrP VPXSSIM VPSSIMP FASTSIM PSNRHVS WstPsnr WstSsim WstFast WstHVS AVPsnrY APsnrCb APsnrCr   Block WstBlck Consist WstCons     Time RcErr AbsErr
 153.39  37.131  36.420  37.151  36.437 716.077 817.445  10.422  34.347  32.980   0.916   9.281  30.208  36.024  41.830  40.581   0.000   0.000 100.000 100.000    55006    2.26    2.26
No mismatch detected in recon buffers

After the fix:
Bitrate AVGPsnr GLBPsnr AVPsnrP GLPsnrP VPXSSIM VPSSIMP FASTSIM PSNRHVS WstPsnr WstSsim WstFast WstHVS AVPsnrY APsnrCb APsnrCr   Block WstBlck Consist WstCons     Time RcErr AbsErr
 153.39  37.131  36.420  37.151  36.437  69.808  70.023  10.422  34.347  32.980   0.910   9.281  30.208  36.024  41.830  40.581   0.000   0.000 100.000 100.000    55067    2.26    2.26
No mismatch detected in recon buffers

Change-Id: I820abc498c1543548f193874046582b50afd0238