[x264-devel] Issue when encoding a sequence that starts with a static image

Jason Garrett-Glaser darkshikari at gmail.com
Sun Oct 10 23:39:39 CEST 2010


On Sun, Oct 10, 2010 at 2:33 PM, Emmanuel Weber <weberemmanuel at gmail.com> wrote:
> Hi,
>
> I am trying to encode some sequences which start with a static image
> followed by some video content.
> The static image is displayed for several seconds and then the video starts.
>
> What is happening is that all the frames after the IDR and until the
> first frame of the video sequence are encoded fully with SKIP MBs. The
> static image appear blurry and is never improved even though there are
> bits available.
>
> This is done using the zerolatency, superfast preset and baseline
> profile (it seems the problem happens with other presets as long as
> zerolatency is used).
>
> Using the cli, my command line looks as follow:
> --tune zerolatency --preset superfast --profile baseline --bitrate
> 1500 --ref 1 -o test.264 --input-res 1280x720 test.yuv
>
> In order to reproduce you just need to generate a sequence containing
> the same frame repeated many times.
>
> I have looked at the code, and it seems that in the get_qscale
> function, we fall in the case where no texture bits and no mvbits have
> been generated so we use the previous q value which in turn cause the
> next frame to be encoded fully with SKIP MB etc

Using 1-pass ABR mode is strongly discouraged; it's not well-optimized
and has many issues like these.  If you're in a zero latency
environment, you almost surely need some sort of VBV caps, and you
probably want to be using CRF mode instead.

Dark Shikari


More information about the x264-devel mailing list