Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
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
|
|
|
|
Use the common sb functions instead.
Change-Id: I4fa0a8ee3c6ada56271dd09bf895b97642f55858
|
|
Remove the unnecessary _s_ from their names, and add a new
vp9_recon_sb() that calls the y and uv variants.
Change-Id: I7ffaa5ff5605a8472cac2a53de8cf889353039a6
|
|
Change-Id: Ic27af09e38af8317ac4743241883d577a44f1490
|
|
All build_inter_predictors can now be serviced by the same inner
function.
Change-Id: I40b08bee8f047286db4b1aad9dcae37b879c3f2a
|
|
Similar to the prior change that removed the rounding from non-SPLITMV
modes. Improves quality by a similar amount (Additional +0.087% on derf)
Change-Id: I39d80b4a3037a3aa7e285eb2320346ddaf646f52
|
|
experimental
|
|
|
|
The C code was being used as a fallback for the >16 case, but only for 2D.
Change-Id: I1e2e6da9e4b28bd88bde9ba4dd32724ce466cf6f
|
|
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
|
|
As we are no longer able to sort the candidate
mvrefs in both encoder and decode and given
that the cost of explicit signalling has proved
prohibitive, it no longer makes sense to find more
than 2 candidates.
This patch:
Modifies and simplifies add_candidate_mv()
Removes the forced addition of a 0 vector in the
MAX_MV_REF_CANDIDATES-1 position (in preparation
to reducing MAX_MV_REF_CANDIDATES to 2).
Re-orders the addition of candidates slightly.
This actually gives small gains (circa 0.2% on std-hd)
A subsequent patch will remove NEW_MVREF experiment,
reduce MAX_MV_REF_CANDIDATES to 2 and remove distance
weights as these are implicit now in the order.
Change-Id: I3dbe1a6f8a1a18b3c108257069c22a1141a207a4
|
|
Updates to make non-SPLITMV inter predictors work for all
plane types.
Change-Id: I25dbef40b7ffcac30254b43eed1e22fc732378ae
|
|
Consider the previous behavior for the MV 1 3/8 (11/8 pel). In the
existing code, the fractional part of the MV is considered separately,
and rounded is applied, giving a result of 6/8. Rounding is not required
in this case, as we're increasing the precision from a q3 to a q4, and
the correct value 11/16 can be represented exactly.
Slight gain observed (+.033 average on derf)
Change-Id: I320e160e8b12f1dd66aa0ce7966b5088870fe9f8
|
|
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
|
|
|
|
|
|
Using predefined clamp function, removing redundant variables, declare and
init on the same line.
Change-Id: I14636eb242194bac33f8a9d4a273a416d32856fc
|
|
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
|
|
experimental
|
|
experimental
|
|
VP9Common." into experimental
|
|
Updates the common convoloution code to support blocks larger than
16x16, and rectangular blocks. This uncovered a bug in the SSSE3
filtering routines due to the order of application of saturation.
This commit fixes that bug, adjusts the unit test to bias its
random values towards the extremes, and adds a test to ensure that
all filters conform to the expected pairwise addition structure.
Change-Id: I81f69668b1de0de5a8ed43f0643845641525c8f0
|
|
Change-Id: I9790baedbd4acb7113575efc6f228b2656c42ff7
|
|
|
|
into experimental
|
|
Change-Id: I83aa188d414922db19cccb210c4001c02d5a404c
|
|
Change-Id: I655305c9e22bdd9abc893d3c40d4bc6616aa1d35
|
|
|
|
|
|
|
|
Change-Id: Id268ccaf1aefee6a3ed3e31486d4370f1c25e8cb
|
|
Also using ALLOWED_REFS_PER_FRAME instead of 3.
Change-Id: I810dd8521d8138edb9dbd78edede49b62f706554
|
|
|
|
experimental
|
|
Change-Id: I28c3026946fc1bde7074e6e0198da93bb0d75dfe
|
|
|
|
that are related to using reconstructed pixel for selecting reference
motion vectors.
Change-Id: I048dfae39ca7385e344b57d46347ecc6e753e1bb
|
|
It is unused.
Change-Id: Ied3269ffacf9b6303bc9d85f996384c3575ef812
|
|
Change-Id: Idb0d11e3ae9afabe667a9f327bf4d3aa84f63649
|
|
Using filter_level/16 instead.
Change-Id: I73a7e83a785d6aa6f9b5d22cf66e22f0a39ed078
|
|
into experimental
|
|
About 11% overall encoder speedup with the sbsegment experiment enabled.
Change-Id: Iffb1bdba6932d9f11a6c791cda8697ccf9327183
|