RE: Questions regarding your's decoding process????????????????
"Amit Bhushan" <[email protected]>
| Newsgroups | gmane.comp.video.xvid.user |
|---|---|
| Message-ID | <[email protected]> |
Hello,
Thanks for the reply but what i wanted to ask is, will be clear by seeing the output of the encoder's output.
1.> The encoder only takes intra frames even if i give it 12 frames here's the output of encoder.
Encoder o/p (Taking all as intra frames)
Frame 0: intra 1, enctime= 15.0 ms, size= 4171bytes
Frame 1: intra 0, enctime= 125.0 ms, size= 1073bytes
Frame 2: intra 0, enctime= 47.0 ms, size= 1186bytes
Frame 3: intra 0, enctime= 47.0 ms, size= 1629bytes
Frame 4: intra 0, enctime= 47.0 ms, size= 1162bytes
Frame 5: intra 0, enctime= 62.0 ms, size= 1181bytes
Frame 6: intra 0, enctime= 47.0 ms, size= 1600bytes
Frame 7: intra 0, enctime= 47.0 ms, size= 1151bytes
Frame 8: intra 0, enctime= 47.0 ms, size= 1166bytes
Frame 9: intra 0, enctime= 47.0 ms, size= 1620bytes
Frame 10: intra 0, enctime= 47.0 ms, size= 1145bytes
Frame 11: intra 0, enctime= 47.0 ms, size= 1177bytes
Avg: enctime 52.08 ms, 19.20 fps, filesize 1521 bytes
Decoder o/p (Frame skiping)
Frame 0: dectime = 16.0 ms length= 4166 bytes
Frame 1: dectime = 16.0 ms length= 1069 bytes
Frame 2: dectime = 0.0 ms length= 1181 bytes (Frame skiping)
Frame 3: dectime = 15.0 ms length= 1624 bytes
Frame 4: dectime = 0.0 ms length= 1157 bytes (Frame skiping)
Frame 5: dectime = 16.0 ms length= 1176 bytes
Frame 6: dectime = 0.0 ms length= 1595 bytes (Frame skiping)
Frame 7: dectime = 15.0 ms length= 1146 bytes
Frame 8: dectime = 0.0 ms length= 1161 bytes (Frame skiping)
Frame 9: dectime = 16.0 ms length= 1615 bytes
Frame 10: dectime = 0.0 ms length= 1141 bytes (Frame skiping)
Frame 11: dectime = 16.0 ms length= 1172 bytes
Avg: dectime 9.17 ms, 109.09 fps, mp4 stream size =1516
Why is this happening?????
2.> in decoder.c in decoder_create function
it is given that
mb_width=(dec->width+15)/16
mb_height=(dec->height+15)/16.
why they are adding 15 and divding by 16.why is the above calculation done if it's always going to be 11 or 9 (depending on type) if you are using abs() values.
3.> what is the variable stride ,src_stride, y_stride and uv_stride used for. Can you please explain in details about it???
Regards
Amit Bhushan.
-----Original Message-----
From: Christoph Lampert [mailto:[email protected]]
Sent: Friday, 10 January 2003 6:02 PM
To: [email protected]
Subject: Re: [XviD-users] Questions regarding your's decoding
process????????????????
Hallo,
sorry if I don't answer all your questions. I don't understand all of
them, and some you can also very easily answer yourself by reading the
code.
nevertheless:
On Fri, 10 Jan 2003, Amit Bhushan wrote:
> 1) The decoder is decoding in INTRA mode only. is this so because the encoder is coding in INTRA mode only. how to change this in the encoder so that it codes in "P" and "B" mode also. Whether the sequence can be hard coded only or can be chosen in run time that is while the encoder is running. if it is hard coded how to the change this configuration of giving the sequence of the type of encoding modes(e.g INTRA or P-INTER or B-INTER) for the frames for encoding.
I don't know what you mean. The decoder can handle I-VOP,P-VOP,B-VOP and
S(GMC)-VOP (and also N-VOPs). It support
INTRA,INTER,INTER4V,SKIP,FORWARD,BACKWARD,INTERPOLATE and DIRECT MB
types. The same holds for the encoder.
> 2) The decoder is skipping some frames if i give an input of large frames say 30 or 40. is that also can be changed. if possible how?
I also don't know what you mean. When called correctly, the decoder does
not skip any frame, unless they are encoded as "N-VOPs".
> 3)In decoder.c, in the function 'read_video_packet_header' for reading the macroblock number it is reading 9 bits only while the MPEG-4 draft says that the number of bits can be upto 14. why is it reading 9 bits only?
This might be a decoder bug. However, this field is only in streams with "short header", and XVID
doesn't create those, so it won't happen for XVID encoded material.
> 5)is that in the function 'read_video_packet_header' it is reading 9 bits only, because it can support only upto CIF format pictures only? is it so then it can have is 512 macroblocks only in a video packet? is it correct?
No.
> 4)whether a video packet will contain data of one frame only?
yes
> 5)In decoder.c in decoder_create what is param->height or dec->height and param->width or dec->width. what are these values say for a qcif picture whether it will 144 and 176 respectively.
yes
> 6) in decoder.c in decoder_create function
> it is given that
> mb_width=(dec->width+15)/16
> mb_height=(dec->height+15)/16.
> why they are adding 15 and divding by 16. what is actually mb_width and mb_height. say for a macro block it will be always 16x16. why is the above calculation done.
mb_width and mb_height are number of macroblocks in width and height.
for qcif it would be 11 and 9.
> 7)in the same function
> there is
> x=bound%mb_width
> y=bound%mb_width.
>
> what are this x and y used for and what is the above calculation meant for?
the lines are
x = bound % dec->mb_width;
y = bound / dec->mb_width;
so for macroblock with number "bound" you get its x and y position
in the macroblock grid.
> 8)in colorspace.c
> what is the variable stride ,src_stride, y_stride and uv_stride used for?
the "stride" is the difference between the addresses of a image line x
and the image line x+1
gruel
_______________________________________________
XviD-users mailing list
[email protected]
http://list.xvid.org/mailman/listinfo/xvid-users