Age | Commit message (Collapse) | Author |
|
intra predictors." into experimental
|
|
Scalar path is about 1.3x faster (2.1% overall encoder speedup).
SSE2 path is about 5.0x faster (8.4% overall encoder speedup).
Change-Id: I360d167b5ad6f387bba00406129323e2fe6e7dda
|
|
predictors.
Change-Id: I8a4da6925f2d58a426c4d122df8b97bb69452e49
|
|
This flag was added to VP8 to allow a mode where MB-level skipping
was not allowed, saving a bit per mb. It was never used in practice,
and hasn't been tested in VP9, so remove it.
Change-Id: Id450ec6904c6d06c1919508e7efc52d05cde5631
|
|
|
|
experimental
|
|
|
|
|
|
In decoder, the scaling calculation, such as (mv * x_num / x_den),
is fairly time-consuming. In this patch, we check if the scaling
happens or not at frame level, and then decide which function to
call to skip scaling calculation when no scaling is needed. Tests
showed a 3% decoder performance gain.
Change-Id: I270901dd0331048e50368cfd51ce273dd82b8733
|
|
Now that the predictor is the dest, we do not need the
extra parameters.
Change-Id: I31e2c3d2015f4a1cd12e7f04536d8db478582a0a
|
|
|
|
|
|
Using regular 0 and 1 constants now.
Change-Id: Ie763503cbb727847cc8f1d6506cd6f2ee607f056
|
|
|
|
With this, the RD loop properly supports rectangular blocks.
Change-Id: Iece79048fb4e84741ee1ada982da129a7bf00470
|
|
Change-Id: Ieaec2c48f3752b8558ba051caaf4ba2ab0e9e84d
|
|
Using ROUND_POWER_OF_TWO macro, using array initialization syntax for
less code.
Change-Id: I661453a6b29a9046fcff0a3f18fccb452b5eb39d
|
|
Now that the predictor is the dest, we do not need the
extra parameters.
Change-Id: I78db73d39b5aff62f15303f3d51ad2797eae74b6
|
|
|
|
|
|
This is work-in-progress, it implements multiple ARF
encoding behind an experimental flag.
It adds the ability to insert multiple ARF frames into a
single ARF group. This patch implements the reordering
of the coded frames, and implements a fixed-length coding
pattern. It applies a fixed quantizer strategy based on
where the frame is in the coding sequence.
Further work to modify the rate control strategy is
ongoing and will be submitted via a set of future patches.
In this first step, each ARF group is recursively
bisected and an ARF frame added at that position in the
sequence. The recursion continues until ARF frames are
within MIN_GF_INTERVAL frames.
The code sits behind the "multiple-arf" experimental
flag ("CONFIG_MULTIPLE_ARF"). The experimental flag
"oneshotq" ("CONFIG_ONESHOTQ") also needs to be enabled
for this patch to work correctly.
Change-Id: Ie473b05ebb43ac473c0cfb659b2b8042823085e2
|
|
|
|
|
|
typedef." into experimental
|
|
Removing redundant code.
Change-Id: I71bfc40a1fb06d8e3149ed5400aa4dfd87a51aac
|
|
Combine superblock inter predictors into a unified function that
allows configurable block width and height. The inter predictions
of block sizes smaller than 16x16 are handled differently. To be
continued on merging them later.
Change-Id: I14075959dd5e221f00c205c99ca35c1c31ef728e
|
|
To match the order of directional intra prediction modes for larger
blocks, also renamed the i4x4 prediction modes to mirror the larger
variants.
Change-Id: I77cea4d0add6c7758460bf9c7a2fe59aca601f0b
|
|
So it is consistent with I8x8_PRED.
Change-Id: Iefa65124b2419690d83e526c611129c0ede29d11
|
|
The intra predictor supports configurable block sizes. It can handle
intra prediction down to 4x4 sizes, when enabled in BLOCK_SIZE_TYPE.
Change-Id: I7399ec2512393aa98aadda9813ca0c83e19af854
|
|
|
|
|
|
experimental
|
|
|
|
This patch changes the default with the modecoefprob expt
to use mode-based forward updates with one-node pegged
modeling.
The maximum difference with fully trained tables is now
less that 0.1%.
Change-Id: I06b44322e10c6703f93f3c1d48d973b1136a0618
|
|
|
|
These functions now are handled through the common superblock code.
Change-Id: Ib6688971bae297896dcec42fae1d3c79af7a611c
|
|
This patch will use the dest buffer instead of the
predictor buffer. This will allow us in future commits
to remove the extra mem copy that occurs in the dequant
functions when eob == 0. We should also be able to remove
extra params that are passed into the dequant functions.
Change-Id: I7241bc1ab797a430418b1f3a95b5476db7455f6a
|
|
* changes:
tokenize: convert skippable functions
Add foreach_transformed_block
|
|
Change-Id: I3fe8c529ddec658cfa2376cfc05d9c8a5366e978
|
|
Change-Id: If69c3d795f87af5cc7bfdfe70ef733c41b4d55c8
|
|
Use the common block walker to calculate skippability.
Change-Id: I6721e42f065df237426c91c1d871ec226ba7cdcb
|
|
More specifically, remove vp9_quantize_mb*, vp9_optimize_mb*,
vp9_inverse_transform_mb* and vp9_transform_mb*. Instead, use the
generic _sb* functions that take a size argument, and call them with
BLOCK_SIZE_MB16X16.
Change-Id: I33024afea95d3a23ffbc1df7da426e4645110f29
|
|
Adds a framework for doing arbitrary functions on each transform-
sized block in the mb/sb.
Change-Id: Iaffb1ae8db5ff2abfa8720c608c78376b42f2096
|
|
Use sb-common version instead.
Change-Id: If2552b5a39fd2e5272f66a41c5667dda85fd3939
|
|
Removing duplicated code from vp9_encodemv.c and reusing ROUND_POWER_OF_TWO
macro definitions.
Change-Id: I9caf0c17f761ada7905cb99a3e2a31f871fef0f9
|
|
Change-Id: I0d12f9ef9d960df0172a1377f8e5236eb6d90492
|
|
Merge various super_block_yrd and super_block_uvrd versions into one
common function that works for all sizes. Make transform size selection
size-agnostic also. This fixes a slight bug in the intra UV superblock
code where it used the wrong transform size for txsz > 8x8, and stores
the txsz selection for superblocks properly (instead of forgetting it).
Lastly, it removes the trellis search that was done for 16x16 intra
predictors, since trellis is relatively expensive and should thus only
be done after RD mode selection.
Gives basically identical results on derf (+0.009%).
Change-Id: If4485c6f0a0fe4038b3172f7a238477c35a6f8d3
|
|
|
|
The strategy to run fast loop filter picking for encoder speed-up
should be revisited at a later stage.
Change-Id: I3b75e06d767cff41be952a42e63b3292f4eab996
|
|
|