]> git.sesse.net Git - x264/log
x264
9 years agoaarch64: NEON asm for 8x16c intra prediction
Janne Grunau [Wed, 13 Aug 2014 12:30:53 +0000 (13:30 +0100)]
aarch64: NEON asm for 8x16c intra prediction

Between 10% and 40% faster than C.

9 years agoaarch64: NEON asm for decimate_score
Janne Grunau [Tue, 12 Aug 2014 15:26:10 +0000 (17:26 +0200)]
aarch64: NEON asm for decimate_score

decimate_score15 and 16 are 60% faster, decimate_score64 is 4 times
faster than C.

9 years agoaarch64: implement x264_sub8x16_dct_dc_neon
Janne Grunau [Fri, 8 Aug 2014 10:19:35 +0000 (11:19 +0100)]
aarch64: implement x264_sub8x16_dct_dc_neon

4 times faster than C.

9 years agoaarch64: implement x264_pixel_asd8_neon
Janne Grunau [Thu, 7 Aug 2014 17:46:07 +0000 (19:46 +0200)]
aarch64: implement x264_pixel_asd8_neon

7 times faster than C.

9 years agoaarch64: NEON asm for 4x16 sad, satd and ssd
Janne Grunau [Thu, 7 Aug 2014 14:49:12 +0000 (16:49 +0200)]
aarch64: NEON asm for 4x16 sad, satd and ssd

pixel_sad_4x16_neon: 33% faster than C
pixel_satd_4x16_neon: 5 times faster
pixel_ssd_4x16_neon:  4 times faster

9 years agoaarch64: implement x264_pixel_ssd_nv12_core_neon
Janne Grunau [Wed, 30 Jul 2014 14:48:25 +0000 (15:48 +0100)]
aarch64: implement x264_pixel_ssd_nv12_core_neon

13 times faster than C.

9 years agoaarch64: implement x264_pixel_vsad_neon
Janne Grunau [Tue, 29 Jul 2014 17:26:11 +0000 (18:26 +0100)]
aarch64: implement x264_pixel_vsad_neon

35 times faster than C.

9 years agoaarch64: NEON asm for missing x264_zigzag_* functions
Janne Grunau [Tue, 29 Jul 2014 10:06:24 +0000 (11:06 +0100)]
aarch64: NEON asm for missing x264_zigzag_* functions

zigzag_scan_4x4_field_neon, zigzag_sub_4x4_field_neon,
zigzag_sub_4x4ac_field_neon, zigzag_sub_4x4_frame_neon,
igzag_sub_4x4ac_frame_neon more than 2 times faster

zigzag_scan_8x8_frame_neon, zigzag_scan_8x8_field_neon,
zigzag_sub_8x8_field_neon, zigzag_sub_8x8_frame_neon 4-5 times faster

zigzag_interleave_8x8_cavlc_neon 6 times faster

9 years agoaarch64: implement x264_pixel_sa8d_satd_16x16_neon
Janne Grunau [Fri, 25 Jul 2014 10:53:17 +0000 (11:53 +0100)]
aarch64: implement x264_pixel_sa8d_satd_16x16_neon

~20% faster than calling pixel_sa8d_16x16 and pixel_satd_16x16
separately.

9 years agoaarch64: optimize x264_predict_8x8c_dc_left_neon
Janne Grunau [Thu, 14 Aug 2014 21:13:27 +0000 (23:13 +0200)]
aarch64: optimize x264_predict_8x8c_dc_left_neon

25% faster than the previous version.

9 years agox86: Make AVX2 also imply FMA3
Henrik Gramner [Sat, 2 Aug 2014 16:26:18 +0000 (18:26 +0200)]
x86: Make AVX2 also imply FMA3

All CPUs with AVX2 supports FMA3 (but not the other way around).

9 years agoSimplify libx264 API usage example
Anton Mitrofanov [Thu, 13 Nov 2014 19:52:00 +0000 (22:52 +0300)]
Simplify libx264 API usage example

9 years agoAvxSynth: Remove a bunch of unused cruft
Henrik Gramner [Fri, 21 Nov 2014 22:47:20 +0000 (23:47 +0100)]
AvxSynth: Remove a bunch of unused cruft

9 years agoFix bugs/typos in motion compensation and cache_load
Anton Mitrofanov [Wed, 3 Dec 2014 19:36:12 +0000 (22:36 +0300)]
Fix bugs/typos in motion compensation and cache_load

Didn't affect output due to the incorrect values either not being used in the
code path or producing equal results compared to the correct values.

Also deduplicate hpel_ref arrays.

9 years agocheckasm: Fix undefined behavior warnings
Anton Mitrofanov [Sun, 30 Nov 2014 20:39:28 +0000 (23:39 +0300)]
checkasm: Fix undefined behavior warnings

9 years agocheckasm: Fix V210 reporting
Henrik Gramner [Sat, 29 Nov 2014 17:47:52 +0000 (18:47 +0100)]
checkasm: Fix V210 reporting

It would previously report FAILED if any of the earlier plane_copy tests failed.

9 years agoSafety check against malicious high bit-depth input which could cause crash
Anton Mitrofanov [Sun, 12 Oct 2014 17:01:53 +0000 (21:01 +0400)]
Safety check against malicious high bit-depth input which could cause crash

9 years agolibx264 API usage example
Anton Mitrofanov [Sun, 12 Oct 2014 16:45:40 +0000 (20:45 +0400)]
libx264 API usage example

9 years agox86: AVX2 high bit-depth var_16x16
Henrik Gramner [Fri, 17 Oct 2014 19:35:42 +0000 (21:35 +0200)]
x86: AVX2 high bit-depth var_16x16

40->27 cycles on Haswell.

9 years agocheckasm: Serialize read_time() calls on x86
Henrik Gramner [Wed, 8 Oct 2014 20:25:35 +0000 (22:25 +0200)]
checkasm: Serialize read_time() calls on x86

Improves the accuracy of benchmarks, especially in short functions.

To quote the Intel 64 and IA-32 Architectures Software Developer's Manual:
"The RDTSC instruction is not a serializing instruction. It does not necessarily
wait until all previous instructions have been executed before reading the counter.
Similarly, subsequent instructions may begin execution before the read operation
is performed. If software requires RDTSC to be executed only after all previous
instructions have completed locally, it can either use RDTSCP (if the processor
supports that instruction) or execute the sequence LFENCE;RDTSC."

RDTSCP would accomplish the same task, but it's only available since Nehalem.

This change makes SSE2 a requirement to run checkasm.

9 years agoSupport case-independent string options
Vittorio Giovara [Mon, 29 Sep 2014 17:51:30 +0000 (18:51 +0100)]
Support case-independent string options

9 years agoShut up gcc -Wuninitialized warnings
Anton Mitrofanov [Sat, 6 Sep 2014 16:44:49 +0000 (20:44 +0400)]
Shut up gcc -Wuninitialized warnings

9 years agoShut up clang -Wuninitialized warning
Anton Mitrofanov [Fri, 5 Sep 2014 15:43:52 +0000 (19:43 +0400)]
Shut up clang -Wuninitialized warning

9 years agoFix few clang -Wunused-* warnings
Anton Mitrofanov [Fri, 5 Sep 2014 15:30:47 +0000 (19:30 +0400)]
Fix few clang -Wunused-* warnings

9 years agoFix inappropriate instruction use
Anton Mitrofanov [Thu, 28 Aug 2014 16:13:13 +0000 (20:13 +0400)]
Fix inappropriate instruction use

9 years agox264asm: warn when inappropriate instruction used in function with specified cpuflags
Anton Mitrofanov [Thu, 28 Aug 2014 14:38:53 +0000 (18:38 +0400)]
x264asm: warn when inappropriate instruction used in function with specified cpuflags

9 years agoFix VBV with true VFR streams
Anton Mitrofanov [Mon, 1 Sep 2014 21:48:00 +0000 (01:48 +0400)]
Fix VBV with true VFR streams

9 years agoFix VBV
Anton Mitrofanov [Mon, 1 Sep 2014 18:45:00 +0000 (22:45 +0400)]
Fix VBV

9 years agoUpdate to the current lavf API and fix memory leak when using --seek
Anton Mitrofanov [Tue, 29 Jul 2014 23:03:32 +0000 (03:03 +0400)]
Update to the current lavf API and fix memory leak when using --seek

9 years agox86inc: Make INIT_CPUFLAGS support an arbitrary number of cpuflags
Henrik Gramner [Mon, 4 Aug 2014 23:42:55 +0000 (01:42 +0200)]
x86inc: Make INIT_CPUFLAGS support an arbitrary number of cpuflags

Previously there was a limit of two cpuflags.

9 years agox86: Minor pixel_ssim_end4 improvements
Henrik Gramner [Mon, 4 Aug 2014 23:42:51 +0000 (01:42 +0200)]
x86: Minor pixel_ssim_end4 improvements

Reduce the number of vector registers used from 7 to 5.
Eliminate some moves in the AVX implementation.
Avoid bypass delays for transitioning between int and float domains.

9 years agox86: Faster quant_4x4x4
Henrik Gramner [Mon, 4 Aug 2014 23:42:47 +0000 (01:42 +0200)]
x86: Faster quant_4x4x4

Also drop the MMX version instead of doing a bunch of ifdeffery to support it after this change.

9 years agoconfigure: improve cc_check for clang and ICL to not ignore unknown options
Anton Mitrofanov [Sun, 10 Aug 2014 18:46:12 +0000 (22:46 +0400)]
configure: improve cc_check for clang and ICL to not ignore unknown options

9 years agocheckasm: Only call x264_cpu_detect() once
Henrik Gramner [Mon, 4 Aug 2014 23:42:44 +0000 (01:42 +0200)]
checkasm: Only call x264_cpu_detect() once

9 years agoaarch64: deblocking NEON asm
Janne Grunau [Fri, 18 Jul 2014 13:49:10 +0000 (14:49 +0100)]
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.

9 years agoaarch64: intra predition NEON asm
Janne Grunau [Fri, 18 Jul 2014 08:29:35 +0000 (09:29 +0100)]
aarch64: intra predition NEON asm

Ported from the ARM NEON asm.

9 years agoaarch64: motion compensation NEON asm
Janne Grunau [Thu, 17 Jul 2014 14:58:44 +0000 (15:58 +0100)]
aarch64: motion compensation NEON asm

Ported from the ARM NEON asm.

9 years agoaarch64: transform and zigzag NEON asm
Janne Grunau [Wed, 16 Jul 2014 09:03:52 +0000 (10:03 +0100)]
aarch64: transform and zigzag NEON asm

Ported from the ARM NEON asm.

9 years agoaarch64: quantization and level-run NEON asm
Janne Grunau [Tue, 15 Jul 2014 11:57:03 +0000 (12:57 +0100)]
aarch64: quantization and level-run NEON asm

Ported from the ARM NEON asm.

9 years agoaarch64: pixel metrics NEON asm
Janne Grunau [Wed, 19 Mar 2014 12:48:21 +0000 (13:48 +0100)]
aarch64: pixel metrics NEON asm

Ported from the ARM NEON asm.

9 years agoaarch64: add utility functions for asm
Janne Grunau [Fri, 18 Jul 2014 15:44:57 +0000 (17:44 +0200)]
aarch64: add utility functions for asm

9 years agoaarch64: add armv8 and neon cpu flags and test them
Janne Grunau [Wed, 19 Mar 2014 12:45:17 +0000 (13:45 +0100)]
aarch64: add armv8 and neon cpu flags and test them

9 years agoaarch64: initial build support
Janne Grunau [Tue, 18 Mar 2014 21:10:24 +0000 (22:10 +0100)]
aarch64: initial build support

9 years agocheckasm: test zigzag_sub_8x8_{frame,field}
Janne Grunau [Tue, 22 Jul 2014 17:28:27 +0000 (19:28 +0200)]
checkasm: test zigzag_sub_8x8_{frame,field}

9 years agoarm: use long multiplication in mc_weight_w*_neon
Janne Grunau [Sun, 20 Jul 2014 16:29:01 +0000 (18:29 +0200)]
arm: use long multiplication in mc_weight_w*_neon

9-19% faster on a cortex-a9.

9 years agoarm: do not use aligned stores in mc_weight_w4_*neon
Janne Grunau [Sun, 20 Jul 2014 16:24:57 +0000 (18:24 +0200)]
arm: do not use aligned stores in mc_weight_w4_*neon

mc_weight_w4_*neon is also used for width 2 which does not guarantee
4-byte aligned destination. Fixes crashes caused by random memory
corruption.

9 years agocheckasm: add memory clobber to read_time inline asm
Janne Grunau [Wed, 2 Apr 2014 14:31:28 +0000 (16:31 +0200)]
checkasm: add memory clobber to read_time inline asm

The memory acts as compiler barrier preventing aggressive reordering
of read_time calls. gcc 4.8 reorders some of initial read_time calls
after the second when targeting arm.

9 years agoarm: check if the assembler supports the '.func' directive
Janne Grunau [Sun, 20 Jul 2014 11:32:10 +0000 (13:32 +0200)]
arm: check if the assembler supports the '.func' directive

The integrated assembler in llvm trunk (to be released as 3.5) is
otherwise capable enough to assemble the arm asm correctly.

9 years agoarm/ppc: use $CC as default assembler
Janne Grunau [Sun, 20 Jul 2014 11:40:28 +0000 (13:40 +0200)]
arm/ppc: use $CC as default assembler

9 years agoarm: move instructions after '.rept' to separate line
Janne Grunau [Sun, 20 Jul 2014 11:34:27 +0000 (13:34 +0200)]
arm: move instructions after '.rept' to separate line

The gas manual states "Repeat the sequence of lines between the .rept
directive and the next .endr directive ...". GNU as seems to support
instructions on the same line as .rept anyway but the integrated
assembler in llvm trunk (to be released 3.5 in August 2014) does not.

9 years agoarm: set .arch/.fpu from asm.S
Janne Grunau [Sun, 20 Jul 2014 11:08:17 +0000 (13:08 +0200)]
arm: set .arch/.fpu from asm.S

9 years agoarm: do not append CFLAGS to ASFLAGS
Janne Grunau [Sun, 20 Jul 2014 10:55:53 +0000 (12:55 +0200)]
arm: do not append CFLAGS to ASFLAGS

9 years agofilters: fix sizeof mismatch
Tristan Matthews [Thu, 17 Jul 2014 04:03:50 +0000 (00:03 -0400)]
filters: fix sizeof mismatch

9 years agoFix memory leak when using select_every filter
Anton Mitrofanov [Thu, 31 Jul 2014 12:17:32 +0000 (16:17 +0400)]
Fix memory leak when using select_every filter

9 years agoFix cltostr.sh on OS X
Tsukasa OMOTO [Sun, 20 Jul 2014 13:17:11 +0000 (22:17 +0900)]
Fix cltostr.sh on OS X

9 years agoCheck pf_log is set in validate_parameters
Fiona Glaser [Wed, 9 Jul 2014 19:21:33 +0000 (12:21 -0700)]
Check pf_log is set in validate_parameters

Help remind people to call x264_param_default in case they didn't read the
documentation.

9 years agoCheck malloc during frame dumping
Anton Mitrofanov [Wed, 9 Jul 2014 13:17:04 +0000 (17:17 +0400)]
Check malloc during frame dumping

9 years agomp4_lsmash: Use new I/O API instead of deprecated one.
Yusuke Nakamura [Wed, 18 Jun 2014 20:21:29 +0000 (05:21 +0900)]
mp4_lsmash: Use new I/O API instead of deprecated one.

9 years agoRemove meaningless use of abs()
Anton Mitrofanov [Sun, 8 Jun 2014 18:19:46 +0000 (22:19 +0400)]
Remove meaningless use of abs()

9 years agoMSVS 2013 Update 2 support
Steven Walters [Sat, 31 May 2014 14:31:16 +0000 (10:31 -0400)]
MSVS 2013 Update 2 support

The first MSVS compiler C99 compliant enough to build x264.
Use `CC=cl ./configure` to compile with it.

9 years agoconfigure: Add -Wno-maybe-uninitialized to CFLAGS
Diego Biurrun [Tue, 15 Apr 2014 20:54:08 +0000 (22:54 +0200)]
configure: Add -Wno-maybe-uninitialized to CFLAGS

The warnings generated by -Wmaybe-uninitialized are mostly spurious.

9 years agobuild: Replace cltostr.pl by a shell script
Diego Biurrun [Wed, 7 May 2014 11:20:43 +0000 (13:20 +0200)]
build: Replace cltostr.pl by a shell script

This avoids a dependency on Perl to build OpenCL support.

9 years agobuild: Simplify phony target declaration with wildcards
Diego Biurrun [Tue, 15 Apr 2014 21:02:39 +0000 (23:02 +0200)]
build: Simplify phony target declaration with wildcards

Also add etags to list of phony targets.

9 years agoconfigure: Drop workaround for obsolete gcc 4.2 on ARM
Diego Biurrun [Wed, 7 May 2014 10:47:37 +0000 (12:47 +0200)]
configure: Drop workaround for obsolete gcc 4.2 on ARM

9 years agobuild: Add dependencies on x86inc.asm/x86util.asm for all .asm files
Diego Biurrun [Wed, 7 May 2014 19:43:15 +0000 (21:43 +0200)]
build: Add dependencies on x86inc.asm/x86util.asm for all .asm files

This is a little bit overzealous, but errs on the side of caution.
Generating full dependency information is also possible, but slightly
slows down the build as YASM cannot do it as a sideeffect of compilation.

9 years agoDelete all SPARC optimizations
Diego Biurrun [Sun, 27 Apr 2014 19:09:54 +0000 (21:09 +0200)]
Delete all SPARC optimizations

SPARC has been obsolete for a long time and makes little sense as a
H.264 encoding platform.

Also update authors file.

9 years agoconfigure: Don't check for libavcore
Diego Biurrun [Wed, 7 May 2014 10:46:42 +0000 (12:46 +0200)]
configure: Don't check for libavcore

libavcore was a never-released bad idea with a short lifespan.

9 years agobuild: Set all ASFLAGS from within configure
Diego Biurrun [Sun, 27 Apr 2014 21:19:04 +0000 (23:19 +0200)]
build: Set all ASFLAGS from within configure

This is how all other toolchain flags are handled.

9 years agoopencl: Check return value of fread()
Diego Biurrun [Sun, 27 Apr 2014 21:23:49 +0000 (23:23 +0200)]
opencl: Check return value of fread()

common/opencl.c:138:10: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result]

9 years agoDisable i8x8 in lossless
Fiona Glaser [Sun, 20 Jul 2014 03:34:22 +0000 (20:34 -0700)]
Disable i8x8 in lossless

x264's implementation was slightly incorrect due to a vague spec, so some
decoders decoded video incorrectly.

Minimal impact on compression.

9 years agoAVC-Intra: fix compatibility with Avid Transfermanager
Thomas Mundt [Fri, 27 Jun 2014 18:12:06 +0000 (11:12 -0700)]
AVC-Intra: fix compatibility with Avid Transfermanager

9 years agox86: Fix SIGILL in high bit-depth intra_sad_x3_4x4_sse2
Henrik Gramner [Tue, 8 Jul 2014 19:15:32 +0000 (21:15 +0200)]
x86: Fix SIGILL in high bit-depth intra_sad_x3_4x4_sse2

An SSE3 instruction was used in an SSE2 function.

9 years agoFix incorrect row predictor addressing
Anton Mitrofanov [Wed, 9 Jul 2014 13:01:54 +0000 (17:01 +0400)]
Fix incorrect row predictor addressing

Somehow managed to not cause things to explode, but was clearly incorrect.
Might improve VBV in some cases to have this working right.

9 years agoFix b-pyramid MMCO remove for frame-packing==5
Anton Mitrofanov [Sat, 21 Jun 2014 19:52:39 +0000 (23:52 +0400)]
Fix b-pyramid MMCO remove for frame-packing==5

9 years agoFix frame-packing==5 with some decoders
Tal Aloni [Tue, 17 Jun 2014 22:10:56 +0000 (15:10 -0700)]
Fix frame-packing==5 with some decoders

The spec mandates that frame-packing==5 requires the SEI on every frame that
begins a view sequence (i.e. the input frames L0-R0-L1-R1 have 4 view sequences,
but if reordered by the encoder to L0-L1-R0-R1 there are now 2 view sequences).
For simplicity, we write the SEI on every frame.

This fixes frame-packing==5 3D playback on some decoders (PlayStation 3, Sony
W8 series, possibly others).

9 years agoFix pixel_ssim_end4 asm function for x86_64 systems
Anton Mitrofanov [Thu, 22 May 2014 09:27:00 +0000 (13:27 +0400)]
Fix pixel_ssim_end4 asm function for x86_64 systems

10 years agox86: XOP pixel_sad_{x3, x4} high bit-depth
James Almer [Wed, 9 Apr 2014 06:33:06 +0000 (03:33 -0300)]
x86: XOP pixel_sad_{x3, x4} high bit-depth

10 years agox86: XOP pixel_ssd_nv12_core
James Almer [Wed, 9 Apr 2014 06:33:05 +0000 (03:33 -0300)]
x86: XOP pixel_ssd_nv12_core

10 years agox86util: XOP optimized HADDD
James Almer [Wed, 9 Apr 2014 06:33:04 +0000 (03:33 -0300)]
x86util: XOP optimized HADDD

10 years agox86: add missing initialization for high bit-depth sa8d_satd
James Almer [Wed, 9 Apr 2014 06:33:03 +0000 (03:33 -0300)]
x86: add missing initialization for high bit-depth sa8d_satd

10 years agox86: add missing initializations for high bit-depth variance
James Almer [Sun, 6 Apr 2014 02:46:31 +0000 (23:46 -0300)]
x86: add missing initializations for high bit-depth variance

10 years agoarm: use the weight_fn_t typedef for mc weight function arrays
Janne Grunau [Tue, 1 Apr 2014 20:11:45 +0000 (22:11 +0200)]
arm: use the weight_fn_t typedef for mc weight function arrays

10 years agoarm: correct x264_mc_chroma_neon function declaration
Janne Grunau [Tue, 1 Apr 2014 20:11:44 +0000 (22:11 +0200)]
arm: correct x264_mc_chroma_neon function declaration

10 years agoarm: do not export every asm function
Janne Grunau [Tue, 1 Apr 2014 20:11:43 +0000 (22:11 +0200)]
arm: do not export every asm function

Based on Libav's libavutil/arm/asm.S. Also prevents having the same
label twice for every function on systems not defining EXTERN_ASM.
Clang's integrated assembler does not like it.

10 years agoarm: move all .macro/.endm to column 0
Janne Grunau [Tue, 1 Apr 2014 20:11:42 +0000 (22:11 +0200)]
arm: move all .macro/.endm to column 0

10 years agoaarch64: require PIC in shared mode
William Grant [Sun, 23 Mar 2014 16:21:52 +0000 (09:21 -0700)]
aarch64: require PIC in shared mode

10 years agoarm: x264_coeff_last8_arm
Janne Grunau [Sun, 16 Mar 2014 16:21:58 +0000 (17:21 +0100)]
arm: x264_coeff_last8_arm

checkasm --bench on a coretex-a9:
coeff_last8_c: 173
coeff_last8_armv6: 151

60 instead of 73 cycles in ~130k runs on the same cpu while encoding.

10 years agoarm: x264_store_interleave_chroma_neon
Janne Grunau [Sat, 15 Mar 2014 19:09:18 +0000 (20:09 +0100)]
arm: x264_store_interleave_chroma_neon

store_interleave_chroma_c: 4036
store_interleave_chroma_neon: 1043

10 years agoarm: x264_plane_copy_interleave_neon
Janne Grunau [Sat, 15 Mar 2014 18:55:50 +0000 (19:55 +0100)]
arm: x264_plane_copy_interleave_neon

plane_copy_interleave_c: 40285
plane_copy_interleave_neon: 10137

10 years agoarm: x264_plane_copy_deinterleave_rgb_neon
Janne Grunau [Sat, 15 Mar 2014 18:21:12 +0000 (19:21 +0100)]
arm: x264_plane_copy_deinterleave_rgb_neon

plane_copy_deinterleave_rgb_c: 31543
plane_copy_deinterleave_rgb_neon: 8312

10 years agoarm: load_deinterleave_chroma_f{dec,enc}_neon
Janne Grunau [Sat, 15 Mar 2014 17:22:49 +0000 (18:22 +0100)]
arm: load_deinterleave_chroma_f{dec,enc}_neon

load_deinterleave_chroma_fdec_c: 4055
load_deinterleave_chroma_fdec_neon: 995
load_deinterleave_chroma_fenc_c: 4071
load_deinterleave_chroma_fenc_neon: 992

10 years agoarm: x264_plane_copy_deinterleave_neon
Janne Grunau [Sat, 15 Mar 2014 16:22:08 +0000 (17:22 +0100)]
arm: x264_plane_copy_deinterleave_neon

plane_copy_deinterleave_c: 42988
plane_copy_deinterleave_neon: 10184

10 years agoarm: implement deblock_strength_neon
Janne Grunau [Sat, 15 Mar 2014 12:29:41 +0000 (13:29 +0100)]
arm: implement deblock_strength_neon

Based on deblock_strength_avx.

checkasm --bench on a cortex-a9:
deblock_strength_c: 14611
deblock_strength_neon: 1848

10 years agoarm: add missing macro instantiation for x264_pixel_avg_4x16_neon
Janne Grunau [Sat, 15 Mar 2014 09:51:11 +0000 (10:51 +0100)]
arm: add missing macro instantiation for x264_pixel_avg_4x16_neon

checkasm --bench on a cortex-a9:
avg_4x16_c: 8910
avg_4x16_neon: 2091

10 years agoarm: implement x264_predict_4x4_v_armv6
Janne Grunau [Thu, 13 Mar 2014 00:02:13 +0000 (01:02 +0100)]
arm: implement x264_predict_4x4_v_armv6

Alone probably not worth it but allows use of predict_4x4_dc|h_armv6
in intra_sad|satd_x3_4x4_neon.

10 years agoppc: fix build on certain PowerPC variants without Altivec
Roland Stigge [Sun, 23 Mar 2014 16:29:37 +0000 (09:29 -0700)]
ppc: fix build on certain PowerPC variants without Altivec

10 years agoOnly add strip option '-s' for linker flags
Anton Mitrofanov [Mon, 21 Apr 2014 20:58:24 +0000 (00:58 +0400)]
Only add strip option '-s' for linker flags

Fixes some build warnings with clang.

10 years agoconfigure: remove an unnecessary option from CFLAGS on OS X
Tsukasa OMOTO [Sat, 15 Mar 2014 07:53:53 +0000 (16:53 +0900)]
configure: remove an unnecessary option from CFLAGS on OS X

Fixes Clang 3.4 compilation on OS X.

10 years agoMacroblock tree overhaul/optimization
Fiona Glaser [Sun, 23 Feb 2014 18:36:55 +0000 (10:36 -0800)]
Macroblock tree overhaul/optimization

Move the second core part of macroblock tree into an assembly function;
SIMD-optimize roughly half of it (for x86). Roughly ~25-65% faster mbtree,
depending on content.

Slightly change how mbtree handles the tradeoff between range and precision
for propagation.

Overall a slight (but mostly negligible) effect on SSIM and ~2% faster.

10 years agoarm: use available neon functions for intra_sa8d/sad/satd_x3
Janne Grunau [Wed, 12 Mar 2014 23:05:48 +0000 (00:05 +0100)]
arm: use available neon functions for intra_sa8d/sad/satd_x3

4% faster on main/medium, 15% faster on baseline/superfast on a cortex-a9.