Age | Commit message (Collapse) | Author |
|
avg_frame_bandwidth is an int, quiets a clang-tidy warning
Change-Id: I2a2822652ca6a06e9d1d6d4318f544d419d437e8
|
|
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
|
|
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
|
|
Replace fp_motion_vector_info_init() by
fp_motion_vector_info_reset() in first_pass_encode()
Change-Id: Iadacb1ecc4f07435340399564fdd3bfd4ac702f4
|
|
Change-Id: If7d2711e7f37f00629874914f7c4d2396358e39d
|
|
Change-Id: I005a648f7f9ead9d36a39330dfbb096919affb34
|
|
Change-Id: I05dd4d60741743c13951727ce6608acf4224ebec
|
|
Change-Id: Ic5709b79131a3969fcb2a0eb3f53994f788b5cc9
|
|
Change-Id: Ic2a52dcf5e5a6d57b80d390a2c48ee498e89e7b2
|
|
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
|
|
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
|
|
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
|
|
|
|
Change-Id: I133c93c2ad4c824fc97a18de3ac2cb2aedac9013
|
|
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
|
|
|
|
Change-Id: I4de5a38e25d6b0836d90e8fcd0e56d268e5fd838
|
|
This fixes a lossless encoding bug as reported in the issue tracker.
Coding performance change is neutral.
BUG=webm:1700
Change-Id: I0f034b16b57e917e722709a7e9addef864b83d27
|
|
This should clean up clangtidy warnings
Change-Id: Ifb5a986121b2d0bd71b9ad39a79dd46c63bdb998
|
|
|
|
Will add a unit test in a followup CL.
Change-Id: I6a6354f307c427e1a352be7c6421927323eb5e1b
|
|
BUG=webm:1689
Change-Id: Id920816315c6586cd652ba6cd1b3a76dfc1f12b7
|
|
Change-Id: I2fcf37045a96bb101de3359e2e69dcc266c1dc10
|
|
BUG=webm:1685
Change-Id: Ida72fe854fadb19c3745724e74b67d88087eb83c
|
|
last_q is used in resize logic, should
always be last Q selected for previous
frame, encoded or dropped.
Change-Id: Ie9019ccf5a9e3acc8456a2e70cc2aa8d1c90236e
|
|
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
|
|
Make sure to initialize the layer context for spatial-svc
which has a single temporal layer.
Change-Id: I026ecec483555658e09d6d8893e56ab62ee6914b
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
Change-Id: Ic92ce5a3cc5bb74120eb32fc6219e43b1b861f14
|
|
Change-Id: I271d11cc35d34d5450a8b56fabcedaf2bb7c6565
|
|
|
|
Change-Id: Ia2a8221a156e0882079c5a252f59bc84d8f516b1
|
|
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
|
|
Change-Id: I2fc0efb2ac35e64af3350bddaa802a206d1aa13c
|
|
Change-Id: I2cad885fac2fd5f3e84d02b905a2ce59eb66760e
|
|
Rename external_arf_indexes by gop_map
Use kGopMapFlagStart to indicate the start of a gop in the gop_map.
Use kGopMapFlagUseAltRef to indicate whether to use altref in the
gop_map.
Change-Id: I743e3199a24b9ae1abd5acd290da1a1f8660e6ac
|
|
Send GOP_COMMAND to vp9 for setting gop decisions on the fly.
GOP_COMMAND has three members.
use: use this command to set gop or use vp9's gop decision.
show_frame_count: number of show frames in this gop.
use_alt_ref: use alt ref frame or not.
Move the logic of processing external_arf_indexes_ from
get_gop_coding_frame_num() to GetGopCommand() and
GetCodingFrameNumFromGopMap().
Change-Id: Ic1942c7a4cf6eecdf3507864577688350c7ef0cf
|
|
this fixes a leak when using MFQE
BUG=webm:1692
Change-Id: I19fb2f07155769f59924e0843989b3d3f8899bf6
|
|
For flexible svc in simulcast mode: don't allow refresh
of all reference slots on key frame. Which slots to update
should be based on the user flags.
Change-Id: I3597c61ebcdfed2055bbdffec7ce701fad892744
|
|
|
|
For CBR screen content mode. Makes it more
robust to false detections.
Change-Id: Icad89adb6f79b530b589bba2c71ba88ee5088d37
|
|
Currently, in rare cases on big videos (> 5K), best_mv may differ from ref_mv by more than the allowable MV_MAX. Intersect mv_limits with those bound by MV_MAX before diamond search.
We could use vp9_set_mv_search_range, but that seems a bit more constrained than the bug I encountered (e.g., MAX_FULL_PEL_VAL < MV_MAX / 8).
Change-Id: I2c6563c05039d6ee05edf642665faaccf51787d4
|
|
|
|
|
|
Disable checking rectangular partitions in
nonrd_pick_partition, and enable use_source_sad.
~3-4% speedup for HD clip on x86.
bdrate loss of ~0.2% on rtc set.
Change-Id: Ibef8f100f1f623482d47510cb4ec9278ba777d7c
|