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 (2045-2057):
-
Avoid using deprecated libavformat functions. Replace av_find_stream_info with avformat_find_stream_info. Now requires libavformat 53.3.0 or newer.;
-
Re-add support for glibc <2.6, which doesn't have CPU_COUNT;
-
Fix "--asm avx". Previously required "--asm sse2fast,fastshuffle,sse4.2,avx";
-
Fix two bugs in 4:4:4 chroma weightp analysis. Caused slightly worse compression;
-
Cosmetics: s/mmxext/mmx2/;
-
Import x86inc.asm patches from libav;
-
asm cosmetics: INIT_MMX/XMM/YMM now support a cpuflags argument. Reduces the number of macro args that need to be passed around. Allows multiple implementations of a given macro (e.g. PALIGNR) to check cpuflags at the location where the macro is defined, instead of having to select implementations by %define at toplevel. Remove INIT_AVX, as it's replaced by "INIT_XMM avx". This commit does not change the stripped executable;
-
asm cosmetics part 2. These changes were split out of the cpuflags commit because they change the output executable;
-
asm cosmetics: merge all the variants of ABS macros;
-
Remove some unused, broken, and/or useless functions. Unused frame_sort. Unused x86_64 dequant_4x4dc_mmx2, predict_8x8_vr_mmx2. Unused and broken high_depth integral_init*h_sse4, optimize_chroma_*, dequant_flat_*, sub8x8_dct_dc_*, zigzag_sub_*. Useless high_depth dequant_sse4, dequant_dc_sse4;
-
Enable some existing asm functions that were missing function pointers. pixel_ads1_avx, predict_8x8_hd_avxx. High bit depth mc_copy_w8_sse2, denoise_dct_avx, prefetch_fenc/ref, and several pixel*sse4.;
-
asm cosmetics: base-4 constants for shuffles;
-
Improve support for varying resolution between passes. Should give much better quality, but still doesn't support MB-tree yet. Also check for the same interlaced options between passes. Various minor ratecontrol 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.2: (svn rev. 177604, Pre-Release , 2011.08.09); (avs input, lavf input, ffms input, mp4 output.); (ffmpeg git-0d4ea7b , ffms2 svn.519, pthreads 2.9.0.0 CVS-20110710, gpac svn.3530, all static).:
|