Age | Commit message (Collapse) | Author |
|
Create a new component, vpx_dsp, for code that can be shared
between codecs. Move the SAD code into the component.
This reduces the size of vpxenc/dec by 36k on x86_64 builds.
Change-Id: I73f837ddaecac6b350bf757af0cfe19c4ab9327a
|
|
vestigial. replace instances with memset() which they already were being
defined to.
Change-Id: Ie030cfaaa3e890dd92cf1a995fcb1927ba175201
|
|
(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
|
|
Frame buffers are now allocated dynamically on-demand.
Entries in the reference frame map, cm->ref_frame_map,
may now be set to -1 (INVALID_IDX) to indicate that
there is not a valid reference buffer in that "slot".
All slots in the reference frame map are now initialized
to the empty state (-1) and each buffer is initialized
to have a reference count of 0.
Change-Id: Id1afe98de98db4ae8b2dfefed7889c3b28c68582
|
|
This patch modified struct VP9_COMP. Created a struct ThreadData
to include data that need to be copied for each thread. In
multiple thread case, one thread processes one tile. all threads
share one copy of VP9_COMP,
(refer to VP9_COMP *cpi in the code)
but each thread has its own copy of ThreadData,
(refer to ThreadData *td in the code).
Therefore, within the scope of encode_tiles(), both cpi and td
need to be passed as function parameters.
In single thread case, the FRAME_COUNTS pointer in ThreadData
points to "counts" in VP9_COMMON.
Change-Id: Ib37908b2d8e2c0f4f9c18f38017df5ce60e8b13e
|
|
This reverts commit 6906d218ddd1af97228a797f4558e402231d94f1.
Another way will be used to handle mb struct.
Change-Id: Ic1111a46b2b1ee00f8f9e3fcd4cf3eb6030b2dc4
|
|
Modified VP9_COMP struct to include MACROBLOCK *mb. This change
makes it feasible in multi-thread case to allocate a mb for each
thread.
Change-Id: I624d6d1aa9c132362200753e5d90b581b1738d6e
|
|
- Some fixes to surface fit.
- Returns variance function as cost rather than sad in the
pattern search and diamond search functions. Only
vp9_pattern_search_sad function used in bigdia search
uses sad as integer 1-away costs.
- Deploys SUBPEL_TREE_PRUNED_MORE for speed 4+.
Results:
derf [Speed 3]: About +0.036% in coding efficiency without any
discernible speed loss.
derf [Speed 4]: About 2-3% faster at -0.199% loss in coding efficiency.
derf [Speed 5]: About 3-4% faster at -0.149% loss in coding efficiency.
Change-Id: I8462f94f6adb46966ca964f2bd0400977357fd63
|
|
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
|
|
Updates the vp9_pattern_search function to return integer one-away
neighbors' sad values, for subsequent use in speeding up the
sub-pel search. Also, removes code for the do_refine option
which is not being used currently.
Updates the integer and subpel functions to pass in a 5-element
sad list for output or input.
A new pruned sub-pel search algorithm is implemented that uses
the sad returned from the integer pel search. But it is not
deployed yet.
Change-Id: Ifa9f5ad024b5b660570366d2bd900343e1891520
|
|
Deleted vp9_find_best_sub_pixel_comp_tree(), and combined it in
vp9_find_best_sub_pixel_tree().
Change-Id: Ifb25763c8b19822df5537cc1daa76ce88dc3b056
|
|
* Replace max_step_search_steps with constant MAX_MVSEARCH_STEPS
* Fold (reduce_first_step_size + speed > 5) into reduce_first_step_size
replacing uses of reduce_first_step_size that don't add the speed
check with zero.
Change-Id: Iae46395dbf3eaca138bf4d18b838a9e364b5a198
|
|
vp9_rdopt is for making rd optimal mode decisions. vp9_rd is for all
other rd related routines. Anything used outside of making an rd optimal
decision belongs in rd.
Change-Id: I772a3073f7588bdf139f551fb9810b6864d8e64b
|
|
Moving all motion vector related speed parameters from SPEED_FEATURES to
MV_SPEED_FEATURES.
Change-Id: I3e9af0039c7162f8671878c5920bce3cb256a84e
|
|
As a side-effect, the sad unit tests for VP8 and VP9
had to be separated.
Fixes a bug in original patch:
(https://gerrit.chromium.org/gerrit/#/c/70163/8)
that was reverted due to a nightly test failure.
Change-Id: Ia2a4e9e278fd3c89d6c3c82fcc6381320ec2a8a6
|
|
This reverts commit 916550428db803c54c993ff9d3c34b9b0bcebb7c
Change-Id: I500822b03f09c64ff6ec5396c68edee9ca3b75cb
|
|
As a side-effect, the sad unit tests for VP8 and VP9
had to be separated.
Change-Id: I068cc2391eed51e9b140ea6aba78338c5fec8d71
|
|
Change-Id: Ieb508d97026d624e853c2cd61b1ddf3591bf8233
|
|
|
|
This reverts commit 7ab9a9587b96db4edce6be916c1f02297a9555ff
Nightly test http://build.webmproject.org/jenkins/view/libvpx-nightly-tests/job/libvpx%20unit%20tests%20(valgrind-2)/arch=x86_64-linux-gcc,filter=-*VP8*:*Large.*/276/console
Failed
This patch did not address all the assembly issues
some of the vp8 assembly counts on 5 arguments being passed in to this function:
one example : vp8_sad8x16_wmt
Please address or split this into vp9 and vp8 patches.
Change-Id: I78afcc171649894f887bb8ee3c66de24aaddc7ca
|
|
|
|
Change-Id: Ia6e2c2741adbf45f98a447dbb401506f95a2b0c8
|
|
As a side-effect, the max_sad check is removed from the
C-implementation of VP8, for consistency with VP9, and to
ensure that the SAD tests common to VP8/VP9 pass.
That will make the VP8 C implementation of sad a little slower
but given that is rarely used in practice, the impact will be
minimal.
Change-Id: I7f43089fdea047fbf1862e40c21e4715c30f07ca
|
|
Actually, it would be great to have two separate enums INTRA_MODES and
INTER_MODES in future.
Change-Id: I6c4147cf0002853da9c1e03fe9514eab876f01c8
|
|
Change-Id: I86b85b5c11388e84a48f8936330c0d920df5d1f0
|
|
Change-Id: I35b9d1856d7951b8df7c933df6936dfc52a28451
|
|
Change-Id: I87b0668e23c54429a06bba85437606c4780be9ba
|
|
Renames:
mi_8x8 -> mi
mode_info_stride -> mi_stride
Change-Id: I66f3e5fd1e7b7f46f108af5bb711c5fd9493c1be
|
|
Change-Id: I9717ef611ef9c39b109b2358c9771bf7fae2dd50
|
|
Change-Id: I5a01d0dccc9afc87e2adbb5ddc7d44379fe1f125
|
|
Change-Id: I64172710654e95a90ee754d14d7104337d28010f
|
|
Removed the comment "// __asm emms;" from all calls
to vp9_clear_system_state.
Change-Id: Ib4dae69c1cdf3f185b04184a870cd70c4d703f10
|
|
Change-Id: I6ec6e072fcd59f9b5fac4ce221a86f9078103ae3
|
|
Change-Id: Id31c0e100d275bd3650eaf5e4b8fe5ce648dbfaf
|
|
Encapsulating direct references to lst_fb_idx, gld_fb_idx, alt_fb_idx.
Change-Id: I7e65ba3f131286e433e6651970c5647311fa4687
|
|
Change-Id: Ifd432fa3741ba47102d298e0b348eb00f5a9ce53
|
|
Various cleanups and refactoring.
Removes feedback of active worst qaulity and uses last_q
instead to make the interface cleaner. Active worst quality
is now decided only once for a frame being coded in the
beginning based on last_q and other stats. Also, adds other
cleaups on last_q to store also the last_q for altref frames,
and reduces the altref interval a little.
The output does change a little.
derfraw300: +0.224% (global psnr)
stdhdraw250: +0.442% (global psnr)
Change-Id: Ie634cdc032697044c472dd0fe79c109b3e7f9767
|
|
Change-Id: Id677df4d3dbbed6fdf7319ca6464f19cf32c8176
|
|
This function sets the motion search range limit. Rename it to be
more informative.
Change-Id: I2e8e01073dcb99c9bea9c9acd0a61d672d615444
|
|
Moves all rate control variables to a separate structure,
removes some currently unused variables,
moves some rate control functions to vp9_ratectrl.c,
and splits the encode_frame_to_data_rate function.
Change-Id: I4ed54c24764b3b6de2dd676484f01473724ab52b
|
|
There was only one function in *.c file, so moving it to vp9_encodemb.c.
Change-Id: I728859d08b3d6c05c33c1c5b21f0ea1d0e0f83af
|
|
Change-Id: I6e0e19231a48364c1de7dfab730b121ab227f111
|
|
This value is a global frame-level flag, not a macroblock-level.
Change-Id: Ie8c5790a931150741c2167c00c3e3dd2cf26744d
|
|
Making this change in order to move allow_high_precision_mv field
from MACROBLOCKD structure to VP9_COMMON (because it is a frame level
flag).
Change-Id: I1d006ba36d938e0caf4d40fa051e2e38df9c1108
|
|
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
|
|
Change-Id: I766c4b74db526efa4ff6dd2d95ef3e0beb45b6e5
|
|
Change-Id: Iedf9ac460edb31d7c072e2bebd26f2afe8e6089b
|
|
|
|
|
|
Change-Id: I9795d0937bc07793c13d067281995e0750f694d9
|