summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_encodeframe.c
AgeCommit message (Collapse)Author
2014-01-22Prevent invaid memory accessYaowu Xu
Reading second motion vector only when it has a second ref_frame Change-Id: Ica72c1cd955832e15ceccda5e5a17b0bfcd83044
2014-01-17Deprecate best_mv from encoderJingning Han
This commit deprecates the use of best_mv from encoding and bit-stream writing stages. It hence removes the definition from MACROBLOCKD. Change-Id: I8e5302775a2aa4a18900726df407bff881f2dfb1
2014-01-16Rename pick_sb_modes to rd_pick_sb_modesJingning Han
Keep naming consistency for RD and non-RD mode decision functions, respectively. Change-Id: I904282b675fc511a46c13cb1f8287aa5d1c8ac94
2014-01-16Inter-frame non-RD mode decisionJingning Han
This commit setups a test framework for real-time coding. It enables a light motion search for non-RD mode decision purpose. Change-Id: I8bec656331539e963c2b685a70e43e0ae32a6e9d
2014-01-14As you go mbmi->skip_coeffJim Bankoski
Calculate the skip_coeff as part of the encode process, rather than checking the eobs after the fact with another pass. Change-Id: Ib41b139e96a97dee30e4b993b4cc53d86337128d
2014-01-14Merge "Reusing get_frame_new_buffer() function."Dmitry Kovalev
2014-01-14Merge "Cleaning up vp9_encodeframe.c."Dmitry Kovalev
2014-01-13Reusing get_frame_new_buffer() function.Dmitry Kovalev
Change-Id: Iac5c5aeaef62a4095a60d91285d2c7ad717db0fb
2014-01-10Merge "Enable skipping reference frame check in rd loop"Jingning Han
2014-01-10Cleaning up vp9_encodeframe.c.Dmitry Kovalev
Change-Id: I6d9f595249dc71752abe16c042d3b07aa2e4248d
2014-01-09Enable skipping reference frame check in rd loopJingning Han
This commit allows encoder to compare the SAD cost associated with the best motion vector predictor, per frame. If one reference frame has this cost more than 4 times of the best SAD cost given by other reference frames, skip NEARESTMV, NEARMV, ZEROMV mode check of this reference frame. This setting is turned on in speed 2 and above. Compression quality change in speed 2: derf -0.014% yt -0.097% hd -0.023% stdhd 0.046% It reduces the speed 2 runtime of test sequences: pedestrian_area_1080p 4000 kbps 310763 ms -> 303595 ms bluesky_1080p 6000 kbps 259852 ms -> 251920 ms Change-Id: I7f59cf79503d51836d61d56d50dc5bdf0e502e22
2014-01-08Cleanups around cpi->common.Dmitry Kovalev
Change-Id: I0c42a729038d0f4cb7bc07f587d066fcb1dfe9d9
2014-01-07Merge "Adding get_ref_frame_buffer() function."Dmitry Kovalev
2014-01-06Reusing ROUND_POWER_OF_TWO macro.Dmitry Kovalev
Change-Id: I064ba32d5358bfbf080a4300fc1793b345080006
2014-01-06Adding get_ref_frame_buffer() function.Dmitry Kovalev
Encapsulating direct references to lst_fb_idx, gld_fb_idx, alt_fb_idx. Change-Id: I7e65ba3f131286e433e6651970c5647311fa4687
2014-01-03Adding RefBuffer struct.Dmitry Kovalev
Adding RefBuffer to simplify reference buffer management. The struct has a pointer to image data and scale factors relative to the current frame. Change-Id: If38eb1491ff687cc11428aee339f3e052e2c5d9e
2014-01-03Merge "Pre planes configuration cleanup."Dmitry Kovalev
2014-01-03Pre planes configuration cleanup.Dmitry Kovalev
Change-Id: I1d50f8701d9c9dedb84387a773a3e9b4daaad720
2014-01-03Merging best_ref_mv and second_best_ref_mv into best_ref_mv[2].Dmitry Kovalev
Change-Id: If04b57828847cee09a79c94e1098d1aa4990ea0d
2014-01-02Reusing vp9_get_skip_context() function in encoder.Dmitry Kovalev
Change-Id: Ic0345622115941f49b6a568c7b8154ba892cbf0d
2013-12-26Merge "Removing vp9_findnearmv.{h, c} files."Dmitry Kovalev
2013-12-20Merge "Using single struct to represent scale factors."Dmitry Kovalev
2013-12-20Merge "Reusing FRAME_COUNTS in the encoder."Dmitry Kovalev
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-19vp9_encode_frame() cleanup.Dmitry Kovalev
Change-Id: I82ecbe7fe0baa890ce251043f3c7159188c00665
2013-12-19Replacing 1 << mi_{width, height}_log2() with lookup tables.Dmitry Kovalev
Change-Id: Iba91ff1e797a83517e2cd7c3ab86cba39f39415b
2013-12-19Merge "Adding get_zbin_mode_boost() function."Dmitry Kovalev
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-18Adding get_zbin_mode_boost() function.Dmitry Kovalev
Change-Id: Ia356178d6a3c40b512d3123390781ef94dec72d6
2013-12-16Reusing FRAME_COUNTS in the encoder.Dmitry Kovalev
Change-Id: I6ab9fe2326ebbadf0dd10cca9f66cf8277e3f43b Replacing: comp_inter_count, single_ref_count, comp_ref_count.
2013-12-16Rate control changes on active_worst_qualityDeb Mukherjee
Various cleanups and refactoring. Removes feedback of active worst qaulity and uses last_q instead to make the interface cleaner. Active worst quality is now decided only once for a frame being coded in the beginning based on last_q and other stats. Also, adds other cleaups on last_q to store also the last_q for altref frames, and reduces the altref interval a little. The output does change a little. derfraw300: +0.224% (global psnr) stdhdraw250: +0.442% (global psnr) Change-Id: Ie634cdc032697044c472dd0fe79c109b3e7f9767
2013-12-16Merge "Remove border extension in intra frame prediction."hkuang
2013-12-16Merge "Reusing nmv_frame_counts from FRAME_COUNTS in encoder."Dmitry Kovalev
2013-12-16Remove border extension in intra frame prediction.hkuang
Change-Id: Id677df4d3dbbed6fdf7319ca6464f19cf32c8176
2013-12-16Merge "Cleaning up encode_sb() and encode_b() functions."Dmitry Kovalev
2013-12-12Enable adaptive pred filter type for sub8x8Jingning Han
This commit enables an adaptive prediction filter type selection for sub8x8 block sizes. In speed 1, it re-uses the filter type of collocated 8x8 block if it is tested in the rate-distortion optimization loop, for the sub8x8 blocks. Otherwise, it runs the normal test over all the three filter types. In speed 2, it re-uses the 8x8 block's prediction filter type, if available. Otherwise, force it to be EIGHTTAP. Compression and speed performance wise: speed 1 derf -0.266% yt -0.138% bus at 2000 kbps: 33766ms -> 30451ms (10% speed-up) football at 600 kbps: 48173ms -> 43786ms (9% speed-up) speed 2 derf -0.026% yt +0.134% bus at 2000 kbps: 18973ms -> 17698ms (6% speed-up) football at 600 kbps: 26748ms -> 25096ms (6% speed-up) Change-Id: I77e097533b969fd3472147225fa79fc98095d342
2013-12-11Reusing nmv_frame_counts from FRAME_COUNTS in encoder.Dmitry Kovalev
Change-Id: Iadf2fcc9a5bfa5d02fc166f31963be1cc814831c
2013-12-11Cleaning up encode_sb() and encode_b() functions.Dmitry Kovalev
Trying to make encode_sb() more similar to write_modes_sb() and decode_mode_sb() because essentially all branching logic should be the same. Change-Id: Ib7dec7b48fce29418142abad4d1dcfdb1c770735
2013-12-10Merge "Fix a bug"Yaowu Xu
2013-12-10Fix a bugYaowu Xu
In evaluating partition split case, Wrong partition size is used in calling partition_plane_context(). This commit change to use the correct sub partition size. The incorrect partition size used were causing an ASAN error in unit test. Change-Id: Iab695b764bc51cc61580075f2ae4001421132362
2013-12-10Merge "Renaming comp_pred_mode to reference_mode."Dmitry Kovalev
2013-12-09Renaming comp_pred_mode to reference_mode.Dmitry Kovalev
Change-Id: I83ffed2b1878a35ac35f07f9ee74309adc9c7b11
2013-12-06Renaming vp9_get_pred_context_tx_size() function.Dmitry Kovalev
Change-Id: Ia6d6f4dfb1fd1ec0f8ba53796b59a802e9d7881d
2013-12-06Merge "Disable early exit based on distortion in lossless"Jim Bankoski
2013-12-06Disable early exit based on distortion in losslessYaowu Xu
In lossless coding, distortion is always 0. Early exit based on this metric was incorrect. This CL also changed to use best_rd instead of distortion as the metric for easly exit as requested by Jim. Change-Id: I8ef3e407ac03b4abc3283b273f936a68fad5c2ab
2013-12-06Renaming reference mode context calculation function.Dmitry Kovalev
Renames: vp9_get_pred_context_comp_inter_inter => vp9_get_reference_mode_context vp9_get_pred_prob_comp_inter_inter => vp9_get_reference_mode_prob Change-Id: I3bbb69481e6b0c848028667c9269f567f293d3bd
2013-12-05vp9_get_pred_context_intra_inter() clean up.Dmitry Kovalev
Renaming: vp9_get_pred_context_intra_inter => vp9_get_intra_inter_context vp9_get_pred_prob_intra_inter => vp9_get_intra_inter_prob Change-Id: I2c1affea2e84f4e616137c6df82adb11c7845781