Masked inter-inter will be enabled when CONFIG_MASKED_INTERINTER is
on. Masked inter-intra will be enabled only when both
CONFIG_MASKED_INTERINTRA and CONFIG_INTERINTRA are on.
Change-Id: I57efcfe6a3ef2d53129ef703030366503dfa3762
Exploit wedge partition in joint spatio-temporal prediction. One
slice will be intra predicted. The other slice will be inter
predicted.
Bit-rate reduction:
+0.583% derf (+0.307 on top of interintra)
+1.298% stdhdraw250 (+0.367% on top of interintra)
Change-Id: Iec4bba5a47d0419778458c25b550574a42b3a250
The masked compound motion compensation has mask types separating a
block into wedges at specific angles and offsets. The mask is used to
weight pixels from the first and second predictors to obtain the final
predictor. The weighting is smooth near the partition boundaries but
becomes a selecton farther away.
Bit-rate reduction: +0.960%(derfraw300) +0.651%(stdhdraw250)
Change-Id: I1327d22d3fc585b72ffa0e03abd90f3980f0876a
Makes first 50 frames of bus @ 1500kbps encode from 3min22.7 to 3min18.2,
i.e. 2.3% faster. In addition, use the sub_pixel_avg functions to calc
the variance of the averaging predictor. This is slightly suboptimal
because the function is subpixel-position-aware, but it will (at least
for the SSE2 version) not actually use a bilinear filter for a full-pixel
position, thus leading to approximately the same performance compared to
if we implemented an actual average-aware full-pixel variance function.
That gains another 0.3 seconds (i.e. encode time goes to 3min17.4), thus
leading to a total gain of 2.7%.
Change-Id: I3f059d2b04243921868cfed2568d4fa65d7b5acd
In current code, motion vectors got from single prediction mode are used
in compound prediction mode directly. These motion vectors may not give
accurate prediction since they are searched independently. In this patch,
we took Pascal's suggestion, and did joint motion search in compound
prediction mode to find better motion vectors in this situation.
Test results:
Overall PSNR: 0.570%(derf), 0.918%(stdhd);
SSIM: 0.572%(derf), 1.009%(stdhd);
The encoder is a little slower. This can be improved since some c
code is used in motion search.
Change-Id: Ib30c9240f6c56c9b070867b4ca89412a76d9f3c6
sse4_1 code used uint16_t for returning sad, but that
won't work for 32x32 or 64x64. This code fixes the
assembly for those and also reenables sse4_1 on linux
Change-Id: I5ce7288d581db870a148e5f7c5092826f59edd81
This function was part of an optimization used in VP8 that required
caching two macroblocks. This is unused in VP9, and might not
survive refactoring to support superblocks, so removing it for now.
Change-Id: I744e585206ccc1ef9a402665c33863fc9fb46f0d
For coefficients, use int16_t (instead of short); for pixel values in
16-bit intermediates, use uint16_t (instead of unsigned short); for all
others, use uint8_t (instead of unsigned char).
Change-Id: I3619cd9abf106c3742eccc2e2f5e89a62774f7da
Support for gyp which doesn't support multiple objects in the same
static library having the same basename.
Change-Id: Ib947eefbaf68f8b177a796d23f875ccdfa6bc9dc