summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_firstpass.c
AgeCommit message (Collapse)Author
2014-05-28Merge "Removing this_frame_stats member from TWO_PASS struct."Paul Wilkins
2014-05-27Removing this_frame_stats member from TWO_PASS struct.Dmitry Kovalev
Change-Id: Id8877fad1f1e88b145e7c40c43174109b9c4f373
2014-05-27Remove brightness weighting in two pass.Paul Wilkins
This code dates from the ancient past and applied an error score weighting based on pixel brightness. This not seem to be providing any benefit metrics wise and could be making some visual issues in dark frames worse. The field is left in place in the FIRSTPASS_STATS data structure in this patch, pending changes to unit tests that use a pre-defined first pass file. Change-Id: Id50f04205230234858e7548ce523f11acaf3567d
2014-05-23Further first pass allocation changes.Paul Wilkins
Further changes to first pass allocation for gf/arf groups. Three variables removed from TWO_PASS structure as only now used locally. Dont adjust gf_group_bits in the post encode update as this will no longer have any effect. Change-Id: Iff89b225db923fc856f5d2aedbc899f1d7d68b55
2014-05-23Re-factor bit allocation in first pass.Paul Wilkins
Restructuring to allocate the bits for each frame in a GF group at the time the group is defined. At the moment the allocation closely mirrors what we had before. Also changes the default rate adjustment method to LONG_TERM_VBR_CORRECTION. Change-Id: Ie5793c46c6b9c888cead5d8790792efd7d60b7c1
2014-05-22Merge "Adding several consts to assign_std_frame_bits()."Dmitry Kovalev
2014-05-22Merge "Cleaning up vp9_init_second_pass()."Dmitry Kovalev
2014-05-22Merge "Cleaning up calculate_section_intra_ratio()."Dmitry Kovalev
2014-05-22Merge "Cleaning up calc_frame_boost()."Dmitry Kovalev
2014-05-22Cleaning up vp9_init_second_pass().Dmitry Kovalev
modified_error_total from TWO_PASS struct is not required anymore. Change-Id: I0e07cac1e6d1b6a78418116be725bcd72bfbd847
2014-05-22Adding several consts to assign_std_frame_bits().Dmitry Kovalev
Change-Id: I6c27c60f7192b1b397f01882ab68a68cdf767534
2014-05-22Merge "Cleaning up calculate_modified_err()."Dmitry Kovalev
2014-05-22Cleaning up calc_frame_boost().Dmitry Kovalev
Change-Id: I3ba9374de96dc31fb4e736742603ef988d8aaa5f
2014-05-22Cleaning up calculate_section_intra_ratio().Dmitry Kovalev
Addition of reset_fpf_position() call fixes previous issue with this patch. Change-Id: I356186d5a1032297a147194e81e9c7db252d14a6
2014-05-22Revert "Cleaning up calculate_section_intra_ratio()."Paul Wilkins
Breaks rate control completely. This reverts commit 9067b293b39e97f3bc8c62646120cdfd4c956310. Change-Id: I8f89e209cf7bd607f7de5c4872adcd57a9c5c72b
2014-05-21Merge "Cleaning up calculate_section_intra_ratio()."Dmitry Kovalev
2014-05-20Cleaning up calculate_section_intra_ratio().Dmitry Kovalev
Change-Id: I3258b789ce8c59fdfeaaca1acb9638b565e82a2a
2014-05-20Cleaning up vp9_twopass_postencode_update().Dmitry Kovalev
Change-Id: Id79138f2dd472ee95c784b0eb2781d4037c51dd8
2014-05-20Cleaning up calculate_modified_err().Dmitry Kovalev
Change-Id: I87bb1876f8a04ef28cb7135b657815e12f2f31cb
2014-05-20[spatial svc] Remove some restrictions that are needed to improve the qualityMinghai Shang
Change-Id: I76a48b03388a8c5cc74b871deb836cd92263b306
2014-05-20Merge "Cosmetic clean up."Paul Wilkins
2014-05-19Merge "Removing unused fields from twopass_rc struct."Dmitry Kovalev
2014-05-19Cosmetic clean up.Paul Wilkins
Use type TWO_PASS instead of "struct twopass". Change-Id: I9d92920893bd436537b2ca19e9c9d355cca56c7c
2014-05-16Merge "Moving PC_TREE from MACROBLOCK to VP9_COMP."Dmitry Kovalev
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-16Removing MACROBLOCKD dependency from loop filter.Dmitry Kovalev
Change-Id: I9ef40f3d95ab8f94f69e92ea25678a40956bc1ce
2014-05-15Reuse precalculated resultYaowu Xu
Change-Id: Iff9efff6c9cb41f833cee40eae014bd4489a87d0
2014-05-15vp9_firstpass.c: clean -wextra warningsYaowu Xu
Change-Id: Ic488fe6edbc119f475763d72a85809499df60106
2014-05-15Removing unused fields from twopass_rc struct.Dmitry Kovalev
Change-Id: Iaece070e9d1305ac3d8df9d3431fefa6e20ac0ec
2014-05-14Simplify 2 pass KF bitrate allocationPaul Wilkins
Simplify the calculation of KF bitrate in similar way to previous patch for GF/arf. This has no impact on derf or std hd sets but gives a small net gain of ~0.1% for yt and yt-hd sets. Change-Id: Ida64ac1428d9c2a62adb67056fadbf0180eff030
2014-05-14Further two pass clean up.Paul Wilkins
The variation in boost calculation for gf and arf groups is not significant enough to justify the extra complexity. Also removed some other spurious code that no longer has much material impact. The handling of the rare case, where the boost bits number is less than the number of bits a that would be allocated if a frame was not boosted, will be dealt with in a subsequent patch. This change actually helps on all sets a little by ~0.1% - 0.2% with slightly bigger gains on SSIM. Change-Id: Id42c1ac22a80a8c4993cfa0e51bc733eb9ed4f75
2014-05-12Clean up of firstpass.cPaul Wilkins
Re-factor duplicate code. Add two pass check for use of section_intra_rating as it is un-initialised in the 1 pass and rt case. Change-Id: I93120796f07961b8a21fb26e1a9f0d3d13949994
2014-05-12First pass clean up.Paul Wilkins
One of a series of changes to clean up two pass allocation as precursor to support for multiple arf or boosted frames per GF/ARF group. This change pulls out the calculation of the total bits allocated to a GF/ARF group into a function, to aid readability and reduce the line count for define_gf_group(). This change should have no material impact on output. Change-Id: I716fba08e26f9ddde3257e7d9b188453791883a3
2014-05-07vp9_firstpass: Fix MSVC data loss warning.Tom Finegan
Change-Id: I5307fe85ee081fbcfdf55a974f7eba1e0070c723
2014-05-01Switch the default 2 pass vbr variant.Paul Wilkins
On balance Deb's modified rate control for VBR seems to be outperforming especially on some low motion YT clips so I have switched this to be the default mode for now. Change-Id: I0713d430cad6425ac5c48fccdf332e12814ee44a
2014-05-01Merge "[svc rc] RC improvement for key frames in upper layers for spatial svc."Minghai Shang
2014-04-30Merge "Removing unused alt_activity_measure() function."Dmitry Kovalev
2014-04-30[svc rc] RC improvement for key frames in upper layers for spatial svc.Minghai Shang
Change-Id: Id6ab59e505be28cd4eb9f1fe114feb47debe0539
2014-04-30Merge "[svc rc] Increase worst quality for enhancement layers"Minghai Shang
2014-04-29Removing unused alt_activity_measure() function.Dmitry Kovalev
Change-Id: I6b520553cb5334b44356dc4651a2dbc1cb93cca5
2014-04-29Adding search_site_config struct.Dmitry Kovalev
Change-Id: I2ad333553e673dbabcdc0f0366aea311e90849bf
2014-04-24[svc rc] Increase worst quality for enhancement layersMinghai Shang
Change-Id: Ifbfa90894eec9944bd55f364f1d17eb152338d6b
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-23Fixed handling of regularly placed keyframesAdrian Grange
The encoder was not handling requests to place keyframes at fixed intervals, i.e. kf_min_dist == kf_max_dist, correctly. In this case when looking to place the next keyframe it was accumulating stats all the way up to the end of the firstpass file. This patch corrects this behavior. Change-Id: I948ad9f1d7faa0c05861df588136cce3bb61d7e7
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
2014-04-22Merge "Bug fix for svc first pass rate control."Minghai Shang
2014-04-21Change naming of end_usage parameter.Paul Wilkins
The end_useage parameter is confusingly named since it now actually defines the rate control method used. Change-Id: I98912caabfe556b7af0b939a645d1336409e4d71
2014-04-21Merge "Merge two new VBR adjustment schemes."Yaowu Xu
2014-04-21Merge "Add experimental VBR adaptation method."Yaowu Xu
2014-04-18Bug fix for svc first pass rate control.Minghai Shang
1. We didn't scale source image in lower layers so that the stats are incorrect. 2. We didn't extend borders for re-constructed image. Change-Id: Ia8d7bafbdb695ffa7f504e171f9449812e7bb0a3