Age | Commit message (Collapse) | Author |
|
The commit changed the name of files and function to remove obselete
reference to LLM and x8.
Change-Id: I973b20fc1a55149ed68b5408b3874768e6f88516
|
|
experimental
|
|
Change-Id: I07ddf3be8bc5d6c2eb561d4241879777c315b183
|
|
Use the uv_stride from the framebuffer rather than deriving it from the
y_stride.
Change-Id: I94581cb741539d094ff062b3d008235556903b8c
|
|
Removing redundant code, introducing new functions for better
decomposition, adding 'clamp' function to vp9_common.h.
Change-Id: Ic3b8ca13bbc38f60f0c9c43910b5802005e31aaf
|
|
The automatic merge result was incomplete.
Change-Id: I8976318bfc346d867660a013a302c80edb25fc29
|
|
|
|
Remove the temporary branch count arrays and build the adapted probabilities
while walking the tree. Gives an additional 1.5% or so on CIF.
Change-Id: I875d61e5e0ec778e5d2f7f9d0837b989a91cf3a3
|
|
|
|
|
|
Adds a check to exit from the increment_nmv_count function when the
increment is 0.
Change-Id: I99c1e342d351f7800e23590f9c2419881bf1d708
|
|
The previous implementation visited each node in the tree multiple times
because it used each symbol's encoding to revisit the branches taken and
increment its count. Instead, we can traverse the tree depth first and
calculate the probabilities and branch counts as we walk back up. The
complexity goes from somewhere between O(nlogn) and O(n^2) (depending on
how balanced the tree is) to O(n).
Only tested one clip (256kbps, CIF), saw 13% decoding perf improvement.
Note that this optimization should port trivially to VP8 as well. In VP8,
the decoder doesn't use this function, but it does routinely show up
on the profile for realtime encoding.
Change-Id: I4f2848e4f41dc9a7694f73f3e75034bce08d1b12
|
|
Adds probability updates for extra bits for the nzcs, code for
getting nzc stats, plus some minor cleanups and fixes.
Change-Id: If2814e7f04fb52f5025ad9f400f3e6c50a00b543
|
|
|
|
Added SSE2 idct4_1d which is called by vp9_short_iht4x4. Also,
modified the parameter type passed to vp9_short_iht functions to
make it work with rtcd prototype.
Change-Id: I81ba7cb4db6738f1923383b52a06deb760923ffe
|
|
|
|
|
|
Increase the motion search range by 4x. Change MV_CLASS tree of the
entropy coding to allow two additional mv classes to cover the
extended motion vector limit. The codec determines the effective
motion search range conditioned on the actual frame dimension.
It provides coding gains:
stdhd 0.39%
yt 0.56%
hd 0.47%
Major coding performance gains are packed in several sequences with
intense motion activities, e.g., ped_1080p gains 7% at high bit-rates,
and on average 3%.
TODO: Need to further tune the rate control and motion search units.
Change-Id: Ib842540a6796fbee5a797809433ef6a477c6d78d
|
|
Optimized adding constant diff to predictor, which gave about
2% decoder performance gain.
Change-Id: I47db20c31428e8c4a8f16214a85cbe386a6e9303
|
|
Change-Id: I44660975e9985310d8c654c158ee7a61291b5a08
|
|
Change-Id: Ic9b336486774c95ffbb92adcb110cc0fc2a83cc5
|
|
This also changes the RD search to take account of the correct block
index when searching (this is required for ADST positioning to work
correctly in combination with tx_select).
Change-Id: Ie50d05b3a024a64ecd0b376887aa38ac5f7b6af6
|
|
This patch revamps the entropy coding of coefficients to code first
a non-zero count per coded block and correspondingly remove the EOB
token from the token set.
STATUS:
Main encode/decode code achieving encode/decode sync - done.
Forward and backward probability updates to the nzcs - done.
Rd costing updates for nzcs - done.
Note: The dynamic progrmaming apporach used in trellis quantization
is not exactly compatible with nzcs. A suboptimal approach has been
used instead where branch costs are updated to account for changes
in the nzcs.
TODO:
Training the default probs/counts for nzcs
Change-Id: I951bc1e22f47885077a7453a09b0493daa77883d
|
|
|
|
|
|
Optimized adding diff to predictor, which gave 0.8% decoder
performance gain.
Change-Id: Ic920f0baa8cbd13a73fa77b7f9da83b58749f0f8
|
|
Removing redundant 'extern' keywords, fixing formatting and #include order,
code simplification.
Change-Id: I0e5fdc8009010f3f885f13b5d76859b9da511758
|
|
* changes:
vpxenc: actually report mismatch on stderr.
Make superblocks independent of macroblock code and data.
|
|
experimental
|
|
Split macroblock and superblock tokenization and detokenization
functions and coefficient-related data structs so that the bitstream
layout and related code of superblock coefficients looks less like it's
a hack to fit macroblocks in superblocks.
In addition, unify chroma transform size selection from luma transform
size (i.e. always use the same size, as long as it fits the predictor);
in practice, this means 32x32 and 64x64 superblocks using the 16x16 luma
transform will now use the 16x16 (instead of the 8x8) chroma transform,
and 64x64 superblocks using the 32x32 luma transform will now use the
32x32 (instead of the 16x16) chroma transform.
Lastly, add a trellis optimize function for 32x32 transform blocks.
HD gains about 0.3%, STDHD about 0.15% and derf about 0.1%. There's
a few negative points here and there that I might want to analyze
a little closer.
Change-Id: Ibad7c3ddfe1acfc52771dfc27c03e9783e054430
|
|
|
|
Wrote a SSE2 vp9_short_idct4x4llm to improve the decoder
performance.
Change-Id: I90b9d48c4bf37aaf47995bffe7e584e6d4a2c000
|
|
Fixed a couple of variable/function definitions, as well as header
handling to support 16K sequence coding at high bit-rates.
The width and height are each specified by two bytes in the header.
Use an extra byte to explicitly indicate the scaling factors in
both directions, each ranging from 0 to 15.
Tested coding up to 16400x16400 dimension.
Change-Id: Ibc2225c6036620270f2c0cf5172d1760aaec10ec
|
|
Update the function prototypes to match between VP9 and VP8.
Change-Id: If58965073989e87df3b62b67a030ec6ce23ca04f
|
|
Change-Id: Iab0176f058045181821ded95ff1cf423af1625f9
|
|
Picks up some build system changes, compiler warning fixes, etc.
Change-Id: I2712f99e653502818a101a72696ad54018152d4e
|
|
|
|
Simplified idct32x32 calculation when there are only 10 or less
non-zero coefficients in 32x32 block. This helps the decoder
performance.
Change-Id: If7f8893d27b64a9892b4b2621a37fdf4ac0c2a6d
|
|
|
|
|
|
Provided a wrapper and removed duplicate code.
Change-Id: Iaef842226ec348422e459202793b001d0983ea30
|
|
Change-Id: Ie89bd00d58e30bf4094cb748a282f1dfa81a31d8
|
|
The ABOVESPREFMV experiment uses four pixels to the left of the
current block, which don't exist for the left-most column.
Change-Id: I4cf0b42ae8f54c0b3e7b1ed8755704b74fafc39c
|
|
sse4_1 code used uint16_t for returning sad, but that
won't work for 32x32 or 64x64. This code fixes the
assembly for those and also reenables sse4_1 on linux
Change-Id: I5ce7288d581db870a148e5f7c5092826f59edd81
|
|
Scalar path is about 1.4x faster (4% overall encoder speedup).
SSE2 path is about 7x faster (13% overall encoder speedup).
Change-Id: I7e85d8225a914a74c61ea370210414696560094d
|
|
Fixing code style, using array lookup instead of switch statements for
forward hybrid transforms (in the same way as for their inverses).
Consistent usage of ROUND_POWER_OF_TWO macro in appropriate places.
Change-Id: I0d3822ae11f928905fdbfbe4158f91d97c71015f
|
|
|
|
|
|
|
|
|