summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_encodeframe.c
AgeCommit message (Collapse)Author
2014-02-25Merge "Adds variance based fixed size partitioning"Deb Mukherjee
2014-02-25Adds variance based fixed size partitioningDeb Mukherjee
Adds a method for determining a fixed size partition based on variance of a 64x64 SB. This method is added to rtc speed 6. Also fixes a bug in rtc_use_partition() and includes some refactoring related to partitioning search, and some cosmetics. Currently compared to speed 5, the coding efficiency of speed 6 is -19% and that of speed 7 is -55%, in cbr mode. Change-Id: I057e04125a8b765906bb7d4bf7a36d1e575de7c6
2014-02-25Merge "Disable adaptive pred filter for non-split mode"Yunqing Wang
2014-02-25Merge changes I7e96d619,I9a7631d5Yaowu Xu
* changes: normalize int64_t high value to INT64_MAX resolve issue with arm code failing unit test
2014-02-25normalize int64_t high value to INT64_MAXJim Bankoski
Change-Id: I7e96d6199f882d35357f6a9a08c04ad0af5dc26e
2014-02-24resolve issue with arm code failing unit testJim Bankoski
The optimizer did something funny with the code around line 1412. Before the call to encode_sb split_dist was set properly but after it was adjusted and converted to a negative. https://code.google.com/p/webm/issues/detail?id=714 Change-Id: I9a7631d5325ade2dc28c1030653a23eecec8721b
2014-02-24Disable adaptive pred filter for non-split modeYunqing Wang
If sf->disable_split_mask is DISABLE_ALL_SPLIT, disable sf->adaptive_pred_interp_filter to avoid unnecessary operations. Change-Id: Icb59174b2f4e9a3c3c16a696deb8018e5bd999eb
2014-02-24Adds an intermediate speed level for rtcDeb Mukherjee
Moves the existing speed 6 to speed 7 and adds an intermediate level 6 which is roughly in between speeds 6 and 7 in both speed and coding efficiency. Also includes some minor fixes/adjustments. Change-Id: I98befc4d82d750e79fe426c457c4a2571f6b6cc7
2014-02-23Merge "Combining if-else branches from different conditions."Dmitry Kovalev
2014-02-21Refactor selected partition size coding for rtcJingning Han
This commit makes a refactoring of the rtc_use_partition. It allows the encoder to take a preferred block size for non-RD mode decision. The boundary blocks are handled such that smaller block sizes that fit in the boundary size will be used instread. In rtc mode, the coding performance of speed -6 for pedestrian_1080p goes from 158980 b/f, 38.934 dB, 22721 ms to 159008 b/f, 40.064 dB, 23721 ms. For rtc set, the speed -6 compression performance is improved by 26%. Still about 2dB behind speed -5 at this point. Change-Id: If0944f0880eaf1ad340bc325d97cea8d0f9dd53f
2014-02-20Merge "Use MI_BLOCK_SIZE in block coding loop"Jingning Han
2014-02-20Merge "Rework non-RD mode decision coding flow"Jingning Han
2014-02-20Merge "Only track mode_chosen_counts if CONFIG_INTERNAL_STATS."Alex Converse
2014-02-20vp9_encodeframe.c: Silence rdmult assignment warning with a cast.Tom Finegan
Cast result of round() to int. Change-Id: Ib708fddfadde4c765001ce9723fda113fd0f4bf6
2014-02-20vp9_encodeframe.c: Silence totalrate assignment warning with a cast.Tom Finegan
Cast result of round() to int. Change-Id: I4982886ad4e7657b4c40d21bd850d31690a68c28
2014-02-19Only track mode_chosen_counts if CONFIG_INTERNAL_STATS.Alex Converse
Change-Id: Ia9252ad0caa4d2bda529a3fe93efcb31e7eb2da0
2014-02-19Use MI_BLOCK_SIZE in block coding loopJingning Han
Change-Id: Ia70057e11c9b3d9d4bea6fbdd08839334ed02dce
2014-02-19Rework non-RD mode decision coding flowJingning Han
In the first coding run of a 64x64 block, check the coding mode for each 8x8 block. Will need a second annealing stage to decide the partition size to be encoded. Change-Id: Ida9417805ff3358979b0c0429d4099c023c88866
2014-02-18Remove comment from calls to vp9_clear_system_state.Adrian Grange
Removed the comment "// __asm emms;" from all calls to vp9_clear_system_state. Change-Id: Ib4dae69c1cdf3f185b04184a870cd70c4d703f10
2014-02-18Merge "Enable sub-pixel motion search for rtc mode"Jingning Han
2014-02-18Merge "Initialize internal buffer pointers in rtc mode"Jingning Han
2014-02-18Enable sub-pixel motion search for rtc modeJingning Han
Run sub-pixel motion search when NEWMV gives lower rate-distortion cost. This improves coding performance of derf set by 8%, std-hd by 2.2%. Change-Id: Ife50f7fda8463927784fe59a41cc439c833e941a
2014-02-13Merge "Removed the reset of mode_info from previous frame"Yaowu Xu
2014-02-13Removed the reset of mode_info from previous frameYaowu Xu
Prior to this commit, both encoder and decoder reset mode/mv info from previous frame in error resilient mode to ensure bitstreams are able to decode when there is loss of frame in decoder side. However, this is not necessary. This commit changed to remove the reset, so encoder can continue to use mode/mv/partition information from previously encoded frame without affecting decodeablilty under loss of frame. Change-Id: I0279f862900dc647fb471ae3389770bb1b9f454f
2014-02-13Merge "Remove redundant set_offsets in rtc coding mode"Jingning Han
2014-02-13Initialize internal buffer pointers in rtc modeJingning Han
In rtc coding mode, the encoder is running non-RD mode decision. It does not need dual buffer swap as was the case in the RD mode. This commit initializes the internal buffer pointers outside the block coding loop for rtc mode. Change-Id: Ie076705c60d6b7919217e3f1dfd49e7db5064ac2
2014-02-13Combining if-else branches from different conditions.Dmitry Kovalev
Change-Id: Ie51cf58de4f872d2261022558b6afe780bbc470b
2014-02-13Merge "Renaming skip_coeff to skip for consistency."Dmitry Kovalev
2014-02-13Remove redundant set_offsets in rtc coding modeJingning Han
The functionalities of set_offsets() are subsumed in later set_partitioning() and rtc_use_partition() functions, hence removed. Change-Id: Ie514b13cb66c2379f13d0be9b1da4c12ca4581e5
2014-02-13Merge changes I121fe66c,I94f57f8aPaul Wilkins
* changes: Remove some cases for turning off arf. Modified Aq1 and Aq2
2014-02-13Merge "clean out static analyzer warnings vp9_encodeframe.c"Jim Bankoski
2014-02-12Merge "Remove unnecessary vp9_setup_buffer_inter use"Jingning Han
2014-02-12Merge "Remove inactive control parameters"Jingning Han
2014-02-12Merge "Remove unused using_small_partition_info functions"Jingning Han
2014-02-12Merge "Remove unused function in vp9_encodeframe"Jingning Han
2014-02-12Renaming skip_coeff to skip for consistency.Dmitry Kovalev
Change-Id: I036e815ca63d00cba71202ae09ba0f6ef745dcb8
2014-02-12Remove unnecessary vp9_setup_buffer_inter useJingning Han
This function initializes the predictor buffer pointers and calculates reference motion vectors. It is only needed in the settings of inter frame coding. Hence removing it from the key frame coding branch in rtc_use_partition. Change-Id: Ic4e16c7467a5f32be4e0bf619ef9d57afb4a7075
2014-02-12Remove inactive control parametersJingning Han
Change-Id: Ic5692af975fe6bd2d8ec82bbae103c6f7c2fc13e
2014-02-12Remove unused using_small_partition_info functionsJingning Han
This function is deprecated after the re-design of partition search that runs big block size, then four-way split, followed by rectangular block sizes. This commit removes the related functions. Change-Id: I417549c8e0fa3cf35bd29816b805dd4e7c3660c6
2014-02-12Remove unused function in vp9_encodeframeJingning Han
The function rd_pick_reference_frame can be deprecated. Its use was subsumed by the adaptive motion search control. Change-Id: Icb0c2fa335f0f06fa7b79a71f972d9fa54d750db
2014-02-12Merge "Removing vp9_foreach_transformed_block_uv() function."Dmitry Kovalev
2014-02-12clean out static analyzer warnings vp9_encodeframe.cJim Bankoski
Change-Id: If14d2fc8cf4202d24f7d87ea74b8ce88a6a816d9
2014-02-12Merge "Fixed a bug where no valid partition is allowed"Yaowu Xu
2014-02-12Fixed a bug where no valid partition is allowedYaowu Xu
Change-Id: I4d2729dc5c46db2847700256941a66b0957c105d
2014-02-11Removing vp9_foreach_transformed_block_uv() function.Dmitry Kovalev
Change-Id: I35ec77b71e6fd686865cead9281e4dd9e9bc9e86
2014-02-11Enable encode_breakout in real time encodingYunqing Wang
In real time encoding, we enable encode_breakout to make encoding fast. A speed feature "use_encode_breakout" is defined to set encode_breakout thresholds for different speeds. However, currently, static_thresh is an encoder option. The encode_ breakout can be turned off if user sets static_thresh=0 specifically. The rtc set borg test result: (need to set --static_thresh=1) speed -5, psnr loss -3.543%; speed -4, psnr loss -2.358%; speed -3, psnr loss -0.771%. Encoding speed test: speed -5, 11% - 60% speedup; speed -4, 5.5% - 28% speedup; speed -3, 0.8% - 7% speedup. Change-Id: Icde592ffbe77eac7446f872a2e9eb2051733677b
2014-02-11Merge "Cleaning up compute_fast_motion_search_level()."Dmitry Kovalev
2014-02-11Merge "Use more meaningful names for speed features"Jingning Han
2014-02-11Modified Aq1 and Aq2Paul Wilkins
Aq 1 only updates segment map on kf and arf and only uses 3 segments. With these settings AQ1 is + for most clips in SSIM but negative in psnr. However, the penalty in PSNR is much less than previously. Old version aq1 average results for std hd -20.899% psnr, -5.809% SSIM New version aq1 for std hd -3.57% psnr, +1.23% SSIM Aq2 Now uses only 2 segments and rd. This mode is still slightly negative for most clips on psnr and SSIM but seems to have a much bigger visual impact on several problem clips than aq mode 1. Old results for std hd: -2.578% psnr, -1.151% SSIM New results for std hd: -1.561% psnr, -0.85% SSIM Change-Id: I94f57f8a73121629ce598fb921aad761c1450e1c
2014-02-10Merge "Cleaning up update_stats() function."Dmitry Kovalev