Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
Changed the end of block computation to use pmaxw. Removed
additional pushing and popping of registers that was not needed.
Change-Id: I08cb9b424513cd8a2c7ad8cea53b4e2adc66ef98
|
|
Change I3430820 performed an uninitialized read when
encode_breakout == 0, since the sum and sse wouldn't be set:
if(x->encode_breakout)
VARIANCE_INVOKE(..., get16x16var)(..., &sum, &sse);
if (cpi->active_map_enabled && x->active_ptr[0] == 0) {
...
} else if (sse < x->encode_breakout)
Change-Id: I915eb76d1227b4b6d1137a0dedf2c143860098a2
|
|
Corrected the initial Q range limits for the recode loop
to reflect the current allowed range for the frame.
In experimental work on constrained quality this bug was
causing unnecessary recodes.
Change-Id: I7e256fbfa681293b0223fe21ec329933d76c229f
|
|
|
|
|
|
|
|
|
|
Realized no need for new assembly code sum is already
calculated.
Change-Id: Ie2d94feb4b7c1f77c5359bca29b66228e41638c9
|
|
|
|
|
|
|
|
This patch adds a weighting factor on RDMULT for UV blocks. The change
has an overall gain about 0.5% based on ssim, between 0.1 and 0.2% by
psnr numbers.
Change-Id: I97781b077ce3bb7e34241b03268491917e8d1d72
|
|
Deallocating the buffers before re-allocating them.
The fix passed James Berry's test program for memory
leak check.
Change-Id: I18c3cf665412c0e313a523e3d435106c03ca438d
|
|
Moved the code from the segmentation loop into a function
which is now called for each segment. This will allow us
to change the segment order checking more easily.
Change-Id: I9510d26f0acae5a73043fcca8f1984b121d3e052
|
|
|
|
When auto_golden wasn't set it forced all frames to be a golden
frame. Now the manual configured frequency is adhered to.
Change-Id: I360acac9bc487db0d9c4d4da6ee41f70c227c539
|
|
|
|
|
|
The inter_minq table controls the range of quantizers available
for a particular frame in two pass relative to a max Q value.
The changes reduces the range somewhat. The effect of this
was a small increase (0.3% average) in psnr for the test set
but it should also help encode speed somewhat for higher
quality modes as it will reduce the number of iterations in the
recode loop.
The change damps the range of quantizers available locally
within a section of a clip and should therefore help keep quality
more uniform. If there is systematic overshoot or undershoot the
range can shift gradually to accommodate. However, there is
some increased risk of overshoot or undershoot against the target
bit rate in VBR mode and this risk will be more pronounced for short
clips.
The change damps the range of quantizers available locally
within a section of a clip and should therefore help keep quality
more uniform. If there is systematic overshoot or undershoot the
range can shift gradually to accommodate. However, there is
some increased risk of overshoot or undershoot against the
target bit rate in VBR mode and this risk will be more
pronounced for short clips.
Change-Id: I84465567d49ae767c6c73ff2a2aac30c895adb52
|
|
|
|
Add vp8_mv_pred() to better predict starting MV for NEWMV
mode in vp8_rd_pick_inter_mode(). Set different search
ranges according to MV prediction accuracy, which improves
encoder performance without hurting the quality. Also,
as Yaowu suggested, using diamond search result as full
search starting point and therefore adjusting(reducing)
full search range helps the performance.
Change-Id: Ie4a3c8df87e697c1f4f6e2ddb693766bba1b77b6
|
|
Merge commit 'refs/changes/79/779/2' of
https://review.webmproject.org/p/libvpx
Conflicts:
vp8/encoder/encodeintra.c
vp8/encoder/encodemb.c
Change-Id: Id607063fabe92d99eeb3c380e8ca670b01bfb3ef
|
|
|
|
On a keyframe alt ref and golden are refreshed. The flag was
not being set and so on the frame after a keyframe, motion
search would occur on the alt ref frame. This is not necessary
because the alt ref frame identical to the last frame in this
scenario.
Handle corner case where a forward alt-ref frame is put
directly after a keyframe.
Change-Id: I9be4cf290d694f8cf2f9a31852014b5ccf1504d3
|
|
only do the variance calculation if necessary
( eg needed for breakout test)
|
|
|
|
The baseline bits per MB prediction tables have been
re calibrated based on the assumption that bits per mb
is inversely proportional to the quantizer level.
Change-Id: Ibd355c7acac4b8053dda1baf1032fe35f11da7f7
|
|
|
|
|
|
Added code to record spend so far against planed budget.
Change-Id: I5a3335346fa1771b2b1219df9f6127f9993d2594
|
|
|
|
Changing the MAX_PSNR to 100 to allow testing of further experiments
on extending quantizer range to near lossless. With an effective
quantizer of 1, encoder achieves ~68DB, which is consistent with
fdct/idct round trip error.
Change-Id: I7b6d0e94a8936968ef42e82e63ebb13999c36832
|
|
|
|
was having: "vp8/encoder/onyx_if.c:5365: warning: comparison of unsigned expression >= 0 is always true"
|
|
|
|
macro_block_yrd and vp8_rdcost_mby are not called for SPLITMV.
Change-Id: I2224d3c8725df526d48426447482768d543752f1
|
|
|
|
|
|
Replaced existing code to decide if a frame recode is required
with a function call. This is to simplify addition of extra clauses
that may be needed for the planned constrained quality mode.
Also fixed a bug where by alt ref not considered in the test.
Change-Id: I3d40bb21abe3e19f8456761e6849deb171738b60
|
|
|
|
Clarify what the alt ref flags do when encoding.
Change-Id: I71f78e0f42edae633fb91840f29dfbe64362c44c
|
|
into test
Conflicts:
vp8/common/blockd.h
vp8/decoder/decodemv.c
vp8/decoder/decodframe.c
vp8/decoder/demode.c
vp8/decoder/onyxd_if.c
vp8/decoder/onyxd_int.h
vp8/encoder/encodeframe.c
Change-Id: Ic379f4dffaded9796dc19d56be304d3f8527c61f
|
|
x86-64 passes arguments in registers. There is no need to push
them to the stack before using them.
This fixes 15acc84f10cefd98b2f8dbd2eac2cc92c5a3f851 where ebx
was not getting preserved on x86.
Change-Id: I1214b5f818a0201f75ab6ad7d5c6f448e09b16c2
|
|
|
|
The use of incorrect mv costing tables in the ARNR sub-pel
filtering code led to corruption of the altref buffer in some cases,
particularly at low data rates.
The average gain from this fix is about 0.3% but there are a few
extreme cases where nasty and visible artifacts manifested and
for these few data points the improvement is > 10%.
PGW and AWG
Change-Id: I95cc02b196a433e71d0d2bd2b933fe68ed31e796
|
|
|
|
This intends to correct the tendency that VP8 aggressively favors rate
on intra coded frames. Experiments tested different numbers in [0, 1]
and found 9/16 overall provided about 2-4% gains for all-intra coded
clips based on vpx-ssim metric. The impact on regular encoded clips
is much smaller but positive overall. Overall impact on psnr is also
positive even though very small.
Change-Id: If808553aaaa87fdd44691f9787820ac9856d9f8a
|