Age | Commit message (Collapse) | Author |
|
Renames:
mi_8x8 -> mi
mode_info_stride -> mi_stride
Change-Id: I66f3e5fd1e7b7f46f108af5bb711c5fd9493c1be
|
|
Change-Id: Ifdd951f24932839f06d1c700371662511dde6ebe
|
|
Change-Id: I5db2e5a6c36e6c503dea2e07d9d2e0daf4ac9d89
|
|
Also adding BAND_COEFF_CONTEXTS macro to simplify for loop logic.
Change-Id: I12a78a49cf1addf81e6b3fe2a3736ec2b79bd79e
|
|
Using consistent names (block_idx => block, dqcoeff_ptr => dqcoeff,
pt => ctx), inlining get_tx_eob() call.
Change-Id: I05208e57df81bbb8f25b8274684a48192e9de464
|
|
|
|
In the decoder we don't need to save eobs, we can pass eob as an argument.
That's why removing eob arrays from VP9Decompressor and TileWorkerData,
and moving eob pointer from macroblockd_plane to macroblock_plane.
Change-Id: I8eb919acc837acfb3abdd8319af63d1bbca8217a
|
|
Renaming constants for consistency:
DCT_VAL_CATEGORY1 => CATEGORY1_TOKEN
DCT_VAL_CATEGORY2 => CATEGORY2_TOKEN
DCT_VAL_CATEGORY3 => CATEGORY3_TOKEN
DCT_VAL_CATEGORY4 => CATEGORY4_TOKEN
DCT_VAL_CATEGORY5 => CATEGORY5_TOKEN
DCT_VAL_CATEGORY6 => CATEGORY6_TOKEN
DCT_EOB_TOKEN => EOB_TOKEN
DCT_EOB_MODEL_TOKEN => EOB_MODEL_TOKEN
MAX_ENTROPY_TOKENS => ENTROPY_TOKENS
Moving constants:
INTER_MODE_CONTEXTS from vp9_entropy.h to vp9_blockd.h.
EOSB_TOKEN from vp9_entropy.h to vp9_tokenize.h
Change-Id: I5fcbf081318e1d365792b6d290a930c6cb0f3fc2
|
|
|
|
Change-Id: I02050bcca4c9fd68a00abdea5aba0c3f8993d9a9
|
|
The difference with the old code is that originally the whole token_cache
was initialized with zeros at the beginning of decode_coefs() function.
Now we set several zero values explicitly with "token_cache[scan[c]] = 0".
Change-Id: I88cc5031f01d13012d1a4491739c36cb44f9401e
|
|
Removing goto and using while loop instead, renaming seg_eob to max_eob,
moving eob token counter increment.
Change-Id: Idcc4b3a45e4f313596a71776aef56691a6647e5f
|
|
Renaming treed_read() to consistent vp9_read_tree() and moving it from
deleted vp9_treereader.h to vp9_dboolhuff.h file.
Change-Id: Iedd8655acbe25e4fcf62b79e5a13bdea69b6b004
|
|
Change-Id: Ie829ee58a55157e6972c63cebe69a5d0a3221349
|
|
removed unnecessary ifs and branches ..
Change-Id: Id1698a35292659388f48926791024d1400f2cea9
|
|
This code only updates the token_cache if the result is non0.
Change-Id: Idcabd0b993a926fea9c29dbec134b9c5c4859b40
|
|
Change-Id: I473947b5ca70b7a81151926284bff86f8555492a
|
|
Change-Id: Ic316d3374ff9a2b43897272260947d56765a0fdd
|
|
Change-Id: I64b189dfeee1cf3e90134a1a93497072f3361e5e
|
|
Simplifies the code by implementing band mapping with static arrays.
A lot of the code complexity introduced in a previous patch
disappears.
Change-Id: Ia3fac36e594fb5ad2d55ae141c58bba4c55c2d28
|
|
Removing vp9_read_and_apply_sign macro which was used only once.
Change-Id: I6a1625b720d89fc1291c99deccd6638b705f9b06
|
|
Change-Id: I4b5106bdc08fd4551339b968c13428a8f43122e2
|
|
Implements scan order to band map with arrays in both the encoder
and decoder to remove conditional statements.
Encoding seems to be about 1% faster at speed 0, tested on football.
Decoding seems to be about 0.5-1% faster on a set of 25 videos.
Change-Id: Idb233ca0b9e0efd790e30880642e8717e1c5c8dd
|
|
|
|
It is more logical to use dqcoeff buffer to put there *dequantized*
transform coefficients (inside inverse_transform_block and
decode_coefs functions). Dequantization happens inside WRITE_COEF_CONTINUE
macro.
qcoeff buffer should be only used in the encoder for *quantized*
transform coefficients.
Change-Id: Ifd54bef272bbf5311ced6669c4f1079f998af5d7
|
|
Change-Id: I1c0c1b92aab33b1e4321b8e584a934fe58e0b324
|
|
Changes to reduce branching in detokenization in order
to improve decode speed.
Change-Id: I23a74d072cc14d99f6fc054c1e6a72021e777903
|
|
Removes stack-alocation of token_cache in decode_coefs function
Seems to achieve about 1% decode speed improvement as tested on
25 480p videos.
Change-Id: I8e7eb3361fa09d9654dfad0677a6d606701fdc6e
|
|
The change doesn't affect the bitstream. It changes the order or function
calls and affects how we reconstruct intra- and inter-blocks. Speed up is
about 1...1.5%.
For intra-blocks:
Before:
for each transform block read tokens
for each transform block do prediction
for each transform block do inverse transform
Now:
for each transform block
read tokens
do prediction
do inverse transform
For inter-blocks:
Before:
for each transform block read tokens
for each transform block do inverse transform
Now:
for each transform block
read tokens
do inverse transform
Change-Id: I12a79bf1aa5a18c351b8010369bd3ff1deae1570
|
|
missed one in vp9_detokenize.c in the last
+ add some asserts in vp9_decode_frame() to catch regressions
Change-Id: Ide67505114ee17efdafb13694aed0c09039e5a16
|
|
replace VP9D_COMP usage with the (slightly) more targeted
VP9_COMMON/MACROBLCKD/struct segmentation structures.
Change-Id: Iabb3616e231417b0e17b7e4b384ea63167a81745
|
|
don't update them when frame_parallel_mode is true
Change-Id: I22ff131a6c6eea238415d10b729f195c7d6dc60d
|
|
* changes:
Use a separate MODE_INFO stream for each tile column
Get rid of "this_mi", use "mi_8x8[0]" everywhere instead
Make the static_segmentation feature work again
|
|
The only case where they were intentionally pointing to different
structures was in mbgraph, and this didn't have the expected behavior
because both of these pointers are used interchangeably through the code
Change-Id: I979251782f90885fe962305bcc845bc05907f80c
|
|
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
|
|
Moving entropy context calculation to outer scope and adding consts to
pointers.
Change-Id: I25d0987e97495326ab1e8046e3fa3082c0584485
|
|
Change-Id: Id1fde9920d60c6991a8ef6de5103ae3e578312ed
|
|
Declaring vp9_pt_energy_class in vp9_entropy.h instead of many external
places.
Change-Id: I66e8a3fc119a43f88d130d0dae4133c825a047a3
|
|
I29b5bbb9,Iaa6b8ac9,Ibf996de7,Ie1b544e4,I9dea60e3,If71923f4,I6498d2ee
* changes:
cpplint issue extra line in decodemv.c
cpplint issue - vp9_idct_blk.c
cpplint issue in vp9_detokenize.c
fixed cpplint issue vp9_onyxd_int.h
cpplint issue in vp9_read_bit_buffer resolved
cpplint issue vp9_decodeframe.c
fix cpplint issue in vp9_onyxd.h
|
|
Change-Id: Ibf996de79e9c9bbe03b2202d4af11aebc58f9bcc
|
|
Change-Id: I6be72c8b048d1ccc7ef43764cf84c32360098970
|
|
Extracting get_scan_and_band function from get_entropy_context to
remove duplicated code.
Change-Id: I5da1f5a60263017e887da68bc834317b5f084cb2
|
|
mode_info_context was stored as a grid of MODE_INFO structs.
The grid now constists of pointers to MODE_INFO structs. The
MODE_INFO structs are now stored as a stream (decoder only),
eliminating unnecessary copies and is a little more cache
friendly.
Change-Id: I031d376284c6eb98a38ad5595b797f048a6cfc0d
|
|
This reverts commit dae17734ece414091ba1184f7becd0aa6c0004f1
Encode crashes, leaks and increases integer overflow errors.
Change-Id: I595aa2649bb8d0b6552ff91652837a74c103fda2
|
|
mode_info_context was stored as a grid of MODE_INFO structs.
The grid now constists of a pointer to a MODE_INFO struct and
a "in the image" flag. The MODE_INFO structs are now stored
as a stream, eliminating unnecessary copies and is a little
more cache friendly.
For the test clips used, the decoder performance improved
by ~4.3% (1080p) and ~9.7% (720p).
Patch Set 2: Re-encoded clips with latest. Now ~1.7% (1080p)
and 5.9% (720p).
Change-Id: I846f29e88610fce2523ca697a9a9ef2a182e9256
|
|
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
|
|
Adding set_contexts contexts function and call it instead of
set_contexts_on_border. Calling txfrm_block_to_raster_xy to get aoff and
loff.
Change-Id: I41897e344afd2cae1f923f4fdbe63daccf6fe80e
|
|
Updating all foreach_transformed_block_visitor functions to work with
plane block size instead of general block. Removing a lot of duplicated
code.
Change-Id: I6a9069e27528c611f5a648e1da0c5a5fd17f1bb4
|
|
Updating foreach_transformed_block_visitor and corresponding functions
to accept tx_size instead of ss_txfrm_size. List of functions per file:
vp9_decodframe.c
decode_block
decode_block_intra
vp9_detokenize.c
decode_block
vp9_encodemb.c
optimize_block
vp9_xform_quant
vp9_encode_block_intra
vp9_rdopt.c
dist_block
rate_block
block_yrd_txfm
vp9_tokenize.c
set_entropy_context_b
tokenize_b
is_skippable
Change-Id: I351bf563eb36cf34db71c3f06b9bbc9a61b55b73
|