Age | Commit message (Collapse) | Author |
|
Deallocating the buffers before re-allocating them.
The fix passed James Berry's test program for memory
leak check.
Change-Id: I18c3cf665412c0e313a523e3d435106c03ca438d
|
|
|
|
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
|
|
remove warning comment in vpxenc.c: in case of 1x1 picture,
detect_bytes will be equal to '3' and we'll fall back to
RAW_TYPE.
fix read_frame() by tracking the pre-read buffer length
in the struct detect
Change-Id: If1ed86ee5260dcdbc8f9d10da6cbb84a4cc2f151
|
|
|
|
* changes:
vp8_set_maps: remove hard-coded width/height
vp8mt_alloc_temp_buffers: make prototype return void
Disable compile warning for ERROR macro
|
|
The sz member of the vpx_codec_stream_info_t structure must be
initialized when passed to vpx_codec_peek_stream_info().
Change-Id: I2d13d287d9639262b932cf44671a595fdf3c38ef
|
|
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
|
|
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
|
|
The example for disabling the active map used a hard-coded 320x240
resolution, rather than using what was passed on the command line.
Fixes #218
Change-Id: I3aed713e8aa7fcbf18dfbffd57f142b5cd9ee492
|
|
This function was never called in a context expecting a return value,
the return value was always a constant, and the !CONFIG_MULTITHREAD
path didn't have a return statement, which caused a compiler warning.
This patch changes the function to return void instead.
Fixes issue #231
Change-Id: I9ef7f56e54418b7265026c54fc4ed5660c1418d1
|
|
The ERROR macro collides wiith the MS SDK on Windows. Since we're not
making any win32 calls in this function, just #undef it first to take
ownership.
Change-Id: Ic18c60dfa3a33c52e6c49d3f4f8d3e7e3ac3341d
|
|
|
|
Clarify what the alt ref flags do when encoding.
Change-Id: I71f78e0f42edae633fb91840f29dfbe64362c44c
|
|
|
|
Adds native build configuration for Snow Leopard. Useful when
users configure without arguments on OSX 10.6.
Change-Id: I0bd63912a25bbfb9d4c8d58a781d0f390792429c
|
|
There were a few errors in the comment section that describe VP8 token
alphabet table.
Change-Id: Ie6728a0e08bc3798893221b60408d5b201064bdc
|
|
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
|
|
|
|
When the first pts equaled 0 ivfenc was incorrectly increasing the
pts by 1. I changed the pts and last pts to be signed. I also set
the default value of last pts to -1.
Change-Id: I30bcec5af9b16d93fa9e3abbea7764b133e9cd73
|
|
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
|
|
The fast quantizer assembly code has not been updated to match the new
exact quantizer, which was made the default in commit 6adbe09.
Specifically, they are not aware of the potential for the coefficient
to be scaled, which results in the quantized result exceeding the range
of the DCT. This patch restores the previous behavior of using the
non-shifted coefficients when in the fast quantizer code path, but
unfortunately requires rebuilding the tables when switching between the
two.
Change-Id: I0a33f5b3850335011a06906f49fafed54dda9546
|
|
This reverts commit 15acc84f10cefd98b2f8dbd2eac2cc92c5a3f851.
Change-Id: Ia640be8cbc134432914849c1750f62575ea084e6
|
|
|
|
Check to see if postproc was enabled when enabling the
postproc visualizer was wrong.
Fix for bug introduced in Change Ia74f357d
Change-Id: I4bee9ad2caee3cfe3bac6972047f6af7c54cad4e
|
|
|
|
Fixed up the fdct for mmx and 8x4 sse2 to match them
most recent changes.
Change-Id: Ibee2d6c536fe14dcf75cd6eb1c73f4848a56d719
|
|
Debugging in postproc needs more flags to allow for specific
block types to be turned on or off in the visualizations.
Must be enabled with --enable-postproc-visualizer during
configuration time.
Change-Id: Ia74f357ddc3ad4fb8082afd3a64f62384e4fcb2d
|
|
VBR rate control can become very noisy for the last few frames.
If there are a few bits to spare or a small overshoot then the
target rate and hence quantizer may start to fluctuate wildly.
This patch prevents further adjustment of the active Q limits for
the last few frames.
Patch also removes some redundant variables and makes one small bug fix.
Change-Id: Ic167831bec79acc9f0d7e4698bcc4bb188840c45
|
|
Small changes to the default zero bin and rounding tables.
Though the tables are currently the same for the Y1 and Y2 cases
I have left them as separate tables in case we want to tune this later.
There is now some adjustment of the zbin based on the prediction mode.
Previously this was restricted to an adjustment for gf/arf 0,0 MV.
The exact quantizer now marginal outperforms and is the default.
The overall average gain is about 0.5%
Change-Id: I5e4353f3d5326dde4e86823684b236a1e9ea7f47
|
|
|
|
Change-Id: I4081917b46013fa8f4218cade8bd12cb2d013aee
|
|
The check '(user_data_end - partition < partition_size)' must be
evaluated as a signed comparison, but because partition_size was
unsigned, the LHS was promoted to unsigned, causing an incorrect
result on 32-bit. Instead, check the upper and lower bounds of
the segment separately.
Change-Id: I6266aba7fd7de084268712a3d2a81424ead7aa06
|
|
Change Ice204e86 identified a problem with bitrate undershoot due to
low precision in the timestamps passed to the library. This patch
takes a different approach by calculating the duration of this frame
and passing it to the library, rather than using a fixed duration
and letting the library average it out with higher precision
timestamps. This part of the fix only applies to vpxenc.
This patch also attempts to fix the problem for generic applications
that may have made the same mistake vpxenc did. Instead of
calculating this frame's duration by the difference of this frame's
and the last frame's start time, we use the end times instead. This
allows the framerate calculation to scavenge "unclaimed" time from
the last frame. For instance:
start | end | calculated duration
======+=======+====================
0ms 33ms 33ms
33ms 66ms 33ms
66ms 99ms 33ms
100ms 133ms 34ms
Change-Id: I92be4b3518e0bd530e97f90e69e75330a4c413fc
|
|
|
|
If this function fails silently, the nestegg context is destroyed and
future nestegg calls will segfault.
Change-Id: Ie6a0ea284ab9ddfa97b1843ef8030a953937c8cd
|
|
|
|
Change color reference frame to blend the macro block edge.
This helps with layering of visualizations.
Add block coloring for intra prediction modes.
Change-Id: Icefe0e189e26719cd6937cebd6727efac0b4d278
|