[x264-devel] Levels

Eric Viscito eric at ev-consulting.com
Mon Jan 7 20:00:35 CET 2008


Thank you Mathieu,

Do you agree that x264 should create H.264-conforming streams, unless an
option not to is explicitly selected?  (leaving the question of the "minor
constraints" aside for the moment...)

The test case is indeed extreme.  Most x264 users would filter that noise
down a bit, no?  Does the x264 user community want to use x264 as a
visually lossless format for noisy HD?

BTW, how did you measure the 90 Mb/sec bit rate?  Is that a peak or an
average, using a VBV model, or what?

As for the minor constraints, ignoring them may have no practical impact
most of the time, but it makes the streams possibly non-conforming
nonetheless.  I suspect that it would be difficult to convince the
developers to incorporate these constraints, but I have to give it a plug
while on the subject.  And no, I have no money to pay for it...

Regards,
Eric

On Mon, January 7, 2008 1:16 pm, Mathieu Monnier wrote:
> Re,
>
>> I believe you want it to be easy for x264 to create level-compliant
>> streams;
>
> Yes
>
>> in fact I would argue you want to make it hard not to, unless the
>> user knows what she is doing.  I can appreciate that some x264 users may
>> have environments that do not require strict level compliance, and may
>> wish to disable it.
>
> I don't think so, because it's not simply "some x264 users", it's the
> vast majority of the users out there that don't care at all about level
> compliancy, but just about maximizing quality for a given filesize.
>
> And that's where the problem is. A maximum bitrate does harm the quality
>   because :
>   - it's inherently incompatible with a constant quality
>   - x264 is far from optimality when it comes to VBV handling.
>
> Now, arguably, the max bitrate for a given level is high enough for the
> previous points not to matter, but I've made a quick test (a SD video
> upscaled to 1920x1080, on which i added a gaussian noise of standard
> deviation 4, and i get at quantizer 20 a bitrate of 90 Mbits, while
> level 4.1 ask for 50 Mbits max)
>
> That test case is a bit extreme (heavy noise, very low quant for HD),
> but it's definitely not insane either.
>
> So making x264 use a max bitrate by default isn't a good idea imho (too
> few users really needs it, while it might decrease quality)
>
>> And I think that *certainly* if user actually specifies a level, the
>> stream should not exceed the maximum bitrate.  Specifying a level
>> implies
>> specifying peak rate control.  x264 should definitely adhere to the
>> level
>> that the user specified.
>
> There I heartily agree, and it fits imho in the "easy for x264 to create
> level-compliant streams" motto.
>
>> I don't want to open a can of worms, but why do you ignore what you
>> called
>> the "minor constraints"?  Which ones?  While it may be true that some -
>> even most - decoders will play your stream if you fail to adhere to a
>> given minor constraint such as the number of motion vectors per two
>> consecutive macroblocks, you are taking a chance.
>
> I think the idea here is that it takes time to code, it's boring stuff,
> and it's mostly useless to the developper(s).
>
> Regards,
>
> Mathieu
>
> _______________________________________________
> x264-devel mailing list
> x264-devel at videolan.org
> http://mailman.videolan.org/listinfo/x264-devel
>







More information about the x264-devel mailing list