Age | Commit message (Collapse) | Author |
|
To prevent the motion vector out of range bug, added a motion vector unit
test in VP9. In the 4k video encoding, always forced to use extreme motion
vectors and also encouraged to use INTER modes. In the decoding, checked if
the motion vector was valid, and also checked the encoder/decoder mismatch.
The tests showed that this unit test could reveal the issue we saw before.
Change-Id: I0a880bd847dad8a13f7fd2012faf6868b02fa3b4
|
|
Change-Id: Ie0f150fdcfcbf7c4db52d3a08bc8238ed1c72e3b
|
|
Change-Id: Ifa607dd2bb366ce09fa16dfcad3cc45a2440c185
|
|
This patch fixed the issues in debugmodes file because of the recent
changes in MODE_INFO struct.
Change-Id: I4df83379ecc887c1f009d4a8329c9809c5b299d6
|
|
(see I3a05cf1610679fed26e0b2eadd315a9ae91afdd6)
For the test clip used, the decoder performance improved by ~2%.
This is also an intermediate step towards adding back the
mode_info streams.
Change-Id: Idddc4a3f46e4180fbebddc156c4bbf177d5c2e0d
|
|
MODE_INFO struct was modified, and vp9_print_modes_and_motion_vectors()
didn't work anymore. This patch modified vp9_debugmodes.c so that
this function works again for debug usage.
Change-Id: I293fae0295235deb2529a460a274caf7c045ac1a
|
|
Also fixes a case of distortion becoming negative and messing
up the RDCOST computation.
Change-Id: Id345af9e8dfff31ade622be5756e51f2cdface53
|
|
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
|
|
Change-Id: I7ed7fecc959c6598ff98895f1a5cf7e11ac1615f
|
|
Change-Id: Ia561dda53f2dd10e3a10a2df2adb8027ab19397a
|
|
Change-Id: I036e815ca63d00cba71202ae09ba0f6ef745dcb8
|
|
Change-Id: I1c3943cd5db6cd8fc759116a3717dba3c030fa0d
|
|
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
|
|
stragglers
Change-Id: Ib1e853f9a331b7b66639dc34d79568d84d1930f1
|
|
Change-Id: I752e374867d459960995b24d197301d65ad535e3
|
|
The macro block mode info context originally contained an
entry for each 16x16 macroblock. In VP9 each entry refers
to an 8x8 region not a macro block, so the naming is misleading.
This first stage clean up changes the names of 3 entries in the
structure to remove the mb_ prefix.
TODO clean up the nomenclature more widely in respect of
mbmi and bmi.
Change-Id: Ia7305c6d0cb805dfe8cdc98dad21338f502e49c6
|
|
- size_t vs int.
Change-Id: Ib47ebd932a4b69db9f52a43000bb69d0a96b9134
|
|
The new print out includes skips and has prefixed sections so you can
grep to find things like transforms chosen on each frame.
Change-Id: I195043424647d9514cfc3ff6720a5b20d010fa1b
|
|
This commit has no impact but to help us debug issues. To Use call like
this:
vp9_print_modes_and_motion_vectors(cpi->common.mi, cpi->common.mi_rows,
cpi->common.mi_cols,
cpi->common.current_video_frame,
"decode_mi.stt");
Change-Id: I89e27725dae351370eb7f311a20a145ed4f1d041
|
|
Change-Id: I0e789bdeaed60f920f7a470e56a8d4ea374233fc
|
|
This one prints out a visual version of the partitioning for human
eyes to follow...
Change-Id: Iba434589a2f55eb069484686d99a382db93b9548
|
|
So it is consistent with I8x8_PRED.
Change-Id: Iefa65124b2419690d83e526c611129c0ede29d11
|
|
Removing redundant 'extern' keywords, fixing formatting and #include order,
code simplification.
Change-Id: I0e5fdc8009010f3f885f13b5d76859b9da511758
|
|
Replace as_mv.{first, second} with a two element array, so that they
can easily be processed with an index variable.
Change-Id: I1e429155544d2a94a5b72a5b467c53d8b8728190
|
|
This experiment gives little gains and adds relatively much code
complexity (and it hinders other experiments), so let's get rid of
it.
Change-Id: Id25e79a137a1b8a01138aa27a1fa0ba4a2df274a
|
|
Change-Id: Ia1cce221f8511561b9cbd8edb7726fbc286ff243
|
|
Support for gyp which doesn't support multiple objects in the same
static library having the same basename.
Change-Id: Ib947eefbaf68f8b177a796d23f875ccdfa6bc9dc
|