Running: ./configure --extra-cflags="-march=core2 -mfpmath=sse" --bit-depth=8 --enable-strip platform: X86 system: WINDOWS cli: yes libx264: internal shared: no static: no asm: yes interlaced: yes avs: yes lavf: no ffms: no gpac: yes gpl: yes thread: posix filters: crop select_every debug: no gprof: no strip: yes PIC: no visualize: no bit depth: 8 chroma format: all (--bit-depth=10 for the 10bit build) * MSYS/MinGW with GCC 4.6.2 * gpac_11302011_svn3785_core2
Changes (2107-2119): * Improve yasm version check. Previous check allowed certain earlier versions that weren't fully compatible.; * Configure: force PIC for shared build on PARISC and MIPS.; * Fix crash if timecode file opening fails.; * Mark some local functions as static, cosmetics.; * Improve makefile rules. Remove the need for "make clean" after most reconfigures.; * checkasm: fix build on ARM. Because of how ALIGNED_ARRAY_16 is defined on ARM, array initialisers cannot be used here. Use memset() instead.; * checkasm: shut up gcc warnings, fix some naming of functions in results.; * x86inc: AVX symmetry optimization. 3-arg AVX ops with a memory arg can only have it in src2, whereas SSE emulation of 3-arg prefers to have it in src1 (i.e. the move). So, if the op is symmetric and the wrong one is memory, swap them. Eliminates redundant moves in some cases when using 3-operand without AVX with memory arguments. Also fix movss and movsd in some cases, and flag shufps correctly as float.; * Remove unpredictable branch in CABAC dqp.; * Pass through user data.; * YUV range detection and support for x264CLI. Two new options: --input-range and --range. --input-range forces the range of the input in case of misdetection; auto by default. -- range sets the range of the output; x264cli will convert if necessary, TV by default. --fullrange is now removed as a CLI option (but the libx264 API is unchanged).; * CABAC trellis optimizations: use SIMD quant. Significant speed increase, minor change in output due to rounding.; * Modify MBAFF chroma deblock functions to handle U/V at the same time. Allows for more convenient asm implementations.
Fix trellis 2 + subme >= 8. Trellis didn't return a boolean value as it was supposed to. Regression in r2143-5.
[COLOR="DarkOrchid"]Fix clobbering of mutex/cvs. Regression in r2183.[/COLOR] Bizarrely seemed to work on many platforms, but crashed on win64 and may have been slower. Only affected sliced threads during encoding, but could cause crashes on x264 encoder close even without sliced threads.
r2197 Add mb_info API for signalling constant macroblocks Some use-cases of x264 involve encoding video with large constant areas of the frame. Sometimes, the caller knows which areas these are, and can tell x264. This API lets the caller do this and adds internal tracking of modifications to macroblocks to avoid problems. This is really only suitable without B-frames. An example use-case would be using x264 for VNC. r2196 Faster chroma weight cost calculation New assembly function with SSE2, SSSE3 and XOP implementations for calculating absolute sum of differences. r2195 Add Level 5.2 support r2194 Eradicate all mention of Extended Profile x264 never supported it and never will because nobody uses it. r2193 Fix disabling of mbtree when using 2pass encoding and zones r2192 configure: force select -mXX gcc option for i386/x86-64 Makes multilib compilation more convenient. r2191 Update config.guess and config.sub Adds support for a bunch of targets, including: aarch64 (armv8) arm-linux-androideabi r2190 configure: correct use of RC variable and add --extra-rcflags r2189 ICL/MSVS: Fix shared library generation and usage MSVS requires exported variables to be declared with the DATA keyword, and requires that imported variables be declared with dllimport. This does not fix x264 cli being unable to use a shared library built by ICL however. r2188 Fix intra-refresh + hrd r2187 Fix frame input colorspace check r2186 Fix comment in deblock.c The code does, in fact, handle CAVLC+8x8dct correctly already. r2185 Fix sliced-threads ratecontrol bug Was using qp instead of qscale; could cause NANs (not to mention less accurate results).
Split each lookahead frame analysis call into multiple threads. Has a small
impact on quality, but does not seem to be consistently any worse.
This helps alleviate bottlenecks with many cores and frame threads. In many
case, this massively increases performance on many-core systems. For example,
over 100% faster 1080p encoding with --preset veryfast on a 12-core i7 system.
Realtime 1080p30 at --preset slow should now be feasible on real systems.
For sliced-threads, this patch should be faster regardless of settings (~10%).
By default, lookahead threads are 1/6 of regular threads. This isn't exacting,
but it seems to work well for all presets on real systems. With sliced-threads,
it's the same as the number of encoding threads.
Add support for RGB formats in bit-depth conversion filter
Fix some bugs in mb_info code
Encoder features:- Provides best-in-class performance, compression, and features.
- Achieves dramatic performance, encoding 4 or more 1080p streams in realtime on a single consumer-level computer.
- Gives the best quality, having the most advanced psychovisual optimizations.
- Support features necessary for many different applications, such as television broadcast, Blu-ray low-latency video applications, and web video.
- x264 forms the core of many web video services, such as Youtube, Facebook, Vimeo, and Hulu. It is widely used in television broadcast and by ISP.
- 8x8 and 4x4 adaptive spatial transform
- Adaptive B-frame placement
- B-frames as references / arbitrary frame order
- CAVLC/CABAC entropy coding
- Custom quantization matrices
- Intra: all macroblock types (16x16, 8x8, 4x4, and PCM with all predictions)
- Inter P: all partitions (from 16x16 down to 4x4)
- Inter B: partitions from 16x16 down to 8x8 (including skip/direct)
- Interlacing (MBAFF)
- Multiple reference frames
- Ratecontrol: constant quantizer, constant quality, single or multipass ABR, optional VBV
- Scenecut detection
- Spatial and temporal direct mode in B-frames, adaptive mode selection
- Parallel encoding on multiple CPUs
- Predictive lossless mode
- Psy optimizations for detail retention (adaptive quantization, psy-RD, psy-trellis)
- Zones for arbitrarily adjusting bitrate distribution