[Ffmpeg-devel] Comparison of gray codecs

Philippe De Muyter phdm
Tue Sep 19 19:01:35 CEST 2006


Hi all,

I have tried to compress a 2.1G grayscale (y8) rawvideo 640x480 30fps video
(about 4 minutes) with all codecs found in the ffmpeg distro (SVN-r6290),
with the following command line :

	./ffmpeg -y -i /tmp/rawvideo.avi -vcodec $codec /tmp/gray-$codec.avi

Below are the results.

All comparisons are made using an avi format output file :

		Announced		Replay
		Output			Quality
asv1		gray		-	-	encode crash
asv2		gray		-	-	encode crash
dvvideo		gray		-	-	decode failure
ffv1		gray		-	-	format not supported
ffvhuff		yuv420p		1.7G	Good	0m34.954s
flv		yuv420p		9.8M	Bad	0m47.803s
h261		gray		-	-	only YUV420 is supported
h263		yuv420p		-	-	size not valid
h263p		yuv420p		9.9M	Bad	0m46.182s
h264		yuv420p		13M	Bad	4m43.499s
huffyuv		yuv422p		2.0G	Good	0m46.260s
jpegls		gray		-	-	decode crash
ljpeg		gray		-	-	colorspace not supported
mjpeg		yuvj420p	63M	Bad	0m33.014s
mpeg1video	yuv420p		6.6M	Bad	0m45.269s
mpeg2video	yuv420p		7.7M	Bad	0m45.328s
mpeg4		yuv420p		-	-	timebase not supported
msmpeg4		yuv420p		6.0M	Bad	0m49.557s
msmpeg4v1	yuv420p		-	-	decode failure
msmpeg4v2	yuv420p		7.0M	Bad	0m48.596s
rv10		yuv420p		9.8M	Black	0m48.872s
rv20		yuv420p		6.7M	Black	1m0.391s
snow		gray		-	-	codec under development
svq1		yuv410p		440M	Good	68m0.614s
wmv1		yuv420p		6.2M	Bad	0m49.620s
wmv2		gray		-	-	only YUV420 is supported
zlib		gray		-	-	Format 11 not supported

Summary :

None of the tested codec succeeds in compressing gray video preserving
gray pixels.

Many codecs fail for various reason at encoding or decoding stage, either
by crashing or by refusing to work for some reason, given in the table.
rv10 and rv20 do not crash, but give a black screen when replayed.

All the codecs that succeeds in compressing to a readable file first
convert to some yuv4* variant thus actually producing y4 compressed
files.

Of the one that make a visually good-looking compressed file, ffvhuff and
huffyuv actually produce files that are larger than what an equivalent y4 file
would be, and svq1 takes a ridiculous amount of time (68 minutes on a 2.60GHz
Pentium 4).

The remaining ones produce big squares when replayed, even when the original
picture does not change for several seconds, but I admit I did not give
any special parameter when compressing.

Can anyone give me some advice to other codecs that I should test or some
parameters I should give, or some codecs that could easily be modified to
actually accept working with my source stream ?

Thanks in advance

Philippe
-- 




More information about the ffmpeg-devel mailing list