Age | Commit message (Collapse) | Author |
|
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
|
|
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
|
|
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
|
|
'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
|
|
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
|
|
- Return error instead of OK when GOP model is not set.
- Update descriptions for a few variables.
Change-Id: I213f6b7085c487507c3935e7ce615e807f4474cc
|
|
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
|
|
Two control types are defined: QP and GOP control.
Now the API only supports the QP model.
Change-Id: Ib3a712964b9d2282c93993ee56e0558e4795fb46
|
|
+ mark the _algo variables as deprecated.
this quiets some doxygen warnings
Bug: webm:1752
Change-Id: I53b9b796c3d8fef5c713ee4278641198f95b5864
|
|
The control was never implemented, no need to keep this.
temporal_layering_mode is set in the config.
Bug: webm:1753
Change-Id: I9a6eb50e82344605ab62775911783af82ac2d401
|
|
Change-Id: I49bbd956b3a64008d1abe54de87d7831bc3eede6
|
|
* changes:
vp8dx.h,cosmetics: normalize #define/type order
vp8dx.h: add missing define for VP9_SET_BYTE_ALIGNMENT
|
|
Change-Id: I2db20130cc366bead5e576b375479917f9aee024
|
|
Change-Id: I4e643c837bb010bd58f4fc8179045f8df18f8ae1
|
|
Change-Id: I0233d352c134bdda3ca160d41b4671d1c45ab01c
|
|
This reverts commit e7f33a53cf404bbb3688af9b13375b5c090daae4.
Change-Id: I54e807220885cb78af6f3c6e48b3eb2c9f1e70b4
|
|
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
|
|
Bug: chromium:1257449
Change-Id: Ia9aafccc09b611521d4a7aedfe3723393a840c62
|
|
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
|
|
Change-Id: If2ef4400562075b4e7abadc01638a46c0c7f1859
|
|
For 1 layer CBR only.
Support for temporal layers comes later.
Rename the library to libvpxrc
Bug: b/188853141
Change-Id: Ib7f977b64c05b1a0596870cb7f8e6768cb483850
|
|
disable cyclic refresh
Change-Id: I7905602919d5780831fad840577e97730ce0afc2
|
|
Change-Id: I77a9884351e71649c8f8632293d9515c60f6adbc
|
|
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
|
|
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
|
|
Document the side effects and return value of vpx_img_set_rect() more
precisely.
Change-Id: Id1120bc478ff090a70b4ddd23c4798026bbefe10
|
|
Change-Id: I70d417da900082160e7ba53315af98eceede257c
|
|
this mirrors the change from libaom:
5b150b150 Update some comments for rc_target_bitrate
Change-Id: Iaabee5924e0320609a29dc8ab71327923fb4c5d2
|
|
Change-Id: Id56e03dc9cf6d4e70c4681896f29893a9b4c76f2
|
|
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
|
|
Due to recent changes to command line options for rate control
parameters.
Change-Id: I1de7cb4ff2850a3ed19ec216dd9d07f64a118e92
|
|
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
These rate control parameters are for the Vizier experiment.
They are defined as rational numbers.
Change-Id: I23f382dd49158db463b75b5ad8a82d8e0d536308
|
|
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
|
|
Bug: webm:1707
Change-Id: Iba04b5292c157e22dd8618a79e8c977ec9fc2199
|
|
Bug: webm:1707
Change-Id: I48826d5f3a7cc292825a7f1e30ac6d0f57adc569
|
|
Change-Id: I526bd6a6c2d2095db564f96d63c7ab7ee4dd90ad
|
|
Change-Id: If75215d574fe0b075add50154a9eece5d387741a
|
|
Bug: webm:1707
Change-Id: I65bab6b2b792653e70cb136a5f9a21796e34b829
|
|
Bug: webm:1707
Change-Id: Iae7eaa9ba681272b70b6dad17cd2247edab6ef79
|
|
Bug: webm:1707
Change-Id: Ib5f6b6f143f55e5279e39eb386fcd3340211de59
|
|
|
|
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
|
|
Bug: webm:1707
Change-Id: I2ff9e54a9c8ae535628c1c471a2d078652f49a31
|