]> granicus.if.org Git - libvpx/log
libvpx
6 years agovp9 svc: fix to make top layer frame non-ref
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

6 years agoMerge "Datarate test for usage of SVC_SET_REF_FRAME_CONFIG"
Jerome Jiang [Tue, 30 Jan 2018 00:01:46 +0000 (00:01 +0000)]
Merge "Datarate test for usage of SVC_SET_REF_FRAME_CONFIG"

6 years agoDatarate test for usage of SVC_SET_REF_FRAME_CONFIG
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

6 years agoMerge changes Ica8dbe5f,I8f4e0fc6
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

6 years agoMerge remote-tracking branch 'origin/mandarinduck' into HEAD
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

6 years agoUpdate vp9_iht4x4_16_add_neon()
Linfeng Zhang [Wed, 24 Jan 2018 21:54:55 +0000 (13:54 -0800)]
Update vp9_iht4x4_16_add_neon()

Change-Id: Ica8dbe5f8167e5d370d89d233c598b70bba123b7

6 years agoClean dct_const_round_shift() related neon code
Linfeng Zhang [Wed, 24 Jan 2018 21:05:39 +0000 (13:05 -0800)]
Clean dct_const_round_shift() related neon code

Change-Id: I8f4e0fc6ecb77b623519f2dd3cd2886f89218ddd

6 years agoMerge "cosmetic: clean idct neon functions"
Linfeng Zhang [Mon, 29 Jan 2018 17:34:11 +0000 (17:34 +0000)]
Merge "cosmetic: clean idct neon functions"

6 years agoMerge "Fix incorrect size reading"
Johann Koenig [Sat, 27 Jan 2018 01:42:58 +0000 (01:42 +0000)]
Merge "Fix incorrect size reading"

6 years agoFix 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

6 years agoMerge "vp9 svc: Update temporal_layering_mode in config change."
Jerome Jiang [Fri, 26 Jan 2018 22:45:39 +0000 (22:45 +0000)]
Merge "vp9 svc: Update temporal_layering_mode in config change."

6 years agovp9 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

6 years agovp9-svc: Adjust logic on intra mode search.
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

6 years agovp9-svc: Add QP dependency to thresh_svc_skip_golden.
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

6 years agoMerge "vp9: Fix to vp9_svc sample encoder for bypass mode."
Marco Paniconi [Wed, 24 Jan 2018 23:56:48 +0000 (23:56 +0000)]
Merge "vp9: Fix to vp9_svc sample encoder for bypass mode."

6 years agoMerge "remove obsolete doxygen tags"
Johann Koenig [Wed, 24 Jan 2018 23:44:12 +0000 (23:44 +0000)]
Merge "remove obsolete doxygen tags"

6 years agovp9: Fix to vp9_svc sample encoder for bypass mode.
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

6 years agoMerge "BUG FIX: sse2 subpel variance is not PIC compliant"
Scott LaVarnway [Wed, 24 Jan 2018 22:54:42 +0000 (22:54 +0000)]
Merge "BUG FIX: sse2 subpel variance is not PIC compliant"

6 years agoremove obsolete doxygen tags
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

6 years agoRelease 1.7.0 Mandarin Duck v1.7.0
Johann [Thu, 4 Jan 2018 18:54:28 +0000 (10:54 -0800)]
Release 1.7.0 Mandarin Duck

Change-Id: I186440f3643a85694f45400393efb661f6d012fc

6 years agocosmetic: clean idct neon functions
Linfeng Zhang [Wed, 24 Jan 2018 00:03:50 +0000 (16:03 -0800)]
cosmetic: clean idct neon functions

Change-Id: I9c7c52567850aded0437b13ba1260e94441bc49d

6 years agoMerge "vp9-svc: Re-adjust some aq-mode=3 control parameters."
Marco Paniconi [Wed, 24 Jan 2018 20:29:10 +0000 (20:29 +0000)]
Merge "vp9-svc: Re-adjust some aq-mode=3 control parameters."

6 years agoBUG FIX: sse2 subpel variance is not PIC compliant
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

6 years agoMerge "vp9_quantize_fp_avx2()"
Scott LaVarnway [Wed, 24 Jan 2018 13:58:08 +0000 (13:58 +0000)]
Merge "vp9_quantize_fp_avx2()"

6 years agovp9-svc: Re-adjust some aq-mode=3 control parameters.
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

6 years agoMerge "update .clang-format for v5.0.0"
Johann Koenig [Wed, 24 Jan 2018 04:03:23 +0000 (04:03 +0000)]
Merge "update .clang-format for v5.0.0"

6 years agovpx_codec_enc_init_multi: fix segfault w/vp9
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)

6 years agoFix crash invalid params for vp8 multres. Add test.
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)

6 years agoMerge "vpx_codec_enc_init_multi: fix segfault w/vp9"
James Zern [Wed, 24 Jan 2018 02:12:00 +0000 (02:12 +0000)]
Merge "vpx_codec_enc_init_multi: fix segfault w/vp9"

6 years agoMerge "Fix frame sizes in pkt to support spatial layers."
Jerome Jiang [Wed, 24 Jan 2018 01:12:44 +0000 (01:12 +0000)]
Merge "Fix frame sizes in pkt to support spatial layers."

6 years agoMerge "vp8: [loongson] fix bug of type conflict."
Shiyou Yin [Wed, 24 Jan 2018 01:06:42 +0000 (01:06 +0000)]
Merge "vp8: [loongson] fix bug of type conflict."

6 years agovpx_codec_enc_init_multi: fix segfault w/vp9
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

6 years agoupdate .clang-format for v5.0.0
Johann [Tue, 23 Jan 2018 21:37:42 +0000 (13:37 -0800)]
update .clang-format for v5.0.0

Change-Id: Id43e8ce9cf3790b728683acc9686e246ccaa90cf

6 years agoAdd vp9_highbd_iht16x16_256_add_sse4_1()
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

6 years agoMerge "Add "vpx_" prefix to 2 idct x86 functions"
Linfeng Zhang [Tue, 23 Jan 2018 18:28:59 +0000 (18:28 +0000)]
Merge "Add "vpx_" prefix to 2 idct x86 functions"

6 years agoMerge "Fix crash invalid params for vp8 multres. Add test."
Jerome Jiang [Tue, 23 Jan 2018 17:25:28 +0000 (17:25 +0000)]
Merge "Fix crash invalid params for vp8 multres. Add test."

6 years agoAdd "vpx_" prefix to 2 idct x86 functions
Linfeng Zhang [Tue, 23 Jan 2018 17:17:38 +0000 (09:17 -0800)]
Add "vpx_" prefix to 2 idct x86 functions

Change-Id: I4f3052d8748e16b06e9155f8daf22f867dfaa7a3

6 years agoMerge "Add vp9_highbd_iht8x8_64_add_sse4_1()"
Linfeng Zhang [Tue, 23 Jan 2018 17:04:20 +0000 (17:04 +0000)]
Merge "Add vp9_highbd_iht8x8_64_add_sse4_1()"

6 years agovp8: [loongson] fix bug of type conflict.
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

6 years agoFix frame sizes in pkt to support spatial layers.
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

6 years agoFix crash invalid params for vp8 multres. Add test.
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

6 years agoMerge changes from topic "clang-format"
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/

6 years agoAdd vp9_highbd_iht8x8_64_add_sse4_1()
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

6 years agovp9_quantize_fp_avx2()
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

6 years agoclang-format v5.0.0 vp9/
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

6 years agoremove spurious comments
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

6 years agoclang-format v5.0.0 vp8/
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

6 years agoclang-format v5.0.0 vpx_dsp/
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

6 years agovp8: Fix to multi-res-encoder for skipping streams.
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

6 years agoMerge "Revert "Add frame width & height to frame pkt. Add test."" into mandarinduck
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

6 years agoRevert "Add frame width & height to frame pkt. Add test."
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

6 years agovp8dx.h: Add macro for skipping loop filter
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)

6 years agovp8dx.h: Add macro for skipping loop filter
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

6 years agoFix bug in use of zoom metric as part of arf breakout.
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)

6 years agoMerge "Add zoom break out for kf boost loop."
Paul Wilkins [Fri, 12 Jan 2018 18:45:28 +0000 (18:45 +0000)]
Merge "Add zoom break out for kf boost loop."

6 years agoMerge "Fix kf detection in some slide shows."
Paul Wilkins [Fri, 12 Jan 2018 18:45:13 +0000 (18:45 +0000)]
Merge "Fix kf detection in some slide shows."

6 years agoclang-format v5.0.0 mem_ops.h
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

6 years agoclang-format v5.0.0 vpx_util/vpx_atomic.h
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

6 years agoclang-format v5.0.0 y4minput.c
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

6 years agoclang-format v5.0.0 vpxenc.c
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

6 years agoclang-format v5.0.0 examples/
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

6 years agoclang-format v5.0.0 test/
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

6 years agoMerge "Add quantize_fp_32x32_nz_c()"
Scott LaVarnway [Thu, 11 Jan 2018 23:05:33 +0000 (23:05 +0000)]
Merge "Add quantize_fp_32x32_nz_c()"

6 years agoMerge "vp9: Skip encoding of enhancement layers on the fly."
Marco Paniconi [Thu, 11 Jan 2018 22:08:49 +0000 (22:08 +0000)]
Merge "vp9: Skip encoding of enhancement layers on the fly."

6 years agoadopt some clang 5.0.0 formatting
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

6 years agovp9: Skip encoding of enhancement layers on the fly.
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

6 years ago[CFI] Remove function pointer casts
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

6 years agoMerge "Fix bug in use of zoom metric as part of arf breakout."
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."

6 years agoAdd zoom break out for kf boost loop.
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

6 years agoFix kf detection in some slide shows.
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

6 years agowork around pic issue with gcc 6
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

6 years agoAdd vp9_highbd_iht4x4_16_add_sse4_1()
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

6 years agoUpdate dct_test.cc
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

6 years agoMerge "Update iadst4_sse2()"
Linfeng Zhang [Mon, 8 Jan 2018 17:15:45 +0000 (17:15 +0000)]
Merge "Update iadst4_sse2()"

6 years agoMerge "vp9-svc: Use eightap_smooth for downsampling at low resol."
Marco Paniconi [Fri, 5 Jan 2018 19:01:31 +0000 (19:01 +0000)]
Merge "vp9-svc: Use eightap_smooth for downsampling at low resol."

6 years agovp9-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

6 years agoFix bug in use of zoom metric as part of arf breakout.
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

6 years agovp9: Increase convergence speed of noise estimation.
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

6 years agoUpdate iadst4_sse2()
Linfeng Zhang [Fri, 29 Dec 2017 00:47:57 +0000 (16:47 -0800)]
Update iadst4_sse2()

Change-Id: I21ff81df0d6898170a3b80b3b5220f9f3ac7f4e8

6 years agoAdd quantize_fp_32x32_nz_c()
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

6 years agoAdd vp9_quantize_fp_nz_c() -- 2
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

6 years agoMerge "vp9_quantize_ssse3_x86_64: fix out of bounds write"
James Zern [Thu, 21 Dec 2017 23:02:32 +0000 (23:02 +0000)]
Merge "vp9_quantize_ssse3_x86_64: fix out of bounds write"

6 years agoDon't force inlining for msvc targets.
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

6 years agovp9_quantize_ssse3_x86_64: fix out of bounds write
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

6 years agoRevert "Add vp9_quantize_fp_nz_c()"
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

6 years agoMerge "Add vp9_quantize_fp_nz_c()"
Scott LaVarnway [Wed, 20 Dec 2017 23:15:11 +0000 (23:15 +0000)]
Merge "Add vp9_quantize_fp_nz_c()"

6 years agoMerge "lpf_test: correct threshold ranges"
James Zern [Wed, 20 Dec 2017 20:22:34 +0000 (20:22 +0000)]
Merge "lpf_test: correct threshold ranges"

6 years agovp9-svc: Add layer bitrate targeting to SVC datarate tests.
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

6 years agoAdd vp9_quantize_fp_nz_c()
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

6 years agovp9: Reset buffer level on large bitrate changes.
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

6 years agolpf_test: correct threshold ranges
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

6 years agovp8: [loongson] optimize loopfilter v2.
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

6 years agoMerge "vp8: [loongson] optimize sixtab predict v2."
Shiyou Yin [Fri, 15 Dec 2017 00:53:21 +0000 (00:53 +0000)]
Merge "vp8: [loongson] optimize sixtab predict v2."

6 years agoMerge "add copyright to rtcd files"
Johann Koenig [Thu, 14 Dec 2017 23:44:30 +0000 (23:44 +0000)]
Merge "add copyright to rtcd files"

6 years agoMerge "mark generated version header"
Johann Koenig [Thu, 14 Dec 2017 23:44:04 +0000 (23:44 +0000)]
Merge "mark generated version header"

6 years agoadd copyright to rtcd files
Johann [Thu, 14 Dec 2017 20:05:56 +0000 (12:05 -0800)]
add copyright to rtcd files

Allows them to pass the license check in chromium.

BUG=chromium:98319

Change-Id: Iefc1706152a549d8c4ae774c917596bf1c9492d8

6 years agoMerge "remove unused tools"
Johann Koenig [Thu, 14 Dec 2017 21:19:59 +0000 (21:19 +0000)]
Merge "remove unused tools"

6 years agoMerge "fix typo in boilerplate"
Johann Koenig [Thu, 14 Dec 2017 21:19:47 +0000 (21:19 +0000)]
Merge "fix typo in boilerplate"

6 years agoremove unused tools
Johann [Thu, 14 Dec 2017 20:27:11 +0000 (12:27 -0800)]
remove unused tools

all_builds.py has been more or less replaced by Jenkins.

author_first_release.sh is unused.

ftfy.sh has been obviated by having the whole tree clang-format clean.

Change-Id: I741315ad9042e6e901f07410e93f28371db703b2

6 years agomark generated version header
Johann [Thu, 14 Dec 2017 19:57:49 +0000 (11:57 -0800)]
mark generated version header

Allows it to pass the license check in chromium.

BUG=chromium:98319

Change-Id: I5ba9c8c81ab9eb4168df09db9d2eab846e99e981