PDA

View Full Version : I thought interlace had been added


dattrax
3rd August 2006, 12:52
Looking through the previous threads I had the belief that interlacing had been added to x264. I pulled the latest CVS build yesterday and found that the command line option did not work.

Can anyone tell me the status of this feature?

Cheers

Jim

alec_robertson
3rd August 2006, 15:43
Neither Loric's nor Aurora's patches seem to be in the latest svn (r547). But if you revert to r532 you can apply Loric's patches cleanly and get PAFF interlaced encoding working with the following. Note that this includes my dodgy patch to fix a problem with the log file in 2-pass mode, so it ignores the --stats option and just writes to x264_2pass.log.

wget http://web.mit.edu/alecr/www/prm/x264i-patches.tar.bz2
tar xvjf x264i-patches.tar.bz2
svn co -r 532 svn://svn.videolan.org/x264/trunk loric
cd loric
patch -p0 < ../loric_allfixes.diff
patch -p0 < ../loric_interlace.diff
patch -p0 < ../alec_statsfix.diff
./configure
make
install x264 /usr/local/bin/x264i

Then to encode:
x0="-B 2000 -b 2 --b-pyramid -w -8"
xi="--paff --bottom-field-first"
x1="-m 1 --me dia -A none"
x2="-m 6 --me umh -A all"
x264i $xi $x0 $x1 -p 1 -o /dev/null $b.y4m # 26-45fps
x264i $xi $x0 $x2 -p 2 -o $b-v.mkv $b.y4m # 12-21fps

bond
3rd August 2006, 20:27
there have been patches, but they didnt make it to svn. dunno why :(

ChronoCross
3rd August 2006, 21:59
there have been patches, but they didnt make it to svn. dunno why :(

If I remember correctly they do not work with half the options. Until they support all of the svn's current features I don't see pengvado commiting them.

They did work on simple files though which means there is progress. Hopefully they are still working on it.

akupenguin
3rd August 2006, 22:02
There has been progress. All options are now supported, the only problem holding the new patch is that it makes progressive encoding slower.

ChronoCross
3rd August 2006, 22:59
oh yes. I only briefly read about that during my 85 hour work week.

Is it because the intelcaed encoding is built directly into the progressive functions?

Is there any way to separate the two and then run a different portion of code based on if it's interlaced? Just throughing it out there....that's all.

foxyshadis
4th August 2006, 00:06
Assuming the code is similar to the MBAFF patch in lavc, likely only if most functions were duplicated (maintenance nightmare) or turned into compile-time defines (debugging headache). There are probably tricks with profiling to keep the interlaced paths from affecting progressive paths though.