Martin Storsjö
27d8370847
Makefile: Generate dependency information implicitly while compiling
...
This updates the dependecy information on each successive recompile.
When building with MSVC, dependency information is generated with
a separate command just like before, but done together with
compiling each object file. (This is quite similar to how ffmpeg does
the same.)
This avoids the serial dependency generation step. In slow
environments (in particular if using MSVC) it could take a notable
amount of time; this can now all be done in parallel.
In one example, this reduces the time for a full build from clean
with MSVC (wrapped in wine) from 23 seconds down to 9 seconds,
thanks to parallelism. (For non-parallel builds, it doesn't make
much of a difference.)
2025-03-11 22:22:24 +02:00
Xiwei Gu
5a61afdbf1
loongarch: Add checkasm_call
2024-03-21 09:18:00 +08:00
David Chen
c1c9931dc8
Improve pixel-a.S Performance by Using SVE/SVE2
...
Imporve the performance of NEON functions of aarch64/pixel-a.S
by using the SVE/SVE2 instruction set. Below, the specific functions
are listed together with the improved performance results.
Command executed: ./checkasm8 --bench=ssd
Testbed: Alibaba g8y instance based on Yitian 710 CPU
Results:
ssd_4x4_c: 235
ssd_4x4_neon: 226
ssd_4x4_sve: 151
ssd_4x8_c: 409
ssd_4x8_neon: 363
ssd_4x8_sve: 201
ssd_4x16_c: 781
ssd_4x16_neon: 653
ssd_4x16_sve: 313
ssd_8x4_c: 402
ssd_8x4_neon: 192
ssd_8x4_sve: 192
ssd_8x8_c: 728
ssd_8x8_neon: 275
ssd_8x8_sve: 275
Command executed: ./checkasm10 --bench=ssd
Testbed: Alibaba g8y instance based on Yitian 710 CPU
Results:
ssd_4x4_c: 256
ssd_4x4_neon: 226
ssd_4x4_sve: 153
ssd_4x8_c: 460
ssd_4x8_neon: 369
ssd_4x8_sve: 215
ssd_4x16_c: 852
ssd_4x16_neon: 651
ssd_4x16_sve: 340
Command executed: ./checkasm8 --bench=ssd
Testbed: AWS Graviton3
Results:
ssd_4x4_c: 295
ssd_4x4_neon: 288
ssd_4x4_sve: 228
ssd_4x8_c: 454
ssd_4x8_neon: 431
ssd_4x8_sve: 294
ssd_4x16_c: 779
ssd_4x16_neon: 631
ssd_4x16_sve: 438
ssd_8x4_c: 463
ssd_8x4_neon: 247
ssd_8x4_sve: 246
ssd_8x8_c: 781
ssd_8x8_neon: 413
ssd_8x8_sve: 353
Command executed: ./checkasm10 --bench=ssd
Testbed: AWS Graviton3
Results:
ssd_4x4_c: 322
ssd_4x4_neon: 335
ssd_4x4_sve: 240
ssd_4x8_c: 522
ssd_4x8_neon: 448
ssd_4x8_sve: 294
ssd_4x16_c: 832
ssd_4x16_neon: 603
ssd_4x16_sve: 440
Command executed: ./checkasm8 --bench=sa8d
Testbed: Alibaba g8y instance based on Yitian 710 CPU
Results:
sa8d_8x8_c: 2103
sa8d_8x8_neon: 619
sa8d_8x8_sve: 617
Command executed: ./checkasm8 --bench=sa8d
Testbed: AWS Graviton3
Results:
sa8d_8x8_c: 2021
sa8d_8x8_neon: 597
sa8d_8x8_sve: 580
Command executed: ./checkasm8 --bench=var
Testbed: Alibaba g8y instance based on Yitian 710 CPU
Results:
var_8x8_c: 595
var_8x8_neon: 262
var_8x8_sve: 262
var_8x16_c: 1193
var_8x16_neon: 435
var_8x16_sve: 419
Command executed: ./checkasm8 --bench=var
Testbed: AWS Graviton3
Results:
var_8x8_c: 616
var_8x8_neon: 229
var_8x8_sve: 222
var_8x16_c: 1207
var_8x16_neon: 399
var_8x16_sve: 389
Command executed: ./checkasm8 --bench=hadamard_ac
Testbed: Alibaba g8y instance based on Yitian 710 CPU
Results:
hadamard_ac_8x8_c: 2330
hadamard_ac_8x8_neon: 635
hadamard_ac_8x8_sve: 635
hadamard_ac_8x16_c: 4500
hadamard_ac_8x16_neon: 1152
hadamard_ac_8x16_sve: 1151
hadamard_ac_16x8_c: 4499
hadamard_ac_16x8_neon: 1151
hadamard_ac_16x8_sve: 1150
hadamard_ac_16x16_c: 8812
hadamard_ac_16x16_neon: 2187
hadamard_ac_16x16_sve: 2186
Command executed: ./checkasm8 --bench=hadamard_ac
Testbed: AWS Graviton3
Results:
hadamard_ac_8x8_c: 2266
hadamard_ac_8x8_neon: 517
hadamard_ac_8x8_sve: 513
hadamard_ac_8x16_c: 4444
hadamard_ac_8x16_neon: 867
hadamard_ac_8x16_sve: 849
hadamard_ac_16x8_c: 4443
hadamard_ac_16x8_neon: 880
hadamard_ac_16x8_sve: 868
hadamard_ac_16x16_c: 8595
hadamard_ac_16x16_neon: 1656
hadamard_ac_16x16_sve: 1622
2023-11-23 19:01:29 +02:00
David Chen
06dcf3f9cd
Improve mc-a.S Performance by Using SVE/SVE2
...
Imporve the performance of NEON functions of aarch64/mc-a.S
by using the SVE/SVE2 instruction set. Below, the specific functions
are listed together with the improved performance results.
Command executed: ./checkasm8 --bench=avg
Testbed: Alibaba g8y instance based on Yitian 710 CPU
Results:
avg_4x2_c: 274
avg_4x2_neon: 215
avg_4x2_sve: 171
avg_4x4_c: 461
avg_4x4_neon: 343
avg_4x4_sve: 225
avg_4x8_c: 806
avg_4x8_neon: 619
avg_4x8_sve: 334
avg_4x16_c: 1523
avg_4x16_neon: 1168
avg_4x16_sve: 558
Command executed: ./checkasm8 --bench=avg
Testbed: AWS Graviton3
Results:
avg_4x2_c: 267
avg_4x2_neon: 213
avg_4x2_sve: 167
avg_4x4_c: 467
avg_4x4_neon: 350
avg_4x4_sve: 221
avg_4x8_c: 784
avg_4x8_neon: 624
avg_4x8_sve: 302
avg_4x16_c: 1445
avg_4x16_neon: 1182
avg_4x16_sve: 485
2023-11-23 08:24:16 +02:00
David Chen
5ad5e5d8f1
Improve deblock-a.S Performance by Using SVE/SVE2
...
Imporve the performance of NEON functions of aarch64/deblock-a.S
by using the SVE/SVE2 instruction set. Below, the specific functions
are listed together with the improved performance results.
Command executed: ./checkasm8 --bench=deblock
Testbed: Alibaba g8y instance based on Yitian 710 CPU
Results:
deblock_chroma[1]_c: 735
deblock_chroma[1]_neon: 427
deblock_chroma[1]_sve: 353
Command executed: ./checkasm8 --bench=deblock
Testbed: AWS Graviton3
Results:
deblock_chroma[1]_c: 719
deblock_chroma[1]_neon: 442
deblock_chroma[1]_sve: 345
2023-11-20 08:03:54 +02:00
David Chen
5c382660fb
Improve dct-a.S Performance by Using SVE/SVE2
...
Imporve the performance of NEON functions of aarch64/dct-a.S
by using the SVE/SVE2 instruction set. Below, the specific functions
are listed together with the improved performance results.
Command executed: ./checkasm8 --bench=sub
Testbed: Alibaba g8y instance based on Yitian 710 CPU
Results:
sub4x4_dct_c: 528
sub4x4_dct_neon: 322
sub4x4_dct_sve: 247
Command executed: ./checkasm8 --bench=sub
Testbed: AWS Graviton3
Results:
sub4x4_dct_c: 562
sub4x4_dct_neon: 376
sub4x4_dct_sve: 255
Command executed: ./checkasm8 --bench=add
Testbed: Alibaba g8y instance based on Yitian 710 CPU
Results:
add4x4_idct_c: 698
add4x4_idct_neon: 386
add4x4_idct_sve2: 345
Command executed: ./checkasm8 --bench=zigzag
Testbed: Alibaba g8y instance based on Yitian 710 CPU
Results:
zigzag_interleave_8x8_cavlc_frame_c: 582
zigzag_interleave_8x8_cavlc_frame_neon: 273
zigzag_interleave_8x8_cavlc_frame_sve: 257
Command executed: ./checkasm8 --bench=zigzag
Testbed: AWS Graviton3
Results:
zigzag_interleave_8x8_cavlc_frame_c: 587
zigzag_interleave_8x8_cavlc_frame_neon: 257
zigzag_interleave_8x8_cavlc_frame_sve: 249
2023-11-20 08:03:51 +02:00
Loongson Technology Corporation Limited
5f84d403fc
loongarch: Improve the performance of pixel series functions
...
Performance has improved from 11.27fps to 20.50fps by using the
following command:
./configure && make -j5
./x264 --threads 4 -o out.mkv yuv_1920x1080.yuv
functions performance performance
(c) (asm)
hadamard_ac_8x8 117 21
hadamard_ac_8x16 236 42
hadamard_ac_16x8 235 31
hadamard_ac_16x16 473 60
intra_sad_x3_4x4 50 21
intra_sad_x3_8x8 183 34
intra_sad_x3_8x8c 181 36
intra_sad_x3_16x16 643 68
intra_satd_x3_4x4 83 61
intra_satd_x3_8x8c 344 81
intra_satd_x3_16x16 1389 136
sa8d_8x8 97 19
sa8d_16x16 394 68
satd_4x4 24 8
satd_4x8 51 11
satd_4x16 103 24
satd_8x4 52 9
satd_8x8 108 12
satd_8x16 218 24
satd_16x8 218 19
satd_16x16 437 38
ssd_4x4 10 5
ssd_4x8 24 8
ssd_4x16 42 15
ssd_8x4 23 5
ssd_8x8 37 9
ssd_8x16 74 17
ssd_16x8 72 11
ssd_16x16 140 23
var2_8x8 91 37
var2_8x16 176 66
var_8x8 50 15
var_8x16 65 29
var_16x16 132 56
Signed-off-by: Hecai Yuan <yuanhecai@loongson.cn >
2023-10-12 17:28:23 +08:00
Loongson Technology Corporation Limited
fa7f1fce7f
loongarch: Improve the performance of dct series functions
...
Performance has improved from 10.53fps to 11.27fps.
Tested with following command:
./configure && make -j5
./x264 --threads 4 -o out.mkv yuv_1920x1080.yuv
functions performance performance
(c) (asm)
add4x4_idct 34 9
add8x8_idct 139 31
add8x8_idct8 269 39
add8x8_idct_dc 67 7
add16x16_idct 564 123
add16x16_idct_dc 260 22
dct4x4dc 18 10
idct4x4dc 16 9
sub4x4_dct 25 7
sub8x8_dct 101 12
sub8x8_dct8 160 25
sub16x16_dct 403 52
sub16x16_dct8 646 68
zigzag_scan_4x4_frame 4 1
Signed-off-by: zhoupeng <zhoupeng@loongson.cn >
2023-10-12 17:28:15 +08:00
Loongson Technology Corporation Limited
981c8f25a2
loongarch: Improve the performance of mc series functions
...
Performance has improved from 6.78fps to 10.53fps.
Tested with following command:
./configure && make -j5
./x264 --threads 4 -o out.mkv yuv_1920x1080.yuv
functions performance performance
(c) (asm)
avg_4x2 16 5
avg_4x4 30 6
avg_4x8 63 10
avg_4x16 124 19
avg_8x4 60 6
avg_8x8 119 10
avg_8x16 233 19
avg_16x8 229 21
avg_16x16 451 41
get_ref_4x4 30 9
get_ref_4x8 52 11
get_ref_8x4 45 9
get_ref_8x8 80 11
get_ref_8x16 156 16
get_ref_12x10 137 13
get_ref_16x8 147 11
get_ref_16x16 282 16
get_ref_20x18 278 22
hpel_filter 5163 686
lowres_init 5440 286
mc_chroma_2x2 24 7
mc_chroma_2x4 42 10
mc_chroma_4x2 41 7
mc_chroma_4x4 75 10
mc_chroma_4x8 144 19
mc_chroma_8x4 137 15
mc_chroma_8x8 269 28
mc_luma_4x4 30 10
mc_luma_4x8 52 12
mc_luma_8x4 44 10
mc_luma_8x8 80 13
mc_luma_8x16 156 19
mc_luma_16x8 147 13
mc_luma_16x16 281 19
memcpy_aligned 14 9
memzero_aligned 24 4
offsetadd_w4 79 18
offsetadd_w8 142 18
offsetadd_w16 277 25
offsetadd_w20 1118 38
offsetsub_w4 75 18
offsetsub_w8 140 18
offsetsub_w16 265 25
offsetsub_w20 989 39
weight_w4 111 19
weight_w8 205 19
weight_w16 396 29
weight_w20 1143 45
deinterleave_chroma_fdec 76 9
deinterleave_chroma_fenc 86 9
plane_copy_deinterleave 733 90
plane_copy_interleave 791 245
store_interleave_chroma 82 12
Signed-off-by: Xiwei Gu <guxiwei-hf@loongson.cn >
2023-10-12 17:27:40 +08:00
Loongson Technology Corporation Limited
65e7bac50d
loongarch: Improve the performance of quant series functions
...
Performance has improved from 6.34fps to 6.78fps.
Tested with following command:
./configure && make -j5
./x264 --threads 4 -o out.mkv yuv_1920x1080.yuv
functions performance performance
(c) (asm)
coeff_last15 3 2
coeff_last16 3 1
coeff_last64 42 6
decimate_score15 8 12
decimate_score16 8 11
decimate_score64 61 43
dequant_4x4_cqm 16 5
dequant_4x4_dc_cqm 13 5
dequant_4x4_dc_flat 13 5
dequant_4x4_flat 16 5
dequant_8x8_cqm 71 9
dequant_8x8_flat 71 9
Signed-off-by: Shiyou Yin <yinshiyou-hf@loongson.cn >
2023-10-10 09:15:32 +08:00
Loongson Technology Corporation Limited
d8ed272a19
loongarch: Improve the performance of predict series functions
...
Performance has improved from 6.32fps to 6.34fps.
Tested with following command:
./configure && make -j5
./x264 --threads 4 -o out.mkv yuv_1920x1080.yuv
functions performance performance
(c) (asm)
intra_predict_4x4_dc 3 2
intra_predict_4x4_dc8 1 1
intra_predict_4x4_dcl 2 1
intra_predict_4x4_dct 2 1
intra_predict_4x4_ddl 7 2
intra_predict_4x4_h 2 1
intra_predict_4x4_v 1 1
intra_predict_8x8_dc 8 2
intra_predict_8x8_dc8 1 1
intra_predict_8x8_dcl 5 2
intra_predict_8x8_dct 5 2
intra_predict_8x8_ddl 27 3
intra_predict_8x8_ddr 26 3
intra_predict_8x8_h 4 2
intra_predict_8x8_v 3 1
intra_predict_8x8_vl 29 3
intra_predict_8x8_vr 31 4
intra_predict_8x8c_dc 8 5
intra_predict_8x8c_dc8 1 1
intra_predict_8x8c_dcl 5 3
intra_predict_8x8c_dct 5 3
intra_predict_8x8c_h 4 2
intra_predict_8x8c_p 58 30
intra_predict_8x8c_v 4 1
intra_predict_16x16_dc 32 8
intra_predict_16x16_dc8 9 4
intra_predict_16x16_dcl 26 6
intra_predict_16x16_dct 26 6
intra_predict_16x16_h 23 7
intra_predict_16x16_p 182 44
intra_predict_16x16_v 22 4
Signed-off-by: Xiwei Gu <guxiwei-hf@loongson.cn >
2023-10-10 09:13:58 +08:00
Loongson Technology Corporation Limited
00b8e3b9cd
loongarch: Improve the performance of sad/sad_x3/sad_x4 series functions
...
Performance has improved from 4.92fps to 6.32fps.
Tested with following command:
./configure && make -j5
./x264 --threads 4 -o out.mkv yuv_1920x1080.yuv
functions performance performance
(c) (asm)
sad_4x4 13 3
sad_4x8 26 7
sad_4x16 57 13
sad_8x4 24 3
sad_8x8 54 8
sad_8x16 108 13
sad_16x8 95 8
sad_16x16 189 13
sad_x3_4x4 37 6
sad_x3_4x8 71 13
sad_x3_8x4 70 8
sad_x3_8x8 162 14
sad_x3_8x16 323 25
sad_x3_16x8 279 15
sad_x3_16x16 555 27
sad_x4_4x4 49 8
sad_x4_4x8 95 17
sad_x4_8x4 94 8
sad_x4_8x8 214 16
sad_x4_8x16 429 33
sad_x4_16x8 372 18
sad_x4_16x16 740 34
Signed-off-by: wanglu <wanglu@loongson.cn >
2023-10-10 09:09:52 +08:00
Loongson Technology Corporation Limited
d7d283f634
loongarch: Improve the performance of deblock series functions.
...
Performance has improved from 4.76fps to 4.92fps.
Tested with following command:
./configure && make -j5
./x264 --threads 4 -o out.mkv yuv_1920x1080.yuv
functions performance performance
(c) (asm)
deblock_luma[0] 79 39
deblock_luma[1] 91 18
deblock_luma_intra[0] 63 44
deblock_luma_intra[1] 71 18
deblock_strength 104 33
Signed-off-by: Hao Chen <chenhao@loongson.cn >
2023-10-10 09:04:49 +08:00
Loongson Technology Corporation Limited
1ecc51ee97
loongarch: Init LSX/LASX support
...
LSX/LASX is the LOONGARCH 128-bit/256-bit SIMD Architecture.
Signed-off-by: Shiyou Yin <yinshiyou-hf@loongson.cn >
Signed-off-by: Xiwei Gu <guxiwei-hf@loongson.cn >
2023-10-10 09:00:09 +08:00
Sergei Trofimovich
e067ab0b53
Makefile: Add missing dependency of '.depend' on 'oclobj.h'
...
Without the change parallel build occasionally fails as:
$ make --shuffle
...
gcc ... -c common/opencl.c -o common/opencl-8.o ...
common/opencl.c:116:10: fatal error: common/oclobj.h: No such file or directory
116 | #include "common/oclobj.h"
| ^~~~~~~~~~~~~~~~~
Best reproducible with `make --shuffle` mode:
https://savannah.gnu.org/bugs/index.php?62100
This happens because `common/oclobj.h` is an autogenerated file.
Normally `.depend` would contain this autogenerated dependency.
But nothing forces `common/oclobj.h` to be generated.
The change moves dependency of $(GENERATED) from final binaries
to `.depend` itself:
.depend: $(GENERATED)
2022-09-19 22:31:01 +01:00
Claes Nästén
d9a19f0dc7
Makefile: Do not create multiple directories in one go
...
/usr/ucb/bin/install on Solaris does not support creating multiple
directories in one go, issue multiple install commands instead.
2021-12-07 15:51:14 +01:00
Henrik Gramner
35417dcd65
Makefile: Drop the -T argument to install
...
It's not required, and BSD doesn't support it.
2021-01-26 02:21:16 +01:00
Henrik Gramner
7ab4c928ef
Add support for long filenames on Windows 10
2020-09-27 23:32:10 +02:00
Anton Mitrofanov
375cc58822
configure: Add options for bash-completion install
2020-07-14 15:35:11 +02:00
Henrik Gramner
a41d4e2944
cli: Install bash autocomplete during 'make install'
2020-07-02 19:20:21 +02:00
Anton Mitrofanov
0e227c47ce
Fix compilation of fprofiled shared build
2019-11-01 20:49:52 +03:00
Anton Mitrofanov
76c5afc25b
Fix MSVS build with ./configure --enable-shared --system-libx264
2019-07-17 20:19:23 +03:00
Anton Mitrofanov
a615f027ed
Mark explicitly DSO public API symbols and hide all other by -fvisibility=hidden
...
Removes need for -Bsymbolic during linking.
2019-07-17 20:19:23 +03:00
Henrik Gramner
74c051f2c4
cli: Bash autocomplete support
...
Allows for automatic command line completion for both options and values.
Options such as --input-csp and --input-fmt will dynamically retrieve
supported values from libavformat when compiled with lavf support.
Execute 'source tools/bash-autocomplete.sh' in bash to enable.
2019-03-06 22:45:52 +03:00
Diego Biurrun
814e61e88c
Makefile improvements
...
* Coalesce some install recipe lines
* Remove empty addition of GPLed filters
* Install libdir in recipes that directly require it
* Coalesce etags/TAGS rules
* Simplify fprofiled rule
2018-08-06 23:24:12 +02:00
Vittorio Giovara
71ed44c731
Unify 8-bit and 10-bit CLI and libraries
...
Add 'i_bitdepth' to x264_param_t with the corresponding '--output-depth' CLI
option to set the bit depth at runtime.
Drop the 'x264_bit_depth' global variable. Rather than hardcoding it to an
incorrect value, it's preferable to induce a linking failure. If applications
relies on this symbol this will make it more obvious where the problem is.
Add Makefile rules that compiles modules with different bit depths. Assembly
on x86 is prefixed with the 'private_prefix' define, while all other archs
modify their function prefix internally.
Templatize the main C library, x86/x86_64 assembly, ARM assembly, AARCH64
assembly, PowerPC assembly, and MIPS assembly.
The depth and cache CLI filters heavily depend on bit depth size, so they
need to be duplicated for each value. This means having to rename these
filters, and adjust the callers to use the right version.
Unfortunately the threaded input CLI module inherits a common.h dependency
(input/frame -> common/threadpool -> common/frame -> common/common) which
is extremely complicated to address in a sensible way. Instead duplicate
the module and select the appropriate one at run time.
Each bitdepth needs different checkasm compilation rules, so split the main
checkasm target into two executables.
2017-12-24 23:47:24 +03:00
Vittorio Giovara
a2d2621cc5
Recursively delete conftest files
...
On OS X, one of the conftest files might be a directory named `conftest.dSYM`.
2017-05-19 16:12:15 +02:00
Martin Storsjö
35d32d09e1
checkasm: arm: Check register clobbering
...
Cast the function pointer to a different type signature, to
be able to use uint64_t as return type (instead of intptr_t) for
those calls that require it.
Use two separate functions, depending on whether neon is available.
2015-10-11 18:44:54 +02:00
Martin Storsjö
59683a97b5
checkasm: aarch64: Check register clobbering
...
Disable this on iOS, since it has got a slightly different ABI
for vararg parameters.
2015-10-11 18:44:54 +02:00
Martin Storsjö
ceee976bde
arm: Add x264_nal_escape_neon
...
checkasm timing Cortex-A7 A8 A9
nal_escape_c 852758 879566 655497
nal_escape_neon 376831 450678 371673
2015-10-11 18:44:54 +02:00
Rishikesh More
145f3a6275
mips: MSA quant optimizations
...
Signed-off-by: Rishikesh More <rishikesh.more@imgtec.com >
2015-07-25 22:52:55 +02:00
Rishikesh More
16395d2b6f
mips: MSA predict optimizations
...
Signed-off-by: Rishikesh More <rishikesh.more@imgtec.com >
2015-07-25 22:52:55 +02:00
Rishikesh More
204e1a6023
mips: MSA pixel optimizations
...
Signed-off-by: Rishikesh More <rishikesh.more@imgtec.com >
2015-07-25 22:52:55 +02:00
Rishikesh More
3ce6430eb1
mips: MSA deblock optimizations
...
Signed-off-by: Rishikesh More <rishikesh.more@imgtec.com >
2015-07-25 22:52:55 +02:00
Rishikesh More
57618eead0
mips: MSA dct optimizations
...
Signed-off-by: Rishikesh More <rishikesh.more@imgtec.com >
2015-07-25 22:52:55 +02:00
Rishikesh More
4ebb23aaf4
mips: MSA mc optimizations
...
Signed-off-by: Rishikesh More <rishikesh.more@imgtec.com >
2015-07-25 22:52:55 +02:00
Anton Mitrofanov
8e71b432e5
Update configure for auto detection of system libx264 configuration
2015-02-23 20:09:33 +03:00
Anton Mitrofanov
b77cc09b92
Fix ARCH variable name conflict with BSD ports (bsd.port.mk) read-only variable
2015-02-23 13:34:47 +03:00
Janne Grunau
59b9c252cf
aarch64: cabac_encode_{decision,bypass,terminal}_asm
...
benchmarks on a Nexus 9 (nvidia denver):
101.3 cycles in x264_cabac_encode_decision_c, 67105369 runs, 3495 skips
97.3 cycles in x264_cabac_encode_decision_asm, 67105493 runs, 3371 skips
132.8 cycles in x264_cabac_encode_terminal_c, 1046950 runs, 1626 skips
116.1 cycles in x264_cabac_encode_terminal_asm, 1048424 runs, 152 skips
92.4 cycles in x264_cabac_encode_bypass_c, 16776192 runs, 1024 skips
89.6 cycles in x264_cabac_encode_bypass_asm, 16776453 runs, 763 skips
Cycle counts are not as stable as one would like. The dynamic code
optimisation seems to produce different results for small chnages in a
binary. Repeated runs with the same binary produce stable results
though (ignoring the first run).
2014-12-16 20:40:12 +03:00
Janne Grunau
fa7e9d3d08
aarch64: nal_escape_neon
...
3-4 times faster.
2014-12-16 20:40:10 +03:00
Anton Mitrofanov
9bec6fed6d
libx264 API usage example
2014-10-17 14:25:28 -07:00
Janne Grunau
1343db872b
aarch64: deblocking NEON asm
...
Deblock chroma/luma are based on libav's h264 aarch64 NEON deblocking
filter which was ported by me from the existing ARM NEON asm. No
additional persons to ask for a relicense.
2014-08-26 09:19:23 -07:00
Janne Grunau
3c1fa5d9b2
aarch64: intra predition NEON asm
...
Ported from the ARM NEON asm.
2014-08-26 09:19:23 -07:00
Janne Grunau
556b0e7928
aarch64: motion compensation NEON asm
...
Ported from the ARM NEON asm.
2014-08-26 09:19:22 -07:00
Janne Grunau
6cda439867
aarch64: transform and zigzag NEON asm
...
Ported from the ARM NEON asm.
2014-08-26 09:19:22 -07:00
Janne Grunau
db5c504aa0
aarch64: quantization and level-run NEON asm
...
Ported from the ARM NEON asm.
2014-08-26 09:19:22 -07:00
Janne Grunau
f4a82a5488
aarch64: pixel metrics NEON asm
...
Ported from the ARM NEON asm.
2014-08-26 09:19:21 -07:00
Janne Grunau
943128a527
aarch64: initial build support
2014-08-26 09:19:20 -07:00
Steven Walters
6fbbb5b0c0
MSVS 2013 Update 2 support
...
The first MSVS compiler C99 compliant enough to build x264.
Use `CC=cl ./configure` to compile with it.
2014-07-19 20:53:00 -07:00
Diego Biurrun
cbd8d7b6db
build: Replace cltostr.pl by a shell script
...
This avoids a dependency on Perl to build OpenCL support.
2014-07-19 20:53:00 -07:00