Johann Koenig [Mon, 19 Sep 2016 22:49:22 +0000 (22:49 +0000)]
Merge "Remove -fno-strict-aliasing flag"
Johann [Sat, 27 Aug 2016 01:13:07 +0000 (18:13 -0700)]
Remove -fno-strict-aliasing flag
The referenced bug was fixed by saving neon registers. That this had any
effect was coincidental.
Both chromium and Android build with clang and neither uses this flag.
Change-Id: I470247d6fd9226fc207b42a187105581a94badc3
Alex Converse [Mon, 19 Sep 2016 17:04:47 +0000 (10:04 -0700)]
Zero the whole rd_counts struct rather than the each member
Change-Id: I495aa9cec2b2b8f1ae69bdab8b3feeca76358472
James Zern [Sat, 17 Sep 2016 18:00:31 +0000 (11:00 -0700)]
loopfilter_mb_neon: remove unused load_8x8()
quiets a -Wunused-function warning for arm targets
Change-Id: I293a7e3d3d7d61d6af2fbedad5e8c25126c418b6
Linfeng Zhang [Sat, 17 Sep 2016 00:33:30 +0000 (00:33 +0000)]
Merge "Refactor lpf (size 16) NEON intrinsics optimization"
James Zern [Fri, 16 Sep 2016 17:30:44 +0000 (17:30 +0000)]
Merge "vpx_codec_control: return incapable for unmatched control"
Linfeng Zhang [Thu, 15 Sep 2016 23:49:47 +0000 (16:49 -0700)]
Refactor lpf (size 16) NEON intrinsics optimization
Extract shared code so later lpf size 4 and 8 functions can reuse.
Change-Id: Ibb43ef1fd8651bd2e32fcc4c56cf6fa7ca237401
James Zern [Fri, 16 Sep 2016 03:40:21 +0000 (20:40 -0700)]
vpx_subpixel_8t_intrin_avx2: tolerate unversioned clang
assume __clang_major__==0 has the latest version of
_mm256_broadcastsi128_si256. fixes builds with custom clang toolchains.
BUG=b/
30970831
Change-Id: I90becd56278e4716bd46e2ba9d910af977e8dfa6
James Zern [Fri, 16 Sep 2016 07:11:33 +0000 (07:11 +0000)]
Merge changes from topic 'clang-format'
* changes:
apply clang-format
.clang-format: update to 3.8.1
James Zern [Fri, 16 Sep 2016 06:13:41 +0000 (06:13 +0000)]
Merge "Revert "Restore vp8_sixtap_predict4x4_neon""
Johann Koenig [Fri, 16 Sep 2016 06:12:49 +0000 (06:12 +0000)]
Revert "Restore vp8_sixtap_predict4x4_neon"
This reverts commit
d9dce2f48eed1368a44c368fa87a506bd89ffec5.
Appears to be failing the SixtapPredict tests in some configurations and possibly test vectors as well.
Change-Id: Ica6aa83ebac47d0a76e451846e7da67b1c17a7d7
Johann Koenig [Fri, 16 Sep 2016 05:33:50 +0000 (05:33 +0000)]
Merge "Restore vp8_bilinear_predict4x4_neon"
Johann Koenig [Fri, 16 Sep 2016 04:41:22 +0000 (04:41 +0000)]
Merge "zero structures completely"
Johann [Fri, 2 Sep 2016 22:21:35 +0000 (15:21 -0700)]
Restore vp8_bilinear_predict4x4_neon
This function was removed when clang started introducing alignment hints
which caused the 32 bit vld1_lane_u32/vst1_lane_u32 to fail:
https://llvm.org/bugs/show_bug.cgi?id=24421
The load has been rendered safe with an implementation ~indiscernible
performance-wise that uses _u8 and over-reads just a touch.
It is still ~5x faster than C in the unaligned case and doing both
filters.
BUG=webm:892
BUG=webm:1273
Change-Id: Icf7167189391b46202f47233bb585c24c42bcc36
Johann Koenig [Fri, 16 Sep 2016 04:12:07 +0000 (04:12 +0000)]
Merge "Restore vp8_sixtap_predict4x4_neon"
Johann [Fri, 16 Sep 2016 00:44:24 +0000 (17:44 -0700)]
zero structures completely
Use vp[89]_zero when possible.
Expand the {} set when neither is available or nearby.
Change-Id: Ifc1f46f60100916cd798bf7be3a10f09321c99bd
Johann [Thu, 15 Sep 2016 22:59:42 +0000 (15:59 -0700)]
vp8 postproc: expand CONFIG_POSTPROC guard
postproc.c is overloaded and used for both postproc and internal stats.
If only --enable-internal-stats is specified there are issues with
non-existent struct members and unused functions.
Change-Id: I82367f1ffce659c3918c9f964dbce94a716fbb89
Johann [Tue, 13 Sep 2016 21:22:26 +0000 (14:22 -0700)]
altref test: comment out 'pass'
All the other test which do not use 'pass' (which appears to be almost
all of them) do this.
Cleans -Wextra/-Wunused-parameter:
unused parameter ‘pass’
Change-Id: I1ff3acf3f3d1e831f94dcb00ea36337afe0aefe0
Johann Koenig [Thu, 15 Sep 2016 23:46:56 +0000 (23:46 +0000)]
Merge "vp9 frame parallel test: Initialize cfg differently"
Marco [Thu, 15 Sep 2016 22:14:46 +0000 (15:14 -0700)]
vp9: Small code cleanup.
Remove the experiment LIMIT_QP_ONEPASS_VBR_LAG, as its
not currently used and no plan to use in near future.
Change-Id: Ib069f8d7225195be04b765d0ab477510dfba6a3b
clang-format [Thu, 15 Sep 2016 22:07:46 +0000 (15:07 -0700)]
apply clang-format
Change-Id: I501597b7c1e0f0c7ae2aea3ee8073f0a641b3487
James Zern [Thu, 8 Sep 2016 03:56:01 +0000 (20:56 -0700)]
.clang-format: update to 3.8.1
based on --style=Google with the following differences:
3a4
> # Generated with clang-format 3.8.1
13c14
< AllowShortCaseLabelsOnASingleLine: false
---
> AllowShortCaseLabelsOnASingleLine: true
41c42
< ConstructorInitializerAllOnOneLineOrOnePerLine: true
---
> ConstructorInitializerAllOnOneLineOrOnePerLine: false
44,45c45,46
< Cpp11BracedListStyle: true
< DerivePointerAlignment: true
---
> Cpp11BracedListStyle: false
> DerivePointerAlignment: false
73c74
< PointerAlignment: Left
---
> PointerAlignment: Right
75c76
< SortIncludes: true
---
> SortIncludes: false
SortIncludes will like be enabled in a future commit
Change-Id: I5c404f44081b65354e7f526411c91fbbe31ac5af
Johann [Fri, 2 Sep 2016 18:29:20 +0000 (11:29 -0700)]
Restore vp8_sixtap_predict4x4_neon
This function was removed when clang started introducing alignment hints
which caused the 32 bit vld1_lane_u32/vst1_lane_u32 to fail:
https://llvm.org/bugs/show_bug.cgi?id=24421
The load has been rendered safe with an implementation ~indiscernible
performance-wise that uses _u8 and over-reads just a touch.
The store, when unaligned, has a version that is ~25% slower but safe
when xoffset = 0 (second pass filter only). When the first pass filter
(or both) are in play, the new version is almost identical in speed.
Worst case performance (both filters, unaligned stores) is roughly 3-4x
faster than C.
BUG=webm:817
BUG=webm:1273
Change-Id: I1e490e94453e0872151fe0dafb05557463f6247d
Johann [Thu, 15 Sep 2016 19:19:25 +0000 (12:19 -0700)]
vp9 frame parallel test: Initialize cfg differently
Use the canonical 'vpx_codec_dec_cfg_t()' as opposed to 'vp9_zero()'
which just hammered everything to 0.
Change-Id: Id820efef700ad92a625797f8fd58e465b15eeca4
Johann Koenig [Thu, 15 Sep 2016 19:17:13 +0000 (19:17 +0000)]
Merge "Documentation for building unit tests for Android"
Johann [Wed, 7 Sep 2016 22:18:40 +0000 (15:18 -0700)]
Documentation for building unit tests for Android
BUG=webm:1258
Change-Id: Iea142f7b0df0e047720e8c5362464932de57d564
James Zern [Wed, 14 Sep 2016 00:41:51 +0000 (00:41 +0000)]
Merge "cosmetics,vp8: join some lines, fix table format"
Johann [Tue, 13 Sep 2016 21:20:19 +0000 (14:20 -0700)]
vp8 decoder: cast decoding_thread_count to int
For some reason allocated_decoding_thread_count is signed, but decoding_thread_count is not.
Cleans -Wextra/-Wsign-compare:
comparison between signed and unsigned integer expressions
Change-Id: Id0ada78100acff27c1c4ed7493c563d13c55cdcd
Johann [Tue, 13 Sep 2016 21:12:03 +0000 (14:12 -0700)]
vp9 frame parallel test: Initialize cfg to 0
Use vp9_zero() to set every element.
Cleans -Wextra/-Wmissing-field-initializers:
missing initializer for member ‘vpx_codec_dec_cfg::w’
missing initializer for member ‘vpx_codec_dec_cfg::h’
Change-Id: I5b41ce7d55a912e29b1d4c3e840cea80e8510fbe
Johann [Tue, 13 Sep 2016 21:05:03 +0000 (14:05 -0700)]
vp9cx_set_ref.c: remove unused 'cfg' parameter
Cleans -Wextra/-Wunused-parameter warning:
warning: unused parameter ‘cfg’
Change-Id: I84eae57a50306cb66c625bb648b0a330678818db
Johann [Tue, 13 Sep 2016 21:03:23 +0000 (14:03 -0700)]
webmenc: remove unused 'fps' parameter
Cleans -Wextra/-Wunused-parameter warning:
warning: unused parameter ‘fps’
Change-Id: Ia5f9338f11ae8d0708a87c6d4e7d7e924fc3b19b
James Zern [Sat, 10 Sep 2016 00:37:13 +0000 (17:37 -0700)]
vpx_codec_control: return incapable for unmatched control
VPX_CODEC_INCAPABLE rather than the more generic VPX_CODEC_ERROR
Change-Id: Id1ed7fb23a2910192713c6b2389c0b7320201f52
James Zern [Fri, 9 Sep 2016 23:39:34 +0000 (16:39 -0700)]
cosmetics,vp8: join some lines, fix table format
Change-Id: Idcf3b68f0e59bd74c9d332bbd4a7c1484ddb691a
Marco [Fri, 9 Sep 2016 16:03:22 +0000 (09:03 -0700)]
vp8: Set the skin model to mode 1.
This change was reverted before due to a hangouts encode-time
regression investigation. But since then this change has been
cleared of causing any noticeable regression.
This mode reduces some false detection, and uses the
same model as in vp9.
Change-Id: I9c82a748c5f601d0aca9f61ee218abfbd58c62bd
James Zern [Fri, 9 Sep 2016 03:08:18 +0000 (03:08 +0000)]
Merge "vp8: Remove TSAN warning around end of encode."
Alexander Potapenko [Tue, 6 Sep 2016 16:50:38 +0000 (18:50 +0200)]
vp8: Remove TSAN warning around end of encode.
Tsan warns when run in one pass and there is a recode
loop.
Change-Id: Ice2ecb2270f09ebd49efbd49c0e4f77d32e23c0f
James Zern [Thu, 8 Sep 2016 01:05:17 +0000 (01:05 +0000)]
Merge "vpx_dsp: added vpx_highbd_idct32x32_1_add_sse2()"
James Zern [Wed, 7 Sep 2016 17:51:33 +0000 (10:51 -0700)]
vpx_mem.c: remove unnecessary inline
these aren't overly speed critical, best to leave it to the compiler.
Change-Id: I231c14abee5b845d7b8e8454832f2feb22c6ce45
Scott LaVarnway [Wed, 7 Sep 2016 12:58:29 +0000 (05:58 -0700)]
vpx_dsp: added vpx_highbd_idct32x32_1_add_sse2()
Change-Id: I140d93aebadb0eaf6220881e61a0451450081227
Sarah Parker [Sat, 3 Sep 2016 19:15:32 +0000 (12:15 -0700)]
Fix missing write to opsnr in internal stats
Change-Id: I21c8ad0b5ed7f8d843cae45c18f5727bceb8f859
James Zern [Sat, 3 Sep 2016 01:14:54 +0000 (01:14 +0000)]
Merge "invalid_file_test: quiet -Wunused-const-variable warnings"
James Zern [Fri, 2 Sep 2016 02:52:27 +0000 (19:52 -0700)]
invalid_file_test: quiet -Wunused-const-variable warnings
present when --disable-vp8(-decoder) or --disable-vp9(-decoder) was used
Change-Id: I31ebb7a55c6f1af3c744982f56b78e80116cc845
James Zern [Fri, 2 Sep 2016 02:50:04 +0000 (19:50 -0700)]
vp8_cx_iface: quiet -Wshorten-64-to-32 warning
set_reference_and_update(): use the correct type for flags,
vpx_enc_frame_flags_t
Change-Id: I257da784537ff18686f6db8665f99af6ea6a86ba
James Zern [Fri, 2 Sep 2016 02:48:04 +0000 (19:48 -0700)]
get_cpu_count: quiet -Wshorten-64-to-32 warnings
sysconf returns a long; cast (unsigned) dwNumberOfProcessors to int for
good measure
Change-Id: I1f181d7bd9a060c0898db41f66a5065394afdc4e
Johann Koenig [Fri, 2 Sep 2016 01:39:17 +0000 (01:39 +0000)]
Merge changes from topic 'Wundef'
* changes:
Enable -Wundef by default
Define VP8_TEMPORAL_ALT_REF to !CONFIG_REALTIME_ONLY
Remove CONFIG_DEBUG guards from assert()
Remove unused function vpx_de_mblock
Fix -Wundef warning for OUTPUT_FPF
Fix -Wundef warning for __SANITIZE_ADDRESS__
Yaowu Xu [Thu, 1 Sep 2016 23:55:23 +0000 (23:55 +0000)]
Merge "Fix formatting in internal stats for vp8 and vp9"
Yaowu Xu [Thu, 1 Sep 2016 23:37:04 +0000 (23:37 +0000)]
Merge "Casts to remove some warnings."
Debargha Mukherjee [Thu, 1 Sep 2016 16:46:32 +0000 (16:46 +0000)]
Merge "Refactor uv tx size with lookup arrays"
Paul Wilkins [Thu, 1 Sep 2016 15:59:29 +0000 (15:59 +0000)]
Merge "Modified resize loop constraints."
paulwilkins [Thu, 1 Sep 2016 09:01:33 +0000 (10:01 +0100)]
Casts to remove some warnings.
Added casts to remove warnings:
BUG=webm:1274
In regards to the safety of these casts they are of two types:-
- Normalized bits per (16x16) MB stored in a 32 bit int (This is safe as bits
per MB even with << 9 normalization cant overflow 32 bits. Even raw 12
bits hdr source even would only be 29 bits :- (4+4+12+9) and the encoder
imposes much stricter limits than this on max bit rate.
- Cast as part of variance calculations. There is an internal cast up to 64 bit
for the Sum X Sum calculation, but after normalization dividing by the number
of points the result will always be <= the SSE value.
Change-Id: I4e700236ed83d6b2b1955e92e84c3b1978b9eaa0
Johann [Thu, 1 Sep 2016 05:17:38 +0000 (22:17 -0700)]
Enable -Wundef by default
BUG=webm:1069
Change-Id: I43728f9fd007542718a55d5fdcbc63a8d2f86682
Johann [Thu, 1 Sep 2016 05:38:27 +0000 (22:38 -0700)]
Define VP8_TEMPORAL_ALT_REF to !CONFIG_REALTIME_ONLY
Previously VP8_TEMPORAL_ALT_REF was only defined for non-realtime-only
builds. However, its value was checked with #if, not #ifdef.
Fixes -Wundef warnings.
BUG=webm:1069
Change-Id: If78d8731298f3f0d3662ffa25f973e7adaf67152
Johann [Sat, 27 Aug 2016 01:08:35 +0000 (18:08 -0700)]
Remove CONFIG_DEBUG guards from assert()
When 'NDEBUG' is set, assert() generates no code.
Change-Id: Icf61cfc1a8f6e5f0770b3626d8c73ae968df1108
Johann [Sat, 27 Aug 2016 01:06:19 +0000 (18:06 -0700)]
Remove unused function vpx_de_mblock
vpx_config.h was not included so CONFIG_POSTPROC was never defined.
Change-Id: I777de499823afa286734549a8e7f4a93e7ad97f3
Johann [Sat, 27 Aug 2016 00:53:50 +0000 (17:53 -0700)]
Fix -Wundef warning for OUTPUT_FPF
BUG=webm:1069
Change-Id: I3d13d07cf0934e6e262c8033bd77d7197d03ce21
Johann [Sat, 27 Aug 2016 00:52:47 +0000 (17:52 -0700)]
Fix -Wundef warning for __SANITIZE_ADDRESS__
BUG=webm:1069
Change-Id: Iad8811939a910a8f31cf5788220712a255ddf36a
Linfeng Zhang [Wed, 31 Aug 2016 22:46:06 +0000 (22:46 +0000)]
Merge "Rename test/lpf_8_test.cc to test/lpf_test.cc"
Linfeng Zhang [Wed, 31 Aug 2016 22:14:42 +0000 (15:14 -0700)]
Rename test/lpf_8_test.cc to test/lpf_test.cc
It actually tests all sizes lpf functions.
Change-Id: Ie31798f90165e6e0c13cbac0e0ab9648ab568bce
Linfeng Zhang [Wed, 31 Aug 2016 21:58:40 +0000 (14:58 -0700)]
Update NEON transpose functions.
Unify coding style.
Change-Id: I5826f40c02c882df7353391e0c9dd6cef6bd4b97
Debargha Mukherjee [Tue, 30 Aug 2016 19:52:29 +0000 (12:52 -0700)]
Refactor uv tx size with lookup arrays
Change-Id: Ife6a3d301c5faaba89d16d188d638631083511f7
Linfeng Zhang [Wed, 31 Aug 2016 19:41:25 +0000 (19:41 +0000)]
Merge "Update vpx_lpf_vertical_16_dual_neon() intrinsics"
paulwilkins [Mon, 8 Aug 2016 14:08:21 +0000 (15:08 +0100)]
Modified resize loop constraints.
Using a tighter resize constraint on undershoot seems to help
results (especially SSIM) as significant undershoot on a frame
seems to have more of a damaging impact than overshoot.
This patch has been tuned so that in local testing using the
derf set it is encode speed neutral for speed setting 2.
Average quality result for speed 2 (psnr,ssim) were as follows:-
lowres 0.039, 0.453
midres 0.249, 0.853
hdres 0.159, 0.659
NetFlix -0.241, 0.360
Change-Id: Ie8d3a0d7d6f7ea89d9965d1821be17f8bda85062
Jim Bankoski [Tue, 30 Aug 2016 21:24:35 +0000 (14:24 -0700)]
libyuv: update to
de944ed8c74909ea6fbd743a22efe1e55e851b83
Fixes windows build issue:
==> tests::VS10_x64 is broken
LINK : warning C4742: 'kYvuI601Constants' has different alignment in 'third_party\libyuv\source\row_common.cc' and 'third_party\libyuv\source\planar_functions.cc': 32 and 2 [.build-x86_64-win64-vs10\vpxdec.vcxproj]
LINK : warning C4744: 'kYvuI601Constants' has different type in 'third_party\libyuv\source\row_common.cc' and 'third_party\libyuv\source\planar_functions.cc': '__declspec(align(32)) struct (224 bytes)' and 'struct (224 bytes)' [.build-x86_64-win64-vs10\vpxdec.vcxproj]
LINK : warning C4742: 'kYuvI601Constants' has different alignment in 'third_party\libyuv\source\row_common.cc' and 'third_party\libyuv\source\planar_functions.cc': 32 and 2 [.build-x86_64-win64-vs10\vpxdec.vcxproj]
LINK : warning C4744: 'kYuvI601Constants' has different type in 'third_party\libyuv\source\row_common.cc' and 'third_party\libyuv\source\planar_functions.cc': '__declspec(align(32)) struct (224 bytes)' and 'struct (224 bytes)' [.build-x86_64-win64-vs10\vpxdec.vcxproj]
LINK : warning C4742: 'kYvuI601Constants' has different alignment in 'third_party\libyuv\source\row_common.cc' and 'third_party\libyuv\source\planar_functions.cc': 32 and 2 [.build-x86_64-win64-vs10\vpxenc.vcxproj]
LINK : warning C4744: 'kYvuI601Constants' has different type in 'third_party\libyuv\source\row_common.cc' and 'third_party\libyuv\source\planar_functions.cc': '__declspec(align(32)) struct (224 bytes)' and 'struct (224 bytes)' [.build-x86_64-win64-vs10\vpxenc.vcxproj]
LINK : warning C4742: 'kYuvI601Constants' has different alignment in 'third_party\libyuv\source\row_common.cc' and 'third_party\libyuv\source\planar_functions.cc': 32 and 2 [.build-x86_64-win64-vs10\vpxenc.vcxproj]
LINK : warning C4744: 'kYuvI601Constants' has different type in 'third_party\libyuv\source\row_common.cc' and 'third_party\libyuv\source\planar_functions.cc': '__declspec(align(32)) struct (224 bytes)' and 'struct (224 bytes)' [.build-x86_64-win64-vs10\vpxenc.vcxproj]
LINK : error C2220: warning treated as error - no 'executable' file generated [.build-x86_64-win64-vs10\vpxdec.vcxproj]
LINK : error C2220: warning treated as error - no 'executable' file generated [.build-x86_64-win64-vs10\vpxenc.vcxproj]
Change-Id: Ic3c4fff9209f5a52ff8f8ff321548d49ba09ec06
Linfeng Zhang [Mon, 29 Aug 2016 22:20:09 +0000 (15:20 -0700)]
Update vpx_lpf_vertical_16_dual_neon() intrinsics
Process 16 samples together.
Change-Id: If6ee8e3377aa2786417f2fc411ba7d87ea8b6799
Paul Wilkins [Tue, 30 Aug 2016 16:54:39 +0000 (16:54 +0000)]
Merge "Adjust coefficient optimization and tx_domain rd speed features."
Linfeng Zhang [Mon, 29 Aug 2016 21:37:07 +0000 (21:37 +0000)]
Merge "Update vpx_lpf_horizontal_edge_16_neon() intrinsics"
Marco Paniconi [Mon, 29 Aug 2016 05:52:39 +0000 (05:52 +0000)]
Merge "vp8: Move loopfilter synchronization to end of encode_frame call."
Linfeng Zhang [Wed, 24 Aug 2016 18:13:54 +0000 (11:13 -0700)]
Update vpx_lpf_horizontal_edge_16_neon() intrinsics
Process 16 samples together.
Change-Id: I9cfbe04c9d25d8b89f63f48f519e812746db754d
James Zern [Sat, 27 Aug 2016 21:27:45 +0000 (21:27 +0000)]
Merge "vpx_mem,align_addr: use ~ to create mask"
James Zern [Sat, 27 Aug 2016 17:34:40 +0000 (10:34 -0700)]
vpx_mem,align_addr: use ~ to create mask
removes the need for an intermediate cast to int, which was missing in
the call added in:
69c5ba1 vpx_mem: Refactor code
quiets a visual studio warning:
C4146: unary minus operator applied to unsigned type, result still
unsigned
Change-Id: I76c4003416759c6c76b78f74de7c0d2ba5071216
James Zern [Sat, 27 Aug 2016 18:16:03 +0000 (11:16 -0700)]
vp9_alt_ref_aq_set_nsegments: harmonize fn signature
Change-Id: I5f232664652a8dc3a71e43b8b1fa05ddb4a84ecc
Yury Gitman [Fri, 26 Aug 2016 00:43:33 +0000 (17:43 -0700)]
Move vp9_alt_ref_aq_private.h to vp9_alt_ref_aq.c
+ add a temporary dummy element to ALT_REF_AQ to avoid a warning about
an empty struct
Change-Id: Ib6e5c39ff62ad96eb4e3686d4882228a42b3843f
James Zern [Fri, 26 Aug 2016 23:52:04 +0000 (23:52 +0000)]
Merge changes Ia81004d6,I74b80fb6,I38fcb62b,I2da9cd5d
* changes:
vpx_mem: add basic size check
vpx_mem: normalize function names
vpx_realloc correction.
vpx_mem: Refactor code
James Zern [Fri, 26 Aug 2016 23:48:08 +0000 (23:48 +0000)]
Merge changes I353da4a2,I423f2153
* changes:
vp8_decoder_create_threads: check sem/pthread returns
vp8_create_decoder_instances: add missing setjmp
Johann Koenig [Fri, 26 Aug 2016 21:28:01 +0000 (21:28 +0000)]
Merge "Remove halfpix specialization"
James Zern [Fri, 26 Aug 2016 18:47:39 +0000 (18:47 +0000)]
Merge "add_noise,vpx_setup_noise: correct 'char_dist' type"
James Bankoski [Fri, 26 Aug 2016 18:06:06 +0000 (18:06 +0000)]
Merge "libyuv: update to
c244a3e9"
Jingning Han [Fri, 26 Aug 2016 17:19:12 +0000 (17:19 +0000)]
Merge "Fix VS build warnings in vp9_alt_ref_aq files"
Paul Wilkins [Fri, 26 Aug 2016 15:46:45 +0000 (15:46 +0000)]
Merge "Add ALLOW_RECODE_FIRST speed mode."
Jingning Han [Fri, 26 Aug 2016 15:42:51 +0000 (08:42 -0700)]
Fix VS build warnings in vp9_alt_ref_aq files
Change-Id: I5b19ec00a1eb8b148026f665d217c12eb50b614a
paulwilkins [Fri, 26 Aug 2016 10:43:47 +0000 (11:43 +0100)]
Add ALLOW_RECODE_FIRST speed mode.
This patch is to address concerns that changes to allow
recodes on the first frame in each ARF group do not give a
good enough speed quality trade off for speed 2. Though the
average impact on encode speed is 1-2%, for some hard clips
it is > 5% rise. For speed 1 this is less an issue and for Speed 0
the previous patch actually improves speed.
Change-Id: Ie1bcefdbfdf846d3f4428590173f621465dffe3a
James Zern [Fri, 26 Aug 2016 07:01:42 +0000 (07:01 +0000)]
Merge "vp8: fix decoder crash with invalid leading keyframes"
Sarah Parker [Fri, 26 Aug 2016 00:25:26 +0000 (17:25 -0700)]
Fix formatting in internal stats for vp8 and vp9
This corrects a formatting error introduced in:
I1e9d548ce445d29002f0c59ebfd3957a6f15e702
where spaces were used as delimiters instead of tabs.
The corresponding fix for vp10 is in
Ica3d625d6672b3c47e0e208b45eede29b9004030.
Change-Id: Ibc4eb8fd82e6b926ba259a679dc98557cadba9b1
Marco [Thu, 25 Aug 2016 15:53:24 +0000 (08:53 -0700)]
vp8: Move loopfilter synchronization to end of encode_frame call.
Allow loopfilter to continue until encode_frame is completed.
Change-Id: I7bbccc3d409e263aab6a6ff24588d8b2a964a96e
Yury Gitman [Mon, 18 Jul 2016 22:44:40 +0000 (15:44 -0700)]
Create interface for the ALT_REF_AQ class
Current commit is just an API template for the rest of the code, and
I will add inner logic later.
Altref frames generate a lot of bitrate and at the same time
other frames refer to them a lot, so it makes sense to apply
special compensation-based adaptive quantization scheme for altref
frames. E.g., for blocks that are good predictors for the future
apply rate-control chosen quantizer while for bad predictors apply
worse one.
Change-Id: Iba3f8ec349470673b7249f6a125f6859336a47c8
Yury Gitman [Thu, 25 Aug 2016 17:49:41 +0000 (17:49 +0000)]
Merge "Add --alt-ref-aq=<int> option"
paulwilkins [Thu, 18 Aug 2016 13:15:25 +0000 (14:15 +0100)]
Adjust coefficient optimization and tx_domain rd speed features.
Previously Tx domain rd was used in all cases above speed 0.
Coefficient optimization was only enabled for best and speed 0.
This patch selectively sets these features at other speed settings
based on block complexity.
For the Netflix and HD sets in particular the quality gains are
large compared to the speed hit. At speed 1 the average psnr
gain in the NF set is > 2.5% with one clip coming in at 18%
and some points almost 30%. Average gains for the lower
resolution test sets are around 1%.
The gains are biggest at low Q so some further optimization
may be possible.
Change-Id: I340376c7b2a78e5389a34b7ebdc41072808d0576
Jim Bankoski [Thu, 25 Aug 2016 13:39:38 +0000 (06:39 -0700)]
libyuv: update to
c244a3e9
Fixes color issue when scaling without breaking mingw.
BUG=https://bugs.chromium.org/p/libyuv/issues/detail?id=605
BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1252
Change-Id: I09437d93fd65964ad57113274d8c819f3eaf2e57
James Zern [Thu, 25 Aug 2016 04:46:26 +0000 (21:46 -0700)]
add_noise,vpx_setup_noise: correct 'char_dist' type
fixes SSE2/AddNoiseTest.CheckCvsAssembly/0 with -funsigned-char.
visibly broken since:
0dc69c7 postproc : fix function parameters for noise functions.
where the types diverged (char vs. int8)
but likely the return changed in:
2ca24b0 postproc - move filling of noise buffer to vpx_dsp.
when multiple implementations were merged.
Change-Id: I176ca1f170217f05ba7872b0c4de63e41949e999
Marco Paniconi [Thu, 25 Aug 2016 03:13:36 +0000 (03:13 +0000)]
Merge "Add datarate tests for encoder multi-threads (vp8 and vp9)."
James Zern [Wed, 24 Aug 2016 04:06:36 +0000 (21:06 -0700)]
vpx_mem: add basic size check
set a max allocable size to prevent overflows in 32-bit and extremely
large allocation attempts in 64-bit. this could be amended to allow size
or num parameters to be 64-bits with the correct size being used at each
call site.
BUG=webm:819
Change-Id: Ia81004d6c4279680714c4488b4f6cf287ab396a5
James Zern [Wed, 24 Aug 2016 23:50:13 +0000 (16:50 -0700)]
vpx_mem: normalize function names
use lower case + '_' rather than capital followed by camel case
Change-Id: I74b80fb660d281228e25edc8b6509455ffe2920e
Urvang Joshi [Tue, 26 Jul 2016 19:02:37 +0000 (12:02 -0700)]
vpx_realloc correction.
vpx_realloc was allocating 1 byte more than needed every time.
Fixed this, and took this opportunity to do a small refactoring.
Change-Id: I38fcb62b698894acbbab43466c1decd12f906789
(cherry picked from aom: 2a876b4 aom_realloc correction.)
Urvang Joshi [Tue, 26 Jul 2016 00:12:14 +0000 (17:12 -0700)]
vpx_mem: Refactor code
Change-Id: I2da9cd5da48ae97e770bccfd1233bcc70b484688
(cherry picked from aom: 83c95f5 aom_mem: Refactor code)
Marco [Wed, 24 Aug 2016 18:52:44 +0000 (11:52 -0700)]
Add datarate tests for encoder multi-threads (vp8 and vp9).
Change-Id: I7f9b23026aaee309095cc3f4724125ae319875af
Yury Gitman [Mon, 18 Jul 2016 19:17:58 +0000 (12:17 -0700)]
Add --alt-ref-aq=<int> option
In the future this option will activate adaptive quantization special
for altref frames. Encoder will create the adaptive quantization map
on the basis of lookahead buffers similarity which is the estimate of
the future motion compensation performance.
Change-Id: Ia0088b3babb0f9a4899c79d8d819947ba5a03df2
Jacky Chen [Wed, 24 Aug 2016 22:02:52 +0000 (22:02 +0000)]
Merge "vp9: Refactor set_low_temp_var_flag."
James Zern [Wed, 24 Aug 2016 01:46:31 +0000 (18:46 -0700)]
vp8_decoder_create_threads: check sem/pthread returns
Change-Id: I353da4a2f988ca51d48d0ca91236e8cc0bb48ff5
James Zern [Wed, 24 Aug 2016 01:29:42 +0000 (18:29 -0700)]
vp8_create_decoder_instances: add missing setjmp
vp8_decoder_create_threads() has allocations that expect one is set.
Change-Id: I423f2153a2969c88d48ba45cc9ead4a01443ce65
Johann [Tue, 23 Aug 2016 23:58:07 +0000 (16:58 -0700)]
Remove halfpix specialization
This function only exists as a shortcut to subpixel variance with
predefined offsets. xoffset = 4 for horizontal, yoffset = 4 for vertical
and both for "hv"
Removing this allows the existing optimizations for the variance
functions to be called. Instead of having only sse2 optimizations, this
gives sse2, ssse3, msa and neon.
BUG=webm:1273
Change-Id: Ieb407b423b91b87d33c4263c6a1ad5e673b0efd6