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
James Zern [Tue, 23 Aug 2016 22:51:32 +0000 (15:51 -0700)]
vp8: fix decoder crash with invalid leading keyframes
decoding the same invalid keyframe twice would result in a crash as the
second time through the decoder would be assumed to have been
initialized as there was no resolution change. in this case the
resolution was itself invalid (0x6), but vp8_peek_si() was only failing
in the case of 0x0.
invalid-vp80-00-comprehensive-018.ivf.2kf_0x6.ivf tests this case by
duplicating the first keyframe and additionally adds a valid one to
ensure decoding can resume without error.
BUG=b/
30593765
Change-Id: If0859035908b7870d67a7f3f646b5a080252eb6d
Yury Gitman [Tue, 23 Aug 2016 01:52:44 +0000 (18:52 -0700)]
Correct CHECK_MEM_ERROR macro (release builds)
The previous macro doesn't work with &cpi->common as a first argument
Change-Id: Iddf7a1f5d56d7abafd9b2b8707aa611d349e7a68
jackychen [Tue, 23 Aug 2016 21:17:28 +0000 (14:17 -0700)]
vp9: Refactor set_low_temp_var_flag.
No need to pass in force_split, since we should use sb_type in the
condition.
Change-Id: Ide27243ef46e017bbb98d676347fc566a6c828f7
Yunqing Wang [Tue, 23 Aug 2016 15:35:32 +0000 (15:35 +0000)]
Merge "Disable split mode in 4k video encoding"
Yunqing Wang [Tue, 23 Aug 2016 02:46:44 +0000 (19:46 -0700)]
Disable split mode in 4k video encoding
Disabled the split mode while encoding 4k video to speed
up the encoder.
Borg test result on 4k set:
Overall PSNR: +0.029%; SSIM: +0.009%.
Average encoder speedup at speed 2 is 2.5%.
Change-Id: I1519c658f07c3ac838affbe5aff0ed9b94f3f8f4
Yury Gitman [Mon, 22 Aug 2016 21:25:00 +0000 (14:25 -0700)]
Correct CHECK_MEM_ERROR macro
The previous macro doesn't work with &cpi->common as a first argument
Change-Id: Ic3f5c49a94cf8b17de6569811b957c963341bb58
Marco Paniconi [Mon, 22 Aug 2016 15:46:57 +0000 (15:46 +0000)]
Merge "Revert "vp8: Move loopfilter synchronization to end of encode_frame call.""
Marco Paniconi [Mon, 22 Aug 2016 15:46:20 +0000 (15:46 +0000)]
Revert "vp8: Move loopfilter synchronization to end of encode_frame call."
This reverts commit
c2fe9acceda922ca1d9f0d6185b340560b93597a.
This change break linux browser test in chromium:
https://build.chromium.org/p/chromium.webrtc/builders/Linux%20Tester
Change-Id: I226782fad480c17a99ec6c785ad93cf4ab88f0ae
Yunqing Wang [Fri, 19 Aug 2016 23:11:05 +0000 (23:11 +0000)]
Merge "Adjust speed features for 4k video encoding"
Yunqing Wang [Fri, 19 Aug 2016 16:30:32 +0000 (09:30 -0700)]
Adjust speed features for 4k video encoding
Adjusted speed 2 features to speed up 4k video encoding.
BDBR results from borg test:
PSNR: +0.313%; SSIM: +0.268%.
Average speedup: 8.5%
Change-Id: I1e2695a01fb3f3817c1df4480e184c2aed8f2eba
James Zern [Fri, 19 Aug 2016 08:28:01 +0000 (01:28 -0700)]
vp9_pickmode: quiet float conversion warnings
Change-Id: I591e4f958955b3f2edb2f95a83c54cd83c8ef075
James Zern [Thu, 18 Aug 2016 22:29:56 +0000 (15:29 -0700)]
vp9_alloc_context_buffers: clear cm->mi* on failure
this fixes a crash in vp9_dec_setup_mi() via
vp9_init_context_buffers() should decoding continue and the decoder
resyncs on a smaller frame
BUG=b/
30593752
Change-Id: I9ce8d94abe89bcd058697e8bd8599690e61bd380
Jacky Chen [Thu, 18 Aug 2016 21:21:29 +0000 (21:21 +0000)]
Merge "vp9 svc: SVC encoder speed up."
Johann Koenig [Thu, 18 Aug 2016 19:54:54 +0000 (19:54 +0000)]
Merge "Remove '-chromium' flag from ads2gas_apple.pl"
JackyChen [Fri, 5 Aug 2016 18:10:29 +0000 (11:10 -0700)]
vp9 svc: SVC encoder speed up.
Bias towards base_mv and skip 1/4 pixel motion search when using base mv.
2~3% speed up for 2 spatial layers, 3~5% speed up for 3 spatial layers.
PSNR loss:
(2 layers) 0.07dB for gips_stationary, 0.04dB for gips_motion;
(3 layers) 0.07dB for gips_stationary, 0.06dB for gips_motion.
Change-Id: I773acbda080c301cabe8cd259f842bcc5b8bc999
Marco Paniconi [Thu, 18 Aug 2016 18:03:48 +0000 (18:03 +0000)]
Merge "vp9 non-rd pickmode: Add limit on newmv-last and golden bias."
Marco Paniconi [Thu, 18 Aug 2016 02:46:31 +0000 (02:46 +0000)]
Merge "vp8: Move loopfilter synchronization to end of encode_frame call."
Marco [Mon, 15 Aug 2016 17:22:40 +0000 (10:22 -0700)]
vp9 non-rd pickmode: Add limit on newmv-last and golden bias.
Add option, for newmv-last, to limit the rd-threshold update for early exit,
under a source varianace condition.
This can improve visual quality in low texture moving areas,
like forehead/faces.
Also add bias against golden to improve the speed/fps,
will little/negligible loss in quality.
Only affects CBR mode, non-svc, non-screen-content.
Change-Id: I3a5229eee860c71499a6fd464c450b167b07534d
Johann [Wed, 17 Aug 2016 21:05:16 +0000 (14:05 -0700)]
Remove '-chromium' flag from ads2gas_apple.pl
The flag was added because Apple clang and Chromium clang disagreed
for certain versions of instructions.
qsubaddx, qaddsubx, ldrneb and ldrneh were used in armv6 assembly
which was removed in
d55724fae9cb27e070add7952394fc0427ef2061
vqshrun was used in some neon assembly but superseded by
dcbfacbb984cdcd5b5a5030103305fa3669dfece
.include was used for obj_int_extract/asm_offsets and removed in
6eec73a747f3d14d327cdc33279de96d0deb48c8
Change-Id: I32f4c9b536d0318482101c0b8e91e42b8f545f18
paulwilkins [Wed, 17 Aug 2016 09:50:18 +0000 (10:50 +0100)]
Add casting to fix warning.
Frame bits can safely be stored int but group bits
(kf or arf) use 64bit.
Change-Id: I0800f2a28070f8749110a95721c116fc56987885
paulwilkins [Wed, 17 Aug 2016 10:14:44 +0000 (11:14 +0100)]
Add {} to try and keep Jenkins happy.
Change-Id: If1ca3cf83e058317c9751d7da6caa7cd75eb6845
Marco [Tue, 16 Aug 2016 18:21:20 +0000 (11:21 -0700)]
vp8: Move loopfilter synchronization to end of encode_frame call.
Change-Id: I5bdfea7f51df1f1fa5d9c1597e96988acce6c2f2
Linfeng Zhang [Sat, 13 Aug 2016 01:14:21 +0000 (18:14 -0700)]
NEON asm of vpx_lpf_{horizontal,vertical}_8_dual_neon()
Also expose the NEON intrinsics version.
BUG=webm:1261, webm:1266.
Change-Id: I8c4ae658467dcf66ebf7a75982b2ef712dbb4535
paulwilkins [Wed, 10 Aug 2016 13:00:52 +0000 (14:00 +0100)]
Change default recode rule for good speed 0 and best.
Changes the default recode rule for Speed 0 and best quality
from ALLOW_RECODE to ALLOW_RECODE_KFARFGF.
Tested on the NF, hdres, midres and lowres test sets, this setting
when combined with patch I40cb559... now performs "as well" in
metrics terms (in fact it came out a tiny amount better overall)
but encode time is 9.6% faster (measured as the average
from 27 mid rate local encodes on clips in the derf/lowres set.
Change-Id: I8c781c0cdfa3a9929cd9406d15582fce47d6ae3b
paulwilkins [Tue, 9 Aug 2016 09:50:33 +0000 (10:50 +0100)]
Change to recode rules.
Allow recodes for the first inter frame in each arf group
even when the recode rule is set to ALLOW_RECODE_KFARFGF.
Small gains of 0.05%.
Change-Id: I40cb559d36a2bf0ebf5cf758c3f92e452b480577
Paul Wilkins [Mon, 15 Aug 2016 09:42:29 +0000 (09:42 +0000)]
Merge "Modified ARF group allocation."
Yunqing Wang [Fri, 12 Aug 2016 23:52:14 +0000 (23:52 +0000)]
Merge "Fix another motion vector out of range bug"
James Zern [Fri, 12 Aug 2016 23:02:27 +0000 (23:02 +0000)]
Merge "variance_impl_avx2: restore table layout"
James Zern [Fri, 12 Aug 2016 06:23:16 +0000 (23:23 -0700)]
variance_impl_avx2: restore table layout
disable clang-format for bilinear_filters_avx2
restores the row layout prior to:
099bd7f vpx_dsp: apply clang-format
but keeps the justification used by clang-format
Change-Id: Icf1733a37edb807e74c26b23a93963c03bd08fd7
Linfeng Zhang [Wed, 3 Aug 2016 18:42:33 +0000 (11:42 -0700)]
NEON intrinsics for 4 loopfilter functions
New NEON intrinsics functions:
vpx_lpf_horizontal_edge_8_neon()
vpx_lpf_horizontal_edge_16_neon()
vpx_lpf_vertical_16_neon()
vpx_lpf_vertical_16_dual_neon()
BUG=webm:1262, webm:1263, webm:1264, webm:1265.
Change-Id: I7a2aff2a358b22277429329adec606e08efbc8cb
Yunqing Wang [Fri, 12 Aug 2016 00:34:20 +0000 (17:34 -0700)]
Fix another motion vector out of range bug
This patch fixed a motion vector out of range bug:
vpxenc: ../libvpx/vp9/encoder/vp9_mcomp.c:69:
mv_cost: Assertion `mv->col >= -((1 << (11 + 1 + 2)) - 1) &&
mv->col < ((1 << (11 + 1 + 2)) - 1)' failed.
For blocks that returned without having full-pixel search, the original
MV limits were not restored, which caused the failure. Moved the set
MV limit function down to fix the bug.
Change-Id: Id7d798fc7214e95c6e4846c588f0233fcf1a4223
Marco [Wed, 10 Aug 2016 23:20:46 +0000 (16:20 -0700)]
vp8: Fix denoiser setting in multi-res sample encoder.
Change-Id: I9222f3b252e5ed883659f1a14cd705944ee9da07
paulwilkins [Tue, 9 Aug 2016 09:10:16 +0000 (10:10 +0100)]
Modified ARF group allocation.
Small average gains in the range 0.05 - 0.1
Change-Id: I30e85c04be615cc84726427c5057388b20a6ff60
Aleksey Vasenev [Fri, 29 Jul 2016 08:28:50 +0000 (11:28 +0300)]
Align thread entry point stack
_beginthreadex does not align the stack on 16-byte boundary as expected
by gcc.
On x86 targets, the force_align_arg_pointer attribute may be applied to
individual function definitions, generating an alternate prologue and
epilogue that realigns the run-time stack if necessary. This supports
mixing legacy codes that run with a 4-byte aligned stack with modern
codes that keep a 16-byte stack for SSE compatibility.
https://gcc.gnu.org/onlinedocs/gcc/x86-Function-Attributes.html
Change-Id: Ie4e4ab32948c238fa87054d5664189972ca6708e
Signed-off-by: Aleksey Vasenev <margtu-fivt@ya.ru>
James Zern [Wed, 10 Aug 2016 00:05:54 +0000 (00:05 +0000)]
Merge changes I1d3edbdb,I8b49fd05
* changes:
tests: use scoped_ptr for local video source vars
y4m_test: init members in the constructor
Alex Converse [Tue, 9 Aug 2016 17:12:50 +0000 (17:12 +0000)]
Merge "Refactor mv limits."