Yaowu Xu [Tue, 25 Feb 2014 22:15:00 +0000 (14:15 -0800)]
Reduce the frequency of partition size adjsutment
The commit change to use partitions sizes directly from last frame
for frames directly where last frame selects partitions sizes based
on coding efficiency.
On --rt --cpu-used=-5, the change hurts compression by 4% but reduces
encoding time by ~20%
Jingning Han [Wed, 26 Feb 2014 00:12:35 +0000 (16:12 -0800)]
Use sub-pixel accuracy prediction non-RD mode
This commit builds the actual prediction block in sub-pixel accuracy
and uses which to calculate SAD for non-RD mode decision. In the trail
run on pedestrian_area at 1080p, rtc speed -7 runtime goes from
23495 ms -> 25107 ms (7% slower). The compression performance is
improved by 20.57% for rtc test set.
Jingning Han [Tue, 25 Feb 2014 21:50:32 +0000 (13:50 -0800)]
Use dedicated variables to store the best mode
Use a set of dedicated variables to buffer the current best mode
in non-RD mode decision. This allows to use mode_info for more
complicated test in the non-RD process.
Deb Mukherjee [Mon, 24 Feb 2014 23:21:13 +0000 (15:21 -0800)]
Adds variance based fixed size partitioning
Adds a method for determining a fixed size partition based on
variance of a 64x64 SB. This method is added to rtc speed 6.
Also fixes a bug in rtc_use_partition() and includes some
refactoring related to partitioning search, and some cosmetics.
Currently compared to speed 5, the coding efficiency of speed 6
is -19% and that of speed 7 is -55%, in cbr mode.
Jim Bankoski [Tue, 25 Feb 2014 01:34:27 +0000 (17:34 -0800)]
resolve issue with arm code failing unit test
The optimizer did something funny with the code around
line 1412. Before the call to encode_sb split_dist was
set properly but after it was adjusted and converted to
a negative.
Deb Mukherjee [Mon, 24 Feb 2014 20:08:56 +0000 (12:08 -0800)]
Adds an intermediate speed level for rtc
Moves the existing speed 6 to speed 7 and adds an
intermediate level 6 which is roughly in between
speeds 6 and 7 in both speed and coding efficiency.
Also includes some minor fixes/adjustments.
Adrian Grange [Mon, 24 Feb 2014 18:15:21 +0000 (10:15 -0800)]
Trap request to display non-existant frame
If show_existing_frame indicates that the decoder should
display an existing (previously decoded) frame, add a
check to make sure that the signaled buffer does contain
a valid decoded frame.
Yaowu Xu [Sat, 22 Feb 2014 20:30:18 +0000 (12:30 -0800)]
Added clamp of qindex to valid range
The qindex for a segment was not clamped in ABSDATA mode, which may
cause invalid memory access if an ill-formed stream has a negative
value in ABSDATA mode. This commit added clamp to make sure qindex
for a segment always fall into valid range.
Jingning Han [Sat, 22 Feb 2014 02:25:43 +0000 (18:25 -0800)]
Periodically update mode and mv costs
Skip coefficient cost update in non-RD mode decision setting. Allow
periodical mode and motion vector cost update. Currently every other
8 frames. The increment runtime is a constant number. Hence more
visible for CIF resolution, while negligible for 1080p.
Speed -6 compression performance for rtc set is improved by 4.5%.
Jingning Han [Fri, 21 Feb 2014 22:33:27 +0000 (14:33 -0800)]
Refactor selected partition size coding for rtc
This commit makes a refactoring of the rtc_use_partition. It allows
the encoder to take a preferred block size for non-RD mode decision.
The boundary blocks are handled such that smaller block sizes that
fit in the boundary size will be used instread.
In rtc mode, the coding performance of speed -6 for pedestrian_1080p
goes from
158980 b/f, 38.934 dB, 22721 ms to
159008 b/f, 40.064 dB, 23721 ms.
For rtc set, the speed -6 compression performance is improved by
26%. Still about 2dB behind speed -5 at this point.
Alex Converse [Thu, 20 Feb 2014 17:43:32 +0000 (09:43 -0800)]
vp9_rd_pick_inter_mode_sb() reorganization
* Reduce the number of short cirtcuit checks by pre-computing and combining like checks.
* Postpone non-trivial initializations until after the shortcircuits are evaluated.
* Add some consts and const pointers.
No change to the actual results of the call or output of the encoder.
Jingning Han [Wed, 19 Feb 2014 23:30:09 +0000 (15:30 -0800)]
Enable reduced set of intra modes in rtc coding
This commit enables the use of DC, vertical, and horizontal intra
prediction mode in rtc non-RD mode decision. When the best cost value
of inter modes is above a given threshold, the encoder runs the
above three intra modes and selects the one that has minimum
prediction residual in terms of SAD.
This together with recent changes on non-RD mode decision and coding
control improves compression performance of speed -6 by
derf 91%
yt 61%
hd 46%
stdhd 52%
In terms of encoding speed, it is about 3 times faster than speed -5.
Jingning Han [Wed, 19 Feb 2014 23:11:12 +0000 (15:11 -0800)]
Force alt reference frame off in rtc mode
When non-RD coding decision is used in rtc mode, the alt reference
is not used for inter frame prediction. This commit disabled alt ref
option whenever speed -6 is used.
Marco Paniconi [Thu, 20 Feb 2014 18:46:44 +0000 (10:46 -0800)]
vpx_temporal_scalable_patterns: set rc_target_bitrate correct.
Current setting was specific to 1 layer case.
rc_target_bitrate is total bitrate for whole stream,
so set it to ts_target_bitrate for highest/top temporal layer.