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 (2019-2037):
-
Fix incorrect chroma swap for some input pixfmts. Problem occurred if pixfmt of lavf/ffms input was PIX_FMT_RGB24 or PIX_FMT_YUV444P.;
-
Fix nalu_process callback with HRD;
-
Fix use of deprecated libavcodec functions. Replace avcodec_open with avcodec_open2. Now requires libavcodec 53.6.0 or newer;
-
Fix spurious "stream properties changed" with --seek option on some inputs;
-
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;
-
Use $optarg for some configure options;
-
Improve configure help;
-
Various cosmetics;
-
Add support for the new (4:4:4) colorspaces to x264_picture_alloc;
-
Shrink two arrays;
-
Optimize frame_deblock_row;
-
Clean up MBAFF deblocking code;
-
Function-pointerify MBAFF deblocking functions;
-
Optimize macroblock_deblock_strength, add more early terminations;
-
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;
-
Some trivial changes to RD thresholds. The output-changing portion of the next patch;
-
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;
-
Improved p8x4/4x8 search decision. Use the same thresholding as for p16x8/8x16. Does p8x4/4x8 search more often, for a small compression improvement.
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.2: (svn rev. 176674, Pre-Release , 2011.07.23); (avs input, lavf input, ffms input, mp4 output.); (ffmpeg git-9c2651a , ffms2 svn.508, pthreads 2.9.0.0 CVS-20110710, gpac svn.3442, all static).:
|