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

6 years agofix typo in boilerplate
Johann [Thu, 14 Dec 2017 19:54:16 +0000 (11:54 -0800)]
fix typo in boilerplate

The extra 'e' was causing the chromium license check to flag this file.

BUG=chromium:98319

Change-Id: Ic875ba66370298bf998438d14ff5f7e760293706

6 years agomark generated rtcd headers
Johann [Thu, 14 Dec 2017 19:48:46 +0000 (11:48 -0800)]
mark generated rtcd headers

Allows them to pass the license check in chromium.

BUG=chromium:98319

Change-Id: Ib37bf45bdac8cf1edc62037dea17b734a5e37fa7

6 years agovp8: [loongson] optimize sixtab predict v2.
Shiyou Yin [Thu, 14 Dec 2017 08:29:58 +0000 (16:29 +0800)]
vp8: [loongson] optimize sixtab predict v2.

1. Delete unnecessary zero setting process.
2. Optimize the method of calculating SSE in vpx_varianceWxH.

Change-Id: I8bab801416e7f4958c28c6d080e3cf785a50f82b

6 years agovp9: Update to SVC datarate tests.
Marco [Wed, 13 Dec 2017 21:34:44 +0000 (13:34 -0800)]
vp9: Update to SVC datarate tests.

With recent fixes to rate control for SVC the
buffer underrun in the tests does not happen,
so comment and TODO can be removed.

Also, in some of these SVC tests, replace the HD clip
with the corresponding VGA clip, which has > 400 frames.
For the (niklas) HD clip: it has only 60 frames but the
test was running up to 300 frames. Fixed it to 60 frames.

Keep some tests with the HD clip, needed for the 4 thread
and 5 level scaling test.

Change-Id: I0a2356a908e8b2271c7a422eb8b15c0d56eec968

6 years agoMerge "vp9: Reset rc flags on some configuration changes."
Marco Paniconi [Wed, 13 Dec 2017 21:03:40 +0000 (21:03 +0000)]
Merge "vp9: Reset rc flags on some configuration changes."

6 years agovp9: Cleanup/remove TODO comment.
Marco [Wed, 13 Dec 2017 19:29:26 +0000 (11:29 -0800)]
vp9: Cleanup/remove TODO comment.

Change-Id: I2bd43e996909ad688b7e00b81ee19a5fc4df460b

6 years agovp9: Reset rc flags on some configuration changes.
Marco [Fri, 8 Dec 2017 01:24:41 +0000 (17:24 -0800)]
vp9: Reset rc flags on some configuration changes.

For large dynamic changes in target avg_frame_bandwidth, or
a change in resolution, via the update in change_config()),
reset the under/overshoot flags (rc_1_frame, rc_2_frame)
to prevent constraining the QP for the first few frames
following the change.

For SVC use the spatial stream avg_frame_bandwidth in
reset condition.

For the avg_frame_bandwidth condition, use fairly large
threshold (~50%) for now in reset.

This allows for better/faster QP response if, for example,
application dynamically changes bitrate by large amount.

Change-Id: Ib6e3761732d956949d79c9247e50dba744a535c0

6 years agoMerge "Bug fix for second reference stats."
Paul Wilkins [Tue, 12 Dec 2017 11:56:10 +0000 (11:56 +0000)]
Merge "Bug fix for second reference stats."

6 years agoMerge "vp9 svc: Allow denoising next to highest resolution."
Jerome Jiang [Tue, 12 Dec 2017 05:27:11 +0000 (05:27 +0000)]
Merge "vp9 svc: Allow denoising next to highest resolution."

6 years agovp9 svc: Allow denoising next to highest resolution.
Jerome Jiang [Fri, 8 Dec 2017 18:38:18 +0000 (10:38 -0800)]
vp9 svc: Allow denoising next to highest resolution.

Denoise 2 spatial layes at most.

Add noise sensitivity level 2 for vp9 such that applications can control
whether to denoise the second highest spatial layer.

Add tests to cover this case.

Change-Id: Ic327d14b29adeba3f0dae547629f43b98d22997f

6 years agoMerge "Fix build warnings for gcc 6.3"
Jerome Jiang [Mon, 11 Dec 2017 18:27:17 +0000 (18:27 +0000)]
Merge "Fix build warnings for gcc 6.3"

6 years agoBug fix for second reference stats.
paulwilkins [Mon, 4 Dec 2017 13:41:44 +0000 (13:41 +0000)]
Bug fix for second reference stats.

Immediately following a key frame the trailing second reference
error in the first pass stats will be based on a reference frame from
the prior key frame group and will thus usually be much larger.

This fix eliminates that effect (which typically triggers a short arf
group immediately after a key frame). It also changes the accounting
for the first frame in each new arf group.

This change gives large gains on a couple of clips that contain mid
sequence key frames (e.g. 6% on 1080P tennis). Overall there was
a net gain in PSNR and PSNR-HVS ~(0.05- 0.4%) and mixed results for
SSIM (+/- 0.2%).

Change-Id: I8e00538ac2c0b5c2e7e637903cac329ce5c2a375

6 years agoFix build warnings for gcc 6.3
Jerome Jiang [Wed, 6 Dec 2017 00:11:05 +0000 (16:11 -0800)]
Fix build warnings for gcc 6.3

Clean up some alias.

BUG=webm:1465

Change-Id: I99e186162db9f9e15375fef01564692434eda619

6 years agoMerge "Add frame width & height to frame pkt. Add test."
Jerome Jiang [Wed, 6 Dec 2017 22:37:15 +0000 (22:37 +0000)]
Merge "Add frame width & height to frame pkt. Add test."

6 years agoAdd frame width & height to frame pkt. Add test.
Jerome Jiang [Wed, 29 Nov 2017 23:06:35 +0000 (15:06 -0800)]
Add frame width & height to frame pkt. Add test.

Used to return correct frame width and height when dynamic resizing happens.

BUG=webm:1474

Change-Id: Ia2043f7e1635b3821848a67b9b134f47f14b0f3a

6 years agovp9-svc: Set downsampling filter for VGA layer.
Marco [Wed, 6 Dec 2017 19:21:29 +0000 (11:21 -0800)]
vp9-svc: Set downsampling filter for VGA layer.

Downsampling filter for SVC was set to subsample (phase 0)
for HD -> VGA, and bilinear averaging (phase 8) for VGA -> QVGA.
This change makes it bilinear averaging for HD -> VGA.

Given the recent commit 9f9d4f8, quality is improved with
this change: avgPSNR/SSIM up ~1-3% on HD clips in RTC set.
Speed decrease of ~1% for 3 layer SVC.

Change-Id: If834a320e372b8b922a6bf7cab4227703b1beae6

6 years agoMerge "vp9: Nonrd-pickmode: move some early exits up."
Marco Paniconi [Wed, 6 Dec 2017 19:18:51 +0000 (19:18 +0000)]
Merge "vp9: Nonrd-pickmode: move some early exits up."

6 years agoMerge "Add max luma picture width/height constraint in VP9 level"
Hui Su [Wed, 6 Dec 2017 18:46:19 +0000 (18:46 +0000)]
Merge "Add max luma picture width/height constraint in VP9 level"

6 years agovp9: Nonrd-pickmode: move some early exits up.
Marco [Wed, 6 Dec 2017 18:11:54 +0000 (10:11 -0800)]
vp9: Nonrd-pickmode: move some early exits up.

Move the early exit checks on usable_ref_frame and
skip_ref_find_pref up before the check on flag_svc_subpel.
The code under flag_svc_subpel requires frame_mv to be set
for the golden/spatial reference, which is only set if the
both those exits don't pass.

No change in behavior.

Change-Id: Id304276c745eeb389ff85fa2dcf510d5976bc413

6 years agovp9-svc: Allow for nonzero motion on spatial reference.
Marco [Fri, 1 Dec 2017 23:20:41 +0000 (15:20 -0800)]
vp9-svc: Allow for nonzero motion on spatial reference.

For nonrd pickmode on a given spatial layer, the spatial
(golden) reference was always only using zeromv for prediction.
In this patch if the downsampling filter used for generating
the lower spatial layer is an averaging filter (nonzero phase),
we allow for subpel motion on the spatial (golden) reference to
compensate for the shift. This is done by forcing the testing of
nonzero motion mode to compensate for spatial downsampling shift.

Improvement for cases where the downsampling is averaging filter.
In the current code this is only done for generating
resolutions <= QVGA.

Improvement for avgPSNR/SSIM on RTC set for speed 7: ~1.2%.
Gain is larger (~2-3%) for VGA clips with 2 spatial layers.
~1% speed slowdown for 3 layer SVC on mac.

Change-Id: I9ec4fa20a38947934fc650594596c25280c3b289

6 years agoMerge "vpx_dsp: [loongson] optimize variance v2."
Shiyou Yin [Mon, 4 Dec 2017 01:30:06 +0000 (01:30 +0000)]
Merge "vpx_dsp: [loongson] optimize variance v2."

6 years agoAdd max luma picture width/height constraint in VP9 level
Hui Su [Wed, 29 Nov 2017 01:38:47 +0000 (17:38 -0800)]
Add max luma picture width/height constraint in VP9 level

BUG=b/65412009

Change-Id: I9e1478dcbd2ef9e97f5f8fb5a1c733b5f5cdf396

6 years agofilter out asm includes
Johann [Fri, 1 Dec 2017 23:03:49 +0000 (15:03 -0800)]
filter out asm includes

Don't add include files to the archive. Avoids build failures for
Windows such as:
the input file 'libvpx_g.a(x86_abi_support.asm.o)' has no sections

Change-Id: If9c8e70c0ec913b7ad7dd6a08d4fa19011114ad2

6 years agoexplicitly label .text sections
Johann [Fri, 1 Dec 2017 22:31:04 +0000 (14:31 -0800)]
explicitly label .text sections

nasm should infer .text but does not for windows:
https://bugzilla.nasm.us/show_bug.cgi?id=3392451

Change-Id: Ib195465e5f33405f5ff61c4cf88aa2a72640cacb

6 years agonasm defaults to -Ox
Johann [Fri, 1 Dec 2017 20:46:37 +0000 (12:46 -0800)]
nasm defaults to -Ox

No need to specify default behaviour. The original change introducing nasm:
https://chromium.googlesource.com/webm/libvpx/+/7be093ea4d50c8d38438f88cb9fa817c1c9de8dd
mentions requiring 2.0.9, which was the first release to default to this behaviour:
http://www.nasm.us/doc/nasmdoc2.html
"The -Ox mode is recommended for most uses, and is the default since NASM 2.09."

Change-Id: Ia914c4deede5aa447277b5189bb4fcf7e54c338d

6 years agoMerge "pass 'win64' instead of 'x64' to the assembler"
Johann Koenig [Fri, 1 Dec 2017 22:07:03 +0000 (22:07 +0000)]
Merge "pass 'win64' instead of 'x64' to the assembler"

6 years agopass 'win64' instead of 'x64' to the assembler
Johann [Fri, 1 Dec 2017 18:58:44 +0000 (10:58 -0800)]
pass 'win64' instead of 'x64' to the assembler

nasm does not accept x64

yasm has accepted (and appears to prefer) win64 at least as far back as
1.0.0:
http://yasm.tortall.net/releases/Release1.0.0.html

Change-Id: Ied881b1df0570da256b1bd7e131e7817e47f768f

6 years agovp9-svc: Set num_inter_modes in non-rd pickmode.
Marco [Fri, 1 Dec 2017 18:30:45 +0000 (10:30 -0800)]
vp9-svc: Set num_inter_modes in non-rd pickmode.

Set num_inter_modes based on ref_mode_set_svc, which is
smaller set than ref_mode_set (which may use alt-ref).

No change in behavior.

Change-Id: I31169bb09028db230552c6fca0a86959d1ade692

6 years agovpx_dsp: [loongson] optimize variance v2.
Shiyou Yin [Fri, 1 Dec 2017 05:44:48 +0000 (13:44 +0800)]
vpx_dsp: [loongson] optimize variance v2.

1. Delete unnecessary zero setting process.
2. Optimize the method of calculating SSE in vpx_varianceWxH.

Change-Id: I58890c6a2ed1543379acb48e03e620c144f6515f

6 years agoMerge "mips msa optimize vpx_scaled_2d function"
Kaustubh Raste [Fri, 1 Dec 2017 01:24:25 +0000 (01:24 +0000)]
Merge "mips msa optimize vpx_scaled_2d function"

6 years agoMerge "Nonrd-pickmode: avoid duplicate computation of UV predictor."
Marco Paniconi [Fri, 1 Dec 2017 00:23:52 +0000 (00:23 +0000)]
Merge "Nonrd-pickmode: avoid duplicate computation of UV predictor."