summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_firstpass.c
AgeCommit message (Collapse)Author
2014-02-04Merge "Removing unused estimate_cq() function."Dmitry Kovalev
2014-02-04Removing unused estimate_cq() function.Dmitry Kovalev
Change-Id: If3a1af1a54f3a3c0d9c966fdc0721981070c7f28
2014-02-04One-pass rate control fixes and cleanupsDeb Mukherjee
Fixes rate control partially in one-pass non-cbr case to achieve a bitrate close to the one desired. Previous version was way off at the high bitrate end. Also includes several one-pass rate control cleanups and refactoring. On derfraw300, one-pass encoding is now 19% off from two-pass speed 0 encoding, down from 35%. Change-Id: I6f0dcdb7f8aa85a7e7cd3a3155d4f9d2a4d2f4f4
2014-01-31Merge "static function convert to inline or global vp9_blockd.h"Jim Bankoski
2014-01-31Merge "Typo & comment corrections"Adrian Grange
2014-01-31static function convert to inline or global vp9_blockd.hJim Bankoski
Change-Id: Ifdd951f24932839f06d1c700371662511dde6ebe
2014-01-31Cleaning up vp9_get_second_pass_params() function.Dmitry Kovalev
Change-Id: Ie7b295190d8def447408e575ea0f3fa3c7eb7dd2
2014-01-31Typo & comment correctionsAdrian Grange
Change-Id: I64569afe61a2679afdd263d3e226a89b9f73cc61
2014-01-31Add constant to represent minimum KF boostAdrian Grange
Added a constant to represent the minimum KF boost rather than using the magic number 2000 in the code. Change-Id: I9428b61f47d26312caff81c6f9ae8587df004791
2014-01-29Merge "Enables alt-ref frames in one pass mode"Deb Mukherjee
2014-01-29Cleaning up vp9_firstpass.c.Dmitry Kovalev
Change-Id: Ic2ff6405f01fd43d07c5ee3b5e374909401115cc
2014-01-29Enables alt-ref frames in one pass modeDeb Mukherjee
Includes a few fixes and clean-ups that adds the ability to use alt-ref frames in one-pass mode. Whether alt-refs are actually used or not is controlled by a macro USE_ALTREF_FOR_ONE_PASS in vp9_firstpass.c. This first cut seems to improve derf by 15+% in 1-pass mode. But further experiments with parameters are underway. Change-Id: I78254421435478003367c788c7930d2dc4ee2816
2014-01-24Adding get_bsize() function to vp9_firstpass.c.Dmitry Kovalev
Change-Id: I31373ad860eb554eb3b03e877e8fba580dc3de07
2014-01-24Fixed integer overflow for large input videoYaowu Xu
The sum of squared mv components can go beyond int range for large input resolution. This commit changed the type to int64 to avoid overflow. Change-Id: Ib21ea2817845cea1435f893064e6417c79c5bc64
2014-01-24Merge "Setup pre[0] buffer before calls to {first_pass, zz}_motion_search."Dmitry Kovalev
2014-01-24Merge changes I24ad1f0f,I33be1366Adrian Grange
* changes: Reorder functions to avoid forward declaration Rename set_scale_factors as set_ref_ptrs
2014-01-23Cleaning up vp9_firstpass.c file.Dmitry Kovalev
Change-Id: Ic352b0429d5784f9d78872a478fe6275ee7a56a0
2014-01-23Setup pre[0] buffer before calls to {first_pass, zz}_motion_search.Dmitry Kovalev
Change-Id: I9b94e741201eacb1982014724a532bdaae31f130
2014-01-22Reorder functions to avoid forward declarationAdrian Grange
Change-Id: I24ad1f0f1cb0e991c476ea174db8ac1584929b02
2014-01-22Fixing simple_weight() function + cleanup.Dmitry Kovalev
We used y_width/y_height instead of y_crop_width/y_crop_height. Change-Id: Ia796494956f16d7a4085e043d58bdfe6de19abe7
2014-01-22Merge "Cleaning up first_pass_motion_search() function."Dmitry Kovalev
2014-01-21Merge "Replacing cpi->twopass with twopass."Dmitry Kovalev
2014-01-21Enforce key frame placementYaowu Xu
Change-Id: I2f85c6b058638571d68a7209779de8ca8168934f
2014-01-16Fix key frames for one pass.Alex Converse
Set this_key_frame_forced flag and don't use kf_boost when not set. Change-Id: Ibe66a82fa9219e60db358ddeb43d6471816c8b50
2014-01-15Replacing cpi->twopass with twopass.Dmitry Kovalev
Change-Id: I733a84ec178439ead66e031395d9a8e49e8f4d1a
2014-01-15Merge "Replacing cpi->rc with rc."Dmitry Kovalev
2014-01-15Merge "Add max burst bitrate control."Yaowu Xu
2014-01-15Replacing cpi->rc with rc.Dmitry Kovalev
Change-Id: I0fbb7615545861e26ebffe72bd44f3a0e8616df7
2014-01-15calculate_modified_err() cleanup.Dmitry Kovalev
Change-Id: Ia24c9b1ff2d51dd9cb133722a041a615e1b8419f
2014-01-14Cleaning up first_pass_motion_search() function.Dmitry Kovalev
Change-Id: I4826a71c7f99db09e5362b16703d024939587f25
2014-01-14Merge "Removing unnecessary casts + cleanup."Dmitry Kovalev
2014-01-14Merge changes I8eda5762,Ia2ffca07Dmitry Kovalev
* changes: Removing unused switchable_interp_count[] field from VP9_COMP. Using clamp() function instead of the same raw code.
2014-01-14Merge "Converting int_mv to MV."Dmitry Kovalev
2014-01-14Add max burst bitrate control.Paul Wilkins
Applies an upper limit on burst bitrate for any frame. This is to insure that typical encodes for YT do not produce frames that are so large that they risk stalling HW implementations. Such frames could also cause playback problems in SW. For now the limit is set at 250 bits per MB for 1080P and larger (with the 1080P limit used for smaller frames). Setting maxQ, constant quality mode or targeting a very high bandwidth will have precedence over this limit. Change-Id: Ie6f776c38b06ac7cec043d034085f4b79ee46a38
2014-01-13Using clamp() function instead of the same raw code.Dmitry Kovalev
Change-Id: Ia2ffca072f5391b277ce1a0c4e5b4ece9ffc6831
2014-01-13Removing unnecessary casts + cleanup.Dmitry Kovalev
Change-Id: I7298087426977e36b61ecf493949e9412842254c
2014-01-13Converting int_mv to MV.Dmitry Kovalev
Change-Id: Id31c0e100d275bd3650eaf5e4b8fe5ce648dbfaf
2014-01-13fix a div by zero issueYaowu Xu
Change-Id: I091dfaa0ed5b9672eedd46d6097469d0802e24ef
2014-01-13No arf right before real scene cut.Paul Wilkins
To reduce pulsing we now allow an arf just before forced key frames and at the end of a clip or section (which may be stitched to another clip or section). However, this does not make sense for key frames arising from real scene cuts. Change from original patch reflects other recent changes in regard to alignment of gf/arf and kf groups. Change-Id: I074a91d1207e9b3e28085af982f6718aa599775f
2014-01-13Further rate control tweaks and fixes.Paul Wilkins
Further fixes regarding min and max rate. Bug fixes re kf group bits and last kf group. Change-Id: Iaafd719d30a489e135a3c55851ce8c632091a436
2014-01-10Merge "Don't use gf_update by default for 1-pass CBR."Marco Paniconi
2014-01-10Don't use gf_update by default for 1-pass CBR.Marco Paniconi
Change-Id: I5df6abceb0a2a69706feadeb820b593cae88f573
2014-01-09Merge "Cleanups on refresh flags"Deb Mukherjee
2014-01-09Cleanups on refresh flagsDeb Mukherjee
Cleanups on frame refresh flags and external overrides. Change-Id: Ia6a56fe1bde906b1dc3fcbf4ef1c7b207cd2df2d
2014-01-09Merge "Fix rate allocation bug."Paul Wilkins
2014-01-08Merge "Using struct twopass_rc* instead of VP9_COMP*."Dmitry Kovalev
2014-01-08Merge "Further rate control cleanups"Deb Mukherjee
2014-01-08Fix rate allocation bug.Paul Wilkins
Fix miss alignment of the frames contributing to the error score and bit allocation for gf/arf groups. Initial results slightly +. Change-Id: Ie508bdcfdac52e592d48e1f13e01b3551b523deb
2014-01-07Further rate control cleanupsDeb Mukherjee
Some cleanups on frames_to_key, frames_since_key. Also removes the unused fixed_q parameters in vp9. Change-Id: If8743a32c71de30a8d17136477b53d607a7acda8
2014-01-07Merge "Adding get_ref_frame_buffer() function."Dmitry Kovalev