summaryrefslogtreecommitdiff
path: root/vp9
AgeCommit message (Collapse)Author
2020-10-20vp9-rtc: Fix to control for disabling loopfilterMarco Paniconi
Adding unit test. Change-Id: Ic3c03fee7e9c2c224d927bb09914551422bdf816
2020-10-15Add vp9_extrc_update_encodeframe_result()angiebird
Bug: webm:1707 Change-Id: I962ffa23f03b953f7c0dfd81f49dc79d1975bbba
2020-10-15vp9_extrc_get_encodeframe_decision()angiebird
Bug: webm:1707 Change-Id: I90a327b97d7158b65767fe3fbfd5f260030e17f5
2020-10-09Call vp9_extrc_send_firstpass_stats() properlyangiebird
Change-Id: I28db5010ba647cc91b8c0aa59309d7e953cd1216
2020-10-09Add vpx_rc_frame_stats_tangiebird
Change-Id: I496ce13592f71779bb00cc8bbb601835bca8ff09
2020-10-09Add vp9_extrc_send_firstpass_stats()angiebird
Change-Id: Ia2457b416200a2b2d1558600bff90ac2746cf396
2020-10-09Add vp9_extrc_init/create/deleteangiebird
Change-Id: I9fcb9f4cc5c565794229593fadde87286fcf0ffd
2020-10-09Add callback functions for external_rate_controlangiebird
Change-Id: I20a1179a2131d2cd069dae9076aa2c18b80784f3
2020-10-02Add codec control for external rate control libangiebird
VP9E_SET_EXTERNAL_RATE_CONTROL One can assign an external library using the control flag, VP9E_SET_EXTERNAL_RATE_CONTROL. The args alongside the control flag should be of type char**. args[0]: char* points to the path of rate control library args[1]: char* points to the config of the rate control library. Change-Id: Iae47362cdfafa00614bac427884bffcf6944c583
2020-10-02Add SetEncodeConfig and DumpEncodeConfigsangiebird
Change-Id: Ie6864b1133c26021d9c4883df033ecd2969585ed
2020-10-02Add codec control to disable loopfilter for vp9Jerome Jiang
Change-Id: I6d693e84570c353d20ec314acea43363956c0590
2020-09-16vp9_ratectrl,vp9_resize_one_pass_cbr: rm redundant castsJames Zern
avg_frame_bandwidth is an int, quiets a clang-tidy warning Change-Id: I2a2822652ca6a06e9d1d6d4318f544d419d437e8
2020-08-25vp9-rtc: Add control to disable maxq on overshootMarco Paniconi
Add encoder control to disable feature to increase Q on overshoot detection, for CBR. Default (no usage of the control) means the feature is internally enabled. Add the control to the sample encoders, but keep it disabled as default (set to 0, so feature is on). Change-Id: Ia2237bc4aaea9770e5080dab20bfff9e3fd09199
2020-08-18vp9-svc: Fix to resetting RC for temporal layersMarco Paniconi
Fix to reset RC for temporal layers: the first_spatial_layer_to_encode is usually/default 0, so the logic to reset for temporal layers was not being executed. Use VPXMAX(1, ) to make sure all temporal layers will be reset (when max-q is used for overshoot). Change-Id: Iec669870c865420d01d52eab9425cd6c7714eddc
2020-08-10Avoid re-allocating fp_motion_vector_infoangiebird
Replace fp_motion_vector_info_init() by fp_motion_vector_info_reset() in first_pass_encode() Change-Id: Iadacb1ecc4f07435340399564fdd3bfd4ac702f4
2020-08-10Cosmetic changes in simple_encode.hangiebird
Change-Id: If7d2711e7f37f00629874914f7c4d2396358e39d
2020-08-10Correct the first pass motion vector scaleangiebird
Change-Id: I005a648f7f9ead9d36a39330dfbb096919affb34
2020-08-10Make target_frame_bits error margin configurable.angiebird
Change-Id: I05dd4d60741743c13951727ce6608acf4224ebec
2020-08-10Avoid division by zero for rate q_step modelangiebird
Change-Id: Ic5709b79131a3969fcb2a0eb3f53994f788b5cc9
2020-08-07Add rq_history to encode_frame_resultangiebird
Change-Id: Ic2a52dcf5e5a6d57b80d390a2c48ee498e89e7b2
2020-08-07Fix ObserveFirstPassMotionVectors()angiebird
1) Use kRefFrameTypeNone in the unit test 2) Reset mv_info in fp_motion_vector_info_init 3) Call fp_motion_vector_info_init() in first_pass_encode() 4) Set mv_info for intra frame. 5) Set mv_info with zero mv as default for inter frame 6) Remove duplicated fp_motion_vector_info in encode_frame_info Change-Id: I2f7db5cd4cf1f19db039c9ce638d17b832f45b6e
2020-08-06Make initial q_index guess at 128angiebird
This reduce the average recode times per frame from 2.81 to 2.73 when targeting 15% error for target bitrate per frame. Change-Id: I58f0be86443643ba23623cb1d522ae41897734a3
2020-08-06Correct rq_model_update when recode_count == 1angiebird
This will reduce the avg recode times per frame form 3.19 to 2.81 when targeting 15% error margin for target bitrate per frame. Change-Id: I28c9ec09a1b1318c09fe5229ccb7e51b32b9dfb9
2020-08-06Merge "Cosmetic changes for rate_ctrl experiment"Angie Chiang
2020-08-05Cosmetic changes for rate_ctrl experimentangiebird
Change-Id: I133c93c2ad4c824fc97a18de3ac2cb2aedac9013
2020-08-03L2E: Add ObserveFirstPassMotionVectorCheng Chen
Store motion vectors for each 16x16 block found in the first pass motion search. Provide an api "ObserveFirstPassMotionVector()" in SimpleEncode class, similar to "ObserveFirstPassStats()". Change-Id: Ia86386b7e4aa549f7000e7965c287380bf52e62c
2020-08-04Merge "Add recode loop logics for rate_ctrl experiment"Angie Chiang
2020-08-03Add recode loop logics for rate_ctrl experimentangiebird
Change-Id: I4de5a38e25d6b0836d90e8fcd0e56d268e5fd838
2020-07-31Assign correct values for zcoeff_blk in sub8x8 RDOHui Su
This fixes a lossless encoding bug as reported in the issue tracker. Coding performance change is neutral. BUG=webm:1700 Change-Id: I0f034b16b57e917e722709a7e9addef864b83d27
2020-07-27NULL -> nullptr in CPP filesJerome Jiang
This should clean up clangtidy warnings Change-Id: Ifb5a986121b2d0bd71b9ad39a79dd46c63bdb998
2020-07-20Merge "Build libsimple_encode.a separately"Angie Chiang
2020-07-20Add init version of EncodeFrameWithTargetFrameBits()angiebird
Will add a unit test in a followup CL. Change-Id: I6a6354f307c427e1a352be7c6421927323eb5e1b
2020-07-17Build libsimple_encode.a separatelyangiebird
BUG=webm:1689 Change-Id: Id920816315c6586cd652ba6cd1b3a76dfc1f12b7
2020-07-15Add SetEncodeSpeed() to SimpleEncodeangiebird
Change-Id: I2fcf37045a96bb101de3359e2e69dcc266c1dc10
2020-07-09Cap target bitrate to raw rate internallyJerome Jiang
BUG=webm:1685 Change-Id: Ida72fe854fadb19c3745724e74b67d88087eb83c
2020-07-06vp9: Update last_q for dropped framesMarco Paniconi
last_q is used in resize logic, should always be last Q selected for previous frame, encoded or dropped. Change-Id: Ie9019ccf5a9e3acc8456a2e70cc2aa8d1c90236e
2020-07-06vp9: Fix to use last_q for resize checkMarco Paniconi
For temporal layers resize is only checked on the base/TL0 frames. So rc->last_q should be used, which because rc is in the layer context, rc->last_q will correspond to the qindex on last TL0 frame. In the previous code cm->base_qindex was used, which would correspond to qindex on last encoded frame, which is not TL0 when temporal_layers > 1. Change-Id: Iaf86f7156d2d48ae99a1b34ad576d453d490e746
2020-07-01vp9-svc: Fix the bitrate control for spatial svcSreerenj Balachandran
Make sure to initialize the layer context for spatial-svc which has a single temporal layer. Change-Id: I026ecec483555658e09d6d8893e56ab62ee6914b
2020-06-26vp9-svc: Fix to setting frame size for dynamic resizeMarco Paniconi
For svc with dynamic resize (only for single_layer_svc mode), add flag to indicate resized width/height has already been set, otherwise on the resized/trigger frame (resize_pending=1), the wrong resolution may be set if oxcf->width/height is different than layer width/height in single_layer_svc mode. Change-Id: I24403ee93fc96b830a9bf7c66d763a48762cdcb4
2020-06-25vp9-svc: Allow scale_references for single layer svcMarco Paniconi
This is needed to allow for newmv search in nonrd_pickmode for resize/scaled frame, and for int_pro_motion_estimation on resized/scaled frame. Change-Id: I5e2fdbc4706a10813c1b00f6194e2442f648905a
2020-06-18vp9-rtc: Fix to resetting drop_spatial_layerMarco Paniconi
The reset happens on the base spatial layer, before encoding. But it should be reset on the first_spatial_layer_to_encode, which may not be 0. Change-Id: I38ef686b4459ca7433062adbfe32ef2134e1ad60
2020-06-18vp9-rtc: Fixes to resizer for real-timeMarco Paniconi
Reduce the time before sampling begins (after key) and reduce averaging window, to make resize act faster. Reset RC paramaters for temporal layers on resize. Add per-frame-bandwidth thresholds to force downsize for extreme case, for HD input. Change-Id: I8e08580b2216a2e6981502552025370703cd206c
2020-06-16vp9-svc: Add svc test for denoiser and dynamic resizeMarco Paniconi
This catches the assert/crash fixed in 5174eb5. Also fix to only check for dynamic resize in SVC mode for base temporal layer. Change-Id: Ie6eb7d233cc43eafb1b78cec4aeb94fb4d7fe11a
2020-06-15vp9-svc: Fix to dynamic resize for svc denoisingMarco Paniconi
Fix the logic to allow denoiser reset on resize for SVC mode, as dynamic resize is allowed for SVC under single_layer mode. Change-Id: I7776c68dadff2ccbce9b0b4a7f0d12624c2ccf90
2020-06-11Let SetExternalGroupOfPicturesMap use c-style arrangiebird
Change-Id: Ic92ce5a3cc5bb74120eb32fc6219e43b1b861f14
2020-06-08Fix assertion error in simple_encode.ccangiebird
Change-Id: I271d11cc35d34d5450a8b56fabcedaf2bb7c6565
2020-06-02Merge "Add NV12 support"Jerome Jiang
2020-06-02Add NV12 supportJerome Jiang
Change-Id: Ia2a8221a156e0882079c5a252f59bc84d8f516b1
2020-05-28Add extra check / unit test to SetExternalGroupOfPicturesMap()angiebird
Let SetExternalGroupOfPicturesMap() modify the gop_map_ to satisfy the following constraints. 1) Each key frame position should be at the start of a gop. 2) The last gop should not use an alt ref. Add unit test for SetExternalGroupOfPicturesMap() Change-Id: Iee9bd238ad0fc5c2ccbf2fbd065a280c854cd718
2020-05-26Add functions to compute/observe key frame mapangiebird
Change-Id: I2fc0efb2ac35e64af3350bddaa802a206d1aa13c