summaryrefslogtreecommitdiff
path: root/vp9/common
AgeCommit message (Collapse)Author
2022-09-23quantize: increase iscan by 1Johann
All of the assembly adds 1 to iscan to convert from a 0 based array to the EOB value. Add 1 to all iscan values and remove the extra instructions from the assembly. Change-Id: I219dd7f2bd10533ab24b206289565703176dc5e9
2022-09-12CHECK_MEM_ERROR: add an assert for a valid jmp targetJames Zern
callers of CHECK_MEM_ERROR() expect failures to not return tested with: configure --enable-debug --enable-vp9-postproc --enable-postproc \ --enable-multi-res-encoding --enable-vp9-temporal-denoising \ --enable-error-concealment --enable-internal-stats has unrelated assertion failures currently Change-Id: Ic12073b1ae80a6f434f14d24f652e64d30f63eea
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-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-03VPX: Add vp9_highbd_quantize_fp_32x32_avx2().Scott LaVarnway
~4x faster than vp9_highbd_quantize_fp_32x32_c() for full calculations. Bug: b/237714063 Change-Id: Iff2182b8e7b1ac79811e33080d1f6cac6679382d
2022-08-03VPX: Add vp9_highbd_quantize_fp_avx2().Scott LaVarnway
Up to 5.37x faster than vp9_highbd_quantize_fp_c() for full calculations. ~1.6% overall encoder improvement for the test clip used. Bug: b/237714063 Change-Id: I584fd1f60a3e02f1ded092de98970725fc66c5b8
2022-08-02Merge "VPX: Add vp9_quantize_fp_32x32_avx2()." into mainScott LaVarnway
2022-08-01VPX: Add vp9_quantize_fp_32x32_avx2().Scott LaVarnway
Up to 1.80x faster than vp9_quantize_fp_32x32_ssse3() for full calculations. Bug: b/237714063 Change-Id: Ic4ae4724fce7ac85c7a089535b16a999e02f0a10
2022-07-27vp9_filter_block_plane_non420: fix implicit conversion warningsJames Zern
w/clang -fsanitize=integer fixes warnings of the form: implicit conversion from type 'int' of value -2 (32-bit, signed) to type 'unsigned int' changed the value to 4294967294 (32-bit, unsigned) Bug: b/229626362 Change-Id: Id7e13b3d494ccd1a2351db8fab6fdb6a9a771d51
2022-07-11Merge "Revert "Revert "[NEON] Optimize vp9_diamond_search_sad() for NEON""" ↵James Zern
into main
2022-07-08Revert "Revert "[NEON] Optimize vp9_diamond_search_sad() for NEON""Konstantinos Margaritis
This reverts commit 9f1329f8ac88ea5d7c6ae5d6a57221c36cf85ac8 and fixes a dumb mistake in evaluation of vfcmv. Used vdupq_n_s16, instead of vdupq_n_s32. Change-Id: Ie236c878c166405c49bc0f93f6d63a6715534a0a
2022-07-06Revert "Fix bug with smaller width bigger size"James Zern
This reverts commit 5b530fc962bcb8a51bbf03f5fbc2912f21b86e70. This fixes memory related fuzzer failures in the decoder. Bug: webm:1642 Bug: oss-fuzz:48609 Bug: oss-fuzz:48629 Bug: oss-fuzz:48632 Bug: oss-fuzz:48638 Bug: oss-fuzz:48639 Bug: oss-fuzz:48651 Bug: oss-fuzz:48657 Bug: oss-fuzz:48659 Bug: oss-fuzz:48660 Bug: oss-fuzz:48661 Bug: oss-fuzz:48680 Bug: oss-fuzz:48686 Bug: oss-fuzz:48697 Bug: oss-fuzz:48706 Bug: oss-fuzz:48712 Bug: oss-fuzz:48717 Bug: oss-fuzz:48728 Bug: oss-fuzz:48732 Bug: oss-fuzz:48780 Bug: oss-fuzz:48781 Bug: oss-fuzz:48782 Bug: oss-fuzz:48785 Change-Id: I67a8539a3083f00eec1164fef5c6a8bc209f91fc
2022-06-30Fix bug with smaller width bigger sizeJerome Jiang
Bug: webm:1642 Change-Id: I831b7701495eebeeff6bdc0b570f737bb6d536c6
2022-05-26Revert "[NEON] Optimize vp9_diamond_search_sad() for NEON"Jerome Jiang
This reverts commit 258affdeab68ed59e181368baa46e2f1d077b0ab. Reason for revert: Not bitexact with C version Original change's description: > [NEON] Optimize vp9_diamond_search_sad() for NEON > > About 50% improvement in comparison to the C function. > I have followed the AVX version with some simplifications. > > Change-Id: I72ddbdb2fbc5ed8a7f0210703fe05523a37db1c9 Change-Id: I5c210b3dfe1f6dec525da857dd8c83946be566fc
2022-05-07[NEON] Optimize vp9_diamond_search_sad() for NEONKonstantinos Margaritis
About 50% improvement in comparison to the C function. I have followed the AVX version with some simplifications. Change-Id: I72ddbdb2fbc5ed8a7f0210703fe05523a37db1c9
2022-04-26vp9: check postproc_state.limits allocsJames Zern
Change-Id: I9d5df96580074375e4847d2e2f60a6a6d56eeea5
2022-04-18vp9_alloc_internal_frame_buffers: fix num buffers assignmentJames Zern
avoid setting num_internal_frame_buffers until the allocation is checked, avoiding an invalid access in vp9_free_internal_frame_buffers() Change-Id: I28a544a2553d62a6b5cb7c45bf10591caa4ebab6
2022-04-18vp9_alloccommon: add missing pointer checksJames Zern
in vp9_free_ref_frame_buffers() and vp9_free_context_buffers(); pool and free_mi may be NULL due to earlier allocation failures Change-Id: I3bd26ea29b3aea6c58f33d5b7f5a280eb6250ec7
2022-03-31Merge "Optimize FHT functions for NEON" into mainJames Zern
2022-03-30Optimize FHT functions for NEONKonstantinos Margaritis
[NEON] Optimize vp9_fht4x4, vp9_fht8x8, vp9_fht16x16 for NEON Following change #3516278, the improvement for these functions is: Before: 4.10% 0.75% vpxenc vpxenc [.] vp9_fht16x16_c 2.93% 0.65% vpxenc vpxenc [.] vp9_fht8x8_c 0.93% 0.77% vpxenc vpxenc [.] vp9_fht4x4_c And after the patch: 0.69% 0.16% vpxenc vpxenc [.] vp9_fht16x16_neon 0.28% 0.28% vpxenc vpxenc [.] vp9_fht8x8_neon 0.54% 0.53% vpxenc vpxenc [.] vp9_fht4x4_neon Bug: webm:1634 Change-Id: I6748a0c4e0cfaafa3eefdd4848d0ac3aab6900e4
2022-03-30remove skip_block from quantizeJohann
Whether a block is skipped is handled by mi->skip. x->skip_block is kept exclusively to verify that the quantize functions are not called for skip blocks. Finishes the cleanup in 13eed991f Bug: libvpx:1612 Change-Id: I1598c3b682d3c5e6c57a15fa4cb5df2c65b3a58a
2022-01-31Merge "Use background segmentation mask with ROI" into mainJerome Jiang
2022-01-27Use background segmentation mask with ROIJerome Jiang
RTC sample encoder vpx_temporal_svc_encoder can take mask files as input when ROI_MAP is set to 1. Uses ROI and segmentation of vp9 to skip background encoding when source_sad is low and the correspond block in previous frame is also skipped. Change-Id: I8590e6f9a88cecfa1d7f375d4cc480f0f2af87b6
2021-12-09vp[89]_initalize_enc(): protect against multiple invocationsJames Zern
this removes the burden from callers; the rtcd functions are left with a mostly redundant (outside of tests) once() as top-level functions should ensure their constraints are met Change-Id: I5bdbcfa4671c6a1492cfe9c7d886c361c26caaa9
2021-12-02clear -Wextra-semi/-Wextra-semi-stmt warningsJames Zern
Bug: chromium:1257449 Change-Id: Ia9aafccc09b611521d4a7aedfe3723393a840c62
2020-10-20Add ref frame info to vpx_rc_encodeframe_info_tAngie Chiang
Bug: webm:1707 Change-Id: I2ff9e54a9c8ae535628c1c471a2d078652f49a31
2020-10-15vp9_extrc_get_encodeframe_decision()angiebird
Bug: webm:1707 Change-Id: I90a327b97d7158b65767fe3fbfd5f260030e17f5
2020-04-13simplify x86_abi_support.asm symbol declarationJohann
Define LIBVPX_{ELF,MACHO} to simplify blocks. Create new globalsym macro and include logic for PRIVATE. BUG=webm:1679 Change-Id: I303ba1492a2813f685de51155ccef7e4831e1881
2020-04-01x86_abi_support: use correct hidden syntaxJohann
Chromium needs :function hidden and the space between the symbol and the colon removed, at least for nasm. This matches x86inc.asm. BUG=webm:1679 Change-Id: Ie47bb75d44d3130791639cbf4e2ebe019e2d686e
2020-03-03Add unit test for ref_frame_infoangiebird
Fix several bugs to make the test pass. 1) Move update_frame_indexes() out of show_frame check. 2) Init coding_indexes[i] to -1 when key frame appears 3) Fix a bug in PostUpdateRefFrameInfo() Change-Id: Ie7c70a1d460e5b89475a1aef77416fc9a88387e1
2020-03-03Add ref_frame_info to encode_frame_resultangiebird
Change-Id: If41a1ea6ce0a2b8db3811f2fa8efcf16f97fa0bd
2020-03-02Add init/update_frame_indexes()angiebird
We will init and update current_video_frame and current_frame_coding_index in the functions. So it's easier to keep track of when the frame indexes are updated. Change-Id: Id6ba46643f8923348bb4f81c5dd9ace553244057
2019-12-02Merge "Fix mutex free in multi-thread lpf"James Zern
2019-11-27Fix mutex free in multi-thread lpfVenkatarama NG. Avadhani
The mutex lf_mutex will now be allocated and destroyed, making it easier to verify if it has been inited before destruction. BUG=webm:1662 Change-Id: I8169bea9e117bd615d68b8d02da98aeab570b53f
2019-10-29Add vp9_get_encoder_config / vp9_get_frame_infoangiebird
Change-Id: Id5c8b2d69a36d218ec04cd504868ce0efebf6b69
2019-10-10Add FRAME_INFO into VP9_COMPangiebird
Change-Id: Ibc804f2420113010013c04dc005b02dfebdfda8a
2019-10-03vp9/common/vp9_reconinter: fix int sanitizer warningsHien Ho
Unit Test: VP9/InvalidFileTest implicit conversion from type 'int' of value -65536 (32-bit, signed) to type 'int16_t' (aka 'short') changed the value to 0 (16-bit, signed) BUG=webm:1615 BUG=webm:1645 Change-Id: I4ce0c6abf8b5bf43ee43e958ad75d9fa28b23eee
2019-08-27Add MACRO MAX_INTER_REF_FRAMESAngie Chiang
Use MAX_INTER_REF_FRAMES wheneve it's suitable Change-Id: I0fad94371a6600099313685cbe38faebb44178c4
2019-07-24Merge "Add vp9_non_greedy_mv.c/h"Angie Chiang
2019-07-18Add vp9_non_greedy_mv.c/hAngie Chiang
Move vp9_nb_mvs_inconsistency to vp9_non_greedy_mv.c This is to facilitate following SIMD optimizations. Change-Id: I8eb8f820368928e0c4fb287e557cddf0bd2c763e
2019-07-18Remove unused fb_cb related fields from VP9_COMMONWan-Teh Chang
Remove the cb_priv, get_fb_cb, release_fb_cb, and int_frame_buffers fields from the VP9_COMMON struct. They are not being used. Change-Id: I235194aa8b315cd8ec9405bbba5feb3bee69f7e0
2019-07-09vp9: Use mb_rows/cols from VP9_COMMON in postproc.Jerome Jiang
When frame height is not divisible by 16, the calculation of mb_rows in postproc was wrong. Change-Id: I69d108f1b8facdd5650b5b7928a0033b268530d2
2019-05-06Add mismatch_debug toolAngie Chiang
Change-Id: I045b4cf625d428109688303ced5433d824df2790
2019-04-16Revert "Refactor tile boundary condition for intra prediction"James Zern
This reverts commit 14208ab41e114f5779d106ae54a7cc8fd9d43820. This causes test vectors failures with --row-mt=1. BUG=webm:1617 Change-Id: Icb14bbbb6f38608a73dde0370ad874c0b1b0af8a
2019-04-12loop_filter_rows_mt: unify worker count calculationJames Zern
fixes a deadlock with an odd number of threads that go from < number of tiles to >. the previous calculations were out of sync so going from e.g., 8 tiles to 2 with 3 threads would result in scheduling only 2 workers, but thread_loop_filter_rows() would expect 3. BUG=webm:1618 Change-Id: I78c967a8c3c927d929e13c949808a5ef443ebacb
2019-04-02use 64bit integer for memory offset.Jerome Jiang
Change-Id: I3d27286202e26ceecf4e551732b7d536d224d920
2019-03-29Merge "update .clang-format for version clang-7.0.1 update."James Zern
2019-03-29update .clang-format for version clang-7.0.1 update.Hien Ho
added files that are affected by clang-format version 7. BUG=b/120815481 Change-Id: I40662ce962e4f4b1fcdf183b700f85cc5c0f9f82
2019-03-28Revert "Wrap macro definition in do-while(0)"Jerome Jiang
This reverts commit aa04b6f9a7475e9d9457dfc5bf441faf15efc466. It caused big regression on webrtc VP8 tests. Change-Id: I937e769d133abeca62ba063e59a58b5c461f5b5e
2019-03-25Remove deprecated code for vp9_fdct8x8_quant()Jingning Han
Change-Id: If146bbf24f446f71be9147402e6d30533eee99d1