summaryrefslogtreecommitdiff
path: root/vp9/encoder
AgeCommit message (Collapse)Author
2014-10-08Merge "experimental : partition using 1/8 x 1/8 image"Jim Bankoski
2014-10-08Merge "Force better lower quantizer keyframe in case of high quantizer."Jim Bankoski
2014-10-08Merge "Improve two pass VBR accuracy."Paul Wilkins
2014-10-08Merge "Two pass rc changes."Paul Wilkins
2014-10-07experimental : partition using 1/8 x 1/8 imageJim Bankoski
The concept: There's too much noise in source pixels for variance and at low bitrate the reconstructed looks nothing like the source so we have problems getting good partitionings with either. This skirts the issue by using a box blur scaled down version for variance calculations. To compare against source_var_ moved keyframe to be rd based like source_var. Change-Id: Ie3babdbfadae324b7b5a76bea192893af27f0624
2014-10-07Force better lower quantizer keyframe in case of high quantizer.Jim Bankoski
Change-Id: Ie69a164bc166b6a8819777038d65a7d9f9c3361f
2014-10-07Merge "Replace mi_width_log2() with mi_width_log2_lookup table"Jingning Han
2014-10-07Merge "Take out repeated block width/height lookup functions"Jingning Han
2014-10-07Merge "Fix skip_txfm issue in rdopt code"Yunqing Wang
2014-10-07Merge "Move inter filter defs to vp9_filter.h"Jingning Han
2014-10-07Merge "Reduce the scope of the header file used in vp9_context_tree.h"Jingning Han
2014-10-07Merge "Remove redundant header file from vp9_encoder.h"Jingning Han
2014-10-07Fix skip_txfm issue in rdopt codeYunqing Wang
Fixed an encoder crash. Set skip_txfm to 0 for cases that skip_txfm isn't calculated. Put memcpy of skip_txfm at right place. Change-Id: Ib3b6afc1b251a85b2a853c8138fb3393f48cfef6
2014-10-07Replace mi_width_log2() with mi_width_log2_lookup tableJingning Han
Change-Id: If0ea98aa139d14d40cd924114e18396aff36b5a5
2014-10-07Take out repeated block width/height lookup functionsJingning Han
The functions b_width_log2 and b_height_log2 only do direct table fetch. This commit unifies such use cases by using the table directly and removes these functions. Change-Id: I3103fc6ba959c1182886a2799d21b8b77c8a7b6b
2014-10-07Move inter filter defs to vp9_filter.hJingning Han
Add comments on the use case of these definitions. Further reduce the scope of header file in vp9_context_tree.h. Change-Id: Ic4a7638e838d0ac441b64abfc56e57354c059d75
2014-10-07Merge "Resolves some static analysis / undefined warnings"Deb Mukherjee
2014-10-07Resolves some static analysis / undefined warningsDeb Mukherjee
Also fixes a case of distortion becoming negative and messing up the RDCOST computation. Change-Id: Id345af9e8dfff31ade622be5756e51f2cdface53
2014-10-07Reduce the scope of the header file used in vp9_context_tree.hJingning Han
Change-Id: I264ee35044a5973c7725daba7af870968353a3c1
2014-10-07Merge "Add SSE2 code and unit test for VP9 denoiser."JackyChen
2014-10-07Remove redundant header file from vp9_encoder.hJingning Han
Change-Id: Ia212390cf8d36db5436bb0f0e1b696f70066341a
2014-10-06Fix eobs buffer pointer mis-useJingning Han
This commit fixes a buffer pointer mis-use in store_coding_context. The compression performance for stdhd set of speed 3 is improved by 0.097%. It fixes issue 869. Change-Id: Idc59e22035eaf39f7133ca04174894374d647ff7
2014-10-06Add SSE2 code and unit test for VP9 denoiser.JackyChen
This SSE2 is based on VP8 denoiser's SSE2 code. In VP8, there are only 16x16 blocks in denoiser, while in VP9, there are 13 different block sizes. By adding this SSE2 code, the improvement of encoder speed is around 20%(using C code vs using SSE2 code), vary for different clips. The unit test for VP9 denoiser is to confirm that the SSE2 code is bit-exact with the C code. The unit test covers all block size. Change-Id: Ic8d8ac26db4ea40a5f146b5678a065af07eaaa3d
2014-10-06Merge "Fix an IOC issue in vp9_rd_pick_inter_mode_sb"Jingning Han
2014-10-06Merge "Properly initialize segmentID in nonrd coding path"Yaowu Xu
2014-10-06Improve two pass VBR accuracy.Paul Wilkins
Adjustments to the GF interval choice and minimum boost. Adjustment to the calculation of 2 pass worst q. Compared to 09/29 head there is metrics hit on derf of (-0.123%,-0.191%) Compared to the September 29 head and a baseline on September 18 baseline the accuracy of the VBR rate control measured on the derf set is as follows:- Mean error % / Mean abs(error %) Sept 18 baseline (-7.0% / 14.76%) Sept 29 head (-15.7%, 19.8%) This check in (-1.5% / 14.4%) The mean undershoot is reduced slightly but the worst case overshoot on e.g. harbour/highway is increased. This will be addressed in a later patch. Change-Id: Iffd9b0ab7432a131c98fbaaa82d1e5b40be72b58
2014-10-05Fix an IOC issue in vp9_rd_pick_inter_mode_sbJingning Han
It is possible that the GOLDEN reference frame is not avaiable, in which setting the predicted mv will be associated with a residual value of INT_MAX. This commit checks this condition before left shift and comparison with that of ALTREF frame, to avoid overflow issue. Change-Id: Ib98c3149dbdd016f2fe5beaafb13f67d469dd07c
2014-10-03Merge "Fix indent in encode_rd_sb_row"Jingning Han
2014-10-03Merge "Rework partition search skip scheme"Jingning Han
2014-10-03Properly initialize segmentID in nonrd coding pathYaowu Xu
This commit adds proper initialization of segment id for variance AQ mode in non-rd coding path. It fixes the enc/dec mismatch issue of rt=7 with --aq-mode=1, as reported in issue #816 Change-Id: I02fa41b96345bf2e66077d5ea553f85ba800f7bb
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