Age | Commit message (Collapse) | Author |
|
Change-Id: I12c67c8c0fa1aa7fb3f7d6cc2ef65be29c4ea292
|
|
Moving code that gets band_translate array from get_scan_and_band()
function to get_band_translate() function. Renaming get_scan_and_band() to
get_scan().
Change-Id: I43047c205a1ca2a6e24be44db39dc04b7a385008
|
|
|
|
Change-Id: If14265084e9b4c85c75b43e8d33a6fafad468cbc
|
|
Replacing
22 with TREE_SIZE(MAX_ENTROPY_TOKENS)
12 with MAX_ENTROPY_TOKENS
Change-Id: If24919336e8ace9cf64991bd5ae33fa6656f7b93
|
|
|
|
Values of MODE_UPDATE_PROB and VP9_COEF_UPDATE_PROB are equal, so replacing
them with one constant. Inlining appropriate arguments for functions:
vp9_cond_prob_diff_update (encoder)
vp9_diff_update_prob (decoder)
Change-Id: I1255a1cb477743b799b3bfbbcd8de6b32b067338
|
|
It is used only two times and it is more clear to use real type instead
of typedef.
Change-Id: Idc25c16504c3da4d040e0cdb33a2987631bb6a5b
|
|
|
|
Declaring vp9_pt_energy_class in vp9_entropy.h instead of many external
places.
Change-Id: I66e8a3fc119a43f88d130d0dae4133c825a047a3
|
|
Now we have entropy code separate from scan/iscan code. The next step
in future is to move iscan code from common part to the encoder.
Change-Id: Id9732f7d80aec00af35c1d58d1137c4c96c91451
|
|
Change-Id: I6973e7121b6393379b5759f288632e8eab763d3e
|
|
Change-Id: I6be72c8b048d1ccc7ef43764cf84c32360098970
|
|
Extracting get_scan_and_band function from get_entropy_context to
remove duplicated code.
Change-Id: I5da1f5a60263017e887da68bc834317b5f084cb2
|
|
This helps clear out some of the warnings
Change-Id: Ie7ccaca8fd92542386a7f1b257398e1bdf2f55dc
|
|
stragglers
Change-Id: Ib1e853f9a331b7b66639dc34d79568d84d1930f1
|
|
Moving common code from encoder and decoder to this function.
Change-Id: I60fa643fb1ddf7ebbff5e83b6c4710137b0195ef
|
|
Adding temporary "typedef BLOCK_SIZE BLOCK_SIZE_TYPE" which will go away
after encoder's patch.
Change-Id: I06ec6a6f079401439843ec981d1496234fd7775c
|
|
Change-Id: Ib3e72671eb8da6f2e9767a6de292ec7c7cde6bc7
|
|
Adding set_skip_context() function used from both encoder and decoder.
Change-Id: Ia22cfad3211a00a63eb294f64f857b78f4aa9b85
|
|
Change-Id: Icd128ab58719e0b9066bdfa66a5d0d427a84d6df
|
|
Fixes a warning on MSVS 2012 where the alignment of vp9_default_iscan_8x8
didn't match between its declaration and definition.
Change-Id: I1466a15635f4b22594d705d570b7e399bfb6cf21
|
|
Removing unused constants, macros, and function declarations. Using
ROUND_POWER_OF_TWO macro, vp9_zero, vp9_copy where possible. Moving
#include from *.h to *.c. Merging for loops for motion vectors.
Change-Id: Ic3bf841764a2bb177128bb3a6d7aa8f68229cd13
|
|
4x4: 163 -> 123 cycles (33% faster)
8x8: 491 -> 399 cycles (23% faster)
16x16: 1889 -> 1763 cycles (7% faster)
32x32: 8311 -> 8180 cycles (1.6% faster)
Overall encoding time of first 50 frames of bus (speed 0) @ 1500kbps
goes from 1min4.33 to 1min3.00, i.e. 2.11% faster.
Change-Id: Ib52d1dbb5649b14de769d3e7a74af67440b5284f
|
|
Removing unused and duplicated constants, moving them from *.h to *.c
if possible.
Change-Id: Ief4d6b984a3ca2e9b38504f0d855ed072cf7133f
|
|
This should significantly speedup cost_coeffs(). Basically what the
patch does is to make the neighbour arrays padded by one item to
prevent an eob check in get_coef_context(), then it populates each
col/row scan and left/top edge coefficient with two times the same
neighbour - this prevents a single/double context branch in
get_coef_context(). Lastly, it populates neighbour arrays in pixel
order (rather than scan order), so we don't have to dereference the
scantable to get the correct neighbours.
Total encoding time of first 50 frames of bus (speed 0) at 1500kbps
goes from 2min10.1 to 2min5.3, i.e. a 2.6% overall speed increase.
Change-Id: I42bcd2210fd7bec03767ef0e2945a665b851df56
|
|
Total encoding time for first 50 frames of bus (speed 0) @ 1500kbps
goes 2min34.8 to 2min14.4, i.e. a 10.4% overall speedup. The code is
x86-64 only, it needs some minor modifications to be 32bit compatible,
because it uses 15 xmm registers, whereas 32bit only has 8.
Change-Id: I2df53770c2e850813ffa713e1a91b45b0082b904
|
|
Makes cost_coeffs() a lot faster:
4x4: 236 -> 181 cycles
8x8: 888 -> 588 cycles
16x16: 3550 -> 2483 cycles
32x32: 17392 -> 12010 cycles
Total encode time of first 50 frames of bus (speed 0) @ 1500kbps goes
from 2min51.6 to 2min43.9, i.e. 4.7% overall speedup.
Change-Id: I16b8d595946393c8dc661599550b3f37f5718896
|
|
This function is not called from the decoder, so it doesn't need to be
in common/.
Change-Id: I6977dd462a25b4ff39c9c7e1b0b5b16aa58ee733
|
|
This function never referenced.
Change-Id: I1c42cd355bfa88e17d169f7335a44be682af58cc
|
|
All elements of this table are equal to 252, so replace it with a
single constant VP9_COEF_UPDATE_PROB.
Change-Id: I1e2d1d284326ce6df9899a740c2fc344b3ec81c9
|
|
This patch changes the coefficient tree to move the EOB to below
the ZERO node in order to save number of bool decodes.
The advantages of moving EOB one step down as opposed to two steps down
in the other parallel patch are: 1. The coef modeling based on
the One-node becomes independent of the tree structure above it, and
2. Fewer conext/counter increases are needed.
The drawback is that the potential savings in bool decodes will be
less, but assuming that 0s are much more predominant than 1's the
potential savings is still likely to be substantial.
Results on derf300: -0.237%
Change-Id: Ie784be13dc98291306b338e8228703a4c2ea2242
|
|
Uses reduced arrays for probabilities and branch counts in the
encoder. No change in bitstream.
Change-Id: Iec605446f44db4cd325eb45fa12a3003a6ee29db
|
|
Also some unused data structures/references removed.
Change-Id: I295809e887173543e794250cb60ddaf1475ffd24
|
|
Removal from under configure flag.
A bit renaming
Change-Id: I2213229dfe852001dfec16b149f47c52ce88f3aa
|
|
Reverts to using 128 bit LUT for the coef models rather than 48
to ease hardware implementation.
Also incorporates some cleanups including removing various
hooks to support different lookup tables based on block_type and
ref_type.
Change-Id: I54100c120cca07a2ebd3a7776bc4630fa6a153f6
|
|
Merges the experiment.
Change-Id: I4eb19af6de6df6aa3a96a2e82f231d47ed9b3ae9
|
|
Uses more aggrerssive interpolation to reduce storage for the
model tables by almost more than half. Only 48 lists of probs are
stored (as opposed to 128 before), corresponding to ONE_NODE
probabilities of:
1,
3, 7, 11, ..., 115, 119,
127, 135, ..., 247, 255.
Besides, only 1 table is used as opposed to 2 before. So the overall
memory needed for the tables is just 48 * 8 = 384 bytes.
The table currently used is based on a new Pareto distribution with
heavier tail than a generalized Gaussian - which improves results on
derf by about 0.1% over a single table Generaized Gaussian.
Results overall on derfraw300 is -0.14%.
Change-Id: I19bd03559cbf5894a9f8594b8023dcc3e546f6bd
|
|
Cleans up the experiment. Actually uses reduced counts for backward
updates, and reduced number of probabilities in the context.
No change in bitstream when the experiment is on.
Between expt on and off:
derfraw300 is down only -0.062% (which is better than when expts
were run previously).
Change-Id: I55285a049a0c22810bdb42914212ab5a4f8521b5
|
|
Change band calculation back to simpler model based
on the order in which coefficients are coded in scan order
not the absolute coefficient positions.
With the scatter scan experiment enabled the results were
appear broadly neutral on derf (-0.028) but up a little on std-hd +0.134).
Without the scatterscan experiment on the results were up derf as well.
Change-Id: Ie9ef03ce42a6b24b849a4bebe950d4a5dffa6791
|
|
|
|
Change-Id: I81c19a8f19cfb5c7183609656ade833d72feb500
|
|
Delete code under the CONFIG_CODE_ZEROGROUP flag.
Change-Id: I5fe6c7b42a5da9b73118e33594301da4129f320a
|
|
|
|
Output changes slightly because of a minor bug in (at least) the sb32x16
block2above tx16x16 tables that previously existed in vp9_blockd.c.
Change-Id: I624af28ac200a8322d64454cf05c79e9502968cc
|
|
Turns model based reverse updates on for coefficients in an
effort to reduce the memory requirement for counters.
With this patch the counters needed will be reduced by about
75% since only 3 counts are needed instead of 12.
The impact in performance is:
derf300: -0.252%
stdhd250: -0.046%
However retraining should alleviate some of the drop in
performance.
Change-Id: I6f2b3e13f6d5520aa3400b0b228fb5e8b4a43caa
|
|
Change-Id: I087e08e7909a406b71715b8525c104208daa6889
|
|
Change-Id: Id4306ef6d65d4a3984aed50b775bdf48d4f6c438
|
|
This patch does not seem to give any benefits.
Change-Id: I9d2b4091d6af3dfc0875f24db86c01e2de57f8db
|
|
Adds an experiment that codes an end-of-orientation symbol
for every eligible zero encountered in scan order.
This cleans out various other sub-experiments that were part
of the origiinal patch, which will be later included if found
useful.
Results are slightly positive on all sets (0.1 - 0.2% range).
Change-Id: I57765c605fefc7fb9d1b57f1b356843602abefaf
|