summaryrefslogtreecommitdiff
path: root/vp9/encoder
AgeCommit message (Collapse)Author
2014-01-06Added placeholder for real time modeYaowu Xu
Change-Id: I203d10f76c7ca78d875eaae15557cd765c6240d1
2014-01-06Merge "Modified Handling of min and max vbr rates."Paul Wilkins
2014-01-03Merge "Converting CHECK_POINT macro to inline function."Dmitry Kovalev
2014-01-03Merge "Replacing int_mv with MV."Dmitry Kovalev
2014-01-03Converting CHECK_POINT macro to inline function.Dmitry Kovalev
Change-Id: I08533d59a78346dac30a7dcbc12146f23ef88bbc
2014-01-03Merge "Replacing CHECK_BOUNDS macro with inline check_bounds function."Dmitry Kovalev
2014-01-03Merge "Cleaning up get_prediction_decay_rate() function."Dmitry Kovalev
2014-01-03Merge "Pre planes configuration cleanup."Dmitry Kovalev
2014-01-03Pre planes configuration cleanup.Dmitry Kovalev
Change-Id: I1d50f8701d9c9dedb84387a773a3e9b4daaad720
2014-01-03Cleaning up get_prediction_decay_rate() function.Dmitry Kovalev
Change-Id: Ie8fcee21f41f91f94b4fa02f2a55691dea1734e3
2014-01-03Replacing int_mv with MV.Dmitry Kovalev
Change-Id: Ifd432fa3741ba47102d298e0b348eb00f5a9ce53
2014-01-03Merging best_ref_mv and second_best_ref_mv into best_ref_mv[2].Dmitry Kovalev
Change-Id: If04b57828847cee09a79c94e1098d1aa4990ea0d
2014-01-03Modified Handling of min and max vbr rates.Paul Wilkins
In two pass encodes bits are allocated to each frame according to a modified error score for the frame as a fraction of the modified error score for the clip or section. Previously a minimum rate per frame was reserved and subtracted from the bits allocatable by the two pass code. The vbr max section rate was enforced by clipping the actual number of bits allocated. In this patch the min and max vbr rates are enforced instead by clipping the modified error scores for each frame rather than the number of bits allocated. Small gains for all test sets (psnr and SSIM) ranging from ~ +0.05 for YT psnr up to ~ +0.25 for Std-hd SSIM. Change-Id: Iae27d70bdd3944e3f0cceaf225bad2e8802833de
2014-01-02Reusing vp9_get_skip_context() function in encoder.Dmitry Kovalev
Change-Id: Ic0345622115941f49b6a568c7b8154ba892cbf0d
2013-12-27Merge "Adaptive motion control on ref and search range"Jingning Han
2013-12-27Merge "Remove a unused sub-pixel search"Yunqing Wang
2013-12-27Adaptive motion control on ref and search rangeJingning Han
This commit takes a preliminary attempt to refine the motion search control. It detects the SAD associated with mv predictor per reference frame, and based on which to determine whether the encoder wants to reduce the motion search range (if the predicted mv provides fairly small SAD), or to skip the current reference frame (if there exists another ref frame that gives much smaller SAD cost). This feature is turned on in the settings of speed 1 and above. In speed 1, compression performance changed derf -0.018% yt -0.043% hd -0.045% stdhd -0.281% speed-up pedestrian_area_1080p at 4000 kbps 100 frames 199651ms -> 188846ms (5.5% speed-up) blue_sky_1080p at 6000 kbps 443531ms -> 415239ms (6.3% speed-up) In speed 2, compression performance changed derf -0.026% yt -0.090% hd -0.055% stdhd -0.210% speed-up pedstrian 113949ms -> 108855ms (4.5% speed-up) blue_sky 271057ms -> 257322ms (5% speed-up) Change-Id: I1b74ea28278c94fea329d971d706d573983d810d
2013-12-26Merge "Removing vp9_findnearmv.{h, c} files."Dmitry Kovalev
2013-12-20Merge "Renaming vp9_boolcoder.{h, c} to vp9_writer.{h, c}."Dmitry Kovalev
2013-12-20Merge "Using single struct to represent scale factors."Dmitry Kovalev
2013-12-20Renaming vp9_boolcoder.{h, c} to vp9_writer.{h, c}.Dmitry Kovalev
Change-Id: I9b9a5fcce8530284df0f270706ee060a0edc1517
2013-12-20Merge "Reusing FRAME_COUNTS in the encoder."Dmitry Kovalev
2013-12-20Merge "Store the SSE of prediction residuals"Jingning Han
2013-12-20Merge "Initialize avg_frame_qindex to worst_allowed for 1 pass."Marco Paniconi
2013-12-20Fix a bugYaowu Xu
The line was accidently removed in 4dbad63a7. Change-Id: Ic1e18f209cead95cecc684f952ae667271b58a97
2013-12-20Merge "Adjust gf_group_error_left for arf groups."Paul Wilkins
2013-12-19Store the SSE of prediction residualsJingning Han
Buffer the SSE of prediction residuals in the rate-distortion optimization loop of a given block. This information would be used for later encoding control. Change-Id: If4e63f3462490513c48be9407d3327c8dd438367
2013-12-19Removing vp9_findnearmv.{h, c} files.Dmitry Kovalev
Moving all code from that files to vp9_mvref_common.{h, c}. Change-Id: Ibc4afcb8cea6847166ff411130e93611ebe63b20
2013-12-19Using single struct to represent scale factors.Dmitry Kovalev
Moving back to scale_factors struct. We don't need anymore x_offset_q4 and y_offset_q4 because both values are calculated locally inside vp9_scale_mv function. Change-Id: I78a2122ba253c428a14558bda0e78ece738d2b5b
2013-12-19Merge "vp9_encode_frame() cleanup."Dmitry Kovalev
2013-12-19Initialize avg_frame_qindex to worst_allowed for 1 pass.Marco Paniconi
Change-Id: I535bde16c8fc4c2cd263bbbbaed46ead4c776090
2013-12-19Call set_scaled_offsets() just before scale_mv() call.Dmitry Kovalev
Before mv scaling it is required to calculate x_offset_q4/y_offset_q4 by calling set_scaled_offsets(). Now offset configuration can not be missed because it happens just before scale_mv(). Change-Id: I7dd1a85b85811a6cc67c46c9b01e6ccbbb06ce3a
2013-12-19Merge "Adding get_block_variance_fn() function."Dmitry Kovalev
2013-12-19Merge "Replacing 1 << mi_{width, height}_log2() with lookup tables."Dmitry Kovalev
2013-12-19vp9_encode_frame() cleanup.Dmitry Kovalev
Change-Id: I82ecbe7fe0baa890ce251043f3c7159188c00665
2013-12-19Adding get_block_variance_fn() function.Dmitry Kovalev
Change-Id: I67d934b6af899ffd4bcad2d913a650685fa64abd
2013-12-19Replacing 1 << mi_{width, height}_log2() with lookup tables.Dmitry Kovalev
Change-Id: Iba91ff1e797a83517e2cd7c3ab86cba39f39415b
2013-12-19Merge "Begin refactor of frame schedule in rate control"Deb Mukherjee
2013-12-19Remove a unused sub-pixel searchYunqing Wang
The original iterative search was replaced by subpel_tree search, and was not used anymore. Change-Id: I998b38e1cb0ee359a08b2410d0766dbf183ab071
2013-12-19Merge "Converting vp9_treecoder.h to vp9_prob.{h, c}"Dmitry Kovalev
2013-12-19Merge "Adding get_zbin_mode_boost() function."Dmitry Kovalev
2013-12-19Begin refactor of frame schedule in rate controlDeb Mukherjee
Various cleanups and streamlining of interfaces as precursor to further advancements in rate control. Pre-encode parameter setting for different use cases: One-pass, first of 2-pass, second of 2-pass, and Svc are separated out. There is no change in output with this change. Change-Id: Ied8ca7d84d610993776aa30ef263fe20452e0e3e
2013-12-19Adjust gf_group_error_left for arf groups.Paul Wilkins
Take account of the fact that the overlay frame is usually very cheap so distribute target bits among the other frames. Change-Id: I120685122e8cbbe75da8d07d02932f7877059867
2013-12-19Allow arf just before kfs or end of sequence.Paul Wilkins
This will hurt metrics in some cases (particularly for static clips at low data rates where there is extra overhead, but it helps smooth transitions around forced key frames between stitched kf sections. Change-Id: I7e1026ae0de6c77bba863061e115136d7f283cc0
2013-12-19Further q estimate adjustment.Paul Wilkins
Slightly reduces the mean tendency to undershoot target rate in vbr, especially when using the memory less mode and when recodes are disabled. The effect is primarily at low q. Change-Id: I59a593b99522cc7da31b4134d1c8a65f5b7b7c53
2013-12-19Remove unused code and data structure.Paul Wilkins
Remove modified_error_used and adjust_active_maxq(). Change-Id: I8915007128dc1a17e11693104cfb008a6d64e6a2
2013-12-18Reusing FRAME_COUNTS in the encoder.Dmitry Kovalev
Replacing: intra_inter_count, y_mode_count, y_uv_mode_count. Change-Id: I5d70f73288af6effe6176e26400138067a2ae2a3
2013-12-18Merge "Reusing FRAME_COUNTS in the encoder."Dmitry Kovalev
2013-12-18Merge "Fix arnr for 4:4:4."Alex Converse
2013-12-18Fix arnr for 4:4:4.Alex Converse
Change-Id: I80a0cea96c65c0cfb530a71053616dba6edeb896