summaryrefslogtreecommitdiff
path: root/test/svc_test.cc
AgeCommit message (Collapse)Author
2020-11-12vp9: Allow for disabling loopfilter per spatial layerMarco Paniconi
For SVC: add parameter to the control SET_SVC_PARAMS to allow for disabling the loopfilter per spatial layer. Note this svc setting will override the setting via VP9E_SET_DISABLE_LOOPFILTER (which should only be used for non-SVC). Add unittest to handle both SVC (spatial or temporal layers) and non-SVC (single layer) case. Change-Id: I4092f01668bae42aac724a6df5b6f6a604337448
2018-12-04Refactor datarate svc test.Jerome Jiang
Bring some repeated test set up into a function. Change-Id: I6acc545a349dc16581a23baf848c91ec36a2e83f
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-07-30Enable aq mode 3 for all datarate tests.Jerome Jiang
Change-Id: I4e9c73d6d1d9ea560f04cc37aaf99d58ec2ab551
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-03-14remove spatial svc experimentJohann
Change-Id: Ifda11caaf992d10f2d93d6cd1d07b79b6047be05
2016-11-28svc_test: fix two warningsJim Bankoski
Use of possibly uninitialized variable and missing test initializer. Change-Id: I2192c81c39ef4239cc11a309850c0ee8781ef17e
2016-07-27test: apply clang-formatclang-format
Change-Id: I0d9ab85855eb723f653a7bb09b3d0d31dd6cfd2f
2015-06-02Vidyo patch: Rate control for SVC, 1 pass CBR mode.Marco
-Make Rate control work for SVC 1 pass CBR mode. -Added temporal layering mode. -Fixed bug in non-rd variance partition. -Modified/updated the sample encoders (vp9_spatial_svc_encoder, vpx_temporal_svc_encoder). -Added datarate unittest(s) for 1 pass CBR SVC. Change-Id: Ie94b1b68a56ea1267b5087c625e5df04def2ee48
2015-04-16[svc] Fix syntax error when encoding multiple tiles.Minghai Shang
Change-Id: Ia77b551415f3b3386e22a6c805f244f2d13fe3e3
2014-10-16[spatial svc]Another workaround to avoid using prev_miMinghai Shang
We encode a empty invisible frame in front of the base layer frame to avoid using prev_mi. Since there's a restriction for reference frame scaling factor, we have to make it smaller and smaller gradually until its size is 16x16. Change remerged. Change-Id: I9efab38bba7da86e056fbe8f663e711c5df38449
2014-10-16Revert "[spatial svc]Another workaround to avoid using prev_mi"Paul Wilkins
This reverts commit c113457af9880b8e15a36cdaabfd414d1c245693. Temporary revert to allow clean revert of another commit. Change-Id: Ia9b7b755e6c48e1b6e383329f121fef175a24b27
2014-10-14[spatial svc]Another workaround to avoid using prev_miMinghai Shang
We encode a empty invisible frame in front of the base layer frame to avoid using prev_mi. Since there's a restriction for reference frame scaling factor, we have to make it smaller and smaller gradually until its size is 16x16. Change-Id: I60b680314e33a60b4093cafc296465ee18169c19
2014-09-18[spatial svc] Remove vpx_svc_parameters_t and the loop that sets it for each ↵Minghai Shang
layer vpx_svc_parameters_t contains id, resolution and min/max qp for each spatial layer. In this change we will use extra config to send min/max qp and scaling factors, then calculate layer resolution inside encoder. Change-Id: Ib673303266605fe803c3b067284aae5f7a25514a
2014-09-18[spatial svc]Remove quantizers option. Use max/min quantizers for each layer.Minghai Shang
Change-Id: I214bc4169f6c5eaee4957cd308a74d309e999005
2014-09-17[spatial svc] Use string for quantizers and scale-factors option in the test appMinghai Shang
1. This is to align with the ffmpeg implementation 2. Remove APIs for setting quantizers and scale-factors Change-Id: I6e238d71db790a9fb3254baaeb61e2a5aac58f48
2014-09-11[spatial svc] Remove handling frame and stats packets in the codecMinghai Shang
1. svc_encodeframe.c will not handle frame or stats packets anymore. The app will process them. 2. Remove APIs that related to these packets. Change-Id: Id0d7f8b458dc09c6f77064c0878fd4e572db001b
2014-09-02[svc] Temporal svc with two pass rate controlMinghai Shang
It's built based on current spatial svc code. We only support one spatial two temporal layers at this time. Change-Id: I1fdc8584354b910331e626bfae60473b3b701ba1
2014-08-25Merge "[spatial svc]Multiple frame context feature"Minghai Shang
2014-08-25[spatial svc]Multiple frame context featureMinghai Shang
We can use one frame context for each layer so that we don't have to reset the probs every frame. But we can't use prev_mi since we may drop enhancement layers. So we have to generate a non vp9 compatible bitstream and modify it in the player. 1. We need to code all frames as invisible frame to let prev_mi not to be used. But in the bitstream we need to code the show_frame flag to 1 so that the publisher will know it's supposed to be a visible frame. 2. In the player we need to change the show_frame flag to 0 for all frames. Then add an one byte frame into the super frame to tell the decoder which layer we want to show. Change-Id: I75b7304cf31f0ab952f043e33c034495e88f01f3
2014-08-22tests: use vpx_codec_dec_cfg_t() to initialize varsJames Zern
0-initializes [1] and removes a warning for missing initializer fields [1] http://en.cppreference.com/w/cpp/language/value_initialization Change-Id: I364248010c8fa663c71d8f06a9999c730e92db4c
2014-08-18[spatial svc]Add a few different encode frame tests.Minghai Shang
1. Clean the code for encode frame tests 2. Add encode w/ and w/o alt reference frame test 3. Add encode SNR layers test 4. Add encode multiple layers but decode partial layers test Change-Id: Ibd2c9bc02525db584a6f931a98405f2d851b3cd6
2014-07-14[spatial svc]Implement alt reference framesMinghai Shang
All changes are for spatial svc only. 1. Enable encoding hidden frames in each layer and use alt reference idex to reference the hidden frame in each layer 2. Use golden reference idx for spatial reference 3. For those layers that don't have hidden frames (caused by lack of frame buffers), reference a hidden frame in lower layers 4. Add "auto-alt-refs" in svc options Change-Id: Idf27d1fd2fb5f3ffd9e86d2119235e3dad36c178
2014-06-27Merge "[spatial svc] Remove encoding modes since we only need one mode at ↵Minghai Shang
this time."
2014-06-25[spatial svc] Remove encoding modes since we only need one mode at this time.Minghai Shang
Change-Id: I1b6ed2e82a7e3e8a9e790bf29d667a3f856a9518
2014-06-25[spatial svc]Remove key frame quantizer settings since key frame is decided ↵Minghai Shang
by rate control Change-Id: I7eda0f5e678034f0e9c2ab481c517d2e9b280eb5
2014-06-24[spatial svc]Implement lag in frames for spatial svcMinghai Shang
Change-Id: I930dced169c9d53f8044d2754a04332138347409
2014-06-11[spatial svc]Combine first and second pass test to keep stats data in memory.Minghai Shang
Change-Id: Idccbfe35bebe6f05655bd54da7d8b616b1bffe03
2014-03-28[svc] Finalize first version of 2nd pass rcMinghai Shang
Change-Id: I366850015004644c4fc7feabe27a782fdd8d8718
2014-03-27[svc] Verify and store input two pass stats data in 2nd pass rcMinghai Shang
Change-Id: Ib09eedc17ea0ea2eec75d78112e4786d98f382aa
2014-03-19[svc] Finalize spatial svc first pass rate controlMinghai Shang
1. Save stats for each spatial layer 2. Add frame buffer management for svc first pass rc 3. Set default spatial layer to 1 4. Flush encoder at the end of stream in test app This only supports spatial svc. Change-Id: Ia89cfa87bb6394e6c0405b921d86c426d0a0c9ae
2014-02-26Change for adding QP settings for key framesMinghai Shang
Change-Id: I4dcabb60cb1185eb9a2efa18b50f17af272d2cd6
2014-01-29create super fast rtc modeJim Bankoski
This patch only works if the video is a width and height that are both a multiple of 32.. It sets every partition to 16x16, and does INTRADC only on the first frame and ZEROMV on every other frame. It always does does the largest possible transform, and loop filter level is set to 4. Was ~20% faster than speed -5 of vp8 Now 20% slower but adds motion search ( every block ), nearest, near and zeromv The SVC test was changed because - while this realtime mode produces bad quality albeit quickly, it isn't obeying all the rules it should about which frames are available. Change-Id: I235c0b22573957986d41497dfb84568ec1dec8c7
2013-12-04Modified spatial scalable encoder & unit testsAdrian Grange
Modifications to the spatial scalable encoder to match changes made to the scaling code in the decoder. In particular, the use of a dummy first frame was removed now that the decoder is able to handle a smaller first frame. SvcTest.FirstFrameHasLayers unit test re-enabled. Change-Id: Ic2e91fbe4eadf95895569947670d36d68abaf458
2013-11-11Fixed memory leak with svc_test.ccIvan Maltz
was not calling vpx_codec_destroy and delete(decoder_) in TearDown Change-Id: Iff4fd24a260223d224b3ea3287cdf0227405492f
2013-11-06Move SVC per-frame loop from sample app into libvpx properIvan Maltz
SVC multiple layer per frame encoding is invoked with vpx_svc_init and vpx_svc_encode. These interfaces are designed to be invoked from ffmpeg. Additional improvements: - make dummy frame handling a bit more explicit - fixed bug with single layer encodes - track individual frame sizes and psnrs instead of averages - parameterized quantizer, 16th scalefactors, more logging, - enabled single layer encodes to generate baseline - include new mode for 3 layer I frame with 5 total layers Change-Id: I46cfa600d102e208c6af8acd6132e0cc25cda8d4
2013-10-22Revert "Merge "SVC improvements""James Zern
This reverts commit a82001b1cfd688601bbda9b08b3d20e9b46b14d4, reversing changes made to f6d870f7ae6f968bdbc342af80c8f71fa98f2ac2. This commit breaks windows builds and needs some work to fix those and some additional comments. Change-Id: Ic0b0228e36704b127e5e399ce59db26182cfffe7
2013-10-21SVC improvementsIvan Maltz
These changes were originally made in the Stratacaster team-review repository commit e114bffcd82ad74c3696ec58e13c0ac895d6c82d Author: Charles 'Buck' Krasic <ckrasic@google.com> Date: Mon Oct 14 16:52:13 2013 -0700 Make dummy frame handling a bit more explicit, fixing bug with single layer encodes. Squashed commit of the following: commit 1ebbfd976c0fadb02bf1ea562a2d0e3f0206daad Merge: ac468dd 54e88b7 Author: Ivan Maltz <ivanmaltz@google.com> Date: Fri Oct 11 17:29:58 2013 -0700 Move SVC code from vp9_spatial_scalable_encoder to libvpx module accessible from ffmpeg commit 54e88b78b160becc9569fc3c6cb6b0a8c95dc357 Author: Ivan Maltz <ivanmaltz@google.com> Date: Tue Oct 8 09:08:40 2013 -0700 common svc encoding code for sample app and ffmpeg added svc_encodeframe.c, svc_context.h, svc_test.cc vp9_spatial_scalable_encoder uses vpx_svc_encode commit 5616ec8e2e3d3e8d277333d8a9242f6c70151162 Merge: 4528014 e29137d Author: Ivan Maltz <ivanmaltz@google.com> Date: Tue Oct 8 08:47:58 2013 -0700 Merge branch 'master' into stratacaster commit 45280148450b1f3d61e390df8aadedf85cd5bce1 Merge: bb2b675 1ab60f7 Author: Sujeevan Rajayogam <sujee@google.com> Date: Fri Oct 4 10:22:31 2013 -0700 Merge branch 'master' into stratacaster commit bb2b675e595dc9bfc8551e963edf56800c3aea61 Author: Sujeevan Rajayogam <sujee@google.com> Date: Wed Oct 2 12:37:26 2013 -0700 Track individual frame sizes and psnrs instead of averages. commit c6d303b714795c81e7ceb4173967115c9f8ff5b7 Merge: fa87df9 3583087 Author: Sujeevan Rajayogam <sujee@google.com> Date: Fri Sep 27 10:05:35 2013 -0700 Merge branch 'master' into stratacaster commit fa87df94fba923d9f7aeb8ae20c6e15f777e00b5 Merge: bf22d71 3c465af Author: Sujeevan Rajayogam <sujee@google.com> Date: Thu Sep 26 16:10:31 2013 -0700 Merge branch 'master' into stratacaster commit bf22d7144895a82e0c348ac177c8a261b9e2b88e Author: Sujeevan Rajayogam <sujee@google.com> Date: Thu Sep 26 11:10:34 2013 -0700 Parameterized quantizer, 16th scalefactors, more logging, enabled single layer encodes to generate baseline. commit ceffd7e6025b765f9886b5ea0f324248aa37e327 Author: Sujeevan Rajayogam <sujee@google.com> Date: Thu Sep 19 10:04:49 2013 -0700 - Include new mode for 3 layer I frame with 5 total layers. - Refactor svc api. Change-Id: Ie4d775e21e006fa597d884c59488dc999478e9b5