Log in

View Full Version : S-VOP, Scalable profiles, SL, low bitrate encoding


thoeri-8
7th June 2003, 01:16
Hi!

Is there someone who can explain the basics of the SVOP coding type.
Im using the XviD codec for an project developed in JMF (Real time network streaming of layered video) and is curently working on an MPEG-4 parser to catch the coding type, and coding complexity of the VOP objects. With certain settings of the XviD codec i get a lot of SVOP:s. I cant find any good information on how those sprite-VOP:s works.

Are any of the scalable profiles of MPEG-4 implemented in XviD (Simple scalable profile, Core scalable profile)
What MPEG-4 profiles are implemented in XviD

Is there any SL (Synch Layer)implemented. For example if the VOP:s arive in wrong order at the receiver, is there any functonality that reorder the VOP:S

Is there anyone here that have any hints on settings for low-bitrate realtime encoding with XviD.

And last, thanks to all involved in the development of XviD for making the MPEG-4 standard available to the crowd.

Regards
// Thomas

sysKin
7th June 2003, 09:51
Originally posted by thoeri-8
Is there someone who can explain the basics of the SVOP coding type.
Im using the XviD codec for an project developed in JMF (Real time network streaming of layered video) and is curently working on an MPEG-4 parser to catch the coding type, and coding complexity of the VOP objects. With certain settings of the XviD codec i get a lot of SVOP:s. I cant find any good information on how those sprite-VOP:s works. S-VOPs are like P-VOPs, but with global motion vector. They are just P-frames with GMC, the syntax is almost identical except for VOP header (contains warping points) and one extra one-bit field in every INTER macroblock called "mcsel", which chooses between local and global motion.
Are any of the scalable profiles of MPEG-4 implemented in XviD (Simple scalable profile, Core scalable profile)
What MPEG-4 profiles are implemented in XviDNo. XviD implements simple profile, advanced simple profile (without data partitioning) and one thing from realtime profile (dunno which one) - reduced resolution VOPs.
Is there any SL (Synch Layer)implemented. For example if the VOP:s arive in wrong order at the receiver, is there any functonality that reorder the VOP:SNo, XviD does not buffer frames except when it needs to for B-VOPs. But even then, B-VOPs must arrive in decoding order.
Is there anyone here that have any hints on settings for low-bitrate realtime encoding with XviD.Don't count on it ;) - low-bitrate realtime encoding is not even the goal of XviD.

Regards,
Radek

thoeri-8
13th June 2003, 10:45
Ok, thanks for your answer sysKin.
Though i still have some more questions.

Quote: " ..(dunno which one) - reduced resolution VOPs "

Does this mean that reduced resolution VOPs is a guess of what is implemented from Realtime Profile.

Do you know if im can count any help from the codec to reduce jitter induced by network transport. E.g is there any buffering that helps decoder to keep the right frame rate. If so how do the decoder react when the buffer is full. Does it play the frames faster (as they arrives) or does it drop the frames?

Also, do you know how many bits "vop_time_increment" is. In the papers it says 1-16. Is this dependant of OS or can it change during runtime on the same system.

I feel the parsing can become really complex when bitfields is not constant and the data is not byte aligned.

Thanks again, keep up the good work
// Thomas

sysKin
14th June 2003, 14:53
Originally posted by thoeri-8
Does this mean that reduced resolution VOPs is a guess of what is implemented from Realtime Profile.No. RR VOPs are the only part of realtime profile which is implemented. What I meant is that I don't know what realtime profile it is (there are two right? or more? or maybe I'm wrong and there is only one....)
Do you know if im can count any help from the codec to reduce jitter induced by network transport. E.g is there any buffering that helps decoder to keep the right frame rate. If so how do the decoder react when the buffer is full. Does it play the frames faster (as they arrives) or does it drop the frames?XviD is encoding and decoding library only. It will not help you with any kind of buffering, it is not responsible for playback speed etc.
For decoding, you just give it a frame and recieve a picture in return. Nothing more.
Also note that encoder was not desinged for it - for example, it will have trouble keeping the bitrate you require. You'll probably have to write your own ratecontrol for realtime network coding.
Also, do you know how many bits "vop_time_increment" is. In the papers it says 1-16. Is this dependant of OS or can it change during runtime on the same system.I just checked the source, it seems to be a variable lenght code. Its size depends on time_inc_resolution.
I feel the parsing can become really complex when bitfields is not constant and the data is not byte aligned.Who says it's easy :) the only data which is aligned are start codes.

Regards,
Radek