Age | Commit message (Collapse) | Author |
|
Added loop filter mask checking, and made the caller function
ready for implementation of parallel loopfiltering in horizontal
direction.
Next, we need to go through the loopfilter functions (both c and
optimized versions), and provide 16-byte wide loopfiltering for
each filter type.
Change-Id: Ifef47e7ef9086ebc2fd6ca7ede8f27c9bbf79e66
|
|
This patch continued the work done in "Rewrite loop_filter_info_n
struct"(commit:00dbd369c70270428d56da6d15ea5486fc821c52) to further
improve loopfilter function.
1. Instead of storing pointers to thresholds, store loopfilter
levels within 64x64 SB;
2. Since loopfilter levels are already calculated in setup_mask,
we don't need call build_lfi to look up them again. Just save
loopfilter levels in setup_mask.
3. Reorganized and simplified filter_block_plane().
Tests showed a ~0.8% decoder speedup.
Change-Id: I723c7779738bbc2afcb9afa2c6f78580ee6c3af7
|
|
|
|
|
|
Change-Id: I04c55daef89bca2b85cb7db0850f9b052abc5a7c
|
|
|
|
Change-Id: I19c482c7cba34db574b3f33178ba20aede49779e
|
|
|
|
Removes stack-allocation of token_cache in the tokenize
function in the encoder.
Change-Id: Ifdbab76dc2b23384da0080d2e9390533e489db8c
|
|
I'm sure I could do more, but I don't know how long this code has to
live. I think this at least makes the code a little easier to read and
understand.
Change-Id: I6ca76357f89468d4851a3d1826e7aefa498e51d1
|
|
|
|
|
|
This is mainly a clean up patchset. It moves the WebM writing support
out of vpxenc and into its own source file. Changes to tools_common and
vpxdec result from relocation of shared bits of code.
Change-Id: Iee55d3285f56e0a548f791094fb14c5ac5346a26
|
|
Error in script means vp9_h_predictor_32x32 sse3 version
is not enabled.
Change-Id: Ia43672740da1ecdfb7fcd420490ef424b04accc4
|
|
Change-Id: I1c0c1b92aab33b1e4321b8e584a934fe58e0b324
|
|
|
|
|
|
|
|
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 compound inter prediction could potentially run with initial
motion vectors of invalid value and check the mv_cost, which triggers
overheap read. This commit resolves this issue by forcing a motion
vector value check for compound inter modes of both superblock and
sub8x8 block sizes.
Change-Id: I4f4fc19ce83c8272782bc382f12c82a3f03212fc
|
|
Change-Id: I7fe44633d29046ddd38c88c00e8520d27ac748bf
|
|
Change-Id: Ie05cc5e2d8ce12eacdf482a8b75e5a6ce6f59f57
|
|
Replacing update_mode_probs() and adapt_probs() with tree_merge_probs().
Change-Id: I50b2c968d67c9265f5216c700cbeba25fb014654
|
|
We only update partition_probs for inter frames but they are constant
for key frames. It is not necessary to have constants inside frame
context and copy them every time. This change reduces FRAME_CONTEXT size
by at least 48 bytes.
Change-Id: If70a53be51043f37fe7d113853217937710932a7
|
|
Removed:
goldfreq, avg_encode_time, avg_pick_mode_time,
cpu_freq, interquantizer
member variables from VP9_COMP since they are no longer
used in the code.
Change-Id: I010a82c217d0da03c3f53d1858d3462190c12dcf
|
|
|
|
|
|
Removed three members from the VP9_COMP data structure:
inter_zz_count, gf_bad_count, gf_update_recommended.
These were part of the VP8 real-time mode implementation
that was removed from the initial VP9 codecbase.
Change-Id: I866b083b88ef02c74837277d50ce532ca88492f3
|
|
|
|
This commit fixes the use case of plane_block_idx, which determines
the plane (Y/U/V) index based on block index. When block idx >= 4 in
sub8x8 block loop, it should be of chroma components.
Change-Id: I072705aa7b35445524ac607089ca8ce54b7ba478
|
|
Update best_inter_rd and best_inter_ref_frame only in single ref
frame case.
Change-Id: Id56825b231a62d6852bd83811410c05a7569f715
|
|
|
|
removes a textrel for sh_b23456789abcdefff
Change-Id: I80cb9dfd8e49a0fe884c8ff76472275b3a00cb57
|
|
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
|
|
|
|
Also removed unused declaration related 6 tap filter
Change-Id: Ic17f516141d885157918505f4204081e4c951fad
|
|
When a frame is dropped due to |buffer_level| < 0 for a given temporal layer,
the buffer level for the upper temporal layers was not updated (in calc_pframe_target_size()).
This change fixes that.
Also, use the layer per-frame-bandwidth for updating the buffer level
of the higher layers when a frame is dropped.
Change-Id: I660c23f3229b47e9d124a950b480314b4307c5a8
|
|
|
|
|
|
1. Reduced the size memset based on eob for 32x32 transform. The reset
of non-zero coefficient should probably go into where they are read in
inverse transform functions. (TODO)
2. Removed a redundant level of indirection.
vp9_iht4x4_add() checks transform type and call vp9_iht4x4_16_add()
for tranforms other than DCT_DCT. In this case, the DCT_DCT case
has been already handled here.
Change-Id: Iacbc77da761f0b308df5acea0f20c9add9f33d20
|
|
|
|
|
|
Change-Id: I529c634db4f81ba5386092c126f53312b1e51b2b
|
|
Making code easier to read and avoiding calculation of skip context twice.
Change-Id: I42c376b1a1811bc842bf6420bf81d2de7a1bf980
|
|
|
|
Change-Id: I12c67c8c0fa1aa7fb3f7d6cc2ef65be29c4ea292
|