platform/upstream/libvpx.git
5 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

5 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

5 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

5 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

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

5 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"

5 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"

5 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

5 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"

5 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"

5 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"

5 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

5 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

5 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"

5 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

5 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

5 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

5 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."

5 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"

5 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"

5 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"

5 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""

5 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

5 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

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

5 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

5 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"

5 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

5 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

5 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

5 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"

5 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"

5 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"

5 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"

5 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"

5 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"

5 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

5 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

5 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"

5 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"

5 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

5 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

5 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"

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 years agoSkip RD check for compound modes that have same sign bias
Jingning Han [Tue, 18 Sep 2018 22:08:53 +0000 (15:08 -0700)]
Skip RD check for compound modes that have same sign bias

The compound mode can only be run between two reference frames
with different sign bias flags. Skip the search over same sign
bias reference frames in the rate-distortion optimization.

Change-Id: I4a57feedea880883cf87200de51862beac108310

5 years agoSync ref frame writing with decoder
Jingning Han [Tue, 18 Sep 2018 19:13:18 +0000 (12:13 -0700)]
Sync ref frame writing with decoder

Enable the encoder to produce compound reference frame writing
that supports both 2 fwd + 1 bwd and 1 fwd + 2 bwd cases.

Change-Id: I63d2141435e2de7d8115d52b974fc41c2e608405

5 years agoAdd frame_start/end to gf_group
Jingning Han [Tue, 18 Sep 2018 15:41:37 +0000 (08:41 -0700)]
Add frame_start/end to gf_group

Keep the start and end frame index for each group of pictures.

Change-Id: I23c0d22e643218cf7486b238c2986101282d3fbe

5 years agoMerge "Fix buffer overrun of postproc_state.limits"
Johann Koenig [Tue, 18 Sep 2018 18:59:59 +0000 (18:59 +0000)]
Merge "Fix buffer overrun of postproc_state.limits"

5 years agoMerge "Fix stack corruption with x86 and --enable-pic"
Johann Koenig [Tue, 18 Sep 2018 18:59:49 +0000 (18:59 +0000)]
Merge "Fix stack corruption with x86 and --enable-pic"

5 years agoMerge "Rename set_arf_sign_bias() to set_ref_sign_bias"
Jingning Han [Tue, 18 Sep 2018 18:45:13 +0000 (18:45 +0000)]
Merge "Rename set_arf_sign_bias() to set_ref_sign_bias"

5 years agoMerge "Re-work set_arf_sign_bias()"
Jingning Han [Tue, 18 Sep 2018 18:45:07 +0000 (18:45 +0000)]
Merge "Re-work set_arf_sign_bias()"

5 years agoMerge "Update frame index per buffer at encoder"
Jingning Han [Tue, 18 Sep 2018 18:44:58 +0000 (18:44 +0000)]
Merge "Update frame index per buffer at encoder"

5 years agoMerge "Remove unnecessary code"
Hui Su [Tue, 18 Sep 2018 18:36:59 +0000 (18:36 +0000)]
Merge "Remove unnecessary code"

5 years agoMerge "Remove the SECOND_LEVEL_CHECKS_BEST macro"
Hui Su [Tue, 18 Sep 2018 18:36:48 +0000 (18:36 +0000)]
Merge "Remove the SECOND_LEVEL_CHECKS_BEST macro"

5 years agoFix stack corruption with x86 and --enable-pic
Matthias Räncker [Mon, 17 Sep 2018 11:57:17 +0000 (13:57 +0200)]
Fix stack corruption with x86 and --enable-pic

x86inc.asm's cglobal macro is frequently used to declare more
arguments than the function actually has. Normally, this is
done to aquire an alias to a register that would correspond to
that positional function argument if it existed. This is safe
when used in this manner.
In the case fixed here, however, the alias is used to temporarily
store adresses obtained through the GOT in memory. Because those
extra arguments don't actually exist, those stores corrupt the
callers stack frame.
SSE2/VpxHBDSubpelVarianceTest.Ref is a test that may fail as a
result.
To simply fix the space allocated to actual arguments that have
been loaded into registers already is reused.
This avoids having to allocate extra space for local variables.

Also removed duplicate code while at it.

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

5 years agoRemove unnecessary code
Hui Su [Tue, 18 Sep 2018 16:53:23 +0000 (09:53 -0700)]
Remove unnecessary code

in vp9_find_best_sub_pixel_tree().

Change-Id: I0677c05b3e402fc17dd1e7e6fae787d305e90f89

5 years agoRemove the SECOND_LEVEL_CHECKS_BEST macro
Hui Su [Tue, 18 Sep 2018 16:41:14 +0000 (09:41 -0700)]
Remove the SECOND_LEVEL_CHECKS_BEST macro

This macro is used only once and makes the code relatively harder to
read and modify.

Change-Id: I8f0344a7050758ed9770ffca211b0237fe7d8b34

5 years agoRename set_arf_sign_bias() to set_ref_sign_bias
Jingning Han [Thu, 13 Sep 2018 19:24:32 +0000 (12:24 -0700)]
Rename set_arf_sign_bias() to set_ref_sign_bias

Properly reflect its functionality that assigns the reference
frame sign bias to all the reference frames.

Change-Id: I7b597feeb06acd4c3a004cd51e4b285357315360

5 years agoRe-work set_arf_sign_bias()
Jingning Han [Mon, 17 Sep 2018 21:49:13 +0000 (14:49 -0700)]
Re-work set_arf_sign_bias()

Make it support automatic checking and assigning the reference
frame sign bias for all the reference frames.

Change-Id: Ie82f8f872e742130a652b6d5bc109039ac46ae3b

5 years agoUpdate frame index per buffer at encoder
Jingning Han [Mon, 17 Sep 2018 21:17:36 +0000 (14:17 -0700)]
Update frame index per buffer at encoder

Update the frame index counting from key frame offset for all
the processed frames at the encoder. This would allow encoder to
automatically decide frame sign bias next.

Change-Id: Ibbdc2a29b7245be27422272e1fb539596eed63d1

5 years agoMerge "Add a frame_index entry to RefCntBuffer"
Jingning Han [Tue, 18 Sep 2018 03:53:16 +0000 (03:53 +0000)]
Merge "Add a frame_index entry to RefCntBuffer"

5 years agoMerge "Assign GOP frame offset to all the coding frames"
Jingning Han [Tue, 18 Sep 2018 03:53:09 +0000 (03:53 +0000)]
Merge "Assign GOP frame offset to all the coding frames"

5 years agoMerge "cosmetics: normalize include guards"
James Zern [Tue, 18 Sep 2018 03:38:15 +0000 (03:38 +0000)]
Merge "cosmetics: normalize include guards"

5 years agovpx_mem: allow VPX_MAX_ALLOCABLE_MEMORY to be overridden
James Zern [Mon, 17 Sep 2018 19:32:58 +0000 (12:32 -0700)]
vpx_mem: allow VPX_MAX_ALLOCABLE_MEMORY to be overridden

this allows the define to be set by the build environment

Change-Id: Ib40111c5d9bae417b031b8b40a7bc135c6734044

5 years agoAdd a frame_index entry to RefCntBuffer
Jingning Han [Mon, 17 Sep 2018 18:46:17 +0000 (11:46 -0700)]
Add a frame_index entry to RefCntBuffer

This entry will only be effectively used at the encoder side.
Adding it to the RefCntBuffer data structure would help make the
associated logic a lot simpler. Its effect on the decoder side
would be explicitly sent through the bit-stream.

Change-Id: I1660dce9e0bb6e28c3315d5e0df6dc4a9298f71f

5 years agoAssign GOP frame offset to all the coding frames
Jingning Han [Mon, 17 Sep 2018 16:30:37 +0000 (09:30 -0700)]
Assign GOP frame offset to all the coding frames

Overload the use of arf_src_offset to account the relative frame
offset for all the coding frames within a GOP.

Change-Id: Ia86dede37c6a93d9f23098c15dbd936acefd75dc

5 years agoRemove multi_arf_last_grp_enabled flag.
Paul Wilkins [Mon, 17 Sep 2018 14:45:57 +0000 (15:45 +0100)]
Remove multi_arf_last_grp_enabled flag.

Delete flag and associated code.

Change-Id: I899d258a4cd7b84de9136ccfa27cf8a50108b130

5 years agoRemove multi_arf_enabled.
Paul Wilkins [Mon, 17 Sep 2018 14:41:13 +0000 (15:41 +0100)]
Remove multi_arf_enabled.

Remove deprecated multi_arf_enabled flag and associated code.

Change-Id: I73f06362a10faa5b3bd91a78eedb201a96434f18

5 years agoRemove multi_arf_allowed variable.
Paul Wilkins [Mon, 17 Sep 2018 14:28:23 +0000 (15:28 +0100)]
Remove multi_arf_allowed variable.

Removes deprecated multi_arf_allowed variable and dependent code.

Change-Id: Ic1cf341f807c38207e728c48a4c4442387db93ff

5 years agocosmetics: normalize include guards
James Zern [Wed, 22 Aug 2018 21:03:54 +0000 (14:03 -0700)]
cosmetics: normalize include guards

use the recommended format [1] of:
<PROJECT>_<PATH>_<FILE>_H_

[1] https://google.github.io/styleguide/cppguide.html#The__define_Guard
"All header files should have #define guards to prevent multiple
inclusion. The format of the symbol name should be
<PROJECT>_<PATH>_<FILE>_H_."

Change-Id: I2e8ab0b32fb23c30fa43cff5fec12d043c0d2037

5 years agovp9,encoder: check pointers before member access
James Zern [Sat, 15 Sep 2018 04:36:26 +0000 (21:36 -0700)]
vp9,encoder: check pointers before member access

verify pointers passed to vp9_cyclic_refresh_free() and
vp9_setup_pc_tree() before attempting to free members of the structs.

based on the change in libaom:
ie41de6b5a AV1FrameSizeTests.LargeValidSizes: avoid segfault.

Change-Id: Ib81759923cb442e19f42e6edb4b61171d8799ba6

5 years agofix a bug of tiny_ssim to handle odd frame sizes
Liu Peng [Fri, 14 Sep 2018 21:25:44 +0000 (16:25 -0500)]
fix a bug of tiny_ssim to handle odd frame sizes

Change-Id: Id8ef0eb211517a8f8ec764ec398d16efb9320540

5 years agofix a bug of tiny_ssim when the bit depth is 8
Liu Peng [Fri, 14 Sep 2018 20:04:16 +0000 (15:04 -0500)]
fix a bug of tiny_ssim when the bit depth is 8

Change-Id: I2563e661c71b474fe04b70cd9b713d478a27ac5f

5 years agoMerge changes Ic6b9330f,Ibe14a023
Angie Chiang [Fri, 14 Sep 2018 00:10:19 +0000 (00:10 +0000)]
Merge changes Ic6b9330f,Ibe14a023

* changes:
  Fix mv_arr assignment
  Dump tpl mvs for mv search block

5 years agoFix mv_arr assignment
Angie Chiang [Thu, 13 Sep 2018 19:14:46 +0000 (12:14 -0700)]
Fix mv_arr assignment

Change-Id: Ic6b9330ffb9b75b3a8441024fbf8ba53c134621b

5 years agoDump tpl mvs for mv search block
Angie Chiang [Thu, 13 Sep 2018 00:44:45 +0000 (17:44 -0700)]
Dump tpl mvs for mv search block

Change-Id: Ibe14a02391b960e030c4a48e61718e43a5a65788

5 years agoMerge "Dump ref frame when DUMP_TPL_STATS is on"
Angie Chiang [Thu, 13 Sep 2018 16:58:43 +0000 (16:58 +0000)]
Merge "Dump ref frame when DUMP_TPL_STATS is on"

5 years agoMerge "Initial step in deprecating previous dual arf code."
Jingning Han [Thu, 13 Sep 2018 16:57:52 +0000 (16:57 +0000)]
Merge "Initial step in deprecating previous dual arf code."

5 years agoMerge "Remove deprecated first_inter_index"
Jingning Han [Thu, 13 Sep 2018 16:19:46 +0000 (16:19 +0000)]
Merge "Remove deprecated first_inter_index"

5 years agoMerge "Remove unused variables from VP9_COMP"
Jingning Han [Thu, 13 Sep 2018 16:19:39 +0000 (16:19 +0000)]
Merge "Remove unused variables from VP9_COMP"

5 years agoInitial step in deprecating previous dual arf code.
Paul Wilkins [Thu, 13 Sep 2018 13:21:46 +0000 (14:21 +0100)]
Initial step in deprecating previous dual arf code.

Always use cpi->multi_layer_arf branch if enable_auto_arf >= 2.

Use enable_auto_arf value to indicate max number of ARF
levels to use in multi-arf case.

Further cleanup to of old code follow in seperate patches.

Change-Id: I25cd1e4a119a2d482a15705f5126389054764f9f

5 years agoRemove deprecated first_inter_index
Jingning Han [Thu, 13 Sep 2018 05:51:19 +0000 (22:51 -0700)]
Remove deprecated first_inter_index

With the refactoring of logics that determines if a frame needs
re-code runs to adapt to the target bit-rate, the variable
first_inter_index is no longer in effect use. Hence remove it.

Change-Id: I045894ad1f8b1e00fa40d5a55d762bad0d31b27d

5 years agoRemove unused variables from VP9_COMP
Jingning Han [Thu, 13 Sep 2018 05:49:07 +0000 (22:49 -0700)]
Remove unused variables from VP9_COMP

Change-Id: I853e0925d29becb9c1f84e5c00d84649fb070a07

5 years agoDump ref frame when DUMP_TPL_STATS is on
Angie Chiang [Tue, 11 Sep 2018 22:51:54 +0000 (15:51 -0700)]
Dump ref frame when DUMP_TPL_STATS is on

Also add a python script to parse the dumped results.

Change-Id: I1abea5a7c04d852ec40ce37d758af21960b6e589

5 years agoMerge "Revert "Revert "Loopfilter MultiThread Optimization"""
Harish Mahendrakar [Wed, 12 Sep 2018 23:15:24 +0000 (23:15 +0000)]
Merge "Revert "Revert "Loopfilter MultiThread Optimization"""

5 years agoMerge changes I7173f2fe,I460b6c4b,I5070657f,I2b3e1e16
Jingning Han [Wed, 12 Sep 2018 21:06:53 +0000 (21:06 +0000)]
Merge changes I7173f2fe,I460b6c4b,I5070657f,I2b3e1e16

* changes:
  Remove some deprecated FRAME_UPDATE_TYPE elements.
  Remove some deprecated constants.
  Remove unused rate control data elements
  Remove extra_arf_allowed.

5 years agoFix buffer overrun of postproc_state.limits
Matthias Räncker [Thu, 6 Sep 2018 16:29:16 +0000 (18:29 +0200)]
Fix buffer overrun of postproc_state.limits

Always allocate cpi->common.postproc_state.limits using unscaled width.

With ./configure --enable-pic --enable-decode-perf-tests
--enable-encode-perf-tests --enable-encode-perf-tests
--enable-vp9-highbitdepth --enable-better-hw-compatibility
--enable-internal-stats --enable-postproc --enable-vp9-postproc
--enable-error-concealment --enable-coefficient-range-checking
--enable-postproc-visualizer --enable-multi-res-encodin
--enable-vp9-temporal-denoising --enable-webm-io --enable-libyuv
segfaults tend to occur in VP9/DatarateOnePassCbrSvcSingleBR.* tests.

This is an analogue to issue
https://bugs.chromium.org/p/webm/issues/detail?id=1374
where a buffer allocated using a scaled width is reused after scaling
back to the original size. Unfortunately, in this case the unscaled
width doesn't appear to be known in the immediated context of the
allocation, so the the signature of vp9_post_proc_frame needs to be
changed to provide that information in order to provide a similar fix
as in #1374.

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

5 years agoRemove some deprecated FRAME_UPDATE_TYPE elements.
Paul Wilkins [Wed, 12 Sep 2018 11:53:10 +0000 (12:53 +0100)]
Remove some deprecated FRAME_UPDATE_TYPE elements.

Removal of some frame types relating to deprecated multi-arf work.

Added a dummy value for the USE_BUF_FRAME frame type in the
declaration of the rd_frame_type_factor[FRAME_UPDATE_TYPES] structure.

Change-Id: I7173f2fe33a53117e1bde6f9621efc1a5951240b

5 years agoMerge "Fix rate control bug with recode all."
Paul Wilkins [Wed, 12 Sep 2018 11:57:02 +0000 (11:57 +0000)]
Merge "Fix rate control bug with recode all."

5 years agoRemove some deprecated constants.
Paul Wilkins [Wed, 12 Sep 2018 11:37:05 +0000 (12:37 +0100)]
Remove some deprecated constants.

Removal of some # defines relating to deprecated multi-arf work.

Change-Id: I460b6c4bee9bf0ef588eddc47329c2b17f60e5ba

5 years agoRemove unused rate control data elements
Paul Wilkins [Wed, 12 Sep 2018 11:27:04 +0000 (12:27 +0100)]
Remove unused rate control data elements

Removal of rate control structure elements related to Zoe's
deprecated multi laryer ARF work.

Change-Id: I5070657f91df7bd3f9137cf74016f737313417c8

5 years agoRemove extra_arf_allowed.
Paul Wilkins [Wed, 12 Sep 2018 11:06:36 +0000 (12:06 +0100)]
Remove extra_arf_allowed.

Removed VP9_COMP element that is no longer used.

Change-Id: I2b3e1e16244074e3510c1467b0e7532213c4ae05

5 years agoMerge "Enable rectangular partition search for speed 1"
Paul Wilkins [Wed, 12 Sep 2018 11:03:50 +0000 (11:03 +0000)]
Merge "Enable rectangular partition search for speed 1"

5 years agoMerge changes I306c582c,Id5389285
Paul Wilkins [Wed, 12 Sep 2018 11:01:38 +0000 (11:01 +0000)]
Merge changes I306c582c,Id5389285

* changes:
  Remove configure_multi_arf_buffer_updates()
  Remove update_multi_arf_ref_frames()