Age | Commit message (Collapse) | Author |
|
Change-Id: I0e262ede7eb4a4ae0c86181922d744e542e93350
|
|
Also includes yv12 config changes.
Change-Id: Iacf40d8bf486815b54c32a127ce3cd4516b7e44f
|
|
Change-Id: I6f67b171022bbc8199c6d674190b57f6bab1b62f
|
|
mi_grid_* are arrays of pointer to pointer. They save the pointers that point
to the MIs in cm->mi. But they are unnecessary and complicated. The original
goal was to remove MODE_INFO_t copy. But with an extra MODE_INFO_t pointer
inside MODE_INFO_t, same goal could be achieved.
This commit totally removes the mi_grid_* structures. But there are still
many dummy MODE_INFO_t inside cm->mi which are a waste of memory. Next commit
will do on-demand MODE_INFO_t allocation in order to save these memories.
Change-Id: I3a05cf1610679fed26e0b2eadd315a9ae91afdd6
|
|
Tokenization and Detokenization enhancements for 10/12 bit
Change-Id: I3c269ec30f8eb160ee024905638a193975237559
|
|
Change-Id: Ie51c352a6b250547207cbc1ebba833a01ed053e3
|
|
|
|
Adds various high bitdepth quantization functions.
Change-Id: I36fc0bf75a1bd15128ed271df8723de0ac134b0c
|
|
1080p decoding speedup -- 1.25%, 4K decoding speedup -- 2.5%.
Change-Id: I5f02f521cbf7758d4d1886a93bc5b074abdff03d
|
|
Adds various high bitdepth transform functions and tests.
Much of the changes are related to using typedefs tran_low_t
and tran_high_t for the final transform cofficients and intermediate
stages of the transform computation respectively rather than fixed
types int16_t/int. When vp9_highbitdepth configure flag is off,
these map tp int16_t/int32_t, but when the flag is on, they map
to int32_t/int64_t to make space for needed extra precision.
Change-Id: I3c56de79e15b904d6f655b62ffae170729befdd8
|
|
don't bother decoding any further after receiving an earlier decode
error until a key/intra-only frame is encountered.
Change-Id: I381917b70d7a9e6f8d6de42e3d181bb113a4cec4
|
|
* changes:
vp9_dthread: simplify loop_filter_row_worker signature
simplify vp9_loop_filter_worker signature
vp9_decodeframe: simplify tile_work_hook signature
|
|
* changes:
vp9_loop_filter_frame_mt: defer allocations
vp9_loop_filter_alloc: reorder parameters
|
|
the code currently checks whether the allocation has been done instead
of allocating on the first frame.
since:
4f27202 vp9: fix crash in mt loopfilter w/corrupt file
this change defers the allocation until the loop filter is used.
Change-Id: I660c1b7f34e713a8dd9884483f01d23b9847366e
|
|
VP9LfSync lf_sync is being operated on, make it the first parameter as
in dealloc
Change-Id: Id3cdf6b6a48157627780ae0d5d4b7dfa94a78078
|
|
use the type names directly in the function declaration rather than
(void *arg1, void *arg2)
Change-Id: If8887e1dbcdf84842783a92f91668bef6223c9e5
|
|
use the type names directly in the function declaration rather than
(void *arg1, void *arg2)
Change-Id: I3d1e6c42d384d8e628d7f2075fa561c2c5e20749
|
|
Check image format of reference frames.
Change-Id: I7d8d7f097ba547839ff9cec3880bd15a4948ee06
|
|
|
|
* changes:
vp9: correct context buffer resize check
vp9: fail decode if block/frame refs are corrupt
|
|
|
|
allocations within vp9_alloc_context_buffers() rely on mi_rows/mi_cols
individually, use those to determine whether to realloc rather than
stride and stride * rows. this fixes a crash with some fuzzed files for
invalid accesses into last_frame_seg_map and above_context.
Change-Id: I7b9f40dcf170d443890f3bd2acd285507943c7d4
|
|
proceeding using a corrupt (incompletely decoded) frame reference may
lead to incorrect assumptions about allocation sizes leading to a crash.
Change-Id: I76e74f2e1be127c2e2c7e1174bb3307497dfd23d
|
|
Change-Id: I0a9d52432f2500f1bd8f43f229e70e38bb9a0343
|
|
Adds config parameter vp9_highbitdepth, to support highbitdepth profiles.
Also includes most vpx level high bit-depth functions. However
encode/decode in the highbitdepth profiles will not work until
the rest of the code is in place.
Change-Id: I34c53b253c38873611057a6cbc89a1361b8985a6
|
|
|
|
store the number of allocated rows in VP9LfSync, the calculated values
can not be relied on when dealing with corrupt material.
Change-Id: I13b8bcec9738c299a71df726772ab7ac05511e5b
|
|
prevents any problems resuming decode after decoding a corrupt frame
Change-Id: Ib7eb1b5c062aebe71074fef1ece32a32822c16be
|
|
this change is proactive: the loop filter expects valid input and may
produce undefined results / crash in other cases.
Change-Id: I6cc1e966062a91cbc6db981c87cd03d9129fc8fe
|
|
attempting to decode a frame after the previous frame failed has the
potential of interrupting an earlier loop filter task
Change-Id: I6f2b1ddcdf5b89c3e2ee8caf5289dada2a087d66
|
|
if the first frame was corrupt and loop filter not called, the next call
would assume the necessary allocations had been done and segfault when
accessing a NULL pointer
Change-Id: Ib6ef505e5c594e6f0fe65ab0700172bcf06b92a6
|
|
The case where frame width increases but the overall memory
size required to hold the mi arrays does not was not
handled.
Change-Id: I72e70b912a7d1766687ad682979f1c9ee124449b
|
|
|
|
1. Clean the code for encode frame tests
2. Add encode w/ and w/o alt reference frame test
3. Add encode SNR layers test
4. Add encode multiple layers but decode partial layers test
Change-Id: Ibd2c9bc02525db584a6f931a98405f2d851b3cd6
|
|
|
|
use get_ref_frame() to ensure a valid frame is retrieved if one exists
Change-Id: I4b116d928e643ee62a991babd4b974037b6b3830
|
|
|
|
The test to determine if the mode info buffers need
to be resized when the frame size changes was
incorrect, as per bug 837.
By storing the size of the allocated data structure,
a simple test determines whether to allocate more
memory when the frame size changes.
Change-Id: I1544698f2882cf958fc672485614f2f46e9719bd
|
|
|
|
Change-Id: I4dc2cb255f4fe30998b6ee61184895dee9f5da8e
|
|
Replaced encoder and decoder functions to get a pointer
to a reference frame with a common function, vp9_get_ref_frame,
and simplified it.
Change-Id: Icb206fcce8caace3bfd1db3dbfa318dde79043ee
|
|
This was shadowing the use of error_resilient_mode, but with
the opposite sense.
Change-Id: Ie4d30263a304fe4b3e94f0c7741db6888cc6afd8
|
|
Specifies the bit-depth, color sampling and colorspace
for intra only frames for profiles > 0
Also adds checks to ensure that profile 1 and 3 are
exclusively used for non 420 streams.
Change-Id: Icfb15fa1acccbce8f757c78fa8a2f60591360745
|
|
The issue was introduced by commit g9f37d14 with adding explicit
restrictions on reference-frame scale factors. The restriction
is checked against aligned-by-8 frame dimensions, not against
original ones. So, for example, frame of 35×35 actually can refer
to frame of 70×70, but the new check won't allow this. It will
compare 35 vs 72 (not 70), so 2x downscale limit will be exceeded.
Change-Id: Ic663693034440f64ac8312cbff9e1e773a921060
|
|
|
|
A previous change, https://gerrit.chromium.org/gerrit/#/c/70632,
introduced a size validation for reference frames to insuare the
input stream is a valid VP9 stream. However, the logic requiring
all reference frames have valid size turned out to be too strict.
In this commit, we modify the validation to require one of the
reference frame has valid dimension. In addition, the decoder
reports error whenever it detects the use of reference frame
with invalid scalig ratio.
Change-Id: If8efc312244087556cfe00f1fcbdff811268ebad
|
|
The patch:
https://gerrit.chromium.org/gerrit/#/c/70814/
changed the test that determined whether the context
frame buffers needed to be reallocated or not.
The code checked for a change in total frame area
to signal the need to reallocate context buffers.
However, the above_context buffer needs to be
resized i:xf only the width of the frame has increased.
Change-Id: Ib89d75651af252908144cf662578d84f16cf30e6
|
|
Change-Id: Ic5d3a3a0dac10b49495771886a31e793bb78b5ca
|
|
For gcc, when libvpx config option debug is disabled, added the
flag -DNDEBUG to disable the assertions in libvpx for some speedup.
Change-Id: Ifcb7b9e8ef5cbe5d07a24407b53b9a2923f596ee
|
|
This patch adds back in code that checks that the frame
size lies within defined bounds was inadvertantly removed
by a previous patch:
https://gerrit.chromium.org/gerrit/#/c/70814/
Change-Id: If526570ba559260c4b7e98098bc75f7700ae7f97
|