summaryrefslogtreecommitdiff
path: root/vp9/encoder
AgeCommit message (Collapse)Author
2014-10-03Merge "Fix indent in encode_rd_sb_row"Jingning Han
2014-10-03Merge "Rework partition search skip scheme"Jingning Han
2014-10-03Merge "Incorporate WRAPLOW macro into non-highbitdepth tx"Deb Mukherjee
2014-10-03Fix indent in encode_rd_sb_rowJingning Han
Change-Id: Icbcfe7b56d88474f4398b4c5b52f6719d551ab4a
2014-10-03Rework partition search skip schemeJingning Han
This commit enables the encoder to skip split partition search if the bigger block size has all non-zero quantized coefficients in low frequency area and the total rate cost is below a certain threshold. It logarithmatically scales the rate threshold according to the current block size. For speed 3, the compression performance loss: derf -0.093% stdhd -0.066% Local experiments show 4% - 20% encoding speed-up for speed 3. blue_sky_1080p, 1500 kbps 51051 b/f, 35.891 dB, 67236 ms -> 50554 b/f, 35.857 dB, 59270 ms (12% speed-up) old_town_cross_720p, 1500 kbps 14431 b/f, 36.249 dB, 57687 ms -> 14108 b/f, 36.172 dB, 46586 ms (19% speed-up) pedestrian_area_1080p, 1500 kbps 50812 b/f, 40.124 dB, 100439 ms -> 50755 b/f, 40.118 dB, 96549 ms (4% speed-up) mobile_calendar_720p, 1000 kbps 10352 b/f, 35.055 dB, 51837 ms -> 10172 b/f, 35.003 dB, 44076 ms (15% speed-up) Change-Id: I412e34db49060775b3b89ba1738522317c3239c8
2014-10-03Incorporate WRAPLOW macro into non-highbitdepth txDeb Mukherjee
Incorporates the WRAPLOW macro into the non-highbitdepth transforms to aid hardware verification between a software C model and an intended hardware implementation though the use of the configure options: --enable-experimental --enable-emulate-hardware. Note that to avoid further discrepancies between the sse/sse2 implementations of the transforms and the C implementation, when the emulate hardware option is invoked, we also disable sse/sse2/etc. Also incudes some minor cleanups/renaming etc. Change-Id: Ib864d8493313927d429cce402982f1c8e45b3287
2014-10-03Merge "Prevent negative cost for highbitdepth"Deb Mukherjee
2014-10-03Prevent negative cost for highbitdepthDeb Mukherjee
Adds proper scaling for highbitdepth in a rdopt cost. Change-Id: I066694799a7f491b830945ef1c66eb202071c355
2014-10-03rdmult data type changeDeb Mukherjee
To fix a VS warning. Change-Id: I4c530c0afe8d06acdb8cc78b7995aba57a25373d
2014-10-02Merge "Make iscan and scan neighbor arrays static const."Yaowu Xu
2014-10-02Make iscan and scan neighbor arrays static const.Yaowu Xu
This commit changes the tables to be read only, which fixes issue #866 Change-Id: I85bbe03f9d344f50570f8c1c61699bdc5cee248f
2014-10-02Fix subsampling check for images 1 pixel wide/tallAlex Converse
Change-Id: I0e262ede7eb4a4ae0c86181922d744e542e93350
2014-10-02rdmult data type change to fix high bit-depthDeb Mukherjee
Fixes an intermittent assert failure for highbitdepth. Change-Id: If8cad0209a94f1184b69c7b3f1d587934f857d9b
2014-10-01Merge "Remove unused header files from vp9_encodemb.h"Jingning Han
2014-10-01Merge "High-bitdepth bugfixes"Deb Mukherjee
2014-10-01Merge "Modify block transform skipping check"Yunqing Wang
2014-10-01Remove unused header files from vp9_encodemb.hJingning Han
Change-Id: Icfc3fb62cc0b05e435814035bfe1f2e2870442b4
2014-10-01High-bitdepth bugfixesDeb Mukherjee
Miscellaneous bug-fixes for high bitdepth functionality. With this patch, high bit-depth profiles become mostly functional, except for an intermittent assert failure issue that is being tracked. Change-Id: I6a7fcbdcf1e5b09842e88535f8442d2e1230748c
2014-10-01Remove repeated header files from vp9_block.hJingning Han
This commit removes unused header file vp9_onyxc_int.h and repeatedly included file vpx_ports/mem.h from vp9_block.h Change-Id: I400b210bd1da48f1880bd50a8f4a6e2c690e15a1
2014-10-01Modify block transform skipping checkYunqing Wang
Block transform skipping was implemented based on DCT's energy conservation property. Modified the thresholds using zero bin parameters. AC and DC coefficients were checked separately to allow better identifying of skippable blocks. Borg test at speed 3 showed: stdhd set: psnr gain: 0.153%, ssim gain: 0.051%; derf set: psnr gain: 0.023%, ssim gain: 0.036% For most test clips, the encoding speedup is 1% - 2%. parkrun(720p): 7.5% speedup, park_joy(1080p): 3.5% speedup. Change-Id: If28eb81113a077414f5ca7b021c14f9069b373bb
2014-10-01Merge "Conditionally skip reference frame check"Jingning Han
2014-10-01Conditionally skip reference frame checkJingning Han
For regular inter frames, if the distance from GOLDEN_FRAME is larger than 2 and if the predicted motion vector of LAST_FRAME gives lower sse than that of GOLDEN_FRAME, skip the GOLDE_FRAME mode checking in the rate-distortion optimization. It provides about 5% speed-up at expense of -0.137% and -0.230% performance down for speed 3. Local experiment results: pedestrian 1080p 2000 kbps 66712 b/f, 40.908 dB, 113688 ms -> 66768 b/f, 40.911 dB, 108752 ms blue_sky 1080p 2000 kbps 51054 b/f, 35.894 dB, 70406 ms -> 51051 b/f, 35.891 dB, 67236 ms old_town_cross 720p 1500 kbps 14412 b/f, 36.252 dB, 60690 ms -> 14431 b/f, 36.249 dB, 57346 ms Change-Id: Idfcafe7f63da7a4896602fc60bd7093f0f0d82ca
2014-09-30Merge "Skip the partition search for still frames"Yunqing Wang
2014-09-30Merge "Refactor encode_rd_sb_row function"Yunqing Wang
2014-09-30Misc. high-bit-depth fixesDeb Mukherjee
Change-Id: Ie9fb6a4078eb6a3fb7c4ff1453831ab9afe23121
2014-09-29Merge "Adds two new subpel search methods"Deb Mukherjee
2014-09-29Fix a bug in calculating delta in VP9 denoiser.JackyChen
When calculating delta in VP8 denoiser, since the block size is fixed to 16x16, the divisor is 256, which is the number of the pixel. But in VP9, the block size varies, the divisor should correspond to the block size. Change-Id: Ibdc1e5d23ba8c788b0d0dc6d406bcdfc34c1b142
2014-09-29Adds two new subpel search methodsDeb Mukherjee
One is a more aggressive version of the pruned subpel tree search where only a single halfpel candidate is searched. The search candidate is based on a surface fit result. The other is a method to obtain the subpel position at one shot based on the same surface fit. The methods have not been deployed in any speed setting yet. Change-Id: I34fef3f2e34f11396c9d1ba97f4be8c4ffca62d3
2014-09-29Merge "Skip certain ALTREF inter modes in ARF coding"Jingning Han
2014-09-26Fix a bug introduced in a previous patch on highbdDeb Mukherjee
Change-Id: Ice692334f75157446a44a6e81503cada977934f4
2014-09-26Skip certain ALTREF inter modes in ARF codingJingning Han
This commit enables the encoder to skip checking ALTREF inter modes in ARF coding, if the predicted motion vectors suggest that the GOLDEN_FRAME provides higher prediction accuracy than ALTREF_FRAME. It improves the speed 3 encoding speed by about 5%, at the expense of compression performance loss -0.041% and -0.225% for derf and stdhd, respectively. pedestrian_area 1080p 2000 kbps 66705 b/f, 40.909 dB, 118738 ms -> 66732 b/f, 40.908 dB, 113688 ms old_town_cross 720p 1500 kbps 14427 b/f, 36.256 dB, 62746 ms -> 14412 b/f, 36.252 dB, 60690 ms blue_sky 1080p 1500 kbps 51026 b/f, 35.897 dB, 73310 ms -> 50921 b/f, 35.893 dB, 70406 ms bus CIF 1000 kbps 21301 b/f, 34.841 dB, 7326 ms -> 21248 b/f, 34.837 dB, 7196 ms Change-Id: I76cf88b4d655e1ee3c0cb03c8a5745493040e8d2
2014-09-26Skip the partition search for still framesYunqing Wang
This patch re-enabled the feature in Pengchong's patch (commit 12861260732a4fd5f6b667ce9d5105dc9b606eda). Originally, it was turned on while use_lastframe_partitioning > 0(not used anymore). Now it was added as a feature, and turned on while speed >= 2. As described in the original patch, this feature helps speed up the slideshows in YouTube. Change-Id: I1b0f18d65da1ee1c8d1e117dabba910c5207c471
2014-09-25Adds various high bit-depth encode functionsDeb Mukherjee
Change-Id: I6f67b171022bbc8199c6d674190b57f6bab1b62f
2014-09-24Remove unused variable in handle_inter_modeJingning Han
Change-Id: Id757d2c940756ce1b0ead2ea24af9ac0a493de05
2014-09-24Merge "Fix build issue with stats enabled."Paul Wilkins
2014-09-24Refactor encode_rd_sb_row functionYunqing Wang
Simplified the code and removed some code that was not used anymore. This patch didn't change encoding result. Change-Id: I7e54a74c8f35a6726dfc8a1c55b337448b7ea124
2014-09-24Fix build issue with stats enabled.Paul Wilkins
Compiler build issue when output stats enabled. Change-Id: I7b5409108f3f27ba61b0241b9340b412683eff45
2014-09-23Adds high bit-depth frame resize functionsDeb Mukherjee
Change-Id: I35b015a759325d72d0da427c61a09f19f8e69697
2014-09-23Merge "Adapt mode based rd_threshold for similar block size"Yaowu Xu
2014-09-23Merge "Fix an IOC"Yaowu Xu
2014-09-23Adds high bit-depth psnr/sse functionsDeb Mukherjee
Also adds some miscellaneous high bit-depth setup functions. Change-Id: I66488b08a5a2a8cb9518ca10497cf1c1501ceded
2014-09-23Merge "High bit-depth loop/arf/postproc filter functions"Deb Mukherjee
2014-09-23Merge "Pruned subpel search for speed 3."Deb Mukherjee
2014-09-23High bit-depth loop/arf/postproc filter functionsDeb Mukherjee
Adds high-bitdepth loopfilter, temporal filter and postproc functions Change-Id: I81c8a9176890784686bc4f2af0d550d243b3b2d3
2014-09-23Adapt mode based rd_threshold for similar block sizeYaowu Xu
The rd_thresholds are adaptively changed based on best mode tested. It was only changed for the same block size, this commit makes the adaptation for similar block sizes too. The commit also made minor adjustment and code cleanups. The impact on encoding time for _ped: 118089 ms -> 111927 ms The impact on compression: derf: -0.339% stdhd: -0.303% Change-Id: I8817fed1102350497f2ec631849e43f753878e5d
2014-09-23Fix an IOCYaowu Xu
Change-Id: I0ca6746696d81657c035b0f6523c9af370da3c95
2014-09-23Pruned subpel search for speed 3.Deb Mukherjee
Adds code to return an integer cost list for NSTEP search. Then uses it for pruned subpel search in speed 3. derf: -0.06% Speed on mobcal 720p increaes from 10.28 fps to 10.65 fps. [Subject to further testing]. Change-Id: Ib591382d25b2c11bcaba9d3a27a93a9d1ab27a96
2014-09-22Merge "Remove code duplication"Yaowu Xu
2014-09-22Merge "Simplify rd_pick_intra_sby_mode()"Yaowu Xu
2014-09-22Remove code duplicationYaowu Xu
Change-Id: I453b3e0d946951665d5919248445fc4f3222d2ad