[FFmpeg-devel] Strange qmax behaviour with mpeg2

Joseph Artsimovich joseph at mirriad.com
Fri Sep 14 17:58:42 CEST 2012


On 13/09/2012 19:00, Michael Niedermayer wrote:
> On Thu, Sep 13, 2012 at 09:44:56AM +0100, Joseph Artsimovich wrote:
>> On 12/09/2012 10:41, Michael Niedermayer wrote:
>>> On Wed, Sep 12, 2012 at 09:57:41AM +0100, Joseph Artsimovich wrote:
>>>> On 11/09/2012 16:59, Michael Niedermayer wrote:
>>>>> On Tue, Sep 11, 2012 at 12:02:14PM +0100, Joseph Artsimovich wrote:
>>>>>> Hi,
>>>>>>
>>>>>> When encoding IMX 30 content (I-frame only mpeg2 at fixed bitrate) I
>>>>>> noticed ffmpeg produces lower quality output than other encoders.
>>>>>> Digging deeper, I found strange behaviour of qmax parameter with
>>>>>> mpeg2video encoder that I can only explain away as a bug.
>>>>>>
>>>>>> Before explaining further, here is my command line:
>>>>>> ffmpeg -i input.mov -vtag mx3p -vcodec mpeg2video -r 25 -pix_fmt
>>>>>> yuv422p -minrate 30000k -maxrate 30000k -b:v 30000k -intra -flags
>>>>>> +ildct+low_delay -dc 10 -intra_vlc 1 -non_linear_quant 1 -ps 1 -qmin
>>>>>> 1 -qmax 8 -top 1 -bufsize 1200000 -rc_init_occupancy 1200000
>>>>>> -rc_buf_aggressivity 0.25 -an out.mov
>>>>> should be fixed
>>>> I see this behaviour with the latest ffmpeg from git.
>>> in that case your input file is needed because the issue is fixed
>>> with matrixbench_mpeg2.mpg
>> OK, here you go.
>>
>> A synthetic .png image to encode [14 KB]:
>> http://s17.postimage.org/epzmtwifz/letters.png
>>
>> Command line1:
>> ffmpeg -i letters.png -vtag mx3p -vcodec mpeg2video -r 25 -pix_fmt
>> yuv422p -minrate 30000k -maxrate 30000k -b:v 30000k -intra -flags
>> +ildct+low_delay -dc 10 -intra_vlc 1 -non_linear_quant 1 -ps 1 -qmin
>> 1 -qmax 1 -lmin QP2LAMBDA -top 1 -bufsize 1200000 -rc_init_occupancy
>> 1200000 -rc_buf_aggressivity 0.25 -an letters1.mov
>>
>> Command line2:
>> ffmpeg -i letters.png -vtag mx3p -vcodec mpeg2video -r 25 -pix_fmt
>> yuv422p -minrate 30000k -maxrate 30000k -b:v 30000k -intra -flags
>> +ildct+low_delay -dc 10 -intra_vlc 1 -non_linear_quant 1 -ps 1 -qmin
>> 1 -qmax 12 -lmin QP2LAMBDA -top 1 -bufsize 1200000
>> -rc_init_occupancy 1200000 -rc_buf_aggressivity 0.25 -an
>> letters12.mov
>>
>> The two command lines only differ by qmax and output file name. The
>> output files are exactly the same size, which indicates even
>> qmin=qmax=1 case fits into the specified bitrate. The second file
>> has visible compression artifacts, particularly near the bottom.
>> -lmin QP2LAMBDA doesn't seem to make any difference.
> md5sum disagrees:
> 2939383798ea9d8deb709aa47dcf9ca7  letters12.mov
> 2939383798ea9d8deb709aa47dcf9ca7  letters1.mov
My apologies. I wasn't running the latest build. With the latest build I 
get the same md5 and no more quality issues.

-- 
Joseph Artsimovich
Senior C++ Applications Developer
MirriAd Ltd



More information about the ffmpeg-devel mailing list