platform/upstream/libvpx.git
5 years agoMerge "Revert "Add VPX_TUNE_SSIM and VPX_TUNE_PSNR enums""
Sai Deng [Tue, 23 Apr 2019 23:11:54 +0000 (23:11 +0000)]
Merge "Revert "Add VPX_TUNE_SSIM and VPX_TUNE_PSNR enums""

5 years agoRevert "Add VPX_TUNE_SSIM and VPX_TUNE_PSNR enums"
Sai Deng [Tue, 23 Apr 2019 22:59:34 +0000 (22:59 +0000)]
Revert "Add VPX_TUNE_SSIM and VPX_TUNE_PSNR enums"

This reverts commit 1d8d8f562bf382e47071bb38d13b7ded366820af.

Reason for revert: change the api names will break existing code.

Original change's description:
> Add VPX_TUNE_SSIM and VPX_TUNE_PSNR enums
>
> Change-Id: I3df5af2c60b774e6d395062077542c52db868236

TBR=jingning@google.com,builds@webmproject.org,sdeng@google.com

Change-Id: Ic94c19739f595f4544e8b68892ab9d9c1bbccd79
No-Presubmit: true
No-Tree-Checks: true
No-Try: true

5 years agoMerge "Add VPX_TUNE_SSIM and VPX_TUNE_PSNR enums"
Sai Deng [Tue, 23 Apr 2019 21:50:56 +0000 (21:50 +0000)]
Merge "Add VPX_TUNE_SSIM and VPX_TUNE_PSNR enums"

5 years agoMerge changes I6e837e6f,Ibec70e66
Johann Koenig [Tue, 23 Apr 2019 21:40:14 +0000 (21:40 +0000)]
Merge changes I6e837e6f,Ibec70e66

* changes:
  remove WIDE_REFERENCE definition
  remove ARCHITECTURE definition

5 years agoAdd VPX_TUNE_SSIM and VPX_TUNE_PSNR enums
sdeng [Fri, 12 Apr 2019 13:00:20 +0000 (06:00 -0700)]
Add VPX_TUNE_SSIM and VPX_TUNE_PSNR enums

Change-Id: I3df5af2c60b774e6d395062077542c52db868236

5 years agoremove WIDE_REFERENCE definition
Johann [Tue, 23 Apr 2019 17:02:49 +0000 (10:02 -0700)]
remove WIDE_REFERENCE definition

The last usage was removed in 2011:
https://chromium.googlesource.com/webm/libvpx/+/cbf923b12cec2fe7ceea0b94091d64953e56b1fe%5E%21/#F33

Change-Id: I6e837e6f1e55eeea6bbeb3159ce6ddf861bcbd72

5 years agoremove ARCHITECTURE definition
Johann [Tue, 23 Apr 2019 16:47:56 +0000 (09:47 -0700)]
remove ARCHITECTURE definition

In the distant past this was used to distinguish between
armv5/6/7 targets when building the assembly files. The
project has not supported armv5/6 for a long time.

BUG=webm:1623

Change-Id: Ibec70e6624b651df0fa6f882ab6f201dc73e92e2

5 years agoAdd vpx_clear_system_state() in SSIM based rdmult adjustments
sdeng [Mon, 22 Apr 2019 23:10:39 +0000 (16:10 -0700)]
Add vpx_clear_system_state() in SSIM based rdmult adjustments

Change-Id: I2a0cdec3bfce864e975aaa408cfdcb855db8680f

5 years ago[vp9] Fix handling of skip in row_mt=1
Harish Mahendrakar [Fri, 19 Apr 2019 23:37:37 +0000 (16:37 -0700)]
[vp9] Fix handling of skip in row_mt=1

For row_mt=1, when mi->skip is set to 1 after parse based on
eobtotal for that partition, dqcoeff and eob need to be restored
as recon_partition doesn't increment these pointers for skip cases

Change-Id: I79711b0c175937aa6da3bba3b3bc053f91a8ce35

5 years agoMerge "test_vector_test: Add row-mt and lpf-opt tests for vp9 decoder"
Harish Mahendrakar [Mon, 22 Apr 2019 15:54:53 +0000 (15:54 +0000)]
Merge "test_vector_test: Add row-mt and lpf-opt tests for vp9 decoder"

5 years agoMerge "Refine interval for key frame boost calculation"
Jingning Han [Mon, 22 Apr 2019 04:59:22 +0000 (04:59 +0000)]
Merge "Refine interval for key frame boost calculation"

5 years agoMerge "Fix issues with bits allocated and consumed"
Jingning Han [Mon, 22 Apr 2019 04:59:04 +0000 (04:59 +0000)]
Merge "Fix issues with bits allocated and consumed"

5 years agotest_vector_test: Add row-mt and lpf-opt tests for vp9 decoder
Harish Mahendrakar [Thu, 18 Apr 2019 18:14:22 +0000 (11:14 -0700)]
test_vector_test: Add row-mt and lpf-opt tests for vp9 decoder

BUG=webm:1619

Change-Id: I4e835a6375523da04a2c4febb2fb441a5f2d56c5

5 years agoMerge "[CFI] Remove function pointer cast of row_decode_worker_hook"
Harish Mahendrakar [Fri, 19 Apr 2019 23:59:30 +0000 (23:59 +0000)]
Merge "[CFI] Remove function pointer cast of row_decode_worker_hook"

5 years agoMerge "vp9: Use model rd for large blocks in filter search."
Jerome Jiang [Fri, 19 Apr 2019 16:26:31 +0000 (16:26 +0000)]
Merge "vp9: Use model rd for large blocks in filter search."

5 years ago[CFI] Remove function pointer cast of row_decode_worker_hook
Harish Mahendrakar [Thu, 18 Apr 2019 17:45:36 +0000 (10:45 -0700)]
[CFI] Remove function pointer cast of row_decode_worker_hook

This fixes CFI error flagged for this function when row-mt=1

Change-Id: Ic5b427a6b621228280ebe829d00b540b18e2c087

5 years agoMerge "Fix PSNRHVS computation"
James Zern [Fri, 19 Apr 2019 06:10:01 +0000 (06:10 +0000)]
Merge "Fix PSNRHVS computation"

5 years agovp9: Use model rd for large blocks in filter search.
Jerome Jiang [Wed, 17 Apr 2019 20:39:18 +0000 (13:39 -0700)]
vp9: Use model rd for large blocks in filter search.

Neutral on speed and quality.

Change-Id: Ia1d3929124bb57e31bbab516a994734d2fd51891

5 years agoMerge "vp9-rtc: Use correct plane for UV in estimate_intra"
Marco Paniconi [Fri, 19 Apr 2019 00:58:16 +0000 (00:58 +0000)]
Merge "vp9-rtc: Use correct plane for UV in estimate_intra"

5 years agovp9-rtc: Use correct plane for UV in estimate_intra
Marco Paniconi [Thu, 18 Apr 2019 22:40:19 +0000 (15:40 -0700)]
vp9-rtc: Use correct plane for UV in estimate_intra

For nonrd-pickmode: some PSNR increase observed on
screen content/scroll clips.

Change-Id: Idf1bce9dd434e33d7c35dbeb59e02e2e58ea1aaa

5 years agovp9-rtc: Move setting for use_model_rd_large
Marco Paniconi [Thu, 18 Apr 2019 16:47:55 +0000 (09:47 -0700)]
vp9-rtc: Move setting for use_model_rd_large

Move the setting to just before the inter-mode loop,
as for screen content the value may change due
to reset of segment.

No change in behavior except for screen-content.

Change-Id: I256795b581ceda352e57b88eba2e86aa18b0fdc4

5 years agoFix issues with bits allocated and consumed
Deepa K G [Tue, 22 Jan 2019 10:43:03 +0000 (16:13 +0530)]
Fix issues with bits allocated and consumed

For show existing frames, set the variables
this_frame_target and projected_frame_size
correctly.

Change-Id: Id5f06eb4ac195f6b63c0199d9d761eaaaea79bbd

5 years agoRefine interval for key frame boost calculation
Deepa K G [Mon, 21 Jan 2019 06:30:50 +0000 (12:00 +0530)]
Refine interval for key frame boost calculation

In the calculation of boost for key frames, increase number
of frames to be scanned based on the content nature.

Change-Id: Ia4533966a00055d0bec712e073d82d4bd1dc715a

5 years agoMerge "Revert "Refactor tile boundary condition for intra prediction""
James Zern [Wed, 17 Apr 2019 14:52:59 +0000 (14:52 +0000)]
Merge "Revert "Refactor tile boundary condition for intra prediction""

5 years agoMerge "vp9: refactor condtions for model rd for large blocks."
Jerome Jiang [Wed, 17 Apr 2019 01:51:41 +0000 (01:51 +0000)]
Merge "vp9: refactor condtions for model rd for large blocks."

5 years agoMerge "Refine vp9_kmeans()"
Angie Chiang [Wed, 17 Apr 2019 01:49:56 +0000 (01:49 +0000)]
Merge "Refine vp9_kmeans()"

5 years agoRevert "Refactor tile boundary condition for intra prediction"
James Zern [Tue, 16 Apr 2019 21:59:22 +0000 (14:59 -0700)]
Revert "Refactor tile boundary condition for intra prediction"

This reverts commit 14208ab41e114f5779d106ae54a7cc8fd9d43820.

This causes test vectors failures with --row-mt=1.

BUG=webm:1617

Change-Id: Icb14bbbb6f38608a73dde0370ad874c0b1b0af8a

5 years agovp9: refactor condtions for model rd for large blocks.
Jerome Jiang [Tue, 16 Apr 2019 22:37:47 +0000 (15:37 -0700)]
vp9: refactor condtions for model rd for large blocks.

Change-Id: If474273642b68e29abacb7b87cbb6e3c91bb93a4

5 years agoMerge "vp9-rtc: Add speed feature to force SMOOTH filter"
Marco Paniconi [Tue, 16 Apr 2019 21:44:34 +0000 (21:44 +0000)]
Merge "vp9-rtc: Add speed feature to force SMOOTH filter"

5 years agoRefine vp9_kmeans()
Angie Chiang [Tue, 16 Apr 2019 18:31:44 +0000 (11:31 -0700)]
Refine vp9_kmeans()

Reduce the number of group_idx initialization.
Initialize the center to the median of the data group.

Change-Id: Ie16150610480bf54a6b5e2bc048ba1e940bef10f

5 years agovp9-rtc: Add speed feature to force SMOOTH filter
Marco Paniconi [Tue, 16 Apr 2019 17:00:53 +0000 (10:00 -0700)]
vp9-rtc: Add speed feature to force SMOOTH filter

Add speed feature for real-time to always force
SMOOTH filter for subpel motion. Can be useful in some
cases for noisy content or high motion at low bitrate.
Also some speedup in avoiding the checking of two filters.

Keep it off always for now.

Change-Id: I843d79aaddef75f9c6ded60906cc75c279a6e37a

5 years agoFix PSNRHVS computation
Yaowu Xu [Tue, 16 Apr 2019 17:09:21 +0000 (10:09 -0700)]
Fix PSNRHVS computation

Cherry-pick libaom #1362e15990eccab8101305be418528824fb32245 to fix
PSNRHVS calculation.

BUG=webm:1620

Change-Id: Ife7bd8056fcaed06992ad76e8c1ab734c3956ad7

5 years agoMerge "Use uniform sampling as initial centers for k-means"
Jingning Han [Tue, 16 Apr 2019 16:15:52 +0000 (16:15 +0000)]
Merge "Use uniform sampling as initial centers for k-means"

5 years agoFix libvpx__nightly_optimization-levels - Build Failing
sdeng [Tue, 16 Apr 2019 00:55:01 +0000 (17:55 -0700)]
Fix libvpx__nightly_optimization-levels - Build Failing

This CL removes the extra floating math in tune=psnr, I will add
clear_system_state calls in tune=ssim in the next cl.

Change-Id: I7cdd4854b2b8e7e7f872f097c5535f10c80cfe0d

5 years agoMerge "loop_filter_rows_mt: unify worker count calculation"
James Zern [Sun, 14 Apr 2019 00:21:50 +0000 (00:21 +0000)]
Merge "loop_filter_rows_mt: unify worker count calculation"

5 years agoAdd Tune for SSIM for high bitdepth encoding
sdeng [Thu, 11 Apr 2019 21:49:51 +0000 (14:49 -0700)]
Add Tune for SSIM for high bitdepth encoding

midres_bd10 test results:
avg_psnr  ssim     ms_ssim
3.189     -4.083   -5.258

Change-Id: I9faccc02f34692fc304d82241390f92267f5a72c

5 years agoMerge "Add Tune for SSIM"
Sai Deng [Sat, 13 Apr 2019 17:47:46 +0000 (17:47 +0000)]
Merge "Add Tune for SSIM"

5 years agoloop_filter_rows_mt: unify worker count calculation
James Zern [Sun, 7 Apr 2019 00:07:13 +0000 (17:07 -0700)]
loop_filter_rows_mt: unify worker count calculation

fixes a deadlock with an odd number of threads that go from < number of
tiles to >. the previous calculations were out of sync so going from
e.g., 8 tiles to 2 with 3 threads would result in scheduling only 2
workers, but thread_loop_filter_rows() would expect 3.

BUG=webm:1618

Change-Id: I78c967a8c3c927d929e13c949808a5ef443ebacb

5 years agoUse uniform sampling as initial centers for k-means
Jingning Han [Fri, 12 Apr 2019 22:59:51 +0000 (15:59 -0700)]
Use uniform sampling as initial centers for k-means

The Wiener variance output has been sorted prior to the clustering,
which allows to directly use the uniform sampling as the initial
center points. It avoids empty cluster situations when the samples
are heavily distributed at two far ends and leave the middle empty.

Change-Id: I159fbfa6bbb4aafd19411fd005666d144cca30fc

5 years agoAdd Tune for SSIM
sdeng [Fri, 29 Mar 2019 16:18:56 +0000 (09:18 -0700)]
Add Tune for SSIM

Implementation with some tuning of the paper:
C. Yeo, H. L. Tan, and Y. H. Tan, "On rate distortion optimization using
SSIM," Circuits and Systems for Video Technology, IEEE Transactions on,
vol. 23, no. 7, pp. 1170-1181, 2013.

Test results:
           avg_psnr      ssim      ms-ssim
lowres      2.516       -2.622     -2.450
midres      2.312       -3.062     -3.882
hdres       2.292       -4.293     -5.246

The encoding time is about the same as the baseline.

Change-Id: Ida2c380ade79b6c15cf12b88bf090069da8765d8

5 years agoUse qsort to find median value
Jingning Han [Fri, 12 Apr 2019 17:25:19 +0000 (10:25 -0700)]
Use qsort to find median value

The list is short enough to use qsort.

Change-Id: I5bb1f2c43eec508bafaf4d1ad7c8a92441f066ce

5 years agoMerge "update libwebm to libwebm-1.0.0.27-358-gdbf1d10"
James Zern [Fri, 12 Apr 2019 05:58:12 +0000 (05:58 +0000)]
Merge "update libwebm to libwebm-1.0.0.27-358-gdbf1d10"

5 years agoFix static analysis warnings
kyslov [Thu, 11 Apr 2019 23:11:34 +0000 (16:11 -0700)]
Fix static analysis warnings

With switching to clang-7.0.1 we got new warnings. With this change the
warnings are back to 0 for all configurations (excluding warnings in
third_party)

BUG=webm:1616

Change-Id: I25ceb592c425394e8f14d333fb5680144f892213

5 years agoMerge "vp9 svc test: test KSVC and other inter layer pred mode."
Jerome Jiang [Thu, 11 Apr 2019 20:00:55 +0000 (20:00 +0000)]
Merge "vp9 svc test: test KSVC and other inter layer pred mode."

5 years agovp9 svc test: test KSVC and other inter layer pred mode.
Jerome Jiang [Thu, 11 Apr 2019 17:38:08 +0000 (10:38 -0700)]
vp9 svc test: test KSVC and other inter layer pred mode.

Change-Id: I6214eb63737f67bf41753f0705047e0682f3dc70

5 years agoMerge "Use log-based sse in eval_mv_mode"
Angie Chiang [Thu, 11 Apr 2019 17:25:40 +0000 (17:25 +0000)]
Merge "Use log-based sse in eval_mv_mode"

5 years agovp9-rtc: Fix to re-eval zero-mv for denoising
Marco Paniconi [Thu, 11 Apr 2019 04:34:36 +0000 (21:34 -0700)]
vp9-rtc: Fix to re-eval zero-mv for denoising

Change-Id: I3bb0646661efa06c8d1d688c746e41855c99f408

5 years agoMerge changes I9d315e35,Id48f2b65,I4e5ed327
Angie Chiang [Thu, 11 Apr 2019 01:31:41 +0000 (01:31 +0000)]
Merge changes I9d315e35,Id48f2b65,I4e5ed327

* changes:
  Print mv_mode counts
  Adjust the probs in get_mv_mode_cost
  Add build_inter_mode_cost()

5 years agoUse log-based sse in eval_mv_mode
Angie Chiang [Fri, 5 Apr 2019 01:09:40 +0000 (18:09 -0700)]
Use log-based sse in eval_mv_mode

Up to this point, non_greedy_mv's BDRate change
lowres -0.397%
midres -0.776%
 hdres -0.637%

Change-Id: I5eb2f03d067d172350dad6ba9a9f4dffef5143cd

5 years agoMerge "vp9 rtc: change PSNR thresh."
Jerome Jiang [Wed, 10 Apr 2019 21:13:56 +0000 (21:13 +0000)]
Merge "vp9 rtc: change PSNR thresh."

5 years agoMerge "Revert "Disable mismatch check on vp9 svc examples.""
Jerome Jiang [Wed, 10 Apr 2019 21:13:46 +0000 (21:13 +0000)]
Merge "Revert "Disable mismatch check on vp9 svc examples.""

5 years agoupdate libwebm to libwebm-1.0.0.27-358-gdbf1d10
James Zern [Wed, 10 Apr 2019 01:37:44 +0000 (18:37 -0700)]
update libwebm to libwebm-1.0.0.27-358-gdbf1d10

changelog:
https://chromium.googlesource.com/webm/libwebm/+log/libwebm-1.0.0.27-351-g9f23fbc..libwebm-1.0.0.27-358-gdbf1d10

Change-Id: I28a6b3ae02a53fb1f2029eee11e9449afb94c8e3

5 years agoRevert "Disable mismatch check on vp9 svc examples."
Jerome Jiang [Wed, 10 Apr 2019 17:29:23 +0000 (10:29 -0700)]
Revert "Disable mismatch check on vp9 svc examples."

This reverts commit a1857812ea6a727d9bda91b852f7b8a9f506ac3f.

Change-Id: Ib33f49af7631c9a6917539a58c447624df325f7f

5 years agovp9 rtc: change PSNR thresh.
Jerome Jiang [Wed, 10 Apr 2019 17:04:15 +0000 (10:04 -0700)]
vp9 rtc: change PSNR thresh.

Change-Id: I07ccc48c76d9871ae01b56ce432f9a6661fb47b9

5 years agovp9-rtc: Adjust cb_pred_filter_search on speed & resoln
Marco Paniconi [Wed, 10 Apr 2019 16:45:00 +0000 (09:45 -0700)]
vp9-rtc: Adjust cb_pred_filter_search on speed & resoln

Avoid some increase in encode time for higher resoln.

Change-Id: I2b3b745f914f986df18fcde570cdc5bc99806f97

5 years agovp9-rtc: Speed feature for filter_search in nonrd_pickmode.
Marco Paniconi [Mon, 8 Apr 2019 21:29:40 +0000 (14:29 -0700)]
vp9-rtc: Speed feature for filter_search in nonrd_pickmode.

Use chessboard search only for certain speeds/resolns
(speed >= 8) for real-time speed features.

Disable chessboard search for speeds <= 7.
~2.5 gain on rtc set for speed 7.
~1% slowdown.

Change-Id: Ic6898aa475817e128154f691413c73f65306e2a8

5 years agoMerge "vp9-rtc: Fix to rate cost for switchable filter"
Marco Paniconi [Wed, 10 Apr 2019 03:56:04 +0000 (03:56 +0000)]
Merge "vp9-rtc: Fix to rate cost for switchable filter"

5 years agovp9-rtc: Fix to rate cost for switchable filter
Marco Paniconi [Mon, 8 Apr 2019 21:21:41 +0000 (14:21 -0700)]
vp9-rtc: Fix to rate cost for switchable filter

Add consistent switchable rate cost, which should be only
when non-integer motion mode is tested.

Neutal/negligible change in metrics.

Also diable the re-evaluation of ZEROMV mode after denoising
feature, as this rate cost fix exposed an exsting issue
with this feature.

Change-Id: I9e5479281810a392b9a409e238c564b2def8e546

5 years agoPrint mv_mode counts
Angie Chiang [Thu, 4 Apr 2019 21:44:09 +0000 (14:44 -0700)]
Print mv_mode counts

Change-Id: I9d315e359e384dc0295c3471d8179bd828fddc1b

5 years agoAdjust the probs in get_mv_mode_cost
Angie Chiang [Wed, 3 Apr 2019 18:46:09 +0000 (11:46 -0700)]
Adjust the probs in get_mv_mode_cost

midres's performance is improved by 0.08%
hdres's performance is improved by 0.04%

Change-Id: Id48f2b654d8ae1909fcb6d21eda8bfb69087a18a

5 years agoAdd build_inter_mode_cost()
Angie Chiang [Fri, 8 Mar 2019 03:45:51 +0000 (19:45 -0800)]
Add build_inter_mode_cost()

Change-Id: I4e5ed327e39cef1dd8c1a8f55fcbe90a5181814d

5 years agoAdd fast-adapt mechanism for VNR
“Michael [Tue, 9 Apr 2019 21:28:06 +0000 (16:28 -0500)]
Add fast-adapt mechanism for VNR

Change-Id: Ia1d9cde418cc981ee08dc94a2e375d6cb4542250

5 years agovp9-rtc: Fix to active_best for non-SVC
Marco Paniconi [Tue, 9 Apr 2019 16:56:24 +0000 (09:56 -0700)]
vp9-rtc: Fix to active_best for non-SVC

For 1 pass CBR non-SVC encoding, on golden refresh:
condition lower/boosted active_best_quality setting
only if gf_cbr_boost_pct is set.

Reduces overshoot for hard clips.

Neutral change on rtc metrics.

Change-Id: I10f7e27767a3f80d63958a7e137155f7bc20504b

5 years agoMerge "Film Mode: Bias based on sub block energy."
Paul Wilkins [Tue, 9 Apr 2019 13:37:33 +0000 (13:37 +0000)]
Merge "Film Mode: Bias based on sub block energy."

5 years agoMerge "Film mode: Raise threshold for intra modes"
Paul Wilkins [Tue, 9 Apr 2019 13:37:09 +0000 (13:37 +0000)]
Merge "Film mode: Raise threshold for intra modes"

5 years agoFilm Mode: Bias based on sub block energy.
Paul Wilkins [Tue, 2 Apr 2019 15:38:49 +0000 (16:38 +0100)]
Film Mode: Bias based on sub block energy.

Apply a bias for film mode against intra coding
(especially DC_PRED) and compound modes if the sub
blocks of the current block have significantly different
variance in the source.

Change-Id: Iac1fc0510141be5c472a0ec57567bab3d2fc4164

5 years agoMerge "Allow macroblock_plane to have its own rounding buffer"
Jingning Han [Sat, 6 Apr 2019 16:36:32 +0000 (16:36 +0000)]
Merge "Allow macroblock_plane to have its own rounding buffer"

5 years agotiny_ssim: Fix an 'Uninitialized argument value' bug
sdeng [Fri, 5 Apr 2019 16:30:46 +0000 (09:30 -0700)]
tiny_ssim: Fix an 'Uninitialized argument value' bug

found by clang-7.0.1 static analysis.
BUG=webm:1616

Change-Id: I2f7d1376e82e35227ad96d34417014ce5680ad96

5 years agoMerge "tiny_ssim: Fix an 'Uninitialized argument value' bug"
Sai Deng [Sat, 6 Apr 2019 02:54:25 +0000 (02:54 +0000)]
Merge "tiny_ssim: Fix an 'Uninitialized argument value' bug"

5 years agoMerge "vp8cx.h: s/VP8E_(SET_MAX_INTER_BITRATE_PCT)/VP9E_$1/"
James Zern [Sat, 6 Apr 2019 00:32:46 +0000 (00:32 +0000)]
Merge "vp8cx.h: s/VP8E_(SET_MAX_INTER_BITRATE_PCT)/VP9E_$1/"

5 years agoMerge "svc_encodeframe: check strdup return"
James Zern [Sat, 6 Apr 2019 00:32:11 +0000 (00:32 +0000)]
Merge "svc_encodeframe: check strdup return"

5 years agosvc_encodeframe: check strdup return
James Zern [Fri, 5 Apr 2019 22:03:35 +0000 (15:03 -0700)]
svc_encodeframe: check strdup return

BUG=webm:1616

Change-Id: Ic9de589154485ad2de30b0b044991e1f9b852d74

5 years agotiny_ssim: Fix an 'Uninitialized argument value' bug
sdeng [Thu, 4 Apr 2019 21:10:19 +0000 (14:10 -0700)]
tiny_ssim: Fix an 'Uninitialized argument value' bug

found by clang-7.0.1 static analysis.
BUG=webm:1616

Change-Id: I7fb318aa7d4c8dd0a96bb20c6f8706ca1a632696

5 years agovp8_rd_pick_inter_mode: clear static analysis warning
James Zern [Mon, 1 Apr 2019 21:54:44 +0000 (14:54 -0700)]
vp8_rd_pick_inter_mode: clear static analysis warning

uv_intra_rate is undefined by default, it is safe to use if
uv_intra_done is true.

BUG=webm:1616

Change-Id: I02e5f6c9e5cc6ed0b41619b4a59e55ea398bad41

5 years agoAdd a test to test rollover of int64 in encoder interface.
Frank Galligan [Tue, 26 Mar 2019 06:48:04 +0000 (23:48 -0700)]
Add a test to test rollover of int64 in encoder interface.

The current libvpx encoder interface can potentially rollover an int64_t
value used to calculate the current timestamp. If the timebase was set
to microseconds and first timestamp was 0, then the rollover would
occur in about 10.675 days.

BUG=webm:701

Change-Id: I8d5aab46f8dcf250c1d4d43d5f3d27363c19cd54

5 years agoMerge "vp9 svc: point ref to last when not used in KSVC."
Jerome Jiang [Thu, 4 Apr 2019 16:53:23 +0000 (16:53 +0000)]
Merge "vp9 svc: point ref to last when not used in KSVC."

5 years agoBypass skip check in tune for sharpness mode
Jingning Han [Wed, 3 Apr 2019 23:46:07 +0000 (16:46 -0700)]
Bypass skip check in tune for sharpness mode

The sharpness mode is enabled for hvc visual quality. Bypass the
skip block check that could potentially force all zero block in
sharpness mode. This resolves the patchy blockiness issue raised
in the 4K SDR HVC encode.

Change-Id: I0538a1b774b80c6b0899c921e80edecd4a440d5c

5 years agovp8cx.h: s/VP8E_(SET_MAX_INTER_BITRATE_PCT)/VP9E_$1/
James Zern [Thu, 4 Apr 2019 01:09:32 +0000 (18:09 -0700)]
vp8cx.h: s/VP8E_(SET_MAX_INTER_BITRATE_PCT)/VP9E_$1/

this was renamed in:
268f10669 Provide information on codec controls
but the corresponding type checked control call was missed.

Change-Id: I151cb42516b10e551b31273327de4ec1bac3c81b

5 years agovp9 svc: point ref to last when not used in KSVC.
Jerome Jiang [Wed, 3 Apr 2019 19:36:44 +0000 (12:36 -0700)]
vp9 svc: point ref to last when not used in KSVC.

Change-Id: Ia648a2221890dae5357ec8e64a8431fb0f77f2fc

5 years agoMerge "Histogram-based noise estimation algorithm"
Michael Horowitz [Wed, 3 Apr 2019 22:18:55 +0000 (22:18 +0000)]
Merge "Histogram-based noise estimation algorithm"

5 years agoMerge "use 64bit integer for memory offset."
Jerome Jiang [Wed, 3 Apr 2019 21:27:48 +0000 (21:27 +0000)]
Merge "use 64bit integer for memory offset."

5 years agoHistogram-based noise estimation algorithm
Michael Horowitz [Wed, 3 Apr 2019 18:41:37 +0000 (13:41 -0500)]
Histogram-based noise estimation algorithm

Histogram-based noise estimation algorithm leveraged that low-noise sequences
tend to populate lower-valued histogram bins and high-noise sequences tend to
populate higher-valued histogram bins in a predictable/repeatable manner. The
algorithm compensates for histogram flattening and skewing toward zero as the
scene darkens.

Change-Id: Ia5acb611f0cc6d726280bd5ea5f45d42ff0dc2dd

5 years agoMerge "vp9-rtc: Move noise estimation to after scene change detection"
Marco Paniconi [Tue, 2 Apr 2019 18:01:26 +0000 (18:01 +0000)]
Merge "vp9-rtc: Move noise estimation to after scene change detection"

5 years agouse 64bit integer for memory offset.
Jerome Jiang [Tue, 2 Apr 2019 17:06:20 +0000 (10:06 -0700)]
use 64bit integer for memory offset.

Change-Id: I3d27286202e26ceecf4e551732b7d536d224d920

5 years agovp9-rtc: Move noise estimation to after scene change detection
Marco Paniconi [Mon, 1 Apr 2019 21:18:54 +0000 (14:18 -0700)]
vp9-rtc: Move noise estimation to after scene change detection

This allows to use result from scene chage detection to exclude
the current frame from noise estimation analysis if the frame has
scene/ big content change (i.e., high_source_sad flag is set).

The behavior change for noise estimation may be small in practice,
since in the current code, a scene change would have blocks excluded
due to thresh_sum_diff, and the subsequent frames would also be mostly
excluded due to (past) non-zero motion vectors (until the
consec_zeromv > thresh_consec_zeromv is satisfied again).
But its better to completely exclude current frame if its a scene change.

Change-Id: Icd08bab7a8e1b994c7accced89697e0b2d7f50c5

5 years agovp9-rtc: Speed feature changes for speed 9.
Marco Paniconi [Fri, 29 Mar 2019 22:18:14 +0000 (15:18 -0700)]
vp9-rtc: Speed feature changes for speed 9.

Add threshold multipler for variance partitioning
as speed feature, and increase it by 2x for speed >= 9
for resoln >= VGA. Also only allow simple_interpol
filter when avg_low_motion is below threshold.

Better tradeoff of speed/quality comparing to speed 8.

Change-Id: I6bd29ad3cced470b32d04f60771120531112a5d9

5 years agoFilm mode: Raise threshold for intra modes
Paul Wilkins [Tue, 2 Apr 2019 15:31:33 +0000 (16:31 +0100)]
Film mode: Raise threshold for intra modes

Substantially increase the threshold for applying variance
adjustment in  rd_variance_adjustment() for intra modes
only, especially for DC_PRED.

Change-Id: Idb3f0c5aca5ab58c9b79c3e993247719054d79c9

5 years agoMerge changes Ied3992f4,I83ca669b,I8f1c1a29
Paul Wilkins [Tue, 2 Apr 2019 12:00:03 +0000 (12:00 +0000)]
Merge changes Ied3992f4,I83ca669b,I8f1c1a29

* changes:
  Further Adjustments to film mode bias.
  Add GF group noise weighting in rd_variance_adjustment()
  Adjustment to low variance block bias in rd_variance_adjustment()

5 years agoMerge "Change to thresholding in rd_variance_adjustment()"
Paul Wilkins [Tue, 2 Apr 2019 09:39:59 +0000 (09:39 +0000)]
Merge "Change to thresholding in rd_variance_adjustment()"

5 years agoAllow macroblock_plane to have its own rounding buffer
Jingning Han [Mon, 25 Mar 2019 22:35:35 +0000 (15:35 -0700)]
Allow macroblock_plane to have its own rounding buffer

Add 8 bytes buffer to macroblock_plane to support rounding factor.

Change-Id: I3751689e4449c0caea28d3acf6cd17d7f39508ed

5 years agotool/set_analyzer_env: disable implicit-integer-truncation
James Zern [Mon, 1 Apr 2019 19:03:22 +0000 (12:03 -0700)]
tool/set_analyzer_env: disable implicit-integer-truncation

with clang-7 this causes additional warnings in x86 intrinsics and
elsewhere. disabling for now to unblock new changes.

BUG=webm:1615

Change-Id: Ide9cacee5547ed432f980f6804e1414f32639121

5 years agoMerge "Use reconstructed variance in rd_variance_adjustment"
Paul Wilkins [Mon, 1 Apr 2019 11:57:13 +0000 (11:57 +0000)]
Merge "Use reconstructed variance in rd_variance_adjustment"

5 years agoMerge "update .clang-format for version clang-7.0.1 update."
James Zern [Fri, 29 Mar 2019 18:59:40 +0000 (18:59 +0000)]
Merge "update .clang-format for version clang-7.0.1 update."

5 years agoupdate .clang-format for version clang-7.0.1 update.
Hien Ho [Fri, 29 Mar 2019 16:04:41 +0000 (09:04 -0700)]
update .clang-format for version clang-7.0.1 update.

added files that are affected by clang-format version 7.

BUG=b/120815481

Change-Id: I40662ce962e4f4b1fcdf183b700f85cc5c0f9f82

5 years agoMerge "Revert "Wrap macro definition in do-while(0)""
Jerome Jiang [Thu, 28 Mar 2019 18:00:57 +0000 (18:00 +0000)]
Merge "Revert "Wrap macro definition in do-while(0)""

5 years agoRevert "Wrap macro definition in do-while(0)"
Jerome Jiang [Thu, 28 Mar 2019 17:03:27 +0000 (10:03 -0700)]
Revert "Wrap macro definition in do-while(0)"

This reverts commit aa04b6f9a7475e9d9457dfc5bf441faf15efc466.

It caused big regression on webrtc VP8 tests.

Change-Id: I937e769d133abeca62ba063e59a58b5c461f5b5e

5 years agoMerge "Disable mismatch check on vp9 svc examples."
Jerome Jiang [Thu, 28 Mar 2019 16:26:49 +0000 (16:26 +0000)]
Merge "Disable mismatch check on vp9 svc examples."

5 years agoFurther Adjustments to film mode bias.
Paul Wilkins [Fri, 8 Mar 2019 15:36:42 +0000 (15:36 +0000)]
Further Adjustments to film mode bias.

Stronger bias against variance below source than above.

Change-Id: Ied3992f4204e14433c6841d51c192118be954f0a

5 years agoAdd GF group noise weighting in rd_variance_adjustment()
Paul Wilkins [Thu, 28 Mar 2019 13:39:54 +0000 (13:39 +0000)]
Add GF group noise weighting in rd_variance_adjustment()

For film mode add a weighting to the thresholds used
in rd_variance_adjustment() based on noise measured in the
first pass.

Change-Id: I83ca669bb55aa52f1d34f03a2268b79fba890770

5 years agoAdjustment to low variance block bias in rd_variance_adjustment()
Paul Wilkins [Fri, 1 Mar 2019 15:37:58 +0000 (15:37 +0000)]
Adjustment to low variance block bias in rd_variance_adjustment()

Adjust the extra bias applied for very low variance blocks to focus
mainly on DC_PRED.

Change-Id: I8f1c1a29932f319535807046846b604b5b8827c1