[MEncoder-users] Cannot achieve better picture quality with MPEG2 - help needed

Corey Hickey bugfood-ml at fatooh.org
Tue May 27 19:13:39 CEST 2008


Nicolas Hesler wrote:
> Corey Hickey wrote:
>> This appears to be an effect of the colorspace conversion from BGRA to
>> YV12. -sws 8 appears to produce more even banding. You can try the
>> different scalers yourself. For example:
>>
>> $ mplayer gradient.avi -vf scale=720:480,format=yv12 -sws 8
> 
> I've uploaded another PSD comparison to 
> ftp://upload.mplayerhq.hu/MPlayer/incoming/
> 
> The file is called: rgb24_vs_rgb32.psd

Personally, I would prefer a tar or zip of png files...

> It seems as though the colorspace conversion is a part of the problem.  
> If I use a rgb24 source (FFV1 file) instead of the rgb32 source, the 
> colors are more accurate.  I've broken the PSD file into several layers 
> to show screenshots of the same gradient.  If you look at all of the 
> samples (rgb32 vs rgb24), the green in the upper left corner of the 
> frame is much closer to the original in the rgb24 samples (perceptually, 
> the colors are better everywhere in the rgb24 screenshots).    A quick 
> test with ffmpeg reveals that the same problem (inaccurate colors with 
> rgb32 source) exists in ffmpeg.  Is this a bug?  If not, how can it be 
> explained/fixed?

As far as I know, mplayer and ffmpeg are using the same libswscale code
for the conversion. Either way, libswscale is part of the ffmpeg
project, so you'll need to ask on the ffmpeg-user mailing list.

I don't think I can help you further on this subject.

> Now, the secondary issues is the complexity of the banding.  In all of 
> the rgb32 screenshots, the banding is more complex (retains more 
> detail??) than the rgb24 screenshots.   Can I improve the complexity of 
> the banding with the rgb24 source?  Is this another symptom of the 
> colorspace conversion???

I would expect dithering to help with that, but I don't know of any way
to dither with mencoder.

If all else fails, you can dump the individual frames, process them
externally with imagemagick or something, and then encode from the
processed frames.

-Corey



More information about the MEncoder-users mailing list