Age | Commit message (Collapse) | Author |
|
Change-Id: I45d9fb4013f50766b24363a86365e8063e8954c2
|
|
BUG=webm:1267
Change-Id: I899fc9e8d784c6eefcbe27945c619845adb7b6f0
|
|
In VP9 internal denoiser, motion magnitude is computed from
best_sse_mv, which should be set to 0 at the begining. This bug may
cause visual aritifact in denoiser. Also, delete two improper comments.
Change-Id: I8710d2acba23320bc85cf72af17d65245c19438b
|
|
Need to check that sse for non-zero mv has been set for the current block
(i.e., check that nonzero-mv is tested as a mode, so newmv_sse != UINT_MAX)
before forcing to not use zero-mv for denoising.
Also increase some thresholds (sse and sse_diff) for high noise case,
and use shift operaton instead of multiplication on a threshold computation.
Change-Id: Iae7339475d57240316b7fa8b887c4ee3c0d0dbec
|
|
Change-Id: Ib47d742d07f13c7c39cea85e228c19ae298baf4a
|
|
So it can be used even with aq-mode=3 not enabled.
Also cleans up some code in the places where its used.
No change in behavior.
Change-Id: Ib6b265308dbd483f691200da9a0be4da4b380dbc
|
|
Avoid copy-block when denoising is at LowLow level (i.e., no denoising is done).
Instead, don't enter denoiser at all, and when level goes back up over kLowLow
do a reset in denoiser.
Change-Id: I0544adf58f4dd51ecc4a4607fcb0353bfbbb7a59
|
|
|
|
This make it more likely clean/low-noise content will
be set as LowLow, and hence no denoising will be done.
Also set early exit on denoising for small blocks.
Change-Id: I4a72bba3e6c5e2d523d304c39deacc9c39bf216c
|
|
Some cleanup and bugfix: pass mi_row/mi_col (not mv_col/mv_row)
to build_inter_predictors. This only affects case where
the frame is resized, but since denoising is not done on resized
frames, the fix has not effect currently.
Change-Id: I36617a7f0b43b6f49976745f15d400977e6ffa46
|
|
Change-Id: I250258fc70ec0fcf1b501708c5d4b84685cf882e
|
|
Change-Id: Ibe4e1207c0db1779e1358f4566da67c9a07bdb15
|
|
Add consec_zeromv to skin detection.
Reduces false detection in steady background areas.
Change-Id: Ic31c831537d29f082f58477f82ed78f313d7dd30
|
|
Change-Id: I6c99ac6fd3735e24cf668479c55bff313c0b4970
|
|
Change-Id: Ic5af41db58a3daad4103175b4b4b9300675020c0
|
|
Change-Id: Ifa607dd2bb366ce09fa16dfcad3cc45a2440c185
|
|
More aggresive on avoiding denoising on skin.
May supplement this later by adding condtion onn consec_zeromv.
Change-Id: Ied92b332f9b24e821d2009f81d1565758588d9a5
|
|
Add function to compute skin map for a given block, as its
used in several places (cyclic refresh, noise estimation, and denoising).
Change-Id: Ied622908df43b6927f7fafc6c019d1867f2a24eb
|
|
Under certain denoising conditons, check for re-evaluation of
zero_last mode if best mode was golden reference.
Change-Id: Ic6cdfd175eef2f7d68606300c7173ab6654b3f6e
|
|
|
|
For denoising, and for noise level above threshold, re-evaluate
ZEROMV for mode selection after denoising.
Current change only does this check if selected best mode (before denoising)
was intra.
Change-Id: I4b1435b68d26c78f7597b995ee7bff0ddd5f9511
|
|
zeromv_lastref_sse was not reset.
Change-Id: I23c12e804d63dc7dc18514f6efe71de1d1acbd6a
|
|
Change-Id: I6a360a12e8da8cdcb8a779647512591612d64f31
|
|
Change-Id: Idc755ab54e4f78bb7d75bc97634c451804edad99
|
|
Source noise level estimate is also useful for
setting variance encoder parameters (variance thresholds,
qp-delta, mode selection, etc), so allow it to be used also
if denoising is not on.
Change-Id: I4fe23d47607b4e17a35287057f489c29114beed1
|
|
Change-Id: I60461f011d1aba0b1eb6584c6940f745221915f4
|
|
Set increase_denoising parameter for temporal filter.
Change-Id: Id98bf160db98dfa9aedf76e20b43e6f7c783fb1c
|
|
Adjust variance threshold, delta-qp, and intra penalty cost,
based on estimated noise level in source.
Replace denoising_on with a level value=L/M/H.
Change-Id: I0c017dae75a5d897367d2c42dec26f2f37e447c1
|
|
Change-Id: Ibb573f50c4bf2cfb382b589803f3363db0ac1285
|
|
Periodically estiamte noise level in source, and only denoise
if estimated noise level is above threshold.
Change-Id: I54f967b3003b0c14d0b1d3dc83cb82ce8cc2d381
|
|
Only denoise at small motion if it's a skin block.
Change-Id: I6235cad9dd7f76ab40e7d9cdfe6180e619c20c6e
|
|
Change-Id: I65269ddb3ea5f911d5be38614b93c97be7e1ba76
|
|
The artifact occurs periodically when VP9 denoiser is on and
refresh_golden_frame happen. When refresh_golden_frame happen,
we should copy the frame buffer instead of swapping the pointers.
Change-Id: Ib3204c4b04db28ecf439c6d9e61f3d146f04196d
|
|
Temporary fix to denoiser when dynamic resizing is on.
-Reallocate denoiser buffers on resized frame.
-Force golden update on resized frame.
-Don't denoise resized frame, and copy source into denoised buffers.
Change-Id: Ife7638173b76a1c49eac7da4f2a30c9c1f4e2000
|
|
Change-Id: I2e387a06484a06301f3cd6600c4ba2f4335b61ee
|
|
prevents redeclaration warnings;
vp8 has its own define which will be resolved in a future commit
Change-Id: Ic941fef3dd4262fcdce48b73075fe6b375f11c9c
|
|
Change-Id: Iac85902cbbb3e752801dc85de9a3c778e47304aa
|
|
Change-Id: I34cc7b500d19a79f29c5ad241f602c1bc269446e
|
|
It in essence refactors the code for both the interpolation
filtering and the convolution. This change includes the moving
of all the files as well as the changing of the code from vp9_
prefix to vpx_ prefix accordingly, for underneath architectures:
(1) x86;
(2) arm/neon; and
(3) mips/msa.
The work on mips/drsp2 will be done in a separate change list.
Change-Id: Ic3ce7fb7f81210db7628b373c73553db68793c46
|
|
vestigial. replace instances with memcpy() which they already were being
defined to.
Change-Id: Icfd1b0bc5d95b70efab91b9ae777ace1e81d2d7c
|
|
(see I3a05cf1610679fed26e0b2eadd315a9ae91afdd6)
For the test clip used, the decoder performance improved by ~2%.
This is also an intermediate step towards adding back the
mode_info streams.
Change-Id: Idddc4a3f46e4180fbebddc156c4bbf177d5c2e0d
|
|
Change-Id: I3edbb7cc67203fbbf32c6fd4a08015ca9d9ed53e
|
|
Prevent from using wrong mv for denoiser motion compensation.
Change-Id: Ifa0f9daabdbdab0900d3c17304059fe0d15de914
|
|
The comparison of address in the condition is not necessary, since
they will constantly be non-null.
Change-Id: Id0b0075283f5af65215d5761a8160a4cb2a15c9b
|
|
This commit fixes a bug in denoiser reference frame buffer swap,
which disables frame buffer update.
Change-Id: I39a9427180fd18f9692602064ad821f7af4714c0
|
|
This commit refactors the motion compensated reference block fetch
process in denoiser. It skips the stage that generates motion
compensated reference block if denoiser decides to use copy block
mode. For high motion clips, this could speed up the denoising
process by about 10%.
Change-Id: I8ef4fa5fe766a8c4529119b9ec01faefb3d4ef53
|
|
This could save one multiplication in each threshold funtion
called by the denoiser per block.
Change-Id: I35f437e09999f0a087180878ef7805f0d86e5819
|
|
|
|
|
|
Use frame buffer pointer swap instead of memcpy when possible.
These two CLs make the denoiser when running on vidyo1 720p at
speed -6 over 10% faster.
Change-Id: I64fe8a2422cafca6787a50c7f4dfb961191c0a9d
|