Age | Commit message (Collapse) | Author |
|
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 patch allocated frame contexts outside VP9_COMMON. This allows
multiple threads to share the same copy of frame contexts, and
reduces the overhead. It also guarantees the correct update of
these contexts during bitstream packing. This patch doesn't change
encoding result.
Change-Id: Ic181a2460b891d1d587278a6d02d8057b9dbd353
|
|
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: I571ce84c97087f8a1a36a10058393bfdcefbf72a
|
|
Moving all motion vector related speed parameters from SPEED_FEATURES to
MV_SPEED_FEATURES.
Change-Id: I3e9af0039c7162f8671878c5920bce3cb256a84e
|
|
Renames:
mi_8x8 -> mi
mode_info_stride -> mi_stride
Change-Id: I66f3e5fd1e7b7f46f108af5bb711c5fd9493c1be
|
|
Change-Id: I512482853bdf2695fbdf1c705a2ada354ccf76cf
|
|
Change-Id: Ib8c41829a4b5a618b6bda24d9b7df2d491d0fca0
|
|
|
|
Change-Id: If90c1bc822873156d4e38fca1938e4907f6c95f0
|
|
Change-Id: I7f3bcca103f0b1f6b3c064b61472543de9a8288a
|
|
Change-Id: I89c37b739493c79044f8c70ae2424aa074eb56c8
|
|
This function is already called in vp9_initialize_rd_consts().
Change-Id: I88c0484a7274660287fa25fdf5cdb721d3284e01
|
|
This reverts commit 36406fdb07dfe08df1d49abe36dbf27469e42213.
Change-Id: I0bd31d03ce2a562d0624f2cd67593d0d25df4a54
|
|
Change-Id: I597645a15fff2d3a1104861a5c90f64394952e0b
|
|
Change-Id: If7d3958653104f3e170853e931f8489de3ecf3cc
|
|
|
|
Change-Id: Iadf2fcc9a5bfa5d02fc166f31963be1cc814831c
|
|
Making name consistent with vp9_read_tree().
Change-Id: Ie213ffe0d5345bf3035f28e17f610894fec79205
|
|
Moved arrays:
vp9_mv_joint_encodings
vp9_mv_class_encodings
vp9_mv_class0_encodings
vp9_mv_fp_encodings
Change-Id: Iaf5008c579fcbd6d77fdd81d1aef8c71b5f308b7
|
|
Change-Id: I9af38f1a0e226ee094c17081f044a722ac1caded
|
|
|
|
Change-Id: I98d750ee92ff51fb714980418ea28be3b1d0f3c6
|
|
Change-Id: I94cb9e3d910dff74bf90906dd96e3a4e06ebdbe6
|
|
Change-Id: Ifad4b0e6355ce49fcc6f470becc080e8069452ee
|
|
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
|
|
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
|
|
Use b_mode_info to store the inter prediction mode of sub8x8 block,
in replacement of the use of partition_info. Remove redundant buffer
update for partition_info. For bus_cif at 2000 kbps, this seem to make
speed 0 about 1% faster.
Change-Id: Id1b3be45e75a24fb4b42335ac480c23e440978f6
|
|
Change-Id: Icda1d2d7cbfb176884fa6c7d9366a2d60e2994e9
|
|
Using best_mv[2] array instead of two separate variables.
Change-Id: Iefa0a41f5c42c42f2c66cef26750da68405f0f25
|
|
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
|
|
Moves counting of mv branches to where we have a new mv, instead of after
the whole frame is summed.
Change-Id: I945d9f6d9199ba2443fe816c92d5849340d17bbd
|
|
Change-Id: I481d9bb2fa3ec72b6a83d5f04d545ad8013f295c
|
|
|
|
Change-Id: I428c4d42212b757112e3acfe5b81314cfbb5fd6b
|
|
Change-Id: Iabab0e59042a33456df1d449c0d0f01debc00c7c
|
|
Change-Id: I78d16ee758e1fae0200b746f00031f6d9c6d6ce7
|
|
many structures use bw and bh and they have different meanings. This cl attempts
to start this clean up and remove unneccessary 2 step look up log and then
shift operations...
also removed partition type multiple operation code in bitstream.c.
Change-Id: I7e03e552bdfc0939738e430862e3073d30fdd5db
|
|
This patch modifies the auto_mv_step_size speed feature to
use a combination of the maximum magnitude mv from the last
inter frame, and the maximum magnitude mv for the two reference
mvs with the same reference. For arf frames, the max mav step
for the resolution is used.
The bounds therefore are slightly tighter. The feature is made
a speed 1 feature.
Rebased.
Results (when this feature is turned on over speed 0):
derfraw300: -0.046% psnr, about 5+% speedup
(tested on football: goes from 4m30.760s to 4m17.410s).
Change-Id: If492797a61b0b4b3e58c0b8f86afb880165fc9f6
|
|
The same information already exists in union b_mode_info.
Change-Id: Iac5086b99a3c3cc270380138062bb693e58f9e6d
|
|
* changes:
Removing two unused arguments from vp9_inc_mv signature.
Changing signature of vp9_get_pred_probs_tx_size.
|
|
Change-Id: Ieffea49eb7a5e5092f21f8694c546aff69b07c6d
|
|
Change-Id: I4884cdc2557d25d50c7c4f7e19b1ad8bdb93cd63
|
|
For some reason iOS builds take a really long time to sort this
function out.
It's not used anywhere so remove it.
Change-Id: Ia5c8513a0d9c7eb32641cca58ca1c1113e2dd9f4
|
|
Also tweaks to other features and experiments with
what is on and off at different speed settings.
Change-Id: I3e1d0be0d195216bf17c2ac5df67f34ce0b306b2
|
|
|
|
Change-Id: I8299f55c3b930221e52c2237f2ddea65b94fd33b
|
|
This function only used from within vp9_encodemv.c.
Change-Id: Ib3fc7c30b1e2d27321397ac474cbc8976bc1f4b1
|