Age | Commit message (Collapse) | Author |
|
|
|
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
|
|
Under CONFIG_REALTIME_ONLY flag, map speed < 5 to speed 5.
Bug: webm:1684
This reverts commit 85cb983682fe9ca14fd302b50d27d762da05d665.
Change-Id: I67b7ed37e8b74417db310ea0c817d3c5a5de9e44
|
|
Change-Id: I0252d06c4f21d7c700c81d387bef89646229a63c
|
|
|
|
|
|
This reverts commit 62af22b5e57ed1e382ef0994183824a03f698797.
Reason for revert: causes crash in chromium test
Change-Id: I27792e05ece84c79739638b8cce634ffeaef3ba1
|
|
This reverts commit da24d35132e80422dc2c33e7c92462f4db7cd83d.
BUG=webm:1684
Change-Id: I552c37c7bdc844610879a65cc02038d76a5d32b1
|
|
Enable use_source_sad at speed 5 and use it to
condition min_partition_size in nonrd_select_partition.
Also disable checking rectangular partitions in
nonrd_pick_partition for speed >= 5.
~5-8% speedup for HD clip on x86.
bdrate loss of ~1% on rtc set.
Change-Id: Ia643b34a51191e3929a443de77e271561e7c877d
|
|
This lets us run code with -fsanitize=bounds.
Bug: b/15471229
Change-Id: I5961ef43d21f04a0dc9e8bf7280dc27eb0a62094
|
|
Define LIBVPX_{ELF,MACHO} to simplify blocks.
Create new globalsym macro and include logic for PRIVATE.
BUG=webm:1679
Change-Id: I303ba1492a2813f685de51155ccef7e4831e1881
|
|
Condition on current_video_frame count, as the
avg_frame_qindex needs some time to settle.
Fixes psnr test failures.
Change-Id: I462c45250becb55b72b6ffe2b7087094d6d58a01
|
|
|
|
For speed >= 8: disable nonrd_keyframe SVC with
spatial_layers > 1. In this case having base
spatial layer key frame with higher quality
(hybrid mode search) is beneficial, without too
much cpu cost (since its on lowest spatial layer).
Change-Id: Iff7c43aed4e808603d8abdedb6eb5d2c9c8ecb8d
|
|
Only affects variance partition at low-resoln,
speed 6,7 real-time mode. At very high Q better to
save bits from the split to 8x8.
bdrate gain ~3% on rtc_derf at very low bitrates
Change-Id: I94ee58e67d5ba6277cbab8f8dd9ea45b035c82b5
|
|
|
|
Add vp9 RTC rate control without creating encoder,
to allow external codecs to use vp9 rate control.
A new library (libvp9rc.a) will be built. Applications using this
interface must be linked with the library.
BUG=1060775
Change-Id: Ib3e597256725a37d2d104e1e1a1733c469991b03
|
|
Chromium needs :function hidden and the space between the symbol and the
colon removed, at least for nasm. This matches x86inc.asm.
BUG=webm:1679
Change-Id: Ie47bb75d44d3130791639cbf4e2ebe019e2d686e
|
|
Move some code for 1 pass, that is not
directly related to rate control, out of
the postencode.
This avoids the need of extra flag for the
RC interface in:
https://chromium-review.googlesource.com/c/webm/libvpx/+/2118915
Change-Id: I3992ea8255196a762c1174c35dd7dcc9b01d317e
|
|
Increase resize limit to avoid resized frame
from going below 320x180.
Change-Id: If736ac3fac4731b47844e4d8c771ecf5c66550de
|
|
For RTC dynamic resize: don't allow resize for
resoln <= 320x180.
Change-Id: I9109e9e1338e5420e72436a57d266ae46e9f2d60
|
|
Change-Id: Ic667c77ff58672212fc2e9dd5066c650b0152226
|
|
|
|
in calculations involving bitrate in vp9_rc_postencode_update() and
calc_pframe_target_size_one_pass_vbr()
note this isn't exhaustive, it's just the result of a vpxenc run with:
-w 800 -h 480 --cpu-used=8 --rt --target-bitrate=1400000000
Bug: b/151945689
Change-Id: I941a77340fd44b09fc965dd182d7aeab9f1f3da0
|
|
Because energy scaling is non-decreasing, we can work on the variance
and scale after the loop. This avoids costly computations (in
particular, log()) within the loop.
We've measured that we spend 0.8% of our total time computing the log.
Change-Id: I302fc0ecd9fd8cf96ee9f31b8673e82de1b2b3e2
|
|
Change-Id: I8a14fcad3e7b4c4689f4e7387414e59ba9c4c20a
|
|
Change-Id: Iad7ca261a99c7b5f082cf3cc6504f4af438bf409
|
|
Change-Id: I9c5c74ab52361bcd73aef110729c6e332066c2af
|
|
Change-Id: I929fec66d541705fe94365b56a5bdd8cf5ee7c37
|
|
* changes:
Add unit test for ref_frame_info
Add key frame group info to SimpleEncode
Add ref_frame_info to encode_frame_result
Add init/update_frame_indexes()
Add GetVectorData()
|
|
Make internal dynamic resize work for SVC mode
when single layer SVC is running (i.e, other layers
are dropped due to 0 bitrate).
Added unittest.
Change-Id: Icf03e1f276d9c4ba2734c87c927f7881c6b0a116
|
|
Fix several bugs to make the test pass.
1) Move update_frame_indexes() out of show_frame check.
2) Init coding_indexes[i] to -1 when key frame appears
3) Fix a bug in PostUpdateRefFrameInfo()
Change-Id: Ie7c70a1d460e5b89475a1aef77416fc9a88387e1
|
|
Change-Id: I2c5abbe23c84c6d794e06ed6429136b10fb18683
|
|
Change-Id: If41a1ea6ce0a2b8db3811f2fa8efcf16f97fa0bd
|
|
We will init and update current_video_frame and
current_frame_coding_index in the functions.
So it's easier to keep track of when the frame indexes are updated.
Change-Id: Id6ba46643f8923348bb4f81c5dd9ace553244057
|
|
It's necessary to get data pointer from a vector sometimes.
This function will guarantee that the data pointer is nullptr
if the vector is empty.
Change-Id: I156308bcb193fe404452d3cd3b24b3f80c3c3727
|
|
RefFrameInfo contains the coding_indexes and valid_list of
three reference frame types.
Note that I will add unit test in the follow-up CLs.
Change-Id: Ia055df1f8a5537b2bdd02c78991df9bbf48e951a
|