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 (1948-1995):
-
Fix regression in r1944. Broke sliced-threads + slice-max-size/slice-max-mbs.;
-
Check for invalid pixfmts in lavf demuxer;
-
Fix bug in --b-adapt 2 with --rc-lookahead >248. Problem caused by buffer overflow in strcpy;
-
More validation of input parameters. This fixes a crash with --me umh and insane values of --me-range;
-
Fix bugs with ratecontrol reconfiguration. Initialization of some parameters was missed or wasn't synchronized with other threads;
-
Use float constants in qp rounding. Slight performance improvement and fixes slight difference in output between gcc 3.4 and 4.5;
-
Fix zone bitrate multiplier and QP forcing in 2-pass mode. Previously zone changes could affect frames outside of the given frame range (around 20 neighboring frames);
-
Fix bug in NAL buffer resizing. Also properly terminate if NAL buffer resizing fails;
-
MBAFF: Save interlace decision for all macroblocks;
-
MBAFF: Disable adaptive MBAFF when subme 0 is used;
-
MBAFF: Store left references in a table;
-
MBAFF: Store references to the two left macroblocks;
-
MBAFF: Neighbour calculation. Back up intra borders correctly and make neighbour calculation several times longer;
-
MBAFF: Inter support;
-
MBAFF: Disallow skip where predicted interlace flag would be wrong;
-
MBAFF: Copy deblocked pixels to other plane;
-
MBAFF: Fix mvy bounds. Fix MV clipping;
-
MBAFF: Track what interlace decision the decoder is using;
-
MBAFF: CABAC encoding of skips;
-
MBAFF: Clamp MVDs to 66 instead of 33;
-
MBAFF: Update x264_cabac_mvd_sum_mmxext to work with larger MVDs. Author: Loren Merritt <
Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript
>;
-
MBAFF: Add mbaff deblock strength calculation. Move call to deblock_strength to 264_macroblock_deblock_strength to keep deblock strength calculation in one place;
-
MBAFF: Move common code from deblock functions;
-
MBAFF: Deblocking support;
-
MBAFF: Add extra data to the deblock strength structure;
-
MBAFF: Implement left edge deblocking functions;
-
MBAFF: First edge deblocking;
-
MBAFF: Use both left macroblocks for ref_idx calculation;
-
MBAFF: Calculate bipred POCs. Need to calculate two tables for the cases where the current macroblock is progressive or interlaced as refs are calculated differently for each;
-
MBAFF: Direct temporal;
-
MBAFF: Direct spatial;
-
MBAFF: Create a VSAD DSP function. x86 assembly by Jason Garrett-Glaser. This gives roughly 30x speed increase over the C version;
-
MBAFF: Enable adaptive MBAFF with VSAD decision;
-
MBAFF: Adaptive quantization. Compute energy for interlaced and progressive choices and pick the least;
-
MBAFF: Add support for slice-max-mbs;
-
MBAFF: Add support for slice-max-size. Also add slice-max-size to the regression tests;
-
MBAFF: Modify ratecontrol to update every two rows;
-
MBAFF: Don't call zigzag_init for every mb;
-
MBAFF: Make interlaced support a compile time option;
-
MBAFF: Template cache_load and cache_load_neighbours;
-
MBAFF: Template direct spatial;
-
MBAFF: Add frame/field MB stats;
-
MBAFF: Improve handling of bottom row mod32 padding. Force skip on any MBs entirely outside the frame If an mb pair in the bottom row is chosen to be progressive, re-pad the bottom rows progressively;
-
MBAFF: Add regularization to VSAD metric. Bias towards the MBAFF decisions made in neighboring mb pairs. ~2% better compression on a random 1080i HDTV source;
-
Add checkasm tests for memcpy_aligned, memzero_aligned. Also make memcpy_aligned support sizes smaller than 64;
-
Faster pixel_memset. ~4x faster. Also inline plane_expand_border for improved constant propagation;
-
Slightly speed up x86 CABAC asm. Also make some various cleanups;
-
Improve build system capabilities. Make static lib and CLI optional. Support linking CLI to system libx264. Don't strip by default, to match GNU packaging guidelines.
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. 173710, Pre-Release , 2011.05.12); (avs input, lavf input, ffms input, mp4 output.); (ffmpeg git-92ccdfb, ffms2 svn.462, pthreads 2.9.0.0 CVS-20110512, gpac svn.3102, all static).:
|