summaryrefslogtreecommitdiff
path: root/vp8/encoder/pickinter.c
AgeCommit message (Collapse)Author
2018-10-30clang-tidy: fix vp8/encoder parametersJohann
BUG=webm:1444 Change-Id: I57a305cdab0d62b0745116272fbd5d9257c6e679
2018-03-22Fix implicit-fallthrough warningsLinfeng Zhang
Compiler -- gcc (Debian 7.3.0-5) 7.3.0 Change-Id: Ied91c7ef3d25c3ef44a1f667656176e2709b4f44
2018-01-11adopt some clang 5.0.0 formattingJohann
At least the changes that don't conflict with 4.0.1 Change-Id: I9b6a7c14dadc0738cd0f628a10ece90fc7ee89fd
2017-06-22vp8: Compute skinmap only once before encoding.Jerome Jiang
Get ready for other uses (i.e. cyclic refresh). Then use it when needed. Change-Id: Id0519a9921045e5fb7f3badb54e9f04e903f28f9
2017-06-15Enable 8x8 skin detection for vp8.Jerome Jiang
If 2 or more 8x8 blocks are identified as skin, the macroblock will be labeled as skin. Change-Id: I596542c81a2df9e96270cab39d920bbfeb02bc6e
2017-06-12vp8_skin_detection: add 'vp8_' prefix to public fnsJames Zern
BUG=webm:1438 Change-Id: I5feb31c254d02e116e624cfe702e73ba5a1f7aca
2017-06-12rename vp8/common/skin_detection.[hc] -> vp8_*James Zern
some build systems have trouble with duplicate basenames. vpx_dsp/skin_detection.[hc] were added in: 658e85425 Merge skin detection code in vp8/9. BUG=webm:1438 Change-Id: Ieaa70b40bda409ec23e6d179b47a930ac6243b05
2017-05-25Refactor: Move vp8 skin detection to new files.Jerome Jiang
Change-Id: If760f28cbbf22beac1cc9bd1546f13831e9dd3f0
2017-03-15vp8: Fix compiler warning in vp8 pickinter.cMarco
Change-Id: I0e5714538fe53d885a2201d808846901ae8fc288
2017-02-14Remove UNINITIALIZED_IS_SAFEJohann
Where clang static analysis or gcc -Wmaybe-uninitialized warns of uninitialized values, assign 0 to ints, MB_MODE_COUNT to MB_PREDICTION_MODE, and B_MODE_COUNT to B_PREDICTION_MODE. Assert that the modes have been changed from the invalid value by the end of the function. Change-Id: Ib11e1ffb08f0a6fe4b6c6729dc93b83b1c4b6350
2016-09-19vp8/encoder: quiet some -Wshorten-64-to-32 warningsJames Zern
this code is similar to other existing uses and/or vp9 Change-Id: I56e646931379759d9f7332ea6d746060007c75ee
2016-09-15apply clang-formatclang-format
Change-Id: I501597b7c1e0f0c7ae2aea3ee8073f0a641b3487
2016-09-09vp8: Set the skin model to mode 1.Marco
This change was reverted before due to a hangouts encode-time regression investigation. But since then this change has been cleared of causing any noticeable regression. This mode reduces some false detection, and uses the same model as in vp9. Change-Id: I9c82a748c5f601d0aca9f61ee218abfbd58c62bd
2016-07-28vp8: Switch skin model to mode 0 to save some cycle.JackyChen
This change will speed up vp8 encoder by 1.5% ~ 2% on linux. No much speed change on Mac. Change-Id: Id957f19ddd89805baa2af84c5027d52d9a48553f
2016-07-19vp8: apply clang-tidy google-readability-braces-around-statementsclang-tidy
applied against an x86_64 configure clang-tidy-3.7.1 \ -checks='-*,google-readability-braces-around-statements' \ -header-filter='.*' -fix + clang-format afterward Change-Id: I6694edeaee89b58b8b3082187e6756561136b459
2016-07-18prepend ++ instead of post in for loops.Jim Bankoski
Applied the following regex : search for: (for.*\(.*;.*;) ([a-zA-Z_]*)\+\+\) replace with: \1 ++\2) This misses some for loops: ie : for (mb_col = 0; mb_col < oci->mb_cols; mb_col++, mi++) Change-Id: Icf5f6fb93cced0992e0bb71d2241780f7fb1f0a8
2016-07-15vp8: apply clang-formatclang-format
Change-Id: I7605b6678014a5426ceb45c27b54885e0c4e06ed
2016-04-26vp8: Adjust consec_zeromv thresholds for skin detection.Marco
Change-Id: Iab5aed7bf86538352232e208bce58c3528cc9a4e
2016-04-01vp8 denoiser: Some adjustments to usage of skin and motion.Marco
Switch to use new skin model. And fix condition for denoising skin block. Previous condition did not denoise skin blocks if the selected mode was non-zero motion in current frame. Modify condition to also force no denoising if that mode was not selected as zero motion now and for at least "x" past frames in a row (x = 2). Change-Id: I00753e3fe45b9a308a7ef43c58f11868e3bfc6b0
2016-03-24vp8-denoiser: Use the same skin detection for model=1 as in vp9.Marco
Keep setting for model = 0 for now in vp8. Change-Id: I79c5fa24d5d16b14651f44db9526aa01dbd70ec9
2016-01-28VPX skin map improvement.JackyChen
Use multiple clusters instead of one and decrease the distance thresholds. Add a define to switch between models. Default is set to existing (1 cluster) model. Change-Id: I802cd9bb565437ae8983ef39453939f5d5073bb1
2015-09-30vp8: change build_intra_predictors_mby_s to use vpx_dsp.Ronald S. Bultje
Change-Id: I2000820e0c04de2c975d370a0cf7145330289bb2
2015-09-08Remove some trailing whitespacesDebargha Mukherjee
Change-Id: Icf06d35ca347713253d1eba341a894b51efa81a9
2015-08-31Include vpx_dsp_common.h when using VPXMIN/MAXJohann
Change-Id: I2e387a06484a06301f3cd6600c4ba2f4335b61ee
2015-08-28Merge "vp8: modifcatiion to skin map computation."Marco Paniconi
2015-08-27vp8: use VPX(MIN|MAX) from vpx_dsp_common.hJames Zern
remove MIN/MAX defines in vp8/common/common.h Change-Id: I41520f34af175e05b263ebd12198f4de29a967db
2015-08-25Limit new motion vector sizeYaowu Xu
This commit adds clamp of new vectors similar to the logic in RD loop. Such clamp is not necessary from the perspective of VP8 bitstream, but is added to improve ChromeCast mirroring's robustness. Change-Id: I42f6adbc60ffce283b994869364230858632d6fa
2015-08-24vp8: modifcatiion to skin map computation.Marco
For each block in pickinter: use average of four middle pixels (instead of single pixel) to set skin map. This can help a little in reducing false skin detection in some cases. Change-Id: Ic247af75e9c2948b08ab977a39e061adacd8ec97
2015-07-07Move sub pixel variance to vpx_dspJohann
Change-Id: I66bf6720c396c89aa2d1fd26d5d52bf5d5e3dff1
2015-05-26Move variance functions to vpx_dspJohann
subpel functions will be moved in another patch. Change-Id: Idb2e049bad0b9b32ac42cc7731cd6903de2826ce
2015-05-14vp8/rdopt.h+onyx_int.h: add some missing prototypesJames Zern
silences missing prototype warnings Change-Id: Icd477e37b502205d0a60e7389e51b1ba17d8888e
2015-04-28vpx_mem: remove vpx_memsetJames Zern
vestigial. replace instances with memset() which they already were being defined to. Change-Id: Ie030cfaaa3e890dd92cf1a995fcb1927ba175201
2015-04-28vpx_mem: remove vpx_memcpyJames Zern
vestigial. replace instances with memcpy() which they already were being defined to. Change-Id: Icfd1b0bc5d95b70efab91b9ae777ace1e81d2d7c
2015-01-12vp8: Fix to crash in pick_inter.Marco
Added unittest that triggers the crash without this fix. Issue: https://code.google.com/p/webm/issues/detail?id=911 Change-Id: If5208ceb210c821891675fdf3d9951ab83d52ae6
2014-12-16Silence -Werror=unused-parameterJohann
Cast away remaining issues so that new ones don't get lost in the noise. Change-Id: Iacd6999b0686ce80f9835730d68db6382690fa92
2014-12-03Various updates to vp8.Marco
Change-Id: Icc7a816491897107764e4c936288e9000e6319b8
2014-10-13Resolves some lint errorsDeb Mukherjee
And also fixes some style consistency issues. Change-Id: I3dc6d44e17d2d6075dc9b02c4255a7395046c5e0
2014-10-08vp8: Suppress denoising with respect to old reference frames.Marco
If the GOLDEN or ALTREF frame was last updated > x frames in the past, don't use them for denoising (only consider LAST). Using an old reference frame for denoising, e.g., if it is a long-term reference or the last key frame, can cause some visible artifacts, in particular in the aggressive denoising mode. Change-Id: I239c9fbb092c36cba7e95328f1fa67a58d6a7ed9
2014-09-02Updates to adaptive/aggressive denoiser mode.Marco
Parameter changes and modification to zero_last bias. Change-Id: I50a408d47fde049c562bbe95075194cb0f17c31b
2014-08-14vp8: Modify to use closest reference in zero_mv bias.Marco
Modify zero_mv bias condition to include check that "closest" reference is last_frame. This is needed for temporal layers, where the last_frame is not always the closest reference. Also, constain zeromv_count to be for last_frame reference. Change-Id: I7af54a809ebf01ef43b9933c9d4095b6cb189390
2014-08-08vp8: Code cleanup for control of denoiser mode.Marco Paniconi
Change-Id: Icb9918dd38d15061d62852e6a2d905e8ceb2c1ac
2014-07-29vp8: Add an aggressive denoising mode.Marco Paniconi
Change-Id: Ie4686e1b15af6bcc8d59d585bbeb996f38224522
2014-07-15vp8: Allow for on/off control of UV temporal denoiser.Marco Paniconi
Use noise_sensitivity level for enabling UV denoiser. Change-Id: Ib208786a6fdf654981bcd96a3cf44e8e678025c1
2014-06-13Allow for deblocking temporal-denoised signal.Marco Paniconi
Allow for an option to selectively apply the deblocking loop filter to the denoised raw block, based on the denoised state (no-filter, filter with zero motion, or filter with non-zero motion) of the current block and its upper and left denoised block. This helps to reduce some blocking artifacts from the motion-compensated denoising. Change-Id: I0ac4e70076df69a98c5391979e739a2681e24ae6
2014-06-04s/INT_MAX/UINT_MAX/ where appropriateTim Kopp
Change-Id: I0156d85671305326525c4644510e240021eca461
2014-05-16vp8: Add increase_denoising parameter to denoiser.Marco Paniconi
Change-Id: I96ed73e109c4f89dd06f3583cf7ecf9277401fae
2014-04-23Add VPXD_SET_DECRYPTOR support to the VP9 decoder.Joey Parrish
Change-Id: I88f86c8ff9af34e0b6531028b691921b54c2fc48
2013-04-11Fix for multi-res-encoding:Marco Paniconi
Use local variable for setting the improved prediction mode. cpi->sf.improved_mv_pred is set/fixed at the frame level and should not be changed inside pick_inter_mode. Change-Id: Ie28d9171ac000e631af0e30204970e3d4fff3078
2013-01-08Merge "Remove cpi parameter from update_mvcount()"Scott LaVarnway
2012-12-10Moved error_bins to macroblock structScott LaVarnway
Change-Id: Ic9956ddf1c2ddffcf7be7fdfc23ad9a2426fc47a WIP: Fixing unsafe threading in VP8 encoder.