]> git.sesse.net Git - x264/log
x264
13 years agoMBAFF: Create a VSAD DSP function
Simon Horlick [Sat, 23 Apr 2011 09:44:04 +0000 (10:44 +0100)]
MBAFF: Create a VSAD DSP function

x86 assembly by Fiona Glaser. This gives roughly 30x speed
increase over the C version.

13 years agoMBAFF: Direct spatial
Simon Horlick [Tue, 15 Mar 2011 01:17:01 +0000 (01:17 +0000)]
MBAFF: Direct spatial

13 years agoMBAFF: Direct temporal
Simon Horlick [Tue, 15 Mar 2011 01:16:20 +0000 (01:16 +0000)]
MBAFF: Direct temporal

13 years agoMBAFF: Calculate bipred POCs
Simon Horlick [Tue, 15 Mar 2011 01:15:06 +0000 (01:15 +0000)]
MBAFF: Calculate bipred POCs

Need to calculate two tables for the cases where the current macroblock is
progressive or interlaced as refs are calculated differently for each.

13 years agoMBAFF: Use both left macroblocks for ref_idx calculation
Simon Horlick [Tue, 15 Mar 2011 01:39:49 +0000 (01:39 +0000)]
MBAFF: Use both left macroblocks for ref_idx calculation

13 years agoMBAFF: First edge deblocking
Simon Horlick [Sun, 3 Apr 2011 14:23:35 +0000 (15:23 +0100)]
MBAFF: First edge deblocking

13 years agoMBAFF: Implement left edge deblocking functions
Simon Horlick [Mon, 21 Mar 2011 11:03:23 +0000 (11:03 +0000)]
MBAFF: Implement left edge deblocking functions

13 years agoMBAFF: Add extra data to the deblock strength structure
Simon Horlick [Sat, 2 Apr 2011 17:27:13 +0000 (18:27 +0100)]
MBAFF: Add extra data to the deblock strength structure

13 years agoMBAFF: Deblocking support
Simon Horlick [Wed, 16 Mar 2011 21:27:07 +0000 (21:27 +0000)]
MBAFF: Deblocking support

13 years agoMBAFF: Move common code from deblock functions
Simon Horlick [Mon, 21 Mar 2011 11:02:27 +0000 (11:02 +0000)]
MBAFF: Move common code from deblock functions

13 years agoMBAFF: Add mbaff deblock strength calculation
Simon Horlick [Wed, 16 Mar 2011 21:18:59 +0000 (21:18 +0000)]
MBAFF: Add mbaff deblock strength calculation

Move call to deblock_strength to x264_macroblock_deblock_strength to
keep deblock strength calculation in one place.

13 years agoMBAFF: Update x264_cabac_mvd_sum_mmxext to work with larger MVDs.
Simon Horlick [Thu, 21 Apr 2011 00:47:53 +0000 (01:47 +0100)]
MBAFF: Update x264_cabac_mvd_sum_mmxext to work with larger MVDs.

Author: Loren Merritt <pengvado@akuvian.org>

13 years agoMBAFF: Clamp MVDs to 66 instead of 33
Simon Horlick [Tue, 29 Mar 2011 14:47:04 +0000 (15:47 +0100)]
MBAFF: Clamp MVDs to 66 instead of 33

13 years agoMBAFF: CABAC encoding of skips
Simon Horlick [Tue, 29 Mar 2011 14:46:34 +0000 (15:46 +0100)]
MBAFF: CABAC encoding of skips

13 years agoMBAFF: Track what interlace decision the decoder is using
Simon Horlick [Sun, 20 Feb 2011 15:31:55 +0000 (15:31 +0000)]
MBAFF: Track what interlace decision the decoder is using

13 years agoMBAFF: Fix mvy bounds
Simon Horlick [Sun, 6 Feb 2011 22:58:39 +0000 (22:58 +0000)]
MBAFF: Fix mvy bounds

Fix MV clipping

13 years agoMBAFF: Copy deblocked pixels to other plane
Simon Horlick [Wed, 16 Mar 2011 21:34:51 +0000 (21:34 +0000)]
MBAFF: Copy deblocked pixels to other plane

13 years agoMBAFF: Disallow skip where predicted interlace flag would be wrong
Simon Horlick [Tue, 29 Mar 2011 19:26:33 +0000 (20:26 +0100)]
MBAFF: Disallow skip where predicted interlace flag would be wrong

13 years agoMBAFF: Inter support
Simon Horlick [Tue, 29 Mar 2011 19:25:23 +0000 (20:25 +0100)]
MBAFF: Inter support

13 years agoMBAFF: Neighbour calculation
Simon Horlick [Fri, 14 Jan 2011 21:18:14 +0000 (21:18 +0000)]
MBAFF: Neighbour calculation

Back up intra borders correctly and make neighbour calculation several times longer.

13 years agoMBAFF: Store references to the two left macroblocks
Simon Horlick [Tue, 11 Jan 2011 20:21:26 +0000 (20:21 +0000)]
MBAFF: Store references to the two left macroblocks

13 years agoMBAFF: Store left references in a table
Simon Horlick [Tue, 11 Jan 2011 20:16:18 +0000 (20:16 +0000)]
MBAFF: Store left references in a table

13 years agoMBAFF: Disable adaptive MBAFF when subme 0 is used
Simon Horlick [Tue, 11 Jan 2011 20:09:00 +0000 (20:09 +0000)]
MBAFF: Disable adaptive MBAFF when subme 0 is used

13 years agoMBAFF: Save interlace decision for all macroblocks
Simon Horlick [Tue, 11 Jan 2011 20:05:54 +0000 (20:05 +0000)]
MBAFF: Save interlace decision for all macroblocks

13 years agoFix bug in NAL buffer resizing
Fiona Glaser [Thu, 12 May 2011 02:21:16 +0000 (10:21 +0800)]
Fix bug in NAL buffer resizing
Also properly terminate if NAL buffer resizing fails.

13 years agoFix zone bitrate multiplier and QP forcing in 2-pass mode
Anton Mitrofanov [Thu, 5 May 2011 12:27:49 +0000 (16:27 +0400)]
Fix zone bitrate multiplier and QP forcing in 2-pass mode
Previously zone changes could affect frames outside of the given frame range (around 20 neighboring frames).

13 years agoUse float constants in qp rounding
Fiona Glaser [Thu, 5 May 2011 10:24:38 +0000 (03:24 -0700)]
Use float constants in qp rounding
Slight performance improvement and fixes slight difference in output between gcc 3.4 and 4.5.

13 years agoFix bugs with ratecontrol reconfiguration
Anton Mitrofanov [Wed, 4 May 2011 07:49:06 +0000 (11:49 +0400)]
Fix bugs with ratecontrol reconfiguration
Initialization of some parameters was missed or wasn't synchronized with other threads

13 years agoMore validation of input parameters
Anton Mitrofanov [Wed, 4 May 2011 07:45:58 +0000 (11:45 +0400)]
More validation of input parameters
This fixes a crash with --me umh and insane values of --me-range.

13 years agoFix bug in --b-adapt 2 with --rc-lookahead >248
Anton Mitrofanov [Sun, 1 May 2011 13:28:56 +0000 (17:28 +0400)]
Fix bug in --b-adapt 2 with --rc-lookahead >248
Problem caused by buffer overflow in strcpy.

13 years agoCheck for invalid pixfmts in lavf demuxer
Oka Motofumi [Thu, 28 Apr 2011 04:13:49 +0000 (13:13 +0900)]
Check for invalid pixfmts in lavf demuxer

13 years agoFix regression in r1944
Fiona Glaser [Tue, 10 May 2011 08:58:21 +0000 (01:58 -0700)]
Fix regression in r1944
Broke sliced-threads + slice-max-size/slice-max-mbs.

13 years agoPrecalculate CABAC initialization contexts
Fiona Glaser [Mon, 25 Apr 2011 01:36:26 +0000 (18:36 -0700)]
Precalculate CABAC initialization contexts
Slightly faster encoding with lots of slices.

13 years agoAvoid redundant log2f calls in mv cost initialization
Fiona Glaser [Sun, 24 Apr 2011 04:22:13 +0000 (21:22 -0700)]
Avoid redundant log2f calls in mv cost initialization
Saves around 100 million clock cycles on x264 init.

13 years agoCABAC residual: cleanup and optimizations
Fiona Glaser [Thu, 21 Apr 2011 21:19:05 +0000 (14:19 -0700)]
CABAC residual: cleanup and optimizations
Also kill all Hungarian notation while we're at it.
Trim an instruction off cabac_encode_bypass.

13 years agoValidate input parameters more carefully
Anton Mitrofanov [Tue, 19 Apr 2011 22:54:49 +0000 (02:54 +0400)]
Validate input parameters more carefully
Get rid of redundant warnings upon encoder_reconfig calls.
Also avoid encoder_reconfig turning off psy_rd/trellis.

13 years agoFix VFR MB-tree to work as intended
Anton Mitrofanov [Thu, 21 Apr 2011 21:13:28 +0000 (01:13 +0400)]
Fix VFR MB-tree to work as intended
Should improve quality with FPSs much larger or smaller than 25.

13 years agoSupport more recent GPAC versions
Yasuhiro Ikeda [Sun, 24 Apr 2011 06:33:45 +0000 (15:33 +0900)]
Support more recent GPAC versions

13 years agoFix decoder desync with positive --chroma-qp-offset and zones
Anton Mitrofanov [Sat, 23 Apr 2011 11:19:40 +0000 (15:19 +0400)]
Fix decoder desync with positive --chroma-qp-offset and zones

13 years agoUse AVMEDIA_TYPE_VIDEO instead of deprecated CODEC_TYPE_VIDEO
Anton Khirnov [Wed, 20 Apr 2011 08:53:44 +0000 (10:53 +0200)]
Use AVMEDIA_TYPE_VIDEO instead of deprecated CODEC_TYPE_VIDEO

Fixes build with lavf/lavc 53.

13 years agoForce pic-struct for Blu-ray compat + fake-interlaced
Fiona Glaser [Fri, 15 Apr 2011 23:33:27 +0000 (16:33 -0700)]
Force pic-struct for Blu-ray compat + fake-interlaced

13 years agoFix open-gop with no-psy
Anton Mitrofanov [Thu, 14 Apr 2011 19:14:52 +0000 (12:14 -0700)]
Fix open-gop with no-psy

13 years agoFix build with disabled asm
Steven Walters [Thu, 14 Apr 2011 18:09:45 +0000 (11:09 -0700)]
Fix build with disabled asm

13 years agoImprove Blu-ray compliance
Fiona Glaser [Wed, 6 Apr 2011 09:16:42 +0000 (02:16 -0700)]
Improve Blu-ray compliance
Use dec_ref_pic_marking SEIs to repeat B-ref referencing information.
Don't allow B-frames to reference frames outside their minigop.

13 years agoConsolidate Blu-ray hacks into --bluray-compat
Fiona Glaser [Thu, 7 Apr 2011 00:15:50 +0000 (17:15 -0700)]
Consolidate Blu-ray hacks into --bluray-compat
This option is now required for Blu-ray compatibility.
--open-gop bluray is now gone (using bluray-compat and open-gop implies a Blu-ray compatible open-gop).
This option doesn't automatically enforce every aspect of Blu-ray compatibility (e.g. resolution, framerate, level, etc).

13 years agoAdd SSE support to rectangle.h for 16-byte stores
Fiona Glaser [Tue, 29 Mar 2011 12:33:44 +0000 (05:33 -0700)]
Add SSE support to rectangle.h for 16-byte stores
Uses GCC vector intrinsics; may be suboptimal on particularly old GCC versions.

13 years agoDo not force Intel Compiler to target pre-mmx architecture for x86
Steven Walters [Tue, 12 Apr 2011 23:22:56 +0000 (19:22 -0400)]
Do not force Intel Compiler to target pre-mmx architecture for x86
Caused a speed penalty against gcc equivalents.

13 years agoWarn users when using --(psnr|ssim) without --tune (psnr|ssim)
Fiona Glaser [Tue, 12 Apr 2011 08:16:48 +0000 (01:16 -0700)]
Warn users when using --(psnr|ssim) without --tune (psnr|ssim)
This is a counter to the proliferation of incredibly stupid psnr/ssim "benchmarks" of x264 in which the benchmarker conveniently "forgot" --tune psnr/ssim, crippling x264 in the test.

13 years agoRemove redundant mbcmp calls in weightp analysis
Dylan Yudaken [Thu, 7 Apr 2011 23:06:19 +0000 (16:06 -0700)]
Remove redundant mbcmp calls in weightp analysis

13 years agoUse integer math for filler size calculation
Anton Mitrofanov [Wed, 6 Apr 2011 18:48:57 +0000 (22:48 +0400)]
Use integer math for filler size calculation

13 years agoDisable progress for FFMS input with --no-progress
Anton Mitrofanov [Tue, 5 Apr 2011 10:06:54 +0000 (14:06 +0400)]
Disable progress for FFMS input with --no-progress

13 years agoFix bug in intra-refresh ratecontrol
Michael Stuurman [Thu, 31 Mar 2011 20:45:22 +0000 (13:45 -0700)]
Fix bug in intra-refresh ratecontrol
Row SATDs were slightly incorrect.

13 years agoCosmetics: fix some signedness issues found by -Wsign-compare
Fiona Glaser [Sun, 10 Apr 2011 11:39:51 +0000 (04:39 -0700)]
Cosmetics: fix some signedness issues found by -Wsign-compare

13 years agoMinor fixes
Fiona Glaser [Sun, 3 Apr 2011 23:31:52 +0000 (16:31 -0700)]
Minor fixes
Fix a comment typo.
Align an array properly.
Make x264_scan8 unsigned: saves a bunch of movsxd instructions on x86_64.

13 years agoImprove C99 support checks in configure
Anton Mitrofanov [Thu, 24 Mar 2011 21:08:40 +0000 (00:08 +0300)]
Improve C99 support checks in configure
Fixes configuration with Intel compiler in some cases.

13 years agoEliminate the possibility of CAVLC level code overflow
Fiona Glaser [Sat, 19 Mar 2011 01:24:33 +0000 (18:24 -0700)]
Eliminate the possibility of CAVLC level code overflow
Instead, if it happens, just re-encode the MB at higher QPs until it fits.

13 years agox86 SIMD versions of optimize_chroma_dc
Henrik Gramner [Sun, 13 Mar 2011 07:21:09 +0000 (23:21 -0800)]
x86 SIMD versions of optimize_chroma_dc
SSE2/SSSE3/SSE4/AVX implementations.
About 3x faster.

13 years agoAdd Altivec version of mc_weight
Manuel Rommel [Sun, 26 Dec 2010 17:52:49 +0000 (18:52 +0100)]
Add Altivec version of mc_weight

13 years agoAdd Altivec versions of mbcmp_x functions
Manuel Rommel [Sun, 26 Dec 2010 20:41:33 +0000 (21:41 +0100)]
Add Altivec versions of mbcmp_x functions
These aren't merged versions, they just call the existing asm code.
A merged implementation would of course be faster.

13 years agoRecognize cygwin as itself when not targeting mingw
Steven Walters [Thu, 3 Mar 2011 02:31:27 +0000 (21:31 -0500)]
Recognize cygwin as itself when not targeting mingw
Also fix broken thread detection on cygwin.

13 years agoPatch Intel's CPU dispatcher
Steven Walters [Thu, 3 Mar 2011 01:39:25 +0000 (20:39 -0500)]
Patch Intel's CPU dispatcher
Reduces Intel Compiler's bias against non-Intel CPUs.

Big thanks to Agner for the original information on how to do this.

13 years agoIntel Compiler support
Steven Walters [Tue, 1 Mar 2011 00:07:40 +0000 (19:07 -0500)]
Intel Compiler support

Big thanks to David Rudie, the original author of this patch.

13 years agoCosmetics: make struct definition braces consistent
Kieran Kunhya [Tue, 8 Mar 2011 09:41:46 +0000 (09:41 +0000)]
Cosmetics: make struct definition braces consistent

13 years agoFix restoring of console title on Windows with ffms indexing
Fiona Glaser [Thu, 24 Mar 2011 03:59:41 +0000 (20:59 -0700)]
Fix restoring of console title on Windows with ffms indexing

13 years agoFix possible buffer overflow in mp4 muxer
Anton Mitrofanov [Wed, 9 Mar 2011 21:31:26 +0000 (00:31 +0300)]
Fix possible buffer overflow in mp4 muxer

13 years agoRemove inline asm syntax not supported by LLVM's assembler
Nick Lewycky [Tue, 8 Mar 2011 02:10:36 +0000 (18:10 -0800)]
Remove inline asm syntax not supported by LLVM's assembler
Doesn't affect compiled output outside of LLVM.

13 years agoFix 10L in r1912
Fiona Glaser [Sat, 19 Feb 2011 01:50:42 +0000 (17:50 -0800)]
Fix 10L in r1912
SSSE3 code got used in MMX/SSE2 and vice versa (in hpel).

13 years agoAdd AVX functions where 3+ arg commands are useful
Daniel Kang [Sat, 15 Jan 2011 18:44:45 +0000 (13:44 -0500)]
Add AVX functions where 3+ arg commands are useful

13 years agoFrame-packing 3D: don't place scenecuts on right views
Fiona Glaser [Mon, 7 Feb 2011 11:15:03 +0000 (03:15 -0800)]
Frame-packing 3D: don't place scenecuts on right views
Caused problems for some players.

13 years agoImprove slice-max-size handling of escape bytes
Fiona Glaser [Fri, 11 Feb 2011 08:54:51 +0000 (00:54 -0800)]
Improve slice-max-size handling of escape bytes
More accurate but a bit slower.  Helps deal with a few obnoxious corner cases where the current algorithm failed.

13 years agoUse bs_write1 wherever possible in header writing
Nathan Caldwell [Fri, 11 Feb 2011 04:25:00 +0000 (21:25 -0700)]
Use bs_write1 wherever possible in header writing

13 years agoRemove obsolete mvcost init code
Fiona Glaser [Tue, 8 Feb 2011 22:48:18 +0000 (14:48 -0800)]
Remove obsolete mvcost init code

13 years agoFix memory leak on encoder close if not all frames are flushed
Anton Mitrofanov [Sun, 13 Feb 2011 20:19:13 +0000 (12:19 -0800)]
Fix memory leak on encoder close if not all frames are flushed

13 years agoFix signedness bug in CPU detection
Anton Mitrofanov [Sat, 12 Feb 2011 13:19:55 +0000 (05:19 -0800)]
Fix signedness bug in CPU detection
Luckily didn't affect anything due to C signedness rules.

13 years agoFix dumb bug caused by stray semicolon
Fiona Glaser [Fri, 11 Feb 2011 21:47:27 +0000 (13:47 -0800)]
Fix dumb bug caused by stray semicolon
Caused noise reduction to run incorrectly in part of RD, but probably had no effect.

13 years agoFix malloc of zero size
Anton Mitrofanov [Thu, 10 Feb 2011 13:05:53 +0000 (05:05 -0800)]
Fix malloc of zero size
Caused x264 to fail with some settings on systems that return a NULL pointer for malloc(0), like Solaris.

13 years agoFix crash in mp4 muxer after failure of x264_encoder_open
Anton Mitrofanov [Wed, 9 Feb 2011 20:01:07 +0000 (23:01 +0300)]
Fix crash in mp4 muxer after failure of x264_encoder_open

13 years agoFix shadowed variable warning in ffms.c
Fiona Glaser [Wed, 9 Feb 2011 19:36:02 +0000 (11:36 -0800)]
Fix shadowed variable warning in ffms.c

13 years agoFix some Intel compiler warnings
Anton Mitrofanov [Wed, 9 Feb 2011 19:29:23 +0000 (11:29 -0800)]
Fix some Intel compiler warnings

13 years agoFix 10L in r1886
Fiona Glaser [Mon, 7 Feb 2011 07:12:09 +0000 (23:12 -0800)]
Fix 10L in r1886
Aspect ratio can't be set before SPS is initted.

13 years agoImprove update interval of x264cli progress information
Fiona Glaser [Sat, 5 Feb 2011 04:49:45 +0000 (20:49 -0800)]
Improve update interval of x264cli progress information
Now updates every 0.25s instead of every N frames.

13 years agoWindows: restore previous console title after encoding
Fiona Glaser [Sat, 5 Feb 2011 09:16:49 +0000 (01:16 -0800)]
Windows: restore previous console title after encoding
MSDN docs claim that SetConsoleTitle's effect is reverted when the process terminates, but this doesn't always work properly.
Accordingly, manually revert the console title at the end of encoding.

13 years agoAllow WEIGHTP_FAKE in interlaced mode
Fiona Glaser [Sat, 5 Feb 2011 23:02:34 +0000 (15:02 -0800)]
Allow WEIGHTP_FAKE in interlaced mode
It seems to work fine as-is even though real weightp doesn't support interlacing yet.

13 years agoOutput pic struct information in libx264 API
Kieran Kunhya [Wed, 2 Feb 2011 11:01:13 +0000 (11:01 +0000)]
Output pic struct information in libx264 API

13 years agoEnable FastShuffle on Penryn and Nehalem CPUs without SSE4
Fiona Glaser [Sun, 30 Jan 2011 05:00:09 +0000 (00:00 -0500)]
Enable FastShuffle on Penryn and Nehalem CPUs without SSE4

13 years agoMinor cosmetics in configure
Yasuhiro Ikeda [Thu, 3 Feb 2011 01:54:44 +0000 (10:54 +0900)]
Minor cosmetics in configure

13 years agoVarious --help cosmetics
Anton Mitrofanov [Sat, 29 Jan 2011 02:44:24 +0000 (18:44 -0800)]
Various --help cosmetics

13 years agox86inc.asm: error on duplicate functions
Loren Merritt [Sun, 30 Jan 2011 10:27:32 +0000 (02:27 -0800)]
x86inc.asm: error on duplicate functions
Compile error if there's two functions of the same name, instead of silently renaming one of them.

13 years agoBump yasm version requirement to handle AVX
Fiona Glaser [Mon, 31 Jan 2011 21:56:23 +0000 (13:56 -0800)]
Bump yasm version requirement to handle AVX

13 years agoFix rare corruption with subme=10
Fiona Glaser [Sat, 5 Feb 2011 04:48:37 +0000 (20:48 -0800)]
Fix rare corruption with subme=10
Also fix dumb bug in VBV emergency AQ scaling.

Regression in r1881.

13 years agoFix overflow in ARM NEON i16x16 planar pred
Mans Rullgard [Thu, 3 Feb 2011 21:32:06 +0000 (13:32 -0800)]
Fix overflow in ARM NEON i16x16 planar pred
Patch backported from ffmpeg.

13 years agoFix incorrect frame duration for VFR input for some frames
Anton Mitrofanov [Wed, 2 Feb 2011 19:51:45 +0000 (22:51 +0300)]
Fix incorrect frame duration for VFR input for some frames

13 years agoFix possible division by zero in mkv and flv muxers on close
Anton Mitrofanov [Mon, 31 Jan 2011 21:43:03 +0000 (00:43 +0300)]
Fix possible division by zero in mkv and flv muxers on close
This could crash if anything failed before output.set_param (for example, incorrect params refused by x264_encoder_open).
Bug introduced in r1873.

13 years agoFix reconfiguration of parameters that modify the SPS
Fiona Glaser [Fri, 28 Jan 2011 23:19:06 +0000 (15:19 -0800)]
Fix reconfiguration of parameters that modify the SPS
For now, this is only aspect ratio.

13 years agoFix possible crash on Phenom with lookahead thread disabled
Fiona Glaser [Fri, 28 Jan 2011 22:03:08 +0000 (14:03 -0800)]
Fix possible crash on Phenom with lookahead thread disabled
Misalign mask needs to be set for the main thread on entry, too.

13 years agoHotfix for some bugs in VBV emergency
Anton Mitrofanov [Sat, 29 Jan 2011 20:43:34 +0000 (12:43 -0800)]
Hotfix for some bugs in VBV emergency

13 years agoFix warnings in cpu.c
Fiona Glaser [Thu, 27 Jan 2011 21:59:20 +0000 (13:59 -0800)]
Fix warnings in cpu.c

13 years agoCheck for OS AVX support in addition to CPUID
Fiona Glaser [Thu, 27 Jan 2011 13:33:25 +0000 (05:33 -0800)]
Check for OS AVX support in addition to CPUID
Even if not using ymm registers, AVX operations will cause SIGILLs on unsupported OSs.
On Windows, AVX is only available on Windows 7 SP1 or later.

13 years agoVBV emergency mode
Fiona Glaser [Tue, 18 Jan 2011 08:52:03 +0000 (00:52 -0800)]
VBV emergency mode
Allow ratecontrol to select "quantizers" above the maximum.
These "quantizers" progressively decimate the source to avoid VBV underflow.
x264 is now VBV compliant even with input as evil as /dev/random.

13 years agoInitial AVX support
Fiona Glaser [Wed, 12 Jan 2011 17:54:33 +0000 (09:54 -0800)]
Initial AVX support
Automatically handle 3-operand instructions and abstraction between SSE and AVX.
Implement one function with this (denoise_dct) as an initial test.
x264 can't make much use of the 256-bit support of AVX (as it's float-only), but 3-operand could give some small benefits.