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
Jingning Han [Fri, 28 Sep 2018 17:38:26 +0000 (17:38 +0000)]
Merge "Fix minor bug in calculation of max arf group length."
Jingning Han [Fri, 28 Sep 2018 17:38:14 +0000 (17:38 +0000)]
Merge "Adjustment of GOP intra factor for multi-layer."
Jingning Han [Fri, 28 Sep 2018 17:18:54 +0000 (17:18 +0000)]
Merge "Add MID_OVERLAY_UPDATE frame type"
Jingning Han [Fri, 28 Sep 2018 17:18:46 +0000 (17:18 +0000)]
Merge "Refactor gf_overlay frame type update"
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"""
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
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
Hui Su [Fri, 28 Sep 2018 16:06:00 +0000 (16:06 +0000)]
Merge "Fix a loophole in nonrd_pick_partition()"
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
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
Jingning Han [Fri, 28 Sep 2018 03:52:38 +0000 (03:52 +0000)]
Merge "Remove deprecated variables from GF_GROUP structure"
Jingning Han [Fri, 28 Sep 2018 03:52:27 +0000 (03:52 +0000)]
Merge "Remove unused for-loop in multi-layer arf bit allocation"
Jingning Han [Fri, 28 Sep 2018 03:52:18 +0000 (03:52 +0000)]
Merge "Adapt GOP size threshold to the allowed layer depth"
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
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
Jingning Han [Thu, 27 Sep 2018 19:00:56 +0000 (12:00 -0700)]
Remove deprecated variables from GF_GROUP structure
Change-Id: I8c02216a369be6a51af9872f3ce05045038fc481
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
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
Johann Koenig [Thu, 27 Sep 2018 15:08:12 +0000 (15:08 +0000)]
Merge "add cfi sanitizer"
Johann [Wed, 26 Sep 2018 23:52:54 +0000 (16:52 -0700)]
add cfi sanitizer
Change-Id: I4262bb631c248ad188f09a37d774d1759695b0d7
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
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
Jingning Han [Wed, 26 Sep 2018 04:18:15 +0000 (04:18 +0000)]
Merge "Use layer dependent gfu_boost factor"
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
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
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
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
Hui Su [Tue, 25 Sep 2018 16:53:38 +0000 (16:53 +0000)]
Merge "Remove redundant code"
Johann Koenig [Tue, 25 Sep 2018 14:25:52 +0000 (14:25 +0000)]
Merge "clang-format v6.0.1"
James Zern [Tue, 25 Sep 2018 03:40:00 +0000 (03:40 +0000)]
Merge "vp9,encoder: check pointers before member access"
Johann [Tue, 25 Sep 2018 01:31:35 +0000 (18:31 -0700)]
clang-format v6.0.1
Change-Id: I83c7e64fe70f7c49aa2492ed2d640c6756b7ebaa
Johann Koenig [Mon, 24 Sep 2018 23:11:49 +0000 (23:11 +0000)]
Merge "sanitizer: sse2 - fix unaligned double stores"
Johann Koenig [Mon, 24 Sep 2018 22:30:46 +0000 (22:30 +0000)]
Merge "segfault: fix missing alignment declaration"
Johann Koenig [Mon, 24 Sep 2018 22:30:09 +0000 (22:30 +0000)]
Merge "fix integer overflow caused by uninitialized memory"
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
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
Hui Su [Mon, 24 Sep 2018 18:15:49 +0000 (18:15 +0000)]
Merge "Improve subpel MV search for speed 1"
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
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
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
Jerome Jiang [Sat, 22 Sep 2018 07:15:21 +0000 (07:15 +0000)]
Merge "vp8: exit with bad fragment size in decoder."
Jingning Han [Sat, 22 Sep 2018 04:00:11 +0000 (04:00 +0000)]
Merge "Rework is_compound_allowed logic at encoder"
Johann Koenig [Fri, 21 Sep 2018 22:36:53 +0000 (22:36 +0000)]
Merge "internal stats: fix mem leak and initialize memory"
Johann Koenig [Fri, 21 Sep 2018 22:30:52 +0000 (22:30 +0000)]
Merge "better-hw-compatibility: fix out of bounds access"
Johann Koenig [Fri, 21 Sep 2018 22:20:29 +0000 (22:20 +0000)]
Merge "Revert "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
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
Johann Koenig [Fri, 21 Sep 2018 18:34:02 +0000 (18:34 +0000)]
Merge "sanitizer: fix unaligned loads"
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
Angie Chiang [Fri, 21 Sep 2018 17:32:17 +0000 (17:32 +0000)]
Merge "Use different corner detection score"
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
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
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
Jingning Han [Fri, 21 Sep 2018 03:32:44 +0000 (03:32 +0000)]
Merge "Generalize encoder comp_var_ref setting"
Jingning Han [Fri, 21 Sep 2018 03:32:08 +0000 (03:32 +0000)]
Merge "Skip checking compound modes with same sign bias for sub8x8"
Jingning Han [Fri, 21 Sep 2018 03:32:01 +0000 (03:32 +0000)]
Merge "Update the comp_refs counts"
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"
Jingning Han [Fri, 21 Sep 2018 03:31:50 +0000 (03:31 +0000)]
Merge "Sync ref frame writing with decoder"
Jingning Han [Fri, 21 Sep 2018 03:31:45 +0000 (03:31 +0000)]
Merge "Add frame_start/end to gf_group"
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
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
Johann Koenig [Thu, 20 Sep 2018 22:08:17 +0000 (22:08 +0000)]
Merge "third_party/googletest: update to v1.8.1"
Johann Koenig [Thu, 20 Sep 2018 21:56:21 +0000 (21:56 +0000)]
Merge "sanitizer: 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
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
Johann Koenig [Thu, 20 Sep 2018 19:52:33 +0000 (19:52 +0000)]
Merge "fix UB when initializing parameterized tests"
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
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
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
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
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
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
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
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
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
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
Johann Koenig [Tue, 18 Sep 2018 18:59:59 +0000 (18:59 +0000)]
Merge "Fix buffer overrun of postproc_state.limits"
Johann Koenig [Tue, 18 Sep 2018 18:59:49 +0000 (18:59 +0000)]
Merge "Fix stack corruption with x86 and --enable-pic"
Jingning Han [Tue, 18 Sep 2018 18:45:13 +0000 (18:45 +0000)]
Merge "Rename set_arf_sign_bias() to set_ref_sign_bias"
Jingning Han [Tue, 18 Sep 2018 18:45:07 +0000 (18:45 +0000)]
Merge "Re-work set_arf_sign_bias()"
Jingning Han [Tue, 18 Sep 2018 18:44:58 +0000 (18:44 +0000)]
Merge "Update frame index per buffer at encoder"
Hui Su [Tue, 18 Sep 2018 18:36:59 +0000 (18:36 +0000)]
Merge "Remove unnecessary code"
Hui Su [Tue, 18 Sep 2018 18:36:48 +0000 (18:36 +0000)]
Merge "Remove the SECOND_LEVEL_CHECKS_BEST macro"
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
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
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
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
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
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
Jingning Han [Tue, 18 Sep 2018 03:53:16 +0000 (03:53 +0000)]
Merge "Add a frame_index entry to RefCntBuffer"
Jingning Han [Tue, 18 Sep 2018 03:53:09 +0000 (03:53 +0000)]
Merge "Assign GOP frame offset to all the coding frames"
James Zern [Tue, 18 Sep 2018 03:38:15 +0000 (03:38 +0000)]
Merge "cosmetics: normalize include guards"
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
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
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
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
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
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
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