summaryrefslogtreecommitdiff
path: root/vp9
AgeCommit message (Collapse)Author
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
2020-05-26Init static_scene_max_gf_interval in vp9_rc_init()angiebird
Change-Id: I2cad885fac2fd5f3e84d02b905a2ce59eb66760e
2020-05-26Make SetExternalGroupOfPicture support no arf modeangiebird
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
2020-05-26Add GOP_COMMANDangiebird
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
2020-05-19vp9_decoder: free postproc_state.prev_mipJames Zern
this fixes a leak when using MFQE BUG=webm:1692 Change-Id: I19fb2f07155769f59924e0843989b3d3f8899bf6
2020-05-15vp9-svc: Fix key frame update refresh simulcast flexible svcMarco Paniconi
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
2020-05-15Merge "vp9_firstpass.c: limit mv_limits with MV_MAX in motion_search"Yunqing Wang
2020-05-13vp9-rtc: Increase thresh for scene detectionMarco Paniconi
For CBR screen content mode. Makes it more robust to false detections. Change-Id: Icad89adb6f79b530b589bba2c71ba88ee5088d37
2020-04-25vp9_firstpass.c: limit mv_limits with MV_MAX in motion_searchNeil Birkbeck
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
2020-04-25Merge "vp9-rtc: Some speedups to speed 5 real-time mode"Marco Paniconi
2020-04-24Merge "Revert "Revert "Remove RD code for CONFIG_REALTIME_ONLY in vp9."""Jerome Jiang
2020-04-24vp9-rtc: Some speedups to speed 5 real-time modeMarco Paniconi
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
2020-04-24Revert "Revert "Remove RD code for CONFIG_REALTIME_ONLY in vp9.""Jerome Jiang
Under CONFIG_REALTIME_ONLY flag, map speed < 5 to speed 5. Bug: webm:1684 This reverts commit 85cb983682fe9ca14fd302b50d27d762da05d665. Change-Id: I67b7ed37e8b74417db310ea0c817d3c5a5de9e44
2020-04-24vp9-rtc: Allow simulcast mode for flexible/bypass modeMarco Paniconi
Change-Id: I0252d06c4f21d7c700c81d387bef89646229a63c
2020-04-23Merge "Move index check before array access"Jerome Jiang
2020-04-23Merge "Revert "vp9-rtc: Some speedups to speed 5 real-time mode""Jerome Jiang
2020-04-23Revert "vp9-rtc: Some speedups to speed 5 real-time mode"Marco Paniconi
This reverts commit 62af22b5e57ed1e382ef0994183824a03f698797. Reason for revert: causes crash in chromium test Change-Id: I27792e05ece84c79739638b8cce634ffeaef3ba1
2020-04-20Revert "Remove RD code for CONFIG_REALTIME_ONLY in vp9."Jerome Jiang
This reverts commit da24d35132e80422dc2c33e7c92462f4db7cd83d. BUG=webm:1684 Change-Id: I552c37c7bdc844610879a65cc02038d76a5d32b1
2020-04-19vp9-rtc: Some speedups to speed 5 real-time modeMarco Paniconi
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
2020-04-16Move index check before array accessVitaly Buka
This lets us run code with -fsanitize=bounds. Bug: b/15471229 Change-Id: I5961ef43d21f04a0dc9e8bf7280dc27eb0a62094
2020-04-13simplify x86_abi_support.asm symbol declarationJohann
Define LIBVPX_{ELF,MACHO} to simplify blocks. Create new globalsym macro and include logic for PRIVATE. BUG=webm:1679 Change-Id: I303ba1492a2813f685de51155ccef7e4831e1881
2020-04-09vp9-rtc: Fix to disable_16x16part speed featureMarco Paniconi
Condition on current_video_frame count, as the avg_frame_qindex needs some time to settle. Fixes psnr test failures. Change-Id: I462c45250becb55b72b6ffe2b7087094d6d58a01
2020-04-09Merge "vp9-rtc: Disable nonrd_keyframe for SVC, speed >=8"Marco Paniconi
2020-04-08vp9-rtc: Disable nonrd_keyframe for SVC, speed >=8Marco Paniconi
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
2020-04-08vp9-rtc: Set disable_16x16part for low-resoln high QMarco Paniconi
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
2020-04-07Merge "vp9: add rate control interface for RTC"Jerome Jiang
2020-04-06vp9: add rate control interface for RTCJerome Jiang
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
2020-04-01x86_abi_support: use correct hidden syntaxJohann
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
2020-03-31vp9-rtc: Refactor postencode for 1 passMarco Paniconi
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
2020-03-30rtc: Increase resize limit resoln for rtcMarco Paniconi
Increase resize limit to avoid resized frame from going below 320x180. Change-Id: If736ac3fac4731b47844e4d8c771ecf5c66550de
2020-03-27vp9-rtc: Increase resize down limit to 320x180Marco Paniconi
For RTC dynamic resize: don't allow resize for resoln <= 320x180. Change-Id: I9109e9e1338e5420e72436a57d266ae46e9f2d60
2020-03-25Init frames_to_key in vp9_rc_init()angiebird
Change-Id: Ic667c77ff58672212fc2e9dd5066c650b0152226
2020-03-25Merge "Optimize vp9_get_sub_block_energy."James Zern
2020-03-21vp9_ratectrl: fix some signed integer overflowsJames Zern
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
2020-03-20Optimize vp9_get_sub_block_energy.Clement Courbet
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
2020-03-17Correct time_base of ivf header in SimpleEncodeangiebird
Change-Id: I8a14fcad3e7b4c4689f4e7387414e59ba9c4c20a
2020-03-16Add detail comments on valid_list in SimpleEncodeangiebird
Change-Id: Iad7ca261a99c7b5f082cf3cc6504f4af438bf409
2020-03-13Move member functions up in simple_encode.hangiebird
Change-Id: I9c5c74ab52361bcd73aef110729c6e332066c2af
2020-03-13fix minor spelling errorsJohann
Change-Id: I929fec66d541705fe94365b56a5bdd8cf5ee7c37
2020-03-05Merge changes Ie7c70a1d,I2c5abbe2,If41a1ea6,Id6ba4664,I156308bcAngie Chiang
* 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()
2020-03-03vp9-svc: Allow for dynamic resize for single layer SVCMarco Paniconi
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
2020-03-03Add unit test for ref_frame_infoangiebird
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
2020-03-03Add key frame group info to SimpleEncodeangiebird
Change-Id: I2c5abbe23c84c6d794e06ed6429136b10fb18683
2020-03-03Add ref_frame_info to encode_frame_resultangiebird
Change-Id: If41a1ea6ce0a2b8db3811f2fa8efcf16f97fa0bd
2020-03-02Add init/update_frame_indexes()angiebird
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
2020-03-02Add GetVectorData()angiebird
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
2020-02-26Add RefFrameInfoangiebird
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