summaryrefslogtreecommitdiff
path: root/vpx
AgeCommit message (Collapse)Author
2022-06-27L2E: Distinguish fixed and active gf_intervalCheng Chen
min/max_gf_interval is fixed and can be passed from the command line. It must satisfy the level constraints. active_min/max_gf_interval might be changing based on min/max_gf_interval. It is determined per GOP. Change-Id: If456c691c97a8b4c946859c05cedd39ca7defa9c
2022-06-13Restore backward compatibilityJerome Jiang
This CL breaks the backward compatibility: 1365e7e1a vp9-svc: Remove VP9E_SET_TEMPORAL_LAYERING_MODE Forcing the value of the next element Bug: webm:1752 Change-Id: I83c774b3aa6cca25f2f14995590fb20c0a1668d4
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: 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-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-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-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-03-02vp9-svc: Remove VP9E_SET_TEMPORAL_LAYERING_MODEMarco Paniconi
The control was never implemented, no need to keep this. temporal_layering_mode is set in the config. Bug: webm:1753 Change-Id: I9a6eb50e82344605ab62775911783af82ac2d401
2022-01-28vpx/vp8[cd]x.h,cosmetics: normalize ctrls to enum orderJames Zern
Change-Id: I49bbd956b3a64008d1abe54de87d7831bc3eede6
2022-01-27Merge changes I2db20130,I4e643c83 into mainJames Zern
* changes: vp8dx.h,cosmetics: normalize #define/type order vp8dx.h: add missing define for VP9_SET_BYTE_ALIGNMENT
2022-01-26vp8dx.h,cosmetics: normalize #define/type orderJames Zern
Change-Id: I2db20130cc366bead5e576b375479917f9aee024
2022-01-26vp8dx.h: add missing define for VP9_SET_BYTE_ALIGNMENTJames Zern
Change-Id: I4e643c837bb010bd58f4fc8179045f8df18f8ae1
2022-01-26fix some include guardsJames Zern
Change-Id: I0233d352c134bdda3ca160d41b4671d1c45ab01c
2022-01-11Revert "Set unused reference frames to first ref"Jerome Jiang
This reverts commit e7f33a53cf404bbb3688af9b13375b5c090daae4. Change-Id: I54e807220885cb78af6f3c6e48b3eb2c9f1e70b4
2021-12-11Set unused reference frames to first refJianhui Dai
If a reference frame is not referenced, then set the index for that reference to the first one used/referenced instead of unused slot. Unused slot means key frame, as key frame resets all slots with itself. This CL extracts `get_first_ref_frame()` from `reset_fb_idx_unused()` with a typo fixing, and sets all unused reference frames to first ref in vp9 uncompressed header. Bug: webrtc:13442 Change-Id: I99523bc2ceedf27efe376d1113851ff342982181
2021-12-02clear -Wextra-semi/-Wextra-semi-stmt warningsJames Zern
Bug: chromium:1257449 Change-Id: Ia9aafccc09b611521d4a7aedfe3723393a840c62
2021-11-02vpx_codec_internal.h: add LIBVPX_FORMAT_PRINTFJames Zern
and use it to set the format attribute for the printf like function vpx_internal_error(). this allows the main library to be built with -Wformat-nonliteral without producing warnings; the examples will be handled in a followup. Bug: webm:1744 Change-Id: Iebc322e24db35d902c5a2b1ed767d2e10e9c91b9
2021-10-01vpx_roi_map: add delta range infoJames Zern
Change-Id: If2ef4400562075b4e7abadc01638a46c0c7f1859
2021-09-10Add vp8 support to rc libJerome Jiang
For 1 layer CBR only. Support for temporal layers comes later. Rename the library to libvpxrc Bug: b/188853141 Change-Id: Ib7f977b64c05b1a0596870cb7f8e6768cb483850
2021-09-02Add codec control for vp8 external rcJerome Jiang
disable cyclic refresh Change-Id: I7905602919d5780831fad840577e97730ce0afc2
2021-07-22Add control to get QP for all spatial layersJerome Jiang
Change-Id: I77a9884351e71649c8f8632293d9515c60f6adbc
2021-07-13Add codec control for rtc external ratectrl libJerome Jiang
This will do 3 things: Turn off low motion computation Turn off gf update constrain on key frame frequency turn off content mode for cyclic refresh Those are used to verify the external ratectrl lib works as expected. Change-Id: Ic6e61498de82d6b3973e58df246cf5e05f838680
2021-07-09Check for addition overflows in vpx_img_set_rect()Wan-Teh Chang
Check for x + w and y + h overflows in vpx_img_set_rect(). Move the declaration of the local variable 'data' to the block it is used in. Change-Id: I6bda875e1853c03135ec6ce29015bcc78bb8b7ba
2021-07-09Document vpx_img_set_rect() more preciselyWan-Teh Chang
Document the side effects and return value of vpx_img_set_rect() more precisely. Change-Id: Id1120bc478ff090a70b4ddd23c4798026bbefe10
2021-07-02Add codec control to get loopfilter levelJerome Jiang
Change-Id: I70d417da900082160e7ba53315af98eceede257c
2021-06-11Update some comments for rc_target_bitrateJames Zern
this mirrors the change from libaom: 5b150b150 Update some comments for rc_target_bitrate Change-Id: Iaabee5924e0320609a29dc8ab71327923fb4c5d2
2021-05-26Fixed redundant wording for decoder algorithm interfaceChunbo Hua
Change-Id: Id56e03dc9cf6d4e70c4681896f29893a9b4c76f2
2021-05-07img_alloc_helper: make align var unsignedJames Zern
quiets an integer sanitizer warning: vpx/src/vpx_image.c:101:25: runtime error: implicit conversion from type 'int' of value -2 (32-bit, signed) to type 'unsigned int' changed the value to 4294967294 (32-bit, unsigned) Change-Id: Ifeac31cc80811081c1ba10aadaa94dc36cd46efa
2021-04-28Bump ABI versionCheng Chen
Due to recent changes to command line options for rate control parameters. Change-Id: I1de7cb4ff2850a3ed19ec216dd9d07f64a118e92
2021-04-28Merge "vp8: enc: Fix valid range for under/over_shoot pct"James Zern
2021-04-21vp8: enc: Fix valid range for under/over_shoot pctSreerenj Balachandran
The overshoot_pct & undershoot_pct attributes for rate control are expressed as a percentage of the target bitrate, so the range should be 0-100. Change-Id: I67af3c8be7ab814c711c2eaf30786f1e2fa4f5a3
2021-04-20Further normalization of Vizier parameters.Paul Wilkins
Further changes to normalize the Vizier command line parameters. The intent is that the default behavior for any given parameter is signaled by the value 1.0 (expressed on the command line as a rational). The final values used in the two pass code are obtained by multiplying the passed in factors by a default values if use_vizier_rc_params is 1. Where use_vizier_rc_params is 0 the values are explicitly set to the defaults. This patch also changes the default value of each parameter to 1.0 even if not set explicitly. This should ensure safe /default behavior if the user sets use_vizier_rc_params to 1 but does not set all the the individual parameters. Change-Id: Ied08b3c22df18f42f446a4cc9363473cad097f69
2021-04-14Pass vizier rd parameter valuesCheng Chen
Add command line options for three rd parameters. They are controlled by --use_vizier_rc_params, together with other rc parameters. If not set from command line, current default values will be used. Change-Id: Ie1b9a98a50326551cc1d5940c4b637cb01a61aa0
2021-04-13Set vizier rc parametersCheng Chen
If pass --use-vizier-rc-params=1, the rc parameters are overwittern by pass in values. It --use-vizier-rc-params=0, the rc parameters remain the default values. Change-Id: I7a3e806e0918f49e8970997379a6e99af6bb7cac
2021-04-08vpx_image: clear user provided vpx_image_t earlyJames Zern
this avoids uninitialized values and potential misuse of them which could lead to a crash should the function fail this is the same fix that was applied in libaom: d0cac70b5 Fix a free on invalid ptr when img allocation fails Bug: webm:1722 Change-Id: If7a8d08c4b010f12e2e1d848613c0fa7328f1f9c
2021-04-06Change zm_factor for Vizier.Paul Wilkins
Changes the exposed zm_factor parameter. This patch alters the meaning of the zm_factor parameter that will be exposed for the Vizier project. The previous power factor was hard to interpret in terms of its meaning and effect and has been replaced by a linear factor. Given that the initial Vizier results suggested a lower zero motion effect for all formats, the default impact has been reduced. The patch as it stands gives a modest improvement for PSNR but is slightly down on some sets for SSIM (overall psnr, ssim % bdrate change: -ve is better) lowres -0.111, 0.001 ugc360p -0.282, -0.068 midres2 -0.183, 0.059 hdres2 -0.042, 0.172 Change-Id: Id6566433ceed8470d5fad1f30282daed56de385d
2021-03-29Add command line options for a few rc parametersCheng Chen
These rate control parameters are for the Vizier experiment. They are defined as rational numbers. Change-Id: I23f382dd49158db463b75b5ad8a82d8e0d536308
2021-02-03L2E: let external rate control pass in a max frame sizeCheng Chen
And allow the frame to recode when the frame size is larger than the input max frame size. If the max frame size is not specified, let vp9 decide whether to recode. The recode follows the vp9's current recoding mechanism. The rate control api will return the new qindex back to the external model. Change-Id: I796fbf713ad50a5b413b0e2501583b565ed2343f
2020-11-20Refine documentation of vpx_ext_ratectrl.hAngie Chiang
Bug: webm:1707 Change-Id: Iba04b5292c157e22dd8618a79e8c977ec9fc2199
2020-11-19Add gop_index to vpx_ext_ratectrl.hAngie Chiang
Bug: webm:1707 Change-Id: I48826d5f3a7cc292825a7f1e30ac6d0f57adc569
2020-11-17Capitalize VPX_RC_OK / VPX_RC_ERRORAngie Chiang
Change-Id: I526bd6a6c2d2095db564f96d63c7ab7ee4dd90ad
2020-11-17Add doxygen for vpx_rc_funcs_tAngie Chiang
Change-Id: If75215d574fe0b075add50154a9eece5d387741a
2020-11-17Add doxygen for vpx_rc_configAngie Chiang
Bug: webm:1707 Change-Id: I65bab6b2b792653e70cb136a5f9a21796e34b829
2020-11-17Copy first pass stats documentation from AV1 to VP9Angie Chiang
Bug: webm:1707 Change-Id: Iae7eaa9ba681272b70b6dad17cd2247edab6ef79
2020-11-17Add doxygen to structs in vpx_ext_ratectrl.hAngie Chiang
Bug: webm:1707 Change-Id: Ib5f6b6f143f55e5279e39eb386fcd3340211de59
2020-11-13Merge "vp9: Allow for disabling loopfilter per spatial layer"Marco Paniconi
2020-11-12vp9: Allow for disabling loopfilter per spatial layerMarco Paniconi
For SVC: add parameter to the control SET_SVC_PARAMS to allow for disabling the loopfilter per spatial layer. Note this svc setting will override the setting via VP9E_SET_DISABLE_LOOPFILTER (which should only be used for non-SVC). Add unittest to handle both SVC (spatial or temporal layers) and non-SVC (single layer) case. Change-Id: I4092f01668bae42aac724a6df5b6f6a604337448
2020-10-20Add ref frame info to vpx_rc_encodeframe_info_tAngie Chiang
Bug: webm:1707 Change-Id: I2ff9e54a9c8ae535628c1c471a2d078652f49a31