Commit Graph

4290 Commits

Author SHA1 Message Date
sijchen
8b1206001c Merge pull request #2355 from pra85/patch-1
Fix a typo
2016-02-12 16:42:02 -08:00
sijchen
2b9a250fbd include the free-ing of pointer into FreeDqLayer 2016-02-12 16:23:57 -08:00
Prayag Verma
2d378b9db8 Fix a typo
`Availabe` → `Available`
2016-02-11 12:04:58 +05:30
sijchen
a1a3873a62 improve the code structure 2016-02-10 22:25:41 -08:00
sijchen
43fdf74fa6 fix a miss of assigning and remove an unused line 2016-02-10 21:54:53 -08:00
sijchen
914302a462 avoid memory problem if mem alloc failed in the middle of InitDqLayer 2016-02-10 21:54:53 -08:00
sijchen
aaa25160ec Merge pull request #2353 from saamas/encoder-x86-dct-opt2
[Encoder] x86 DCT optimizations
2016-02-08 15:00:12 -08:00
sijchen
e5e7013b73 Merge pull request #2350 from sijchen/th00
[Common] Add sink to IWelsTask
2016-02-08 14:59:38 -08:00
HaiboZhu
ad9ca3824f Merge pull request #2354 from ruil2/remove_trace
fix error width and height issue
2016-02-04 12:00:20 +08:00
Karina
ae508b9724 fix error width and height issue 2016-02-04 10:25:03 +08:00
sijchen
f5fd7420a9 Merge pull request #2351 from huili2/fix_width_height_enc_constraint
fix frame size constraints for width and height
2016-02-02 16:31:05 -08:00
sijchen
fb901269ef Merge pull request #2352 from ruil2/remove_trace
remove trace
2016-02-02 16:30:50 -08:00
Sindre Aamås
db9fa9154c Update README.md nasm version requirement
Version 2.10.06 has some RIP-relative relocation fixes for macho64
that are needed to generate correct code on 64-bit OS X with recent
code changes.
2016-02-02 17:22:49 +01:00
Sindre Aamås
c8c74903f8 [Encoder] Add single-block AVX2 4x4 DCT/IDCT routines
We do four blocks at a time when possible, but need to handle
single blocks at a time for intra prediction.

~3.15x speedup over MMX for the DCT on Haswell.
~2.94x speedup over MMX for the IDCT on Haswell.

Returns diminish with increasing vector length because a larger
proportion of the time is spent on load/store/shuffling.
2016-02-02 17:22:49 +01:00
Sindre Aamås
f90960983c [Encoder] Add single-block SSE2 4x4 DCT/IDCT routines
We do four blocks at a time when possible, but need to handle
single blocks at a time for intra prediction.

~2.31x speedup over MMX for the DCT on Haswell.
~1.92x speedup over MMX for the IDCT on Haswell.
2016-02-02 17:22:48 +01:00
Sindre Aamås
7486de2844 [Encoder] AVX2 DCT tweaks
Do some shuffling in load/store unpack/pack to save some
work in horizontal DCTs.

Use a few 128-bit broadcasts to compact data vectors a bit.

~1.04x speedup for the DCT case on Haswell.
~1.12x speedup for the IDCT case on Haswell.
2016-02-02 17:22:48 +01:00
Karina
2d4cbcf060 remove trace 2016-02-02 17:34:59 +08:00
unknown
3873addc3d fix frame size constraints for width and height 2016-02-01 15:55:53 +08:00
HaiboZhu
1030820ec4 Merge pull request #2342 from sijchen/enh_ut_tem
[UT] correct and enhance the ut template and trace improvement
2016-02-01 09:08:05 +08:00
zhilwang
c420d72443 Merge pull request #2341 from saamas/encoder-x86-dct-opt
[Encoder] x86 DCT optimizations
2016-01-28 10:33:34 +08:00
HaiboZhu
51f3bbdfde Merge pull request #2345 from shihuade/WP8ScriptUpdate
update build script for wp8 under multi-vc version
2016-01-24 07:56:23 +08:00
Forrest Shi
21402ca419 update build script for wp8 under multi-vc version 2016-01-23 16:56:53 +08:00
HaiboZhu
3174e2a220 Merge pull request #2344 from mstorsjo/cleanup-map
Ignore the MSVC generated map file, remove it on make clean
2016-01-22 09:45:57 +08:00
Martin Storsjö
fa52fbfc9d Ignore the MSVC generated map file, remove it on make clean 2016-01-21 10:23:34 +02:00
HaiboZhu
77c40e09e0 Merge pull request #2343 from HaiboZhu/Add_map_file_msvc
Generate map file for msvc build
2016-01-21 14:34:50 +08:00
sijchen
ef329e33c3 add simulcastAvc setting in setting trace 2016-01-20 14:24:16 -08:00
sijchen
47e3f4c45c correct and enhance the ut template 2016-01-19 17:16:39 -08:00
Sindre Aamås
cc8d541432 [UT] Utilize DCT function pointer typedefs 2016-01-19 22:00:24 +01:00
Sindre Aamås
e22d731f26 [Encoder] yasm-compatible vinserti128 syntax in DCT asm 2016-01-19 21:48:23 +01:00
Sindre Aamås
a45c10cf91 [UT] Only run AVX2 tests if host supports AVX2 2016-01-19 14:27:46 +01:00
Sindre Aamås
144ff0fd51 [Encoder] SSE2 4x4 IDCT optimizations
Use a combination of instruction types that distributes more
evenly across execution ports on common architectures.

Do the horizontal IDCT without transposing back and forth.

Minor tweaks.

~1.14x faster on Haswell. Should be faster on other architectures
as well.
2016-01-19 13:12:29 +01:00
Sindre Aamås
991e344d8c [Encoder] SSE2 4x4 DCT optimizations
Use a combination of instruction types that distributes more
evenly across execution ports on common architectures.

Do the horizontal DCT without transposing back and forth.

Minor tweaks.

~1.54x faster on Haswell. Should be faster on other architectures
as well.
2016-01-19 13:12:28 +01:00
Sindre Aamås
3088d96978 [Encoder] Add an AVX2 4x4 IDCT implementation
~2.03x faster on Haswell as compared to the SSE2 version.
2016-01-19 13:12:28 +01:00
Sindre Aamås
b267163f10 [Encoder] Add an AVX2 4x4 DCT implementation
~2.52x faster on Haswell as compared to the SSE2 version.
2016-01-19 13:12:28 +01:00
Sindre Aamås
b9adbcf37c [UT] Add missing SSE2 4x4 IDCT test
IDCT input is defined in such a way that the intermediate values
cannot legally overflow an int16_t. The use of random values
as input causes such overflows. This results in implementation-
dependent output depending on which type is used to hold
intermediate results. Use a template for the test reference
implementation to test implementations with different
intermediate representation.
2016-01-19 13:12:28 +01:00
Sindre Aamås
8764231784 [UT] Improve DCT tests
Initialize input arrays with different random values.

Otherwise, the input to the DCT routines is effectively
all zero values after taking the difference.

Reduce duplication.
2016-01-19 13:12:28 +01:00
Sindre Aamås
7739184dfd Update nasm requirement in README.md
We need version 2.10 or above for AVX2 support.
2016-01-19 13:12:28 +01:00
Sindre Aamås
496de8bf09 Use dist: trusty with travis
Trusty has a newer nasm version with AVX2 support.
2016-01-19 12:10:39 +01:00
Haibo Zhu
3206010a89 Generate map file for msvc build 2016-01-19 17:03:50 +08:00
HaiboZhu
21c1c02441 Merge pull request #2334 from sijchen/fix_ut
[UT] fix the prob in case that the task uID is too big
2016-01-19 15:39:17 +08:00
HaiboZhu
8eb4de10a2 Merge pull request #2337 from HaiboZhu/Add_Protection_wrong_API_call
Add protection for wrong API call without initialize
2016-01-19 13:42:49 +08:00
HaiboZhu
5e3e975ffb Merge pull request #2331 from ruil2/return_value
add return value judgment
2016-01-19 12:25:10 +08:00
Haibo Zhu
6d7bd2daf4 Add protection for wrong API call without initialize 2016-01-19 12:00:54 +08:00
huili2
91fa9fad63 Merge pull request #2335 from mstorsjo/fix-msvc-warnings
Avoid warnings in MSVC about implicitly casting floats to integers
2016-01-18 08:48:15 +08:00
Martin Storsjö
fbe35cffca Avoid warnings in MSVC about implicitly casting floats to integers 2016-01-16 11:10:25 +02:00
sijchen
d46cd07511 fix the prob in case that the task uID is too big 2016-01-15 16:06:09 -08:00
Karina
559e786fa4 add return value judgment 2016-01-15 10:30:41 +08:00
HaiboZhu
d11f12db54 Merge pull request #2330 from ruil2/mt_build_1
fix build issue when some macro turn on
2016-01-15 09:28:07 +08:00
HaiboZhu
67f925674a Merge pull request #2329 from ruil2/layer4
using independent encoder control logic for SAVC case
2016-01-15 09:27:58 +08:00
sijchen
5eb18b101e change the output way of debug trace 2016-01-13 22:13:43 -08:00