summaryrefslogtreecommitdiff
path: root/vp8/encoder
AgeCommit message (Collapse)Author
2014-05-28Merge "vp8 denoiser: fix to zero_mv mode selection."Marco Paniconi
2014-05-28vp8 denoiser: fix to zero_mv mode selection.Marco Paniconi
In the current logic, if the sse for zero motion is smaller than the sse for new_mv (i.e., best_sse), we may still end up using the non-zero mv for denoising (if the magnitude of new_mv is above threshold). This can happen for very noisy content, and can lead to artifacts. This change ensures that we always use zero_mv (over new_mv) for denoisng if sse_zero_mv <= best_sse. Change-Id: I8ef9294d837b077013b77a46c9a71d17c648b48a
2014-05-27Merge "Fix to reduce block artifacts from vp8 temporal denoiser."Marco Paniconi
2014-05-27Merge "Removing vp8/common/pragmas.h."Dmitry Kovalev
2014-05-26neon matches "C" when using increase_denoisingScott LaVarnway
If increase_denoising is set, vp8_denoiser_filter_neon() produced incorrect results. Change-Id: I645f78e48b8f6657fa8a4b69d2c4d3488a0581dc
2014-05-23Removing vp8/common/pragmas.h.Dmitry Kovalev
Change-Id: I80630a7350e884ebc4fef73fb5b52ec25f908523
2014-05-21Fix to reduce block artifacts from vp8 temporal denoiser.Marco Paniconi
If the denoiser filter causes too big a change in the absolute pixel difference (between source and denoised signal), the block is not denoised, which can cause visual block artifacts. This change applies a second adjustment to the temporal filter to effectively allow for a (weaker) denoising for such blocks (which can keep the absolute differnence within the tolerance range in most cases). This helps to reduce some of the block artifacts from the denoising. The additional cost of re-applying the filter to this set of blocks is low, as the percentage of blocks per frame (with too big a change in absolute pixel difference) is typically small, 2-5%. Change-Id: Id9b56e59e33f3c22e79d2f89f763bdde246fdf3f
2014-05-21Renames x86_64 specific asm filesDeb Mukherjee
Renames all x86_64 specific assembly files to consistently end in _x86_64.asm. This will be useful for build systems to handle these files differently. All new 64-bit specific assembly files should use the new naming convention. Change-Id: I36c89584967c82ffc4088b1b5044ac15d2bb7536
2014-05-16vp8: Add increase_denoising parameter to denoiser.Marco Paniconi
Change-Id: I96ed73e109c4f89dd06f3583cf7ecf9277401fae
2014-05-15Merge "Revert "Remove Wextra warnings from vp9_sad.c""Jim Bankoski
2014-05-15Revert "Remove Wextra warnings from vp9_sad.c"Jim Bankoski
This reverts commit 7ab9a9587b96db4edce6be916c1f02297a9555ff Nightly test http://build.webmproject.org/jenkins/view/libvpx-nightly-tests/job/libvpx%20unit%20tests%20(valgrind-2)/arch=x86_64-linux-gcc,filter=-*VP8*:*Large.*/276/console Failed This patch did not address all the assembly issues some of the vp8 assembly counts on 5 arguments being passed in to this function: one example : vp8_sad8x16_wmt Please address or split this into vp9 and vp8 patches. Change-Id: I78afcc171649894f887bb8ee3c66de24aaddc7ca
2014-05-14Merge "Revert "Revert "Remove struct params from vp8_denoiser_filter"""Marco Paniconi
2014-05-14Revert "Revert "Remove struct params from vp8_denoiser_filter""Marco Paniconi
This reverts commit 06e6d56fa138d84759e8bdfd4c721ead000051b4 Change-Id: If95598385b693945d6b144d03b6da8f6a57dac98
2014-05-14Remove Wextra warnings from vp9_sad.cDeb Mukherjee
As a side-effect, the max_sad check is removed from the C-implementation of VP8, for consistency with VP9, and to ensure that the SAD tests common to VP8/VP9 pass. That will make the VP8 C implementation of sad a little slower but given that is rarely used in practice, the impact will be minimal. Change-Id: I7f43089fdea047fbf1862e40c21e4715c30f07ca
2014-05-08Use __asm__ __volatile__ with gccJohann
Some version of clang refuse 'asm volatile' Change-Id: I79d909ac8ae3c04b608f20c6f10fa79b7f9fc8e0
2014-05-07Merge "Revert "Remove struct params from vp8_denoiser_filter""Frank Galligan
2014-05-07Revert "Remove struct params from vp8_denoiser_filter"Frank Galligan
This reverts commit e516a42527098a26798dbb3663a5bcdd38793839 Change-Id: I7c78712acc737ad5f580181cdab3aa76b23f3ca5
2014-05-05Fix generic-gnu target buildAdrian Grange
Added macro to conditionally compile some of the post-processing functions only when CONFIG_POSTPROC is defined. This was causing the build for the generic-gnu target to fail. Change-Id: Ibfa447feceb7a0528135025f105be48f97e9965c
2014-05-05Fix rounding in ARNR calculationAdrian Grange
The rounding of the ARNR filter output prior to normalization by the filter strength was incorrect when strength = 0. In this case 1 << (strength - 1) would not create the required rounding of 0, rather it would outrange. This patch fixes this issue. Change-Id: I771809ba34d6052b17d34c870ea11ff67b418dab
2014-05-05Merge "Remove struct params from vp8_denoiser_filter"Scott LaVarnway
2014-05-03Merge "Remove asm_offsets dependency in quantize_b_ssse3"Johann
2014-05-02Remove struct params from vp8_denoiser_filterScott LaVarnway
This eliminates the asm_offsets dependency for future all-assembly versions of this function. Change-Id: I3227073ecfcb8ee6e593934fab941e9081abdda0
2014-05-02Merge "Improved intrinsic version of vp8_denoiser_filter_neon"Scott LaVarnway
2014-05-02Remove asm_offsets dependency in quantize_b_ssse3Johann
Replace it with some intrinsic code and inline assembly. Change-Id: I81b4df146db3d01039059be7dae31083e2943b97
2014-04-30Improved intrinsic version of vp8_denoiser_filter_neonScott LaVarnway
Used horizonal add instructions instead of adding byte lanes. The encoder performance improved by ~4% for the test clip used. Change-Id: Iaddd10403fcffb5b3f53b1f591ab2fe0ff002c08
2014-04-29Remove VP8 save_reg_neon functionYunqing Wang
This patch did a cleanup following the commit "Save NEON registers in VP8 NEON functions". The pushing/poping of callee-saved NEON registers was moved into individual NEON functions. Therefore, we don't need to save those registers at the beginning of codec. The related code was removed. Change-Id: I5648166514fc9beffb780aa138495597731f49ea
2014-04-28Save NEON registers in VP8 NEON functionsYunqing Wang
The recent compiler can generate optimized code that uses NEON registers for various operations besides floating-point operations. Therefore, only saving callee-saved registers d8 - d15 at the beginning of the encoder/decoder is not enough anymore. This patch added register saving code in VP8 NEON functions that use those registers. Change-Id: Ie9e44f5188cf410990c8aaaac68faceee9dffd31
2014-04-23Add VPXD_SET_DECRYPTOR support to the VP9 decoder.Joey Parrish
Change-Id: I88f86c8ff9af34e0b6531028b691921b54c2fc48
2014-04-10Fix onyx_if.c to not to redefine M_LOG2_E if it's already defined.Sergey Ulanov
This fixes warning when compiling libvpx for PNaCl. PNaCl's version of math.h defines M_LOG2_E. Change-Id: Iba9450441538e9f82447ad2936bea94d21bafdf1
2014-03-18Merge "tokenize: quiet -Warray-bounds warnings"James Zern
2014-03-18Merge "rdopt: quiet -Warray-bounds warnings"James Zern
2014-03-15tokenize: quiet -Warray-bounds warningsJames Zern
eob is limited by GetCoeffs Change-Id: Ie5c0d024796fe6c9b2db0374892544e421bd5d09
2014-03-15rdopt: quiet -Warray-bounds warningsJames Zern
eob is limited by GetCoeffs Change-Id: Id48a92e600375a1d4fb956757c93c91ebb5df59a
2014-03-15onyx_if: quiet -Warray-bounds warningsJames Zern
'number_of_layers' is range checked before assignment from the user config. Change-Id: Idefdaceb8736f126fa7c647da2b047dafb56ea52
2014-02-26Adding vpx_sse_to_psnr() function.Dmitry Kovalev
Removing all copies of identical vp8_mse2psnr/vp9_mse2psnr functions. Using vpx_sse_to_psnr() instead in all places. Change-Id: I15beef9834d43d8fc8a8a7a2d1fc5de3d658fed8
2014-02-14Cleanup some comments.Adrian Grange
Change-Id: I568861ba1d43620865ad9a98a97eef37a51fd856
2014-02-06vp8/encoder: Silence MSVC warnings in firstpass.c.Tom Finegan
Added some casts to int to silence MSVC warnings. Change-Id: I72481ec2abd12110cf87a3d0da7a1cbe9ef2f47c
2014-01-23vp8/encoder: add extern "C" to headersJames Zern
Change-Id: I252f5f8a5d5ada65da08699774a7bb1eb2bd5b2e
2014-01-22arm: Use vreinterpret instead of a plain cast for converting between neon ↵Martin Storsjo
vector types This fixes building with MSVC for arm. Change-Id: Iffae0408e0c68760e87e96b9e17d9df8e8cadb1a
2014-01-09Keep buffer clipped to maximum in change_config.Marco Paniconi
Under a configuration change, where the bitrate suddenly decreases, the buffer level may be larger than maximum allowed (for that first frame to be encoded after change_config). This change keeps it clipped to its maximum level. Change-Id: I4d0b5b3d1fd8148600dd39e02bd630c9464baba5
2014-01-02ARM NEON version of denoiser.Christian Duvivier
Change-Id: I951abd4ad0078f78949f3cb79453ac334fb82a7e
2013-12-16vp8/encoder: normalize include guardsJames Zern
Change-Id: I82834550503a43ff7ec8422342dc65136453b287
2013-12-11Merge "vp8: remove 2 unused tables"James Zern
2013-12-11Fix the printf format stringAdrian Grange
There were two problems with the format string in the conditionally compiled print statement. It referred to a variable that is no longer available and it used incorrect format specifiers. Change-Id: I315e22bea2691bb535a2e33f5ca206fc55287a37
2013-12-10vp8: remove 2 unused tablesJames Zern
Change-Id: Ib5ba4e0b438107741efa28251848306322fd7f89
2013-11-19Undo the vp8 change in "Reduce loop filter in..."Marco Paniconi
Patch in https://gerrit.chromium.org/gerrit/#/c/41176/ was merged into repository by mistake. Change-Id: I235c71af26bb2d72698c8aac2301e5a7e9c5f960
2013-11-19Merge "Reduce loop filter in cyclic refresh."Jim Bankoski
2013-11-01Fixes to buffer update for temporal layers.Marco Paniconi
When a frame is dropped due to |buffer_level| < 0 for a given temporal layer, the buffer level for the upper temporal layers was not updated (in calc_pframe_target_size()). This change fixes that. Also, use the layer per-frame-bandwidth for updating the buffer level of the higher layers when a frame is dropped. Change-Id: I660c23f3229b47e9d124a950b480314b4307c5a8
2013-10-17fix a VP8 build issueYaowu Xu
coef_counts is now in cpi->mb, instead of cpi. The commit corrected the mis-use and enable succefual build. Change-Id: I0e77909d34571cfd2560c66b46b1f8fa0cd1a6b4
2013-09-26fixed integer overflow warningsYaowu Xu
Jenkins warns on left shift of negative numbers and non-aligned read of int. This commit fixed the two issues. Change-Id: I389a7fb6a572c643902e40a4c10fefef94500d2c