[Ffmpeg-devel] interlace and motion artifacts

Dan Maas dmaas
Thu Feb 16 02:29:47 CET 2006


> So, I hacked myself a new command-line switch that cycles the image up
> by one scanline. Attached. Use "-shift 1" to reverse the field
> order. I only implented this for PIX_FMT_YUV422P but it should be
> easy to do for other formats.

It should handle 4:1:1 as-is, you can change this:

if(enc->pix_fmt != PIX_FMT_YUV422P) {

to this:

if((enc->pix_fmt != PIX_FMT_YUV422P) && (enc->pix_fmt != PIX_FMT_YUV411P)) {

for 4:2:0, you could do a quick hack by shifting luma as in my patch,
and just leaving chroma alone. (change the upper limit of the first
"for" loop to "chan < 1"). Of course, to do it "right" in 4:2:0 you
would have to implement a real multi-tap resampling filter to shift
the chroma by one-half sample.

(footnote: I was surprised to discover that the chroma up/down
sampling code in img_convert() uses point sampling. Are there any
plans to implement real multi-tap filters?)

Regards,
Dan





More information about the ffmpeg-devel mailing list