summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-07-26Merge "Clean up allow_partition_search_skip code" into mainYunqing Wang
2021-07-25Merge "Disable allow_partition_search_skip feature" into mainYunqing Wang
2021-07-23Clean up allow_partition_search_skip codeYunqing Wang
Change-Id: Ia05157fc3e613d93f10df5abddd77a740a0005ca
2021-07-23Disable allow_partition_search_skip featureYunqing Wang
This feature was added to help speed up still images and slideshows. It didn't work anymore, and thus was disabled. Code cleanup will follow. This had negligible impact to regular test sets. Borg test result on ugc360p set at speed 3. avg_psnr: ovr_psnr: ssim: speed: -0.244 -0.278 -0.153 -0.973 Change-Id: If74edabce0c93be1361e645ffd2eec063c2db76b
2021-07-23Merge "Add control to get QP for all spatial layers" into mainJerome Jiang
2021-07-22Add control to get QP for all spatial layersJerome Jiang
Change-Id: I77a9884351e71649c8f8632293d9515c60f6adbc
2021-07-22Merge "Use round to be more accurate casting float to int" into mainJerome Jiang
2021-07-21Add cyclic refresh to vp9 rtc external ratecontrolJerome Jiang
Change-Id: Ia2a881399aa31ca0f34481b975362ddd4ad87f1c
2021-07-20Use round to be more accurate casting float to intJerome Jiang
Change-Id: Ifd5961917831752b176dd75d39d6b2cba6ce72fa
2021-07-19Merge "Refactor rtc rate control test" into mainJerome Jiang
2021-07-19Refactor rtc rate control testJerome Jiang
Remove golden files. Run actual encoding as the ground truth. Change-Id: I1cea001278c1e9409bb02d33823cf69192c790a4
2021-07-15Avoid chroma resampling for 420mpeg2 inputBohan Li
BUG=aomedia:3080 Change-Id: I4ed81abf4b799224085485560f675c10c318cde6
2021-07-13Add codec control for rtc external ratectrl libJerome Jiang
This will do 3 things: Turn off low motion computation Turn off gf update constrain on key frame frequency turn off content mode for cyclic refresh Those are used to verify the external ratectrl lib works as expected. Change-Id: Ic6e61498de82d6b3973e58df246cf5e05f838680
2021-07-09Check for addition overflows in vpx_img_set_rect()Wan-Teh Chang
Check for x + w and y + h overflows in vpx_img_set_rect(). Move the declaration of the local variable 'data' to the block it is used in. Change-Id: I6bda875e1853c03135ec6ce29015bcc78bb8b7ba
2021-07-09Document vpx_img_set_rect() more preciselyWan-Teh Chang
Document the side effects and return value of vpx_img_set_rect() more precisely. Change-Id: Id1120bc478ff090a70b4ddd23c4798026bbefe10
2021-07-08Merge "Avoid overflow in calc_iframe_target_size" into mainYaowu Xu
2021-07-02Merge "Add codec control to get loopfilter level" into mainJerome Jiang
2021-07-02Add codec control to get loopfilter levelJerome Jiang
Change-Id: I70d417da900082160e7ba53315af98eceede257c
2021-07-01ratectrl_rtc.h: quiet MSVC int64_t->int conv warningJames Zern
target_bandwidth is int64_t, but layer_target_bitrate[0] is an int. this is safe in the only place it's set because target_bandwidth defaults to 1000. target_bandwidth is later used to populate the cpi's target, which is an unsigned int so there may be further fixes/cleanups that can be done. Change-Id: I35dbaa2e55a0fca22e0e2680dcac9ea4c6b2815a
2021-07-01Avoid overflow in calc_iframe_target_sizeJorge E. Moreira
The changed product was observed to attempt to multiply 1800 by 2500000, which overflows unsigned 32 bits. Converting to unsigned 64 bits first and testing whether the final result fits in 32 bits solves the problem. BUG=b:179686142 Change-Id: I5d27317bf14b0311b739144c451d8e172db01945
2021-06-29Merge "vp9-rtc: Extract content dependency in cyclic refresh" into mainMarco Paniconi
2021-06-29Merge "Disallow skipping transform and quantization" into mainCheng Chen
2021-06-25Disallow skipping transform and quantizationCheng Chen
The encoder has a feature to skip transform and quantization based on model rd analysis. It could happen that the model based analysis lets the encoder skips transform and quantization, while a bad prediction occurs, leading to bad reconstructed blocks, which are intrusive and apparently coding errors. We add a speed feature to guard the skipping feature. Due to the risk of bad perceptual quality, we disallow such skipping by default. On hdres test set, speed 2, the coding performance difference is 0.025%, speed difference is 1.2%, which can be considered non significant. BUG=webm:1729 Change-Id: I48af01ae8dcc7a76c05c695f3f3e68b866c89574
2021-06-25vp9-rtc: Extract content dependency in cyclic refreshMarco Paniconi
For usage in the external RC. When content_mode = 0, the cyclic refresh has no dependency on the content (motion, spatial variance, motion vectors, etc,). The content_mode = 0, when compared to content_mode = 1, on rtc set for speed 7: has some regression on some clips (~3-5%), but overall/average bdrate loss is about ~1-2%. Comparing aq_mode=3 with content_mode = 0, vs aq_mode=3: about ~14% avg/overall bdrate gain, but has ~3-7% regression on some hard motion clip (e.g.m street). Change-Id: I93117fabb8f7f89032c15baf1292b201e8c07362
2021-06-25Add constructor to VP9RateControlRtcConfigJerome Jiang
Also add max_inter_bitrate_pct Change-Id: Ie2c0e7f1397ca0bb55214251906412cdf24e42e2
2021-06-22Merge "rc: turn off gf constrain for external RC" into mainJerome Jiang
2021-06-22rc: turn off gf constrain for external RCJerome Jiang
Added a new flag in rate control which turns off gf interval constrain on key frame frequency for external RC. It remains on for libvpx. Change-Id: I18bb0d8247a421193f023619f906d0362b873b31
2021-06-22Merge "test-data.sha1: add missing sha sums" into mainJames Zern
2021-06-22Merge changes I9f0852a0,Ieecb98a7 into mainAngie Chiang
* changes: Add use_simple_encode_api to oxcf Fix flaky assertions in SimpleEncode
2021-06-21Add use_simple_encode_api to oxcfAngie Chiang
Use this flag to change the encoder behavior when SimpleEncode APIs are used BUG=webm:1733 Change-Id: I9f0852a03ff99faa01cdd8eee8ab71718cc58632
2021-06-21Fix flaky assertions in SimpleEncodeAngie Chiang
Bug: webm:1731 Change-Id: Ieecb98a7ac19e6291acd5d51432dc6a3789e9552
2021-06-21test-data.sha1: add missing sha sumsJames Zern
for rc_interface_test_one_layer_vbr and rc_interface_test_one_layer_vbr_periodic_key added in: 1f45e7b07 vp9 rc: add vbr to rtc rate control library Change-Id: I8bfa3698284c8ff289e830f7b8fa1ca42b752563
2021-06-18Merge "vp9 rc: add vbr to rtc rate control library" into mainJerome Jiang
2021-06-18vp9 rc: add vbr to rtc rate control libraryJerome Jiang
Change-Id: I3d2565572c2b905966d60bcaa6e5e6f057b1bd51
2021-06-18normalize vp9_calc_[ip]frame declarations and definitionsJames Zern
fixes warnings under visual studio: vp9\encoder\vp9_ratectrl.c(2012): warning C4028: formal parameter 1 different from declaration vp9\encoder\vp9_ratectrl.c(2027): warning C4028: formal parameter 1 different from declaration Change-Id: Ia0740db597fb7a259f90d362b483f58662f9f584
2021-06-17vp9: Adjust logic for gf update in 1 pass vbrMarco Paniconi
This reduces some regression when external RC is used, for which avg_frame_low_motion is not set/updated (=0). Change-Id: I2408e62bd97592e892cefa0f183357c641aa5eea
2021-06-16Initialize VP9EncoderConfig profile and bit depthChunbo Hua
Change-Id: I5c42013a08677cdef8d47f348458118338ff0138
2021-06-15Change the data path in svc rate control testJerome Jiang
Change-Id: Iba58e2aa2578964b5c8b48ab0acbee9b44bcdada
2021-06-14vp9-rtc: Refactor 1 pass vbr rate controlMarco Paniconi
This refactoring is needed to allow the RC_rtc library to support VBR. Change-Id: I863a4a65096fed06b02307098febf7976360e0f3
2021-06-11Update some comments for rc_target_bitrateJames Zern
this mirrors the change from libaom: 5b150b150 Update some comments for rc_target_bitrate Change-Id: Iaabee5924e0320609a29dc8ab71327923fb4c5d2
2021-06-09simple_encode: fix some -Wsign-compare warningsJames Zern
Bug: webm:1731 Change-Id: I1db777c0c3a8784fb3dcf7cd39f78ebf833ab915
2021-06-09simple_encode_test: fix input file pathJames Zern
this allows the file to be located in LIBVPX_TEST_DATA_PATH similar to other test sources. Bug: webm:1731 Change-Id: I51606635d91871e7c179aa8d20d4841b0d60b6ad
2021-06-07L2E: properly init two pass rc parametersCheng Chen
Two pass rc parameters are only initialized in the second pass in vp9 normal two pass encoding. However, the simple_encode API queries the keyframe group, arf group, and number of coding frames without going throught the two pass route. Since recent libvpx rc changes, parameters in the TWO_PASS struct have a great influence on the determination of the above information. We therefore need to properly init two pass rc parameters in the simple_encode related environment. Change-Id: Ie14b86d6e7ebf171b638d2da24a7fdcf5a15c3d9
2021-05-26Fix simple encodeCheng Chen
Properly init and delete cpi struct in simple encode functions. Change-Id: I6e66bcac852cbb3dec9b754ba3fb01a348ac98b8
2021-05-26Fixed redundant wording for decoder algorithm interfaceChunbo Hua
Change-Id: Id56e03dc9cf6d4e70c4681896f29893a9b4c76f2
2021-05-25Merge changes I2e86b005,I971c6261,I87fe4dadJames Zern
* changes: Use 'ptrdiff_t' instead of 'int' for pointer offset parameters Implement vpx_convolve8_avg_vert_neon using SDOT instruction Merge transpose and permute in Neon SDOT vertical convolution
2021-05-25Merge "img_alloc_helper: make align var unsigned"James Zern
2021-05-24Use 'ptrdiff_t' instead of 'int' for pointer offset parametersJonathan Wright
A number of the load/store functions in mem_neon.h use type 'int' for the 'stride' pointer offset parameter. This causes Clang to generate the following warning every time these functions are called with a wider type passed in for 'stride': warning: implicit conversion loses integer precision: 'ptrdiff_t' (aka 'long') to 'int' [-Wshorten-64-to-32] This patch changes all such instances of 'int' to 'ptrdiff_t'. Bug: b/181236880 Change-Id: I2e86b005219e1fbb54f7cf2465e918b7c077f7ee
2021-05-24Implement vpx_convolve8_avg_vert_neon using SDOT instructionJonathan Wright
Add an alternative AArch64 implementation of vpx_convolve8_avg_vert_neon for targets that implement the Armv8.4-A SDOT (signed dot product) instruction. The existing MLA-based implementation of vpx_convolve8_avg_vert_neon is retained and used on target CPUs that do not implement the SDOT instruction (or CPUs executing in AArch32 mode). The availability of the SDOT instruction is indicated by the feature macro __ARM_FEATURE_DOTPROD. Bug: b/181236880 Change-Id: I971c626116155e1384bff4c76fd3420312c7a15b
2021-05-24Merge transpose and permute in Neon SDOT vertical convolutionJonathan Wright
The original dot-product implementation of vpx_convolve8_vert_neon used a separate transpose before and after the convolution operation. This patch merges the first transpose with the TBL permute (necessary before using SDOT to compute the convolution) to significantly reduce the amount of data re-arrangement. This new approach also allows for more effective data re-use between loop iterations. Co-authored by: James Greenhalgh <james.greenhalgh@arm.com> Bug: b/181236880 Change-Id: I87fe4dadd312c3ad6216943b71a5410ddf4a1b5b