summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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-10Merge "transpose_sse2.h,cosmetics: fix some comments"James Zern
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-06x86_abi_support: do not decorate coff functionsJohann
:private_extern only applies to macho. Match x86inc.asm logic: %if FORMAT_ELF global %2:function hidden %elif FORMAT_MACHO global %2:private_extern %else global %2 %endif May fix a build issue on windows: vp8/encoder/x86/block_error_sse2.asm:18: error: COFF format does not support any special symbol types BUG=webm:1679 Change-Id: I7e1f4043b064a04752d1cedd030cbe7f5461fe40
2020-04-06Merge changes I24997420,Ie4ca7435,I36011727,Ibb01b09c,Ifb17acbe, ...Johann Koenig
* changes: x86inc.asm: update to 3e5aed95c x86inc.asm: namespace ARCH_* defines x86inc.asm: only set visibility for chromium builds x86inc.asm: do not align .text for aout x86inc.asm: use .text on march32 x86inc.asm: copy PIC macros from x86_abi_support.asm x86inc.asm: set PREFIX from libvpx defines x86inc.asm: pull settings from libvpx x86inc.asm: update to 3e5aed95
2020-04-03transpose_sse2.h,cosmetics: fix some commentsJames Zern
Change-Id: Idae90838012c78605f20f1d7a3125b71683f6f44
2020-04-02Return VPX_CODEC_INCAPABLE on capability failureWan-Teh Chang
All decoder functions should return the VPX_CODEC_INCAPABLE error code if the algorithm does not have the requested capability. Move the definitions of VPX_CODEC_CAP_FRAME_THREADING and VPX_CODEC_CAP_EXTERNAL_FRAME_BUFFER to the VPX_CODEC_CAP_* section. Change "PUT_SLICE and PUT_FRAME events are posted" to "put_slice and put_frame callbacks are invoked". Also fix some other minor comment errors. This carries back to libvpx the following libaom CL: https://aomedia-review.googlesource.com/c/aom/+/108405 Change-Id: If67a271c9abbb3eebc2359719cc7d9f235b690d2
2020-04-02x86inc.asm: update to 3e5aed95cJohann
BUG=webm:1679 Change-Id: I24997420b7b43cac3c674300c667eb493794893e
2020-04-02x86inc.asm: namespace ARCH_* definesJohann
Reapply fad865c54 to prevent redefinition warnings. BUG=webm:1679 Change-Id: Ie4ca7435b1f84711d0231e7957129580b05b3918
2020-04-02x86inc.asm: only set visibility for chromium buildsJohann
Reapply and update a4b47b89f. This restores the previous version's behavior avoiding issues with builds that may split sources on directory boundaries; protected visibility may work in this case. BUG=webm:1679 Change-Id: I36011727485847dd11f06782bc6beddedc39019c
2020-04-02x86inc.asm: do not align .text for aoutJohann
Reapply a97c83f7a. Only use .text sections for aout and do not specify an alignment. BUG=webm:1679 Change-Id: Ibb01b09c205f9e0ecd4bfa0241e3d5e01ae5a55e
2020-04-02x86inc.asm: use .text on march32Johann
Reapply 9679be4bc. The read only sections are getting stripped on some OS X builds. As a result, random data is used in place of the intended tables. BUG=webm:1679 Change-Id: Ifb17acbed73df4b9949a8badae2d9305a3073b83
2020-04-02x86inc.asm: copy PIC macros from x86_abi_support.asmJohann
Reapply 7e065cd57. x86inc.asm always defines PIC for x86_64. We undefine it for x32. Incorporate e56f96394 as well to ensure GET_GOT_DEFINED is defined. BUG=webm:1679 Change-Id: I1535d57bcb4223327ca63b4fd11bffcda1009332
2020-04-02x86inc.asm: set PREFIX from libvpx definesJohann
Reapply 4de9641f1 BUG=webm:1679 Change-Id: I70b2224121f8f997fcd04c38a07a8126c2855ec6
2020-04-02x86inc.asm: pull settings from libvpxJohann
Reapply 1be46ef6b. Include vpx_config.asm and prefix functions with vpx. BUG=webm:1679 Change-Id: I5fba3154203822a829bc88ad0e302adf2ce3bbee
2020-04-02x86inc.asm: update to 3e5aed95Johann
Pull a clean copy in and name it _new. Will apply the libvpx patches and then move it over. BUG=webm:1679 Change-Id: I48d3d4ab7911340c0997dd79a0dbadccf5697682
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-31Merge "nasm: require 2.14 with -DCHROMIUM"Johann Koenig
2020-03-31Merge "auto-detect darwin19"Johann Koenig
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-31auto-detect darwin19Johann
Change-Id: I3912c79d0f0f7a65fc753ae29bb10cdcac76878a
2020-03-31nasm: require 2.14 with -DCHROMIUMJohann
BUG=webm:1679 Change-Id: I75b1f860d111febf0aabe38b89d845ef296728a4
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-21vp8/{ratectrl,onyx_if}: fix some signed integer overflowsJames Zern
in calculations involving bitrate in encode_frame_to_data_rate() and vp8_compute_frame_size_bounds() 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: I3a4f878046fcf80e87482761588c977c283ae917
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-17Merge changes I8a14fcad,Iad7ca261,I2063c592,I9c5c74abAngie Chiang
* changes: Correct time_base of ivf header in SimpleEncode Add detail comments on valid_list in SimpleEncode Add missing Copyright to python files Move member functions up in simple_encode.h
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-16Add missing Copyright to python filesangiebird
BUG=webm:1655,webm:1654 Change-Id: I2063c59218e082f40958dddbdcb1c105d5440199
2020-03-13vpx_codec_enc_config_default: rm unnecessary loopJames Zern
quiets -Wunreachable-code-loop-increment, present since: e57f388bc vpx_codec_enc_config_default: disable 'usage' as g_usage was never supported for vp8/9 this was always a single iteration. if additional usages are added in the future similar to av1 this can be restored. Bug: b/150166387 Change-Id: Ic6f0985829e87694de8b5e0340cffa6c451ed1c2
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-04rtc: Update svc test for resizeMarco Paniconi
Add count on expected number of resizes, and use the speed_setting_ for base layer. Also allow AQ_MODE=3 for the tests with dynamic layer disabling/enabling. Change-Id: I03fb0789a2210ba00b8b153941bf79fb774d51bf
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