Johann Koenig [Wed, 31 Jan 2018 14:23:49 +0000 (14:23 +0000)]
Merge "vp8 bool: verify buffer size"
Johann [Tue, 30 Jan 2018 19:12:08 +0000 (11:12 -0800)]
vp8 bool: verify buffer size
In the process of fixing a ubsan warning:
commit
738b829b8cdf079a5fa48c74a28a177c9567d212
Fix incorrect size reading
the inferred check of start < end was removed. This causes fuzzed files
to get a little further and segfault in vp8dx_start_decode.
Change-Id: I316e23058753ba42dbcc46d27eb575f51c8a9e9a
Marco Paniconi [Tue, 30 Jan 2018 16:56:42 +0000 (16:56 +0000)]
Merge "vp9 svc: fix to make top layer frame non-ref"
Johann Koenig [Tue, 30 Jan 2018 15:32:22 +0000 (15:32 +0000)]
Merge "Fix doc comment mismatch in vpx_frame_buffer.h"
Jerome Jiang [Tue, 30 Jan 2018 00:38:28 +0000 (16:38 -0800)]
vp9 svc: fix to make top layer frame non-ref
Add mismatch check to the datarate test of changing svc pattern on the
fly.
Change-Id: I6a878736de44e6a40c077ed6430aabd7fadabdd9
Linfeng Zhang [Tue, 30 Jan 2018 01:20:41 +0000 (01:20 +0000)]
Merge "Update vp9_iht8x8_64_add_neon()"
Jerome Jiang [Tue, 30 Jan 2018 00:01:46 +0000 (00:01 +0000)]
Merge "Datarate test for usage of SVC_SET_REF_FRAME_CONFIG"
Linfeng Zhang [Mon, 29 Jan 2018 23:17:08 +0000 (15:17 -0800)]
Update vp9_iht8x8_64_add_neon()
Change-Id: Ie70ed8b9273df5e1fd06bc93cb469e80630941d2
Brion Vibber [Mon, 29 Jan 2018 23:13:09 +0000 (15:13 -0800)]
Fix doc comment mismatch in vpx_frame_buffer.h
When compiling an app using libvpx in Xcode 9.2, a warning is
thrown in vpx_frame_buffer.h:
"Parameter 'new_size' not found in the function declaration"
Switching it to 'min_size' to match the comment text and the
callback type definition prototype resolves it.
Change-Id: I7a3e4a857c2007c2d0d390e22054d7bc85068aa1
Jerome Jiang [Thu, 25 Jan 2018 18:43:00 +0000 (10:43 -0800)]
Datarate test for usage of SVC_SET_REF_FRAME_CONFIG
Change-Id: Iea7fc1b6cea84826eb45b1f01bd923323c2c9a6f
Linfeng Zhang [Mon, 29 Jan 2018 20:16:47 +0000 (20:16 +0000)]
Merge changes Ica8dbe5f,I8f4e0fc6
* changes:
Update vp9_iht4x4_16_add_neon()
Clean dct_const_round_shift() related neon code
Johann [Mon, 29 Jan 2018 19:57:00 +0000 (11:57 -0800)]
Merge remote-tracking branch 'origin/mandarinduck' into HEAD
The following changes were not carried back from the release branch:
commit
f87a4594fbd0b19071a2befebf52d3f5fabd1a9e
Revert "Add frame width & height to frame pkt. Add test."
commit
c5dc3373dbd442ea299bacf276c4258fa7ce0559
work around pic issue with gcc 6
BUG=webm:1490
Change-Id: Id3e15983d5565680c05a0c454544003a615a4d7f
Linfeng Zhang [Wed, 24 Jan 2018 21:54:55 +0000 (13:54 -0800)]
Update vp9_iht4x4_16_add_neon()
Change-Id: Ica8dbe5f8167e5d370d89d233c598b70bba123b7
Linfeng Zhang [Wed, 24 Jan 2018 21:05:39 +0000 (13:05 -0800)]
Clean dct_const_round_shift() related neon code
Change-Id: I8f4e0fc6ecb77b623519f2dd3cd2886f89218ddd
Linfeng Zhang [Mon, 29 Jan 2018 17:34:11 +0000 (17:34 +0000)]
Merge "cosmetic: clean idct neon functions"
Johann Koenig [Sat, 27 Jan 2018 01:42:58 +0000 (01:42 +0000)]
Merge "Fix incorrect size reading"
Johann [Fri, 26 Jan 2018 23:50:50 +0000 (15:50 -0800)]
Fix incorrect size reading
Cherry pick from vp9:
commit
85770264ac891505730dcd5092d1993a62c74060
Guard against incorrect size values moving *data past data_end.
Check read length against the difference of the buffers.
Change-Id: I5e8679ddd447c4d73deb80be5ec94841a92c5fcd
Jerome Jiang [Fri, 26 Jan 2018 22:45:39 +0000 (22:45 +0000)]
Merge "vp9 svc: Update temporal_layering_mode in config change."
Jerome Jiang [Fri, 26 Jan 2018 21:38:04 +0000 (13:38 -0800)]
vp9 svc: Update temporal_layering_mode in config change.
temporal_layering_mode can be changed on the fly.
BUG=webm:1488
Change-Id: I223fd4085184e41878ddf0f9244d2e3d07636ae3
Marco [Fri, 26 Jan 2018 03:00:31 +0000 (19:00 -0800)]
vp9-svc: Adjust logic on intra mode search.
For SVC, on spatial enhancement layer, intra
search was disabled unless best reference frame
is golden (i.e., spatial/inter-layer prediction),
except for some other conditions (lower layer is key
or golden is not an allowed reference).
Fix is to add the base temporal layer condition,
so intra search will not be force-disabled for base
temporal layer frames.
This improves metrics (-1-2%) for SVC 3 and 2 layer config.
Some small encode time is expected, but since condition
only affect base temporal layers (i.e., every 4 frames
for 3 layers), increase is small.
Change-Id: I10b824faef99560dfdeeb02ba8bf8e3e1eea6255
Marco [Thu, 25 Jan 2018 01:12:43 +0000 (17:12 -0800)]
vp9-svc: Add QP dependency to thresh_svc_skip_golden.
In nonrd-pickmode: the golden/spatial reference for inter-layer
prediction may be skipped in the mode testing. Add QP dependency
to reduce the threshold for skipping (i.e., check it more often)
at high QP, if the lower layer was encoded at lower QP relative
to the current layer.
At high QP, a better quality lower resolution is more likely to
provide good spatial (inter-layer) prediction.
avgPSNR/SSIM metrics up by ~1% (all clips positive gain or neutral).
Some decrease in encode time (~1-2%) expected at lower bitrates,
for 3 layer SVC.
Change-Id: I9ee0f62d4b10d4ebd30165d378ecfa4399ae5ef1
Marco Paniconi [Wed, 24 Jan 2018 23:56:48 +0000 (23:56 +0000)]
Merge "vp9: Fix to vp9_svc sample encoder for bypass mode."
Johann Koenig [Wed, 24 Jan 2018 23:44:12 +0000 (23:44 +0000)]
Merge "remove obsolete doxygen tags"
Marco [Wed, 24 Jan 2018 23:16:34 +0000 (15:16 -0800)]
vp9: Fix to vp9_svc sample encoder for bypass mode.
This fix makes it bitexact to the default SVC pattern,
for the example 2 temporal layer case.
Change-Id: I4df2063b70f7aecbfc7082f29c8439e05f6db8ac
Scott LaVarnway [Wed, 24 Jan 2018 22:54:42 +0000 (22:54 +0000)]
Merge "BUG FIX: sse2 subpel variance is not PIC compliant"
Johann [Wed, 24 Jan 2018 22:29:07 +0000 (14:29 -0800)]
remove obsolete doxygen tags
warning: Tag `XML_SCHEMA' at line 941 of file `doxyfile' has become obsolete.
warning: Tag `XML_DTD' at line 947 of file `doxyfile' has become obsolete.
Change-Id: I85e39c4fb154569b8d7f68bdf362408983e9bd4f
Johann [Thu, 4 Jan 2018 18:54:28 +0000 (10:54 -0800)]
Release 1.7.0 Mandarin Duck
Change-Id: I186440f3643a85694f45400393efb661f6d012fc
Linfeng Zhang [Wed, 24 Jan 2018 00:03:50 +0000 (16:03 -0800)]
cosmetic: clean idct neon functions
Change-Id: I9c7c52567850aded0437b13ba1260e94441bc49d
Marco Paniconi [Wed, 24 Jan 2018 20:29:10 +0000 (20:29 +0000)]
Merge "vp9-svc: Re-adjust some aq-mode=3 control parameters."
Scott LaVarnway [Sat, 13 Jan 2018 15:01:04 +0000 (07:01 -0800)]
BUG FIX: sse2 subpel variance is not PIC compliant
BUG=webm:1464
Change-Id: Ibc15bac54aaf509365bed5892a26a29972ad3540
Scott LaVarnway [Wed, 24 Jan 2018 13:58:08 +0000 (13:58 +0000)]
Merge "vp9_quantize_fp_avx2()"
Marco [Wed, 24 Jan 2018 04:03:19 +0000 (20:03 -0800)]
vp9-svc: Re-adjust some aq-mode=3 control parameters.
Remove an adjustment to two cyclic refresh (aq-mode= 3)
parameters for SVC. The adjustment was to reduce the
delta-qp on second segment, and reduce the motion threshold.
This was done early on in the SVC encoder development,
in the latest codebase removing this adjustment yields
some improvements in metrics.
The avgPSNR/SSIM metrics increase on average by ~1%
(most clip positive gain), for 3 and 2 layer SVC.
Change-Id: I7a4d5114f16b2a1df383dbe6b3fe02940e29e6cc
Johann Koenig [Wed, 24 Jan 2018 04:03:23 +0000 (04:03 +0000)]
Merge "update .clang-format for v5.0.0"
James Zern [Tue, 23 Jan 2018 21:01:23 +0000 (13:01 -0800)]
vpx_codec_enc_init_multi: fix segfault w/vp9
vp9 does not support multi-res encoding, the request should not crash.
+ encode_api_test: unconditionally expose multi-res test
vpx_codec_enc_init_multi should fail independent of
CONFIG_MULTI_RES_ENCODING if not for the same reason.
Change-Id: I44fc58ef70ee4e0e482cb6a5736885f4cb2a8517
(cherry picked from commit
004fb91416e355986dc098883791becf39ffc1f7)
Jerome Jiang [Wed, 17 Jan 2018 19:23:55 +0000 (11:23 -0800)]
Fix crash invalid params for vp8 multres. Add test.
Fix is from the patch in the issue.
Release memories allocated before early exit.
BUG=webm:1482
Change-Id: I64952af99c58241496e03fa55da09fd129a07c77
(cherry picked from commit
5b6ae020b6a972b67b59b3dbf7cf9cbd3140a80d)
James Zern [Wed, 24 Jan 2018 02:12:00 +0000 (02:12 +0000)]
Merge "vpx_codec_enc_init_multi: fix segfault w/vp9"
Jerome Jiang [Wed, 24 Jan 2018 01:12:44 +0000 (01:12 +0000)]
Merge "Fix frame sizes in pkt to support spatial layers."
Shiyou Yin [Wed, 24 Jan 2018 01:06:42 +0000 (01:06 +0000)]
Merge "vp8: [loongson] fix bug of type conflict."
James Zern [Tue, 23 Jan 2018 21:01:23 +0000 (13:01 -0800)]
vpx_codec_enc_init_multi: fix segfault w/vp9
vp9 does not support multi-res encoding, the request should not crash.
+ encode_api_test: unconditionally expose multi-res test
vpx_codec_enc_init_multi should fail independent of
CONFIG_MULTI_RES_ENCODING if not for the same reason.
Change-Id: I44fc58ef70ee4e0e482cb6a5736885f4cb2a8517
Johann [Tue, 23 Jan 2018 21:37:42 +0000 (13:37 -0800)]
update .clang-format for v5.0.0
Change-Id: Id43e8ce9cf3790b728683acc9686e246ccaa90cf
Linfeng Zhang [Tue, 23 Jan 2018 17:47:34 +0000 (09:47 -0800)]
Add vp9_highbd_iht16x16_256_add_sse4_1()
BUG=webm:1413
Change-Id: I8d7eeae1bd219eb848c1a86071046a477f7a91af
Linfeng Zhang [Tue, 23 Jan 2018 18:28:59 +0000 (18:28 +0000)]
Merge "Add "vpx_" prefix to 2 idct x86 functions"
Jerome Jiang [Tue, 23 Jan 2018 17:25:28 +0000 (17:25 +0000)]
Merge "Fix crash invalid params for vp8 multres. Add test."
Linfeng Zhang [Tue, 23 Jan 2018 17:17:38 +0000 (09:17 -0800)]
Add "vpx_" prefix to 2 idct x86 functions
Change-Id: I4f3052d8748e16b06e9155f8daf22f867dfaa7a3
Linfeng Zhang [Tue, 23 Jan 2018 17:04:20 +0000 (17:04 +0000)]
Merge "Add vp9_highbd_iht8x8_64_add_sse4_1()"
Shiyou Yin [Tue, 23 Jan 2018 03:33:25 +0000 (11:33 +0800)]
vp8: [loongson] fix bug of type conflict.
In commit
577d4fa79, int8_t was used to replace char. This will result in a
compilation error, for int8_t was typedefined to signed char, but not char.
Change-Id: I5c9837e01b0b58688a7741f5c9a99a76ca887e4a
Jerome Jiang [Mon, 22 Jan 2018 23:34:59 +0000 (15:34 -0800)]
Fix frame sizes in pkt to support spatial layers.
Add test for svc frame sizes in pkt.
BUG=webm:1485
Change-Id: I983dc229e526d72d22360d7f3016d8358d6beae7
Jerome Jiang [Wed, 17 Jan 2018 19:23:55 +0000 (11:23 -0800)]
Fix crash invalid params for vp8 multres. Add test.
Fix is from the patch in the issue.
Release memories allocated before early exit.
BUG=webm:1482
Change-Id: I64952af99c58241496e03fa55da09fd129a07c77
Johann Koenig [Mon, 22 Jan 2018 19:38:42 +0000 (19:38 +0000)]
Merge changes from topic "clang-format"
* changes:
clang-format v5.0.0 vp9/
remove spurious comments
clang-format v5.0.0 vp8/
clang-format v5.0.0 vpx_dsp/
clang-format v5.0.0 mem_ops.h
clang-format v5.0.0 vpx_util/vpx_atomic.h
clang-format v5.0.0 y4minput.c
clang-format v5.0.0 vpxenc.c
clang-format v5.0.0 examples/
clang-format v5.0.0 test/
Linfeng Zhang [Thu, 18 Jan 2018 23:48:19 +0000 (15:48 -0800)]
Add vp9_highbd_iht8x8_64_add_sse4_1()
BUG=webm:1413
Change-Id: Id9038226902b2d793fc6c17ac81bb104c1a18988
Scott LaVarnway [Fri, 17 Nov 2017 20:34:24 +0000 (12:34 -0800)]
vp9_quantize_fp_avx2()
Started from vp9_quantize_fp_sse2 and tweaked to use avx2.
Change-Id: Ic2da50cc9d73896c7ef2f3cd3db5b1c5d7795b8b
Johann [Fri, 12 Jan 2018 17:39:53 +0000 (09:39 -0800)]
clang-format v5.0.0 vp9/
Remove trailing commas to keep multiple elements on one line.
Add blank lines to prevent comments from being treated as blocks.
clang-format guards for struct with a comment in the middle.
Change-Id: I3bcb8313ae8aaf69179249a13b4087b1272cdbc0
Johann [Fri, 12 Jan 2018 17:14:30 +0000 (09:14 -0800)]
remove spurious comments
These don't appear to make any sense given their context. The
commit log also does not reveal anything.
Discovered due to spurious clang-format indenting:
https://bugs.llvm.org/show_bug.cgi?id=35930
Change-Id: I732a66056ba4c05e3e132a2f236fe10f7a282900
Johann [Fri, 12 Jan 2018 17:12:42 +0000 (09:12 -0800)]
clang-format v5.0.0 vp8/
Allow*OnASingleLine appears to no longer apply to
typedef structs.
Adjust closing parenthesis/opening brace on functions.
Remove trailing commas to keep multiple elements on one line.
Change-Id: I6e535a8ddb15c9b3de8216ce8ddb2a18241af46c
Johann [Fri, 12 Jan 2018 16:42:52 +0000 (08:42 -0800)]
clang-format v5.0.0 vpx_dsp/
Remove comments above #define statements because they get
indented unnecessarily.
https://bugs.llvm.org/show_bug.cgi?id=35930
Add blank lines to prevent comments from being treated as
blocks.
Change-Id: I04dce21b2a10e13b8dc07411a0019c098f6dd705
Marco [Tue, 16 Jan 2018 19:37:40 +0000 (11:37 -0800)]
vp8: Fix to multi-res-encoder for skipping streams.
For the vp8 simulcast/multi-res-encoder:
Add flags to keep track of the disabling/skipping of
streams for the multi-res-encoder. And if the lower spatial
stream is skipped for a given stream, disable the motion
vector reuse for that stream.
Also remove the condition of forcing same frame type
across all streams.
This fix allows for the skipping/disabling of the base
or middle layer streams.
Change-Id: Idfa94b32b6d2256932f6602cde19579b8e50a8bd
Johann Koenig [Wed, 17 Jan 2018 20:17:33 +0000 (20:17 +0000)]
Merge "Revert "Add frame width & height to frame pkt. Add test."" into mandarinduck
Johann [Wed, 17 Jan 2018 19:26:31 +0000 (11:26 -0800)]
Revert "Add frame width & height to frame pkt. Add test."
This reverts commit
bd1d995cd38b4e31a01356079f1d94067273eb28.
Remove the feature from the release as it requires additional work.
BUG=webm:1485
Change-Id: I1a01ac2525703af97a456a3eed85718306c0f734
Vignesh Venkatasubramanian [Tue, 16 Jan 2018 23:42:43 +0000 (15:42 -0800)]
vp8dx.h: Add macro for skipping loop filter
Without this applications cannot use the vpx_codec_control macro
for VP9_SET_SKIP_LOOP_FILTER. The tests only cover the underscored
version vpx_codec_control_().
Change-Id: I3e6c1888307b76636fdc1a8deae70b5c14238163
(cherry picked from commit
373e08f921e5bfd5a96963fabbbbe16ec793d44e)
Vignesh Venkatasubramanian [Tue, 16 Jan 2018 23:42:43 +0000 (15:42 -0800)]
vp8dx.h: Add macro for skipping loop filter
Without this applications cannot use the vpx_codec_control macro
for VP9_SET_SKIP_LOOP_FILTER. The tests only cover the underscored
version vpx_codec_control_().
Change-Id: I3e6c1888307b76636fdc1a8deae70b5c14238163
paulwilkins [Thu, 4 Jan 2018 16:02:42 +0000 (16:02 +0000)]
Fix bug in use of zoom metric as part of arf breakout.
The in/out (or zoom metrics) in accumulate_frame_motion_stats()
are in effect a % of the blocks that have a motion vector pointing
either towards or away from the center. As such they are already
normalized in terms of image size and the thresholds against which
these are tested should be image size independent.
In practice a zoom either in or out is an indicator for a shorter group
length so the abs value is more important as a breakout clause.
This patch fixes the threshold test. Clips without noticeable zoom show
no effect but some with strong zooms such as "station" show a big
gain (5-10%). Average psnr-hvs gain on hdres set was 0.292%
Change-Id: I4f97a72b0e273e4e844ade15285749c32cd81c1c
(cherry picked from commit
0226ce79e9389ccf7d10ed7acacba6840ad911c9)
Paul Wilkins [Fri, 12 Jan 2018 18:45:28 +0000 (18:45 +0000)]
Merge "Add zoom break out for kf boost loop."
Paul Wilkins [Fri, 12 Jan 2018 18:45:13 +0000 (18:45 +0000)]
Merge "Fix kf detection in some slide shows."
Johann [Thu, 11 Jan 2018 23:20:08 +0000 (15:20 -0800)]
clang-format v5.0.0 mem_ops.h
Remove trailing empty line to keep the comment from being indented.
https://bugs.llvm.org/show_bug.cgi?id=35930
Change-Id: I6c51f7afb4cc47f03a190b4c90e29e4ff1e0c689
Johann [Thu, 11 Jan 2018 23:17:29 +0000 (15:17 -0800)]
clang-format v5.0.0 vpx_util/vpx_atomic.h
Allow*OnASingleLine appears to no longer apply to
typedef structs.
Change-Id: If10db1c30c74ee31dad1a0b1926964e850f15fd2
Johann [Thu, 11 Jan 2018 23:08:25 +0000 (15:08 -0800)]
clang-format v5.0.0 y4minput.c
Remove trailing empty line to keep the comment from being indented.
https://bugs.llvm.org/show_bug.cgi?id=35930
Change-Id: If0f0862623b3fa3ae49e850edbbed52c2b4c6672
Johann [Thu, 11 Jan 2018 23:06:32 +0000 (15:06 -0800)]
clang-format v5.0.0 vpxenc.c
Treat the formatted string as one distinct parameter to fprintf
Change-Id: I62cfd5657c4cefc6b3fa45247ba9f33515a292b1
Johann [Thu, 11 Jan 2018 22:55:06 +0000 (14:55 -0800)]
clang-format v5.0.0 examples/
Attempts to group () expression on their own line.
Change-Id: I404f9dd1a91aaa2100925c90162bcdefbead5ad2
Johann [Thu, 11 Jan 2018 22:05:35 +0000 (14:05 -0800)]
clang-format v5.0.0 test/
Remove trailing commas to keep multiple elements on one line.
Remove trailing empty lines to keep comments from being indented.
https://bugs.llvm.org/show_bug.cgi?id=35930
Change-Id: I0a66dde95f2a304f13cb85a2e9197afca20051e8
Scott LaVarnway [Thu, 11 Jan 2018 23:05:33 +0000 (23:05 +0000)]
Merge "Add quantize_fp_32x32_nz_c()"
Marco Paniconi [Thu, 11 Jan 2018 22:08:49 +0000 (22:08 +0000)]
Merge "vp9: Skip encoding of enhancement layers on the fly."
Johann [Thu, 28 Dec 2017 22:57:02 +0000 (14:57 -0800)]
adopt some clang 5.0.0 formatting
At least the changes that don't conflict with 4.0.1
Change-Id: I9b6a7c14dadc0738cd0f628a10ece90fc7ee89fd
Marco [Wed, 10 Jan 2018 00:35:29 +0000 (16:35 -0800)]
vp9: Skip encoding of enhancement layers on the fly.
For SVC: if an enhancement layer (spatial_layer > 0)
has 0 bandwidth, skip/drop the encoding of the layer.
This allows the application to dynamically disable
higher layers for SVC.
Add flag to signal the skip encoding, this is needed
to modify the packing of the superframe when the top
layer is skipped/dropped.
Also moved some updates (current_video_frame counter and
the last_avg_frame_bandwidth) to the postencode_update_drop_frame().
Added datarate unittest for dynamically going from 3 to 2
and then back to 3 spatial layers.
Change-Id: Idaccdb4aca25ba1d822ed1b4219f94e2e8640d43
Vlad Tsyrklevich [Wed, 10 Jan 2018 23:53:09 +0000 (15:53 -0800)]
[CFI] Remove function pointer casts
Control Flow Integrity [1] indirect call checking verifies that function
pointers only call valid functions with a matching type signature. This
change eliminates some function pointer casts that I missed in my last
CL https://crrev.com/c/780144.
BUG=chromium:776905
[1] https://www.chromium.org/developers/testing/control-flow-integrity
Change-Id: I1c7adbdfffa4fe0b62e993bfb31d06e64b022d66
Paul Wilkins [Wed, 10 Jan 2018 17:33:00 +0000 (17:33 +0000)]
Merge "Fix bug in use of zoom metric as part of arf breakout."
paulwilkins [Tue, 9 Jan 2018 15:51:28 +0000 (15:51 +0000)]
Add zoom break out for kf boost loop.
Adds a breakout threshold to key frame boost loop.
This reduces the boost somewhat in cases where there is a
significant zoom component. In tests most clips no effect
but a sizable gain for some clips like station.
Change-Id: I8b7a4d57f7ce5f4e3faab3f5688f7e4d61679b9a
paulwilkins [Wed, 10 Jan 2018 15:03:21 +0000 (15:03 +0000)]
Fix kf detection in some slide shows.
This fix improves detection of key frames in slide shows.
In particular it helps if the slides are pictures of varying formats
as in a sample provided by yclin@.
This change does not impact any of the clips in our standard tests
but for the example slide show test clip helped global psnr by
several db and resolved a serious visual quality issue.
Change-Id: Iaeeeed55dc0bb50aeacd4996ed660ced06374603
Johann [Tue, 9 Jan 2018 20:46:45 +0000 (12:46 -0800)]
work around pic issue with gcc 6
Enable pic when building sse2 or higher optimizations.
BUG=webm:1464
Change-Id: I36c6e83ed716649f3d9ee10ce3aa9bb847cac2d9
Linfeng Zhang [Fri, 5 Jan 2018 17:57:56 +0000 (09:57 -0800)]
Add vp9_highbd_iht4x4_16_add_sse4_1()
BUG=webm:1413
Change-Id: I14930d0af24370a44ab359de5bba5512eef4e29f
Linfeng Zhang [Fri, 5 Jan 2018 17:40:19 +0000 (09:40 -0800)]
Update dct_test.cc
Make 8-bit functions testing available in high bitdepth.
Change-Id: Ic030c75aa4c6b649c52426abb4bb2122882de0fe
Linfeng Zhang [Mon, 8 Jan 2018 17:15:45 +0000 (17:15 +0000)]
Merge "Update iadst4_sse2()"
Marco Paniconi [Fri, 5 Jan 2018 19:01:31 +0000 (19:01 +0000)]
Merge "vp9-svc: Use eightap_smooth for downsampling at low resol."
Marco [Fri, 5 Jan 2018 17:33:27 +0000 (09:33 -0800)]
vp9-svc: Use eightap_smooth for downsampling at low resol.
Switch from bilinear to eighttap_smooth for frame-level
downsampling at low resolutions (<= 320x240).
avgPSNR/SSIM metrics increase from ~0.5-2% (all clips positive gain),
for 2 and 3 spatial layer SVC, with 3 temporal layers.
Small/negligible increase in encoding time (< 1%).
Change-Id: I758472fc4fddd51d87f13c9d1a1cd4986ef5d41f
paulwilkins [Thu, 4 Jan 2018 16:02:42 +0000 (16:02 +0000)]
Fix bug in use of zoom metric as part of arf breakout.
The in/out (or zoom metrics) in accumulate_frame_motion_stats()
are in effect a % of the blocks that have a motion vector pointing
either towards or away from the center. As such they are already
normalized in terms of image size and the thresholds against which
these are tested should be image size independent.
In practice a zoom either in or out is an indicator for a shorter group
length so the abs value is more important as a breakout clause.
This patch fixes the threshold test. Clips without noticeable zoom show
no effect but some with strong zooms such as "station" show a big
gain (5-10%). Average psnr-hvs gain on hdres set was 0.292%
Change-Id: I4f97a72b0e273e4e844ade15285749c32cd81c1c
Marco [Thu, 4 Jan 2018 22:20:59 +0000 (14:20 -0800)]
vp9: Increase convergence speed of noise estimation.
Increase the recursive average factor from 15/16 to 3/4
to make the noise estimation respond faster.
Small/neglible change on low noise content, but better
denoising for noisy content.
Also encoder speedup of ~2-3% observed on some noisy clips.
Change-Id: I9dd02fe961ca24b411fe4c2732f814bf1e9a7f9f
Linfeng Zhang [Fri, 29 Dec 2017 00:47:57 +0000 (16:47 -0800)]
Update iadst4_sse2()
Change-Id: I21ff81df0d6898170a3b80b3b5220f9f3ac7f4e8
Scott LaVarnway [Fri, 22 Dec 2017 18:05:33 +0000 (10:05 -0800)]
Add quantize_fp_32x32_nz_c()
This c version uses the shortcuts found in the
vp9_quantize_fp_32x32_ssse3 function.
Change-Id: I2e983adb00064e070b7f2b1ac088cc58cf778137
Scott LaVarnway [Mon, 18 Dec 2017 14:31:46 +0000 (06:31 -0800)]
Add vp9_quantize_fp_nz_c() -- 2
This c version uses the shortcuts found in the x86
vp9_quantize_fp functions.
The test was updated to use the correct quant/round range.
Change-Id: Ie5871f710d9eb39047d8d9f48b907c0633e1f830
James Zern [Thu, 21 Dec 2017 23:02:32 +0000 (23:02 +0000)]
Merge "vp9_quantize_ssse3_x86_64: fix out of bounds write"
Ralph Giles [Thu, 21 Dec 2017 21:48:55 +0000 (13:48 -0800)]
Don't force inlining for msvc targets.
INLINE is defined as __forceinline for vs* configs, but is the
normal, compiler-discretion inline for gcc/clang configs. This
makes many functions very large when building for windows targets,
much larger than they are elsewhere.
Use '__inline' as a consistent definition to get consistent function
sizes. Although Visual Studio documentation says that 'inline' is
only available in C+ code. This is probably incorrect, since Visual
Studio 2017 accepts C99 'inline' even when passed /TC. Nevertheless,
this commit uses the recommended '__inline' for consistency.
Thanks to David Major for the diagnosis.
Change-Id: Ib0b31a3afcea77822c84fe3c6cd452add66d825a
James Zern [Thu, 21 Dec 2017 21:51:40 +0000 (16:51 -0500)]
vp9_quantize_ssse3_x86_64: fix out of bounds write
eob is a pointer to a uint16_t. previously the code would store 64-bits
causing a crash or test failure with the right stack layout.
Change-Id: Ibd653baf323db114f2444951b9d8b00c596bf15a
James Zern [Thu, 21 Dec 2017 14:03:20 +0000 (06:03 -0800)]
Revert "Add vp9_quantize_fp_nz_c()"
This reverts commit
86842855d30d6ca6befdcf5108003e027d90daa9.
SSSE3/VP9QuantizeTest.EOBCheck/1 fails on Mac and the build breaks under
visual studio due to a #if within another macro.
Change-Id: I475095a04aafcc714fade2b24e4df7b682be2cd1
Scott LaVarnway [Wed, 20 Dec 2017 23:15:11 +0000 (23:15 +0000)]
Merge "Add vp9_quantize_fp_nz_c()"
James Zern [Wed, 20 Dec 2017 20:22:34 +0000 (20:22 +0000)]
Merge "lpf_test: correct threshold ranges"
Marco [Fri, 15 Dec 2017 00:35:33 +0000 (16:35 -0800)]
vp9-svc: Add layer bitrate targeting to SVC datarate tests.
Modify and update the SVC datarate unittests to verify the
rate targeting for each spatial-temporal layer.
The current tests were only verifying the rate targeting
of the full SVC stream, not individual layers.
Also re-enabled a test that was disabled.
This is a stronger verification of the layered rate control
for SVC for 1 pass CBR encoding.
Added PostEncodeFrameHook, needed to get the layer_id and
update the layer buffer level.
Change-Id: I9fd54ad474686b20a6de3250d587e2cec194a56f
Scott LaVarnway [Mon, 18 Dec 2017 14:31:46 +0000 (06:31 -0800)]
Add vp9_quantize_fp_nz_c()
This c version uses the shortcuts found in the x86
vp9_quantize_fp functions.
The test was updated to use the correct quant/round range.
Change-Id: I5d19f8af2fddda8e50910249eafb740acb29415b
Marco [Fri, 8 Dec 2017 01:24:41 +0000 (17:24 -0800)]
vp9: Reset buffer level on large bitrate changes.
For a large change in the target avg_frame_bandwidth,
via the update in change_config()), reset the buffer_level
to optimal_level.
This fix prevents possible frame drops, where for example,
encoder suddenly goes from lower to higher bitrate.
Change-Id: I2f844c41d04c01240e85f574e59d2b9075c7eb6d
James Zern [Tue, 19 Dec 2017 07:17:45 +0000 (23:17 -0800)]
lpf_test: correct threshold ranges
the random number generator creates values from [0, range) add 1 to all
and make hev more realistic by mirroring its calculation of level >> 4,
i.e., [0, 3]
Change-Id: Ic19be5d7ba668deb17c96f143b739116a4b5d21c
Shiyou Yin [Fri, 15 Dec 2017 09:06:47 +0000 (17:06 +0800)]
vp8: [loongson] optimize loopfilter v2.
Optimize function vp8_mbloop_filter_vertical_edge_mmi and
function vp8_mbloop_filter_horizontal_edge_mmi.
Make full use of memory loading delay slot and reduce unnecessary
instructions.
Change-Id: I61da2c3a44c06044225461f46bf487d83cba6c16
Shiyou Yin [Fri, 15 Dec 2017 00:53:21 +0000 (00:53 +0000)]
Merge "vp8: [loongson] optimize sixtab predict v2."