i4x4 analysis cycles (per partition):
penryn sandybridge
184-> 75 157-> 54 preset=superfast (sad)
281->165 225->124 preset=faster (satd with early termination)
332->165 263->124 preset=medium
379->165 297->124 preset=slower (satd without early termination)
This is the first code in x264 that intentionally produces different behavior
on different cpus: satd_x9 is implemented only on ssse3+ and checks all intra
directions, whereas the old code (on fast presets) may early terminate after
checking only some of them. There is no systematic difference on slow presets,
though they still occasionally disagree about tiebreaks.
For ease of debugging, add an option "--cpu-independent" to disable satd_x9
and any analogous future code.
Fix frame packing SEI with --frame-packing 0
According to the spec, when frame_packing_arrangement_type is equal to 0, quincunx_sampling_flag shall be equal to 1.
Fiona Glaser [Sat, 6 Aug 2011 17:45:47 +0000 (10:45 -0700)]
Improve support for varying resolution between passes
Should give much better quality, but still doesn't support MB-tree yet.
Also check for the same interlaced options between passes.
Various minor ratecontrol cosmetics.
Loren Merritt [Wed, 3 Aug 2011 14:58:50 +0000 (14:58 +0000)]
Enable some existing asm functions that were missing function pointers
pixel_ads1_avx, predict_8x8_hd_avxx
High bit depth mc_copy_w8_sse2, denoise_dct_avx, prefetch_fenc/ref, and several pixel*sse4.
Loren Merritt [Wed, 3 Aug 2011 14:46:41 +0000 (14:46 +0000)]
asm cosmetics: INIT_MMX/XMM/YMM now support a cpuflags argument
Reduces the number of macro args that need to be passed around.
Allows multiple implementations of a given macro (e.g. PALIGNR) to check
cpuflags at the location where the macro is defined, instead of having
to select implementations by %define at toplevel.
Remove INIT_AVX, as it's replaced by "INIT_XMM avx".
This commit does not change the stripped executable.
Timecode parsing: Add missing initialization
Fix crash when failed to parse timecode file before malloc pts.
Fix detection of user timebase considered to be exceeding H.264 maximum.
Dan Larkin [Wed, 13 Jul 2011 17:45:23 +0000 (12:45 -0500)]
Add --subme 11, which disables all early terminations in analysis
Necessary for a future trellis mode decision/motion estimation patch.
Also add the slowest presets to the regression test.
Anton Mitrofanov [Wed, 20 Jul 2011 18:54:43 +0000 (22:54 +0400)]
Allow setting a wider range of chroma QP offsets
This allows use of the full range of chroma QP offsets, even in combination with the automatic psy-based adjustments.
Linux x264_cpu_num_processors(): use glibc macros
The cpu_set_t structure is considered opaque.
Also handle sched_getaffinity() error case if "cpusetsize is smaller than the size of the affinity mask used by the kernel."
Daniel Kang [Sun, 3 Jul 2011 21:32:00 +0000 (17:32 -0400)]
Better x86 high bit depth predict_8x8c_p
Avoid the need to check for corner cases by reordering arithmetic.
Also make a minor optimization to high bit depth predict_16x16_p.
Fix various issues with VBV+threads
Eliminate the race condition with interframe row predictors and threads.
Recalculate frame_size_estimated at the end of a frame, for improved update_vbv_plan.
Some cosmetics.
Steven Walters [Fri, 3 Jun 2011 01:23:04 +0000 (21:23 -0400)]
Resize filter updates
Fix use of deprecated sws_getContext.
Fix uses of sws_format_name.
Fix stream change warning not occurring on the first resolution change.
Drop cpu detection, as it is now performed internally by swscale.
Update swscale version requirements.
Nikoli [Fri, 29 Apr 2011 10:19:22 +0000 (14:19 +0400)]
Improve build system capabilities
Make static lib and CLI optional.
Support linking CLI to system libx264.
Don't strip by default, to match GNU packaging guidelines.
Fiona Glaser [Mon, 9 May 2011 01:46:52 +0000 (18:46 -0700)]
MBAFF: Add regularization to VSAD metric
Bias towards the MBAFF decisions made in neighboring mb pairs.
~2% better compression on a random 1080i HDTV source.
Fiona Glaser [Mon, 9 May 2011 01:46:39 +0000 (18:46 -0700)]
MBAFF: Improve handling of bottom row mod32 padding
Force skip on any MBs entirely outside the frame
If an mb pair in the bottom row is chosen to be progressive, re-pad the bottom rows progressively.