summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_pickmode.c
AgeCommit message (Collapse)Author
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
2014-07-02Added a speed feature controlling a motion search parameterYaowu Xu
This commit added a speed feature to control the step_param used in full pixel motion search. The intention is to reduced the search steps for high speed real time coding. Change-Id: I21d2f0105c2b647783a6688615da7fcf2b6d670b
2014-06-30Merge "Encode_breakout code refactoring"Yunqing Wang
2014-06-30change to not force interp_type as SWITCHABLEYaowu Xu
Encoder still uses SWITCHABLE as default via DEFAULT_INTERP_FILTER, but does not override the default if it is not SWITCHABLE. Change-Id: I3c0f6653bd228381a623a026c66599b0a87d01d5
2014-06-30Encode_breakout code refactoringYunqing Wang
Moved the encode_breakout_test out of vp9_pick_inter_mode(). Change-Id: I6966d0293ae5210a5a28b0e8debacb24d1c0d2d4
2014-06-27Merge "VP9 denoiser: implemented update_frame_stats()"Tim Kopp
2014-06-27Merge "Use UV prediction when deciding to skip in for lossless."Alex Converse
2014-06-27VP9 denoiser: implemented update_frame_stats()Tim Kopp
Also added reset_frame_stats() Change-Id: I8e6ca00dbd5fa85cd39485d81c9343c0ff207d6c
2014-06-26Adaptive txfm size selection depending on residual sse/varianceJingning Han
This commit enables an adaptive transform size selection method for speed -6. It uses largest transform size when the sse is more than 4 times of variance, i.e., most energy is compacted in the DC coefficient. Otherwise, use the default TX_8X8. It improves the compression efficiency for rtc set of speed -6 by 0.8%, no speed change observed. Change-Id: Ie6ed1e728ff7bf88ebe940a60811361cdd19969c
2014-06-26Use UV prediction when deciding to skip in for lossless.Alex Converse
Change-Id: Ic149749157d762039446d14472d40d9211c6451a
2014-06-26Merge "Add const mark to const values in non-RD coding mode"Jingning Han
2014-06-26Enable real-time version reference motion vector searchJingning Han
This commit enables a fast reference motion vector search scheme. It checks the nearest top and left neighboring blocks to decide the most probable predicted motion vector. If it finds the two have the same motion vectors, it then skip finding exterior range for the second most probable motion vector, and correspondingly skips the check for NEARMV. The runtime of speed -5 goes down pedestrian at 1080p 29377 ms -> 27783 ms vidyo at 720p 11830 ms -> 10990 ms i.e., 6%-8% speed-up. For rtc set, the compression performance goes down by about -1.3% for both speed -5 and -6. Change-Id: I2a7794fa99734f739f8b30519ad4dfd511ab91a5
2014-06-26Add const mark to const values in non-RD coding modeJingning Han
Change-Id: I65209fd1e06fc06833f6647cb028b414391a7017
2014-06-25Make non-RD intra mode search txfm size dependentJingning Han
This commit fixes the potential issue in the non-RD mode decision flow that only checks part of the block to estimate the cost. It was due to the use of fixed transform size, in replacing the largest transform block size. This commit enables per transform block cost estimation of the intra prediction mode in the non-RD mode decision. Change-Id: I14ff92065e193e3e731c2bbf7ec89db676f1e132
2014-06-25Merge "Allow lossless breakout in non-rd mode decision."Alex Converse
2014-06-25Merge "Replace cpi->common with preset variable cm"Jingning Han
2014-06-25Merge "Reuse inter prediction result in real-time speed 6"Yunqing Wang
2014-06-24Allow lossless breakout in non-rd mode decision.Alex Converse
This is very helpful for large moving windows in screencasts. Change-Id: I91b5f9acb133281ee85ccd8f843e6bae5cadefca
2014-06-24Replace cpi->common with preset variable cmJingning Han
This commit replaces a few use cases of cpi->common with preset variable cm, to avoid unnecessary pointer fetch in the non-RD coding mode. Change-Id: I4038f1c1a47373b8fd7bc5d69af61346103702f6
2014-06-24Reuse inter prediction result in real-time speed 6Yunqing Wang
In real-time speed 6, no partition search is done. The inter prediction results got from picking mode can be reused in the following encoding process. A speed feature reuse_inter_pred_sby is added to only enable the resue in speed 6. This patch doesn't change encoding result. RTC set tests showed that the encoding speed gain is 2% - 5%. Change-Id: I3884780f64ef95dd8be10562926542528713b92c
2014-06-20Switch active map implementation to segment based.Alex Converse
Change-Id: Ibb841a1fa4d08d164cf5461246ec290f582b1f80
2014-06-19Merge "Fixes in VP9 alloc, free, and COPY_FRAME case"Tim Kopp