]> granicus.if.org Git - libvpx/log
libvpx
6 years agoAdd Memory to Enable Row Decode
Ritu Baldwa [Wed, 10 Oct 2018 10:55:51 +0000 (16:25 +0530)]
Add Memory to Enable Row Decode

Row based multi-thread needs extra memory to store the parsed
co-efficients, partitions and eob. This commit adds memory for the same.

Change-Id: I13fa4a6ada2ec3048bc973e465055b832429388f

6 years agoLoopfilter Multi-Thread Optimization
Supradeep T R [Tue, 12 Jun 2018 08:27:39 +0000 (13:57 +0530)]
Loopfilter Multi-Thread Optimization

Take the original loopfilter multi-thread optimization
(dafe064289a917977439ab6f4f002b9946496084) along with the fixes for bugs
1558 and 1562.

BUG=webm:1558
BUG=webm:1562

Change-Id: Ibbf6bd13f4ffff0e79184ccfd6b85a49e067a6d8

6 years agoMerge changes I66b35ef7,Ic9ed6ed6,Ie5818689
Angie Chiang [Wed, 3 Oct 2018 01:05:21 +0000 (01:05 +0000)]
Merge changes I66b35ef7,Ic9ed6ed6,Ie5818689

* changes:
  Add mv_dist/mv_cost to TplDepStats
  Change interface of motion_compensated_prediction
  Separate lambda from nb_mvs_inconsistency()

6 years agoMerge "Change the frame used to set up encoder in tests to 0."
Chi Yo Tsai [Wed, 3 Oct 2018 00:07:55 +0000 (00:07 +0000)]
Merge "Change the frame used to set up encoder in tests to 0."

6 years agoChange the frame used to set up encoder in tests to 0.
chiyotsai [Tue, 2 Oct 2018 20:51:48 +0000 (13:51 -0700)]
Change the frame used to set up encoder in tests to 0.

Change-Id: Ied460b6ff53a58050d53dec8d32b627de5de3f3a

6 years agoMerge "Minor clean-up in tiny_ssim.c"
Jingning Han [Tue, 2 Oct 2018 21:16:35 +0000 (21:16 +0000)]
Merge "Minor clean-up in tiny_ssim.c"

6 years agoMerge "Force even arf group length where possible."
Jingning Han [Tue, 2 Oct 2018 21:16:19 +0000 (21:16 +0000)]
Merge "Force even arf group length where possible."

6 years agoMerge "Keep metric log only for the displayable frames"
Jingning Han [Tue, 2 Oct 2018 18:24:29 +0000 (18:24 +0000)]
Merge "Keep metric log only for the displayable frames"

6 years agoMerge "Fix vpxenc per frame psnr and ssim print"
Jingning Han [Tue, 2 Oct 2018 18:24:25 +0000 (18:24 +0000)]
Merge "Fix vpxenc per frame psnr and ssim print"

6 years agoMinor clean-up in tiny_ssim.c
Jingning Han [Tue, 2 Oct 2018 17:21:43 +0000 (10:21 -0700)]
Minor clean-up in tiny_ssim.c

Report the correct filename in error message.
Explicitly assign floating point value to double type.

Change-Id: I42fd2da6e16b1e3e7ec221d5d562a728a93c0196

6 years agoForce even arf group length where possible.
Paul Wilkins [Tue, 2 Oct 2018 15:11:14 +0000 (16:11 +0100)]
Force even arf group length where possible.

This patch tweaks the calculation of the active maximum GF interval
and also the break out clause for the GF interval loop. The changes
force the maximum and where possible the  break out value to be odd
which in turn will result in an even length ARF group if ARF coding is
selected (vs GF only coding).

The primary aim was to improve coding with multi layer arf groups.
For the single layer case there are small net gains in 3 out of 4 sets
(low,md, hd) and a small net drop for the NF2K set.

For multi-layer the gains (opsnr, ssim, psnr-hvs : -ve = better) were:-

Low res: -0.109, -0.038, -0.036
Mid res: -0.204, -0.171, -0.242
Hd res: -0.330, -0.471, -0.496
NF 2k: -0.165, -0.149, -0.157

Change-Id: I245f8561f5d1bd34312a0133c670c2154a0da23f

6 years agoKeep metric log only for the displayable frames
Jingning Han [Mon, 1 Oct 2018 22:31:27 +0000 (15:31 -0700)]
Keep metric log only for the displayable frames

The end-to-end reconstruction quality is represented only by the
displayable frames. Drop the coding stats from ARF frames.

Change-Id: Ib8241db448611f4b6477f107930eaa273f960e20

6 years agoFix vpxenc per frame psnr and ssim print
Jingning Han [Mon, 1 Oct 2018 22:26:00 +0000 (15:26 -0700)]
Fix vpxenc per frame psnr and ssim print

Fix compiler error and make the encoder properly log the psnr and
ssim.

Change-Id: I7b35541131acaa60117bb1e458508b82a4b4677e

6 years agoIntroduce the ml_var_partition_pruning feature
Hui Su [Sat, 29 Sep 2018 21:48:56 +0000 (14:48 -0700)]
Introduce the ml_var_partition_pruning feature

Add the ml_var_partition_pruning encoder speed feature that
uses a neural net model to prune partition-none and partition-split
search. The model uses prediction residue variance and quantization
step size as input features.

Encoding speed gain for speed 0(tested over 20 hdres clips):
            QP=30    QP=40
average     17.7%    18.3%
max        24.46%    26.6%

Coding loss:
lowres 0.071%;  midres 0.098%;  hdres 0.163%

Currently it is enabled for speed 0 low-bit depth only. It needs to be
tuned for other settings.

Change-Id: Ifb7417daa6bb6e7c97bb676269ce54ab0dc7b8c8

6 years agoMerge "Remove deprecated get_arf_buffer_indices()"
Jingning Han [Sat, 29 Sep 2018 04:20:31 +0000 (04:20 +0000)]
Merge "Remove deprecated get_arf_buffer_indices()"

6 years agoMerge "Remove deprecated arf_update_index from GF_GROUP"
Jingning Han [Sat, 29 Sep 2018 04:20:27 +0000 (04:20 +0000)]
Merge "Remove deprecated arf_update_index from GF_GROUP"

6 years agoMerge "Add ml_var_partition experiment"
Hui Su [Sat, 29 Sep 2018 02:00:16 +0000 (02:00 +0000)]
Merge "Add ml_var_partition experiment"

6 years agoMerge changes I93308a09,If85c36b4,I918eb36a
Angie Chiang [Fri, 28 Sep 2018 23:09:19 +0000 (23:09 +0000)]
Merge changes I93308a09,If85c36b4,I918eb36a

* changes:
  Add vpx_clear_system_state to new mv search func
  Change mv color to red
  Call vp9_full_pixel_diamond_new in tpl mv search

6 years agoAdd mv_dist/mv_cost to TplDepStats
Angie Chiang [Fri, 28 Sep 2018 22:40:57 +0000 (15:40 -0700)]
Add mv_dist/mv_cost to TplDepStats

Change-Id: I66b35ef76c229d4eb3bf3c913619a0e219c4c2f9

6 years agoChange interface of motion_compensated_prediction
Angie Chiang [Fri, 28 Sep 2018 21:35:21 +0000 (14:35 -0700)]
Change interface of motion_compensated_prediction

Change the interface of vp9_full_pixel_diamond_new

Change-Id: Ic9ed6ed61c5178f3f445f40860ebaac7ea17f75d

6 years agoSeparate lambda from nb_mvs_inconsistency()
Angie Chiang [Fri, 28 Sep 2018 21:23:23 +0000 (14:23 -0700)]
Separate lambda from nb_mvs_inconsistency()

Change-Id: Ie5818689233ae01742ca595e2c8c3f3664bb426c

6 years agoRemove deprecated get_arf_buffer_indices()
Jingning Han [Fri, 28 Sep 2018 18:30:56 +0000 (11:30 -0700)]
Remove deprecated get_arf_buffer_indices()

Change-Id: I6d0c8a1a61d861aa0353cde76a833c7c0b222279

6 years agoRemove deprecated arf_update_index from GF_GROUP
Jingning Han [Fri, 28 Sep 2018 18:28:35 +0000 (11:28 -0700)]
Remove deprecated arf_update_index from GF_GROUP

As we move to unify the GOP structure layout control, the variable
arf_update_idx and arf_ref_idx are deprecated.

Change-Id: Iadcb9e6033d419d4b2015fe747c23be59a7da787

6 years agoMerge "Fix minor bug in calculation of max arf group length."
Jingning Han [Fri, 28 Sep 2018 17:38:26 +0000 (17:38 +0000)]
Merge "Fix minor bug in calculation of max arf group length."

6 years agoMerge "Adjustment of GOP intra factor for multi-layer."
Jingning Han [Fri, 28 Sep 2018 17:38:14 +0000 (17:38 +0000)]
Merge "Adjustment of GOP intra factor for multi-layer."

6 years agoMerge "Add MID_OVERLAY_UPDATE frame type"
Jingning Han [Fri, 28 Sep 2018 17:18:54 +0000 (17:18 +0000)]
Merge "Add MID_OVERLAY_UPDATE frame type"

6 years agoMerge "Refactor gf_overlay frame type update"
Jingning Han [Fri, 28 Sep 2018 17:18:46 +0000 (17:18 +0000)]
Merge "Refactor gf_overlay frame type update"

6 years agoMerge "Revert "Merge "Adapt GOP size threshold to the allowed layer depth"""
Paul Wilkins [Fri, 28 Sep 2018 17:16:01 +0000 (17:16 +0000)]
Merge "Revert "Merge "Adapt GOP size threshold to the allowed layer depth"""

6 years agoFix minor bug in calculation of max arf group length.
Paul Wilkins [Thu, 27 Sep 2018 09:55:05 +0000 (10:55 +0100)]
Fix minor bug in calculation of max arf group length.

Their is no valid last boosted Q availably when estimating the maximum
group length for the first ARF group in a clip, so use a value based on
the current max q.

Change-Id: Ida0b4bfb7ce7433089ad808abed7f59c88527a81

6 years agoAdjustment of GOP intra factor for multi-layer.
Paul Wilkins [Fri, 28 Sep 2018 15:54:03 +0000 (16:54 +0100)]
Adjustment of GOP intra factor for multi-layer.

This provides and alternative (still to be tuned for edge cases)
approach to adjusting the gop intra factor when multi-layer coding
is in effect that does not alter single layer coding.

Change-Id: Iba86d65a6e68e86aa031b7e1f0b6a4c55761b1b8

6 years agoAdd ml_var_partition experiment
Hui Su [Tue, 25 Sep 2018 19:19:53 +0000 (12:19 -0700)]
Add ml_var_partition experiment

Make partition decisions using machine learning models. The goal is to
achieve better coding quality than the variance-based parititioning
without much encoding speed loss.

To enable this experiment, use --enable-ml-var-partition for config.

When eanbled, the variance-based partitioning is replaced by this ML
based partitioing for speed 6 and above in real time mode(except low
resolution or high bit-depth).

Current coding gains(average PSNR):
                speed 6      speed 7      speed 8
rtc              2.04%        2.65%        3.90%
ytlivehr         3.11%        4.53%       11.57%
hdres(rtc mode)  5.10%

Further testing and tuning is needed to see if the speed and quality
tradeoff is reasonable.

Change-Id: I0da5a2fbc22c3261832b32920ee36d9b19d417af

6 years agoMerge "Fix a loophole in nonrd_pick_partition()"
Hui Su [Fri, 28 Sep 2018 16:06:00 +0000 (16:06 +0000)]
Merge "Fix a loophole in nonrd_pick_partition()"

6 years agoRevert "Merge "Adapt GOP size threshold to the allowed layer depth""
Paul Wilkins [Fri, 28 Sep 2018 12:17:31 +0000 (13:17 +0100)]
Revert "Merge "Adapt GOP size threshold to the allowed layer depth""

This reverts commit 5efde3914f1a85061e51bc8d96984216e976e90c, reversing
changes made to 3a291593726a3f0eff5e59983e84de20d0bf294c.

This is badly broken and may help somewhat for multi-layer but is hurting
massively in single layer encodes.

I ran this through this morning and while it often helps in SSIM it is badly down
for global PSNR and PSNR-HVS with some clips down by 35-40%. This is in line
with previous experiments where I have found that a bigger boost helps SSIM
but hurts PSNR and PSNR HVS.

I was also working on changes to the I factor that gave some improvements
in single layer though these were based upon the active Q mostly. I also have
looked at a bug for the first group where int_lbq is not properly defined and
will submit an interim patch for this while I look for a better solution.

In the meantime I think we should revert this.

The (Global PSNR, SSIM, PSNR-HVS) for the patch as is in my runs for
single layer vs a couple of days ago seem to be (-ve is better).

Low res 0.346, -1.475, 0.239
mid res  1.581, -1.300, 1.731 (worst result down by 30-40% in psnr)
hdres 0.665, -0.712, 1.043 (worst result down by 17-19% in psnr)
NF2k 0.927, 0.111, 1.3220 (Worst result down by 5-7% in psnr)

Change-Id: I55952b71b8cfc5a84484b3b659c5f8a530f3a755

6 years agoAdd MID_OVERLAY_UPDATE frame type
Jingning Han [Fri, 28 Sep 2018 04:01:08 +0000 (21:01 -0700)]
Add MID_OVERLAY_UPDATE frame type

Add a MID_OVERLAY_UPDATE abstract to support multi-layer
ARF-Overlay frame based approach. When setting the frame update
type to be USE_BUF_FRAME, the encoder will use show_existing_frame
to process the intermediate ARF frames. When setting the frame
update type to be MID_OVERLAY_UPDATE, the intermediate ARF frames
will go through an overlay frame for display.

Change-Id: Ia0c91452c09d39312ac22d855cdf681b7da851c5

6 years agoMerge "Remove deprecated variables from GF_GROUP structure"
Jingning Han [Fri, 28 Sep 2018 03:52:38 +0000 (03:52 +0000)]
Merge "Remove deprecated variables from GF_GROUP structure"

6 years agoMerge "Remove unused for-loop in multi-layer arf bit allocation"
Jingning Han [Fri, 28 Sep 2018 03:52:27 +0000 (03:52 +0000)]
Merge "Remove unused for-loop in multi-layer arf bit allocation"

6 years agoMerge "Adapt GOP size threshold to the allowed layer depth"
Jingning Han [Fri, 28 Sep 2018 03:52:18 +0000 (03:52 +0000)]
Merge "Adapt GOP size threshold to the allowed layer depth"

6 years agoRefactor gf_overlay frame type update
Jingning Han [Thu, 27 Sep 2018 23:27:43 +0000 (16:27 -0700)]
Refactor gf_overlay frame type update

Factor out common code.

Change-Id: Ia548842557d85ab692fe658acf97d61f008e9588

6 years agoFix a loophole in nonrd_pick_partition()
Hui Su [Thu, 27 Sep 2018 17:12:55 +0000 (10:12 -0700)]
Fix a loophole in nonrd_pick_partition()

In some rare cases, all possible paritions may be skipped during RD
search. The patch makes the encoder do rectangular partition search if
both partition-none and partition-split are not allowed.

Tested on the rtc and ytlivehr testsets with speed 5 and 7, no coding
stats changes were observed.

Change-Id: I8b6d8b62b6d2431be8e73317d113311c98f631d5

6 years agoRemove deprecated variables from GF_GROUP structure
Jingning Han [Thu, 27 Sep 2018 19:00:56 +0000 (12:00 -0700)]
Remove deprecated variables from GF_GROUP structure

Change-Id: I8c02216a369be6a51af9872f3ce05045038fc481

6 years agoRemove unused for-loop in multi-layer arf bit allocation
Jingning Han [Thu, 27 Sep 2018 17:49:44 +0000 (10:49 -0700)]
Remove unused for-loop in multi-layer arf bit allocation

The for-loop is not taking effect any more.

Change-Id: Ief2763990a6d4f487a5eb4972012d86379573d55

6 years agoAdapt GOP size threshold to the allowed layer depth
Jingning Han [Wed, 26 Sep 2018 23:34:16 +0000 (16:34 -0700)]
Adapt GOP size threshold to the allowed layer depth

Increase the total prediction error budget linearly with the
allowed ARF layer depth. This in general improves the compression
performance, but does hit corner cases on a few clips at very
low bit-rate range (corresponding to 26 - 28 dB range). To mitigate
such problem, we temporarily work around this problem by limiting
the first GOP size to be ~8 so as to not drain up the bit resource.

The overall compression performance improvements over the current
multi-layer ARF system in speed 0 are:

           overall PSNR      avg PSNR        SSIM
lowres     -0.47%            -0.13%         -1.51%
midres     -1.30%            -1.16%         -2.80%
hdres      -0.91%            -0.84%         -2.15%

Change-Id: Ia4880ab63e98e15a9db99aea6eabfd3d1da9270d

6 years agoMerge "add cfi sanitizer"
Johann Koenig [Thu, 27 Sep 2018 15:08:12 +0000 (15:08 +0000)]
Merge "add cfi sanitizer"

6 years agoAdd vpx_clear_system_state to new mv search func
Angie Chiang [Thu, 27 Sep 2018 01:06:05 +0000 (18:06 -0700)]
Add vpx_clear_system_state to new mv search func

Change-Id: I93308a0906165b8fa56b59e199c3de29b572f666

6 years agoChange mv color to red
Angie Chiang [Thu, 27 Sep 2018 01:04:40 +0000 (18:04 -0700)]
Change mv color to red

Change-Id: If85c36b44b41e8cf025a5e08d7055ec32a14d26b

6 years agoadd cfi sanitizer
Johann [Wed, 26 Sep 2018 23:52:54 +0000 (16:52 -0700)]
add cfi sanitizer

Change-Id: I4262bb631c248ad188f09a37d774d1759695b0d7

6 years agoCONFIG_WEBM_IO: include webmids.h
Johann [Wed, 26 Sep 2018 23:13:01 +0000 (16:13 -0700)]
CONFIG_WEBM_IO: include webmids.h

This was previously brought in with the examples. When building
with --disable-examples and --enable-codecs-srcs, this file
gets lost.

Change-Id: Id8bd67cb78c4f06647f34e85f425dfc701c640c0

6 years agoCall vp9_full_pixel_diamond_new in tpl mv search
Angie Chiang [Tue, 25 Sep 2018 23:58:17 +0000 (16:58 -0700)]
Call vp9_full_pixel_diamond_new in tpl mv search

The function is called in motion_compensated_prediction when
CONFIG_NON_GREEDY_MV is on.

The parameter lambda is used to adjust the importance of
mv consistency between neighbor blocks.

The lambda value is set to a random value for now, and still needs
to be tuned.

Change-Id: I918eb36a686eaa56b4009058f5f329e90c75870b

6 years agoMerge changes If96a8a1c,Iaf535fde,Icbde9880
Angie Chiang [Wed, 26 Sep 2018 19:06:29 +0000 (19:06 +0000)]
Merge changes If96a8a1c,Iaf535fde,Icbde9880

* changes:
  Add vp9_full_pixel_diamond_new
  Add vp9_refining_search_sad_new
  Add vp9_diamond_search_sad_new

6 years agoMerge "Use layer dependent gfu_boost factor"
Jingning Han [Wed, 26 Sep 2018 04:18:15 +0000 (04:18 +0000)]
Merge "Use layer dependent gfu_boost factor"

6 years agoAdd vp9_full_pixel_diamond_new
Angie Chiang [Tue, 25 Sep 2018 22:26:33 +0000 (15:26 -0700)]
Add vp9_full_pixel_diamond_new

This function will call vp9_diaomond_search_sad_new /
vp9_refining_search_sad_new accordingly.

Change-Id: If96a8a1c9c06b6b4ed3aac6d59bdb03f20c96df9

6 years agoAdd vp9_refining_search_sad_new
Angie Chiang [Tue, 25 Sep 2018 01:00:11 +0000 (18:00 -0700)]
Add vp9_refining_search_sad_new

The new version of refining search function will take into account
neighbor motion vectors' inconsistency while doing mv search

Change-Id: Iaf535fde04805de3dc7dd9a32f1695bf454e2d63

6 years agoAdd vp9_diamond_search_sad_new
Angie Chiang [Tue, 25 Sep 2018 00:37:05 +0000 (17:37 -0700)]
Add vp9_diamond_search_sad_new

This new version of diamond search function will take into account
neighbor motion vectors' inconsistency while doing mv search

Change-Id: Icbde9880305cb8aea7937d6ddcef1597bf9be018

6 years agoUse layer dependent gfu_boost factor
Jingning Han [Mon, 24 Sep 2018 20:53:53 +0000 (13:53 -0700)]
Use layer dependent gfu_boost factor

When multi-layer ARF is enabled, use the corresponding gfu_boost
factor assigned to each ARF to compute the best_quality_index
adjustment. This on average improves the coding performance by
0.2% for lowres and hdres, 0.4% for ntflx2k. It seems this change
will only affect a small group of clips, e.g., pamphlet, bowing,
mobcal_720p, etc., which tend to gain 4-5%, whereas the rest
clips remain largely identical coding statistics.

Change-Id: Ie19636a6cf32214aefd73e21ead2aea647ddbca8

6 years agoMerge "Remove redundant code"
Hui Su [Tue, 25 Sep 2018 16:53:38 +0000 (16:53 +0000)]
Merge "Remove redundant code"

6 years agoMerge "clang-format v6.0.1"
Johann Koenig [Tue, 25 Sep 2018 14:25:52 +0000 (14:25 +0000)]
Merge "clang-format v6.0.1"

6 years agoMerge "vp9,encoder: check pointers before member access"
James Zern [Tue, 25 Sep 2018 03:40:00 +0000 (03:40 +0000)]
Merge "vp9,encoder: check pointers before member access"

6 years agoclang-format v6.0.1
Johann [Tue, 25 Sep 2018 01:31:35 +0000 (18:31 -0700)]
clang-format v6.0.1

Change-Id: I83c7e64fe70f7c49aa2492ed2d640c6756b7ebaa

6 years agoMerge "sanitizer: sse2 - fix unaligned double stores"
Johann Koenig [Mon, 24 Sep 2018 23:11:49 +0000 (23:11 +0000)]
Merge "sanitizer: sse2 - fix unaligned double stores"

6 years agoMerge "segfault: fix missing alignment declaration"
Johann Koenig [Mon, 24 Sep 2018 22:30:46 +0000 (22:30 +0000)]
Merge "segfault: fix missing alignment declaration"

6 years agoMerge "fix integer overflow caused by uninitialized memory"
Johann Koenig [Mon, 24 Sep 2018 22:30:09 +0000 (22:30 +0000)]
Merge "fix integer overflow caused by uninitialized memory"

6 years agosanitizer: sse2 - fix unaligned double stores
Matthias Räncker [Fri, 21 Sep 2018 13:33:18 +0000 (15:33 +0200)]
sanitizer: sse2 - fix unaligned double stores

Signed-off-by: Matthias Räncker <theonetruecamper@gmx.de>
Change-Id: I838c8678e62f7cff13387b84d4f3ea42710a67ea

6 years agoRemove redundant code
Hui Su [Mon, 24 Sep 2018 18:27:54 +0000 (11:27 -0700)]
Remove redundant code

in set_rt_speed_feature_framesize_independent().

use_nonrd_pick_mode is already set for speed >= 5, so need to set again
for speed >= 6.

Change-Id: Idb0a4b36d21e305bd63f19e98a70f615ad76f514

6 years agoMerge "Improve subpel MV search for speed 1"
Hui Su [Mon, 24 Sep 2018 18:15:49 +0000 (18:15 +0000)]
Merge "Improve subpel MV search for speed 1"

6 years agofix integer overflow caused by uninitialized memory
Matthias Räncker [Sun, 23 Sep 2018 11:07:44 +0000 (13:07 +0200)]
fix integer overflow caused by uninitialized memory

Signed-off-by: Matthias Räncker <theonetruecamper@gmx.de>
Change-Id: I55ec2a803eff89b07376459e334d4e949bfcb2cc

6 years agosegfault: fix missing alignment declaration
Matthias Räncker [Sun, 23 Sep 2018 08:34:44 +0000 (10:34 +0200)]
segfault: fix missing alignment declaration

These variables are being fed to sse2 functions, that use aligned
loads.

Signed-off-by: Matthias Räncker <theonetruecamper@gmx.de>
Change-Id: I796c3483c6f3425d63d9262b02b19da59d536600

6 years agoRevert "Revert "Revert "Loopfilter MultiThread Optimization"""
James Zern [Sat, 22 Sep 2018 19:19:16 +0000 (12:19 -0700)]
Revert "Revert "Revert "Loopfilter MultiThread Optimization"""

This reverts commit bf6299010e815e111d7326530c249e9d99611f34.

segfaults, causes an assertion failure with corrupt input:
get_uv_tx_size: Assertion `mi->sb_type < BLOCK_8X8 ||
ss_size_lookup[mi->sb_type][pd->subsampling_x][pd->subsampling_y] !=
BLOCK_INVALID

BUG=webm:1562

Change-Id: I05a711cad3d8e7f1a8e64422b4356bdf4edb3d12

6 years agoMerge "vp8: exit with bad fragment size in decoder."
Jerome Jiang [Sat, 22 Sep 2018 07:15:21 +0000 (07:15 +0000)]
Merge "vp8: exit with bad fragment size in decoder."

6 years agoMerge "Rework is_compound_allowed logic at encoder"
Jingning Han [Sat, 22 Sep 2018 04:00:11 +0000 (04:00 +0000)]
Merge "Rework is_compound_allowed logic at encoder"

6 years agoMerge "internal stats: fix mem leak and initialize memory"
Johann Koenig [Fri, 21 Sep 2018 22:36:53 +0000 (22:36 +0000)]
Merge "internal stats: fix mem leak and initialize memory"

6 years agoMerge "better-hw-compatibility: fix out of bounds access"
Johann Koenig [Fri, 21 Sep 2018 22:30:52 +0000 (22:30 +0000)]
Merge "better-hw-compatibility: fix out of bounds access"

6 years agoMerge "Revert "third_party/googletest: update to v1.8.1""
Johann Koenig [Fri, 21 Sep 2018 22:20:29 +0000 (22:20 +0000)]
Merge "Revert "third_party/googletest: update to v1.8.1""

6 years agoRevert "third_party/googletest: update to v1.8.1"
Johann Koenig [Fri, 21 Sep 2018 22:19:14 +0000 (22:19 +0000)]
Revert "third_party/googletest: update to v1.8.1"

This reverts commit 7d777ce6136d7325a102524b6d80c19bd420e4b6.

Reason for revert: Generates build warnings on VS10/VS12

third_party\googletest\src\include\gtest/gtest-printers.h(1036): error C2770: invalid explicit template argument(s) for 'AddReference<const ::std::tr1::tuple_element<I,std::tr1::tuple<_Arg0,_Arg1>>::type>::type testing::internal::TuplePolicy<TupleT>::get(const std::tr1::tuple<_Arg0,_Arg1> &)' [C:\src\buildbot\test-libvpx\tests\i9vRsze8hQ\.build-x86-win32-vs10\test_libvpx.vcxproj]

Original change's description:
> third_party/googletest: update to v1.8.1
>
> BUG=webm:1559
>
> Change-Id: I7a0b16c7bf3f97db2d8650a190b93aae7e12a948

TBR=tomfinegan@chromium.org

Bug: webm:1559
Change-Id: Ia1a7354084c778a4c4e91b33fef6462e88986d1e

6 years agobetter-hw-compatibility: fix out of bounds access
Matthias Räncker [Thu, 20 Sep 2018 17:57:25 +0000 (19:57 +0200)]
better-hw-compatibility: fix out of bounds access

With --enable-better-hw-compatibility an access to array element -1
can be observed for VP9/ActiveMapTest.Test/0
../vp9/encoder/vp9_rdopt.c:3938:53: runtime error:
  index -1 out of bounds for type 'RefBuffer [3]'

There doesn't seem anything that would prevent ref_frame from being 0.
If there is no reference frame it can probably be assumed that it
isn't scaled.

Signed-off-by: Matthias Räncker <theonetruecamper@gmx.de>
Change-Id: I0a29cd0ffc9a19742e5e72203d5ec5d0a16eac7a

6 years agoMerge "sanitizer: fix unaligned loads"
Johann Koenig [Fri, 21 Sep 2018 18:34:02 +0000 (18:34 +0000)]
Merge "sanitizer: fix unaligned loads"

6 years agovp8: exit with bad fragment size in decoder.
Jerome Jiang [Fri, 21 Sep 2018 18:16:26 +0000 (11:16 -0700)]
vp8: exit with bad fragment size in decoder.

BUG=webm:1555
Change-Id: Ie024c9f5a21f4ed05ab6b93f1677662eeef9e6d8

6 years agoMerge "Use different corner detection score"
Angie Chiang [Fri, 21 Sep 2018 17:32:17 +0000 (17:32 +0000)]
Merge "Use different corner detection score"

6 years agoImprove subpel MV search for speed 1
Hui Su [Tue, 18 Sep 2018 17:33:23 +0000 (10:33 -0700)]
Improve subpel MV search for speed 1

Do one more subpel MV search each round. This improves coding
efficiency slightly:

lowres 0.12%
midres 0.11%
hdres  0.13%

Also renames the control flag for subpel MV search quality.

Encoding speed loss is less than 1%.

This only affects speed 1.

Change-Id: I3aecd25342f2dcacea6c143db494f7db6282cb92

6 years agoRework is_compound_allowed logic at encoder
Jingning Han [Fri, 21 Sep 2018 15:24:24 +0000 (08:24 -0700)]
Rework is_compound_allowed logic at encoder

Allow the encoder to fully utilize the decoder's capability to
handle both 1 fwd + 2 bwd case and 2 fwd + 1 bw case.

Change-Id: I3f984d52552ddb701b80b042d979f8fe09dd3a80

6 years agointernal stats: fix mem leak and initialize memory
Matthias Räncker [Fri, 21 Sep 2018 12:23:44 +0000 (14:23 +0200)]
internal stats: fix mem leak and initialize memory

Without calloc valgrind reports usuage of uninitialized data in
vpx_get_ssim_metrics.

Signed-off-by: Matthias Räncker <theonetruecamper@gmx.de>
Change-Id: I9cd38b8031ea3f22c1436894ddaf9e0ccf5a654e

6 years agoMerge "Generalize encoder comp_var_ref setting"
Jingning Han [Fri, 21 Sep 2018 03:32:44 +0000 (03:32 +0000)]
Merge "Generalize encoder comp_var_ref setting"

6 years agoMerge "Skip checking compound modes with same sign bias for sub8x8"
Jingning Han [Fri, 21 Sep 2018 03:32:08 +0000 (03:32 +0000)]
Merge "Skip checking compound modes with same sign bias for sub8x8"

6 years agoMerge "Update the comp_refs counts"
Jingning Han [Fri, 21 Sep 2018 03:32:01 +0000 (03:32 +0000)]
Merge "Update the comp_refs counts"

6 years agoMerge "Skip RD check for compound modes that have same sign bias"
Jingning Han [Fri, 21 Sep 2018 03:31:57 +0000 (03:31 +0000)]
Merge "Skip RD check for compound modes that have same sign bias"

6 years agoMerge "Sync ref frame writing with decoder"
Jingning Han [Fri, 21 Sep 2018 03:31:50 +0000 (03:31 +0000)]
Merge "Sync ref frame writing with decoder"

6 years agoMerge "Add frame_start/end to gf_group"
Jingning Han [Fri, 21 Sep 2018 03:31:45 +0000 (03:31 +0000)]
Merge "Add frame_start/end to gf_group"

6 years agosanitizer: fix unaligned loads
Matthias Räncker [Fri, 21 Sep 2018 00:16:31 +0000 (02:16 +0200)]
sanitizer: fix unaligned loads

Another instance of unaligned 4-byte loads.

Signed-off-by: Matthias Räncker <theonetruecamper@gmx.de>
Change-Id: I06afc5405bb074384eec7a8c8123e5803e522937

6 years agoUse different corner detection score
Angie Chiang [Thu, 20 Sep 2018 23:42:14 +0000 (16:42 -0700)]
Use different corner detection score

This corner detection score is better at measuring the level of
details in each block.

Change-Id: I16327a7664144ddc463c29babd11d0ca2fbb54a0

6 years agoMerge "third_party/googletest: update to v1.8.1"
Johann Koenig [Thu, 20 Sep 2018 22:08:17 +0000 (22:08 +0000)]
Merge "third_party/googletest: update to v1.8.1"

6 years agoMerge "sanitizer: fix unaligned load/stores"
Johann Koenig [Thu, 20 Sep 2018 21:56:21 +0000 (21:56 +0000)]
Merge "sanitizer: fix unaligned load/stores"

6 years agosanitizer: fix unaligned load/stores
Matthias Räncker [Thu, 20 Sep 2018 18:20:39 +0000 (20:20 +0200)]
sanitizer: fix unaligned load/stores

When built with -fsanitizer=address,undefined a number of tests,
such as ByteAlignmentTest.SwitchByteAlignment or
ByteAlignmentTest.SwitchByteAlignment produce runtime errors about
unaligned 4-byte loads/stores. While normally not really a problem,
this does technically violate the language and it is eays to fix in
a standard conforming way using memcpy which does not produce
inferior code.

Signed-off-by: Matthias Räncker <theonetruecamper@gmx.de>
Change-Id: Ie1e97ab25fe874f864df48b473569f00563181ae

6 years agothird_party/googletest: update to v1.8.1
Johann [Mon, 17 Sep 2018 20:57:30 +0000 (13:57 -0700)]
third_party/googletest: update to v1.8.1

BUG=webm:1559

Change-Id: I7a0b16c7bf3f97db2d8650a190b93aae7e12a948

6 years agoMerge "fix UB when initializing parameterized tests"
Johann Koenig [Thu, 20 Sep 2018 19:52:33 +0000 (19:52 +0000)]
Merge "fix UB  when initializing parameterized tests"

6 years agoMerge changes Ibbe7a1c1,I4333a207
Angie Chiang [Thu, 20 Sep 2018 18:15:48 +0000 (18:15 +0000)]
Merge changes Ibbe7a1c1,I4333a207

* changes:
  Add feature score for each block
  Correct mv rows/cols bug in read_frame_dpl_stats

6 years agoGeneralize encoder comp_var_ref setting
Jingning Han [Thu, 20 Sep 2018 17:03:27 +0000 (10:03 -0700)]
Generalize encoder comp_var_ref setting

Generalize the encoder comp_fixed_ref and comp_var_ref assignments.
Make it fully support 2 fwd + 1 bwd and 1 fwd + 2 bwd settings
that VP9 decoder allows.

Change-Id: Id74da9a66327189a3fdf382d447243003c431131

6 years agoSkip checking compound modes with same sign bias for sub8x8
Jingning Han [Tue, 18 Sep 2018 22:56:03 +0000 (15:56 -0700)]
Skip checking compound modes with same sign bias for sub8x8

Drop the check of compound modes where the two reference frames
share the same reference frame sign bias in sub8x8 coding blocks.

Change-Id: I47b45256582b2b5ea1372c9130d8f28cd226a29c

6 years agoUpdate the comp_refs counts
Jingning Han [Tue, 18 Sep 2018 22:26:26 +0000 (15:26 -0700)]
Update the comp_refs counts

Generalize the comp_refs counts update support the case where one
has 1 fwd and 2 bwd reference frames too.

Change-Id: I979216a95d45efef51026158f94612bef39d3c6d

6 years agofix UB when initializing parameterized tests
Matthias Räncker [Wed, 19 Sep 2018 07:47:27 +0000 (09:47 +0200)]
fix UB  when initializing parameterized tests

When running tests built with
-fsanitize=undefined and--disable-optimizations
the sanitizer will emit errors of the following general form:

runtime error: member call on address 0xxxxxxxxx which does not
point to an object of type 'WithParamInterface'
0xxxxxxxxx: note: object has invalid vptr
 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 ...
              ^~~~~~~~~~~~~~~~~~~~~~~
              invalid vptr

This can be traced to calls to WithParamInterface<T>::GetParam before
the object argument has been initialized. Although GetParam only
accesses static data it is a non-static member function. This causes
that call to have undefined behaviour.
The patch makes GetParam a static member function.

upstream pull request:
https://github.com/google/googletest/pull/1830

The alternative - if the pull request is denied - would be to
modify all parameterized tests to have them derive from
::libvpx_test::CodecTestWith*Params as the first base class.

Signed-off-by: Matthias Räncker <theonetruecamper@gmx.de>
Change-Id: I8e91a4fba5438c9b3e93fa398f789115ab86b521

6 years agoAdd feature score for each block
Angie Chiang [Wed, 19 Sep 2018 23:44:40 +0000 (16:44 -0700)]
Add feature score for each block

The feature score is used to indicate whether a block's mv is reliable
or not.
Now we use Harris Corner Detector method to compute the score.

Change-Id: Ibbe7a1c1f3391d0bf4b03307eaabb5cc3cfb1360

6 years agoCorrect mv rows/cols bug in read_frame_dpl_stats
Angie Chiang [Wed, 19 Sep 2018 22:37:49 +0000 (15:37 -0700)]
Correct mv rows/cols bug in read_frame_dpl_stats

When the frame size is not multiples of mv search bsize,
the fractional part will increment the mv rows/cols by 1

Change-Id: I4333a207406610c540059a9356a82084832ca85b