summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_pickmode.c
AgeCommit message (Collapse)Author
2014-10-15Some updates for Speed 6/VAR_BASED_PARTITION.Marco
Reduce the intra_cost_penalty for non-rd mode, and some updates to VAR_BASED_PARTITION. Visual tests show some improvement at Speed 6, for RTC clips. Change-Id: If9090daf7aed14906a32d931a538ab544bbca606
2014-10-09Merge "Rename highbitdepth functions to use highbd prefix"Deb Mukherjee
2014-10-09Rename highbitdepth functions to use highbd prefixDeb Mukherjee
Uses highbd_ prefix convention consistently. Change-Id: I58f7f799a7ff8e32701bcd71c955bcf1cdd4581e
2014-10-09Merge "Subpel search cleanups and enhancements"Deb Mukherjee
2014-10-08Subpel search cleanups and enhancementsDeb Mukherjee
- Some fixes to surface fit. - Returns variance function as cost rather than sad in the pattern search and diamond search functions. Only vp9_pattern_search_sad function used in bigdia search uses sad as integer 1-away costs. - Deploys SUBPEL_TREE_PRUNED_MORE for speed 4+. Results: derf [Speed 3]: About +0.036% in coding efficiency without any discernible speed loss. derf [Speed 4]: About 2-3% faster at -0.199% loss in coding efficiency. derf [Speed 5]: About 3-4% faster at -0.149% loss in coding efficiency. Change-Id: I8462f94f6adb46966ca964f2bd0400977357fd63
2014-10-08Merge "experimental : partition using 1/8 x 1/8 image"Jim Bankoski
2014-10-07experimental : partition using 1/8 x 1/8 imageJim Bankoski
The concept: There's too much noise in source pixels for variance and at low bitrate the reconstructed looks nothing like the source so we have problems getting good partitionings with either. This skirts the issue by using a box blur scaled down version for variance calculations. To compare against source_var_ moved keyframe to be rd based like source_var. Change-Id: Ie3babdbfadae324b7b5a76bea192893af27f0624
2014-10-07Replace mi_width_log2() with mi_width_log2_lookup tableJingning Han
Change-Id: If0ea98aa139d14d40cd924114e18396aff36b5a5
2014-10-07Take out repeated block width/height lookup functionsJingning Han
The functions b_width_log2 and b_height_log2 only do direct table fetch. This commit unifies such use cases by using the table directly and removes these functions. Change-Id: I3103fc6ba959c1182886a2799d21b8b77c8a7b6b
2014-09-25Adds various high bit-depth encode functionsDeb Mukherjee
Change-Id: I6f67b171022bbc8199c6d674190b57f6bab1b62f
2014-09-19Remove mi_grid_* structures.hkuang
mi_grid_* are arrays of pointer to pointer. They save the pointers that point to the MIs in cm->mi. But they are unnecessary and complicated. The original goal was to remove MODE_INFO_t copy. But with an extra MODE_INFO_t pointer inside MODE_INFO_t, same goal could be achieved. This commit totally removes the mi_grid_* structures. But there are still many dummy MODE_INFO_t inside cm->mi which are a waste of memory. Next commit will do on-demand MODE_INFO_t allocation in order to save these memories. Change-Id: I3a05cf1610679fed26e0b2eadd315a9ae91afdd6
2014-09-16Adds high bitdepth quantization functionsDeb Mukherjee
Adds various high bitdepth quantization functions. Change-Id: I36fc0bf75a1bd15128ed271df8723de0ac134b0c
2014-09-05vp9_pick_inter_mode: normalize some typesJames Zern
Change-Id: I4c74dcab6358817f03d3bc4d526006d241f0c10e
2014-09-05vp9_pick_inter_mode: cosmetics: localize var. defsJames Zern
Change-Id: Ifbfc142291697a1847ef85ced0b0eb4d6dab161e
2014-09-05vp9_pick_inter_mode: cosmetics: add constJames Zern
Change-Id: I2450b4856e48dbc4d5b938b2edcea0704f756c8e
2014-09-05vp9_pick_inter_mode: cosmetics: fix indentJames Zern
+ delete a dead comment Change-Id: Ibdb07f6dbdb30fc7888f6115ddc326fcec1157a7
2014-09-05vp9_pickmode: move PRED_BUFFER definition to .cJames Zern
Change-Id: I3737772fe53f9885c82e2ac4c1af478ab951c16c
2014-09-05vp9_pickmode: make vp9_pick_inter_mode() voidJames Zern
the previous return value was constant and unused. Change-Id: Ic3be55edb4a884448c7bb07977a80dfb58b7b940
2014-09-04Merge "Speed up compound inter prediction mode check"Jingning Han
2014-09-03Speed up compound inter prediction mode checkJingning Han
This commit allows the encoder to store outcomes of single reference frame modes and compares them to decide if the inter prediction filter, forward transform, and quantization can be skipped. The compression performance of speed 3 is down derf -0.364% stdhd -0.198% For test sequences, the speed 3 runtime is reduced highway CIF 100 kbps, 51976 ms -> 45033 ms, 13% speed-up stockholm 720p 1000 kbps, 71826 ms -> 67838 ms, 5.5% speed-up pedestrian 1080p 2000 kbps, 154924 ms -> 150702 ms, 2.6% speed-up Change-Id: I5aa26f918d2b4b5197a2c0afa2779319f1c88e44
2014-09-03Small cleanup: reusing existing code.Dmitry Kovalev
Change-Id: Iac4775ad98e988f2b9cf5bd0dc91ab994d0262ce
2014-08-28Updates vp9_pattern search to return integer sadsDeb Mukherjee
Updates the vp9_pattern_search function to return integer one-away neighbors' sad values, for subsequent use in speeding up the sub-pel search. Also, removes code for the do_refine option which is not being used currently. Updates the integer and subpel functions to pass in a 5-element sad list for output or input. A new pruned sub-pel search algorithm is implemented that uses the sad returned from the integer pel search. But it is not deployed yet. Change-Id: Ifa9f5ad024b5b660570366d2bd900343e1891520
2014-08-22vp9_denoiser_update_frame_stats: unused parm fixedJim Bankoski
Change-Id: Ic39cc0deafb3ed509434d3d9953b99713de7394a
2014-08-21Merge "vp9_pickmode.c: check value that can be null to avoid warning"Jim Bankoski
2014-08-19Fix valgrind error in pickmode.Alex Converse
Don't intra transform blocks past the edge of the image. Change-Id: Ib8de6901ea339f352f6a7c9cd2af64aa2f55fa8a
2014-08-19vp9_pickmode.c: check value that can be null to avoid warningJim Bankoski
Change-Id: Ia023a49ddb606899171ff19f9e271ec8ed0b2fb3
2014-08-12Fix pickmode for intra DC blocksAlex Converse
Change-Id: I4906043ec1e3577ba37622a235c54adacb66125a
2014-08-11Merge "Extend skip_txfm flag into array to cover YUV planes"Jingning Han
2014-08-08Remove coding_use_prev_mi member from VP9_COMMONAdrian Grange
This was shadowing the use of error_resilient_mode, but with the opposite sense. Change-Id: Ie4d30263a304fe4b3e94f0c7741db6888cc6afd8
2014-08-05Extend skip_txfm flag into array to cover YUV planesJingning Han
Change-Id: Ieae182d72d625d0d3fd4ed7c7d24cb521a0f21b0
2014-07-30Merge "Use frame index directly in get_chessboard_index"Jingning Han
2014-07-30clear up cfg unused warning in vp9_pick_inter_modeJim Bankoski
Change-Id: Iefcf0a25aaf5e44e8e791839aa82d876555025e0
2014-07-29Use frame index directly in get_chessboard_indexJingning Han
The get_chessboard_index() used to call the entire VP9_COMMON struct pointer to retrieve the chessboard pattern index. This cl makes it call the frame index directly. Change-Id: I3cad9d209ea2e77a358085a04fe1ff0ddec5ba03
2014-07-24s/CONFIG_DENOISING/CONFIG_VP9_TEMPORAL_DENOISINGTim Kopp
This should prevent confusion with the VP8 CONFIG_TEMPORAL_DENOISING and other flags. Change-Id: I1fe4e2977895b7966841d861ab74317ad875b6c8
2014-07-16Merge "VP9 Denoiser denoises after mode/bsize search"Tim Kopp
2014-07-15Merge "Make non-rd pick_mode work with Golden/Altref"Yaowu Xu
2014-07-15VP9 Denoiser denoises after mode/bsize searchTim Kopp
In vp8, statistics are collected about the different modes as they are searched. This process is more complicated due to the variable block size. Fields were added to the PICM_MODE_CONTEXT struct to hold this information for each point in the search. The information is then taken from the appropriate part of the tree during denoising. Change-Id: I89261ab77ad637821287ae157dfdf694702b8e77
2014-07-14Merge "Fix a potential invalid memory access in non-RD coding flow"Jingning Han
2014-07-14Make non-rd pick_mode work with Golden/AltrefYaowu Xu
This is to fix a reported issue #825: https://code.google.com/p/webm/issues/detail?id=825 Change-Id: I196535aee81a8967551c058849d7f9c6874cb730
2014-07-13Merge "Fix chrome valgrind warning due to the use of mismatched bsize"Jingning Han
2014-07-11Fix a potential invalid memory access in non-RD coding flowJingning Han
This commit fixes a potential out-of-boundary memory access due to the use of reuse_inter_pred_sby in the non-RD coding flow. It resolves the corresponding asan error. Change-Id: Iff605f5921230966990013541cd855d698810922
2014-07-11Fix chrome valgrind warning due to the use of mismatched bsizeJingning Han
This commit fixes a mismatched use case of block size in non-RD intra prediction check. The residual SSE and variance should be calculated per transform block size, instead of operating block size, which caused chrome valgrind warning on conditional jump based on uninitialized value (webm issue 823). This commit resolves this issue. Change-Id: I595c06599c7e0fd0e4a08736519ba68fc14bc79a
2014-07-11Code refactoring: use defined inline functionsYunqing Wang
Changed to use defined inline functions consistently through the code. Change-Id: I7644d24fa7a837378564a6e0790416d3725dd200
2014-07-10Merge "Minor cleanup"Yaowu Xu
2014-07-09Minor cleanupYaowu Xu
Change-Id: I3a3ceeeed489f8b1ccd7199ff97f3fb991bbf5a4
2014-07-09Remove repetitive code in mcomp.cYunqing Wang
Deleted vp9_find_best_sub_pixel_comp_tree(), and combined it in vp9_find_best_sub_pixel_tree(). Change-Id: Ifb25763c8b19822df5537cc1daa76ce88dc3b056
2014-07-09Combined non-rd motion searchs into a single functionYaowu Xu
This commit combined the full pel and sub pel motion search into a single function to avoid code duplication. The commit does not change encoder outputs. Change-Id: Ibe18342c4f64073bef20f9cf6c6ca0a20d01bf0d
2014-07-02Split vp9_rdopt into vp9_rdopt and vp9_rd.Alex Converse
vp9_rdopt is for making rd optimal mode decisions. vp9_rd is for all other rd related routines. Anything used outside of making an rd optimal decision belongs in rd. Change-Id: I772a3073f7588bdf139f551fb9810b6864d8e64b
2014-07-02Merge "VP9 denoising enabled by noise_sensitivity param"Tim Kopp
2014-07-02VP9 denoising enabled by noise_sensitivity paramTim Kopp
As in VP8. Currently, this parameter is set with the VP8E_SET_NOISE_SENSITIVITY flag. The flag was not renamed so that we don't break the interface for webrtc. This should probably be changed at some point in the future. Change-Id: Ic73fcb0dde9d1d019e9d042050b617333ac65472