]> granicus.if.org Git - libvpx/log
libvpx
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."

6 years agoMerge "decouple spatial-svc from encoder abi"
James Zern [Fri, 1 Dec 2017 00:22:34 +0000 (00:22 +0000)]
Merge "decouple spatial-svc from encoder abi"

6 years agoNonrd-pickmode: avoid duplicate computation of UV predictor.
Marco [Thu, 30 Nov 2017 20:08:00 +0000 (12:08 -0800)]
Nonrd-pickmode: avoid duplicate computation of UV predictor.

Avoids duplicate computation of UV predictor.

Bit-exact when static_threshold is zero.
Small/neutral difference on RTC set with nonzero static_threshold
(since UV predictor won't be skipped with this change).

Small speed gain, ~1-2%, at speed 8.

Change-Id: Iba8d22a307768b391e29d63c9826aac5a4d9c285

6 years agodecouple spatial-svc from encoder abi
James Zern [Thu, 30 Nov 2017 18:52:25 +0000 (10:52 -0800)]
decouple spatial-svc from encoder abi

this is only meant for testing. along with --enable-experimental
--enable-spatial-svc require VPX_TEST_SPATIAL_SVC to be defined rather
than bumping the encoder ABI.

Change-Id: I7f34d9f60300fa31ccf22e1a4aa619392c391b2e

6 years agoFix to copy partition.
Marco [Thu, 30 Nov 2017 04:01:44 +0000 (20:01 -0800)]
Fix to copy partition.

Update the prev_partition on early exits in
choose_partitioning().

Change-Id: I382ffcab8e647c00b14283d15c3dd11bb0ac6f50

6 years agoMerge changes Icd9c866b,I81717e47
Shiyou Yin [Thu, 30 Nov 2017 00:53:50 +0000 (00:53 +0000)]
Merge changes Icd9c866b,I81717e47

* changes:
  vp8: [loongson] optimize regular quantize v2.
  vp8: [loongson] optimize vp8_short_fdct4x4_mmi v2.

6 years agoMerge "vpx: [loongson] fix bug in var_filter_block2d_bil_16x"
Shiyou Yin [Thu, 30 Nov 2017 00:53:37 +0000 (00:53 +0000)]
Merge "vpx: [loongson] fix bug in var_filter_block2d_bil_16x"

6 years agoMerge "Add PSNR Cb and Cr metric to opsnr.stt"
Jingning Han [Wed, 29 Nov 2017 22:56:47 +0000 (22:56 +0000)]
Merge "Add PSNR Cb and Cr metric to opsnr.stt"

6 years agoMerge "vp9-svc: Don't allow encode_breakout on golden ref."
Marco Paniconi [Wed, 29 Nov 2017 22:41:31 +0000 (22:41 +0000)]
Merge "vp9-svc: Don't allow encode_breakout on golden ref."

6 years agovp9-svc: Don't allow encode_breakout on golden ref.
Marco [Wed, 29 Nov 2017 21:37:21 +0000 (13:37 -0800)]
vp9-svc: Don't allow encode_breakout on golden ref.

For 1 pass cbr SVC: GOLDEN is the spatial reference,
better not to check for encoder_breakout on this reference.

Small positive ~0.075% (mostly neutral) gain in avgPSNR/SSIM metrics.
No observed change in encoder speed.

Change-Id: Ib337f16d6771105bf06384c6a23ad047fc690418

6 years agovp9-svc: Clean conditon for allowing copy_partition.
Marco [Wed, 29 Nov 2017 20:48:20 +0000 (12:48 -0800)]
vp9-svc: Clean conditon for allowing copy_partition.

Make condition explicit on non_reference_frame.

No change in behavior.

Change-Id: Iec5068bccd93c7c7be67634c5c090580b2dbb20d

6 years agoMerge "Remove unnecessary includes of emmintrin_compat.h"
Kyle Siefring [Wed, 29 Nov 2017 19:14:45 +0000 (19:14 +0000)]
Merge "Remove unnecessary includes of emmintrin_compat.h"

6 years agoRemove unnecessary includes of emmintrin_compat.h
Kyle Siefring [Wed, 29 Nov 2017 16:48:24 +0000 (11:48 -0500)]
Remove unnecessary includes of emmintrin_compat.h

Change-Id: Ie60381a0c6ee01f828cd364a43f01517f4cb03e9

6 years agovp8: [loongson] optimize regular quantize v2.
Shiyou Yin [Wed, 29 Nov 2017 08:59:22 +0000 (16:59 +0800)]
vp8: [loongson] optimize regular quantize v2.

1. Optimize the memset with mmi.
2. Optimize macro REGULAR_SELECT_EOB.

Change-Id: Icd9c866b0e6aef08874b2f123e9b0e09919445ff

6 years agomips msa optimize vpx_scaled_2d function
Kaustubh Raste [Wed, 29 Nov 2017 07:57:04 +0000 (13:27 +0530)]
mips msa optimize vpx_scaled_2d function

Change-Id: I638507b360c71489ab0e87bd558d2719ad995333

6 years agovp8: [loongson] optimize vp8_short_fdct4x4_mmi v2.
Shiyou Yin [Wed, 29 Nov 2017 03:58:38 +0000 (11:58 +0800)]
vp8: [loongson] optimize vp8_short_fdct4x4_mmi v2.

Optimize the calculate process of a,b,c,d.

Change-Id: I81717e47bc988ace1412d478513e7dd3cb6b0cc9

6 years agovpx{enc,dec}: add --help
James Zern [Tue, 28 Nov 2017 02:35:37 +0000 (18:35 -0800)]
vpx{enc,dec}: add --help

only output short usage to stderr on error, with --help use stdout

Change-Id: I7089f3bca829817e14b14c766f4f3eaee6f54e5c

6 years agoAdd PSNR Cb and Cr metric to opsnr.stt
Jingning Han [Mon, 27 Nov 2017 23:04:32 +0000 (15:04 -0800)]
Add PSNR Cb and Cr metric to opsnr.stt

Change-Id: I24e1741c00f9514647c7db2758a7ababd4e96932

6 years agovpx: [loongson] fix bug in var_filter_block2d_bil_16x
Shiyou Yin [Fri, 22 Sep 2017 07:29:21 +0000 (15:29 +0800)]
vpx: [loongson] fix bug in var_filter_block2d_bil_16x

Which cause failed case:
1. MMI/VpxSubpelVarianceTest.Ref/6
2. MMI/VpxSubpelVarianceTest.Ref/7
3. MMI/VpxSubpelVarianceTest.ExtremeRef/6
4. MMI/VpxSubpelVarianceTest.ExtremeRef/7

Change-Id: I122ca20089e14ac324edd61295cf8f506e06afc8

6 years agovp9-svc: Fix condition for setting downsampling filter.
Marco [Tue, 28 Nov 2017 22:28:26 +0000 (14:28 -0800)]
vp9-svc: Fix condition for setting downsampling filter.

Use (width * height) for setting downsampling filter type.

Change-Id: If4acfde7ff9339e0584155f8a4d15b2f134211f2

6 years agoquantize x86: dedup some parts
Johann [Wed, 23 Aug 2017 22:27:25 +0000 (15:27 -0700)]
quantize x86: dedup some parts

Change-Id: I9f95f47bc7ecbb7980f21cbc3a91f699624141af

6 years agovp9-svc: Fix to the layer buffer settings.
Marco [Tue, 21 Nov 2017 23:04:53 +0000 (15:04 -0800)]
vp9-svc: Fix to the layer buffer settings.

For the case when the number of temporal layers > 1,
the buffer levels (starting/optimal_buffer_level,
and maximum_buffer_size) were not scaled properly.

In vp9_update_layer_context_change_config():
when setting the layer-buffer levels, fix is to scale
the layer-target_bandwidth by the target_bandwidth
(which is the full stream bandwidth) instead of the
spatial_layer_target.

This is needed because prior to the call
vp9_update_layer_context_change_config(), set_rc_buffer_sizes()
is called which sets the buffer levels based on target bandwidth
(which is the full bandwidth for the SVC stream).

This fix properly sets the layer-buffer levels based on the
layer-bandwidth, and leads to better rate targeting.

Small/neutral change in avgPSNR/SSIM metrics on RTC set.

Change-Id: Ic0f4f7f3487c37b9a9adb4781ae5edfed7140a57

6 years agoMerge "[CFI] Remove function pointer casts"
Peter Collingbourne [Tue, 21 Nov 2017 18:42:40 +0000 (18:42 +0000)]
Merge "[CFI] Remove function pointer casts"

6 years agoMerge "vp8 simulcast: fix compile warnings."
Jerome Jiang [Tue, 21 Nov 2017 01:22:46 +0000 (01:22 +0000)]
Merge "vp8 simulcast: fix compile warnings."

6 years ago[CFI] Remove function pointer casts
Vlad Tsyrklevich [Mon, 20 Nov 2017 21:40:54 +0000 (13:40 -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 function pointer casts to make libvpx CFI-safe.

[1] https://www.chromium.org/developers/testing/control-flow-integrity

Change-Id: I7e08522d195a43c88cda06fa20414426c8c4372c

6 years agovp8 simulcast: fix compile warnings.
Jerome Jiang [Tue, 21 Nov 2017 00:18:31 +0000 (16:18 -0800)]
vp8 simulcast: fix compile warnings.

Clean up some prints.

Change-Id: I199350e34a8b6fbff9601fcbd11ec68d24da5073

6 years agoMerge "Optimize AVX2 get16x16var and get32x16var functions"
Kyle Siefring [Mon, 20 Nov 2017 22:37:57 +0000 (22:37 +0000)]
Merge "Optimize AVX2 get16x16var and get32x16var functions"

6 years agoMerge "vp9 svc: fix a few compile warnings."
Jerome Jiang [Mon, 20 Nov 2017 18:52:58 +0000 (18:52 +0000)]
Merge "vp9 svc: fix a few compile warnings."

6 years agovp9-svc: Enbale scale partition reference frames.
Marco [Fri, 17 Nov 2017 17:47:03 +0000 (09:47 -0800)]
vp9-svc: Enbale scale partition reference frames.

For reference frames: enable scale partition for
superblocks with low source sad or if bsize on lower-resoln
is at least 32x32.

Keep feature disabled for base temporal layer.

Small regression in avgPNSR/SSIM metrics, ~0.5-1%.
Speedup ~2-3% on mac for SVC (3 spatial/3 temporal layers) at speed 7.

Change-Id: I5987eb7763845b680059128b538bb5188be0cca5

6 years agovp9 svc: fix a few compile warnings.
Jerome Jiang [Fri, 17 Nov 2017 22:33:21 +0000 (14:33 -0800)]
vp9 svc: fix a few compile warnings.

Change-Id: I4cb878600038066513ab73f3658990d1245ff2fb

6 years agoOptimize AVX2 get16x16var and get32x16var functions
Kyle Siefring [Fri, 17 Nov 2017 18:43:05 +0000 (13:43 -0500)]
Optimize AVX2 get16x16var and get32x16var functions

Change-Id: If8b91aaa883c01107f0ea3468139fa24cfb301d2

6 years agoMerge "Disable allow_partition_search_skip for speed 2."
Paul Wilkins [Fri, 17 Nov 2017 10:34:56 +0000 (10:34 +0000)]
Merge "Disable allow_partition_search_skip for speed 2."

6 years agoMerge "Code cleanup."
Paul Wilkins [Fri, 17 Nov 2017 10:34:46 +0000 (10:34 +0000)]
Merge "Code cleanup."

6 years agoMerge "Remove decay_accumulator clause from alt ref breakout."
Paul Wilkins [Fri, 17 Nov 2017 10:34:37 +0000 (10:34 +0000)]
Merge "Remove decay_accumulator clause from alt ref breakout."

6 years agoMerge "Add clause to alt ref group breakout."
Paul Wilkins [Fri, 17 Nov 2017 10:34:26 +0000 (10:34 +0000)]
Merge "Add clause to alt ref group breakout."

6 years agoMerge "vp9: Fix mem rel for non-ref for external buffer."
Jerome Jiang [Fri, 17 Nov 2017 00:31:16 +0000 (00:31 +0000)]
Merge "vp9: Fix mem rel for non-ref for external buffer."

6 years agoDisable allow_partition_search_skip for speed 2.
paulwilkins [Thu, 16 Nov 2017 16:15:06 +0000 (16:15 +0000)]
Disable allow_partition_search_skip for speed 2.

When allow_partition_search_skip  is set the two pass code
can optionally skip the partition search in the rd loop if the image
appears static (based on selection of 0,0 motion).

Unfortunately 0,0 motion does not necessarily mean that there are
no meaningful changes or that motion or intra modes will not be selected
in the second pass.

Disabling "allow_partition_search_skip" may hurt the encode speed a little
for a small number of clips but can have a big impact on compression.
The most notable example of this in our test sets is "bridge_close_cif"
where this change gives a gains of 18%, 12% and 16% in opsnr, ssim and
psnr-hvs.

Change-Id: I765e288b5c0cd82bce00a148e7653a21e9203024

6 years agovp9 svc: Rework/fix scale partitioning on boundary.
Jerome Jiang [Tue, 14 Nov 2017 01:21:26 +0000 (17:21 -0800)]
vp9 svc: Rework/fix scale partitioning on boundary.

Enable partition copy on boundary and scale blocks along the boundary.
Rename copy_partition_svc to scale_partition_svc.

Do not copy if the block crosses the boundary.

Change-Id: I37a04d48f11b15c4ea67facd7631193ec2f62150

6 years agofwd txfm ssse3: use GLOBAL() for loading constants
Johann [Wed, 15 Nov 2017 21:01:44 +0000 (13:01 -0800)]
fwd txfm ssse3: use GLOBAL() for loading constants

Fixes a build issue when relocation is not allowed:
relocation R_X86_64_32 against '.rodata' can not be used when making a shared object

Change-Id: Ica3e90c926847bc384e818d7854f0030f4d69aa0

6 years agoCode cleanup.
paulwilkins [Wed, 15 Nov 2017 17:07:28 +0000 (17:07 +0000)]
Code cleanup.

Removal of parameters to and code in calc_frame_boost() that is no
longer required.

No change to results from previous patch.

Change-Id: Ic92da35613fdc247d22fddf24d09679fc5329017

6 years agoRemove decay_accumulator clause from alt ref breakout.
paulwilkins [Wed, 15 Nov 2017 16:58:05 +0000 (16:58 +0000)]
Remove decay_accumulator clause from alt ref breakout.

The decay accumulator clause covers similar ground to the
new clause that tests the accumulated second reference error
so it has been removed to reduce complexity.

Change-Id: I4ec1cce32d72bd4ee463ad7def2831a68447d525

6 years agoAdd clause to alt ref group breakout.
paulwilkins [Wed, 15 Nov 2017 16:39:54 +0000 (16:39 +0000)]
Add clause to alt ref group breakout.

Add a clause to the breakout test for alt ref groups that
examines the size of the accumulated second reference
frame error compared to the cost of intra coding.

This clause causes a reduction in the average group length for many
clips. Alongside the change to the group length the minimum
boost is increased.

On balance the results are positive for psnr and psnr-hvs
but is negative for ssim/fast ssim for the smaller image formats.

Strong gains on some harder clips (eg ducks take off (midres) ~20%,
husky (lowres) 6-17%. Most of the negative cases are lower motion
clips. Subsequent patch hopefully will help with those.

Change-Id: Ic1f5dbb9153d5089e58b1540470e799f91a65dc4

6 years agovp9-svc: Fix flag for usage of reuse-lowres partition
Marco [Wed, 15 Nov 2017 03:52:54 +0000 (19:52 -0800)]
vp9-svc: Fix flag for usage of reuse-lowres partition

Fix/cleaup the conditioning for usage of the reuse-lowres
partition feature.

Replace the non-reference condition with the top temporal
layer, and put this condition in the speed feature.

This prevents doing update_partition_svc() on every
VGA frame, instead it will now only do update for VGA in
the top temporal layer frames.

Also this makes it easier to test/enable this feature
for lower layer temporal frames.

Change-Id: Ia897afbc6fe5c84c5693e310bcaa6a87ce017be5

6 years agotiny_ssim.c : clang compile error fix
Scott LaVarnway [Tue, 14 Nov 2017 12:38:00 +0000 (04:38 -0800)]
tiny_ssim.c : clang compile error fix

Change-Id: Ic10ba580fd5da7d6ff7fa0f33db72fb0c1a97801

6 years agoMerge "add 10 and 12 bit to tiny_ssim"
James Bankoski [Tue, 14 Nov 2017 00:15:24 +0000 (00:15 +0000)]
Merge "add 10 and 12 bit to tiny_ssim"

6 years agoMerge "vp9 svc: Change conditions on VPX_ENCODER_ABI_VERSION."
Jerome Jiang [Mon, 13 Nov 2017 21:04:41 +0000 (21:04 +0000)]
Merge "vp9 svc: Change conditions on VPX_ENCODER_ABI_VERSION."

6 years agovp9 svc: Change conditions on VPX_ENCODER_ABI_VERSION.
Jerome Jiang [Mon, 13 Nov 2017 19:05:20 +0000 (11:05 -0800)]
vp9 svc: Change conditions on VPX_ENCODER_ABI_VERSION.

VPX_ENCODER_ABI_VERSION was bumped up in 93e83f.

Change-Id: Id5707f9f9db56fa96549bc8f54e1cfa04e7fa4cd

6 years agoadd 10 and 12 bit to tiny_ssim
Jim Bankoski [Mon, 13 Nov 2017 14:44:17 +0000 (06:44 -0800)]
add 10 and 12 bit to tiny_ssim

Change-Id: I92e4dba2d1682a0d77ad9a214ec4312b1cf4d42e

6 years agoNew content type to improve grain retention.
paulwilkins [Wed, 27 Sep 2017 17:17:18 +0000 (18:17 +0100)]
New content type to improve grain retention.

For new VP9 only content type adjust  the rate distortion and ARF
filter based on the relative spatial variance of the source and
reconstruction.

In regards to the RD loop the method favors modes where the
reconstruction variance is similar to the source variance. However it
is currently only applied to regions where the source variance is quite
low.

For very low variance blocks it applies a further bias against intra
coding and large prediction block sizes (the later in particular limit
the usefulness of the loop filter).

The final part of this change is to lower the strength of the ARF
filter for blocks where the source has very low spatial variance, to
encourage some low amplitude texture or noise to pass through
the filter.

This change improves the retention of film grain and fine noise /
texture in spatially flat regions, but as expected causes a significant
drop in PSNR on many clips. This is to be expected because similar
but misaligned noise or texture will give a lower PSNR than a flat
noise free reconstruction. However, it is worth noting that most clips
show a strong gain in FAST SSIM.

The features are enabled on the vpxenc command line by setting
--tune-content=film.

VPX_ENCODER_ABI_VERSION bumped for this change and cvbr.

Change-Id: I26a4e4edfa3dc5cacead82fa701fe7a9118ccd0a

6 years agoSmall parameter clean up.
paulwilkins [Mon, 6 Nov 2017 11:24:34 +0000 (11:24 +0000)]
Small parameter clean up.

Removed three parameters that are no longer needed in calls
to calc_arf_boost() and associated minor changes.

No impact on encode results.

Change-Id: Ieaf31d0d2e1990b99cf69647170145a1bbfbb9fb

6 years agoMerge "Fix to frames considered in arf boost calculation."
Paul Wilkins [Mon, 13 Nov 2017 16:36:43 +0000 (16:36 +0000)]
Merge "Fix to frames considered in arf boost calculation."