summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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
2020-02-25Keep ref frame coding indexes in SimpleEncodeangiebird
Change-Id: Id76aeb54ef93b11ca9a582f76289da0e60368e56
2020-02-24Make external arf consistent with vp9Cheng Chen
Add a test to ensure that encoding with the external arfs gets the same result as long as the arfs are the same as the vp9 baseline. Change-Id: I92c79001018f4df3bc16e9fc56c733509bebb9dc
2020-02-24Allow external arf to determine gop sizeCheng Chen
When "rate_ctrl" experiment is on, we allow the external arf passed from outside to determine group of picture size in define_gf_group(). Change-Id: I0b8c3e1bf3087f21a4e484354168df4967d35bba
2020-02-24Add interface for external arf indexes.Cheng Chen
Pass in external arf indexes to encode command. Change-Id: Ifea5a7d835643760fc5effc594bb448848f6d639
2020-02-21Rename values in RefFrameType and FrameTypeangiebird
Replace golden and altref by past and future in RefFrameType. So that we don't get confused with FrameType and RefFrameType. Change-Id: I1be45d49f76c68869fc4bf53ff946fee9ce7eb9d
2020-02-20Use ref_frame[0] to determine mv_countangiebird
The motion vector counts should be determined by whether this block is using intra_mode or not. Change-Id: If866c91fb8a3f2b3944e5b219a90154d2172690d
2020-02-20Consistency test for GroupOfPictureangiebird
Make sure frame_type, show_idx and coding_index in GroupOfPicture match the results in EncodeFrameInfo. Change-Id: I3b477a03b5efd651c2d174e7146a4cd4f5551604
2020-02-20Use ObserveGroupOfPicture() in EncodeFrame testangiebird
In the previous version, we assume the number of coding frames is known. Although the assumption is true for now with rate_ctrl flag on, it's more proper to use ObserveGroupOfPicture() to get the partial info about how many coding frames are in the group. Because We want to keep the flexibility of changing the size of group of pictures on the fly in the future. Change-Id: Ibbe6ab49268c468bf1cef8344efd3a3e1eab972a
2020-02-20Add kGoldenFrame and kOverlayFrame to FrameTypeangiebird
Add coding_index to EncodeFrameInfo Add start_coding_index to GroupOfPicture Add frame_coding_index_ to SimpleEncode The definition of coding index is as follows. Each show or no show frame is assigned with a coding index based on its coding order (starting from zero) in the coding process of the entire video. The coding index for each frame is unique. Change-Id: I43e18434a0dff0d1cd6f927a693d6860e4038337
2020-02-19Merge "x86_simd_caps: make mask value unsigned"James Zern
2020-02-19Merge "vp9-rtc: Increase partition threshold to 8x8 for high Q"Marco Paniconi
2020-02-18Merge "Cap delta_q_uv to -15..15"Jerome Jiang
2020-02-18vp9-rtc: Increase partition threshold to 8x8 for high QMarco Paniconi
For low resolutions: increase the partition threshold to split to 8x8 blocks for high Q. Some improvement in quality for low bitrates at low resoln. On rtc_derf speed 7: ~1.7 bdrate gain for low bitrates. Change-Id: I1900c32497b75da4e8b882fedc8f4b440b017480
2020-02-18Cap delta_q_uv to -15..15Jerome Jiang
only 4 bits in bitstream Change-Id: I338fe54475e094ee5e556467e0b66c982bb560fa
2020-02-18vp9-rtc: Set enable_adaptive_subpel_force_stop to 0Marco Paniconi
Set enable_adaptive_subpel_force_stop to 0 as default for all speeds. Its only enabled for speed >= 9. Change-Id: I23a1c1cb9765994d2153ef401976c11a07f3fe7f
2020-02-14vp8_decode: add missing vpx_clear_system_stateJames Zern
this avoids leaving the floating point unit in an inconsistent state on error and breaking subsequent tests on x86 the test clip invalid-bug-148271109.ivf would also result in a sanitizer error prior to: vp8,GetSigned: silence unsigned int overflow warning BUG=b/148271109 Change-Id: Ia254f3892ac1eeec51db5e9d42ea071545db0cd8
2020-02-14vp8,GetSigned: silence unsigned int overflow warningJames Zern
in non-conformant fuzzed bitstreams the calculation of br->value may overflow. this is defined behavior and harmless in that the stream is already corrupt. BUG=b/148271109 Change-Id: I3668ada57e0bd68cea86b82917fb03c19ac1283d
2020-02-14move common attribute defs to compiler_attributes.hJames Zern
BUG=b/148271109 Change-Id: I620e26ff1233fcd34ebe0723cb913e82eb58271c
2020-02-14x86_simd_caps: make mask value unsignedJames Zern
fixes -fsanitize=integer warning: runtime error: implicit conversion from type 'int' of value -1 (32-bit, signed) to type 'unsigned int' changed the value to 4294967295 (32-bit, unsigned) Change-Id: I95d41aade78cea5e4f870a804d3f358c2cf618d7
2020-02-11Merge "Set mv to zero if the second ref does not exist"Cheng Chen
2020-02-11Merge "Add a unit test to check partition info"Cheng Chen
2020-02-10Add a unit test to check partition infoCheng Chen
Change-Id: I397d7005961a037c9c9cb29e3ff0a3d39a501d15
2020-02-10Set mv to zero if the second ref does not existCheng Chen
Change-Id: I94b936c2642981eccdff073fc71c12e2dccb7909
2020-02-10Do save/restore_encode_params when rate_ctrl is onangiebird
Change-Id: I06492a4d1511869cb243477a47295d5f82608fca
2020-02-06Replace NULL by nullptr in simple_encode.c/hangiebird
Change-Id: Ib68740a02be852d03a3a2ad4d9d4a7d84d537590
2020-02-06Sync simple_encode.hangiebird
Change-Id: I046b8c65c96e1864813f9a82649dd6b41ba0aa1f
2020-02-06Rename inverse_vpx_rational to invert_vpx_rationalangiebird
Change-Id: I9139ebc22be74e9726eee157821faf22d44bd30f
2020-02-06Consistency test for motion vector infoCheng Chen
Change-Id: Ie1d77e231b973eb16f4e9c520721b47cdf86622c
2020-02-06Pass motion vector info to encode frame resultCheng Chen
Pass the motion vector info stored to the encode frame result through the interface "update_encode_frame_result()". Change-Id: I589affa0c4c4d0fd4d639edff9068e44a715beff
2020-02-05Let SimpleEncode be able to output bitstreamangiebird
Add outfile_path to SimpleEncode() with default value NULL. The encoder will only output bitstream when outfile_path is set. Change-Id: Ic68e5358ea454358c510bb0ae214f4201cb3db39
2020-02-05Add coded_frame to EncodeFrameResultsangiebird
This coded_frame represents the raw coded image. Change-Id: Iea439da2f9e84c4507b082d77ebaac49bfd74fff
2020-02-05Merge "Store frame motion vector info"Cheng Chen
2020-02-03loopfilter_sse2: call unsuffixed lpf functionsJames Zern
this allows calls to use better versions (e.g., avx2) if available. in most other cases the function pointer will be defined to the sse2 variant if another isn't available. this improves performance at 1080P by ~2% on a Xeon E5-2690. Change-Id: Ie9da3a567021f8416651a29b8c9ab9238dc4bdf1