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 (1996-2008):
-
Fix bitstream reallocation with slice-max-size + MBAFF;
-
Fix VBV bug with MinCR limit;
-
Fix crash with VBV + forced QP;
-
Fix VBV bug caused by zero i_row_satd value for first and last row;
-
Make --profile main/baseline force off CQMfile;
-
Make left_index_table const. Should allow for some missed compiler optimizations in macroblock_cache_load;
-
Inline emms instructions on x86 if possible;
-
Use -vsync 0 with ffmpeg regression test;
-
AVX mbtree_propagate. Up to ~20-30% faster than SSE2 on Sandy Bridge;
-
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;
-
Make ratecontrol_mb less slow;
-
Fix MBAFF row VBV ratecontrol. Reverts most of r1984 and implements a much simpler solution;
-
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.
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%-ое снижение битрэйта без потери качества.
-
Фильтр деблокирования: показывает видимые блоки во время кодирования (гораздо лучший метод по сравнению с пост-процессингом). Отличный метод для кодирования с использованием низкого битрэйта.
Unpatched, fprofiled, GCC 4.6.1: (svn rev. 175069, Pre-Release , 2011.06.15); (avs input, lavf input, ffms input, mp4 output.); (ffmpeg git-7f2228d , ffms2 svn.473, pthreads 2.9.0.0 CVS-20110616, gpac svn.3399, all static).:
|