summaryrefslogtreecommitdiff
path: root/test/svc_datarate_test.cc
AgeCommit message (Collapse)Author
2018-08-16SVC: extend api to specify temporal id for each spatial layers.Jerome Jiang
BUG=b/112294545 Change-Id: I5be230c8969d69af3ad87068fdf3834ef1af11d9
2018-08-14Merge "vp9: fix memory alloc for adaptive_rd_thresh_row_mt."Jerome Jiang
2018-08-14vp9: fix memory alloc for adaptive_rd_thresh_row_mt.Jerome Jiang
When the feature is enabled and the memory is not available, allocate it. There was a case where speed feature changed in the middle of stream but the number of tiles stayed the same, memory was not re-allocated. Another case is where speed for base layer is different than that of higher quality layers (same resolution). Removed the speed constraints forcing base layer using same speed setting. Thus the memory for adaptive_rd_thresh_row_mt stayed NULL but the feature was enabled. Add an end to end test to cover this case. Change-Id: I2f1f802ef98a554571b30094d3600b9439228457
2018-08-13vp9-svc: Fixes for cyclic refresh for SVC.Marco Paniconi
Add metrics that are being updated per-frame to the layer struct, so each layer using the cyclic refresh has the correct update. This is more consistent for the rate control and refresh rate. Some improvement in screen content clips. Neutral for SVC on rtc set. Change-Id: I0a9862fb6b6a79e894e2ff30c120dc4aa26fcda5
2018-08-12vp9-svc: Unittest for screen mode with quality layersMarco Paniconi
Add datarate unittest for SVC screen content mode, with 2 quality layers. Change-Id: I9c8ad5462fd046698052bea6d7343c2b7e16668f
2018-08-09vp9-svc: Update to SET/GET_SVC_REF_FRAME_CONFIG apiJerome Jiang
Add update_buffer_slot to SVC API to allow for refreshing any of the 8 reference buffers. Remove frame_flags from the struct. Remove svc tests from vp8 build. BUG=b/112292577 Change-Id: I0551c349d2b311227245a8ed1639cdbbaf5bc5db
2018-08-01vp9 svc: Adjust overshoot threshold in datarate test.Jerome Jiang
BUG=webm:1554 Change-Id: I69f9353266a290ae3c6ac9e51c960fff6e1af205
2018-07-30Enable aq mode 3 for all datarate tests.Jerome Jiang
Change-Id: I4e9c73d6d1d9ea560f04cc37aaf99d58ec2ab551
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-06-26vp9 svc: Move CheckLayerRateTargeting into class.Jerome Jiang
No need to pass arguments that are already members of the class. Change-Id: I887d33d6037b561dee5dd8d49bb112d9120cd2a7
2018-06-23VP9 SVC: Add tests for layer sync on base layer.Jerome Jiang
Create tests for sync layer. The purpose of new tests is not to check bitrate targeting, thus they're put in a new file. Create a base class for svc tests, which is also inherited by svc datarate tests, to reduce code redundancy. Start decoding in the test from the frame of layer sync. Change-Id: I7226d208279ad785873dffef51e0a8abef23b256
2018-06-20vp9-svc: Add support for spatial layer sync frames.Marco Paniconi
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
2018-06-14vp9 svc: add tests for inter layer prediction.Jerome Jiang
Change-Id: Ic8e07b07790e067c014677cf33c3b016fcf4cb39
2018-05-24vp9-svc: Add max_consec_drop to SVC frame drop.Marco Paniconi
For any spatial, limits the amount of consecutive frame drop. Change-Id: I692d90363f329f571f2b59e12cc680ad2e76065d
2018-05-19vp9-svc: Fix issue with reseting lst_fb_idx.Marco Paniconi
When encoding a given spatial layer and the same spatial layer on previous superframe was dropped (or disabled due to 0 bitrate), the lst_fb_idx for current layer is set to the buffer index that was last updated on TL0 frame (for the same spatial layer). This condition was to maintain proper temporal prediction pattern under frame drops, and it should only apply to INTER frames. But the condition was causing an assert to be triggered on spatial layers whose base are key frames. Fix is to condition this reset of lst_fb_idx on the "is_key_frame" flag. Also initialize the fb_idx_upd_tl0 to -1 and only use it for a given spatial layer if its been set. These issues can happen when superframe drop happens just before a key frame, or when stream starts with lower layers and dynamically enabled higher spatial layers. Added datarate unittest the inserts key frame after superframe drop, and verified that this fix is needed for test to pass. Also modified the existing DisableEnable spatial layer test to trigger the issue of using fb_idx_upd_tl0 when it hasn't been set for a spatial layer. Change-Id: I059d1135736aca17e1326b9b4a2b16371eb4634e
2018-05-14VP9: Add speed 9 for subpel search.Jerome Jiang
Set subpel search stop to 2 when motion vector is non zero. 10% speedup on 1 and 2 threads on Samsung Galaxy S8+. Change-Id: I7323bb913000229cf60a37495bf88bcc51d0ac96
2018-05-11vp9-svc: Fix when whole superframe is dropped.Marco Paniconi
When the whole superframe is dropped (due to rate control), don't increment the temporal layer counter. This is a temporary fix to prevent an issue where temporal prediction pattern is possibly broken. Updated svc_datarate tests to handle this case. Change-Id: Icac44fdc9d0f08a957776c937584db4b2c7927c7
2018-04-18SVC: Fix duplicated run of svc datarate tests.Jerome Jiang
Change-Id: I3f4e45b398009852f1183943461625d621c4eb80
2018-04-12vp9 svc: Refactor svc datarate test for better sharding.Jerome Jiang
Wrap denoiser tests under config flags. Change-Id: I6175c3c9d8b5b079ad35a55553383145db58a10f
2018-04-09Merge "vp9-svc: Make constrained_layer_drop default for svc."Marco Paniconi
2018-04-09vp9-svc: Make constrained_layer_drop default for svc.Marco Paniconi
Switch the order of constrained and layer drop mode, and keep constrained_layer_drop as the default. Update the svc datarate tests. Change-Id: I764270f7b4964b87b0cd3da6c2f96a628f212a30
2018-04-06Fix settings for num of tiles in samples & tests.Jerome Jiang
The control is set by log2 of number of threads (such that the number of tiles is the same of number of threads). Thus it should be log2(num_threads) instead of (num_threads >> 1). Change-Id: I2ccec5557e660048dad3e561534e1c74fc8eec1f
2018-03-30Code cleanup for datarate tests.Jerome Jiang
Add/Remove static to functions. Name change. Change-Id: I5de3efc23cd151fe8e70fe67a7a11acfcfa707dc
2018-03-29Split datarate_test.cc to vp8, vp9, svc ones.Jerome Jiang
As we add more tests to datarate_test.cc, it's growing bigger and hard to find specific test. Split it to vp8, vp9 and svc ones. Change-Id: Ie8c302010cf304a95554bee19d87ddc90498d0fb