Jingning Han [Mon, 18 Aug 2014 17:42:23 +0000 (10:42 -0700)]
Speed up mode search depending on relative ref frame position
This commit enables the encoder to record the location of the
center frame to generate alter reference frame. It then allows to
skip checking prediction modes of other reference frame types when
it comes to encode this frame.
The speed 3 runtime is reduced for the test sequences:
bus at CIF 1000 kbps, 9791 ms -> 9446 ms, i.e., 3.5% speed-up,
pedestrian at 1080p 2000 kbps, 184043 ms -> 175730 ms, i.e., 4.5%
speed-up.
Pengchong Jin [Thu, 14 Aug 2014 03:07:39 +0000 (20:07 -0700)]
Add a speed feature to give the tighter search range
Add a speed feature to give the tighter partition search
range. Before partition search, calculate the histogram
of the partition sizes of the left, above and previous
co-located blocks of the current block. If the variance of
observed partition sizes is small enough, adjust the search
range around the mean partition size, which will be tigher.
The feature is currently turned on at speed 2. Experiments on
sample youtube clips show on average the runtime is reduced
by 3-7%.
For hard stdhd clips:
park_joy_1080p @ 15000kbps: 509251 ms -> 491953 ms (3.3%)
pedestrian_area_1080p @ 2000kbps: 223941 ms -> 214226 ms (4.3%)
The PSNR performance is changed:
derf: -0.112%
yt: -0.099%
hd: -0.090%
stdhd:-0.102%
Tom Finegan [Fri, 15 Aug 2014 18:31:30 +0000 (11:31 -0700)]
examples.sh: Run all example tests.
- Remove vpxdec and vpxenc from the exclude list.
- vpx{dec,enc}.sh: Updates to support finding their executable when
LIBVPX_BIN_PATH is setup for the examples.
- tools_common.sh: New library function, vpx_tool_path(). Provides
support for finding the exectuables in vpx{dec,enc}.sh.
Marco Paniconi [Thu, 7 Aug 2014 00:19:29 +0000 (17:19 -0700)]
Add an adaptive denoising mode.
On key frame, will always start with normal denoising mode,
but based on a computed noise metric (normalized mse on source diff)
may switch to aggressive mode (and back down again).
Marco [Thu, 14 Aug 2014 16:18:38 +0000 (09:18 -0700)]
vp8: Modify to use closest reference in zero_mv bias.
Modify zero_mv bias condition to include check that "closest" reference is last_frame.
This is needed for temporal layers, where the last_frame is not always the closest reference.
Also, constain zeromv_count to be for last_frame reference.
Adrian Grange [Thu, 14 Aug 2014 19:42:11 +0000 (12:42 -0700)]
get_ref_frame: fix test for valid buffer.
In the current implementation of the encoder,
frame buffers may come from the wider set of
12 such buffers, and is not restricted to the
8 allowed as reference frames. This is only
an implementation detail and does not affect
the constraint of having a total of 8 reference
buffers overall.
Yaowu Xu [Wed, 13 Aug 2014 22:07:16 +0000 (15:07 -0700)]
Set max_intra_bsize to 32x32
At --good and speed 3 or above for resolution less than 720p. This
disables the tests for 64x64 intra prediction modes. Encoding time
reduction is about 1%.
Jingning Han [Wed, 13 Aug 2014 17:38:21 +0000 (10:38 -0700)]
Allow full coeff probability model and cost update
This commit moves the simplified coefficient probability model
and costing update to speed 4, and turns on chessboard pattern
mode search for sub 720p sequences. The overall coding performance
of speed 3 is improved:
derf 0.889%
stdhd 1.744%
The speed 3 runtime for test sequences are improved:
bus cif at 1000 kbps 9823 ms -> 9642 ms
pedestrian 1080p 2000 kbps 189559 ms -> 183284 ms
Jingning Han [Tue, 12 Aug 2014 01:02:18 +0000 (18:02 -0700)]
Skip mode search based on reference frame consistency
This commit enables the encoder to skip NEARMV and ZEROMV if the
above and left blocks have identical reference frame, and the
current reference is different from that. It reduces the runtime
of speed 3 for test sequences:
bus cif at 1000 kbps 10064 ms -> 9823 ms
pedestrian 1080p at 2000 kbps 193078 ms -> 189559 ms
The compression performance is changed by
derf -0.085%
stdhd -0.103%
Jingning Han [Tue, 12 Aug 2014 00:48:14 +0000 (17:48 -0700)]
Enable motion field based mode seach skip
This commit allows the encoder to check the above and left neighbor
blocks' reference frames and motion vectors. If they are all
consistent, skip checking the NEARMV and ZEROMV modes. This is
enabled in speed 3. The coding performance is improved:
pedestrian area 1080p at 2000 kbps,
from 74773 b/f, 41.101 dB, 198064 ms
to 74795 b/f, 41.099 dB, 193078 ms
park joy 1080p at 15000 kbps,
from 290727 b/f, 30.640 dB, 609113 ms
to 290558 b/f, 30.630 dB, 592815 ms
Overall compression performance of speed 3 is changed
derf -0.171%
stdhd -0.168%
Yaowu Xu [Wed, 13 Aug 2014 17:43:43 +0000 (10:43 -0700)]
Simplify select_tx_mode()
The function is called only once, right after all stats counters are
reset to 0. Therefore all the computations have zero effect on return
values. This commmit to removed those effectless code.
James Zern [Wed, 13 Aug 2014 02:26:49 +0000 (19:26 -0700)]
cq_test: allow test cases to be run out of order
check that bitrates increase with cqlevel at global test case teardown,
rather than after each individual test case. this allows the tests to be
run out of order with --gtest_shuffle.
Deb Mukherjee [Wed, 13 Aug 2014 15:41:40 +0000 (08:41 -0700)]
Initialization to prevent asan failure on google3
Reinstates an assignment to prevent an asan failurere on google3.
Not sure why the failure happens. This was removed in a recent patch
https://gerrit.chromium.org/gerrit/#/c/71068/.
Jim Bankoski [Tue, 12 Aug 2014 23:22:32 +0000 (16:22 -0700)]
intra blocks disallowed inadvertently
At speed 6 the smallest partitioning was 16x16 and biggest
intra block was 8x8, essentially disallowing all intra blocks
which produces ugly artifacts when revealing new video.