~siretart/x264/trunk

  • Committer: Fiona Glaser
  • Author(s): Kieran Kunhya
  • Date: 2010-03-27 19:47:01 UTC
  • Revision ID: git-v1:bb9b16b4722a1273885367f13f448516efe47ed1
Blu-ray support: NAL-HRD, VFR ratecontrol, filler, pulldown
x264 can now generate Blu-ray-compliant streams for authoring Blu-ray Discs!
Compliance tested using Sony BD-ROM Verifier 1.21.
Thanks to The Criterion Collection for sponsoring compliance testing!

An example command, using constant quality mode, for 1080p24 content:
x264 --crf 16 --preset veryslow --tune film --weightp 0 --bframes 3 --nal-hrd vbr --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint 24 --b-pyramid strict --slices 4 --aud --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --sar 1:1 <input> -o <output>

This command is much more complicated than usual due to the very complicated restrictions the Blu-ray spec has.
Most options after "tune" are required by the spec.
--weightp 0 is not, but there are known bugged Blu-ray player chipsets (Mediatek, notably) that will decode video with --weightp 1 or 2 incorrectly.
Furthermore, note the Blu-ray spec has very strict limitations on allowed resolution/fps combinations.
Examples include 1080p @ 24000/1001fps (NTSC FILM) and 720p @ 60000/1001fps.

Detailed features introduced in this patch:

Full NAL-HRD compliance, with both VBR (no filler) and CBR (filler) modes.
Can be enabled with --nal-hrd vbr/cbr.
libx264 now returns HRD timing information to the caller in the form of an x264_hrd_t.
x264cli doesn't currently use it, but this information is critical for compliant TS muxing.

Full VFR ratecontrol support: VBV, 1-pass ABR, and 2-pass modes.
This means that, even without knowing the average framerate, x264 can achieve a correct bitrate in target bitrate modes.
Note that this changes the statsfile format; first pass encodes make before this patch will have to be re-run.

Pulldown support: libx264 allows the calling application to specify a pulldown mode for each frame.
This is similar to the way that RFFs (Repeat Field Flags) work in MPEG-2.
Note that libx264 does not modify timestamps: it assumes the calling application has set timestamps correctly for pulldown!
x264cli contains an example implementation of caller-side pulldown code.

Pic_struct support: necessary for pulldown and allows interlaced signalling.
Also signal TFF vs BFF with delta_poc_bottom: should significantly improve interlaced compression.
--tff and --bff should be preferred to the old --interlaced in order to tell x264 what field order to use.

Huge thanks to Alex Giladi and Lamont Alston for their work on code that eventually became part of this patch.
Filename Latest Rev Last Changed Committer Comment Size
..
common 67 19 years ago Loren Merritt rename 'core/' to 'common/', which avoids conflict Diff
doc 1 20 years ago Laurent Aimar * all: re-import of the CVS. git-svn-id: svn:// Diff
encoder 1 20 years ago Laurent Aimar * all: re-import of the CVS. git-svn-id: svn:// Diff
extras 1 20 years ago Laurent Aimar * all: re-import of the CVS. git-svn-id: svn:// Diff
input 1302 14 years ago Loren Merritt split muxers.c into one file per format simplify i Diff
output 1302 14 years ago Loren Merritt split muxers.c into one file per format simplify i Diff
tools 1 20 years ago Laurent Aimar * all: re-import of the CVS. git-svn-id: svn:// Diff
.gitignore 1408 14 years ago Fiona Glaser Add config.log support Now, if configure fails, yo 167 bytes Diff Download File
AUTHORS 1478 14 years ago Fiona Glaser Mixed-refs support for B-frames Small speed cost, 1.9 KB Diff Download File
File config.guess 1265 14 years ago Fiona Glaser Update config.guess/sub; add Snow Leopard support 43.6 KB Diff Download File
File config.sub 1265 14 years ago Fiona Glaser Update config.guess/sub; add Snow Leopard support 33.4 KB Diff Download File
File configure 1468 14 years ago Fiona Glaser Disable Altivec and VIS optimizations when --disab 19.8 KB Diff Download File
COPYING 1 20 years ago Laurent Aimar * all: re-import of the CVS. git-svn-id: svn:// 17.5 KB Diff Download File
Doxyfile 624 17 years ago Alex Izvorski add ability to generate doxygen documentation; mak 9.6 KB Diff Download File
Makefile 1479 14 years ago Fiona Glaser Timecode input/output --tcfile-in allows a user to 6.7 KB Diff Download File
muxers.h 1479 14 years ago Fiona Glaser Timecode input/output --tcfile-in allows a user to 1.7 KB Diff Download File
File version.sh 1093 15 years ago Loren Merritt remove $ECHON kludge, which broke on SunOS. bring 720 bytes Diff Download File
x264.c 1480 14 years ago Fiona Glaser Blu-ray support: NAL-HRD, VFR ratecontrol, filler, 65.3 KB Diff Download File
x264.h 1480 14 years ago Fiona Glaser Blu-ray support: NAL-HRD, VFR ratecontrol, filler, 28.8 KB Diff Download File
x264dll.c 1389 14 years ago Fiona Glaser Fix static pthreads + dynamically linked x264 on w 1.7 KB Diff Download File