Age | Commit message (Collapse) | Author |
|
Increase the temporal dependency model operating block size from
8x8 to 32x32.
Change-Id: I26b13493fe957d67c8646575370e651584b56ea5
|
|
The factor mc_dep_cost includes intra_cost additiona already. Hence
no need to add it again in the denominator.
Change-Id: I750ae86e1d3019b4a3aebd03dec8db362589619e
|
|
Currently only enable the temporal model for ARFs.
Change-Id: I6e7fd7bba54c3e0cf56147f049fc3ead85542d04
|
|
Use this flag to indicate the temporal dependency model for the
given frame is properly set up.
Use the pointer address to decide if the tpl_stats_ptr array needs
to be released.
Change-Id: I541fe098f51981010011ae0af2535d8a5762d254
|
|
|
|
It is already initialized at superblock level, but since
it is computed per coding block, based on some speed features,
better to initialize it in pick_inter.
No change in behavior, as currently the speed features
that enable use of source_variance in pick_inter are fixed
at the frame-level.
Change-Id: Ic787ac2f389ba1bced98716096e7b5cffba856a7
|
|
defer the allocation to post speed feature setup
Change-Id: I20713a2b1856fd5479c883d50772a2b54bcbb3bc
|
|
Use case is for layered (SVC) coding to allow higher
resolution layers to continue decoding with temporal references,
while base spatial layer is intra-only frame.
Made encoder changes to real-time path for encoding intra-only
frame. The intra-only frame will be followed by the overlay/copy
frame (with both packed in the same superframe).
Use existing control to enable intra_only frame.
Intra only is only applied to base spatial layer, and only
allowed under fixed/non-flexible SVC mode, and only for
1 < number_spatial_layers < 4.
Added svc datarate unittest for inserting intra_only frame
as sync frame. Added svc end to end tests to check mismatch.
Change-Id: I2f4f0106b2c4f51ce77aa2c1c6823ba83ff2f7a0
Signed-off-by: Marco Paniconi <marpan@google.com>
|
|
|
|
|
|
Change-Id: I23559110bae8fa2328fe9bdb6672c7b1da84e17f
|
|
For screen-content: use the previous actual number of seg
blocks for the segment weight, used in the rate control
for setting frame-level Q.
Small overall increase in psnr on several screen-content clips.
Change-Id: Id414fb7f1b0ba578d464437d7f9c1783a0cad310
|
|
Skip operations that exercise the tpl model values if the model
is turned off.
Change-Id: I9ab3b56950f6b5a40ae4670a570885aaaadf8382
|
|
|
|
Reset segment to base (segment#0) on spatially flat
stationary blocks (source_variance = 0). Also increase
dc_skip threshold for these blocks.
Reduces artifacts on flat areas in screen content mode.
Change-Id: I7ee0c80d37536db7896fa74a83f75799f1dcf73d
|
|
|
|
|
|
|
|
Reset the last_coded_q_map and the sb->index in the cyclic_refresh
on a re-encode for slide change, so the refresh can start again
right after slide change.
Change-Id: I10cbc8354de8f7c2863b4212e6793b58a048b330
|
|
|
|
Refresh all denoiser buffers on sync frame.
Add sync frame test with denoiser enabled.
Change-Id: I562a5ef5614b92a97565e6181a79eda51d9aeb99
|
|
Add scene detection flag to choose_partitioning to force split
of 64x64 block partition. This reduces artifacts on slide changes.
Bug:b/110978869
Change-Id: I9cc79a7c03f3aa2edeb28656b09a2177b72d59a8
|
|
Add partition search breakout models for 720p resolution,
currently enabled only for speed 0.
Compression performance change is neutral.
Tested encoding speed over 20 720p clips:
Speed gain(%) QP=55 QP=45 QP=35
max 22.1 20.3 29.8
average 10.3 9.1 11.4
Change-Id: I07499728bbc5b80035fc66fad882ea556c8d07f2
|
|
Adapt the Lagrangian multipler based on the spatial variance in
the temporal dependency model. The functionality is disabled by
default. To turn on, set enable_tpl_model to 1.
Change-Id: I1b50606d9e2c8eb9c790c49eacc12c00d3d7c211
|
|
Change-Id: I26ced25ff2e20ec414d5ecaa7d26f4a69175896c
|
|
|
|
|
|
|
|
Use the avg_frame_low_motion to reduce/turnoff this
early exit for higher motion content. Get some quality
back for higher motion clips and keep the same exit
thresh for low motion clips.
Change-Id: I95daf754dc0048b3e935d1a753f7f1101e6ffb77
|
|
Change-Id: I888761193882cc92720e0efaea5229a04a6ed67f
|
|
If the rate cost returns as INT_MAX, directly set the rdcost as
INT64_MAX.
Change-Id: I3ea1963aff10040dd9cef805beed9aebeedb93bc
|
|
This patch relates to motion artifacts as described in Issue 73484098
The aim of this patch is to promote the use of smaller partition
sizes in places where some of the sub blocks have very low
spatial complexity and some have much higher complexity.
The patch can have a small impact on encode speed, but much
less than alternative approaches such as lowering the rd thresholds
that limit the partition search when distortion is low.
The patch also applies a similar sub block strategy for AQ1.
Metrics results for our standard sets over typical YT rates.
(Overall PSNR, SSIM, PSNR HVS) % -ve better.
Low Res -0.274, -0.303, -0.330
Mid Res 0.001, - 0.128, -0.100
Hd Res -0.236, -0.371, -0.349
N 2K -0.663, -0.798, -0.708
N 4K -0.488, -0.588, -0.517
Change-Id: Ice1fc977c1d29fd5e401f9c7c8e8ff7a5f410717
|
|
|
|
The avg_frame_low_motion metric is only computed on the
top spatial layer, and since its part of the layer context
struct, it needs to written to all lower spatial layers for
consistency.
Small/minor change in metrics.
Change-Id: I92a001c37aeb332e613212288b13a2ed9745af88
|
|
For SVC: apply the sse_zeromv early exit also to
the case where golden is second temporal reference.
Set the thresh_svc_golden threshold for this case.
This is reduce the encode time for case where golden
is second temporal reference for SVC.
Change-Id: I8c0c87dd746579d3c4f5e983c7f9dd0a1e1476e0
|
|
|
|
* changes:
[VSX] Replace vec_pack and vec_perm with single vec_perm
VSX Version of fdct32x32_rd
|
|
|
|
vpx_quantize_b:
VP9QuantizeTest Speed Test (POWER8 Model 2.1)
32x32 Old VSX time = 8.1 ms, new VSX time = 7.9 ms
vp9_quantize_fp:
VP9QuantizeTest Speed Test (POWER8 Model 2.1)
32x32 Old VSX time = 6.5 ms, new VSX time = 6.2 ms
Change-Id: Ic2183e8bd721bb69eaeb4865b542b656255a0870
|
|
Enable ML based partition search breakout on speed 0 when frame
resolution is less then 720p and bitdepth is 8.
Compression performance change is neutral.
Tested encoding speed over 20 480p sequences:
Speed gain(%) QP=30 QP=40 QP=50 QP=60
max 14.4 18.6 17.8 24.4
average 4.6 9.0 8.0 13.2
Change-Id: Ia0d2947030ac774dc1533eb27ffc57f5b788a6ce
|
|
Disable the cyclic refresh for very low average Q.
This reduces encoded bitrate for static slides after the
the quality has ramped up well enough (low Q). And as the
cyclic refresh is not needed at low Q in most cases, this
has minimal/no effect on quality on RTC set.
Change-Id: Id6d449aa2351bb6886d72aafb2d406e967ed2789
|
|
|
|
|
|
|
|
Fixes to nonrd coding mode for lossless mode: keep
skip_txfm to 0 (no skip) and disable the encoder breakout.
This makes the encoding lossless when that mode is selected
for real-time (nonrd pickmode).
Also the disable the cyclic refresh for lossless mode.
Change-Id: I20a11ef6df08accec472d26fabebd14d51f4d337
|
|
Fix condition in frame dropper for SVC to handle case
where spatial layer is skipped encoded (due to 0 bitrate).
Change-Id: I24185178774d73e8bb1c406acc0292422dfbe174
|
|
for q-index between 100 and 150.
This only affects speed 1 and 2, resolution under 720p, q-index between
100 and 150, low bit-depth.
Compression performane change is neutral.
Encoding speed gain is up to 16% for speed 1;
up to 6% for speed 2.
Results from encoding city_4cif_30fps:
speed 1, QP=36
before: 37.964 dB, 45581b/f, 2.73 fps
after: 37.958 dB, 45510b/f, 3.16 fps
speed 1, QP=28
before: 39.297 dB, 82452b/f, 2.14 fps
after: 39.297 dB, 82310b/f, 2.25 fps
speed 2, QP=36
before: 37.903 dB, 45586b/f, 4.08 fps
after: 37.895 dB, 45492b/f, 4.34 fps
speed 2, QP=28
before: 39.224 dB, 82272b/f, 3.03 fps
after: 39.223 dB, 82152b/f, 3.17 fps
Change-Id: Ieaefedad902df80aa9699545fa06294601955803
|
|
Previous CLs have implemented the construction of the hierarchical
structure at the encoder side. This CL is to define and configure the
according flags that will guide the reference frame update according to
the constructed hierarchical structure.
Change-Id: Iae55f2400f7c7beff41feff9308f87bfc70c7b21
|
|
|
|
This CL is to hook up the implemented hierarchical structure
construction as well as its corresponding bitrate allocation
functionality with the defining of a GF group.
Currently the hierarchical structure is off by default. Hence this CL
has no impact on coding performance.
Change-Id: I9e1ddfd877559e99072c23970f7fe103b64ed9ee
|