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 (1650-1659):
- Fix compilation on ARM w/ Apple ABI;
- Fix SIGPIPEs caused by is_regular_file checks. Check to see if input file is a pipe without opening it.;
- Use -fno-tree-vectorize to avoid miscompilation. Some versions of gcc have been reported to attempt (and fail) to vectorize a loop in plane_expand_border. This results in a segfault, so to limit the possible effects of gcc's utter incompetence, we're turning off vectorization entirely. It's not like it ever did anything useful to begin with.;
- Improve HRD accuracy. In a staggering display of brain damage, the spec requires all HRD math to be done in infinite precision despite the output being of quite limited precision. Accordingly, convert buffer management to work in units of timescale. These accumulating rounding errors probably didn't cause any real problems, but might in theory cause issues in very picky muxers on extremely long-running streams.;
- SSE4 and SSSE3 versions of some intra_sad functions. Primarily Nehalem-optimized.;
- Improve 2-pass bitrate prediction. Adapt based on distance to the end in bits, not in frames. Helps in videos with absurdly simple end sections, e.g. black frames.;
- Use threadpools to avoid unnecessary thread creation. Tiny performance improvement with fast settings and lots of threads. May help more on some OSs with slow thread creation, like OS X. Unify inconsistent synchronized abbreviations to sync.;
- Open-GOP support. Allows B-frames immediately prior to keyframes (in display order). This helps reduce keyframe popping and improve compression with short keyframe intervals. Due to a staggering display of braindamage in the Blu-ray spec, two open-GOP modes are available. The two modes calculate keyframe interval differently: one based on coded distance and one based on display distance. The latter is superior compression-wise, but for no comprehensible reason, Blu-ray requires the former if open-GOP is used.'
- Lookaheadless MB-tree support. Uses past motion information instead of future data from the lookahead. Not as accurate, but better than nothing in zero-latency compression when a lookahead isn't available. Currently resets on keyframes, so only available if intra-refresh is set, to avoid pops on non-scenecut keyframes. Not on by default with any preset/tune combination; must be enabled explicitly if --tune zerolatency is used. Also slightly modify encoding presets: disable rc-lookahead in the fastest presets. Enable MB-tree in "veryfast", albeit with a very short lookahead.;
- Interactive encoder control: error resilience. In low-latency streaming with few clients, it is often feasible to modify encoder behavior in some fashion based on feedback from clients. One possible application of this is error resilience: if a packet is lost, mark the associated frame (and any referenced from it) as lost. This allows quick recovery from errors with minimal expense bit-wise. The new i_dpb_size parameter allows a calling application to tell x264 to use a larger DPB size than required by the number of reference frames. This lets x264 and the client keep a large buffer of old references to fall back to in case of lost frames. If no recovery is possible even with the available buffer, x264 will force a keyframe. This initial version does not support B-frames or intra refresh. Recommended usage is to set keyint to a very large value, so that keyframes do not occur except as necessary for extreme error recovery. Full documentation is in x264.h. Move DTS/PTS calculation to before encoding each frame instead of after. Improve documentation of x264_encoder_intra_refresh.
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%-ое снижение битрэйта без потери качества.
- Фильтр деблокирования: показывает видимые блоки во время кодирования (гораздо лучший метод по сравнению с пост-процессингом). Отличный метод для кодирования с использованием низкого битрэйта.
Cross-MinGW with GCC 4.5.1 x86_32, fprofiled / Cross-MinGW with GCC 4.5.1 x86_64, fprofiled)
Скачать / Download:
Unpatched, fprofiled, GCC 4.5.1: (svn rev. 161353, Pre-Release, 2010.06.25); (avs input, lavf input, ffms input, mp4 output.); (ffmpeg svn.23774, ffms2 svn.312, pthreads cvs.2.9.0, gpac cvs.20100625, all static).: |
x86: |
x264 Video Codec rev. 1659 x86 (2.25 Мбайт 2010-06-25 16:30:08) (generic) |
x264 Video Codec rev. 1659 x86 -march=amdfam10 (2.25 Мбайт 2010-06-25 16:29:20) (-march=amdfam10 (Athlon X2 7x50, Phenom X3/X4, Phenom II, Athlon II)) |
x264 Video Codec rev. 1659 x86 -march=core2 (2.23 Мбайт 2010-06-25 16:28:21) (-march=core2) |
|
x64: |
x264 Video Codec rev. 1659 x64 (2.34 Мбайт 2010-06-25 16:27:13) (generic)
|
x264 Video Codec rev. 1659 x64 -march=amdfam (2.33 Мбайт 2010-06-25 16:24:13) (-march=amdfam10 (Athlon X2 7x50, Phenom X3/X4, Phenom II, Athlon II)) |
x264 Video Codec rev. 1659 x64 -march=core2 (2.31 Мбайт 2010-06-25 16:23:26) (-march=core2) |
|