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
Vlad Tsyrklevich [Wed, 10 Jan 2018 23:53:09 +0000 (15:53 -0800)]
[CFI] Remove function pointer casts
Control Flow Integrity [1] indirect call checking verifies that function
pointers only call valid functions with a matching type signature. This
change eliminates some function pointer casts that I missed in my last
CL https://crrev.com/c/780144.
BUG=chromium:776905
[1] https://www.chromium.org/developers/testing/control-flow-integrity
Change-Id: I1c7adbdfffa4fe0b62e993bfb31d06e64b022d66
Paul Wilkins [Wed, 10 Jan 2018 17:33:00 +0000 (17:33 +0000)]
Merge "Fix bug in use of zoom metric as part of arf breakout."
Linfeng Zhang [Fri, 5 Jan 2018 17:57:56 +0000 (09:57 -0800)]
Add vp9_highbd_iht4x4_16_add_sse4_1()
BUG=webm:1413
Change-Id: I14930d0af24370a44ab359de5bba5512eef4e29f
Linfeng Zhang [Fri, 5 Jan 2018 17:40:19 +0000 (09:40 -0800)]
Update dct_test.cc
Make 8-bit functions testing available in high bitdepth.
Change-Id: Ic030c75aa4c6b649c52426abb4bb2122882de0fe
Linfeng Zhang [Mon, 8 Jan 2018 17:15:45 +0000 (17:15 +0000)]
Merge "Update iadst4_sse2()"
Marco Paniconi [Fri, 5 Jan 2018 19:01:31 +0000 (19:01 +0000)]
Merge "vp9-svc: Use eightap_smooth for downsampling at low resol."
Marco [Fri, 5 Jan 2018 17:33:27 +0000 (09:33 -0800)]
vp9-svc: Use eightap_smooth for downsampling at low resol.
Switch from bilinear to eighttap_smooth for frame-level
downsampling at low resolutions (<= 320x240).
avgPSNR/SSIM metrics increase from ~0.5-2% (all clips positive gain),
for 2 and 3 spatial layer SVC, with 3 temporal layers.
Small/negligible increase in encoding time (< 1%).
Change-Id: I758472fc4fddd51d87f13c9d1a1cd4986ef5d41f
paulwilkins [Thu, 4 Jan 2018 16:02:42 +0000 (16:02 +0000)]
Fix bug in use of zoom metric as part of arf breakout.
The in/out (or zoom metrics) in accumulate_frame_motion_stats()
are in effect a % of the blocks that have a motion vector pointing
either towards or away from the center. As such they are already
normalized in terms of image size and the thresholds against which
these are tested should be image size independent.
In practice a zoom either in or out is an indicator for a shorter group
length so the abs value is more important as a breakout clause.
This patch fixes the threshold test. Clips without noticeable zoom show
no effect but some with strong zooms such as "station" show a big
gain (5-10%). Average psnr-hvs gain on hdres set was 0.292%
Change-Id: I4f97a72b0e273e4e844ade15285749c32cd81c1c
Marco [Thu, 4 Jan 2018 22:20:59 +0000 (14:20 -0800)]
vp9: Increase convergence speed of noise estimation.
Increase the recursive average factor from 15/16 to 3/4
to make the noise estimation respond faster.
Small/neglible change on low noise content, but better
denoising for noisy content.
Also encoder speedup of ~2-3% observed on some noisy clips.
Change-Id: I9dd02fe961ca24b411fe4c2732f814bf1e9a7f9f
Linfeng Zhang [Fri, 29 Dec 2017 00:47:57 +0000 (16:47 -0800)]
Update iadst4_sse2()
Change-Id: I21ff81df0d6898170a3b80b3b5220f9f3ac7f4e8
Scott LaVarnway [Mon, 18 Dec 2017 14:31:46 +0000 (06:31 -0800)]
Add vp9_quantize_fp_nz_c() -- 2
This c version uses the shortcuts found in the x86
vp9_quantize_fp functions.
The test was updated to use the correct quant/round range.
Change-Id: Ie5871f710d9eb39047d8d9f48b907c0633e1f830
James Zern [Thu, 21 Dec 2017 23:02:32 +0000 (23:02 +0000)]
Merge "vp9_quantize_ssse3_x86_64: fix out of bounds write"
Ralph Giles [Thu, 21 Dec 2017 21:48:55 +0000 (13:48 -0800)]
Don't force inlining for msvc targets.
INLINE is defined as __forceinline for vs* configs, but is the
normal, compiler-discretion inline for gcc/clang configs. This
makes many functions very large when building for windows targets,
much larger than they are elsewhere.
Use '__inline' as a consistent definition to get consistent function
sizes. Although Visual Studio documentation says that 'inline' is
only available in C+ code. This is probably incorrect, since Visual
Studio 2017 accepts C99 'inline' even when passed /TC. Nevertheless,
this commit uses the recommended '__inline' for consistency.
Thanks to David Major for the diagnosis.
Change-Id: Ib0b31a3afcea77822c84fe3c6cd452add66d825a
James Zern [Thu, 21 Dec 2017 21:51:40 +0000 (16:51 -0500)]
vp9_quantize_ssse3_x86_64: fix out of bounds write
eob is a pointer to a uint16_t. previously the code would store 64-bits
causing a crash or test failure with the right stack layout.
Change-Id: Ibd653baf323db114f2444951b9d8b00c596bf15a
James Zern [Thu, 21 Dec 2017 14:03:20 +0000 (06:03 -0800)]
Revert "Add vp9_quantize_fp_nz_c()"
This reverts commit
86842855d30d6ca6befdcf5108003e027d90daa9.
SSSE3/VP9QuantizeTest.EOBCheck/1 fails on Mac and the build breaks under
visual studio due to a #if within another macro.
Change-Id: I475095a04aafcc714fade2b24e4df7b682be2cd1
Scott LaVarnway [Wed, 20 Dec 2017 23:15:11 +0000 (23:15 +0000)]
Merge "Add vp9_quantize_fp_nz_c()"
James Zern [Wed, 20 Dec 2017 20:22:34 +0000 (20:22 +0000)]
Merge "lpf_test: correct threshold ranges"
Marco [Fri, 15 Dec 2017 00:35:33 +0000 (16:35 -0800)]
vp9-svc: Add layer bitrate targeting to SVC datarate tests.
Modify and update the SVC datarate unittests to verify the
rate targeting for each spatial-temporal layer.
The current tests were only verifying the rate targeting
of the full SVC stream, not individual layers.
Also re-enabled a test that was disabled.
This is a stronger verification of the layered rate control
for SVC for 1 pass CBR encoding.
Added PostEncodeFrameHook, needed to get the layer_id and
update the layer buffer level.
Change-Id: I9fd54ad474686b20a6de3250d587e2cec194a56f
Scott LaVarnway [Mon, 18 Dec 2017 14:31:46 +0000 (06:31 -0800)]
Add vp9_quantize_fp_nz_c()
This c version uses the shortcuts found in the x86
vp9_quantize_fp functions.
The test was updated to use the correct quant/round range.
Change-Id: I5d19f8af2fddda8e50910249eafb740acb29415b
Marco [Fri, 8 Dec 2017 01:24:41 +0000 (17:24 -0800)]
vp9: Reset buffer level on large bitrate changes.
For a large change in the target avg_frame_bandwidth,
via the update in change_config()), reset the buffer_level
to optimal_level.
This fix prevents possible frame drops, where for example,
encoder suddenly goes from lower to higher bitrate.
Change-Id: I2f844c41d04c01240e85f574e59d2b9075c7eb6d
James Zern [Tue, 19 Dec 2017 07:17:45 +0000 (23:17 -0800)]
lpf_test: correct threshold ranges
the random number generator creates values from [0, range) add 1 to all
and make hev more realistic by mirroring its calculation of level >> 4,
i.e., [0, 3]
Change-Id: Ic19be5d7ba668deb17c96f143b739116a4b5d21c
Shiyou Yin [Fri, 15 Dec 2017 09:06:47 +0000 (17:06 +0800)]
vp8: [loongson] optimize loopfilter v2.
Optimize function vp8_mbloop_filter_vertical_edge_mmi and
function vp8_mbloop_filter_horizontal_edge_mmi.
Make full use of memory loading delay slot and reduce unnecessary
instructions.
Change-Id: I61da2c3a44c06044225461f46bf487d83cba6c16
Shiyou Yin [Fri, 15 Dec 2017 00:53:21 +0000 (00:53 +0000)]
Merge "vp8: [loongson] optimize sixtab predict v2."
Johann Koenig [Thu, 14 Dec 2017 23:44:30 +0000 (23:44 +0000)]
Merge "add copyright to rtcd files"
Johann Koenig [Thu, 14 Dec 2017 23:44:04 +0000 (23:44 +0000)]
Merge "mark generated version header"
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
Johann Koenig [Thu, 14 Dec 2017 21:19:59 +0000 (21:19 +0000)]
Merge "remove unused tools"
Johann Koenig [Thu, 14 Dec 2017 21:19:47 +0000 (21:19 +0000)]
Merge "fix typo in boilerplate"
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
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
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
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
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
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
Marco Paniconi [Wed, 13 Dec 2017 21:03:40 +0000 (21:03 +0000)]
Merge "vp9: Reset rc flags on some configuration changes."
Marco [Wed, 13 Dec 2017 19:29:26 +0000 (11:29 -0800)]
vp9: Cleanup/remove TODO comment.
Change-Id: I2bd43e996909ad688b7e00b81ee19a5fc4df460b
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
Paul Wilkins [Tue, 12 Dec 2017 11:56:10 +0000 (11:56 +0000)]
Merge "Bug fix for second reference stats."
Jerome Jiang [Tue, 12 Dec 2017 05:27:11 +0000 (05:27 +0000)]
Merge "vp9 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
Jerome Jiang [Mon, 11 Dec 2017 18:27:17 +0000 (18:27 +0000)]
Merge "Fix build warnings for gcc 6.3"
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
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
Jerome Jiang [Wed, 6 Dec 2017 22:37:15 +0000 (22:37 +0000)]
Merge "Add 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
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
Marco Paniconi [Wed, 6 Dec 2017 19:18:51 +0000 (19:18 +0000)]
Merge "vp9: Nonrd-pickmode: move some early exits up."
Hui Su [Wed, 6 Dec 2017 18:46:19 +0000 (18:46 +0000)]
Merge "Add max luma picture width/height constraint in VP9 level"
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
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
Shiyou Yin [Mon, 4 Dec 2017 01:30:06 +0000 (01:30 +0000)]
Merge "vpx_dsp: [loongson] optimize variance v2."
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
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
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
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
Johann Koenig [Fri, 1 Dec 2017 22:07:03 +0000 (22:07 +0000)]
Merge "pass '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
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
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
Kaustubh Raste [Fri, 1 Dec 2017 01:24:25 +0000 (01:24 +0000)]
Merge "mips msa optimize vpx_scaled_2d function"
Marco Paniconi [Fri, 1 Dec 2017 00:23:52 +0000 (00:23 +0000)]
Merge "Nonrd-pickmode: avoid duplicate computation of UV predictor."
James Zern [Fri, 1 Dec 2017 00:22:34 +0000 (00:22 +0000)]
Merge "decouple spatial-svc from encoder abi"
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
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
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
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.
Shiyou Yin [Thu, 30 Nov 2017 00:53:37 +0000 (00:53 +0000)]
Merge "vpx: [loongson] fix bug in var_filter_block2d_bil_16x"
Jingning Han [Wed, 29 Nov 2017 22:56:47 +0000 (22:56 +0000)]
Merge "Add PSNR Cb and Cr metric to opsnr.stt"
Marco Paniconi [Wed, 29 Nov 2017 22:41:31 +0000 (22:41 +0000)]
Merge "vp9-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
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
Kyle Siefring [Wed, 29 Nov 2017 19:14:45 +0000 (19:14 +0000)]
Merge "Remove 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
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
Kaustubh Raste [Wed, 29 Nov 2017 07:57:04 +0000 (13:27 +0530)]
mips msa optimize vpx_scaled_2d function
Change-Id: I638507b360c71489ab0e87bd558d2719ad995333
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
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
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
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
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
Johann [Wed, 23 Aug 2017 22:27:25 +0000 (15:27 -0700)]
quantize x86: dedup some parts
Change-Id: I9f95f47bc7ecbb7980f21cbc3a91f699624141af
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
Peter Collingbourne [Tue, 21 Nov 2017 18:42:40 +0000 (18:42 +0000)]
Merge "[CFI] Remove function pointer casts"
Jerome Jiang [Tue, 21 Nov 2017 01:22:46 +0000 (01:22 +0000)]
Merge "vp8 simulcast: fix compile warnings."
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
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
Kyle Siefring [Mon, 20 Nov 2017 22:37:57 +0000 (22:37 +0000)]
Merge "Optimize AVX2 get16x16var and get32x16var functions"
Jerome Jiang [Mon, 20 Nov 2017 18:52:58 +0000 (18:52 +0000)]
Merge "vp9 svc: fix a few compile warnings."
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
Jerome Jiang [Fri, 17 Nov 2017 22:33:21 +0000 (14:33 -0800)]
vp9 svc: fix a few compile warnings.
Change-Id: I4cb878600038066513ab73f3658990d1245ff2fb
Kyle Siefring [Fri, 17 Nov 2017 18:43:05 +0000 (13:43 -0500)]
Optimize AVX2 get16x16var and get32x16var functions
Change-Id: If8b91aaa883c01107f0ea3468139fa24cfb301d2
Paul Wilkins [Fri, 17 Nov 2017 10:34:56 +0000 (10:34 +0000)]
Merge "Disable allow_partition_search_skip for speed 2."
Paul Wilkins [Fri, 17 Nov 2017 10:34:46 +0000 (10:34 +0000)]
Merge "Code cleanup."
Paul Wilkins [Fri, 17 Nov 2017 10:34:37 +0000 (10:34 +0000)]
Merge "Remove decay_accumulator clause from alt ref breakout."
Paul Wilkins [Fri, 17 Nov 2017 10:34:26 +0000 (10:34 +0000)]
Merge "Add clause to alt ref group breakout."
Jerome Jiang [Fri, 17 Nov 2017 00:31:16 +0000 (00:31 +0000)]
Merge "vp9: Fix mem rel for non-ref for external buffer."
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
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
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