summaryrefslogtreecommitdiff
path: root/vp8/encoder
AgeCommit message (Collapse)Author
2016-06-16Fix ubsan warning: vp8/encoder/denoising.cYaowu Xu
BUG=webm:1219 Change-Id: Iebdedfb27c70909c0849e169473a2a3ec9f58cc7
2016-06-16Fix ubsan warning: vp8/encoder/onyx_ifcYaowu Xu
BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1219 Change-Id: I4362a1cf79fdcb478b29ddbcdf8091c5f5d10645
2016-06-14Match prev_ to number_of_layersJohann
Defined as unsigned in VP8_CONFIG Cleans warning in Android build: comparison of integers of different signs: 'unsigned int' and 'int' if (cpi->oxcf.number_of_layers != prev_number_of_layers) ~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~ Change-Id: I969e64cd2bfda6e61c564476dbd35b892b177646
2016-06-14Active map and ROI map use unsigned rows/colsJohann
The vpx_roi_map_t and vpx_active_map_t structures use unsigned rows and cols but VP8_COMMON uses signed values for mb_rows and mb_cols. Cleans warning in Android build: comparison of integers of different signs: 'int' and 'unsigned int' if (cpi->common.mb_rows != rows || cpi->common.mb_cols != cols) ~~~~~~~~~~~~~~~~~~~ ^ ~~~~ comparison of integers of different signs: 'int' and 'unsigned int' if (cpi->common.mb_rows != rows || cpi->common.mb_cols != cols) ~~~~~~~~~~~~~~~~~~~ ^ ~~~~ comparison of integers of different signs: 'unsigned int' and 'int' if (rows == cpi->common.mb_rows && cols == cpi->common.mb_cols) ~~~~ ^ ~~~~~~~~~~~~~~~~~~~ comparison of integers of different signs: 'unsigned int' and 'int' if (rows == cpi->common.mb_rows && cols == cpi->common.mb_cols) Change-Id: If1f118c20ffefd2530fbd371e6787cc8a6c31f0a
2016-06-02firstpass.c: fix an UBSAN/IOC errorYaowu Xu
Change-Id: I579286e6741b689ae4281a35beb7b8f95c3ffce5
2016-06-01Fix VP8 encoder UBSAN/IOC errorsYaowu Xu
1. vp8/decoder/dboolhuff.c 2. vp8/decoder/dboolhuff.h 3. vp8/encoder/bitstream.c 4. vp8/encoder/boolhuff.h 5. vp8/encoder/rdopt.c BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1218 Change-Id: I5d315d63fd7aeaee6f3bd79178e593f3db38a6b1
2016-05-11Merge "Added a measure of rc drift."Yaowu Xu
2016-05-11Added a measure of rc drift.paulwilkins
Added actual and absolute rate miss values to the opsnr.stt stats output line. Changes to the borg graphing may be needed before merge. Change-Id: I1e9d548ce445d29002f0c59ebfd3957a6f15e702
2016-05-09Alignment is required for sad_array8Johann
For at least some of the implementations of sdx8f, such as vpx_sad4x4x8_sse4_1, aligned moves are used to move the results into the array. Change-Id: I83df5a8e657b44e906d0d8b0bc154f1e5660f7f9
2016-04-27Avoid an unsigned overflow in invert_quantAlex Converse
Change-Id: I16a570b2af66b6580d1cd6f8345a25f079009bf4
2016-04-26vp8: Adjust consec_zeromv thresholds for skin detection.Marco
Change-Id: Iab5aed7bf86538352232e208bce58c3528cc9a4e
2016-04-19vp8: Update on sum_diff_threshold.Marco
Reset to previous values. Change-Id: Ia49bafc1d1ec5f657819ffba04d11fd701f315e8
2016-04-04vp8-denoiser: Avoid doing the mcomp if we don't denoise.Marco
Avoid doing the mcomp in denoiser if we don't denoise the block (because of motion/SSE/skin threshold, etc). This can reduce encoding time (with denoiser enabled) by ~1.5-2%. Change-Id: Ia699b68dfd37b89cdf3a82b8aa40e8c8f98a3d4f
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-03-22Merge "Simplify the loopfilter synchronization logic in VP8 encoder"Yaowu Xu
2016-03-22Simplify the loopfilter synchronization logic in VP8 encoderYunqing Wang
This patch was to fix a reported Hangouts deadlock/freezing issue in VP8 encoder(issue 27232610). The original encoder loopfilter synchronization happened in the following frame, which was prone to causing problems in some complex use cases. This patch simplified the synchronization logic. More testing needs to be done. Change-Id: I38fd3f35d11f98fae1e44546aa5e4c6d6e19c4be
2016-03-18vp8-denoiser: Update on the sum_diff threshold.Marco
Change-Id: I0d459c7ba358da287aff1c706279603d6d4d3c48
2016-02-27Merge "vp8-denoiser: Update some denoiser thresholds."Marco Paniconi
2016-02-17vp8/onyx_if: add missing alloc checksJames Zern
Change-Id: I9b0aa340518f45e16fa9754afd87347aabf968d7
2016-02-17vp8/denoising: add missing alloc checkJames Zern
Change-Id: I51ede902cd9d7bafa41f7caa3f9adf77f9df5903
2016-02-17vp8-denoiser: Update some denoiser thresholds.Marco
Change-Id: I67090d72c0fefd3105ac380415249599e053d3bd
2016-01-28vp9/10: fix encoder crash on flushJames Zern
the lookahead buffer allocation is deferred to receipt of the first frame to allow profile changes. if the encoder was flushed before supplying any frames the encoder would crash trying to dereference the NULL buffer. vp8 is unaffected. fixes mozilla bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1237848 Change-Id: Icee4b64de760476eee0d33b568f0a1010335ff13
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
2016-01-20vp8-denoiser: Fix threshold for skin map.Marco
Make it consistent with the comment/intended behavior, that is, only denoise if current block is zero_mv. Change-Id: I3909761e802e80089752a493ab3646dc32698ded
2016-01-08Amend and improve VP8 multithreading implementationYunqing Wang
There are flaws in current implementation of VP8 multithreading encoder and decoder as reported in the following issue: https://code.google.com/p/chromium/issues/detail?id=158922 Although the data race warnings are harmless, and wouldn't cause real problems while encoding and decoding videos, it is better to fix the warnings so that VP8 code could pass the TSan test. To synchronize the thread-shared data access and maintain the speed (i.e. decoding speed), use multiple mutexes based on mb_rows to reduce the number of synchronizations needed, make the reads and writes of the shared data protected, and reduce the number of mb_col writes by nsync times. The decoder speed tests showed < 3% speed loss while using 2 ~ 4 threads. Change-Id: Ie296defffcd86a693188b668270d811964227882
2015-09-30vp8: change build_intra_predictors_mby_s to use vpx_dsp.Ronald S. Bultje
Change-Id: I2000820e0c04de2c975d370a0cf7145330289bb2
2015-09-28VP8: Update rate correction factor for drop_overshoot feature.Marco
Update rate correction factor when we drop the frame due to overshoot. Only affects when the drop_overshoot feature is on: screen_content_mode = 2. Change-Id: I67e24de979b4c74744151d2ceb3cd75fec2a1e7a
2015-09-24VP8: Adjust rate correction factor for drop due to overshoot.Marco
Change-Id: Id70ca2e18a46247720eb631ae13a8430bd8b0954
2015-09-09vp8: Small adjustment to cyclic_refresh max_mbs_perframe.Marco
For 3 temporal layers, reduce somewhat the cyclic_refresh_mode_max_mbs_perframe parameter, from 20% to ~14%. Small increase in PSNR/SSIM metrics. Change-Id: Ia216fa5474048f1ef7fe3db88cd60dfef2a1bf8a
2015-09-08Remove some trailing whitespacesDebargha Mukherjee
Change-Id: Icf06d35ca347713253d1eba341a894b51efa81a9
2015-09-01Only build multithreaded functions on mt builds.Johann
Change-Id: I2e0cc72a0543bfea1d2d3499b9906519d5cb3f15
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-26Clean up unused function warnings in vp8 encoderJohann
Mark rdopt.h and treewriter.h functions with INLINE. Change-Id: Ib81168a709d09dfba7de16c596133310e04c6656
2015-08-26Clean up unused function warnings in vp8 onyx_if.cJohann
Remove really unused segmentation_test_function Hide decide_key_frame and recode_loop_test under non-realtime check. Change-Id: Ie0113945ffbd096dbb89a553548f526b2a0ee0c6
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-08-18Rename vp8 quantize.cJohann
Move it to vp8_quantize.c and make sure to use the full path for all vp8 includes of quantize.h Change-Id: I284651ff681707385f4924ea7db1541905c1624a
2015-08-07Replace VP8 SSIM with VP9 derived vpx_dsp SSIM.Alex Converse
Change-Id: Ic61f30af12d1b01c1d5adc4e08bc20e20ad38027
2015-08-01mips msa vp8 denoising filter optimizationParag Salasakar
average improvement ~2x-3x Change-Id: I6c17012c731fa4d56e0343f8de0df47b2dde289b
2015-07-31mips msa vp8 temporal filter optimizationParag Salasakar
average improvement ~2x-3x Change-Id: I05593bed583234dc7809aaec6cab82773a29505d
2015-07-31mips msa vp8 block subtract optimizationParag Salasakar
average improvement ~2x-3x Change-Id: I30abf4c92cddcc9e87b7a40d4106076e1ec701c2
2015-07-30mips msa vp8 quantize optimizationParag Salasakar
average improvement ~2x-3x Change-Id: I6fc37191bf9cb5a67e1af9787d0d27659c17bdba
2015-07-30mips msa vp8 fdct optimizationParag Salasakar
average improvement ~2x-4x Change-Id: Id0bc600440f7ef53348f585ebadb1ac6869e9a00
2015-07-07Use 'unsigned long' for _BitScanReverse parameterJohann
New clang warnings in chromium reveal an incompatible pointer being passed. Change-Id: I0d893993726ecf899f467c16175bfb8c76329731 https://code.google.com/p/chromium/issues/detail?id=504696
2015-07-07Move sub pixel variance to vpx_dspJohann
Change-Id: I66bf6720c396c89aa2d1fd26d5d52bf5d5e3dff1
2015-07-07Unify subtract function used in VP8/9Jingning Han
This commit replaces the vp8_ prefixed subtract function with the common vpx_subtract_block function. It removes redundant SIMD optimization codes and unit tests. Change-Id: I42e086c32c93c6125e452dcaa6ed04337fe028d9
2015-07-06Move subtract functions from vp9 to vpx_dspJingning Han
Factor out the subtraction operator as common function. Change-Id: I526e703477c6a290e0e3e3c8898f8bb1ca82779b