Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Video Encoding > MPEG-4 Encoder GUIs

Closed Thread
 
Thread Tools Search this Thread Display Modes
Old 14th May 2009, 22:32   #2101  |  Link
turbojet
Registered User
 
Join Date: May 2008
Posts: 1,840
Thanks for the .backup fix, tools directory went from 174 MB to 96 MB.

I have another suggestion which is checking reference frames against the level to prevent illegal files like avc level checker is intended to do but it's inaccurate which is discussed here.
But instead of avc level checker could it check within x264 config like it already does with vbv?
Also if vbv is left empty but a level is defined can it set the vbv maxrate and buffer to the maximum allowed for the level?
turbojet is offline  
Old 14th May 2009, 23:12   #2102  |  Link
Sharktooth
Mr. Sandman
 
Sharktooth's Avatar
 
Join Date: Sep 2003
Location: Haddonfield, IL
Posts: 11,768
VBV should NEVER be set until the user chooses to set it. megui will warn you if you set the buffers too high.
the inaccuracy is there to "protect" from b-pyramid problems.
Sharktooth is offline  
Old 14th May 2009, 23:42   #2103  |  Link
turbojet
Registered User
 
Join Date: May 2008
Posts: 1,840
Quote:
Originally Posted by Sharktooth View Post
VBV should NEVER be set until the user chooses to set it. megui will warn you if you set the buffers too high.
the inaccuracy is there to "protect" from b-pyramid problems.
Why should vbv never be set until the user chooses?

If you take a 90 minute high action movie, set it to L4.1 and encode for BD25 output without any vbv you are likely to exceed the maximum bitrate and it will skip at times. Same can be said for DVD9 target but to a lesser extent.

What b-pyramid issue are you talking about?

1920x1080 24fps up to --ref 4 with and without b-pyramid is allowed in L4.x
According to AVC Level Checker 1920x1080 24fps L4 max is --ref 3 without b-pyramid or --ref 2 with b-pyramid.

1280x720 24fps up to --ref 9 with and without b-pyramid is allowed in L4.x
According to AVC Level Checker 1280x720 24fps L4 max is --ref 8 without b-pyramid or --ref 7 with b-pyramid.
turbojet is offline  
Old 14th May 2009, 23:55   #2104  |  Link
Sharktooth
Mr. Sandman
 
Sharktooth's Avatar
 
Join Date: Sep 2003
Location: Haddonfield, IL
Posts: 11,768
coz you dont want restrictions on ratecontrol if you dont need them. they would harm final quality.
b-pyramid problems are playback problems on hardware devices (DPB violations). if you add b-pyramid you should lower the refs by 1 to ensure compatibility. AFAIK that's a x264 problem.
btw, regarding the level checking in the config, it's not manageable since megui doesnt know about input file properties during the encoder configuration.

Last edited by Sharktooth; 15th May 2009 at 00:06.
Sharktooth is offline  
Old 15th May 2009, 01:22   #2105  |  Link
turbojet
Registered User
 
Join Date: May 2008
Posts: 1,840
Quote:
Originally Posted by Sharktooth View Post
coz you dont want restrictions on ratecontrol if you dont need them. they would harm final quality.
Very debatable on if it may hurt quality if it's within reason L4.0 would allow 50 mbps for less than a second, 25 mbps for more than a second, L4.1 would allow 135 mbps for less than a second, 62.5 mbps for more than a second.

If someone is setting level aren't they using it for a specific device that requires these types of level restrictions?
What I suggest wouldn't affect anything if you aren't setting level or vbv is already compliant.

Quote:
b-pyramid problems are playback problems on hardware devices (DPB violations). if you add b-pyramid you should lower the refs by 1 to ensure compatibility. AFAIK that's a x264 problem.
This used to be the case but it was changed months ago so b-pyramid doesn't affect DPB.

Quote:
btw, regarding the level checking in the config, it's not manageable since megui doesnt know about input file properties during the encoder configuration.
It could just as easily get this info on input like avc level checker does currently. What I'm suggesting is putting avc level checker functionality in the x264 config and getting rid of the level checker function.

Last edited by turbojet; 15th May 2009 at 01:55.
turbojet is offline  
Old 15th May 2009, 02:04   #2106  |  Link
Sharktooth
Mr. Sandman
 
Sharktooth's Avatar
 
Join Date: Sep 2003
Location: Haddonfield, IL
Posts: 11,768
it's not debatable. setting VBV params forces the ratecontrol to behave in a different way and setting a level means setting a flag in a bitstream. if you want to specify VBV limits you can always do it.
about b-pyramid and DPB stuff, it was changed but it's still not perfect and still causes problems. as you can read on the megui presets thread:
Quote:
... Removed b-pyramid from all DXVA group presets... this time it is FOREVER until x264 gets properly patched.
x264 is still broken in that way.
so, dont argue with me about b-pyramid... i will never consider it a reliable option... it's not even so usefull... i prefer one more b-frame or even one more ref instead...
Quote:
It could just as easily get this info on input like avc level checker does currently. What I'm suggesting is putting avc level checker functionality in the x264 config and getting rid of the level checker function.
nope, since you can set up the presets without loading an input file. avc level checker is what the name says, a "checker". it doesnt "set" anything except enforcing limits if and only if certain options are set out of specified level limits.

Last edited by Sharktooth; 15th May 2009 at 02:33.
Sharktooth is offline  
Old 15th May 2009, 02:46   #2107  |  Link
turbojet
Registered User
 
Join Date: May 2008
Posts: 1,840
Quote:
Originally Posted by Sharktooth View Post
it's not debatable. setting VBV params forces the ratecontrol to behave in a different way and setting a level means setting a flag in a bitstream. if you want to specify VBV limits you can always do it.
Ya it is a little different output. But again why would someone set a level if they wanted the level to be broken?

Quote:
about b-pyramid and DPB stuff, it was changed but it's still not perfect and still causes problems. as you can read on the megui presets thread:
x264 is still broken in that way.
so, dont argue with me about b-pyramid... i will never consider it a reliable option... it's not even so usefull... i prefer one more b-frame or even one more ref instead...
All I can say is BD players that used to fail max reference frames + b-pyramid now play them just fine. Presets or usefulness have nothing to do with this discussion.

Quote:
nope, since you can set up the presets without loading an input file. avc level checker is what the name says, a "checker". it doesnt "set" anything except enforcing limits if and only if certain options are set out of specified level limits.
Then it warns the output will be non-compliant to the level set and tells the user to change level or whatever setting breaks it.
turbojet is offline  
Old 15th May 2009, 02:58   #2108  |  Link
Sharktooth
Mr. Sandman
 
Sharktooth's Avatar
 
Join Date: Sep 2003
Location: Haddonfield, IL
Posts: 11,768
Quote:
Originally Posted by turbojet View Post
Ya it is a little different output. But again why would someone set a level if they wanted the level to be broken?
Coz some devices/softwares check for the level flag but are capable of decoding higher bitrates than those specified in the level (some cellphones for example...).
Quote:
All I can say is BD players that used to fail max reference frames + b-pyramid now play them just fine. Presets or usefulness have nothing to do with this discussion.
The reason i pointed you to that thread was to prove x264 has not been fixed and your statement:
Quote:
This used to be the case but it was changed months ago so b-pyramid doesn't affect DPB.
was wrong
Quote:
Then it warns the output will be non-compliant to the level set and tells the user to change level or whatever setting breaks it.
yes. also, VBV parameters are checked against the level during the preset configuration.

Last edited by Sharktooth; 15th May 2009 at 03:01.
Sharktooth is offline  
Old 15th May 2009, 08:12   #2109  |  Link
userix
Registered User
 
Join Date: May 2008
Posts: 4
Thanks for your replies.

I apologize for not being specific in my initial post. The file I am encoding is from one of my anime DVDs. It's not that the whole encode is crappier, only the beginning of the episode, which starts with a static scene, and then cuts to another static scene. On the Q6600 encodes, those 2 static scenes seem blockier (noisier) when compared to the old Dell encode. The rest of the encode, including future static scenes, seem fine afterwards. What gets me is why are the aforementioned static scenes encoded on my Q6600 blockier than those of my old Dell encode?

I have attached screenshots taken using MPC of the two static scenes I am talking about. The noise in the first scene is subtle, but you can clearly see the difference between the 2nd static scene. Of course, when watching it in full screen, the differences stand out much more.

In addition, when I encode the video using 2-pass xvid encoder with same bitrate on the Q6600, the 2 static scenes are the same quality as the Dell encode. It seems only when I use x264 encoder on my Q6600, I get crappier results. Boggles the mind.

Quote:
Originally Posted by wolfbane5 View Post
Are you sure you're using the same x264 profiles? One small change like --partitions none and --partitions all can make a huge difference in quality and encoding time.
I'm pretty sure. I downloaded the same stable version to both computers, then proceeded to update it to the newest files available at the same time. Therefore, the profiles I downloaded through the update module are the same. I double check the command line arguments being fed and they are identical on both machines.

Quote:
Originally Posted by Taurus View Post
So you use the same decoder for the encoding
and the same decoder for playback on both machines?
Which decoder for playback; deblocking en/disabled?
Same bitrate, same filesizes of your encoded files?
To much variables to guess without log files and avisynth scripts....
I haven't looked at the logs specifically, but I figure if I create the d2v and avs script files in the same exact manner on both machines, I should get the same results, right? Bitrates are set the same for both comps. The size of the video encodes aren't exactly the same, but it's only off by 200k-300k. I have CCCP codec pack installed on both comps and use MPC to playback the files. I am not sure what you mean by using the decoder for encoding. MEGUI uses the x264.exe file it gets from the update, which is located in the MEGUI tools folder.

Quote:
Originally Posted by Kurtnoise View Post
In addition, I'd say compare both encodes on the same machine...
I can rule out the decoding issue for playback, because I took the old Dell encoded file and played it on my Q6600 and it looks great, just like on my Dell. I played the Q6600 encoded video on the Q6600 and the old dell and it looks the same: blockier static screens at the beginning of the video.
Attached Images
    

Last edited by userix; 15th May 2009 at 11:06.
userix is offline  
Old 15th May 2009, 18:09   #2110  |  Link
turbojet
Registered User
 
Join Date: May 2008
Posts: 1,840
Quote:
Originally Posted by Sharktooth View Post
Coz some devices/softwares check for the level flag but are capable of decoding higher bitrates than those specified in the level (some cellphones for example...).
First time I've heard of this but I'm not familiar with cell phones. Can they decode any bitrate that's consistent over a second?
If not do you know how much higher bitrate they can decode?
Also if not leaving blank vbv may produce a skipping/unplayable output and the current situation of allowing up to vbv max doesn't help the matter. Looking at megui presets all of the cellphone profiles seem to follow level standards.

Quote:
The reason i pointed you to that thread was to prove x264 has not been fixed and your statement:

was wrong
I'm pretty sure the fix was after November which is when that was posted. At least I remember checking a few BD players in January 2009 against --ref 4 --b-pyramid at 1920x1080 and they weren't playing, now the same players are playing the same 2 options with current x264 builds.

While b-pyramid may or may not be fixed how it should be, it doesn't seem to hinder playback anymore which is what the DPB formula only concern is.

Quote:
yes. also, VBV parameters are checked against the level during the preset configuration.
VBV can never exceed the level because of how the x264 settings enforces the max rate so the check will never see a bad vbv setting or am I missing something?

Last edited by turbojet; 15th May 2009 at 18:12.
turbojet is offline  
Old 15th May 2009, 18:28   #2111  |  Link
Sharktooth
Mr. Sandman
 
Sharktooth's Avatar
 
Join Date: Sep 2003
Location: Haddonfield, IL
Posts: 11,768
it depends on the device chipset or the software. for example, some media players/decoder want level 4.1 streams or they wont use DXVA. however they're capable of decoding streams with different limits from the L4.1...
the megui presets for cellphones and PDAs come as standard presets at levels 1.0, 1.1, 1.2 and 1.3. but it's not a secret there are cellphones that support level 1.x at much higher bitrate limits.
about the DPB, it was never fixed. the discussion ended with that thread and, if you read it, there is a chance the encode will be played back... but you can NEVER be sure since x264 continues to violate the DPB.
the VBV retrictions are FIXED by profile/level. they do not depend on res or fps, so they are checked when you create the preset. if you specify an invalid VBV rate for the specified profile/level, megui will warn you. i cant see a reason to change that behaviour.
Sharktooth is offline  
Old 15th May 2009, 18:43   #2112  |  Link
turbojet
Registered User
 
Join Date: May 2008
Posts: 1,840
Quote:
Originally Posted by Sharktooth View Post
it depends on the device chipset or the software. for example, some media players/decoder want level 4.1 streams or they wont use DXVA. however they're capable of decoding streams with different limits from the L4.1...
Can you give some examples?


Quote:
the megui presets for cellphones and PDAs come as standard presets at levels 1.0, 1.1, 1.2 and 1.3. but it's not a secret there are cellphones that support level 1.x at much higher bitrate limits.
Can you give some examples?

Quote:
about the DPB, it was never fixed. the discussion ended with that thread and, if you read it, there is a chance the encode will be played back... but you can NEVER be sure since x264 continues to violate the DPB.
Everything on that thread pre dates my broken and playable tests.

Quote:
the VBV retrictions are FIXED by profile/level. they do not depend on res or fps, so they are checked when you create the preset. if you specify an invalid VBV rate for the specified profile/level, megui will warn you. i cant see a reason to change that behaviour.
Are fixed by preset? yes. Fixed by level? Not currently, but my suggestion is VBV and references stay in compliance to the level set.
turbojet is offline  
Old 15th May 2009, 19:17   #2113  |  Link
Sharktooth
Mr. Sandman
 
Sharktooth's Avatar
 
Join Date: Sep 2003
Location: Haddonfield, IL
Posts: 11,768
the only DXVA decoder that can handle levels OVER 4.1 is MPC-HC AVC decoder. other decoders require Level 4.1 (just the flag on the bitstream!!!).
Some nokia phones and other phones (cant remember the models) have enough CPU power to decode AVC at levels higher than 1 or 1.x but are limited to those levels. you can safely encode at bitrate higher than level 1 or 1.x and the phone is perfectly able to play back the encode.
Again, x264 still violates the DPB. there is no entry in the changelog that says it was fixed. HENCE IT'S STILL BROKEN.
VBV restrictions are fixed by level/profile: http://en.wikipedia.org/wiki/H.264#Levels
That said, the discussion is over. You're speaking of something you dont even understand and i have no time to waste.

Last edited by Sharktooth; 15th May 2009 at 19:20.
Sharktooth is offline  
Old 15th May 2009, 19:30   #2114  |  Link
turbojet
Registered User
 
Join Date: May 2008
Posts: 1,840
When level is set in megui the vbv is not touched thus level does not fix vbv!
But ok I guess there still will not be a gui that has full range of settings and ensures the file will be within spec.
The threads and posts concerning this problem will continue to flood this forum.
Granted it shouldn't be gui's responsibility to fix x264's caveats but most people seem to think it should be.
turbojet is offline  
Old 15th May 2009, 20:51   #2115  |  Link
Sharktooth
Mr. Sandman
 
Sharktooth's Avatar
 
Join Date: Sep 2003
Location: Haddonfield, IL
Posts: 11,768
As i said, AVC Level checker is just a CHECKER. it wont change any parameters you set except for the fact that it wont permit the user to specify a level and non coherent parameters/options.
By that purpouse it will warn you when you select it, plus another check is run when you set up the preset... and if something is not coherent it will switch level to unrestricted/autoguess. THIS WONT CHANGE coz it is the only LOGIC thing to do.
Also there is only 1 person that rised this (not a-)problem and that person is you. So, by logic, im correct in stating your conclusion are illogical.
MeGUI is not an one click solution software. Users MUST KNOW what they're doing and looking for a table on wikipedia is not even so hard... expecially when it's the first hit when you type "AVC Levels" on google...

Last edited by Sharktooth; 15th May 2009 at 21:12.
Sharktooth is offline  
Old 15th May 2009, 21:19   #2116  |  Link
turbojet
Registered User
 
Join Date: May 2008
Posts: 1,840
I never suggested changing VBV to not autoguess when it's set higher then the level refers to, this will produce a compliant file however there are many situations where x264 and megui won't output a compliant file.

I'm not sure you understand what I'm suggesting which is to ensure that when level is used the file complies to that level. Currently the only thing it does is restrict vbv which is a start. The inaccurate avc level checker is pretty much hidden and a lot of megui users don't even know it exists.

The problem is every few days there's another post on this forum about a file not playing on their device m mainly due to too many references and resolution but vbv also comes up at times. I thought of a solution to all but the resolution problem and this is it. If someone has a better solution I'm all ears.

If/when megui outputs AVCHD/BD these issues will get even more and more popular and they'll directly point to MeGUI wouldn't you like to prevent these posts?

Profiles help but there's always people who are going to change things on a whim, some guide told them, etc. There is one common thing between H.264 encoders and H.264 devices and that's level, an encoder that complies to it is much more user-friendly then one that doesn't.
turbojet is offline  
Old 16th May 2009, 06:42   #2117  |  Link
Kurtnoise
Swallowed in the Sea
 
Kurtnoise's Avatar
 
Join Date: Oct 2002
Location: Aix-en-Provence, France
Posts: 5,183
put a feature request on SF, we'll see what can we do for megui 1.0...
Kurtnoise is offline  
Old 16th May 2009, 15:51   #2118  |  Link
Sharktooth
Mr. Sandman
 
Sharktooth's Avatar
 
Join Date: Sep 2003
Location: Haddonfield, IL
Posts: 11,768
Quote:
Originally Posted by turbojet View Post
I never suggested changing VBV to not autoguess when it's set higher then the level refers to, this will produce a compliant file however there are many situations where x264 and megui won't output a compliant file.
that depends on the user. if a user wants to set a level but doesnt want to put limits on the bitrate why should we add that restriction?
the user should also get informed on what he's doing. megui is not a software for the first idiot that thinks encoding is just a matter of some random mouse clicks.

Quote:
I'm not sure you understand what I'm suggesting which is to ensure that when level is used the file complies to that level. Currently the only thing it does is restrict vbv which is a start. The inaccurate avc level checker is pretty much hidden and a lot of megui users don't even know it exists.
avc level checker is not inaccurate. it's made around x264 and it wont change until x264 will be fixed (if it ever will...).

Quote:
The problem is every few days there's another post on this forum about a file not playing on their device m mainly due to too many references and resolution but vbv also comes up at times. I thought of a solution to all but the resolution problem and this is it. If someone has a better solution I'm all ears.
ppl could RTFM... as i said, you must know what you're doing...

Quote:
If/when megui outputs AVCHD/BD these issues will get even more and more popular and they'll directly point to MeGUI wouldn't you like to prevent these posts?
i dont see any problems. there are presets for AVC-HD/BD. You should either use them or RTFM...

Quote:
Profiles help but there's always people who are going to change things on a whim, some guide told them, etc. There is one common thing between H.264 encoders and H.264 devices and that's level, an encoder that complies to it is much more user-friendly then one that doesn't.
we dont fix idiots... just our software that is NOT MADE TO BE IDIOT PROOF on purpouse.
Sharktooth is offline  
Old 16th May 2009, 20:46   #2119  |  Link
turbojet
Registered User
 
Join Date: May 2008
Posts: 1,840
Quote:
Originally Posted by Kurtnoise View Post
put a feature request on SF, we'll see what can we do for megui 1.0...
OK I'll do that

Quote:
Originally Posted by Sharktooth View Post
that depends on the user. if a user wants to set a level but doesnt want to put limits on the bitrate why should we add that restriction?
the user should also get informed on what he's doing. megui is not a software for the first idiot that thinks encoding is just a matter of some random mouse clicks.
Isn't one of the few restrictions of H.264 levels max bitrate?

Quote:
avc level checker is not inaccurate. it's made around x264 and it wont change until x264 will be fixed (if it ever will...).
They give different results. x264 warns correctly, avc level checker does not.

Quote:
ppl could RTFM... as i said, you must know what you're doing...


i dont see any problems. there are presets for AVC-HD/BD. You should either use them or RTFM...


we dont fix idiots... just our software that is NOT MADE TO BE IDIOT PROOF on purpouse.
All rants that solve absolutely nothing. I also see no where in help explaining the levels so this would be misleading.
turbojet is offline  
Old 16th May 2009, 21:56   #2120  |  Link
Doom9
clueless n00b
 
Join Date: Oct 2001
Location: somewhere over the rainbow
Posts: 10,575
Since I wrote the checker, this argument sparked my interest.
You asked
Quote:
They give different results. x264 warns correctly, avc level checker does not.
and I'd say it's better to error on the side of caution, is it not? Encoding a 1080p file can take some time after all. The x264 devs tend to give GUI developers pointers when something changes.. so I wonder if megui is doing something wrong they haven't brought it up - perhaps the approach of rather being safe than sorry also help them from bogus error reports.

Quote:
Isn't one of the few restrictions of H.264 levels max bitrate?
Not directly.. it really depends on the resolution and framerate of the source - and that's why I wrote the checker as a tool accessible in the main form (where you load sources), and not within a codec configuration (a user may not have loaded the source or may change it.. thus making the whole idea of saving presets unworkable). And, I still don't see a way to make this any better.. you can only really enforce levels properly if you completely change the workflow - megui wasn't built around enforcing a certain workflow.. it started out with what's still there and then got the auto encoder and finally the one click encoder - properly enforcing levels only works if you go about it in a whole different way (the one click workflow).. so if you want a mandatory or optional checker, that's where you'd need to put it.. and definitely not in the codec configuration.

Clicking around in the latest version a bit I noted that selecting a level no longer enforces the constraints that can be enforced.. I guess you can have a different opinion on that, but my approach with enforcing meant you lose flexibility so it appears the current developers opted for flexibility in that case - and it's really an either or decision.. you cannot have both. Given megui's history I understand why the choice went into the current direction - non experienced users can use the premade presets and the tools to facilitate encoding whereas all options are open to the advanced users who know what they're doing. I suppose you could have a setting "I know what I'm doing" and only allow people to change codec configurations, write scripts and the likes when that's checked, but it's a lot of work trying to force people who don't know better to not hurt themselves.
__________________
For the web's most comprehensive collection of DVD backup guides go to www.doom9.org
Doom9 is offline  
Closed Thread

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 21:43.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, vBulletin Solutions Inc.