summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_rdopt.c
AgeCommit message (Collapse)Author
2014-04-03Removing interp_kernel from MACROBLOCKD.Dmitry Kovalev
Now interp_kernel is obtained when it is really required (based on mbmi->interp_filter value). Change-Id: I4c7a93c179d1045eba16e7526c293d02c9b8b47e
2014-04-01Renaming two members in MACROBLOCKD struct.Dmitry Kovalev
Renames: mi_8x8 -> mi mode_info_stride -> mi_stride Change-Id: I66f3e5fd1e7b7f46f108af5bb711c5fd9493c1be
2014-03-27Remove a duplicate block_size variable.Alex Converse
Change-Id: Ia6b1e3c5a8ac21219bbfe9eecdb4801f3eaa10e5
2014-03-26Moving thresh_mult{,_sub8x8} from SPEED_FEATURES to VP9_COMP.Dmitry Kovalev
SPEED_FEATURES should contain only configuration parameters. Change-Id: I7d6d0636879c3e87dad09bc9455c1cf1dc039da8
2014-03-25Refactor out zero motion vector equivalence.Alex Converse
Change-Id: I6b20248b6f76545356f910ca6386f5466e287b6e
2014-03-25Add consts to cost_mv_ref.Alex Converse
Change-Id: Ie5dadb5c2bcfe80a703edb58a71dc453644c9ade
2014-03-21Using local variable for token_cache.Dmitry Kovalev
We use local variable for token_cache in the decoder. Change-Id: I032763fa7894313cffe73e3f14863ae1d0527665
2014-03-20Remove unused mode_sadYunqing Wang
Removed mode_sad. Change-Id: I230b42ac9b617ae2c375e297057aa0756bd355fe
2014-03-18Rearranging and removing unused defines.Dmitry Kovalev
Change-Id: I03049f89565ce19a297e65e2d53db127dc6f77d9
2014-03-12Merge "Removing last_mi from MACROBLOCKD struct."Dmitry Kovalev
2014-03-11Fix some active_map corner cases.Alex Converse
These were discovered by ActiveMapTest. Change-Id: Ifcd305ae2d954b6ec7edcaed0f80baf18c769e01
2014-03-11Merge "Add a conservative RD based active map in vp9."Alex Converse
2014-03-10Removing last_mi from MACROBLOCKD struct.Dmitry Kovalev
Change-Id: Ied12b39c55667b26fd3bf90eb331e601c53a10f6
2014-03-10Add a conservative RD based active map in vp9.Alex Converse
Change-Id: I47b3c38aadfd8f3ea08515a18a5948aa1375c650
2014-03-10Cleaning up vp9_rdopt.c.Dmitry Kovalev
Change-Id: I8f06d03689ee90a19c9067840b24748bfe2d741f
2014-03-10Merge "Support for a fast diamond search"Deb Mukherjee
2014-03-10Merge "vp9_reconinter.h static functions in header converted to global"Jim Bankoski
2014-03-07Support for a fast diamond searchDeb Mukherjee
Adds a fast diamond search which is about 5% faster than FAST_HEX with only a 0.1% drop in psnr when turned on for both speeds 5 and 7. This search is turned on for speed 7. Change-Id: I497630aa88a5148926086bb3038e7975e5f4eb98
2014-03-07Merge "Use modeled rate distortion costs for non-RD mode"Jingning Han
2014-03-06Use modeled rate distortion costs for non-RD modeJingning Han
This commit replaces SAD cost with modeled rate-distortion cost for non-RD mode decision. It translates the prediction residual SSE into estimate rate and reconstruction distorion costs, hence capturing the quantization setting effect. The compression performance of speed -7 for rtc set is improved by 14.79%. Change-Id: Ifda014eb0501d13109fe7f92680bf1410b463632
2014-03-06Cleaning up labels2mode() function.Dmitry Kovalev
Change-Id: I76e39f7c5545ba4e0cd537f530c574531356e94a
2014-03-05Merge "Combining mode_mv[] and second_mode_mv[]."Dmitry Kovalev
2014-03-05Merge "Cleaning up mode cost manipulations."Dmitry Kovalev
2014-03-05Merge "Adding vp9_cost.{h, c} files."Dmitry Kovalev
2014-03-05Merge "Inlining and removing vp9_set_mbmode_and_mvs()."Dmitry Kovalev
2014-03-05Merge "Move set_speed_feature out of frame encoding"Jingning Han
2014-03-05Inlining and removing vp9_set_mbmode_and_mvs().Dmitry Kovalev
Change-Id: I9717ef611ef9c39b109b2358c9771bf7fae2dd50
2014-03-05Cleaning up mode cost manipulations.Dmitry Kovalev
Change-Id: If175d97990454b171b6abeddb76d142497484487
2014-03-05Adding vp9_cost.{h, c} files.Dmitry Kovalev
Change-Id: If90c1bc822873156d4e38fca1938e4907f6c95f0
2014-03-05Combining mode_mv[] and second_mode_mv[].Dmitry Kovalev
Change-Id: Ie5f69d39b49a4169cc731d4487e4668fb5af4b4f
2014-03-04Move set_speed_feature out of frame encodingJingning Han
Set speed features before running frame encoding. This avoids redundant RD threshold calculation in key frame coding. Change-Id: If8e3cf2c02976baa59b310c1c23af9eea0c46e36
2014-03-04Prune RT mode decisions for BLOCK_32x32 and upAlex Converse
* Remove all non-DC intra modes for BLOCK_32x32 and up * Remove all intra modes for blocks bigger than BLOCK_32x32 * Remove ZEROMV for BLOCK_32x32 and up * Only consider NEARESTMV for blocks bigger than BLOCK_32x32 Change-Id: Ia18351a238213e2f072f9e481d622949346a245f
2014-03-03Refactoring motion search libsDeb Mukherjee
The core motion estimation fucntions all return sad now consistently. The only exception is vp9_full_pixel_diamond(), however the core diamond and refining search routines called from vp9_full_pixel_diamond() also return SAD. If variance of pred error + mv cost is desired it must be calculated explicitly outside these functions. For very fast encoding, hopefully this will eliminate some redundant computations. Also suggests reimplementing FAST_HEX with the vp9_pattern_search framework. It is not exactly the same as the existing FAST_HEX, but performance is slightly better and speed is very similar. Enables removing a lot of duplicate code. Change-Id: I152736393438c25bdf7e96b37cbb8ce330f4f94a
2014-03-03vp9_reconinter.h static functions in header converted to globalJim Bankoski
Change-Id: I916944950deb22f4c2301d83a803b732bf3ecd77
2014-03-03Merge "Adding consts and cleaning up vp9_rdopt."Dmitry Kovalev
2014-03-03Merge "cost_coefs approximation speed up"Jim Bankoski
2014-03-03Merge "Enforce intra_y_mode_mask for inter rd."Alex Converse
2014-03-03Adding consts and cleaning up vp9_rdopt.Dmitry Kovalev
Change-Id: I9423b543e1be414e5c9e10480b813f06e6b88f8a
2014-03-03cost_coefs approximation speed upJim Bankoski
This patch adds a new speed feature which doesn't do the rather expensive entropy context lookup or save to the table, while doing costing. The speed up on desktop36p.y4m is around 10% other clips much less. On the RTC test set this was + 1% in overall datarate. Change-Id: Ia5144bbf45270671e7be9c8e4055369909e2f738
2014-03-03Refactor ZEROMV equivalenceAlex Converse
This gets more accurate mode hit stats. It's also the first step to handling ZEROMV not being allowed more intelligently. Change-Id: I5de6734507b5177bf73e9ddbad923f218c39f3e4
2014-03-03Enforce intra_y_mode_mask for inter rd.Alex Converse
intra_y_mode_mask is already enforced for the sub8x8 case. intra_uv_mode_mask is already enforced for all sizes. Change-Id: Ia9dd14701cb49873c2e8f24eb5f8b255eaf76a1f
2014-03-03Merge "Cleanup conditions in vp9_rd_pick_inter_mode_sb()."Alex Converse
2014-02-28Merge "Using ref_mv[2] instead of two separate variables."Dmitry Kovalev
2014-02-28Merge "Sorting includes in vp9_rdopt.c."Dmitry Kovalev
2014-02-28Using ref_mv[2] instead of two separate variables.Dmitry Kovalev
Change-Id: I909a81991aa0cc18afe6526542c7513837445213
2014-02-28Sorting includes in vp9_rdopt.c.Dmitry Kovalev
Change-Id: I7e2591b4b54e0eac8521e128c7d97f62d2057ed8
2014-02-28Adds speed 8 to vp9 as referenceDeb Mukherjee
Adds a speed 8 to VP9 where only the nearestmv (0 mv) is searched. This seems to be about the same speed as vp8 speed 5. Adds a new speed feature to disable inter modes based on a mask for each blocksize. Adds code for having lower complexity motion search methods in nonrd pick mode function, even though speed 7 still uses DIAMOND search for now. Also uses HEX search for speed 6 rather than FAST_HEX which improves psnr by 0.56% without any noticeable speed drop (tested on gipsmotion). Change-Id: Ic13176572dbd3aed5884a26786940a4b1bbd8a75
2014-02-28Merge "Adding consts to arguments of vp9_block_error()."Dmitry Kovalev
2014-02-28Merge "Removing unnecessary clamp() call."Dmitry Kovalev
2014-02-28Merge "Explicit lossless handling in rd_pick_intra4x4block()."Dmitry Kovalev