Re: On the compression ratio of xvidcore

Christoph Lampert <[email protected]>
Newsgroups gmane.comp.video.xvid.devel
Message-ID <[email protected]>
Hi,

MPEG-4 doesn't have a fixed compression ratio, it depends
on the setting of the quantization parameters. The stronger
the quantization, the higher the compression but the worse
the picture quality.

The default in xvid_encraw is a quantizer of 2, which is
smallest value (highest quality) that makes sense. You can
encode with other compression ratios either by specifying
a pre-defined output bitrate (e.g. 100kb/s) :

./xvid_encraw -single -bitrate 100

or a fixed quantization parameter (here Q ):

./xvid_encraw -single -bitrate 100 -zq 0 Q

Cheers,
Christoph



lingan wrote:
> Hello, dear:
>    I'm studying to use xvidcore to encode yuv images into mpeg4, But
> I find the compression ratio I get is quite low. For example, I use
> the following command to encode a yuv file :
> p9322@wllab1:~/program863/xvidcore-1.1.3/examples$ ./xvid_encraw -i
> coastguard_cif.yuv -type 0 -w 352 -h 288 -frames 1000 -o
> coastguard.mpeg4 -max_key_interval 10
> then :
> p9322@wllab1:~/program863/xvidcore-1.1.3/examples$ ls -lh coastguard*
> -rw-r--r-- 1 p9322 p9322  44M 2008-10-31 17:35 coastguard_cif.yuv
> -rw-r--r-- 1 p9322 p9322 6.1M 2008-11-21 22:35 coastguard.mpeg4
>
> you see? the compression ratio is only about 7.
> this is part of the encoding output info:
> xvid_encraw - raw mpeg4 bitstream encoder written by Christoph Lampert
> 2002-2003
>
>    0: key=2, time=     21, len=   36006 | type=I, quant=  2, len=   36006
>    1: key=0, time=     24, len=   19250 | type=P, quant=  2, len=   19250
>    2: key=0, time=     28, len=   20667 | type=P, quant=  2, len=   20667
>    3: key=0, time=     23, len=   20431 | type=P, quant=  2, len=   20431
>    4: key=0, time=     29, len=   22397 | type=P, quant=  2, len=   22397
>    5: key=0, time=     23, len=   20005 | type=P, quant=  2, len=   20005
>    6: key=0, time=     28, len=   21632 | type=P, quant=  2, len=   21632
>    7: key=0, time=     27, len=   21329 | type=P, quant=  2, len=   21329
>    8: key=0, time=     23, len=   20117 | type=P, quant=  2, len=   20117
>    9: key=0, time=     24, len=   20940 | type=P, quant=  2, len=   20940
>   10: key=2, time=     11, len=   36691 | type=I, quant=  2, len=   36691
>   11: key=0, time=     34, len=   18852 | type=P, quant=  2, len=   18852
>   12: key=0, time=     35, len=   21458 | type=P, quant=  2, len=   21458
>   13: key=0, time=     34, len=   20337 | type=P, quant=  2, len=   20337
> the resulted P frames are not much larger than I frames.
>
> Then I use xvidcore to encode the webcam stream, the output info is as
> follows:
> frame: key=2,len=   14441 | type=^@, quant=  0, stat_len=       0
> frame: key=0,len=       0 | type=^@, quant=  0, stat_len=       0
> frame: key=0,len=    8593 | type=I, quant=  2, stat_len=   14441
> frame: key=0,len=    2676 | type=B, quant=  4, stat_len=    2676
> frame: key=2,len=   14325 | type=P, quant=  2, stat_len=    8593
> frame: key=0,len=    8105 | type=I, quant=  2, stat_len=   14325
> frame: key=0,len=    2813 | type=B, quant=  4, stat_len=    2813
> frame: key=2,len=   14290 | type=P, quant=  2, stat_len=    8105
> frame: key=0,len=    6932 | type=I, quant=  2, stat_len=   14290
> ......
>
> The second column is the length of coded frame. My webcam is 320x240,
> so the compression ratio is about 320x240x3/10000=23. And strangely,
> the volume of P frames is even larger than I frames sometimes.
>
> It's said that mpeg4 can achieve at most 400 compression ratio.
> Generally, it can achieve 6,70 compression ratio easily. But why the
> CR I get is so small ? Any suggestions?
>
> The version is xvidcore-1.1.3, and the OS is debian linux-2.6.21.7.
> Thank you very much!!
> _______________________________________________
> XviD-devel mailing list
> [email protected]
> http://list.xvid.org/mailman/listinfo/xvid-devel
>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.