summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-06-07L2E: Use libvpx's default q in case of invalid external valueCheng Chen
If the external model recommends an invalid q value, we use the default q selected by libvpx's rate control strategy. We update the test so that when the external model wants to control GOP decision, it could get per frame information and just recommend an invalid q. Change-Id: I69be4b0ee0800e7ab0706d305242bb87f001b1f7
2022-06-06L2E: rename 'gop_index' to 'gop_global_index'Cheng Chen
'gop_index' has already been used in vpx_rc_encodeframe_info_t, which represents the frame index inside the current group of picture (gop). We therefore use 'gop_global_index' to represent the index of the current gop to avoid duplicate names. Change-Id: I3eb8987dd878f650649b013e0036e23d0846b5f0
2022-06-06L2E: send first pass stats before gop decisionsCheng Chen
This change let the encoder send first pass stats before gop decisioins so that external models could make use of it. Change-Id: Iafc7eddab93aa77ceaf8e1f7663a52b27d94af80
2022-06-06L2E: Use bit mask to represent control typeCheng Chen
The bit mask allows us to easily add an additional control mode which both the QP and GOP are controlled by an external model. Change-Id: I49f676f622a6e70feb2a39dc97a4e5050b7f4760
2022-06-03Merge "libs.mk,build/make/Makefile: make test targets ordinary rules" into mainJames Zern
2022-06-02libs.mk,build/make/Makefile: make test targets ordinary rulesJames Zern
this fixes a regression in make 4.2 and still present in 4.3 causing double colon rules to be serialized which breaks sharding done by the test and test-no-data-check rules. these targets only define one set of rules so ordinary rules work unlike clean. install may be another candidate, but that's left for a follow up. Change-Id: I9f074eca2ad266eeca6e31aae2e9f31eec8680e0 Tested: make 3.81, 4.1, 4.2, 4.2.1, 4.3
2022-06-03Merge ".gitignore: add android studio / vscode folders" into mainJames Zern
2022-06-02Merge changes I4cba67a5,I1dd1eca9,Ib7fbf4af into mainJames Zern
* changes: vp9_change_config: check vp9_alloc_loop_filter return vp9e_set_config: setjmp before calling vp9_change_config vp8e_set_config: setjmp before calling vp8_change_config
2022-06-02.gitignore: add android studio / vscode foldersJames Zern
Change-Id: I039a96bc33f55d9ba8bca9f9f6b69135659d2351
2022-06-02Merge "L2E: Return error when GOP model is not set" into mainCheng Chen
2022-06-01L2E: Return error when GOP model is not setCheng Chen
- Return error instead of OK when GOP model is not set. - Update descriptions for a few variables. Change-Id: I213f6b7085c487507c3935e7ce615e807f4474cc
2022-05-31vp9_change_config: check vp9_alloc_loop_filter returnJames Zern
Change-Id: I4cba67a5ab192d1cf1dbfb5c039a93a4952b071e
2022-05-31vp9e_set_config: setjmp before calling vp9_change_configJames Zern
vp9_change_config may call functions that perform allocations which expect failures detected by CHECK_MEM_ERROR to not return. Change-Id: I1dd1eca9c661ed157d51b4a6a77fc9f88236d794
2022-05-31vp8e_set_config: setjmp before calling vp8_change_configJames Zern
vp8_change_config may call vp8_alloc_compressor_data which expects failures detected by CHECK_MEM_ERROR to not return. Change-Id: Ib7fbf4af904bd9b539402bb61c8f87855eef2ad6
2022-05-31resize_test: add TODO for ResizeTest instantiation for VP9James Zern
this should match VP8 and use ONE_PASS_TEST_MODES, but currently the code will produce integer sanitizer warnings and may segfault under certain conditions Bug: webm:1767,webm:1768 Change-Id: I6482ff1862f19716fde3d57522591bc61d76a84f
2022-05-31resize_test: add TODO for test failureJames Zern
DISABLED_TestExternalResizeSmallerWidthBiggerSize was added for webm:1642, but never fixed Bug: webm:1642 Change-Id: I0fa368a44dda550241ea997068c58eaff551233c
2022-05-31libs.doxy_template: remove some obsolete variablesJames Zern
- COLS_IN_ALPHA_INDEX this was unused given ALPHABETICAL_INDEX = NO - PERL_PATH / MSCGEN_PATH these were unused quiets warnings with doxygen 1.9.1: warning: Tag 'COLS_IN_ALPHA_INDEX' at line 1110 of file 'doxyfile' has become obsolete. warning: Tag 'PERL_PATH' at line 1105 of file 'doxyfile' has become obsolete. warning: Tag 'MSCGEN_PATH' at line 1126 of file 'doxyfile' has become obsolete Change-Id: I6229311afaa3318a3f9bcaf40fafcc5ea71ae271
2022-05-31Merge "L2E: Add vp9 GOP decision helper function" into mainCheng Chen
2022-05-31Merge "L2E: Add control type for the external rate control API" into mainCheng Chen
2022-05-27test/*: normalize use of nullptrJames Zern
this is preferred over NULL in C++11 Change-Id: Ic48ddcc6dfb8975a57f6713549ad04d93db21415
2022-05-27L2E: Add vp9 GOP decision helper functionCheng Chen
Add a helper function to call the external rate control model. The helper function is placed in the function where vp9 determines GOP decisions. The helper function passes frame information, including current frame show index, coding index, etc to the external rate control model, and then receives GOP decisions. The received GOP decisions overwrites the default GOP decision, only when the external rate control model is set to be active via the codec control. The decision should satisfy a few constraints, for example, larger than min_gf_interval; smaller than max_gf_interval. Otherwise, return error. Unit tests are added to test the new functionality. Change-Id: Id129b4e1a91c844ee5c356a7801c862b1130a3d8
2022-05-27L2E: Add control type for the external rate control APICheng Chen
Two control types are defined: QP and GOP control. Now the API only supports the QP model. Change-Id: Ib3a712964b9d2282c93993ee56e0558e4795fb46
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-26Merge changes Iecb26f38,Ib3ee9b59 into mainJames Zern
* changes: GetTempOutFile(): use testing::TempDir() y4m_test: check temp file ptr
2022-05-26GetTempOutFile(): use testing::TempDir()James Zern
rather than tmpfile(). this allows for setting the path with TEST_TMPDIR and provides a valid default for android. Change-Id: Iecb26f381b6a6ec97da62cfa0b7200f427440a2f
2022-05-25loongarch: Remove redundant codeyuanhecai
Simplify architecture support code and remove redundant code to improve efficiency. Bug: webm:1755 Change-Id: I03bc251aca115b0379fe19907abd165e0876355b
2022-05-24y4m_test: check temp file ptrJames Zern
GetTempOutFile() and TempOutFile::file() may return null if the open fails Change-Id: Ib3ee9b592140d30d12aecefa7dfc5f569fa28a34
2022-05-23tools/*.py: update to python3James Zern
only lint-hunks.py is tested as part of the presubmit; the rest may need further changes as they're used. Bug: b/229626362 Change-Id: I2fd6e96deab8d892d34527e484ea65e3df86d162
2022-05-20loongarch: Modify the representation of macrosyuanhecai
Some macros have been changed to "#define do {...} While (0)", change the rest to "static INLINE ..." Bug: webm:1755 Change-Id: I445ac0c543f12df38f086b479394b111058367d0
2022-05-19loongarch: Reduce the number of instructionsyuanhecai
Replace some redundant instructions to improve the efficiency of the program. 1. txfm_macros_lsx.h 2. vpx_convolve8_avg_lsx.c 3. vpx_convolve8_horiz_lsx.c 4. vpx_convolve8_lsx.c 5. vpx_convolve8_vert_lsx.c 6. vpx_convolve_copy_lsx.c 7. vpx_convolve_lsx.h Bug: webm:1755 Change-Id: I9b7fdf6900338a26f9b1775609ad387648684f3d
2022-05-18vp9[loongarch]: Optimize vpx_quantize_b/b_32x32yuanhecai
1. vpx_quantize_b_lsx 2. vpx_quantize_b_32x32_lsx Bug: webm:1755 Change-Id: I476c8677a2c2aed7248e088e62c3777c9bed2adb
2022-05-17vp8[loongarch]: Optimize vp8_sixtap_predict4x4yuanhecai
1. vp8_sixtap_predict4x4 Bug: webm:1755 Change-Id: If7d844496ef2cfe2252f2ef12bb7cded63ad03dd
2022-05-17vp8[loongarch]: Optimize fdct8x4/diamond_search_sadyuanhecai
1. vp8_short_fdct8x4_lsx 2. vp8_diamond_search_sad_lsx 3. vpx_sad8x8_lsx Bug: webm:1755 Change-Id: Ic9df84ead2d4fc07ec58e9730d6a12ac2b2d31c1
2022-05-17vp8[loongarch]: Optimize sub_pixel_variance8x8/16x16yuanhecai
1. vpx_sub_pixel_variance8x8_lsx 1. vpx_sub_pixel_variance16x16_lsx 2. vpx_mse16x16_lsx Bug: webm:1755 Change-Id: Iaedd8393c950c13042a0597d0d47b534a2723317
2022-05-17vp8[loongarch]: Optimize vp8 encoding partial functionHao Chen
1. vp8_short_fdct4x4 2. vp8_regular_quantize_b 3. vp8_block_error 4. vp8_mbblock_error 5. vpx_subtract_block Bug: webm:1755 Change-Id: I3dbfc7e3937af74090fc53fb4c9664e6cdda29ef
2022-05-15vp9-rtc: Fix to usage of active_maps when aq_mode=0Marco Paniconi
If aq_mode=0 the segmentation feature may still be used for active_maps, so the condition active_maps.enabled needs to be added in two places regarding segmentation logic in encodeframe.c. Otherwise the active_maps would have no effect. This also resolves why the assert in bug webm:1762 was not triggered when aq_mode=0. Change-Id: Ibd68e9b5c3f81728241a168d3fb3567d6845633d
2022-05-13Merge changes I7d68c7f2,If283fc08,I3b1e0a2c into mainJames Zern
* changes: vp9[loongarch]: Optimize avg_variance64x64/variance8x8 vp9[loongarch]: Optimize fdct4x4/8x8_lsx vp9[loongarch]: Optimize vpx_hadamard_16x16/8x8
2022-05-13vp9[loongarch]: Optimize avg_variance64x64/variance8x8yuanhecai
1. vpx_variance8x8_lsx 2. vpx_sub_pixel_avg_variance64x64_lsx Bug: webm:1755 Change-Id: I7d68c7f2f5c8d27dc31cfd32298aeefb68f5d560
2022-05-13vp9[loongarch]: Optimize fdct4x4/8x8_lsxyuanhecai
1. vpx_fdct4x4_lsx 2. vpx_fdct8x8_lsx Bug: webm:1755 Change-Id: If283fc08f9bedcbecd2c4052adb210f8fe00d4f0
2022-05-13vp9[loongarch]: Optimize vpx_hadamard_16x16/8x8yuanhecai
1. vpx_hadamard_16x16_lsx 2. vpx_hadamard_8x8_lsx Bug: webm:1755 Change-Id: I3b1e0a2c026c3806b7bbbd191d0edf0e78912af7
2022-05-12Add aq mode 0 and 3 to active map testJerome Jiang
Bug: webm:1762 Change-Id: Ia827f6686e8d0cdc09f3d07d07dacaa4fcd801ab
2022-05-12vp9-rtc: Fix to interp_filter for segment skipMarco Paniconi
For segment skip feature: allow for setting the mi->interp_filter to BILINEAR, if cm->interp_filter is set BILIENAR. This can happen at speed 9 when the segment skip feature is used (e.g., active_maps) Without this fix the assert can be triggered with the active_map_test.cc for speed 9 included. Updated the test. Fixes the assert triggered in the issue: Bug: webm:1762 Change-Id: I462e0bdd966e4f3cb5b7bc746685916ac8808358
2022-05-09Merge "[NEON] Optimize vp9_diamond_search_sad() for NEON" into mainJames Zern
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-05-06add some missing realloc checksJames Zern
Change-Id: I0fd1e094085c18b1d9a32333e876c2affeb6de23
2022-05-06vp8[cd]x.h: document vpx_codec_vp[89]_[cd]x*James Zern
+ mark the _algo variables as deprecated. this quiets some doxygen warnings Bug: webm:1752 Change-Id: I53b9b796c3d8fef5c713ee4278641198f95b5864
2022-05-03vp9 svc sample: set fps from y4m fileJerome Jiang
Change-Id: I082c0409910da4cda5bf852b20ffa11ba5c2ebd6
2022-04-28examples: add missing argv_dup alloc checksJames Zern
Change-Id: Ia3080cbf50071d599c7168a20466392a963f101a
2022-04-28Merge changes I99ee0ef3,Ie087e8be,I6b19d016,I6fb7771d,I54f83733, ... into mainJames Zern
* changes: y4m_input_open: check allocs fastssim,fs_ctx_init: check alloc vp9_get_smooth_motion_field: check alloc vp9_row_mt_alloc_rd_thresh: check alloc simple_encode,init_encoder: check buffer_pool alloc VP9RateControlRTC::Create: check segmentation_map alloc vp9_speed_features.c: check allocations vp9_alloc_motion_field_info: check motion_field_array alloc vp9_enc_grp_get_next_job: check job queue alloc vp9: check postproc_state.limits allocs vp9,encode_tiles_buffer_alloc: fix allocation check
2022-04-28vp9[loongarch]: Optimize sad8x8/32x64/64x32x4dyuanhecai
1. vpx_sad8x8x4d_lsx 2. vpx_sad32x64x4d_lsx 3. vpx_sad64x32x4d_lsx Bug: webm:1755 Change-Id: I08a2b8717ec8623ffdd4451a04e68fa3a7228668