summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_encoder.h
AgeCommit message (Collapse)Author
2014-07-02Split vp9_rdopt into vp9_rdopt and vp9_rd.Alex Converse
vp9_rdopt is for making rd optimal mode decisions. vp9_rd is for all other rd related routines. Anything used outside of making an rd optimal decision belongs in rd. Change-Id: I772a3073f7588bdf139f551fb9810b6864d8e64b
2014-07-01Store/read 16x16 block statistics obtained from the first passPengchong Jin
Add a conditional compile flag for this feature. Also add a switch to enable the encoder to use these statistics in the second pass. Currently, the switch is turned off. Change-Id: Ia1c858c35ec90e36f19f5cffe156b97ddaa04922
2014-06-30Decide the partitioning threshold from the variance histogramYunqing Wang
Before encoding a frame, calculate and store each 16x16 block's variance of source difference between last and current frame. Find partitioning threshold T for the frame from its variance histogram, and then use T to make partition decisions. Comparing with fixed 16x16 partitioning, rtc set test showed an overall psnr gain of 3.242%, and ssim gain of 3.751%. The best psnr gain is 8.653%. The overall encoding speed didn't change much. It got faster for some clips(for example, 12% speedup for vidyo1), and a little slower for others. Also, a minor modification was made in datarate unit test. Change-Id: Ie290743aa3814e83607b93831b667a2a49d0932c
2014-06-26Merge "Skip the partition search for the frame with no motion"Pengchong Jin
2014-06-26Skip the partition search for the frame with no motionPengchong Jin
This patch allows the encoder to skip the partition search for the frame if it is an inter frame and only zero motion vectors have been detected in the first pass. The partition size is directly assigned according to the difference variance. Borg tests show overall little performance changes in term of PSNR (derf -0.027%, yt 0.152%, hd 0.078%, stdhd 0%). The worst case of PSNR loss is -0.514% from yt. The best PSNR gain is 4.293% from yt. The second pass encoding speedup for slideshow clips is 15%-40%. Change-Id: I881f347d286553ee5594a9ea09ba1a61ac684045
2014-06-24[spatial svc]Implement lag in frames for spatial svcMinghai Shang
Change-Id: I930dced169c9d53f8044d2754a04332138347409
2014-06-24Further dual arf changes: multi_arf_allowed.Paul Wilkins
Add multi_arf_allowed flag. Re-initialize buffer indices every kf. Add some const indicators. Change-Id: If86c39153517c427182691d2d4d4b7e90594be71
2014-06-24Clean out old CONFIG_MULTIPLE_ARF code.Paul Wilkins
Remove the old experimental multi arf code that was under the flag CONFIG_MULTIPLE_ARF. Change-Id: Ib24865abc11691d6ac8cb0434ada1da674368a61
2014-06-24Experiment for mid group second arf.Paul Wilkins
This patch implements a mechanism for inserting a second arf at the mid position of arf groups. It is currently disabled by default using the flag multi_arf_enabled. Results are currently down somewhat in initial testing if multi-arf is enabled. Most of the loss is attributable to the fact that code to preserve the previous golden frame (in the arf buffer) in cases where we are coding an overlay frame, is currently disabled in the multi-arf case. Change-Id: I1d777318ca09f147db2e8c86d7315fe86168c865
2014-06-20Switch active map implementation to segment based.Alex Converse
Change-Id: Ibb841a1fa4d08d164cf5461246ec290f582b1f80
2014-06-17Merge "Moving RD-opt related code from vp9_encoder.h to vp9_rdopt.h."Dmitry Kovalev
2014-06-13Moving RD-opt related code from vp9_encoder.h to vp9_rdopt.h.Dmitry Kovalev
Change-Id: I8fab776c8801e19d3f5027ed55a6aa69eee951de
2014-06-13Replacing RC_MODE with vpx_rc_mode.Dmitry Kovalev
Both enums are identical. Change-Id: I06653f9c90a2d3a2dd5c741e75b17ee7d066a56f
2014-06-12Added skeleton for VP9 denoiserTim Kopp
Change-Id: Iccf6ede4c4f85646b0f8daec47050ce93e267c90
2014-06-12Adding is_altref_enabled() function.Dmitry Kovalev
Change-Id: I54cdb4ce11590511e6f86bc2fd55771f1c18a20a
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-04Removing unused alt_freq field from VP9EncoderConfig.Dmitry Kovalev
Change-Id: I9b683c8647a864e74073161f4aa6f2911b7825e3
2014-06-03Merge "Removing lossless field from VP9EncoderConfig."Dmitry Kovalev
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-05-20Merge "Cosmetic clean up."Paul Wilkins
2014-05-19Add static-threshold skipping in non-rd modeYunqing Wang
Added a skipping test in non-rd inter-mode. After interpolation prediction step, the residuals are tested to see if they will be quantized to 0 based on modeling between spatial domain and frequency domain. Set static-thresh to 800 for >=720p and 300 for <720p, rtc set tests showed 1. Speed 5, psnr: -0.514%; ssim: -1.748%; speedup on related clips: 5% -11% 2. Speed 6, psbr: -0.628%; ssim: -1.637%; speedup on related clips: 4% - 9% Change-Id: I62fbf26bc043ecd2b584f255f1a4ee5ab52bfcf3
2014-05-19Cosmetic clean up.Paul Wilkins
Use type TWO_PASS instead of "struct twopass". Change-Id: I9d92920893bd436537b2ca19e9c9d355cca56c7c
2014-05-16Moving PC_TREE from MACROBLOCK to VP9_COMP.Dmitry Kovalev
Because PC_TREE is encoder-level data, not MACROBLOCK-level data. Change-Id: I4f620c0781acd3a2744860610117e74948e0b2b5
2014-05-14Merge "Moving frame_coef_probs from VP9_COMP to local scope."Dmitry Kovalev
2014-05-14Fix int compared to unsigned int warnings.Paul Wilkins
Also delete vp9_set_roimap() which is not used in VP9. Change-Id: I48c60b1dc8794c6a234f9c3d95e2debb7bdb3fd5
2014-05-07Merge "Removing MODE_TEST_HIT_STATS."Dmitry Kovalev
2014-05-05Merge "Moving costs from MACROBLOCK to VP9_COMP."Dmitry Kovalev
2014-05-02Merge "Revert "Force ARNR filtering to be centered on the ARF frame""Adrian Grange
2014-05-01Moving costs from MACROBLOCK to VP9_COMP.Dmitry Kovalev
Change-Id: I61471dd0f77d1547abec13cbf9670e1c4eb9131a
2014-05-01Adding vp9_temporal_filter_init() function.Dmitry Kovalev
Change-Id: I0d50354111df79b74aafcd3bb7dc14df3c14733a
2014-05-01Merge "[svc rc] RC improvement for key frames in upper layers for spatial svc."Minghai Shang
2014-04-30[svc rc] RC improvement for key frames in upper layers for spatial svc.Minghai Shang
Change-Id: Id6ab59e505be28cd4eb9f1fe114feb47debe0539
2014-04-30Removing MODE_TEST_HIT_STATS.Dmitry Kovalev
It seems nobody uses it now. Change-Id: Ided479cb7f5023559efc8f102ecead43884f4441
2014-04-30Moving frame_coef_probs from VP9_COMP to local scope.Dmitry Kovalev
Change-Id: I58b82c94e893f37b3a07f481abdb3f6c6728f992
2014-04-29Revert "Force ARNR filtering to be centered on the ARF frame"Adrian Grange
This reverts commit 59e733ca81b707780901340686ecd7419077eb54. Hold off removing arnr_type to give users the opportunity to change their script files to handle its deprecation. A follow-up patch will mark the control for setting arnr_type as deprecated and it will be removed completely in a later revision of the code. Change-Id: I8b817c744e144d3714234a4cd4309816d0c7e3e8
2014-04-29Adding search_site_config struct.Dmitry Kovalev
Change-Id: I2ad333553e673dbabcdc0f0366aea311e90849bf
2014-04-24Remove key_frame_frequency variable from VP9_COMPAdrian Grange
This member of VP9_COMP seemed unnecessary since it only shadowed VP9EncoderConfig.key_freq that is accessible through VP9_COMP. Change-Id: Ib751bb1cf1b0b3c50a2a527d7c34f6829dd6fee3
2014-04-22Renaming "onyx" to "encoder".Dmitry Kovalev
Actual renames: vp9_onyx_if.c -> vp9_encoder.c vp9_onyx_int.h -> vp9_encoder.h Change-Id: I80532a80b118d0060518e6c6a0d640e3f411783c