Age | Commit message (Collapse) | Author |
|
Change-Id: Id09dc5b653c1e5bb2b02f63579ac776f887ce0eb
|
|
|
|
avg_frame_bandwidth is an int, quiets a clang-tidy warning
Change-Id: I2a2822652ca6a06e9d1d6d4318f544d419d437e8
|
|
Change-Id: I3c1ece92ba9f43df4cbaf47109e35aaf0a807d97
|
|
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>
|
|
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
|
|
BUG=b/159031848
Change-Id: I013770f4e54d0ea92304fa3e9cf4d46f5723f129
|
|
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
|
|
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
|
|
|
|
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
|
|
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
|
|
Fixes the rcstats for case when #spatial_layers = 1.
Change-Id: Ie28d99852033307bc4c69c7e738e1d4cab4e8cf5
|
|
|
|
|
|
Replace fp_motion_vector_info_init() by
fp_motion_vector_info_reset() in first_pass_encode()
Change-Id: Iadacb1ecc4f07435340399564fdd3bfd4ac702f4
|
|
Change-Id: If7d2711e7f37f00629874914f7c4d2396358e39d
|
|
Change-Id: I005a648f7f9ead9d36a39330dfbb096919affb34
|
|
Change-Id: I50b4d38f7deceb5b416e72dd944d2ed31e42dafa
|
|
Change-Id: I05dd4d60741743c13951727ce6608acf4224ebec
|
|
Change-Id: Ic5709b79131a3969fcb2a0eb3f53994f788b5cc9
|
|
Change-Id: Ic2a52dcf5e5a6d57b80d390a2c48ee498e89e7b2
|
|
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
|
|
prefer
https://storage.googleapis.com/downloads.webmproject.org/
to
http://downloads.webmproject.org/
similar to libs.mk
BUG=b/163149610
Change-Id: I6abe0848120849b9512fc5a6122ddc54b5cc2240
|
|
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
|
|
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
|
|
|
|
Change-Id: I133c93c2ad4c824fc97a18de3ac2cb2aedac9013
|
|
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
|
|
|
|
Change-Id: I4de5a38e25d6b0836d90e8fcd0e56d268e5fd838
|
|
BUG=webm:1686
Change-Id: I3ba5215b3791fc2bb63521d11429087cb2abd5b1
|
|
This fixes a lossless encoding bug as reported in the issue tracker.
Coding performance change is neutral.
BUG=webm:1700
Change-Id: I0f034b16b57e917e722709a7e9addef864b83d27
|
|
BUG=webm:1686
Change-Id: I51ecd0fb3da5f0aa36764706f3538d0056fac268
|
|
Make sure to initialize the layer context for spatial-svc
which has a single temporal layer.
Change-Id: I026ecec483555658e09d6d8893e56ab62ee6914b
(cherry picked from commit 1e9929390c8c18ffda02e0073481625e5afb2529)
|
|
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)
|
|
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)
|
|
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)
|
|
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)
|
|
This should clean up clangtidy warnings
Change-Id: Ifb5a986121b2d0bd71b9ad39a79dd46c63bdb998
|
|
|
|
+ fix error return
Change-Id: I48a9ed70fe05df603a49b3c11f813119906fc4fb
|
|
BUG=b/159031848
Change-Id: I6bb88c24bd08e0590ec6b8ebfb696fd9b07ed011
|
|
this matches libaom and provides
GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST
BUG=webm:1695
BUG=b/159031848
Change-Id: Icdaf61481ab2012dd0e517dd1e600045c937c0dd
|
|
BUG=webm:1686
Change-Id: I307cf79a74ca31ea53554a14f468b0582089aa74
|
|
|
|
|
|
BUG=webm:1689
Change-Id: Id920816315c6586cd652ba6cd1b3a76dfc1f12b7
(cherry picked from commit 56345d256ae191e6de042ad82ccf458de3102b8a)
|
|
|
|
Will add a unit test in a followup CL.
Change-Id: I6a6354f307c427e1a352be7c6421927323eb5e1b
|