Age | Commit message (Collapse) | Author |
|
|
|
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
|
|
|
|
|
|
If increase_denoising is set,
vp8_denoiser_filter_neon() produced incorrect results.
Change-Id: I645f78e48b8f6657fa8a4b69d2c4d3488a0581dc
|
|
Change-Id: I80630a7350e884ebc4fef73fb5b52ec25f908523
|
|
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
|
|
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
|
|
Change-Id: I96ed73e109c4f89dd06f3583cf7ecf9277401fae
|
|
|
|
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
|
|
|
|
This reverts commit 06e6d56fa138d84759e8bdfd4c721ead000051b4
Change-Id: If95598385b693945d6b144d03b6da8f6a57dac98
|
|
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
|
|
Some version of clang refuse 'asm volatile'
Change-Id: I79d909ac8ae3c04b608f20c6f10fa79b7f9fc8e0
|
|
|
|
This reverts commit e516a42527098a26798dbb3663a5bcdd38793839
Change-Id: I7c78712acc737ad5f580181cdab3aa76b23f3ca5
|
|
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
|
|
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
|
|
|
|
|
|
This eliminates the asm_offsets dependency for future
all-assembly versions of this function.
Change-Id: I3227073ecfcb8ee6e593934fab941e9081abdda0
|
|
|
|
Replace it with some intrinsic code and inline assembly.
Change-Id: I81b4df146db3d01039059be7dae31083e2943b97
|
|
Used horizonal add instructions instead of adding
byte lanes. The encoder performance improved by
~4% for the test clip used.
Change-Id: Iaddd10403fcffb5b3f53b1f591ab2fe0ff002c08
|
|
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
|
|
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
|
|
Change-Id: I88f86c8ff9af34e0b6531028b691921b54c2fc48
|
|
This fixes warning when compiling libvpx for PNaCl. PNaCl's version
of math.h defines M_LOG2_E.
Change-Id: Iba9450441538e9f82447ad2936bea94d21bafdf1
|
|
|
|
|
|
eob is limited by GetCoeffs
Change-Id: Ie5c0d024796fe6c9b2db0374892544e421bd5d09
|
|
eob is limited by GetCoeffs
Change-Id: Id48a92e600375a1d4fb956757c93c91ebb5df59a
|
|
'number_of_layers' is range checked before assignment from the user
config.
Change-Id: Idefdaceb8736f126fa7c647da2b047dafb56ea52
|
|
Removing all copies of identical vp8_mse2psnr/vp9_mse2psnr functions.
Using vpx_sse_to_psnr() instead in all places.
Change-Id: I15beef9834d43d8fc8a8a7a2d1fc5de3d658fed8
|
|
Change-Id: I568861ba1d43620865ad9a98a97eef37a51fd856
|
|
Added some casts to int to silence MSVC warnings.
Change-Id: I72481ec2abd12110cf87a3d0da7a1cbe9ef2f47c
|
|
Change-Id: I252f5f8a5d5ada65da08699774a7bb1eb2bd5b2e
|
|
vector types
This fixes building with MSVC for arm.
Change-Id: Iffae0408e0c68760e87e96b9e17d9df8e8cadb1a
|
|
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
|
|
Change-Id: I951abd4ad0078f78949f3cb79453ac334fb82a7e
|
|
Change-Id: I82834550503a43ff7ec8422342dc65136453b287
|
|
|
|
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
|
|
Change-Id: Ib5ba4e0b438107741efa28251848306322fd7f89
|
|
Patch in https://gerrit.chromium.org/gerrit/#/c/41176/
was merged into repository by mistake.
Change-Id: I235c71af26bb2d72698c8aac2301e5a7e9c5f960
|
|
|
|
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
|
|
coef_counts is now in cpi->mb, instead of cpi. The commit corrected the
mis-use and enable succefual build.
Change-Id: I0e77909d34571cfd2560c66b46b1f8fa0cd1a6b4
|
|
Jenkins warns on left shift of negative numbers and non-aligned read
of int. This commit fixed the two issues.
Change-Id: I389a7fb6a572c643902e40a4c10fefef94500d2c
|