PDA

View Full Version : x264 in wikipedia


ramprasad85
23rd October 2009, 16:46
the page at http://en.wikipedia.org/wiki/H.264/MPEG-4_AVC#Software_encoder_feature_comparison says x264 does not "Fully support" Baseline, extended and high profiles.
what are the features not supported by x264's high profile?

LoRd_MuldeR
23rd October 2009, 16:49
I think that statement makes no sense. x264 can produce a 100% "Baseline" or "High" profile conform streams. That's for sure. So those profiles are fully supported!

Maybe it doesn't use all "features" allowed by those profiles, but who cares? A profile says which features of H.264 you are (dis)allowed to use. It surely does NOT say you must use all of them ;)

It's a decoder that must implement ALL features of a profile, because a conform stream may potentially use them.

But using features in an encoder that are completely useless, just because they are allowed, makes no sense. Also from all that I know "Extended" profile has NO practical application...

Please see:
http://forum.doom9.org/showpost.php?p=1336608&postcount=26

PatlaborForce
23rd October 2009, 16:55
I think that statement makes no sense. x264 can produce a 100% "Baseline" or "High" profile conform streams. That's for sure. So those profiles are fully supported!

Actually it makes lots of sense as x264 doesn't support all features of all those profiles (useless or not it really doesn't matter). By saying they aren't 100% supported they aren't saying non-conforming to the profile because of course using a proper subset of a profile's features is still considered conforming. You're making much ado about nothing.

Sagekilla
23rd October 2009, 18:04
I think it would be more accurate if it said "Produces compliant X profile streams" and "Implements all features in Profile X."

To say it does not "Fully support" sounds like you can't output a stream of a given profile.

LoRd_MuldeR
23rd October 2009, 18:09
When talking about an encoder, then "supporting a profile" is naturally defined as being able to produce a stream that complies to that profile. Therefore "fully" supporting a profile makes no sense. Either an encoder is able to produce a conforming stream or it is not. If you say an encoder doesn't "fully support" a profile, then that implies the encoder isn't guaranteed to produce a complaint stream - which clearly is wrong in this case. Saying that x264 doesn't fully support "High" profile is misleading, plain and simple. Also with PatlaborForce's definition no existing encoder would fully support all H.264 profiles, because there are so many "features" defined in the H.264 standard that have zero piratical purpose and therefore no real encoder implements them. Even if some encoder would blindly implement all those useless features, that would be more a drawback (as it potentially makes the encoder slower, less stable and less maintainable) than an improvement. Please see the post that I linked in my previous post...

PatlaborForce
23rd October 2009, 18:10
BTW neither the linked article in the OP or the actual x264 article actually contains the words saying that x264 doesn't support X or Y profile. What it does have is a chart that lists a number of H.264 features and it lists whether or not x264 and other H.264 encoders support them. And then it has a second chart which shows whether or not the encoders implement all features of a given profile. Nothing in either charts makes any implications that the encoders listed don't create compliant streams. So as I said before, this is much ado about nothing.

PatlaborForce
23rd October 2009, 18:15
When talking about an encoder, then "supporting a profile" is naturally defined as being able to produce a stream that complies to that profile.

No, that would be saying you "conform/comply to a profile". To fully support a profile, one would have to fully implement all features.

So with PatlaborForce's no existing encoder would fully support a profile, because there are so many "features" defined in the H.264 that have zero piratical purpose and no real encoder implements them.

And why is this a bad thing? Who cares whether or not it supports all features if it's conforms? The lists in the article linked only show whether or not encoders implement all features of the standard and it's particular profiles.

LoRd_MuldeR
23rd October 2009, 18:25
No, that would be saying you "conform/comply to a profile". To fully support a profile, one would have to fully implement all features.

Wrong. But as it has already been explain (not only) in this thread, I'll stop feeding the troll at this point...

PatlaborForce
23rd October 2009, 18:30
Wrong.

How is it wrong? You're confusing terms. Conformance/compliance means that you do not violate any restrictions set out by the profile. To fully support a profile you means you must support all features of that profile. There isn't anything radical about what I'm saying. These follow the basic English definitions of the word. Nothing in the article in any way attempts to imply that any of the encoders they compare do not produce conforming streams. All those charts are is a comparison of what features of the H.264 standard they implement and if they fully implement (aka fully support) all features of each of the specified profiles.

But as it has already been explain (not only) in this thread, I'll stop feeding the troll at this point...

How am I a troll? Because I don't froth at the mouth over a non-issue? Because I rely on the actual meaning of English words when I read something instead of playing bizarre semantics games? Nothing in my post is trolling.

PatlaborForce
23rd October 2009, 19:09
When talking about an encoder, then "supporting a profile" is naturally defined as being able to produce a stream that complies to that profile.

Okay so to put this another way. I go and create an H.264 encoder that only implements baseline features and is 100% conforming to that profile but I implement nothing from either the main or high profiles. At the same time, due to the fact that baseline is a subset of main and high profiles, my same baseline streams also "conform" to those other profiles (because they violate none of the restrictions set out by those higher profiles). So according to you I can now claim I "support" main and high within my encoder despite not even implementing a single one of their features just because my streams conform to their limitations? Do you not see how silly such a claim would be? Your equivocation of the terms "support" and "conform/comply" is equally as silly and wrong. The terms are not synonyms.

LoRd_MuldeR
23rd October 2009, 19:36
Wrong again. Baseline is not a subset of Main. There are features that are allowed in Baseline and/or Extended, but not allowed in Main.

If some encoder is able to produce 100% Baseline-conform streams as well as 100% Main-conform streams, it makes sense to say that this encoder "(fully) supports the Main and Baseline profiles of H.264".

Dark Shikari
23rd October 2009, 19:45
Wrong again. Baseline is not a subset of Main. There are features that are allowed in Baseline and/or Extended, but not allowed in Main.Not like anyone uses them though.

shon3i
23rd October 2009, 20:06
@LoRd_MuldeR, not need to show more evidence because on wiki clearly stay "Fully supported profiles", so there is many feautures which x264 and other H264 implementations not contain to have full support for High/Baseline profiles. Maybe need to correct article to "yes/no' instead only no.

Inventive Software
23rd October 2009, 20:55
The correct terminology for such an article would be:

produces streams that conform to profile x.x

Wikipedia's lack of information about what's available in each profile is a hindrance in the "fully supported profiles" part. In a sense, it's a biased table.

shon3i
24th October 2009, 15:13
On wikipedia aslo says that x264 support both PAFF and MBAFF intelaced encoding? i only saw MBAFF tought --interlaced options, is that true?