]>
granicus.if.org Git - libvpx/log
James Zern [Tue, 13 Jun 2017 01:08:20 +0000 (18:08 -0700)]
vp8_skin_detection: add 'vp8_' prefix to public fns
BUG=webm:1438
Change-Id: I5feb31c254d02e116e624cfe702e73ba5a1f7aca
James Zern [Tue, 13 Jun 2017 00:54:21 +0000 (17:54 -0700)]
rename vp8/common/skin_detection.[hc] -> vp8_*
some build systems have trouble with duplicate basenames.
vpx_dsp/skin_detection.[hc] were added in:
658e85425 Merge skin detection code in vp8/9.
BUG=webm:1438
Change-Id: Ieaa70b40bda409ec23e6d179b47a930ac6243b05
Hui Su [Mon, 12 Jun 2017 16:38:02 +0000 (16:38 +0000)]
Merge "vp9 level targeting: more strict constraint on min_gf_interval"
Jerome Jiang [Sat, 10 Jun 2017 04:50:19 +0000 (04:50 +0000)]
Merge "Remove duplication on vp8/9_write_yuv_frame."
Marco [Sat, 10 Jun 2017 00:48:03 +0000 (17:48 -0700)]
vp9: SVC: Use prune_evenemore only for non_reference.
Set subpel prune_evenmore only for non_reference frames,
instead of all TL > 0 frames. Gain some quality back at
cost of small speed loss (~1-2%).
Change only effects SVC encoding at speed >= 7.
Change-Id: I5b9f51e51dccfd7050521a66996176b0415ca3f9
Jerome Jiang [Thu, 8 Jun 2017 23:07:02 +0000 (16:07 -0700)]
Remove duplication on vp8/9_write_yuv_frame.
Change-Id: Ib3546032a27c715bf509c0e24d26a189bc829da8
Johann Koenig [Fri, 9 Jun 2017 20:42:39 +0000 (20:42 +0000)]
Merge "idct_test: don't use std::nothrow anymore"
Johann Koenig [Fri, 9 Jun 2017 20:42:21 +0000 (20:42 +0000)]
Merge "buffer.h: allow declaring an alignment"
Johann Koenig [Fri, 9 Jun 2017 20:41:56 +0000 (20:41 +0000)]
Merge "Remove some dead code. Coverity CID
1310058 "
Johann [Thu, 8 Jun 2017 17:09:23 +0000 (10:09 -0700)]
idct_test: don't use std::nothrow anymore
But still check for NULL before calling Init()
Change-Id: I2bf2887e1064c9103d29c542d20365c0aea75d76
Johann [Tue, 6 Jun 2017 22:15:47 +0000 (15:15 -0700)]
buffer.h: allow declaring an alignment
x86 simd register operations generally prefer and may require 16 byte
alignment.
Change-Id: I73ce577a90dc66af60743c5727c36f23200950ba
Sylvestre Ledru [Fri, 9 Jun 2017 12:08:18 +0000 (14:08 +0200)]
Remove some dead code. Coverity CID
1310058
Change-Id: I1186cf1dd8cde42f5970928f43edfc852298289d
James Zern [Thu, 8 Jun 2017 23:17:49 +0000 (23:17 +0000)]
Merge "vp8_decode_frame: fix oob read on truncated key frame"
James Zern [Thu, 8 Jun 2017 03:46:13 +0000 (20:46 -0700)]
vp8_decode_frame: fix oob read on truncated key frame
the check for error correction being disabled was overriding the data
length checks. this avoids returning incorrect information (width /
height) for the decoded frame which could result in inconsistent sizes
returned in to an application causing it to read beyond the bounds of
the frame allocation.
BUG=webm:1443
BUG=b/
62458770
Change-Id: I063459674e01b57c0990cb29372e0eb9a1fbf342
Johann [Thu, 8 Jun 2017 17:20:21 +0000 (10:20 -0700)]
Revert "buffer.h: use size_t"
This reverts commit
f08581c1d010ea95b8cfae686b5c0a64b32519f9 .
type conversion warnings abound.
Change-Id: I41d4c0e7a388e1008bdbc55fefda4bbca3f89f00
Jerome Jiang [Thu, 8 Jun 2017 16:35:59 +0000 (16:35 +0000)]
Merge "Merge skin detection code in vp8/9."
Johann Koenig [Thu, 8 Jun 2017 15:19:35 +0000 (15:19 +0000)]
Merge "fdct16x16 neon optimization"
Jerome Jiang [Mon, 5 Jun 2017 18:09:05 +0000 (11:09 -0700)]
Merge skin detection code in vp8/9.
BUG=webm:1438
Change-Id: Ie3dc034c7dbb498a0b088a767b1936ddeed4df14
hui su [Wed, 7 Jun 2017 22:50:36 +0000 (15:50 -0700)]
vp9 level targeting: more strict constraint on min_gf_interval
min_gf_interval should be no less than min_altref_distance + 1,
as the encoder may produce bitstream with alt-ref distance being
min_gf_interval - 1.
BUG=b/
38450599
Change-Id: Ifb733daa643ebc668d1b23e1ce92db94b66dabe8
Johann [Thu, 25 May 2017 17:02:34 +0000 (10:02 -0700)]
fdct16x16 neon optimization
Roughly 2x speedup. Since the only change for HBD is to store(), the
improvement appears to hold there as well.
BUG=webm:1424
Change-Id: I15b813d50deb2e47b49a6b0705945de748e83c19
Marco Paniconi [Wed, 7 Jun 2017 21:12:13 +0000 (21:12 +0000)]
Merge "vp9: SVC: Enable simple_block_yrd for temporal layers."
Johann Koenig [Wed, 7 Jun 2017 19:20:15 +0000 (19:20 +0000)]
Merge changes Iade45f69,I18d90658,Ieca3f1ef
* changes:
buffer.h: add num_elements_
buffer.h: zero-init all values
buffer.h: use size_t
Marco [Wed, 7 Jun 2017 18:33:40 +0000 (11:33 -0700)]
vp9: SVC: Enable simple_block_yrd for temporal layers.
Enable simple_block_yrd for temporal enhancement layers (TL > 0).
And remove block size condiiton for SVC mode.
Only affects speed >= 7 SVC.
Speedup ~3-4%.
avgPSNR regression on RTC for (3 spatial, 3 temporal) layers: ~1%.
Change-Id: Iff4fc191623b71c69cd373e7c0823385e7ac67ed
Johann [Tue, 6 Jun 2017 20:17:07 +0000 (13:17 -0700)]
buffer.h: add num_elements_
raw_size_ was being incorrectly computed and used
Change-Id: Iade45f69964c567ffb258880f26006a96ae5a30d
Johann [Wed, 7 Jun 2017 18:27:26 +0000 (11:27 -0700)]
buffer.h: zero-init all values
Change-Id: I18d90658bcd4365d49adcadd6954090b3b399aa8
Johann [Tue, 6 Jun 2017 19:58:15 +0000 (12:58 -0700)]
buffer.h: use size_t
Change-Id: Ieca3f1ef23cd1d7b844ea3ecb054007ed280b04f
Marco [Wed, 7 Jun 2017 17:27:19 +0000 (10:27 -0700)]
vp9: SVC: Enable row-mt in sample encoder.
Change-Id: I4b51043cb3f5955efe947fe4685aed4a21adb8bd
James Zern [Tue, 6 Jun 2017 23:52:39 +0000 (23:52 +0000)]
Merge "ppc: Add vpx_sadnxmx4d_vsx for n,m = {8, 16, 32 ,64}"
Marco Paniconi [Tue, 6 Jun 2017 23:07:44 +0000 (23:07 +0000)]
Merge "vp9: SVC: Adjust some speed settings for SVC speed >= 7."
Marco [Tue, 6 Jun 2017 22:28:06 +0000 (15:28 -0700)]
vp9: SVC: Adjust some speed settings for SVC speed >= 7.
Keep the 1/4subpel for all frames, use SUBPEL_TREE_PRUNED_EVENMORE
for all temporal enhancement layer frames.
Change-Id: Ibc681acbb6fc75b7b3c57fc483fcb11d591dfc9a
Johann [Tue, 6 Jun 2017 19:48:01 +0000 (12:48 -0700)]
buffer.h: split out init
Change-Id: Idfbd2e01714ca9d00525c5aeba78678b43fb0287
Johann [Tue, 6 Jun 2017 19:05:14 +0000 (12:05 -0700)]
buffer.h: Use T for values
Change-Id: I2da4110e843b6e361028b921c24b6ca2ea9077d9
Jerome Jiang [Tue, 6 Jun 2017 17:13:34 +0000 (10:13 -0700)]
Initialize cost_list all to INT_MAX.
It is initialized to be { INT_MAX, 0, ... } in
ffe0f9b .
No effect on encoders.
Make it consistent with other initializations.
BUG=webm:1440
Change-Id: Ie2a180d93626b55914c8c4255e466a1986d2b922
James Zern [Tue, 6 Jun 2017 05:52:58 +0000 (22:52 -0700)]
vp9_mcomp,get_cost_surf_min: quiet conversion warning
visual studio will warn if a 32-bit shift is implicitly converted to 64.
in this case integer storage is enough for the result.
since:
f3a9ae5ba Fix ubsan failure in vp9_mcomp.c.
Change-Id: I7e0e199ef8d3c64e07b780c8905da8c53c1d09fc
Jerome Jiang [Tue, 6 Jun 2017 03:47:30 +0000 (03:47 +0000)]
Merge "Fix valgrind failure on uninitialized variables."
James Zern [Tue, 6 Jun 2017 02:19:41 +0000 (02:19 +0000)]
Merge "ppc: Add vpx_sad64/32/16x64/32/16_avg_vsx"
Jerome Jiang [Mon, 5 Jun 2017 18:41:02 +0000 (11:41 -0700)]
Fix valgrind failure on uninitialized variables.
BUG=webm:1440
Change-Id: I7074e42bdfa8dd25f11bbb3f2ab1b41d6f4c12e4
Jerome Jiang [Fri, 2 Jun 2017 20:50:08 +0000 (13:50 -0700)]
Fix ubsan failure in vp9_mcomp.c.
Change-Id: Iff1dea1fe9d4ea1d3fc95ea736ddf12f30e6f48d
Marco [Fri, 26 May 2017 18:36:45 +0000 (11:36 -0700)]
vp9: SVC: Force subpel search off under certain conditions.
For SVC 1 pass non-rd mode:
Force subpel seach off for SVC for non-reference frames
under motion threshold.
Add flag to svc context to indicate if the frame is not used
as a reference.
Little/no quaity loss, ~2% speedup.
Change-Id: Ic433c44b514d19d08b28f80ff05231dc943b28e9
Marco Paniconi [Thu, 1 Jun 2017 23:56:53 +0000 (23:56 +0000)]
Merge "vp9: Speed >8: Set subpel_search_method for low motion."
Marco [Thu, 1 Jun 2017 23:07:15 +0000 (16:07 -0700)]
vp9: Speed >8: Set subpel_search_method for low motion.
Speed >=8: for resolutions above CIF, and for low motion content,
set subpel_search_method to SUBPEL_TREE_PRUNED_EVENMORE.
Small speed gain (~2%) on vga clips,
RTC metrics up by ~2-3% on average.
Change-Id: Ie26ba0264589652f92dfe74308740debf94cf0cc
Jerome Jiang [Thu, 1 Jun 2017 20:46:46 +0000 (13:46 -0700)]
vp8 skin detection: Fix visual studio build failure.
Change-Id: I510b755550ebbfa2aaf9b974920d7f1c6454a845
Jerome Jiang [Wed, 31 May 2017 22:56:29 +0000 (15:56 -0700)]
Fix corruption in skin map debugging output yuv.
For both vp8 and vp9.
BUG=webm:1437
Change-Id: Ifd06f68a876ade91cc2cc27c574c4641b77cce28
Jerome Jiang [Wed, 31 May 2017 21:57:10 +0000 (14:57 -0700)]
vp8: Clean up skin detection.
Use only the average of center 2x2 pixels in vp8.
Change-Id: I2b23ff19a90827226273e0fca49e90c734eda59b
Johann Koenig [Wed, 31 May 2017 18:17:27 +0000 (18:17 +0000)]
Merge "comp_avg_pred neon: used by sub pixel avg variance"
Jerome Jiang [Wed, 31 May 2017 16:37:07 +0000 (16:37 +0000)]
Merge "Write skin map of vp8 skin detection for debug."
Linfeng Zhang [Wed, 31 May 2017 15:56:19 +0000 (15:56 +0000)]
Merge "Update vpx_highbd_idct4x4_16_add_sse2()"
Johann [Wed, 3 May 2017 21:58:52 +0000 (14:58 -0700)]
comp_avg_pred neon: used by sub pixel avg variance
BUG=webm:1423
Change-Id: I33de537f238f58f89b7a6c1c2d6e8110de4b8804
Jerome Jiang [Fri, 26 May 2017 23:20:49 +0000 (16:20 -0700)]
Write skin map of vp8 skin detection for debug.
Change-Id: Ica1b4e918aa759cd0ce65920f9d88452bbf9e3b4
Linfeng Zhang [Mon, 22 May 2017 23:04:05 +0000 (16:04 -0700)]
Update vpx_highbd_idct4x4_16_add_sse2()
BUG=webm:1412
Change-Id: I26e4b34ae9bc1ae80c24f56d740d737a95f1ab84
Johann Koenig [Tue, 30 May 2017 16:21:05 +0000 (16:21 +0000)]
Merge "comp_avg_pred: alignment"
Johann Koenig [Tue, 30 May 2017 15:58:16 +0000 (15:58 +0000)]
Merge "remove DECLARE_ALIGNED from neon code"
Johann [Tue, 30 May 2017 14:46:43 +0000 (07:46 -0700)]
comp_avg_pred: alignment
x86 requires 16 byte alignment for some vector loads/stores.
arm does not have the same requirement.
The asserts are still in avg_pred_sse2.c. This just removes them from
the common code.
Change-Id: Ic5175c607a94d2abf0b80d431c4e30c8a6f731b6
Jerome Jiang [Tue, 30 May 2017 05:47:44 +0000 (05:47 +0000)]
Merge "Fix vp8 race when build --enable-vp9-highbitdepth."
Johann [Fri, 26 May 2017 17:41:57 +0000 (10:41 -0700)]
remove DECLARE_ALIGNED from neon code
Unlike x86 neon only requires type alignment when loading into vectors.
Change-Id: I7bbbe4d51f78776e499ce137578d8c0effdbc02f
Johann Koenig [Fri, 26 May 2017 17:25:46 +0000 (17:25 +0000)]
Merge "subpel variance neon: reduce stack usage"
Johann Koenig [Fri, 26 May 2017 17:25:23 +0000 (17:25 +0000)]
Merge "Use vdup instead of vmov"
Jerome Jiang [Sat, 20 May 2017 00:07:09 +0000 (17:07 -0700)]
Fix vp8 race when build --enable-vp9-highbitdepth.
Split vp8/vp9 implementations on yv12_copy_frame_c.
Remove high-bitdepth codes from vp8_yv12_extend_frame_borders_c.
Clean up vp8 codes usage in vp9.
BUG=webm:1435
Change-Id: Ic68e79e9d71e1b20ddfc451fb8dcf2447861236d
Marco [Fri, 26 May 2017 15:43:32 +0000 (08:43 -0700)]
vp9: SVC: Fix to condiiton on using source_sad.
Fix the condition on usage of source_sad for temporal layers.
FIx allows it to be used for the case of 1 temporal layer.
Change-Id: I02b1b0ade67a7889d1b93cee66d27c0951131fc3
Marco Paniconi [Fri, 26 May 2017 05:24:05 +0000 (05:24 +0000)]
Merge "vp9: Use source_sad only on top temporal enhancement layer."
Marco Paniconi [Fri, 26 May 2017 05:23:47 +0000 (05:23 +0000)]
Merge "vp9: SVC: Enable copy partition for SVC speed >= 7."
Marco [Thu, 25 May 2017 23:29:48 +0000 (16:29 -0700)]
vp9: Use source_sad only on top temporal enhancement layer.
For 1 pass CBR SVC mode.
Change-Id: Ic026740f9d0ec5eee7c5845be9c5b15884fec48d
Jerome Jiang [Thu, 25 May 2017 20:58:20 +0000 (13:58 -0700)]
Refactor: Move vp8 skin detection to new files.
Change-Id: If760f28cbbf22beac1cc9bd1546f13831e9dd3f0
Marco [Thu, 25 May 2017 18:01:25 +0000 (11:01 -0700)]
vp9: SVC: Enable copy partition for SVC speed >= 7.
Adjust the max_copied_frame setting for temporal layers.
Keep the same setting for non-SVC at speed 8.
This change also enables copy_partiton for non-SVC at speed 7,
but with smaller value of max_copied_frame (=2).
~2% speedup for SVC speed 7, 3 layers, with little/no quality loss.
Change-Id: Ic65ac9aad764ec65a35770d263424b2393ec6780
Johann [Wed, 24 May 2017 18:52:42 +0000 (11:52 -0700)]
subpel variance neon: reduce stack usage
Unlike x86, arm does not impose additional alignment restrictions on
vector loads. For incoming values to the first pass, it uses vld1_u32()
which typically does impose a 4 byte alignment. However, as the first
pass operates on user-supplied values we must prepare for unaligned
values anyway (and have, see mem_neon.h).
But for the local temporary values there is no stride and the load will
use vld1_u8 which does not require 4 byte alignment.
There are 3 temporary structures. In the C, one is uint16_t. The arm
saturates between passes but still passes tests. If this becomes an
issue new functions will be needed.
Change-Id: I3c9d4701bfeb14b77c783d0164608e621bfecfb1
Johann [Wed, 24 May 2017 18:38:15 +0000 (11:38 -0700)]
Use vdup instead of vmov
Change-Id: Idb6248c1429b55176bb3e9f4e8365ea0ed2be62a
Johann Koenig [Wed, 24 May 2017 18:33:53 +0000 (18:33 +0000)]
Merge changes Iaab2b9a1,Idfb458d3
* changes:
sub pel avg variance neon: 4x block sizes
sub pel variance neon: 4x block sizes
Johann Koenig [Wed, 24 May 2017 18:32:01 +0000 (18:32 +0000)]
Merge changes I31fa6ef8,I228c6f29
* changes:
sub pel avg variance neon: add neon optimizations
sub pel variance neon: normalize variable names
James Zern [Wed, 24 May 2017 16:27:21 +0000 (16:27 +0000)]
Merge "partial_idct_test,InitInput: fix rollover in mult"
James Zern [Wed, 24 May 2017 13:25:44 +0000 (15:25 +0200)]
partial_idct_test,InitInput: fix rollover in mult
promote coeff to signed 64-bit to avoid exceeding integer bounds when
squaring the value
Change-Id: If77bef6bc0a6a4c39ca3013e5e2ddb426a1c6e1f
Alexandra Hájková [Wed, 24 May 2017 13:27:09 +0000 (13:27 +0000)]
ppc: Add vpx_sadnxmx4d_vsx for n,m = {8, 16, 32 ,64}
Change-Id: I547d0099e15591655eae954e3ce65fdf3b003123
Linfeng Zhang [Mon, 22 May 2017 22:37:15 +0000 (15:37 -0700)]
Update inv_txfm_sse2.h and inv_txfm_sse2.c
Extract shared code into inline functions.
Change-Id: Iee1e5a4bc6396aeed0d301163095c9b21aa66b2f
Linfeng Zhang [Mon, 22 May 2017 22:46:28 +0000 (15:46 -0700)]
Update InitInput() in test/partial_idct_test.cc
Make it work in high bit depth.
BUG=webm:1412
Change-Id: Ic5cfd410a69709f01e2924774356a108a349d273
Gregor Jasny [Tue, 23 May 2017 07:30:44 +0000 (09:30 +0200)]
Add support for Visual Studio 2017
BUG=webm:1428
Change-Id: Iba98aef1159724d106cf39b94d7b69843d76cd48
Johann [Thu, 4 May 2017 21:48:43 +0000 (14:48 -0700)]
sub pel avg variance neon: 4x block sizes
BUG=webm:1423
Change-Id: Iaab2b9a183fdb54aae5f717aba95d90dc36a9e3b
Johann [Thu, 4 May 2017 15:39:12 +0000 (08:39 -0700)]
sub pel variance neon: 4x block sizes
Add optimizations for blocks of width 4
BUG=webm:1423
Change-Id: Idfb458d36db3014d48fbfbe7f5462aa6eb249938
Johann [Wed, 3 May 2017 19:28:32 +0000 (12:28 -0700)]
sub pel avg variance neon: add neon optimizations
These are missing an optimized version of vpx_comp_avg_pred
BUG=webm:1423
Change-Id: I31fa6ef842e98f7ff3ea079ffed51ae33178e2ed
Johann [Wed, 3 May 2017 19:12:44 +0000 (12:12 -0700)]
sub pel variance neon: normalize variable names
match vpx_dsp/variance.c variable names
Change-Id: I228c6f296c183af147b079b7c8bcdf97bd09cf3a
Linfeng Zhang [Mon, 22 May 2017 20:58:17 +0000 (20:58 +0000)]
Merge "Add vpx_highbd_idct{4x4,8x8,16x16}_1_add_sse2"
Johann [Thu, 4 May 2017 16:07:28 +0000 (09:07 -0700)]
variance neon: assert overflow conditions
Change-Id: I12faca82d062eb33dc48dfeb39739b25112316cd
Linfeng Zhang [Wed, 17 May 2017 19:37:23 +0000 (12:37 -0700)]
Add vpx_highbd_idct{4x4,8x8,16x16}_1_add_sse2
BUG=webm:1412
Change-Id: Ia338a6057d36f9ed7eaa9cbd4dfbf0c3cbdc6468
Johann [Mon, 15 May 2017 23:30:00 +0000 (16:30 -0700)]
neon variance: special case 4x
The sub pixel variance uses a temp buffer which guarantees width ==
stride. Take advantage of this with the 4x and avoid the very costly
lane loads.
Change-Id: Ia0c97eb8c29dc8dfa6e51a29dff9b75b3c6726f1
Johann Koenig [Mon, 22 May 2017 17:48:32 +0000 (17:48 +0000)]
Merge changes Ib8dd96f7,Ie9854b77
* changes:
neon variance: process 4x blocks
use memcpy for unaligned neon stores
Marco Paniconi [Mon, 22 May 2017 06:27:30 +0000 (06:27 +0000)]
Merge "vp9: Adjustments to cyclic refresh for high motion."
Marco [Mon, 22 May 2017 05:15:28 +0000 (22:15 -0700)]
vp9: Adjustments to cyclic refresh for high motion.
For aq-mode=3: refactor the condition for turning off
the refresh. Add some adjustments for high motion content.
No/little change in RTC metrics, only affects high motion case.
Change-Id: I7da8eabfb0e61db014be4562806f72ee5ef4a43b
Marco [Mon, 22 May 2017 05:12:38 +0000 (22:12 -0700)]
vp9: Speed >= 8: Modify condition for low-resoln.
No change on RTC metrics.
Change-Id: I5abc573cb56572188d900645d13ba479f55a1ea0
Johann Koenig [Fri, 19 May 2017 17:11:30 +0000 (17:11 +0000)]
Merge "neon 4 byte helper functions"
Johann Koenig [Fri, 19 May 2017 17:08:57 +0000 (17:08 +0000)]
Merge "neon fdct: 4x4 implementation"
Paul Wilkins [Fri, 19 May 2017 12:24:32 +0000 (12:24 +0000)]
Merge "Changes to modified error."
Marco [Thu, 18 May 2017 21:12:24 +0000 (14:12 -0700)]
vp9: SVC: Modify condition to allow for copy partition.
When temporal layers are used, only allow for copy partition
on the top temporal enhancement layer frames.
Change-Id: I5472abdc0f9f6c8dafa75a7a84c615e08ae22af8
Jerome Jiang [Thu, 18 May 2017 19:37:29 +0000 (19:37 +0000)]
Merge "vp9: Make copy partition work for SVC and dynamic resize."
Marco [Tue, 16 May 2017 00:14:11 +0000 (17:14 -0700)]
vp9: Make copy partition work for SVC and dynamic resize.
Only affects speed 8.
Make changes to copy partition to fix a bug in setting microblock
offset. Avg PSNR shows 0.02% gain on rtc_derf and 0.08% loss on rtc.
Change-Id: I61c3e5914dde645331344388e7437e5638acd4f3
paulwilkins [Wed, 3 Feb 2016 15:37:32 +0000 (15:37 +0000)]
Changes to modified error.
The modified error was a derivative of the "coded_error"
that was used to allocate bits between different frames on the
assumption that the allocation should be linear in terms of this
modified error. I.e. a frame with double the modified error score
should all things being equal get double the number of bits. The
code also included upper and lower caps derived from input
VBR parameters.
This patch improves the initial calculation of the clip mean error
(now called "mean_mod_score" as it is no longer a prediction error)
used as the midpoint for the rate distribution function and normalizes
the output "modified scores" scores such that 1.0 indicates a frame
in the middle of the distribution. The VBR upper and lower caps are
then applied directly to a frame's normalized score.
This refactoring is intended to make it easier to drop in alternative
distribution functions or to base the rate allocation on a corpus wide
midpoint (rather than the clip mean).
Change-Id: I4fb09de637e93566bfc4e022b2e7d04660817195
Johann [Tue, 2 May 2017 14:31:05 +0000 (07:31 -0700)]
neon variance: process 4x blocks
Continue processing sets of 16 values. Plenty of improvement for 4x8
(doubles the speed) but only about 30% for 4x4.
BUG=webm:1422
Change-Id: Ib8dd96f75d474f0348800271d11e58356b620905
Johann [Sat, 13 May 2017 01:14:27 +0000 (18:14 -0700)]
use memcpy for unaligned neon stores
Advise the compiler that the store is eventually going to a uint8_t
buffer. This helps avoid getting alignment hints which would cause the
memory access to fail.
Originally added as a workaround for clang:
https://bugs.llvm.org//show_bug.cgi?id=24421
Change-Id: Ie9854b777cfb2f4baaee66764f0e51dcb094d51e
Marco Paniconi [Wed, 17 May 2017 18:42:51 +0000 (18:42 +0000)]
Merge "vp9: Modify ChangingDropFrameThresh unittest."
Linfeng Zhang [Wed, 17 May 2017 17:53:02 +0000 (17:53 +0000)]
Merge "Update partial idct testing code"
Yaowu Xu [Wed, 17 May 2017 17:38:15 +0000 (17:38 +0000)]
Merge "Experiment. Store first pass errors as per MB values."
Marco [Wed, 17 May 2017 16:36:18 +0000 (09:36 -0700)]
vp9: Modify ChangingDropFrameThresh unittest.
Add another (lower) bitrate to the test, to cover
frame drop behavior at low bitrate range.
Change-Id: Iaad003974159daf3d2d65ef3a6575a3e72e498d6
Linfeng Zhang [Tue, 16 May 2017 23:28:18 +0000 (16:28 -0700)]
Update partial idct testing code
Add PartialIDctTest::PrintDiff() to help debugging.
In RunQuantCheck, try all combinations of +/-mask_ input for 4x4 idct.
Update PartialIDctTest::InitInput().
Change-Id: I13fd163954a4c1a3a6cfeb5e4a4d3d0e7ff901f4