Log in

View Full Version : WMV - Main or Advanced profile?


tominator
28th May 2008, 21:25
Hi

Im running a streaming video-service that uses wmv-files to stream movies to customers.

At the moment Im doing a 1372 kbps CBR Windows Media Video 9
with 128 kbps CBR 44 khz Windows Media Audio 9.1. From what Ive understood this is Windows Media 9 Main profile. When I scan the files with Wmsnoop it says MP@ML which Im guessing stands for Main profile at Main level.

Ive been wondering if I should start using Windows Media 9 Advanced profile (which Ive understood is VC-1) because Im guessing it would produce better results when it comes to quality. Would I be correct in assuming that?

Ive been reading the "VC-1 and Windows Media 9 FAQ"
http://forum.doom9.org/showthread.php?t=112634

Am I correct that the impact on my customers if I start using advanced profile would only be that people that run an older version of WMP than 11 would just have to download a small codec through the player?

If anyone can think of anything that wouldn't make switching to advanced profile a good idea I'd be very glad to hear what you have to say.

Ive tried encoding files with advanced profile. When scanning them with Wmsnoop it says AP@L1 which Im guessing means Ive succesfully created a VC-1 compliant wmv-file, or am I perhaps using the old deprecated advanced profile that came with WMP 10?

Another thing I didn't gather from the FAQ was if advanced profile still is FourCC WMV3 or not. Could someone please explain that to me?

Thanks!

mediator
28th May 2008, 22:56
Compression efficiency wise Advanced Profile is not really superior to Main Profile (Advanced Profile doesn't offer more quality related tools over Main, see e.g. the article about VC-1 on Wikipedia). Advanced Profile just offers more features (like Interlacing, which Main doesn't have).

Having this is mind, I would ask the question the other way around: Why would you want to switch to Advanced Profile? It bothers your users (those who have to upgrade their system/software) for no real benefit in exchange.

WMV3 is VC-1 Simple Profile or Main Profile
Advanced Profile is WVC1.

The FourCC differentiation comes from historical reasons: Advanced Profile was later integrated into the specification, in a way that old decoders (Simple/Main Profile only, which is the previously proprietary/closed WMV9) wouldn't be able to handle. Think of it as treating existing WMV9-spec as Simple/Main profile of a new spec, then adding new bitstream syntax for Advanced Simple Profile, and what you get is the two-folded VC-1 specification. So MS clearly had compatibility with WMV9 in mind when making the VC-1 spec.

(This reminds me of MPEG-4 ASP Spec, which required compatibility with H.263 Baseline)

tominator
28th May 2008, 23:10
Compression efficiency wise Advanced Profile is not really superior to Main Profile (Advanced Profile doesn't offer more quality related tools over Main, see e.g. the article about VC-1 on Wikipedia). Advanced Profile just offers more features (like Interlacing, which Main doesn't have).

Having this is mind, I would ask the question the other way around: Why would you want to switch to Advanced Profile? It bothers your users (those who have to upgrade their system/software) for no real benefit in exchange.

I don't want to bother them unless it means better quality video. I assumed there would at least be a slight quality improvement. Since not I will not make a change.


WMV3 is VC-1 Simple Profile or Main Profile
Advanced Profile is WVC1.


So in a way Im already encoding VC-1 compliant files?

How do I know if Im encoding Simple or Main profile? I have the following options in my encoding program (Prododer 3.0):

Windows media video 9
Windows media video 9 advanced profile
Windows media video 9 screen (or something like that)
and then a bunch of windows media video 7 and 8-stuff

EDIT: Forgot to say thanks a bunch for all that helpful info.

benwaggoner
29th May 2008, 00:31
If you're using a tool with the VC-1 Encoder SDK, the big difference is AP gives you the ability to use I-Frame differential quantization. This can be quite helpful with animation or screen captures, but is pretty irrelevant for film/video sources.

Sergey A. Sablin
29th May 2008, 18:43
If you're using a tool with the VC-1 Encoder SDK, the big difference is AP gives you the ability to use I-Frame differential quantization. This can be quite helpful with animation or screen captures, but is pretty irrelevant for film/video sources.

Ben, just to be sure (I've read spec pretty diagonally):
- is there a big difference between Main and Advanced profiles except interlacing and slices?
- is there a need to generate Simple or Main profile streams instead of Advanced for any reason (yes, I've read something about including VC-1 into DVB-H, where Simple and Main profiles are included, but this page http://www.dvb.org/metadata/cs/VideoCodecCS.xml appears to me in plain XML format and I'm not sure what the status of this info. Draft? Working? Final?)

BTW, It seems to be pretty ugly to deal with meta data carring Sequence header information for Simple and Main profiles to encapsulate bitstream any container besides ASF I believe. I'm also wondering how the profiles which can't be decoded as separate video elementary streams were included into final specification? Could you please clarify? Thanks.

benwaggoner
30th May 2008, 01:12
Ben, just to be sure (I've read spec pretty diagonally):
- is there a big difference between Main and Advanced profiles except interlacing and slices?
Slices? Really, the big diff for .wmv files is interlacing.

- is there a need to generate Simple or Main profile streams instead of Advanced for any reason (yes, I've read something about including VC-1 into DVB-H, where Simple and Main profiles are included, but this page http://www.dvb.org/metadata/cs/VideoCodecCS.xml appears to me in plain XML format and I'm not sure what the status of this info. Draft? Working? Final?)
Well, pretty much any use inside another container format requires Advanced Profile, as that's where transport independence was defined.

BTW, It seems to be pretty ugly to deal with meta data carring Sequence header information for Simple and Main profiles to encapsulate bitstream any container besides ASF I believe. I'm also wondering how the profiles which can't be decoded as separate video elementary streams were included into final specification? Could you please clarify? Thanks.
They were defined for interoperabilty with existing WMV use. Pretty much all the "professional" places where VC-1 is used like IPTV and Blu-ray are Advanced Profile.

Sergey A. Sablin
30th May 2008, 10:58
Slices? Really, the big diff for .wmv files is interlacing.

thanks, that what I was thinking about. (I was guessed that only newbie might mix .wmv and vc-1 - well no! even insiders still mix them ;))

Well, pretty much any use inside another container format requires Advanced Profile, as that's where transport independence was defined.

What I was talking about is SMPTE RP227 - "VC-1 Bitstream Transport Encodings", which includes all profiles - Simple, Main and Advanced. Obviously Simple and Main requires metadata to store sequence header. And now the question - who needs to incapsulate Simple and Main profiles into MPEG-2 TS if (like you said) pretty much every "sane" (well "professional" :)) person are using Advanced? (I guess you don't count DVB-H spec as a such ;))
It makes me think that somebody uses Simple and Main, and I want to know - who it is? Any clues on the state of DVB-H?

They were defined for interoperabilty with existing WMV use. Pretty much all the "professional" places where VC-1 is used like IPTV and Blu-ray are Advanced Profile.

This + SMPTE RP227 in combination drives me crazy. How this is possible at all, that international spec includes something to support backward compatibility with former propriatory solution which doesn't confirm to common rules of bitstream specification (standalone elementary stream) and then add specification to support this "backward compatibility" in standard container using pretty much non-standard way?

Well, yes - here is a bit of emotions, but leaving all this, I want to know where Simple and Main profiles are used now and where they might be used. How and in which containers? (links would be perfect!)

Thanks.

tominator
1st June 2008, 21:26
If you're using a tool with the VC-1 Encoder SDK, the big difference is AP gives you the ability to use I-Frame differential quantization. This can be quite helpful with animation or screen captures, but is pretty irrelevant for film/video sources.

If you're using a tool with the VC-1 Encoder SDK, the big difference is AP gives you the ability to use I-Frame differential quantization. This can be quite helpful with animation or screen captures, but is pretty irrelevant for film/video sources.

Thank you Ben. You are always a lot of help.

If you have the time, I would be very greatful if I could ask you for the time to answer a few other things I have been thinking about.

All my files are WMV3 Main profile with WMA2.

1) When using multiple bitrates for separate video streams in a wmv-file, do they both have to have the same resolution in order to not cause any problems when switching between the two? When testing with different resolutions I have experienced problems when doing a switch, such as the picture turning green/magenta, turning upside down and so on. I would like to know if this is a known limitation for WMV/WMP or if it perhaps could have something to do with a faulty graphics driver on my system or something of the sort.

I would really like to run 320x* or something for my lower bitrate.

2) I encode everything as CBR 2-pass but is there really a reason using 2-pass on CBR?

3) Can WMV-files have aspect headers and does WMP take account to them?

4) Is it possible to put chapter information in a WMV-file?

Also, does Microsoft offer consulting for larger Windows Media-projects? Could one perhaps hire you or someone else with the same type of expertise on the subject for consulting so that Id get the best possible setup under my limitations?

Thanks heaps!

benwaggoner
6th June 2008, 01:12
1) When using multiple bitrates for separate video streams in a wmv-file, do they both have to have the same resolution in order to not cause any problems when switching between the two? When testing with different resolutions I have experienced problems when doing a switch, such as the picture turning green/magenta, turning upside down and so on. I would like to know if this is a known limitation for WMV/WMP or if it perhaps could have something to do with a faulty graphics driver on my system or something of the sort.
Multiple frame sizes, frame rates, etcetera has been supported since Windows Media 9 Series. Green/Magenta sounds like some kind of driver or DXVA issue, as you suggest.

2) I encode everything as CBR 2-pass but is there really a reason using 2-pass on CBR?
Not really. If you're using Format SDK 11, you can use 1-pass CBR with Lookahead=16. And if you're using VC-1 Encoder SDK, Looakhead Rate Control is often better than 2-pass.

3) Can WMV-files have aspect headers and does WMP take account to them?
Yes and yes.

4) Is it possible to put chapter information in a WMV-file?
Yes. Although WMP dosen't show them by default. Check out Expression Encoder 2, which has a nice interface to chaptering with Silverlight (using markers in the WMV stream). Here's a tutorial:

http://on10.net/blogs/benwagg/Hands-on-with-high-touch-encoding-Streaming-Media-All-Stars-Redo/

Also, does Microsoft offer consulting for larger Windows Media-projects? Could one perhaps hire you or someone else with the same type of expertise on the subject for consulting so that Id get the best possible setup under my limitations?
Yes, we do have people (including myself) who come in to work with partners on major projects.

tominator
6th June 2008, 15:25
Thanks a lot!

benwaggoner
7th June 2008, 21:55
At the moment Im doing a 1372 kbps CBR Windows Media Video 9
with 128 kbps CBR 44 khz Windows Media Audio 9.1. From what Ive understood this is Windows Media 9 Main profile. When I scan the files with Wmsnoop it says MP@ML which Im guessing stands for Main profile at Main level.
Oh, and I just noted that part as well. If you're getting WMA 9.1, that means you have the WMP 10/Format SDK 9.5 .dll files installed. You should install WMP 11 or Format SDK 11 to get the latest and greatest. You can't get full results out of PowerToy without it, and won't have access to the excellent lower bitrate WMA Pro modes.

Sergey A. Sablin
8th June 2008, 11:01
still no news about simple and main profiles and DVB-H state?

benwaggoner
8th June 2008, 20:47
still no news about simple and main profiles and DVB-H state?
I honestly haven't been tracking DVB-H at all since IBC. You're right that the other profiles are supported in it, and I'm not sure what mechanism they use. If you have a particular question about that, I'd be happy to track down the standards team responsible and find out the details.

That said, I don't think there's much of a reason NOT to use Advanced instead of Main pretty much anywhere, since their decode complexity for progressive is essentially identical.

Simple does have a place on low-powered devices, but Advanced is still a plenty fast decoder. The increased decode efficiency of Simple can often be lost back in the need to use higher bitrates to encode at a particular quality level, so it can help less than one would expect in terms of quality per MIPS.

Sergey A. Sablin
9th June 2008, 09:17
That said, I don't think there's much of a reason NOT to use Advanced instead of Main pretty much anywhere, since their decode complexity for progressive is essentially identical.

thanks Ben for attention. Actually the question is where simple and main profiles are used already (ok, besides dvb-h) and where their a going to be used.
There is no problem to implement all profiles even in HW, however, when bitstream generation is not common for every profile, that adds another complexity to the HW control (read: another logic, which shall be implemented on pretty limited control resources).
frankly, I wouldn't implement those simple and main if nobody is using them apart of WMP, but SMPTE has made this ridiculous spec about encapsulation those profiles into TS with meta data, which makes it possible to use these profiles in all range of standard protocols. I guess it might be done by someone request, ie someone going to use these profiles in this way - so the question remains - who is it? I.e how important to implement simple and main profiles for HW encoders? I'd really appreciate if you can share any info about their usage outside of WMP/Silverlight.

benwaggoner
10th June 2008, 05:52
thanks Ben for attention. Actually the question is where simple and main profiles are used already (ok, besides dvb-h) and where their a going to be used.
There is no problem to implement all profiles even in HW, however, when bitstream generation is not common for every profile, that adds another complexity to the HW control (read: another logic, which shall be implemented on pretty limited control resources).
frankly, I wouldn't implement those simple and main if nobody is using them apart of WMP, but SMPTE has made this ridiculous spec about encapsulation those profiles into TS with meta data, which makes it possible to use these profiles in all range of standard protocols. I guess it might be done by someone request, ie someone going to use these profiles in this way - so the question remains - who is it? I.e how important to implement simple and main profiles for HW encoders? I'd really appreciate if you can share any info about their usage outside of WMP/Silverlight.
Well, it really gets down to the profiles in use by particular industries. For example, Blu-ray mandates Advanced Profile, as does IPTV. So no Simple or Main profile allowed there.

Different industry groups will also provide test vectors to validate these things. For inexplicable reasons, I wound up owning the DLNA test vectors for Windows Media, and so I made sure that lots of normal and esoteric bitstream types are covered in there.

Sergey A. Sablin
10th June 2008, 23:35
Well, it really gets down to the profiles in use by particular industries. For example, Blu-ray mandates Advanced Profile, as does IPTV. So no Simple or Main profile allowed there.

Different industry groups will also provide test vectors to validate these things. For inexplicable reasons, I wound up owning the DLNA test vectors for Windows Media, and so I made sure that lots of normal and esoteric bitstream types are covered in there.

ok, thanks. I'll investigate on DLNA then.