Commit Graph

12946 Commits

Author SHA1 Message Date
Frank Galligan
f5c36a5ced VP9: turn on tile-columns and frame-parallel-mode by default
Most of the current decoders use tile-based multithreading. Also
most of the current decoders need frame_parallel_decoding_mode
turned on to enable multithreaded decoding. tile-columns is
limited by resolution, so setting to max (6) is fine.

BUG=https://code.google.com/p/webm/issues/detail?id=963

Change-Id: I6e7ac3485d96bf0c69e06706cbb326dd38be0020
2015-03-03 11:20:11 -08:00
Yaowu Xu
47ac3ea0bb Adapt color sensitiviy threshold to luma signal energy
Instead using only a fixed threshold, this commit adapts the threshold
for color sensitivity decision to luma signal energy: chroma channel's
sse is at least 1/6 of that in luma for color sensitivity flag to be
set to active.

This recoups a large portion of the speed loss due to accounting for
chroma component costs in RTC mode decision.

Change-Id: Ie01f747f6037dba6a1d1ed3e10b71a0ef1abc42c
2015-03-03 11:15:13 -08:00
hkuang
f9420b45e5 Remove unnecessary loopfilter init.
Loopfilters are init in vp9_decode_frame.

Change-Id: I4fbf6286b9b231451452e4ef3c19877a7b9a6768
2015-03-03 10:40:39 -08:00
Yunqing Wang
55639c383b fix a race condition caused by intra function pointer initialization
This patch fixed webm issue 962.
(https://code.google.com/p/webm/issues/detail?id=962)
The data races occurred when an encoder and a decoder were created
at the same time, and the function pointers were initialized twice.

Change-Id: I8851b753c4b4ad4767d6eea781b61f0ac9abb44b
2015-03-03 09:58:37 -08:00
Johann
6cf7b3b240 Merge "libyuv: update to r1305" 2015-03-03 09:20:02 -08:00
James Zern
40f177ab3e ResizeCspTest: request PSNR packets
without VPX_CODEC_USE_PSNR they're only generated by default with
--enable-internal-stats

Change-Id: I9a5a8874a3aa4bde39ae09a4101ed5616c83c9a1
2015-03-02 18:54:22 -08:00
Johann
223bf29307 libyuv: update to r1305
MIPS build fixes

https://code.google.com/p/webm/issues/detail?id=957

Change-Id: I9d53900af36d783c369b5dff27a7479cb94fd16b
2015-03-02 15:19:31 -08:00
Jingning Han
1790d45252 Use variance metric for integral projection vector match
This commit replaces the SAD with variance as metric for the
integral projection vector match. It improves the search accuracy
in the presence of slight light change. The average speed -6
compression performance for rtc set is improved by 1.7%. No speed
changes are observed for the test clips.

Change-Id: I71c1d27e42de2aa429fb3564e6549bba1c7d6d4d
2015-03-01 10:42:56 -08:00
Jingning Han
f4e0eb17e8 Merge "Fix source frame border extension" 2015-02-27 18:19:18 -08:00
Jingning Han
fe85fabbac Fix source frame border extension
This commit fixes an issue in source frame border extension. It
causes certain frame resolution such as 640x480 to have a portion
of the right/bottom extension filled by zeros, which misleads
motion search and degrades transform coding performance when large
block size is used.

This fix improves the speed 2 compression performance of a few
yt sequence, typically ranging from 1% - 2%, up to 5% at median
to low bit-rate.

Change-Id: Id6b09a5695d9e7651c6dfbc2c6a72288b08af7fb
2015-02-27 15:48:01 -08:00
Adrian Grange
94bba48525 Merge "Fix calc_highbd_psnr" 2015-02-27 15:42:08 -08:00
Alex Converse
2b2fc812f1 Merge "Make SVC compatible with external resize." 2015-02-27 14:37:48 -08:00
Adrian Grange
54293ee3c7 Fix calc_highbd_psnr
Should use the crop dimensions of the frame rather
than the extended size.

Change-Id: I49ed041a46ff0753d43e074020857b7ff2f95e17
2015-02-27 14:05:02 -08:00
Marco
2b0ed0842f Merge "Fix arithmetic overflow warnings." 2015-02-27 11:53:57 -08:00
James Zern
dfc888f1f8 Merge "use LC_ALL=C to sort libvpx_*srcs.txt" 2015-02-27 10:59:59 -08:00
Jingning Han
89ee460ee4 Merge "Refactor integral projection based motion estimation" 2015-02-27 09:49:30 -08:00
Jingning Han
c4cb8059ff Merge "Fix high bit-depth loop-filter sse2 compiling issue - part 4" 2015-02-27 09:49:10 -08:00
Jingning Han
43bb97f7d0 Merge "Fix high bit-depth loop-filter sse2 compiling issue - part 3" 2015-02-27 09:49:00 -08:00
Jingning Han
4800b0e80d Merge "Fix high bit-depth loop-filter sse2 compiling issue - part 2" 2015-02-27 09:48:51 -08:00
Jingning Han
47431f6c1e Merge "Fix high bit-depth loop-filter sse2 compiling issue - part 1" 2015-02-27 09:48:39 -08:00
James Zern
8ef6dadbbe test-data.mk: fix perf test data dependency
both the encode and decode perf tests require niklas_1280_720_30.yuv
broken since:
28eebf3 Merge "tests: add a shorter 720p test clip"
7839d03 tests: add a shorter 720p test clip

Change-Id: I51ebbf7261832e25d8f2c1da5c7df5c2e47f748e
2015-02-26 23:14:54 -08:00
James Zern
0f96f02b94 use LC_ALL=C to sort libvpx_*srcs.txt
Change-Id: I387da141ebade4fc4d2f3c0a2b6aa5aaea091c0c
2015-02-26 20:48:40 -08:00
James Zern
099049efb3 tools_common.sh: use $$ in VPX_TEST_OUTPUT_DIR
a bit simpler than invoking awk for rand()

Change-Id: I36ac474708f7bf0157ae59b882c2a9f69b0aaf41
2015-02-26 18:30:24 -08:00
James Zern
f1e0183c81 Merge "tools_common.sh: add directory name to error output" 2015-02-26 15:54:41 -08:00
Marco
c3f7bb16b4 Fix arithmetic overflow warnings.
Change-Id: Ib85b5bc135aa0907a76b8c74faafe577e27d014f
2015-02-26 15:27:21 -08:00
Jingning Han
8ec22296b3 Fix high bit-depth loop-filter sse2 compiling issue - part 3
Change-Id: Idb14b9a285f8098126f967c5e2750221d6a58f69
2015-02-26 15:21:22 -08:00
Yaowu Xu
776a6cfd9e Merge "Fix the encoder to support profile change" 2015-02-26 15:13:28 -08:00
Yaowu Xu
d973fbb1de Merge "Correct parameter order in a function call" 2015-02-26 15:13:06 -08:00
James Zern
28eebf3e36 Merge "tests: add a shorter 720p test clip" 2015-02-26 14:51:44 -08:00
Jingning Han
73a00d3219 Refactor integral projection based motion estimation
Support variable block size integral projection based motion
estimation.

Change-Id: Iee6d65e44df4480aa13fb7b84b9c91914b89caa1
2015-02-26 14:48:59 -08:00
James Zern
2ebe0aee11 tools_common.sh: add directory name to error output
+ add a helper function to reduce the duplication

this is a bit clearer when the environment variable is set, but the
directory is missing

Change-Id: I08f9b56122b5741bb40a5f795f7f82f5b49f1047
2015-02-26 12:57:30 -08:00
Jingning Han
14ff1cb74a Fix high bit-depth loop-filter sse2 compiling issue - part 2
Change-Id: I6728b69bb3dff1daa64ff7142f691e80a089f1c4
2015-02-26 12:41:19 -08:00
Yaowu Xu
754bbcfdc8 Fix the encoder to support profile change
Change-Id: Iefb928ad1174e274409facfb44f80265ff0f7683
2015-02-26 11:41:01 -08:00
Yaowu Xu
387bb8bed7 Correct parameter order in a function call
Change-Id: Ibd87db1c4371edcbe193d39df2fdc07d3842c21a
2015-02-26 11:39:57 -08:00
paulwilkins
e2b4ef1313 Merge "Account for rate error in GF group Q calculation." 2015-02-26 08:20:08 -08:00
James Zern
7839d0382a tests: add a shorter 720p test clip
niklas_1280_720_30.y4m 60 frames @ 30fps
only a small number of frames are being used; this reduces the test data
download size in non-perf-test cases by >500M.
retain niklas_1280_720_30.yuv for encode+decode perf tests

Change-Id: I56b3433104acd462f952a9554280de5a3ec0b6d2
2015-02-25 19:12:03 -08:00
Alex Converse
6ea83fdfcb Make SVC compatible with external resize.
Fixes https://code.google.com/p/webm/issues/detail?id=943

Change-Id: I6177bf6ab6b31a22d2652732f579b8aed3f28887
2015-02-25 14:05:51 -08:00
Jingning Han
3e1d14a6ce Merge "Motion compensated reference refinement" 2015-02-25 12:33:09 -08:00
Jingning Han
4c5a4efc38 Merge "Re-distribute hierarchical vector match pattern" 2015-02-25 10:33:25 -08:00
Jingning Han
b7050c0be3 Motion compensated reference refinement
This commit applies one-step refinement search to the resulting
motion vector of the integral projectiion based motion estimation,
per 64x64 block. It improves the coding performance of speed -6.

pedestrian 1080p 500 kbps
51735 b/f, 36.794 dB, 16044 ms ->
51382 b/f, 36.793 dB, 16282 ms

cloud 1080p 500 kbps
24081 b/f, 37.988 dB, 14016 ms ->
23597 b/f, 38.076 dB, 12774 ms

vidyo1 720p 1000 kbps
16552 b/f, 40.514 dB, 8279 ms ->
16553 b/f, 40.543 dB, 8510 ms

The rtc set compression performance is improved by 0.5%.

Change-Id: I3d09bea2caf58b2a4f3b38aa26fffafcbe9a2c17
2015-02-25 10:32:09 -08:00
Yaowu Xu
bcdac7b4be Merge "Fix a trivial memory leak" 2015-02-25 10:26:44 -08:00
Yunqing Wang
419ff1352e Merge "Fix ssse3 quantize_fp functions while skip=1" 2015-02-25 10:10:10 -08:00
Jingning Han
2080e4b206 Fix high bit-depth loop-filter sse2 compiling issue - part 1
The intrinsic statement _mm_subs_epi16() should take immediate.
Feeding variable as its input argument will cause compile failure
in older version gcc.

Change-Id: I6a71efcc8d3b16b84715e0a9bcfa818494eea3f4
2015-02-25 09:59:50 -08:00
Jingning Han
0f57d0a682 Merge "Fix fwd transform sse2 build issue on older gcc version" 2015-02-25 09:32:00 -08:00
Jingning Han
e47033319d Fix fwd transform sse2 build issue on older gcc version
Change-Id: I3e0e53d129552babf29e6c5d047483733983973c
2015-02-24 23:25:21 -08:00
James Zern
044bfa3949 Merge "vp9_loopfilter: quiet integer constant size warnings" 2015-02-24 19:09:32 -08:00
Hanno Böck
b5d0a20170 Fix a trivial memory leak
Change-Id: I1108d720bb3b30586b128dd01ce608e1e62b1756
2015-02-24 16:06:52 -08:00
Jingning Han
5b87f1bb5a Fix high bit-depth loop-filter sse2 compiling issue - part 4
Change-Id: I39f56f60425836f2e1ec07da71edd4810a4c78bb
2015-02-24 14:50:30 -08:00
Jingning Han
f87e315e1e Re-distribute hierarchical vector match pattern
This commit modifies the hierarchical vector match patter. It
avoids repeated SAD computation at same points. The function
vp9_vector_sad_sse2 is called 12 times per 64x64 block, instead
of 15 times as before. The effective coverage remains the same.

Change-Id: I91ad9d27d40db8963c907d02af84e10702136994
2015-02-24 11:48:38 -08:00
James Zern
279d350f0b vp9_loopfilter: quiet integer constant size warnings
mark uint64_t constants with 'ULL'

Change-Id: I7648e161b4004fba35e1fa7ab79e34cc19e39716
2015-02-24 11:13:16 -08:00