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 (1377-1391):
- Fix x264_clz on inputs > 1<<31 (though x264 never generates such inputs)
- LAVF/FFMS input support, native VFR timestamp handling, libx264 now takes three new API parameters.
- Periodic intra refresh. Uses SEI recovery points, a moving vertical "bar" of intra blocks, and motion vector restrictions to eliminate keyframes.
Attempt to hide the visual appearance of the intra bar when --no-psy isn't set.
- Fix some invalid reads caught by valgrind. Temporal predictor calculation was misled by invalid reference counts for I-frames.
- More correct padding constants for lowres planes. Since lowres analysis isn't interlace-aware, we don't need to double the vertical padding for interlaced video.
- Faster weightp motion search. For blind-weight dupes, copy the motion vector from the main search and qpel-refine instead of doing a full search. Fix the p8x8 early termination, which had unexpected results when combined with blind weighting. Overall, marginally reduces compression but should potentially improve speed by over 5%.
- Fix x264 compilation on Apple GCC. Apple's GCC stupidly ignores the ARM ABI and doesn't give any stack alignment beyond 4.
- Fix free callback, add x264_encoder_parameters function.
- Simplfy intra mode availability handling. Slightly faster, 1.5kb smaller binary size, less code.
- Faster psy-trellis init. Remove some unncessary zigzags.
- Add getopt_long to the included getopt.c. Fixes option handling on OSs that have a nonworking/missing getopt (e.g. Solaris).
- Fix static pthreads + dynamically linked x264 on win32. Add the necessary static pthread initialization code to a new DLLmain function.
- Faster --me tesa.
- Eliminate intentional array overflow in quant matrix handling. While it probably never caused problems, it was incredibly ugly and evil.
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:
Patched (x264_hrd_pd_interlace.16_r1391.diff), fprofiled, GCC 4.5.0: (svn rev. 156006, experimental, 2010.01.18): |
x264 Video Codec rev. 1391M x86 -march=i686 (3.05 Мбайт 2010-01-18 16:23:29) (-march=i686) (lavf input, ffms input)
|
x264 Video Codec rev. 1391M x86 (3.05 Мбайт 2010-01-18 16:21:20) (generic) (lavf input, ffms input)
|
x264 Video Codec rev. 1391M x86 -march=core2 (3.04 Мбайт 2010-01-18 16:22:10) (-march=core2) (lavf input, ffms input)
|
x264 Video Codec rev. 1391M x86 -march=amdfam10 (3.06 Мбайт 2010-01-18 16:22:51) (-march=amdfam10 (Phenom/Phenom II)) (lavf input, ffms input)
|
x264 Video Codec rev. 1391M x64 (496.21 Кбайт 2010-01-18 16:24:09) (generic)
|
|
Unpatched, generic, fprofiled, GCC 4.5.0: (svn rev. 156006, experimental, 2010.01.168: |
x264 Video Codec rev. 1391 x86 (3.05 Мбайт 2010-01-18 16:24:53) (lavf input, ffms input) |
x264 Video Codec rev. 1391 x64 (493.62 Кбайт 2010-01-18 16:25:29) |
|