summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-09-30Add file for rate control interface test.Jerome Jiang
Change-Id: Id09dc5b653c1e5bb2b02f63579ac776f887ce0eb
2020-09-16Merge "vp9_ratectrl,vp9_resize_one_pass_cbr: rm redundant casts"James Zern
2020-09-16vp9_ratectrl,vp9_resize_one_pass_cbr: rm redundant castsJames Zern
avg_frame_bandwidth is an int, quiets a clang-tidy warning Change-Id: I2a2822652ca6a06e9d1d6d4318f544d419d437e8
2020-09-16test/encode_test_driver: rm redundant get() w/unique_ptrJames Zern
Change-Id: I3c1ece92ba9f43df4cbaf47109e35aaf0a807d97
2020-09-14vp8: Remove sched_yield on POSIX systemsJoel Fernandes
libvpx does sched_yield() on Linux. This is highly frowned upon these days mainly because it is not needed and causes high scheduler overhead. It is not needed because the kernel will preempt the task while it is spinning which will imply a yield. On ChromeOS, not yielding has the following improvements: 1. power_VideoCall test as seen on perf profile: With yield: 9.40% [kernel] [k] __pi___clean_dcache_area_poc 7.32% [kernel] [k] _raw_spin_unlock_irq <-- kernel scheduler Without yield: 8.76% [kernel] [k] __pi___clean_dcache_area_poc 2.27% [kernel] [k] _raw_spin_unlock_irq <-- kernel scheduler As you can see, there is a 5% drop in the scheduler's CPU utilization. 2. power_VideoCall test results: There is a 3% improvement on max video FPS, from 30 to 31. This improvement is consistent. Also note that the sched_yield() manpage itself says it is intended only for RT tasks. From manpagE: "sched_yield() is intended for use with real-time scheduling policies (i.e., SCHED_FIFO or SCHED_RR) and very likely means your application design is broken." BUG=b/168205004 Change-Id: Idb84ab19e94f6d0c7f9e544e7a407c946d5ced5c Signed-off-by: Joel Fernandes <joelaf@google.com>
2020-09-10googletest: enable failure on uninstantiated testsSarah Parker
Similar to the change in https://aomedia-review.googlesource.com/c/aom/+/115162. This currently is a warning, but the tree should be clean now in the default x86-64 configuration so we can use it to prevent regressions and find any remaining issues in other configurations. BUG=b/159031844 Change-Id: I097537ff018668492d37164fdba5edd241dc5dbe
2020-09-11Upstream GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TESTSarah Parker
BUG=b/159031848 Change-Id: I013770f4e54d0ea92304fa3e9cf4d46f5723f129
2020-08-25vp9-rtc: Add control to disable maxq on overshootMarco Paniconi
Add encoder control to disable feature to increase Q on overshoot detection, for CBR. Default (no usage of the control) means the feature is internally enabled. Add the control to the sample encoders, but keep it disabled as default (set to 0, so feature is on). Change-Id: Ia2237bc4aaea9770e5080dab20bfff9e3fd09199
2020-08-19Escape number sign in MakefilesDaniel Sommermann
Number signs are handled differently in Makefile variable parsing as compared to bash variable parsing. See this demo: ``` $ cat Makefile A=foo#bar B='foo#bar' C="foo#bar" D=foo\#bar E='foo\#bar' F="foo\#bar" $(info $(A)) $(info $(B)) $(info $(C)) $(info $(D)) $(info $(E)) $(info $(F)) $ make foo 'foo "foo foo#bar 'foo#bar' "foo#bar" make: *** No targets. Stop. $ make -v GNU Make 4.2.1 ``` In other words, the `#` character is evaluated first when parsing Makefiles, causing the rest of the line to become a comment. The effect of this is that paths that contain embedded `#` symbols are not handled properly in the vpx build system. To test this change, clone vpx to a directory containing a `#` symbol and attempt a build. With this change, it worked for me on Fedora 31, however without the change the build failed. Change-Id: Iaee6383e2435049b680484cc5cefdea9f2d9df46
2020-08-19Merge "Refine MMI & MSA detection for mips"James Zern
2020-08-18vp9-svc: Fix to resetting RC for temporal layersMarco Paniconi
Fix to reset RC for temporal layers: the first_spatial_layer_to_encode is usually/default 0, so the logic to reset for temporal layers was not being executed. Use VPXMAX(1, ) to make sure all temporal layers will be reset (when max-q is used for overshoot). Change-Id: Iec669870c865420d01d52eab9425cd6c7714eddc
2020-08-19Refine MMI & MSA detection for mipsjinbo
1.Add compile check to probe the native ability of toolchain to decide whether a feature can be enabled. 2.Add runtime check to probe cpu supported features. MSA will be prefered if MSA and MMI are both supported. 3.You can configure and build as following commands: ./configure --cpu=loongson3a && make -j4 Change-Id: I057553216dbc79cfaba9c691d5f4cdab144e1123
2020-08-17rtc-vp9: Fix to rcstats in vp9_spatial_svc_encoderMarco Paniconi
Fixes the rcstats for case when #spatial_layers = 1. Change-Id: Ie28d99852033307bc4c69c7e738e1d4cab4e8cf5
2020-08-13Merge "Merge remote-tracking branch 'origin/quacking' into master"Jerome Jiang
2020-08-12Merge "test/*: use canonical downloads.webmproject url"James Zern
2020-08-10Avoid re-allocating fp_motion_vector_infoangiebird
Replace fp_motion_vector_info_init() by fp_motion_vector_info_reset() in first_pass_encode() Change-Id: Iadacb1ecc4f07435340399564fdd3bfd4ac702f4
2020-08-10Cosmetic changes in simple_encode.hangiebird
Change-Id: If7d2711e7f37f00629874914f7c4d2396358e39d
2020-08-10Correct the first pass motion vector scaleangiebird
Change-Id: I005a648f7f9ead9d36a39330dfbb096919affb34
2020-08-10Cosmetic change for simple_encode_test.ccangiebird
Change-Id: I50b4d38f7deceb5b416e72dd944d2ed31e42dafa
2020-08-10Make target_frame_bits error margin configurable.angiebird
Change-Id: I05dd4d60741743c13951727ce6608acf4224ebec
2020-08-10Avoid division by zero for rate q_step modelangiebird
Change-Id: Ic5709b79131a3969fcb2a0eb3f53994f788b5cc9
2020-08-07Add rq_history to encode_frame_resultangiebird
Change-Id: Ic2a52dcf5e5a6d57b80d390a2c48ee498e89e7b2
2020-08-07Fix ObserveFirstPassMotionVectors()angiebird
1) Use kRefFrameTypeNone in the unit test 2) Reset mv_info in fp_motion_vector_info_init 3) Call fp_motion_vector_info_init() in first_pass_encode() 4) Set mv_info for intra frame. 5) Set mv_info with zero mv as default for inter frame 6) Remove duplicated fp_motion_vector_info in encode_frame_info Change-Id: I2f7db5cd4cf1f19db039c9ce638d17b832f45b6e
2020-08-07test/*: use canonical downloads.webmproject urlJames Zern
prefer https://storage.googleapis.com/downloads.webmproject.org/ to http://downloads.webmproject.org/ similar to libs.mk BUG=b/163149610 Change-Id: I6abe0848120849b9512fc5a6122ddc54b5cc2240
2020-08-06Make initial q_index guess at 128angiebird
This reduce the average recode times per frame from 2.81 to 2.73 when targeting 15% error for target bitrate per frame. Change-Id: I58f0be86443643ba23623cb1d522ae41897734a3
2020-08-06Correct rq_model_update when recode_count == 1angiebird
This will reduce the avg recode times per frame form 3.19 to 2.81 when targeting 15% error margin for target bitrate per frame. Change-Id: I28c9ec09a1b1318c09fe5229ccb7e51b32b9dfb9
2020-08-06Merge "Cosmetic changes for rate_ctrl experiment"Angie Chiang
2020-08-05Cosmetic changes for rate_ctrl experimentangiebird
Change-Id: I133c93c2ad4c824fc97a18de3ac2cb2aedac9013
2020-08-03L2E: Add ObserveFirstPassMotionVectorCheng Chen
Store motion vectors for each 16x16 block found in the first pass motion search. Provide an api "ObserveFirstPassMotionVector()" in SimpleEncode class, similar to "ObserveFirstPassStats()". Change-Id: Ia86386b7e4aa549f7000e7965c287380bf52e62c
2020-08-04Merge "Add recode loop logics for rate_ctrl experiment"Angie Chiang
2020-08-03Add recode loop logics for rate_ctrl experimentangiebird
Change-Id: I4de5a38e25d6b0836d90e8fcd0e56d268e5fd838
2020-07-31Merge remote-tracking branch 'origin/quacking' into masterJerome Jiang
BUG=webm:1686 Change-Id: I3ba5215b3791fc2bb63521d11429087cb2abd5b1
2020-07-31Assign correct values for zcoeff_blk in sub8x8 RDOHui Su
This fixes a lossless encoding bug as reported in the issue tracker. Coding performance change is neutral. BUG=webm:1700 Change-Id: I0f034b16b57e917e722709a7e9addef864b83d27
2020-07-30Update CHANGELOGJerome Jiang
BUG=webm:1686 Change-Id: I51ecd0fb3da5f0aa36764706f3538d0056fac268
2020-07-30vp9-svc: Fix the bitrate control for spatial svcSreerenj Balachandran
Make sure to initialize the layer context for spatial-svc which has a single temporal layer. Change-Id: I026ecec483555658e09d6d8893e56ab62ee6914b (cherry picked from commit 1e9929390c8c18ffda02e0073481625e5afb2529)
2020-07-30vp9-svc: Fix to setting frame size for dynamic resizeMarco Paniconi
For svc with dynamic resize (only for single_layer_svc mode), add flag to indicate resized width/height has already been set, otherwise on the resized/trigger frame (resize_pending=1), the wrong resolution may be set if oxcf->width/height is different than layer width/height in single_layer_svc mode. Change-Id: I24403ee93fc96b830a9bf7c66d763a48762cdcb4 (cherry picked from commit de4aedaec33c6c29f882f99a740713596713a1f9)
2020-07-30vp9-rtc: Fix to resetting drop_spatial_layerMarco Paniconi
The reset happens on the base spatial layer, before encoding. But it should be reset on the first_spatial_layer_to_encode, which may not be 0. Change-Id: I38ef686b4459ca7433062adbfe32ef2134e1ad60 (cherry picked from commit 769129fb29fc66720be2b01276a472c334757d2d)
2020-07-30vp9-svc: Add svc test for denoiser and dynamic resizeMarco Paniconi
This catches the assert/crash fixed in 5174eb5. Also fix to only check for dynamic resize in SVC mode for base temporal layer. Change-Id: Ie6eb7d233cc43eafb1b78cec4aeb94fb4d7fe11a (cherry picked from commit 3101666d2a8b5b2e6bff14ffb39db685f1cc98a0)
2020-07-30vp9-svc: Fix to dynamic resize for svc denoisingMarco Paniconi
Fix the logic to allow denoiser reset on resize for SVC mode, as dynamic resize is allowed for SVC under single_layer mode. Change-Id: I7776c68dadff2ccbce9b0b4a7f0d12624c2ccf90 (cherry picked from commit 5174eb5b9236a76c24e7bfadd0665d7b765395e1)
2020-07-27NULL -> nullptr in CPP filesJerome Jiang
This should clean up clangtidy warnings Change-Id: Ifb5a986121b2d0bd71b9ad39a79dd46c63bdb998
2020-07-23Merge "libs.mk: quiet curl output"James Zern
2020-07-23libs.mk: quiet curl outputJames Zern
+ fix error return Change-Id: I48a9ed70fe05df603a49b3c11f813119906fc4fb
2020-07-23Silience warnings about uninitiated test casesJerome Jiang
BUG=b/159031848 Change-Id: I6bb88c24bd08e0590ec6b8ebfb696fd9b07ed011
2020-07-22update googletest to release-1.10.0-224-g23b2a3b1James Zern
this matches libaom and provides GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST BUG=webm:1695 BUG=b/159031848 Change-Id: Icdaf61481ab2012dd0e517dd1e600045c937c0dd
2020-07-21Update README, AUTHORS and libs.mkJerome Jiang
BUG=webm:1686 Change-Id: I307cf79a74ca31ea53554a14f468b0582089aa74
2020-07-20Merge "Build libsimple_encode.a separately" into quackingJerome Jiang
2020-07-20Merge "vp8,vpx_dsp: [loongson] fix msa optimization bugs"James Zern
2020-07-20Build libsimple_encode.a separatelyangiebird
BUG=webm:1689 Change-Id: Id920816315c6586cd652ba6cd1b3a76dfc1f12b7 (cherry picked from commit 56345d256ae191e6de042ad82ccf458de3102b8a)
2020-07-20Merge "Build libsimple_encode.a separately"Angie Chiang
2020-07-20Add init version of EncodeFrameWithTargetFrameBits()angiebird
Will add a unit test in a followup CL. Change-Id: I6a6354f307c427e1a352be7c6421927323eb5e1b