summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-08-24Merge "[NEON] Improve vpx_quantize_b* functions" into mainJames Zern
2022-08-23.clang-format: update to clang-format-11clang-format
only store the deltas from --style Google in the file and reapply using Debian clang-format version 11.1.0-6+build1 Bug: b/229626362 Change-Id: I3e18a2e7c17a90a48405b3cf1b37ebc652aba0db
2022-08-23[NEON] Improve vpx_quantize_b* functionsKonstantinos Margaritis
Slight optimization, prefetch gives a 1% improvement in 1st pass Change-Id: Iba4664964664234666406ab53893e02d481fbe61
2022-08-22vp9_ratectrl_rtc_test: initialize loopfilter_ctrl[]James Zern
this was added in: 7beafefd1 vp9: Allow for disabling loopfilter per spatial layer but the test doesn't zero initialize its svc_params_ member. fixes the use of an uninitialized value, reported by valgrind and integer sanitizer: [ RUN ] VP9/RcInterfaceSvcTest.Svc/0 ==1064682== Conditional jump or move depends on uninitialised value(s) ==1064682== at 0x1C5624: loopfilter_frame (vp9_encoder.c:3285) ==1064682== by 0x1C9B54: encode_frame_to_data_rate (vp9_encoder.c:5595) ==1064682== by 0x1CA2EE: SvcEncode (vp9_encoder.c:5789) ==1064682== by 0x1CEA01: vp9_get_compressed_data (vp9_encoder.c:7891) ==1064682== by 0x185F0E: encoder_encode (vp9_cx_iface.c:1437) ==1064682== by 0x1503BB: vpx_codec_encode (vpx_encoder.c:208) vp9/encoder/vp9_svc_layercontext.c:362:26: runtime error: implicit conversion from type 'int' of value -1 (32-bit, signed) to type 'LOOPFILTER_CONTROL' changed the value to 4294967295 (32-bit, unsigned) #0 0x558925f45377 in vp9_restore_layer_context vp9/encoder/vp9_svc_layercontext.c:362:26 #1 0x558925ef89fd in vp9_get_compressed_data vp9/encoder/vp9_encoder.c:7781:5 #2 0x558925e3ef3e in encoder_encode vp9/vp9_cx_iface.c:1437:20 Bug: b/229626362 Change-Id: I33d244be7752c68b71efa9c62ca45d6b202ec761
2022-08-22Merge "vp9.read_inter_block_mode_info: return on corruption" into mainJames Zern
2022-08-22Merge "highbd_quantize_neon.c: remove unneeded assert.h" into mainJames Zern
2022-08-22Merge "vp9,search_new_mv: descale rather than scale sse" into mainJames Zern
2022-08-22Merge changes Iabed118b,I60a384b2 into mainJames Zern
* changes: use VPX_NO_UNSIGNED_SHIFT_CHECK with entropy functions compiler_attributes.h: add VPX_NO_UNSIGNED_SHIFT_CHECK
2022-08-22[NEON] Add vpx_highbd_subtract_block functionKonstantinos Margaritis
Total gain for 12-bit encoding: * ~1% for best and rt profile Change-Id: I4039120dc570baab1ae519a5e38b1acff38d81f0
2022-08-22[NEON] Added vpx_highbd_sad* functionsKonstantinos Margaritis
Total gain for 12-bit encoding: * ~7.8% for best profile * ~10% for rt profile Change-Id: I89eda5c4372a5b628c9df84cdeb4c8486fc44789
2022-08-22highbd_quantize_neon.c: remove unneeded assert.hJames Zern
Change-Id: I041f5fb23b856a2b519669b5bf8a40d3772b4a6e
2022-08-22Merge "[NEON] Added vpx_highbd_quantize_b* functions" into mainJames Zern
2022-08-22Merge "Fix TEST_P(SADx4Test, DISABLED_Speed)" into mainScott LaVarnway
2022-08-20[NEON] Added vpx_highbd_quantize_b* functionsKonstantinos Margaritis
Total gain for 12-bit encoding: * ~4.8% for best profile * ~6.2% for rt profile Change-Id: I61e646ab7aedf06a25db1365d6d1cf7b05101c21
2022-08-20Merge "loopfilter.c: normalize flat func param type" into mainJames Zern
2022-08-19vp9.read_inter_block_mode_info: return on corruptionJames Zern
with block sizes < 8x8 previously only the inner loop was aborted. this could cause propagation of invalid motion vectors to scale_mv(). this quiets integer sanitizer warnings of the form: vp9/common/vp9_mvref_common.h:239:18: runtime error: implicit conversion from type 'int' of value 32768 (32-bit, signed) to type 'int16_t' (aka 'short') changed the value to -32768 (16-bit, signed) Bug: b/229626362 Change-Id: I58b5a425adf21542cbf4cc4dd5ab3cc5ed008264
2022-08-18use VPX_NO_UNSIGNED_SHIFT_CHECK with entropy functionsJames Zern
these shift values off the most significant bit as part of the process; vp8_regular_quantize_b_sse4_1 is included here for a special case of mask creation quiets warnings of the form: vp8/decoder/dboolhuff.h:81:11: runtime error: left shift of 2373679303235599696 by 3 places cannot be represented in type 'VP8_BD_VALUE' (aka 'unsigned long') vp8/encoder/bitstream.c:257:18: runtime error: left shift of 2147493041 by 1 places cannot be represented in type 'unsigned int' vp8/encoder/x86/quantize_sse4.c:114:18: runtime error: left shift of 4294967294 by 1 places cannot be represented in type 'unsigned int' vp9/encoder/vp9_pickmode.c:1632:41: runtime error: left shift of 4294967295 by 1 places cannot be represented in type 'unsigned int' Bug: b/229626362 Change-Id: Iabed118b2a094232783e5ad0e586596d874103ca
2022-08-18compiler_attributes.h: add VPX_NO_UNSIGNED_SHIFT_CHECKJames Zern
and use it on MD5Transform(); this behavior is well defined and is only a warning with -fsanitize=integer, not -fsanitize=undefined. quiets warnings of the form: md5_utils.c:163:3: runtime error: left shift of 143704723 by 7 places cannot be represented in type 'unsigned int' Bug: b/229626362 Change-Id: I60a384b2c2556f5ce71ad8ebce050329aba0b4e4
2022-08-18vp9,search_new_mv: descale rather than scale sseJames Zern
this changes from scaling best sse to downscaling base sse in comparisons. this quiets an integer sanitizer warning of the form: vp9/encoder/vp9_pickmode.c:1632:41: runtime error: left shift of 4294967295 by 1 places cannot be represented in type 'unsigned int' Bug: b/229626362 Change-Id: Iee2920474ba700a46177d4514ba6ef7691958069
2022-08-18update_thresh_freq_fact_row_mt: normalize param typesJames Zern
make source_variance unsigned; this matches update_thresh_freq_fact() and the type of the MACROBLOCK member. quiets integer sanitizer warnings of the form: vp9/encoder/vp9_pickmode.c:2710:58: runtime error: implicit conversion from type 'unsigned int' of value 4294967295 (32-bit, unsigned) to type 'int' changed the value to -1 (32-bit, signed) Bug: b/229626362 Change-Id: I812c6ca914507bf25cad323dea3d91a3a2ea4f1d
2022-08-18loopfilter.c: normalize flat func param typeJames Zern
flat/flat2 are stored as int8_t as returned by the filter_mask* functions. this quiets integer sanitizer warnings of the form: vpx_dsp/loopfilter.c:197:28: runtime error: implicit conversion from type 'int8_t' (aka 'signed char') of value -1 (8-bit, signed) to type 'uint8_t' (aka 'unsigned char') changed the value to 255 (8-bit, unsigned) Bug: b/229626362 Change-Id: Iacb6ae052d4cb2b6e0ebccbacf59ece9501d3b5f
2022-08-18Merge changes Icfc59932,I3d1ca618,Id3966912,I56f74981,Ia9a5dc5e, ... into mainJames Zern
* changes: vpx_encoder.h: make flag constants unsigned vp8,VP8_COMP: normalize segment_encode_breakout type webmdec,WebmInputContext: make timestamp_ns signed highbd_quantize_intrin_sse2: quiet int sanitizer warnings load_unaligned_u32: use an int w/_mm_cvtsi32_si128 variance_sse2.c: add some missing casts
2022-08-18Fix TEST_P(SADx4Test, DISABLED_Speed)Scott LaVarnway
The reference code was being timed instead of the optimized code. Change-Id: I67eb08dcda80e20eaa075dc2c91b7e8ef5c0cdfb
2022-08-17Merge "Add vp9_highbd_quantize_fp_32x32_neon()." into mainScott LaVarnway
2022-08-16vpx_encoder.h: make flag constants unsignedJames Zern
this matches the type for vpx_codec_frame_flags_t and vpx_codec_er_flags_t and quiets int sanitizer warnings of the form: implicit conversion from type 'int' of value -9 (32-bit, signed) to type 'unsigned int' changed the value to 4294967287 (32-bit, unsigned) Bug: b/229626362 Change-Id: Icfc5993250f37cedb300c7032cab28ce4bec1f86
2022-08-16vp8,VP8_COMP: normalize segment_encode_breakout typeJames Zern
use unsigned int as the API value is of this type; this quiets some integer sanitizer warnings of the form: implicit conversion from type 'unsigned int' of value 2147483648 (32-bit, unsigned) to type 'int' changed the value to -2147483648 (32-bit, signed) Bug: b/229626362 Change-Id: I3d1ca618bf1b3cd57a5dca65a3067f351c1473f8
2022-08-16webmdec,WebmInputContext: make timestamp_ns signedJames Zern
this matches the type returned from libwebm, which uses -1 as an error; quiets integer sanitizer warnings of the form: implicit conversion from type 'long long' of value -1 (64-bit, signed) to type 'uint64_t' (aka 'unsigned long') changed the value to 18446744073709551615 (64-bit, unsigned) Bug: b/229626362 Change-Id: Id3966912f802aee3c0f7852225b55f3057c3e76a
2022-08-16highbd_quantize_intrin_sse2: quiet int sanitizer warningsJames Zern
add a missing cast in ^ operations; quiets warnings of the form: implicit conversion from type 'int' of value -1 (32-bit, signed) to type 'unsigned int' changed the value to 4294967295 (32-bit, unsigned) Bug: b/229626362 Change-Id: I56f74981050b2c9d00bad20e68f1b73ce7454729
2022-08-16load_unaligned_u32: use an int w/_mm_cvtsi32_si128James Zern
this matches the type of the function parameter; quiets integer sanitizer warnings of the form: implicit conversion from type 'uint32_t' (aka 'unsigned int') of value 3215646151 (32-bit, unsigned) to type 'int' changed the value to -1079321145 (32-bit, signed) Bug: b/229626362 Change-Id: Ia9a5dc5e1f57cbf4f8f8fa457bb674ef43369d37
2022-08-16variance_sse2.c: add some missing castsJames Zern
quiets integer sanitizer warnings of the form: ../vpx_dsp/x86/variance_sse2.c:100:10: runtime error: implicit conversion from type 'unsigned int' of value 4294966272 (32-bit, unsigned) to type 'int' changed the value to -1024 (32-bit, signed) Bug: b/229626362 Change-Id: I150cc0a6a6b85143c3bf96886686fe3a40897db5
2022-08-16configure: add -Wno-pass-failed for libyuvJames Zern
with certain optimization flags or sanitizers enabled some code may fail to vectorize: third_party/libyuv/source/row_common.cc:3178:7: warning: loop not vectorized: the optimizer was unable to perform the requested transformation; the transformation might be disabled or specified as part of an unsupported transformation ordering [-Wpass-failed=transform-warning] this was observed with integer/undefined sanitizers using clang 11/13 Bug: b/229626362 Change-Id: I01595c641763c4cd4242e02f2cc5cbabfe69d03e
2022-08-16Merge "configure: add -Wc++{14,17,20}-extensions" into mainJames Zern
2022-08-16Add vp9_highbd_quantize_fp_32x32_neon().Scott LaVarnway
Up to 2.6x faster than vp9_highbd_quantize_fp_32x32_c() for full calculations. Bug: b/237714063 Change-Id: Icfeff2ad4dcd57d0ceb47fe04789710807b9cbad
2022-08-15simple_encode.cc: clear -Wextra-semi-stmt warningsJames Zern
fixes warnings of the form: ../vp9/simple_encode.cc:755:48: warning: empty expression statement has no effect; remove unnecessary ';' to silence this warning [-Wextra-semi-stmt] SET_STRUCT_VALUE(config, oxcf, ret, key_freq); Bug: b/229626362 Change-Id: I1c9b0ae9927cdd7c31da000633bcb6e2b8242cd4
2022-08-15Merge "examples/svc_encodeframe.c: rm empty {}s in switch" into mainJames Zern
2022-08-15Merge "VPX: Add vp9_highbd_quantize_fp_neon()." into mainScott LaVarnway
2022-08-15vp9_quantize_fp_32x32_neon() cleanup.Scott LaVarnway
No change in performance. Bug: b/237714063 Change-Id: If6ad5fc27de4babe0bfff3fdbb4b7fd99a0544ab
2022-08-15VPX: Add vp9_highbd_quantize_fp_neon().Scott LaVarnway
Up to 4.1x faster than vp9_highbd_quantize_fp_c() for full calculations. ~1.3% overall encoder improvement for the test clip used. Bug: b/237714063 Change-Id: I8c6466bdbcf1c398b1d8b03cab4165c1d8556b0c
2022-08-14examples/svc_encodeframe.c: rm empty {}s in switchJames Zern
these have been unnecessary since: 0e97e7049 remove spatial svc experiment Bug: b/229626362 Change-Id: I57528af4dcb9092b752161c8eaba2e2808c29c5f
2022-08-12configure: add -Wc++{14,17,20}-extensionsJames Zern
the snapshot of googletest and the test files themselves are targeting c++11 currently; these warnings are supported by recent versions of clang Change-Id: I5d36b3bd4058ba1610f0c8b27cad27aadee85939
2022-08-12Merge "VPX: vp9_quantize_fp_neon() cleanup." into mainScott LaVarnway
2022-08-11VPX: vp9_quantize_fp_neon() cleanup.Scott LaVarnway
No change in performance. Bug: b/237714063 Change-Id: I868cda7acb0de840fbc85b23f3e36c50b39c331b
2022-08-10Merge "vp9_cx_iface,encoder_encode: only calc ts when img!=NULL" into mainJames Zern
2022-08-09Merge "VPX: Fix vp9_quantize_fp_avx2() VS build error." into mainScott LaVarnway
2022-08-09VPX: Fix vp9_quantize_fp_avx2() VS build error.Scott LaVarnway
Add build fix for _mm256_extract_epi16() being undefined. Bug: b/237714063 Change-Id: I855b1828ce1b6b2b2f063fe097999481881bf074
2022-08-08Use level defined min gf intervalCheng Chen
Assume the level definition of min_gf_interval is the minimum allowed gf_interval. We take this level comformant min_gf_interval instead of +1. Change-Id: I9c7e62f210c95b356e9716579ee4c19638de8e35
2022-08-08L2E: Add target level in GOP unit testsCheng Chen
Change-Id: Icecc3031e1052bb5a94f6c5957ec5190aae990ba
2022-08-09Merge "Fix VP9 auto level" into mainCheng Chen
2022-08-08vp9_cx_iface,encoder_encode: only calc ts when img!=NULLJames Zern
avoid calculating the end timestamp when performing a flush to prevent an implicit conversion warning when applying a non-zero offset to a 0 pts used in that case: vp9/vp9_cx_iface.c:1361:50: runtime error: implicit conversion from type 'vpx_codec_pts_t' (aka 'long') of value -15 (64-bit, signed) to type 'unsigned long' changed the value to 18446744073709551601 (64-bit, unsigned) Bug: b/229626362 Change-Id: I68ba19b7d6de35cc185707dfb6b43406b7165035
2022-08-08Fix VP9 auto levelCheng Chen
The iteration index is wrong, causing the starting level to be chosen is "LEVEL_5_2", which is intended for videos of a large resolution. Change-Id: Id88836981bdcbd7494bd06193d6a433ac75a6d2e