Age | Commit message (Collapse) | Author |
|
Change-Id: I01b3530779da89acb84c71bac5ccac456f00c5ac
|
|
Change-Id: Ia561dda53f2dd10e3a10a2df2adb8027ab19397a
|
|
Change-Id: Ib26fbfef3505299f754e5af6c437a85d7746fc28
|
|
Moved arrays:
vp9_mv_joint_encodings
vp9_mv_class_encodings
vp9_mv_class0_encodings
vp9_mv_fp_encodings
Change-Id: Iaf5008c579fcbd6d77fdd81d1aef8c71b5f308b7
|
|
Removing special case handling from vp9_tree_probs_from_distribution(),
tree_merge_probs(), and vp9_tokens_from_tree_offset() functions. Replacing
inter_mode_offset() function with macro INTER_OFFSET which is used now for
vp9_inter_mode_tree definition.
Change-Id: Iff75a1499d460beb949ece543389c8754deaf178
|
|
Replacing update_mode_probs() and adapt_probs() with tree_merge_probs().
Change-Id: I50b2c968d67c9265f5216c700cbeba25fb014654
|
|
We don't have to calculate 'new' probability in convert_distribution()
because it is enough to calculate only 'new' counters which could be used
to calculate probability if necessary. That's why removing a lot of unused
temporary probability arrays and reducing number of get_binary_prob()
calls.
Change-Id: I4e14eb7203d1ace61bbddefd6b9b6326be83ba63
|
|
don't update them when frame_parallel_mode is true
Change-Id: I22ff131a6c6eea238415d10b729f195c7d6dc60d
|
|
Using TREE_SIZE for the following trees:
vp9_intra_mode_tree
vp9_inter_mode_tree
vp9_partition_tree
vp9_switchable_interp_tree
vp9_mv_joint_tree
vp9_mv_class_tree
vp9_mv_class0_tree
vp9_mv_fp_tree
Change-Id: I0212bb4c1ee6648249f68517e28a67a56591ee1b
|
|
Change-Id: I7231589bda71d0d23c730283febd5bb58585a0da
|
|
Change-Id: Ic5807152cc78127b3f84b5abb4c5f3ef6d06ce65
|
|
Moves counting of mv branches to where we have a new mv, instead of after
the whole frame is summed.
Change-Id: I945d9f6d9199ba2443fe816c92d5849340d17bbd
|
|
Convert mv_class if statements to look up. re order to avoid ifs...
Change-Id: I76966a21bf517bb1f9a7957c08c476c7bb3e9a63
|
|
Change-Id: Ic07f5f8ffeaedd5b7513b464871f83afc82dcd5c
|
|
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
|
|
|
|
Adding common merge_probs and merge_probs2 functions. Changing ints to
usigned ints in some places.
Change-Id: Icf088ffdea7cf5b95284a128916409bdd53506b0
|
|
Change-Id: Ic99d07a56b1752ec49fc5074b1dd6804b17609a0
|
|
Counts are separate from frame context. We have several frame contexts but
need only one copy of all counts.
Change-Id: I5279b0321cb450bbea7049adaa9275306a7cef7d
|
|
Using cm->frame_contexts[cm->frame_context_idx] as source of previous
probabilities.
Change-Id: Ie03778acf0e7bebdc3a1f6a51854d4a0712f24a1
|
|
* changes:
Removing two unused arguments from vp9_inc_mv signature.
Changing signature of vp9_get_pred_probs_tx_size.
|
|
Change-Id: I340d06e3bc32c78358654496503cccd4196cbe2e
|
|
Change-Id: Ieffea49eb7a5e5092f21f8694c546aff69b07c6d
|
|
Change-Id: Ia3d5bd45adf288de11ab59c4728266c93c17e275
|
|
Change-Id: Ie0cb732fdcb98616a422c4463bff80642248d136
|
|
Encode time for first 50 frames of bus (speed 0) @ 1500kbps goes from
2min10.9 to 2min10.5, i.e. 0.3% faster overall, basically because we
prevent the call overhead.
Change-Id: I1eab1a95dd3eae282f9b866f1f0b3dcadff073d5
|
|
|
|
Change-Id: I8299f55c3b930221e52c2237f2ddea65b94fd33b
|
|
This function only used from within vp9_encodemv.c.
Change-Id: Ib3fc7c30b1e2d27321397ac474cbc8976bc1f4b1
|
|
Change-Id: I183a38997a9d01e4a1b869e92509f6915216fa09
|
|
* New probs for subpel filters/tx_count
* Makes a change to not reset to defaults for the tx_size
probs if an intermediate frame reverts to using a fixed tx_size.
* A few updates to the parameters for backward adaptation for mode/mv
* some cosmetic cleanups
derf300: +0.06%
Change-Id: I22994d659bc31ca7a4fc8820fde24001e64a2920
|
|
This experiment has failed to give much benefit but
does add complexity so deprecated.
Change-Id: Ic7b929ba706390b9907ef0b4f965bd401ca799a4
|
|
Change-Id: I28c3026946fc1bde7074e6e0198da93bb0d75dfe
|
|
Change-Id: Ieaec2c48f3752b8558ba051caaf4ba2ab0e9e84d
|
|
Change-Id: If69c3d795f87af5cc7bfdfe70ef733c41b4d55c8
|
|
Adding multiple16 function, removing redundant code, better formatting.
Change-Id: I50195b78ac8ab803e3d05c8fb05a7ca134fab386
|
|
Removing redundant code, lower case variable names, better indentation,
better parameter names, adding const to readonly parameters.
Change-Id: Ibfdee00f60316fdc5b3f024028c7aaa76a627483
|
|
Enable entropy coding of motion vectors up to +/-2048. Also
extend the motion search range accordingly.
Change-Id: Iac2bb015e8934521cef83a19edbe967d9f097436
|
|
|
|
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
|
|
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
|
|
Add a function clip_pixel() to clip a pixel value to the [0,255] range
of allowed values, and use this where-ever appropriate (e.g. prediction,
reconstruction). Likewise, consistently use the recently added function
clip_prob(), which calculates a binary probability in the [1,255] range.
If possible, try to use get_prob() or its sister get_binary_prob() to
calculate binary probabilities, for consistency.
Since in some places, this means that binary probability calculations
are changed (we use {255,256}*count0/(total) in a range of places,
and all of these are now changed to use 256*count0+(total>>1)/total),
this changes the encoding result, so this patch warrants some extensive
testing.
Change-Id: Ibeeff8d886496839b8e0c0ace9ccc552351f7628
|
|
Change-Id: Ia1cce221f8511561b9cbd8edb7726fbc286ff243
|
|
Support for gyp which doesn't support multiple objects in the same
static library having the same basename.
Change-Id: Ib947eefbaf68f8b177a796d23f875ccdfa6bc9dc
|