x264 Video Codec rev. 1510 x86/x64
28.03.2010 13:05

x264 (x86/x64) - это свободная библиотека программных компонентов для кодирования видеопотоков H.264/MPEG-4 AVC.

 

x264 (x86/x64) is a free library for encoding H.264/MPEG-4 AVC video streams.

 

Изменения/Changes (1472-1510):

 

  • Fix crash with intra-refresh + aq-mode 0;
  • Fix regression in r1450. I_PCM blocks would cause x264 to crash or generate bad output. Simplify PCM handling.;
  • Ignore XYSCSS in y4m if the newer standard C tag is present. Apparently y4mscaler will generate 4:2:0 files with XYSCSS set to 444.;
  • Faster hpel_filter. On ssse3, use pmaddubsw for h filter too (similar to v filter). Change 32-bit v and c filters to write the result non-temporal. Add commented-out defines to disable non-temporal operation. Hardly any black magic here, but still a measurable win especially for ssse3.;
  • Faster cabac_encode_decision_asm. Minimizes instruction count, which also means smaller code. Various other slight changes to allow more instruction level parallelism.;
  • Faster rounding of chroma DC coefficients;
  • Mixed-refs support for B-frames. Small speed cost, usually a few percent at most. Generally has lowest cost in cases when it isn't very useful. Up to ~2% better compression overall on highly complex sources. Also fix a few minor bugs in B-frame analysis and various bits of cleanup.;
  • Timecode input/output. -tcfile-in allows a user to specify a timecode v1 or v2 file to override input timestamps. Useful for dealing with VFR input, especially when FFMS/LAVF support isn't available. --tcfile-out writes a timecode v2 file containing the timecodes of the output file. New --timebase option allows a user to change the stream timebase. Intended primarily for forcing timebase with timecode files if necessary. When using --seek, note that x264 will seek in the timecode file as well.;
  • Blu-ray support: NAL-HRD, VFR ratecontrol, filler, pulldown. x264 can now generate Blu-ray-compliant streams for authoring Blu-ray Discs! Compliance tested using Sony BD-ROM Verifier 1.21. Thanks to The Criterion Collection for sponsoring compliance testing!;
  • "CRF-max" support with VBV. This is a rather curious feature that may have more use than is initially obvious. In CRF mode with VBV enabled, CRF-max allows the user to specify a quality level which the encoder will never go below, even due to the effects of VBV. This is not the same as qpmax, which is not aware of issues like scene complexity. Setting this WILL cause VBV underflows in any situation where the encoder would have needed to exceed the relevant CRF to avoid underflow.; 

 

 

  • Fix two nondeterminisms. Move noise reduction data into thread-specific data. Use correct reference list for L1 temporal predictors.;
  • Use x264_log in more places instead of fprintf;
  • Shrink some arrays in x264_t. Also remove an unnecessary assignment from cache_load.;
  • Save a few bits in slice headers. Don't override the maximum ref index in the slice header if it's the same as the default.  Also update the naming of the relevant variables in the PPS.;
  • Fix link errors with newest gpac cvs. gpac decided to randomly break API and require us to use their own custom malloc and free.;
  • Fix slightly wrong mp4 duration.;
  • Add support for spaces to iPhone GAS preprocessor script;
  • Fix typo in configure;
  • Reformat profile restrictions in --fullhelp. Put "no interlaced", "no lossless" on their own line to avoid them running into the default options list.;
  • Much more accurate B-skip detection at 2 < subme < 7. Use the same method that x264 uses for P-skip detection. This significantly improves quality (1-6%), but at a significant speed cost as well (5-20%). It also may have a very positive visual effect in cases where the inaccurate skip detection resulted in slightly-off vectors in B-frames. This could cause slight blurring or non-smooth motion in low-complexity frames at high quantizers. Not all instances of this problem are solved: the only universal solution is non-locally-optimal mode decision, which x264 does not currently have. subme >= 7 or <= 2 are unaffected.;
  • Faster x264_macroblock_encode_pskip. GCC is apparently unable to optimize out the calculation of a variable when it isn't used.;
  • Two compatibility fixes. Add IA64 support in configure.;
  • Make a bunch of small functions ALWAYS_INLINE. Probably no real effect for now, but needed for the next patch.;
  • Overhaul macroblock_cache_rect. Unify the rectangle functions into a single one similar to ffmpeg's fill_rectangle. Remove all cases of variable-size cache_rect calls; create a function-pointer-based system for handling such cases. Should greatly decrease code size required for such calls.;
  • Various motion estimation optimizations. Faster method of checking MV range. Predict MVs and cache MVs/MVDs for bidir qpel-RD. A whole bunch of other minor optimizations. Slightly better performance and compression.;
  • Reduce stack usage of b-adapt 2's trellis. Also remove some redundant code.;
  • Split up analyse_init. Save some time by avoiding some unnecessary inits and moving other parts to per-thread init.;
  • Cosmetics: use sizeof() where appropriate;
  • Fix stack alignment in sliced threads. Could cause crashes when called from non-GCC-compiled applications.;
  • Much faster non-RD intra analysis. Since every pred mode costs at least 1 bit, move that part into the initial SATD cost.  This lets i4x4/i8x8 analysis terminate earlier. If the cost of the predicted mode is less than the cost of signalling any other mode, early-terminate the analysis.;
  • Fix some misattributions in profiling. Cycles spent in load_hadamard and the avg2 w16 ssse3 cacheline split code were misattributed.;
  • Document slow/fast firstpass in --fullhelp;
  • Pad non-mod16 resolutions using the correct field. Improves compression of interlaced videos with non-mod16 heights.;
  • Add tune for still image compression. There has been some demand for this from companies looking to use x264 for still image compression (it can outperform JPEG or JPEG-2000 by a factor of 2 or more). Still image compression is a bit different; because temporal stability isn't an issue, we can get away with far more powerful psy settings.;
  • Fix make uninstall on systems with executable suffixes;
  • Cosmetics in mvd handling. Use a 2D array instead of doing manual pointer arithmetic.;
  • Avoid redundant MV prediction in duplicate refs;
  • New "superfast" preset, much faster intra analysis. Especially at the fastest settings, intra analysis was taking up the majority of MB analysis time. This patch takes a ton more shortcuts at the fastest encoding settings, decreasing compression 0.5-5% but improving speed greatly. Also rearrange the fastest presets a bit: now we have ultrafast, superfast, veryfast, faster. superfast is the old veryfast (but much faster due to this patch). veryfast is between the old veryfast and faster. faster is the same as before except with MB-tree on. Encoding with subme >= 5 should be unaffected by this patch.;
  • Update copyright year in SEI header.

 

 

 Encoder features :

  • CAVLC/CABAC
  • Multi-references
  • Intra: all macroblock types (16x16, 8x8, and 4x4 with all predictions)
  • Inter P: all partitions (from 16x16 down to 4x4)
  • Inter B: partitions from 16x16 down to 8x8 (including skip/direct)
  • Ratecontrol: constant quantizer, single or multipass ABR, optional VBV
  • Scene cut detection
  • Adaptive B-frame placement
  • B-frames as references / arbitrary frame order
  • 8x8 and 4x4 adaptive spatial transform
  • Lossless mode
  • Custom quantization matrices
  • Parallel encoding of multiple slices

Advanced settings :

  • Enabling Cabac: approximately 10% bitrate reduction without loss in quality, but is slow.
  • Enabling De-blocking Filter: smooths out visible blocks during an encode (rather than by using post processing to smooth out blocks while decoding). Is a good idea to enable for low bitrate encodes.  

Возможности кодека x264:

  • Контекстнозависимое Адаптивное Бинарное Арифметическое кодирование (CABAC) и Контекстнозависимое Адаптивное Кодирование с Переменной Длиной Кодового Слова (CAVLC)
  • Поддержка нескольких ссылочных кадров
  • Все intra типы макроблоков (16x16, 8x8 и 4x4 — 8x8 это часть AVC HP)
  • Все inter типы макроблоков P фрейма
  • B-Inter типы макроблоков от 16x16 до 8x8
  • Оптимизация отношения вносимых искажений к скорости потока
  • Несколько режимов работы управления скоростью потока: постоянный квантователь, постоянное качество, одно- или многопроходный ABR с режимом VBV
  • Обнаружение смены сцены
  • Адаптивная расстановка B-кадров, с возможностью использования B кадров как ссылочных кадров
  • 8x8 и 4x4 адаптивное пространственное преобразование (High Profile)
  • Режим сжатия без потерь (отклоненный High Profile 4:4:4)
  • Произвольные матрицы квантования (High Profile)
  • Параллельное кодирование на нескольких CPU
  • Поддержка компрессии кадров с чересстрочной разверткой (неадаптивный MBAFF — все макроблоки кодируются в режиме чересстрочных)


Доступные настройки кодека для профессионалов:

  • Кодирование Cabac: приблизительно 10%-ое снижение битрэйта без потери качества.
  • Фильтр деблокирования: показывает видимые блоки во время кодирования (гораздо лучший метод по сравнению с пост-процессингом). Отличный метод для кодирования с использованием низкого битрэйта. 

 

MinGW GCC 4.5.0 x86_32, fprofiled / MinGW GCC 4.5.0 x86_64, fprofiled)

 

Скачать / Download:

 
Unpatched, fprofiled, GCC 4.5.0: (svn rev. 157779, experimental, 2010.03.27); (avs input, lavf input, ffms input, mp4 output.); (ffmpeg svn.22706, ffms2 svn.309, pthreads cvs.2.9.0, gpac cvs.20100328 all static).:
x86:
icon x264 Video Codec rev. 1510 x86 (2.15 Мбайт 2010-03-28 13:30:38) (generic)
icon x264 Video Codec rev. 1510 x86 -march=core2 (2.13 Мбайт 2010-03-28 13:33:53) (-march=core2)
icon x264 Video Codec rev. 1510 x86 -march=amdfam10 (2.15 Мбайт 2010-03-28 13:31:23) (-march=amdfam10 (Athlon X2 7x50, Phenom X3/X4, Phenom II, Athlon II))
x64:

icon x264 Video Codec rev. 1510 x64 (2.22 Мбайт 2010-03-28 13:32:53) (generic)

icon x264 Video Codec rev. 1510 x64 -march=amdfam10 (2.22 Мбайт 2010-03-28 13:33:38) (-march=amdfam10 (Athlon X2 7x50, Phenom X3/X4, Phenom II, Athlon II))
icon x264 Video Codec rev. 1510 x64 -march=core2 (2.2 Мбайт 2010-03-28 14:05:26) (-march=core2)

 

Обновлено 28.03.2010 14:03
 

Новые Файлы

XvidVideo.RU © 2008 - 2010