Commit Graph

6465 Commits

Author SHA1 Message Date
Deb Mukherjee
6c6213d960 Merge "Pruned subpel search for speed 3." 2014-09-23 17:12:03 -07:00
Deb Mukherjee
c94b17f4b2 Pruned subpel search for speed 3.
Adds code to return an integer cost list for NSTEP search. Then
uses it for pruned subpel search in speed 3.

derf: -0.06%
Speed on mobcal 720p increaes from 10.28 fps to 10.65 fps.
[Subject to further testing].

Change-Id: Ib591382d25b2c11bcaba9d3a27a93a9d1ab27a96
2014-09-23 11:27:58 -07:00
Yaowu Xu
7feede9869 Merge "Remove code duplication" 2014-09-22 17:13:59 -07:00
Yaowu Xu
052bc8ea6a Merge "Simplify rd_pick_intra_sby_mode()" 2014-09-22 17:13:55 -07:00
Yaowu Xu
c7ab18fe56 Remove code duplication
Change-Id: I453b3e0d946951665d5919248445fc4f3222d2ad
2014-09-22 15:22:51 -07:00
Yaowu Xu
f46326c7a2 Simplify rd_pick_intra_sby_mode()
Change-Id: Ifb0915c94c2db48827ddbd446314cb6e3155b99c
2014-09-22 14:58:51 -07:00
Minghai Shang
38b6aed8fd Merge "[spatial svc] Remove vpx_svc_parameters_t and the loop that sets it for each layer" 2014-09-22 14:01:24 -07:00
Jingning Han
f7023ea014 Remove unnecessary local variable declaration
This commit removes a repetitive local variable declaration in
vp9_rd_pick_inter_mode_sb.

Change-Id: I1b0afa98ff1ecbfb46e17d3d1cee95d32c4309db
2014-09-22 09:29:28 -07:00
Jingning Han
eee904c9b9 Adaptive mode search scheduling
This commit enables an adaptive mode search order scheduling scheme
in the rate-distortion optimization. It changes the compression
performance by -0.433% and -0.420% for derf and stdhd respectively.
It provides speed improvement for speed 3:

bus CIF 1000 kbps
24590 b/f, 35.513 dB, 7864 ms ->
24696 b/f, 35.491 dB, 7408 ms (6% speed-up)

stockholm 720p 1000 kbps
8983 b/f, 35.078 dB, 65698 ms ->
8962 b/f, 35.054 dB, 60298 ms (8%)

old_town_cross 720p 1000 kbps
11804 b/f, 35.666 dB, 62492 ms ->
11778 b/f, 35.609 dB, 56040 ms (10%)

blue_sky 1080p 1500 kbps
57173 b/f, 36.179 dB, 77879 ms ->
57199 b/f, 36.131 dB, 69821 ms (10%)

pedestrian_area 1080p 2000 kbps
74241 b/f, 41.105 dB, 144031 ms ->
74271 b/f, 41.091 dB, 133614 ms (8%)

Change-Id: Iaad28cbc99399030fc5f9951eb5aa7fa633f320e
2014-09-22 09:28:16 -07:00
hkuang
c70cea97ac Remove mi_grid_* structures.
mi_grid_* are arrays of pointer to pointer. They save the pointers that point
to the MIs in cm->mi. But they are unnecessary and complicated. The original
goal was to remove MODE_INFO_t copy. But with an extra MODE_INFO_t pointer
inside MODE_INFO_t, same goal could be achieved.

This commit totally removes the mi_grid_* structures. But there are still
many dummy MODE_INFO_t inside cm->mi which are a waste of memory. Next commit
will do on-demand MODE_INFO_t allocation in order to save these memories.

Change-Id: I3a05cf1610679fed26e0b2eadd315a9ae91afdd6
2014-09-19 21:27:11 -07:00
Deb Mukherjee
822b51609b High bit-depth coefficient coding functions
Tokenization and Detokenization enhancements for 10/12 bit

Change-Id: I3c269ec30f8eb160ee024905638a193975237559
2014-09-19 15:21:24 -07:00
Minghai Shang
209ee12110 [spatial svc] Remove vpx_svc_parameters_t and the loop that sets it for each layer
vpx_svc_parameters_t contains id, resolution and min/max qp for each spatial layer.

In this change we will use extra config to send min/max qp and scaling factors, then calculate layer resolution inside encoder.

Change-Id: Ib673303266605fe803c3b067284aae5f7a25514a
2014-09-18 18:05:07 -07:00
Frank Galligan
49dc7b05d0 Merge "FIX: vp9_loopfilter_intrin_sse2.c" 2014-09-18 15:10:16 -07:00
Scott LaVarnway
13284311eb FIX: vp9_loopfilter_intrin_sse2.c
Fixes Visual Studio build failures

Change-Id: I233719cd63b3ad0db16e2834bf1d7ea1df805880
2014-09-18 13:09:13 -07:00
Minghai Shang
f66be91f61 Merge "[spatial svc] Use same golden frame for all temporal layers" 2014-09-18 12:29:40 -07:00
Minghai Shang
f780b16bb8 [spatial svc] Use same golden frame for all temporal layers
Overhead goes down from 8% to 3% for 1080 60p

Change-Id: Idf3e5ca8712402a914a8cb79df17d3cdab63b163
2014-09-18 11:16:29 -07:00
Deb Mukherjee
6d0ee9860e Merge "Adds high bitdepth convolve, interpred & scaling" 2014-09-18 10:52:23 -07:00
Deb Mukherjee
0d3c3d3ce7 Adds high bitdepth convolve, interpred & scaling
Change-Id: Ie51c352a6b250547207cbc1ebba833a01ed053e3
2014-09-18 07:26:17 -07:00
Paul Wilkins
c389b37bb4 Substantial reworking of code for arf and kf groups.
Substantial restructuring of the way we estimate
the rate of decay in prediction quality and determine
the arf interval and amount of boost used.

Also other changes to support moving to a lower first pass
Q which exposes some new features and allows us to better
distinguish genuinely static blocks from low motion or noisy
blocks.

Net gains now visible on all the test sets with std-hd PSNR up
1.87%. There are still some bad outlier cases but most of these
are low motion or slide show type content where the metrics
are already high at any given rate. The best + case is up by
more than 10%.

Change-Id: I18e25170053bdf3188f493ff8062f48a74515815
2014-09-18 12:53:48 +01:00
Frank Galligan
4e066299d9 Merge "Improved mb_lpf_horizontal_edge_w_sse2_16() #2" 2014-09-17 18:52:30 -07:00
Scott LaVarnway
217e3cb1fb Improved mb_lpf_horizontal_edge_w_sse2_16() #2
The decoder performance improved up to 1% for the
test clips used.

Change-Id: I4621112bdccfba01640322facfa4ba8da8290ea5
2014-09-17 17:25:20 -07:00
Deb Mukherjee
7d0e4f9ad1 Resolves a few gcc warnings
clang is fine.

Change-Id: Ia4e9ff17ea3b86bc87dca35828ee7ce45bea6994
2014-09-16 22:44:40 -07:00
Deb Mukherjee
f7cf05cfe0 Merge "Adding high-bitdepth intra prediction functions" 2014-09-16 17:10:24 -07:00
Frank Galligan
ecd7e3d2b7 Merge "Remove memset of every external frame buffer." 2014-09-16 15:17:26 -07:00
Dmitry Kovalev
4f506358c4 Merge "Speeding up decode_coeffs()." 2014-09-16 15:13:14 -07:00
Deb Mukherjee
81a8138fc3 Adding high-bitdepth intra prediction functions
Change-Id: I6f5cb101e2dc57c3d3f4d7e0ffb4ddbed027d111
2014-09-16 15:04:39 -07:00
Deb Mukherjee
5cd0aab81a Adds high bitdepth quantization functions
Adds various high bitdepth quantization functions.

Change-Id: I36fc0bf75a1bd15128ed271df8723de0ac134b0c
2014-09-16 14:55:37 -07:00
Jingning Han
66f812fb56 Merge "Use non-zero mode threshold for NEARESTMV modes" 2014-09-16 13:39:54 -07:00
Yaowu Xu
73ef5360b5 Merge "Fix a performance regression" 2014-09-16 12:58:47 -07:00
Adrian Grange
2b3b63f422 Merge "Fix ARF construction when scaling" 2014-09-16 12:35:23 -07:00
Dmitry Kovalev
adaec4d0fb Speeding up decode_coeffs().
1080p decoding speedup -- 1.25%, 4K decoding speedup -- 2.5%.

Change-Id: I5f02f521cbf7758d4d1886a93bc5b074abdff03d
2014-09-16 12:04:09 -07:00
Adrian Grange
99df7ded95 Merge "Move call to vp9_rc_get_second_pass_params()." 2014-09-16 11:37:33 -07:00
Yaowu Xu
601f3a886e Fix a performance regression
This commit adds back sse2 or ssse3 optimized versio of a couple of
functions, fixes a ~10% performance regression.

Change-Id: I049786906e5a641224dced63c6492aec9d86d183
2014-09-16 11:18:46 -07:00
Adrian Grange
1def634f1a Fix ARF construction when scaling
The ARF frame should always be the same size as the
native resolution of the input frames.

It will be scaled to the required resolution at
encode time.

Change-Id: I0afe858129aa6ef65b1648f43476331715346896
2014-09-16 11:12:49 -07:00
Jingning Han
56fa3ab886 Use non-zero mode threshold for NEARESTMV modes
This commit makes the encoder to use non-zero mode threshold for
NEARESTMV modes. The runtime for test clips of speed 3 is reduced
by about 1%.

pedestrian 1080p 2000 kbps, 143239 ms -> 141989 ms
bus CIF 1000 kbps, 7835 ms -> 7749 ms

The compression performance change is about -0.02% for both derf
and stdhd.

Change-Id: Ib71808922c41ae2997100cb7c561f68dcebfa08e
2014-09-16 09:56:10 -07:00
Jingning Han
ffaebfc7b4 Merge "Add ARF validation for compound inter mode check" 2014-09-15 21:26:37 -07:00
Jingning Han
c50256c157 Merge "Remove redundant reference frame check in sub8x8 RD search" 2014-09-15 21:26:11 -07:00
Jingning Han
fe96932c69 Merge "Replace best_ref_index table fetch with best_mbmode" 2014-09-15 21:25:48 -07:00
Yunqing Wang
57eb2a4e83 Merge "Simplify the skip flag cost code" 2014-09-15 18:50:30 -07:00
Yunqing Wang
c60ef810a1 Merge "Set the skip flag to 1 for skippable blocks" 2014-09-15 18:50:19 -07:00
Yunqing Wang
200ec69abb Simplify the skip flag cost code
Code refactoring.

Change-Id: Idad53cb80497d13551a142a642f7529fc305b0bc
2014-09-15 17:11:16 -07:00
Yunqing Wang
46aed7b8d0 Set the skip flag to 1 for skippable blocks
If the partition block is skippable, which means no coefficients
for Y, U, and V planes, its skip flag is set to 1. No quality
change (verified by borg tests), and no noticeable speed change.

Change-Id: I9231f720f8dd6364384cf05aa148ca24d75450f1
2014-09-15 16:50:19 -07:00
Frank Galligan
175d9dfe0a Remove memset of every external frame buffer.
Libvpx was memseting every external frame buffer before decode. This
was to work around a valgrind issue in our C loop filter. Most of
the time this was not needed and we have noticed some significant
performance loss on some platforms. Now we require the application to
zero out the buffers if it is using external frame buffers.

Change-Id: I7330d00a315e65137ed30edd5f813e8929b76242
2014-09-15 15:37:36 -07:00
Jingning Han
f897dd5f09 Merge "Fix format in vp9_rd_pick_inter_mode_sub8x8" 2014-09-15 15:34:22 -07:00
Jingning Han
f1581b3b2e Add ARF validation for compound inter mode check
This commit enforces ARF validation check for compound inter modes.
It avoids potential access to ARF in the encoding process if it
is not allowed.

Change-Id: I055fec946b5d19d97937dc9001e1e564923e2439
2014-09-15 12:20:57 -07:00
Jingning Han
252822e81c Remove redundant reference frame check in sub8x8 RD search
The valid reference frame check in sub8x8 rate-distortion
optimization search has been included in the ref_frame_skip_mask
scheme. This commit removes the later further validation checks
that are not in effect.

Change-Id: I853b477c44037d3dc0afec6cbfce08a96c597a75
2014-09-15 12:20:04 -07:00
Jingning Han
cc00eea676 Replace best_ref_index table fetch with best_mbmode
This commit replaces the best_ref_index table fetch with the use
of best_mbmode in vp9_rd_pick_inter_mode_sub8x8.

Change-Id: I882ee9ee6a8c0e61befcca1f4dba6d2ea8de8f13
2014-09-15 09:59:20 -07:00
Jingning Han
73805bfa70 Fix format in vp9_rd_pick_inter_mode_sub8x8
Change-Id: I9b6a74bdf003b39235f14f8b5b7f3b861f6bf131
2014-09-15 09:44:09 -07:00
Yunqing Wang
10a9456ade Merge "Refactor encode_superblock function" 2014-09-15 09:28:31 -07:00
Paul Wilkins
cd95543ee4 Move call to vp9_rc_get_second_pass_params().
Call to vp9_rc_get_second_pass_params() moved from
Pass2Encode() to earlier in vp9_get_compressed_data(),
to ensure that two pass stats and parameters are
available before decisions such as frame scaling.

Change-Id: If21537f0073919b04696a7d5e9aac78e23d76f39
2014-09-15 12:45:42 +01:00