Age | Commit message (Collapse) | Author |
|
Add encoder control to allow application to insert
spatial layer sync frame. The sync frame disables
temporal prediction for that spatial layer.
This is useful for RTC application to have receiver
start decoding a higher spatial layer, without inserting
a key frame on base spatial layer.
If the layer sync is requested on the base spatial layer
this then force a key frame, otherwise it only disables
the temporal reference for that spatial layer, allowing
temporal prediction to continue for the other layers.
Although the temporal prediction is disabled and reset
on a layer sync frame, the inter-layer prediction for the
sync frame is enabled on INTER frames. So the meaning of
INTER_LAYER_PRED_OFF_NONKEY is modified to mean disable
inter-layer prediction on non-key and non-sync frames.
Added unittest for inserting layer sync frames.
Bump up ABI version.
Change-Id: Id458acc400a77c853551f125c4e7b6d001991f03
|
|
|
|
|
|
Change-Id: I06fc4b0ad5a45c49e10a9601a2356fbc6e93d6da
|
|
|
|
|
|
|
|
Keep denoiser and skin detection disabled since some key functions don't
work with >8 bits source.
Add test for HBD with denoiser and cyclic refresh enabled to make sure
nothing crashes.
BUG=webm:1534
Change-Id: Id61fe1e38ed1768f273870a6bdd5f163aa769fe4
|
|
This commit builds up the temporal prediction dependency propagation
within the group of pictures.
Change-Id: Id04cfc0323e6a5c4ac4a570d53e20d1229b3ee11
|
|
Compute the coding block partition mode cost as additional rdcost
to the cumulative rate-distortion cost from each coding block. This
changes the coding performance slightly due to the rounding error.
The compression performance change is neutral.
Change-Id: Ibdccae0e79263a0e70af7592a8cb11458d795f8d
|
|
Use a linear model to make partition search breakout decisions.
Currently the model is tuned for large quantizers and small resolutions.
So it is only used when q-index is larger than 200 and frame
width/height is smaller than 720. Also it's not yet supported for high
bit depth.
Tested speed 1 and 2 on lowres and midres. Compression performance is
neutral. At low bitrates, encoding speedup is up to 50% for speed 1;
up to 30% for speed 2.
Some sample numbers:
into_tree_480p, speed 1
QP=60 before: 35.228 dB, 3488b/f, 7.78 fps
now: 35.217 dB, 3475b/f, 11.57 fps
QP=50 before: 37.492 dB, 7983b/f, 6.24 fps
now: 37.491 dB, 7974b/f, 7.55 fps
PartyScene_832x480_50, speed 1
QP=60 before: 30.104 dB, 22426b/f, 3.28 fps
now: 30.109 dB, 22410b/f, 4.43 fps
QP=50 before: 33.016 dB, 46984b/f, 2.78 fps
now: 33.018 dB, 46998b/f, 3.35 fps
into_tree_480p, speed 2
QP=60 before: 35.175 dB, 3506b/f, 10.96 fps
now: 35.185 dB, 3510b/f, 13.47 fps
QP=50 before: 37.448 dB, 8016b/f, 9.04 fps
now: 37.459 dB, 8048b/f, 9.81 fps
PartyScene_832x480_50, speed 2
QP=60 before: 30.060 dB, 22537b/f, 4.42 fps
now: 30.061 dB, 22541b/f, 5.38 fps
QP=50 before: 32.923 dB, 47134b/f, 3.85 fps
now: 32.920 dB, 47073b/f, 4.31 fps
Change-Id: I674cba4f027c4c65f7837d5ec9179d6201e6ba86
|
|
|
|
|
|
|
|
Change-Id: I0cd91187e1efc1441086772e5683fbf72d9371cf
|
|
Support intra prediction mode search to find the best intra mode
cost for temporal dependency model building.
Change-Id: Ie62d6af8d0c9f65dee742876f3af9cdd5e3f1d63
|
|
|
|
Change-Id: I89c8ad6544e0cee60b5daf49bc18c7e31f08faa2
|
|
Support the motion compensated prediction search to find the motion
trajectory and hence to build the temporal dependency model.
Change-Id: I861ea85a0d4cc2897cb0dfe2e95378bf7d36209f
|
|
BUG=webm:1534
Change-Id: I535ac48e3dd2454cc7088c4f9a1e08ea74107da6
|
|
* changes:
Prepare motion estimation process for temporal dependency model
Construct temporal dependency building system
|
|
Set up needed stack for the motion estimation process to build up
the temporal dependency model.
Change-Id: I3436302c916a686e8c82572ffc106bf8023404b6
|
|
Schedule the frame processing to construct temporal dependency
statistics within a group of pictures. Align the corresponding
reference frames.
Change-Id: I8969f5c335a4a5c2614f4530b636fe13a25a8a98
|
|
|
|
|
|
|
|
This CL separates the defining of the GF group structure from the
handling of its bitrate allocation. The encoder performance should stay
unchanged.
Change-Id: Ib77967757702bb4b284034e429d4c41ae86d0838
|
|
Allocate buffers to support gather temporal dependency statistics
at the encoder.
Change-Id: I97d4594913a2423e8a916f20caf82ab0f5836961
|
|
The model construction would incur 15% slowdown for speed 2. The
speed change on speed 0 is unnoticeable.
The current speed features set up would DISABLE temporal dependency
model for all speed settings.
Change-Id: Ic45dd962f3a54a8f5f0452502dc05e352dc09ca1
|
|
Add block and frame level data structures to support frame
dependent mode decision.
Change-Id: I996fc84155fcba8e2ec2a114bb0799d6aa5539dd
|
|
Following are completed in defining GF group structure in firstpass:
1. Remove redundant alt_frame_index;
2. Remove hard coded index value with the variable of frame_index.
Change-Id: I7b56e454559bbf704afc7410ea9832b20ffcd57e
|
|
|
|
Change-Id: I370f37c85a02c032a8ba266b9b9445ee38eb0756
|
|
|
|
When golden was the inter-layer reference, a block that selected the golden ref
would not be denoised.
But when golden is used as a second temporal reference then we should denoise
blocks that select the golden reference.
This changes allows for that.
Change-Id: Ifdea2ac88f6a74f73520fedcd7fec2f32c559ec9
|
|
Low bit depth version only. Passes the VP9QuantizeTest test suite.
VP9QuantizeTest Speed Test (POWER8 Model 2.1)
32x32 C time = 93.1 ms (±0.4 ms), VSX time = 6.5 ms (±0.2 ms) [14.4x]
Change-Id: I7f1fd0fc987af86baf2b74147a25aee811289112
|
|
Low bit depth version only. Passes the VP9QuantizeTest test suite.
VP9QuantizeTest Speed Test (POWER8 Model 2.1)
4x4 C time = 86.3 ms (±0.7 ms), VSX time = 18.2 ms (±0.0 ms) [ 4.7x]
8x8 C time = 57.7 ms (±0.3 ms), VSX time = 7.6 ms (±0.0 ms) [ 7.6x]
16x16 C time = 50.7 ms (±0.1 ms), VSX time = 4.9 ms (±0.0 ms) [10.3x]
Change-Id: Ic09bc786c57cc89bba14624064216b52996075eb
|
|
|
|
|
|
|
|
When the second (gf) temporal reference is used in SVC:
the reference is refreshed on base TL superframes, and so
the rc->frames_since_golden counter was also only updated on
base TL frames. But this was disabling the golden reference
from being used as a temporal reference for TL > 0 frames
(since frames_since_golden was 0/not updated on TL > 0 frames).
Fix is to copy the update of rc->frames_since_golden to all
upper temporal layers. This allows TL > 0 frames to test the
golden inter mode.
Gain on RTC set: ~2%, ~8% on desktop_vga clip.
Encode time increase ~5-8% on linux, 3SL-3TL run with 1 thread.
For now keep this off for TL > 0 frames in speed features, so
this change does not change current behavior for speed >= 7.
Change-Id: I405708f3f80039ae47bd64ec53e66f92160acd9e
|
|
Change-Id: I3c9aefd3ea5028797b9105d7e49b1cb2f762a9fc
|
|
Terminate early and skip neural net model when linear score is already
high enough, which indicates that we should not skip split and
rectangular partitions.
No changes on compression; encoding speed improves slightly.
Change-Id: I4e0995090200eb4889344da905d2f7048673af5f
|
|
|
|
For the feature of using second temporal reference (when
inter-layer is off): move the buffer_idx assignement and
refresh flag settings further down to vp9_rc_get_svc_params(),
since is_key_frame is set there for every frame/layer.
Otherwise it was using the setting from the previous frame/layer.
This makes the refresh more consistent for both layers for
2 spatial layers case.
Small/negligible change in metrics.
Change-Id: I88279243bc27898448e8891dba38143d936cf6d5
|
|
Bump up ABI version.
Change-Id: I4498d7ea4ed72994c5f847aa98e75b0150dd7f82
|
|
When inter-layer prediction is disabled on INTER frames, allow
for next highest resolution to have second temporal reference.
Current code allowed for only top/highest spatial layer.
Change-Id: I102137273e3e4d57512a13d95e8ccb9c5b0a7b4b
|
|
|
|
For mode where second temporal reference is used in SVC: allow
for using/testing this reference (golden ref) in the variance
partition scheme (choose_partitioning).
Small positive gain (~0.25%) on metrics for 3 layer SVC,
negligible change in speed.
Change-Id: I29b8315da530e60db3d6c90faa8fb178d9f2de26
|
|
|