Age | Commit message (Collapse) | Author |
|
Also some further simplification following removal
of top node code.
There is an issue in regards to the shared file vp8cx.h
in regard to the roi_map as this interface assumes that
there are only 4 segments. I have left the value here as
4 for now meaning that the roi_map interface is broken
for VP9.
Note that this change would have been easier if I hadn't
had to search for hard wire instances of the number 4
and <= 3.
Change-Id: Ia8b6deea4be4dbd20deb1656e689dd43a5f190e8
|
|
Remove top node optimization.
The improvement this gives is not sufficient to justify
the extra complexity.
Change-Id: I2bb4a12a50ffd52cacfa4a3e8acbb2e522066905
|
|
Change-Id: Iaef16122732c2a81e0927f9862b51b68dc788712
|
|
|
|
First in a series of commits making certain MACROBLOCK members
addressable per-plane. This commit also refactors the block subtraction
functions vp9_subtract_b, vp9_subtract_sby_c, etc to be
loops-over-planes and variable subsampling aware.
Change-Id: I371d092b914ae0a495dfd852ea1a3d2467be6ec3
|
|
Removing this experiment for now, since it has been broken with
the latest code changes.
Change-Id: I1be2181b56de490fcb577f5905b5e147a8ed82d8
|
|
Continue moving framebuffers to per-plane data.
Change-Id: I237e5a998b364c4ec20316e7249206c0bff8631a
|
|
This patch does not seem to give any benefits.
Change-Id: I9d2b4091d6af3dfc0875f24db86c01e2de57f8db
|
|
Adds an experiment that codes an end-of-orientation symbol
for every eligible zero encountered in scan order.
This cleans out various other sub-experiments that were part
of the origiinal patch, which will be later included if found
useful.
Results are slightly positive on all sets (0.1 - 0.2% range).
Change-Id: I57765c605fefc7fb9d1b57f1b356843602abefaf
|
|
|
|
First in a series of commits moving the framebuffers pointers to
per-plane data, so that they can be indexed numerically rather than
by name.
Change-Id: I6e0d60fd4d51e6375c384eb7321776564df21775
|
|
|
|
Change-Id: Ic27af09e38af8317ac4743241883d577a44f1490
|
|
All build_inter_predictors can now be serviced by the same inner
function.
Change-Id: I40b08bee8f047286db4b1aad9dcae37b879c3f2a
|
|
experimental
|
|
Further simplification of mvref search to return
only the top two candidates. Distance weights removed
as the test order reflects distance anyway.
Change-Id: I0518cab7280258fec2058670add4f853fab7b855
|
|
This experiment has failed to give much benefit but
does add complexity so deprecated.
Change-Id: Ic7b929ba706390b9907ef0b4f965bd401ca799a4
|
|
Updates to make non-SPLITMV inter predictors work for all
plane types.
Change-Id: I25dbef40b7ffcac30254b43eed1e22fc732378ae
|
|
This commit converts the luma versions of vp9_build_inter_predictors_sb
to use a common function. Update the convolution functions to support
block sizes larger than 16x16, and add a foreach_predicted_block walker.
Next step will be to calculate the UV motion vector and implement SBUV,
then fold in vp9_build_inter16x16_predictors_mb and SPLITMV.
At the 16x16, 32x32, and 64x64 levels implemented in this commit, each
plane is predicted with only a single call to vp9_build_inter_predictor.
This is not yet called for SPLITMV. If the notion of SPLITMV/I8X8/I4X4
goes away, then the prediction block walker can go away, since we'll
always predict the whole bsize in a single step. Implemented using a
block walker at this stage for SPLITMV, as a 4x4 "prediction block size"
within the BLOCK_SIZE_MB16X16 macroblock. It would also support other
rectangular sizes too, if the blocks smaller than 16x16 remain
implemented as a SPLITMV-like thing. Just using 4x4 for now.
There's also a potential to combine with the foreach_transformed_block
walker if the logic for calculating the size of the subsampled
transform is made more straightforward, perhaps as a consequence of
supporing smaller macroblocks than 16x16. Will watch what happens there.
Change-Id: Iddd9973398542216601b630c628b9b7fdee33fe2
|
|
|
|
Use in-place buffers (dst of MACROBLOCKD) for macroblock prediction.
This makes the macroblock buffer handling consistent with those of
superblock. Remove predictor buffer MACROBLOCKD.
Change-Id: Id1bcd898961097b1e6230c10f0130753a59fc6df
|
|
|
|
experimental
|
|
Change-Id: I655305c9e22bdd9abc893d3c40d4bc6616aa1d35
|
|
Also using ALLOWED_REFS_PER_FRAME instead of 3.
Change-Id: I810dd8521d8138edb9dbd78edede49b62f706554
|
|
It is unused.
Change-Id: Ied3269ffacf9b6303bc9d85f996384c3575ef812
|
|
Adds RD integration for 32x16, 16x32, 64x32 and 32x64 rectangular blocks.
Derf almost +0.6%, HD a little over +1.0%, STDHD +1.3%.
Change-Id: Id651fdb6a655fdbb5c47009757e63317acfb88a5
|
|
Enable recursive partition information coding from SB64X64 down to
MB16X16. The bit-stream syntax is now supporting rectangular block
sizes. It starts from SB64X64 and recursively describes the partition
type of the current block. If the partition type is PARTITION_NONE,
the block is coded as a single unit; if it is PARTITION_HORZ or
PARTITION_VERT, the block is segmented into two independently coded
rectangular units, with no further partition needed; otherwise, the
block is segmented into 4 square blocks. i.e., PARTITION_SPLIT case,
each can be potentially further partitioned.
Forward adaptive probability modeling is used for the partition
information coding, conditioned on the current block size.
Change-Id: I499365fb547839d555498e3bcc0387d8a3587d87
|
|
Change-Id: I3bbc31840af69481e1d9bb4427c9ee25abf82946
|
|
|
|
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
|
|
|
|
|
|
Using regular 0 and 1 constants now.
Change-Id: Ie763503cbb727847cc8f1d6506cd6f2ee607f056
|
|
Now that the predictor is the dest, we do not need the
extra parameters.
Change-Id: I78db73d39b5aff62f15303f3d51ad2797eae74b6
|
|
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
|
|
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
|
|
Use the common block walker to calculate skippability.
Change-Id: I6721e42f065df237426c91c1d871ec226ba7cdcb
|
|
Adds a framework for doing arbitrary functions on each transform-
sized block in the mb/sb.
Change-Id: Iaffb1ae8db5ff2abfa8720c608c78376b42f2096
|
|
|
|
Merge sb32x32 and sb64x64 functions; allow for rectangular sizes. Code
gives identical encoder results before and after. There are a few
macros for rectangular block sizes under the sbsegment experiment; this
experiment is not yet functional and should not yet be used.
Change-Id: I71f93b5d2a1596e99a6f01f29c3f0a456694d728
|
|
experimental
|
|
Restructure the code to avoid the majority of per-block-size
switches, code duplication, etc. All block types (mb/sb32/sb64)
can be handled by the same code.
Change-Id: I4022718d66e31a15a7074e43f3b98cd0a5124ea7
|
|
* changes:
Move EOB to per-plane data
Move qcoeff, dqcoeff from BLOCKD to per-plane data
|
|
This is a VP8-only feature (part of profile 3) that is unsupported in
VP9.
Change-Id: I78016eede8d9c834d44d4c517f3e8b8fc2a378b1
|
|
Change-Id: Ic219e7878428128e4bb1b3995e8151f92b6bd9c3
|
|
It is never used.
Change-Id: If7462357c0498ed05af2645f0c272124381d3aab
|
|
Change-Id: Icd6b4322841fefcc86f06645e6aaf1ea42fdfabd
|