summaryrefslogtreecommitdiff
path: root/vp9
AgeCommit message (Collapse)Author
2018-07-11Change the tpl model operating block size to 32x32Jingning Han
Increase the temporal dependency model operating block size from 8x8 to 32x32. Change-Id: I26b13493fe957d67c8646575370e651584b56ea5
2018-07-10Fix the denominator in tpl modelJingning Han
The factor mc_dep_cost includes intra_cost additiona already. Hence no need to add it again in the denominator. Change-Id: I750ae86e1d3019b4a3aebd03dec8db362589619e
2018-07-10Enable tpl model only for ARFsJingning Han
Currently only enable the temporal model for ARFs. Change-Id: I6e7fd7bba54c3e0cf56147f049fc3ead85542d04
2018-07-10Properly set the is_valid flag in tpl_frameJingning Han
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
2018-07-10Merge "vp9_encoder: only alloc tpl stats if enabled"James Zern
2018-07-10vp9: Initialize source variance in nonrd-pickmode.Marco Paniconi
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
2018-07-09vp9_encoder: only alloc tpl stats if enabledJames Zern
defer the allocation to post speed feature setup Change-Id: I20713a2b1856fd5479c883d50772a2b54bcbb3bc
2018-07-09vp9-svc: Intra-only frame for spatial layers.Marco Paniconi
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>
2018-07-06Merge "Add hierarchical structure based ref frame update"Zoe Liu
2018-07-02Merge "Add enable-tpl-model guard"Jingning Han
2018-07-02Add hierarchical structure based ref frame updateZoe Liu
Change-Id: I23559110bae8fa2328fe9bdb6672c7b1da84e17f
2018-07-02vp9: Adjust segment weight for cyclic refresh.Marco Paniconi
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
2018-07-02Add enable-tpl-model guardJingning Han
Skip operations that exercise the tpl model values if the model is turned off. Change-Id: I9ab3b56950f6b5a40ae4670a570885aaaadf8382
2018-07-02Merge "Exploit the spatial variance in temporal dependency model"Jingning Han
2018-07-01vp9: Fix to screen content artifact for real-time.Marco Paniconi
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
2018-06-30Merge "vp9: copy source on sync frame in denoiser."Jerome Jiang
2018-06-30Merge "vp9: Reset params for cyclic refresh on slide change"Marco Paniconi
2018-06-30Merge "vp9: Reduce quality artifact for real-time scene-content."Marco Paniconi
2018-06-29vp9: Reset params for cyclic refresh on slide changeMarco Paniconi
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
2018-06-29Merge "Add partition breakout models for 720p resolution"Hui Su
2018-06-29vp9: copy source on sync frame in denoiser.Jerome Jiang
Refresh all denoiser buffers on sync frame. Add sync frame test with denoiser enabled. Change-Id: I562a5ef5614b92a97565e6181a79eda51d9aeb99
2018-06-29vp9: Reduce quality artifact for real-time scene-content.Marco Paniconi
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
2018-06-29Add partition breakout models for 720p resolutionHui Su
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
2018-06-29Exploit the spatial variance in temporal dependency modelJingning Han
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
2018-06-29Refactor to use unified multiplier for partition searchJingning Han
Change-Id: I26ced25ff2e20ec414d5ecaa7d26f4a69175896c
2018-06-29Merge "Enhanced partition experiment."Paul Wilkins
2018-06-29Merge "Skip temporal dependency build when the speed feature is off"Jingning Han
2018-06-29Merge "Avoid operation on INT64_MAX value"Jingning Han
2018-06-28vp9-svc: Adjust threshold for early exit on goldenMarco Paniconi
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
2018-06-28Skip temporal dependency build when the speed feature is offJingning Han
Change-Id: I888761193882cc92720e0efaea5229a04a6ed67f
2018-06-28Avoid operation on INT64_MAX valueJingning Han
If the rate cost returns as INT_MAX, directly set the rdcost as INT64_MAX. Change-Id: I3ea1963aff10040dd9cef805beed9aebeedb93bc
2018-06-28Enhanced partition experiment.Paul Wilkins
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
2018-06-28Merge "vp9-svc: Fix to early golden exit nonrd-pickmode"Marco Paniconi
2018-06-27vp9-svc: Set avg_frame_low_motion for lower layers.Marco Paniconi
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
2018-06-27vp9-svc: Fix to early golden exit nonrd-pickmodeMarco Paniconi
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
2018-06-27Merge "Add reference frame update flags for hierarchical"Zoe Liu
2018-06-27Merge changes Ic2183e8b,If906ec9bLuc Trudeau
* changes: [VSX] Replace vec_pack and vec_perm with single vec_perm VSX Version of fdct32x32_rd
2018-06-27Merge "Turn on ML partition search breakout on speed 0"Hui Su
2018-06-27[VSX] Replace vec_pack and vec_perm with single vec_permLuc Trudeau
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
2018-06-26Turn on ML partition search breakout on speed 0Hui Su
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
2018-06-25vp9: Add lower Q limt to cyclic refresh usage.Marco Paniconi
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
2018-06-25Merge "vp9: Fixes for lossless mode for real-time mode."Marco Paniconi
2018-06-25Merge "vp9-svc: Fix to frame dropping when layer is skipped."Marco Paniconi
2018-06-25Merge "Add a partition search breakout model"Hui Su
2018-06-25vp9: Fixes for lossless mode for real-time mode.Marco Paniconi
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
2018-06-25vp9-svc: Fix to frame dropping when layer is skipped.Marco Paniconi
Fix condition in frame dropper for SVC to handle case where spatial layer is skipped encoded (due to 0 bitrate). Change-Id: I24185178774d73e8bb1c406acc0292422dfbe174
2018-06-24Add a partition search breakout modelHui Su
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
2018-06-22Add reference frame update flags for hierarchicalZoe Liu
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
2018-06-22Merge "Add extra altref option for hierarchical structure"Zoe Liu
2018-06-22Add extra altref option for hierarchical structureZoe Liu
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