Manao
17th September 2004, 20:12
It concerns every MPEG-4 codec, not only XviD, but I think it's the most appropriate forum to ask my question.
I have an interlaced video. I separate top field from bottom field, and I keep only on of the two field. I encode it, with XviD for example, at different fixed quantizers, in order to draw a rd curve
I draw two curves : one with qpel enabled and one without. Most of the time, the curve with qpel will be lower ( and sometime by more than 0.5 dB ) than the curve with only hpel interpolation. At same quantizer, the video was often around the same size with qpel and without, but psnr was drastically decreased.
I was rather surprised by that fact, since on progressive video, qpel is efficient ( psnr wise, at least ).
So I wondered what could be the explanation. I hacked a codec in order to change the way hpel interpolation is made when qpel is enabled. I change the 4 tap FIR which was used by a simple bilinear interpolation. I then encoded the field, and this time the rd curve got higher with qpel than without it. Of course, the file created was not MPEG-4 compliant, it was just a test.
However, I think that test shows that the 4 tap FIR somehow messes up with the decimation made when I throw away one of the field, but that is just an assumption, nothing more. Does anybody have a clue on what is exactly happening ?
I have an interlaced video. I separate top field from bottom field, and I keep only on of the two field. I encode it, with XviD for example, at different fixed quantizers, in order to draw a rd curve
I draw two curves : one with qpel enabled and one without. Most of the time, the curve with qpel will be lower ( and sometime by more than 0.5 dB ) than the curve with only hpel interpolation. At same quantizer, the video was often around the same size with qpel and without, but psnr was drastically decreased.
I was rather surprised by that fact, since on progressive video, qpel is efficient ( psnr wise, at least ).
So I wondered what could be the explanation. I hacked a codec in order to change the way hpel interpolation is made when qpel is enabled. I change the 4 tap FIR which was used by a simple bilinear interpolation. I then encoded the field, and this time the rd curve got higher with qpel than without it. Of course, the file created was not MPEG-4 compliant, it was just a test.
However, I think that test shows that the 4 tap FIR somehow messes up with the decimation made when I throw away one of the field, but that is just an assumption, nothing more. Does anybody have a clue on what is exactly happening ?