summaryrefslogtreecommitdiff
path: root/vp9/common
AgeCommit message (Collapse)Author
2023-06-08Replace NONE with NO_REF_FRAMEJerome Jiang
NONE is a common name and it has conflicts with symbols defined in Chromium. Bug: b/286163500 Change-Id: I3d935a786f771a4d90b258fabc6fd6c2ecbf1c59
2023-06-07Fix more typos (1/n)Jerome Jiang
Dont -> Don't setings -> settings thresold -> thresh thresold -> threshold becasue -> because itterations -> iterations its a -> it's a an constant -> a constant Bug: webm:1803 Change-Id: I1e019393939ed25c59c898c88d4941ec360b026d
2023-05-08Unify implementation of CHECK_MEM_ERRORJerome Jiang
There were multiple implementations of CHECK_MEM_ERROR across the library that take different arguments and used in different places. This CL will unify them and have only one implementation that takes vpx_internal_error_info. Change-Id: I2c568639473815bc00b1fc2b72be56e5ccba1a35
2023-05-05Merge "Add AVX2 intrinsic for idct16x16 and idct32x32 functions" into mainYunqing Wang
2023-05-05Add AVX2 intrinsic for idct16x16 and idct32x32 functionsAnupam Pandey
Added AVX2 intrinsic optimization for the following functions 1. vpx_idct16x16_256_add 2. vpx_idct32x32_1024_add 3. vpx_idct32x32_135_add The module level scaling w.r.t C function (timer based) for existing (SSE2) and new AVX2 intrinsics: Scaling Function Name SSE2 AVX2 vpx_idct32x32_1024_add 3.62x 7.49x vpx_idct32x32_135_add 4.85x 9.41x vpx_idct16x16_256_add 4.82x 7.70x This is a bit-exact change. Change-Id: Id9dda933aa1f5093bb6b35ac3b8a41846afca9d2
2023-04-21vp9_highbd_iht16x16_add_neon: clear -Wshadow warningJames Zern
Bug: webm:1793 Change-Id: I4e79a4d7d41b6abf88e3e60c54ab48a92b0346d2
2023-04-11Downsample SAD computation in motion searchDeepa K G
Added a speed feature to skip every other row in SAD computation during motion search. Instruction Count BD-Rate Loss(%) cpu Resolution Reduction(%) avg.psnr ovr.psnr ssim 0 LOWRES2 0.958 0.0204 0.0095 0.0275 0 MIDRES2 1.891 -0.0636 0.0032 0.0247 0 HDRES2 2.869 0.0434 0.0345 0.0686 0 Average 1.905 0.0000 0.0157 0.0403 STATS_CHANGED Change-Id: I1a8692757ed0cbcb2259729b3ecfb0436cdf49ce
2023-04-11Avoid redundant start MV SAD calculationDeepa K G
Avoided repeated calculation of start MV SAD during full pixel motion search. Instruction Count cpu Resolution Reduction(%) 0 LOWRES2 0.162 0 MIDRES2 0.246 0 HDRES2 0.325 0 Average 0.245 Change-Id: I2b4786901f254ce32ee8ca8a3d56f1c9f112f1d4
2023-03-24vp9_scan.h: rename scan_order struct to ScanOrderJames Zern
This matches the style guide and fixes some -Wshadow warnings related to variables with the same name. Something similar was done in libaom in: 03f6fdcfca Fix warnings reported by -Wshadow: Part1b: scan_order struct and variable Bug: webm:1793 Change-Id: Ide5127886b7fd7778e6d8a983bfba6edda21ff28
2023-03-22Merge changes I8abac3c9,If678fc19 into mainJames Zern
* changes: vp9_bitstream.c: clear -Wshadow warnings vp9_setup_mask: clear -Wshadow warnings
2023-03-17vp9_setup_mask: clear -Wshadow warningsJames Zern
Bug: webm:1793 Change-Id: If678fc195ef87cc634d31fb7b24e0c844a5cb7b0
2023-03-18Reland "quantize: use scan_order instead of passing scan/iscan"Johann
This is a reland of commit 14fc40040ff30486c45111056db44ee18590a24a Parent change fixed in crrev.com/c/webm/libvpx/+/4305500 Original change's description: > quantize: use scan_order instead of passing scan/iscan > > further reduces the arguments for the 32x32. This will be applied to the base > version as well. > > Change-Id: I25a162b5248b14af53d9e20c6a7fa2a77028a6d1 Change-Id: I2a7654558eaddd68bd09336bf317b297f18559d2
2023-03-14Merge "Add Neon implementation of vp9_highbd_block_error_c" into mainJames Zern
2023-03-14Add Neon implementation of vp9_highbd_block_error_cSalome Thirot
Add Neon implementation of vp9_highbd_block_error_c as well as the corresponding tests. Change-Id: Ibe0eb077f959ced0dcd7d0d8d9d529d3b5bc1874
2023-03-14[NEON] Add temporal filter functions, 8-bit and highbdKonstantinos Margaritis
Both are around 3x faster than original C version. 8-bit gives a small 0.5% speed increase, whereas highbd gives ~2.5%. Change-Id: I71d75ddd2757b19aa201e879fd9fa8f3a25431ad
2023-03-07Add Neon implementation of vp9_block_error_cSalome Thirot
Add Neon implementation of vp9_block_error_c as well as the corresponding tests. Change-Id: I79247b5ae24f51b7b55fc5e517d5e403dc86367a
2023-03-07Optimize vp9_block_error_fp_neonSalome Thirot
Currently vp9_block_error_fp_neon is only used when CONFIG_VP9_HIGHBITDEPTH is set to false. This patch optimizes the implementation and uses tran_low_t instead of int16_t so that the function can also be used in builds where vp9_highbitdepth is enabled. Change-Id: Ibab7ec5f74b7652fa2ae5edf328f9ec587088fd3
2023-03-01Revert "quantize: use scan_order instead of passing scan/iscan"James Zern
This reverts commit 14fc40040ff30486c45111056db44ee18590a24a. This has alignment issues, causing crashes in the tests: SSSE3/VP9QuantizeTest.EOBCheck/* Change-Id: I934f9a4c3ce3db33058a65180fa645c8649c3670
2023-03-01quantize: use scan_order instead of passing scan/iscanJohann
further reduces the arguments for the 32x32. This will be applied to the base version as well. Change-Id: I25a162b5248b14af53d9e20c6a7fa2a77028a6d1
2023-02-22vp9_loop_filter_alloc: clear -Wshadow warningsJames Zern
Bug: webm:1793 Change-Id: Ia64d175aa69dc2ecde2babf64bde04f02b32795b
2023-02-22vp9_adapt_mode_probs: clear -Wshadow warningJames Zern
Bug: webm:1793 Change-Id: Ie4ea8f0a3295e6f58dc6f7d5c61d46700c539d40
2023-01-24[NEON] Add Highbd FHT 8x8/16x16 functionsKonstantinos Margaritis
In total this gives about 9% extra performance for both rt/best profiles. Furthermore, add transpose_s32 16x16 function Change-Id: Ib6f368bbb9af7f03c9ce0deba1664cef77632fe2
2022-11-11[NEON] Optimize FHT functions, add highbd FHT 4x4Konstantinos Margaritis
Refactor & optimize FHT functions further, use new butterfly functions 4x4 5% faster, 8x8 & 16x16 10% faster than previous versions. Highbd 4x4 FHT version 2.27x faster than C version for --rt. Change-Id: I3ebcd26010f6c5c067026aa9353cde46669c5d94
2022-10-17vp9 quantize: rewrite ssse3 in intrinsicsJohann
Change-Id: I3177251a5935453a23a23c39ea5f6fd41254775e
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