summaryrefslogtreecommitdiff
path: root/vp9/encoder
AgeCommit message (Collapse)Author
2014-06-12Merge "Replacing txfm_size with tx_size."Dmitry Kovalev
2014-06-12Merge "Fast computation path for forward transform and quantization"Jingning Han
2014-06-12Replacing txfm_size with tx_size.Dmitry Kovalev
Change-Id: Ifa6374e9db5919322733b656e0865f5f19ee6f2c
2014-06-12Fast computation path for forward transform and quantizationJingning Han
This commit enables a fast path computational flow for forward transformation. It checks the sse and variance of prediction residuals and decides if the quantized coefficients are all zero, dc only, or more. It then selects the corresponding coding path in the forward transformation and quantization stage. It is currently enabled in rtc coding mode. Will do it for rd coding mode next. In speed -6, the runtime for pedestrian_area 1080p at 1000 kbps goes down from 14234 ms to 13704 ms, i.e., about 4% speed-up. Overall coding performance for rtc set is changed by -0.18%. Change-Id: I0452da1786d59bc8bcbe0a35fdae9f623d1d44e1
2014-06-12Merge "Fix SEG_LVL_SKIP in non-RD inter mode selection."Alex Converse
2014-06-12Merge "Fix SEG_LVL_SKIP in RD inter mode selection."Alex Converse
2014-06-12Merge "skip un-neccessary motion search in the first pass"Yunqing Wang
2014-06-12skip un-neccessary motion search in the first passPengchong Jin
This patch allows the encoder to skip the un-neccessary motion search in the first pass. It calculates the error of the zero motion vector using the last source frame as reference and skips the further motion search in the first pass if the error is small. The encoding speedup of the first pass for slideshow videos is over 30%. Borg test shows the overall PSNR performance remain approximately the same (derf -0.009, hd 0.387, yt 0.021, stdhd 0.065). Individual clips may have either PSNR gain or loss. The worst PSNR perfomance is from yt set, with a PSNR loss of -1.1. Change-Id: I08b2ab110b695e4689573b2567fa531b6457616e
2014-06-11Fix SEG_LVL_SKIP in non-RD inter mode selection.Alex Converse
Add a set_mode_info_seg_skip function that fills the requisite mode info. Change-Id: I460b1b6845d720d9b09ed5b64df0ea0aac443f62
2014-06-11Fix SEG_LVL_SKIP in RD inter mode selection.Alex Converse
* Only use ZEROMV, disalowing the intra modes that were previously tested. * Score rate and distortion as zero. Change-Id: Ifcf99e272095725f11da1dcd26bd0f850683e680
2014-06-10Merge "Cleaning up vp9_variance_mmx.c."Dmitry Kovalev
2014-06-10Removing two unused TX_SIZE_SEARCH_METHOD members.Dmitry Kovalev
Change-Id: I33a38bb9f46e7ef509bbbf0cfd7bc3ea5072d022
2014-06-10Merge "Removing chessboard_index from SPEED_FEATURES."Dmitry Kovalev
2014-06-10Merge "Removing unused motion_vector_context enum from vp9_encodeframe.c"Dmitry Kovalev
2014-06-09Merge "Use small transform size in non-rd real-time mode"Yunqing Wang
2014-06-09Merge "Removing unused tt_activity_measure()."Dmitry Kovalev
2014-06-09Use small transform size in non-rd real-time modeYunqing Wang
In non-rd real-time mode, choosing smaller transform size in encoding gives better video quality and good speed gain than choosing larger transform size. This patch set tx size search method to ALLOW_8X8, which is better than using 4x4 or other larger sizes. Borg tests on rtc set at speed 6 showed significant gain on quality. PSNR gain: 11.034% and SSIM gain: 15.466%. The speed gain is 5% - 12% for <720p clips, and 2% - 7% for 720p clips. Change-Id: If4dc74ed2df359346b059f47fb73b4a0193ec548
2014-06-09Merge "Fix internal stats printing"Adrian Grange
2014-06-06Merge "Revert "Removing this_frame_stats member from TWO_PASS struct.""Adrian Grange
2014-06-06Revert "Removing this_frame_stats member from TWO_PASS struct."Adrian Grange
Use of stack frame variable "fps" beyond the lifetime of the function. fps is sent as a paremeter to output_stats and stored in the packet holding this encoded frame. This has scope beyond the lifetime of the calling function. This reverts commit 3f95a230c7e54104201b3f6c577dfa9251b4642a Change-Id: Icd8e14b3d7dd733590ada12e619b9dce95b6b0f5
2014-06-06Merge "Adding encode_tiles() function."Dmitry Kovalev
2014-06-05Removing chessboard_index from SPEED_FEATURES.Dmitry Kovalev
This is not a speed feature, adding inline function instead. Change-Id: Ia48c41802eec9e92cf990339d724097279695c9a
2014-06-05Adding encode_tiles() function.Dmitry Kovalev
Change-Id: Ib8187c8f2556e1e9268b0683cd2b6ff3489f0205
2014-06-05Fixes qindex for first frame in 1-pass cq/q modesDeb Mukherjee
Produces sane qindex for the first frame in 1-pass constant and constrained qualirty modes. Change-Id: Ib2a5091df15a23489e9bb5534a2019cf2689755e
2014-06-05Fix internal stats printingAdrian Grange
Change-Id: I61bd0b127164a591b1c983bfcebd64ba7617f796
2014-06-04Removing unused tt_activity_measure().Dmitry Kovalev
Change-Id: Ifcb46e6904730d14b9ef76b648b4d0dc3cd5d0c5
2014-06-04Removing unused motion_vector_context enum from vp9_encodeframe.cDmitry Kovalev
The same enum defined and used in vp9_mvref_common.c. Change-Id: I3975103997797add0a258d36c96d20ac9561a73d
2014-06-04Removing unused alt_freq field from VP9EncoderConfig.Dmitry Kovalev
Change-Id: I9b683c8647a864e74073161f4aa6f2911b7825e3
2014-06-03Using 2 instead of 3 elements for avg_frame_qindex array.Dmitry Kovalev
The third array element was unused. 2 elements now: key- and interframe. Change-Id: I5b8b9f5d889cc96a204cedfc432059293256298e
2014-06-03Merge "Removing lossless field from VP9EncoderConfig."Dmitry Kovalev
2014-06-03Merge "Fix potential overflow issue in SSSE3 forward 8x8 2D-DCT"Jingning Han
2014-06-03Fix potential overflow issue in SSSE3 forward 8x8 2D-DCTJingning Han
The SSSE3 implementation might find a potential overflow issue in its second 1-D transform, if all input residual pixels are close to 255. This commit fixes the issue and re-enables the unit test on the SSSE3 version. Change-Id: I0520478abdab7afd3ff2842516bec951111e9b3c
2014-06-03Adding buffer levels to RATE_CONTROL struct.Dmitry Kovalev
Change-Id: Ib35ff854378764dc3c6745844c67a33dee545663
2014-06-03Removing lossless field from VP9EncoderConfig.Dmitry Kovalev
Right now there is just one place to check: xd->lossless and for the first pass there is a function is_lossless_requested(). Change-Id: I949a6834e64ce51e422e2892f097f2b871b5429a
2014-06-03Merge "Cleaning up full_pixel_search()."Dmitry Kovalev
2014-06-03Merge "Moving first pass related functions to vp9_firstpasss.c."Dmitry Kovalev
2014-06-03Merge "Reusing existing vp9_get{8x8, 16x16}var() instead of new ones."Dmitry Kovalev
2014-06-03Fix AQ mode 2 bug where delta causes Q 0.Paul Wilkins
In Aq mode 2 for kf/arf/gf the segment q delta is calculated and then applied by re-quantization without going through the rd loop again. If the base Q != 0 but the segment Q == 0 (lossless) this can could give rise to a situation where we have an illegal combination of transform size and Q. (Q == 0 requires that all blocks are coded 4x4 WHT). Change-Id: I241a58c6494ed442e9e4630070b0cde0fb99ae45
2014-06-02Merge "Remove Wextra warnings from vp9_sad.c"Deb Mukherjee
2014-06-02Merge "Remove an attempt to handle SEG_LVL_SKIP sub8x8."Alex Converse
2014-06-02Remove Wextra warnings from vp9_sad.cDeb Mukherjee
As a side-effect, the sad unit tests for VP8 and VP9 had to be separated. Fixes a bug in original patch: (https://gerrit.chromium.org/gerrit/#/c/70163/8) that was reverted due to a nightly test failure. Change-Id: Ia2a4e9e278fd3c89d6c3c82fcc6381320ec2a8a6
2014-06-02Merge "seeing a 10x slowing down, revert now for investigation"Yaowu Xu
2014-06-02seeing a 10x slowing down, revert now for investigationYaowu Xu
Revert "Fix a problem of using an uninitialized parameter" This reverts commit 538af7db5ffe2ab560511a3bc0ae74dae9316c14 Change-Id: I071aa9b7068ef515abb8ae9584df15067706ccb5
2014-06-01Merge "Revert "Remove Wextra warnings from vp9_sad.c""Frank Galligan
2014-06-01Revert "Remove Wextra warnings from vp9_sad.c"Frank Galligan
This reverts commit 916550428db803c54c993ff9d3c34b9b0bcebb7c Change-Id: I500822b03f09c64ff6ec5396c68edee9ca3b75cb
2014-05-31Merge "Converting disable_inter_mode_mask to inter_mode_mask."Dmitry Kovalev
2014-05-30Merge "Fix a problem of using an uninitialized parameter"Yaowu Xu
2014-05-30Merge "Removing unused ref_frame_mask local var."Dmitry Kovalev
2014-05-30Fix a problem of using an uninitialized parameterYaowu Xu
This commit added a call to set speed feature before initializing motion search, fixed the problem where unintialized search method is used before its value being set. Change-Id: I537e4612bf0d00fd6f51396fd222d4b3bd6fde58
2014-05-30Merge "Re-factor some duplicate code."Paul Wilkins