summaryrefslogtreecommitdiff
path: root/vp9
AgeCommit message (Collapse)Author
2018-11-07vp9-screen-content: Adjust condition for large search areaMarco Paniconi
Account for dropped frame, and change resolution threshold for limiting split below 16x16. Change-Id: If94cfb2bc24d9103332d1c8d945daca8899db33d
2018-11-07Merge "Unify GOP structure layout setup"Jingning Han
2018-11-07Merge "Modified key frame detection."Paul Wilkins
2018-11-07Unify GOP structure layout setupJingning Han
Refactor define_gf_group_structure() to unify the single-layer, multi-layer ARF, and GF only GOP structure setup. Change-Id: Iebbe9c3742fc58ae4e77b1072ebecb3ee7bd26b2
2018-11-07Merge "vp9: postencode drop frame for screen content in CBR."Jerome Jiang
2018-11-06vp9: postencode drop frame for screen content in CBR.Jerome Jiang
Encode the next frame at max q. For layers: post_encode_drop is only check on base spatial layer, and if base is post-encoded-dropped, then whole superframe is dropped. Added API to guard postencode dropping. Turned off by default. Added unittest. BUG=b/112990050 Change-Id: I42fee279014aca616f7a4d9b582cb2bf5da2f2e7
2018-11-06vp9 screen-content: Adjustments for screen content.Marco Paniconi
Increase search area, use NSTEP, and in some cases avoid bsize below 16x16. This for base spatial layer when many blocks in the frame have motion (from scene detection analysis). Improves quality for scrolling motion. Change-Id: If77b43e738a6c43610d4727a95712667088db564
2018-11-06Merge "Track maximum layer depth in a GOP"Jingning Han
2018-11-06Merge "Fix gf_group->frame_end assignment"Jingning Han
2018-11-06Merge "Refactor define_gf_group_structure()"Jingning Han
2018-11-06Merge "Remove redundant assignments in define_gf_group_structure()"Jingning Han
2018-11-06Merge "Refactor find_arf_order()"Jingning Han
2018-11-06Modified key frame detection.Paul Wilkins
Address poor key frame detection in some content. This patch improves on poor key frame / scene cut detection observed with some test content. The content in question was letter boxed film style material and also had quite low contrast. For both 1080P and 4K multiple genuine scene cuts were being missed. The changes alter the conditions for marking a transition as a "flash" rather than a scene change. The new code still deals well with genuine flashes as observed in the "crew" test clip, without falsely flagging some of the the scene cuts in the "film" test clip. The new film test clip also had some "flash" frames caused by a lightning effect and in one case a flash occurred right before a scene change. This caused a misplacement of the key frame but has been addressed by a new clause that requires the coded error for the next frame after a candidate key frame to be lower than the current frame. The patch also changes the way in which neutral blocks (similar inter and inter error) are handled in the candidate key frame decision in a way which hopefully handles the letter boxed format better. During wider testing some film clips still had missed key frames but this patch does improve things. In the case of the initial test clip the encoder correctly marks all 3 scene cuts vs 0 before the patch. Testing with our standard (mainly short single kf) derf and NF test clips is neutral. Change-Id: I3b7dcfe7b2fb13fd0816ea46acc3e69c8bc581b3
2018-11-06Merge "vpx_codec_enc_config_default: disable 'usage'"Johann Koenig
2018-11-05Track maximum layer depth in a GOPJingning Han
Track the effective maximum layer depth in a given group of pictures. Keep it in the GF_GROUP data structure. Change-Id: If777c4e0f4a871c7226a91e3871f445e92f18b24
2018-11-05Fix gf_group->frame_end assignmentJingning Han
The previous value was set off by 1. Use the correct value. Change-Id: I1ce53cc99063ce31e7ab1c43c6e444cb9a1972db
2018-11-05Refactor define_gf_group_structure()Jingning Han
Make it a standalone operation unit. Refactor to cut off unnecessary dependency between define_gf_group_structure() and allocate_gf_group_bits(). Change-Id: I954fd4e96152471a994f2ffd38a72061ab517ddd
2018-11-05vpx_codec_enc_config_default: disable 'usage'Johann
Found with clang-tidy. This value is unused in libvpx. There is an existing test which ensures this is not used: test/encode_api_test.cc: EXPECT_EQ(VPX_CODEC_INVALID_PARAM, vpx_codec_enc_config_default(kCodecs[i], &cfg, 1)); Change-Id: I94bd0663c6652b4267204c02c3921972c854d0b0
2018-11-05Remove redundant assignments in define_gf_group_structure()Jingning Han
The functionality has been covered in the above set_gf_overlay_frame_type() call. Change-Id: Id4049cd9a1a5a9bad7ea62c412fcb557afa9a572
2018-11-05Refactor find_arf_order()Jingning Han
Make the maximum layer depth allowed a control parameter in GF_GROUP. No coding stats would change. Change-Id: I9d17167da322831e7013d761980e1c16375a161b
2018-11-02Merge "Add highbd Hadamard transform C implementations"Sai Deng
2018-11-01Add highbd Hadamard transform C implementationssdeng
Change-Id: Ibec078c80ca1dfe6fbbc4288db89d719dac453a7
2018-10-30clang-tidy: fix vp9/encoder parametersJohann
BUG=webm:1444 Change-Id: I6823635eb1a99c3fcca0a8f091878e3ab2fdd2ac
2018-10-30clang-tidy: fix vp9/decoder parametersJohann
BUG=webm:1444 Change-Id: I9c7c0a4161aaf52436bd5c01d30b035b2ff5508c
2018-10-30clang-tidy: fix vp9/common parametersJohann
BUG=webm:1444 Change-Id: I1a14ad119b3bcbaddcf2291a7521513cf6425635
2018-10-30Merge "Properly space qp in q mode for multi-layer ARF"Jingning Han
2018-10-29Properly space qp in q mode for multi-layer ARFJingning Han
Space the quantization parameter distribution according to the layer depth for multi-layer ARF coding structure. This allows lower layers to have relatively smaller quantization parameters than higher layers. It improves the compression performance in constant q mode for multi-layer ARF system: avg PSNR overall PSNR SSIM lowres -0.33% -0.31% -1.44% midres -0.29% -0.38% -1.14% hdres -0.27% -0.49% -1.02% Change-Id: I9cfe2f27e6c0029c30614970a46de3045840264e
2018-10-29Merge "Enable 10 bit tpl support"Sai Deng
2018-10-27Merge "Remove unused macros from vp9_firstpass.c"Jingning Han
2018-10-26Enable 10 bit tpl supportsdeng
lowres_bd10 midres_bd10 avg_psnr -0.897 -1.261 ovr_psnr -0.975 -1.349 Change-Id: Id54f2c419f4edaa91e89ffea52b4038b1d94e563
2018-10-26Merge "Add Memory to Enable Row Decode"Harish Mahendrakar
2018-10-26Remove unused macros from vp9_firstpass.cJingning Han
Change-Id: If5267a8c71113b171b7bddda5b49f0326c4266b8
2018-10-25Add Memory to Enable Row DecodeRitu Baldwa
Row based multi-thread needs extra memory to store the parsed co-efficients, partitions and eob. This commit adds memory for the same. Change-Id: I13fa4a6ada2ec3048bc973e465055b832429388f
2018-10-25Merge "Enable tpl model to support multi-layer ARF"Jingning Han
2018-10-25Merge "Reset frame udpate flags after qp estimate in tpl"Jingning Han
2018-10-25Merge "Bypass processing on use existing frame"Jingning Han
2018-10-25Merge "Fix frame offset computation for GOP extension"Jingning Han
2018-10-25Merge "Refactor gop_length use case in tpl model"Jingning Han
2018-10-23Enable tpl model to support multi-layer ARFJingning Han
Enable temporal dependency model for the base layer ARF. It improves the multi-layer ARF compression performance (results are tested in speed 0 vbr mode): avg PSNR overall PSNR SSIM lowres -0.40% -0.46% -0.32% midres -0.59% -0.68% -0.45% 720p -0.55% -0.59% -1.07% Change-Id: I7790b89ccfb6e61f9b7965f34d348c7440220dd0
2018-10-23Reset frame udpate flags after qp estimate in tplJingning Han
After the frame quantizer estimate run in tpl model, reset the actual value assigned to the current coding frame. This would avoid certain frame update flags being overwritten by different frame types' update. Change-Id: Idde2ba1108f1f68747b14149b211f882965c99f0
2018-10-23Merge "Use 8-tap interp filter in temporal filtering"Yunqing Wang
2018-10-23Use 8-tap interp filter in temporal filteringYunqing Wang
Used 8-tap interp filter in temporal filtering to achieve more accurate motion search result. Using 8-tap sharp gave slight better result than using 8-tap regular. Speed 0 borg test showed that avg_psnr: ovr_psnr: ssim: hdres: -0.160 -0.157 -0.173 midres: -0.083 -0.061 -0.183 lowres: -0.077 -0.099 -0.204 Speed test didn't see noticeable encoder time changes. Change-Id: I97dc3c4864b5a5675a6c1e3952799b81eedd7d93
2018-10-23Merge "Remove empty else branch in mode_estimation"Jingning Han
2018-10-23Bypass processing on use existing frameJingning Han
The use of show existing frame requries no further operation on that coding frame. Bypass the corresponding process. Change-Id: Ia092027a8a543be0ca54c00b4d51e453039712b8
2018-10-23Fix frame offset computation for GOP extensionJingning Han
Properly compute the extended GOP frames' buffer offsets. Change-Id: I9aed14f4b8d623f1832e782828dce07aa546507d
2018-10-23Refactor gop_length use case in tpl modelJingning Han
Make it support both single- and multi-layer ARF GOP structure. Change-Id: I760a95804d1b583b057120f6d6be65195a0e6c19
2018-10-23Remove empty else branch in mode_estimationJingning Han
Change-Id: Iefa184aae80b920b054e3e922a77244c2b0d4b61
2018-10-23Merge "Use the proper gfu_boost factor to compute rd_mult"Jingning Han
2018-10-22Use the proper gfu_boost factor to compute rd_multJingning Han
Update the Lagrangian multiplier according to the gfu_boost factor assigned per frame. It improves the multi-layer ARF compression performance (results below shown for speed 0): avg PSNR overall PSNR SSIM lowres -0.08% 0.02% -0.28% midres -0.08% 0.03% -0.22% hdres -0.19% -0.10% -0.39% nflx2k -0.29% -0.18% -0.85% Change-Id: Ifeb4b14918f880ba011ea41c1454ab00504f8855
2018-10-19Merge "ML_VAR_PARTITION: enable at speed 5"Hui Su