Age | Commit message (Collapse) | Author |
|
Separates the entropy coding context models for 4x4, 8x8 and 16x16
ADST variants.
There is a small improvement for HD (hd/std-hd) by about 0.1-0.2%.
Results on derf/yt are about the same, probably because there is not
enough statistics.
Results may improve somewhat once the initial probability tables are
updated for the hybrid transforms which is coming soon.
Change-Id: Ic7c0c62dacc68ef551054fdb575be8b8507d32a8
|
|
With this change, even if hybridtransform8x8 experiment is off,
8x8 dct is used for the I8x8 mode. However note that the gains
observed with the hybridtransform8x8 experiment will now be less,
since part of the gain is now merged in.
Change-Id: I9afb3880906fd0a1368a374041fc08efcf060c54
|
|
Removed spurious line that has no effect.
Change-Id: I9dc90babbbfcaca049d4a40dc996edc7de123e01
|
|
Some cleanups on the transform size and type selection logic.
Change-Id: If2e9675459482242cf83b4f7de7634505e3f6dac
|
|
This commit merges those parts of the CONFIG_NEW_MVREF
that specifically relate to choosing a better set of candidate
MV references into the NEWBESTREFMV experiment.
CONFIG_NEW_MVREF will then be used for changes relating
to the explicit coding of a cost optimized MV reference in the
bitstream as part of MV coding.
Change-Id: Ied982c0ad72093eab29e38b8cd74d5c3d7458b10
|
|
Extend experiment to use both vectors from MBs
coded using compound prediction as candidates.
In final sort only consider best 4 candidates
for now but make sure 0,0 is always one of them.
Other minor changes to new MV reference code.
Pass in Mv list to vp8_find_best_ref_mvs().
Change-Id: Ib96220c33c6b80bd1d5e0fbe8b68121be7997095
|
|
Adds a new experiment with redesigned/refactored motion vector entropy
coding. The patch also takes a first step towards separating the
integer and fractional pel components of a MV. However the fractional
pel encoding still depends on the integer pel part and so they are
not fully independent. Further experiments are in progress to see
how much they can be decoupled without affecting performance.
All components including entropy coding/decoding, costing for MV
search, forward updates and backward updates to probability tables,
have been implemented.
Results so far:
derf: +0.19%
std-hd: +0.28%
yt: +0.80%
hd: +1.15%
Patch: Simplifies the fractional pel models:
derf: +0.284%
std-hd: +0.289%
yt: +0.849%
hd: +1.254%
Patch: Some changes in the models, rebased.
derf: +0.330%
std-hd: +0.306%
yt: +0.816%
hd: +1.225%
Change-Id: I646b3c48f3587f4cc909639b78c3798da6402678
|
|
Enable ADST/DCT of dimension 16x16 for I16X16 modes. This change provides
benefits mostly for hd sequences.
Set up the framework for selectable transform dimension.
Also allowing quantization parameter threshold to control the use
of hybrid transform (This is currently disabled by setting threshold
always above the quantization parameter. Adaptive thresholding can
be built upon this, which will further improve the coding performance.)
The coding performance gains (with respect to the codec that has all
other configuration settings turned on) are
derf: 0.013
yt: 0.086
hd: 0.198
std-hd: 0.501
Change-Id: Ibb4263a61fc74e0b3c345f54d73e8c73552bf926
|
|
|
|
Change-Id: I7524883fb29f42303fb46a5bc6772fbcf8781d1d
|
|
Change-Id: I323c429b453eec8c3b76c37f7e2a52da9dfe8d77
|
|
Alternative strategy for finding a list of candidate motion
vectors to use as reference values in mv coding and as
nearest and near.
Sort by sad in vp8_find_best_ref_mvs() rather than just
pick the best. Allow 0,0 as a best ref option but not a
nearest or near unless there are no alternatives.
Encode/Decode verified on at least some clips.
Some commented out experimental and stats code still in place.
Gain over existing code averages about 1% on derf (alll metrics)
with improvement on all clips. Other test results pending.
The entropy coding of the mode (nearest/near etc) still
depends upon and requires the old "findnear" code so
this needs looking at and may provide room for further gains.
Change-Id: I871d7cba1d1c379c4bad9bcccce1fb19c46b8247
|
|
Change-Id: I887cdcf90b87736f2a3805420aa41eed93324bee
|
|
Change-Id: Iccb56e3b966d1519ba49dfe4e1396479c6b54a6f
|
|
|
|
Change-Id: I95217ce52675ad00637fc8f60d4d0dd054efd512
|
|
|
|
This commit adds a pick_sb_mode() function which selects the best 32x32
superblock coding mode. Then it selects the best per-MB modes, compares
the two and encodes that in the bitstream.
The bitstream coding is rather simplistic right now. At the SB level,
we code a bit to indicate whether this block uses SB-coding (32x32
prediction) or MB-coding (anything else), and then we follow with the
actual modes. This could and should be modified in the future, but is
omitted from this commit because it will likely involve reorganizing
much more code rather than just adding SB coding, so it's better to let
that be judged on its own merits.
Gains on derf: about even, YT/HD: +0.75%, STD/HD: +1.5%.
Change-Id: Iae313a7cbd8f75b3c66d04a68b991cb096eaaba6
|
|
Change-Id: I01dd96da18fe22450bb372b10ba90eab52e29bdf
|
|
Error was introduced in bf474e170fefbed60cf20fa3d2e9e229776469f0
Change-Id: I55bf114a1938c3a8869d8ff49cbe076eb9e83ea0
|
|
|
|
The reference motion vector selected by surrounding pixels that has
the best matching score is used as nearest motion vector.
The change has shown consistent gain on all test sets, compression
gains range from .2% to .6%. The variation is largely dependent on
various other experiments on or off.
Change-Id: I5552e1c2f6fc57c3e8818a5ee41ffda89af05e75
|
|
References to MACROBLOCKD that use "x" changed to "xd"
to comply with convention elsewhere that x = MACROBLOCK
and xd = MACROBLOCKD.
Simplify some repeat references using local variables.
Change-Id: I0ba2e79536add08140a6c8b19698fcf5077246bc
|
|
Also add warnings for undefined macros in the C pre-processor
Change-Id: I1ec30e57c5a49fb72151a4cf140d7eeb0fb1d779
|
|
Change-Id: I8548aebd3c39797b253eef472bfe1c40f2f7ec59
|
|
Change-Id: Icc276609e409e4e234d240e5c12e137600e178ed
|
|
Change-Id: Ie7e7727512cc1333bd16e7688cd1d8764371dde3
|
|
Change-Id: I8e72279cc68f34d269705f06cdaf8f3d06eed635
|
|
Change-Id: Id38baf1b89648ef534e28be72f583137871f920c
|
|
Add local variable in several places to reference the MB mode
info structure. Currently this is usually accessed in the code as
x->e_mbd.mode_info_context->mbmi.* or in some places
xd->mode_info_context->mbmi.*
Resolved some uses of x-> for the MACROBLOCKD structure.
Rebased without dependency on motion reference experiment.
Change-Id: If6718276ee4f2ef131825d1524dfdb02a3793aed
|
|
Change-Id: I4fceefe76b14bd38a358dc4356708f7981bab339
|
|
This should make merging inter code paths easier.
Change-Id: I5cb81f25d56fa4790b4e9cfa4bc32b9062c2cfdf
|
|
SPLITMV shares very little code with the other inter modes.
Change-Id: I0beee95de1fbedeea1f71650951ffc7db3a118eb
|
|
Also refactor some RD code, remove some comments, and cosmetic changes.
Change-Id: I43806ae573ab5a5036602ac4425d750bbfa1e812
|
|
Merges this experiment in to make it easier to run tests on
filter precision, vectorized implementation etc.
Also removes an experimental filter.
Change-Id: I1e8706bb6d4fc469815123939e9c6e0b5ae945cd
|
|
Change-Id: I94f08f2cfb37d11d71050dca3200f1d391269a6a
|
|
Change-Id: Ic7a7cb1199b085e98ede0e634619b3077c348d57
|
|
Change-Id: I2f96e5b205f70fdb559f01637c4b5730246c38a8
|
|
It's now used in more places
Change-Id: I63f8e1d827404e0b4f203bdb1df361e565d0779d
|
|
Change-Id: I7803d719ead238189e75c52701c3bb6c1552f4b5
|
|
Change-Id: Ia1e3b0ff9b70747b3725391de59f230edab767d7
|
|
Change-Id: Ib7b972486ccbbcb82fa4c05a5f6d7f8aaec32155
|
|
Change-Id: I58792bac6c7e5a524a6dcdb5241ef18bcc0c3a45
|
|
Using surrounding reconstructed pixels from left and above to select
best matching mv to use as reference motion vector for mv encoding.
Test results:
AVGPSNR GLBPSNR VPXSSIM
Derf: 1.107% 1.062% 0.992%
Std-hd:1.209% 1.176% 1.029%
Change-Id: I8f10e09ee6538c05df2fb9f069abcaf1edb3fca6
|
|
The forward and inverse hybrid transforms are now performed using
single function modules, where the dimension is sent as argument.
Added an inline function clip8b to clip the reconstruction pixels
into range of 0-255.
Change-Id: Id7d870b3e1aefc092721c80c0af6f641eb5f3747
|
|
It's reset in calling functions.
Change-Id: Ia5df086de615aac6feb3c911fe298626a002b850
|
|
Change-Id: I3421d07fdcf2148d75c8dbfc8c44bc2d96a3a8f6
|
|
Change-Id: Id1ea2d543f12d4589df7038d5fb7bac1fee4da11
|
|
Change-Id: Ia6a290a6a53fdb88c971bea2de47ac73dcb7a364
|
|
Change-Id: I876955b1d577321b5cd3f71e3fb2c4083ad5111b
|