Log in

View Full Version : WMV/VC-1 Encoder Development Progress Until Now


Musafir_86
30th April 2012, 07:20
Hello everyone (& hi Mr. Alex Zambelli :D),

-As we know, H.264 encoders (specifically x264) - and to some extent, VP8/WebM too (refer http://blog.webmproject.org/) are continuously being improved over time to make them better, more efficient and produce higher quality output files. Even XviD has (somewhat) continually minor improvement/bug fixes, with last official patch released last year (2011) .

-The questions:
1. How about WMV/VC-1? Is there any improvement to WMV3/WMV9/VC-1 since WMP11/WMSDK11 (according to http://forum.doom9.org/showthread.php?t=112634 this is the latest)?
2. Do the encoder bundled with Windows Live Movie Maker 2011 is the latest/an improved version?
3. How about the encoders in Expression Encoder 1/2/3/4; do they gradually get an increase in the output quality/improve their encoding efficiency with each newer release?
4. Do Expression Encoder 4 uses the built-in encoder in Windows or the one bundled with .NET Framework 4 ? I can't seem to find the binary that do the encoding in its Program Files directory.
EDIT: I found vc1ecore.dll with version 11.5.2568.7346 dated 04 November 2009 (in its security certificate) there, which I assume should be the encoder binary I'm looking for.
5. Any test has been done? Any change log?

-Also, is there any (better) third-party encoder(s) aside those from Microsoft that I'm unaware of?


Thanks & regards.

Midzuki
30th April 2012, 07:48
...

-Also, is there any (better) third-party encoder(s) aside those from Microsoft that I'm unaware of?

Yes, there is Mainconcept Reference 2.x :)

Musafir_86
30th April 2012, 07:58
Yes, there is Mainconcept Reference 2.x :)

-Oh, thanks. Is its output quality noticeably better than Microsoft's?

Midzuki
30th April 2012, 14:51
^ To my eyes, there are no significant differences regarding quality, BUT there are significant differences regarding the encoding SPEED --- MCR 2 is somewhat faster.

Notice, I have used only Windows Media Encoder 9 + WMF 11 (through Zambelli's wmcmd.vbs) and TinTime's modified avs2asf, so I have nothing to say about Expression Encoder, except that it's overbloated for what it does, and still depends on the silly dotNET framework.

Musafir_86
30th April 2012, 15:12
^ To my eyes, there are no significant differences regarding quality, BUT there are significant differences regarding the encoding SPEED --- MCR 2 is somewhat faster.

Notice, I have used only Windows Media Encoder 9 + WMF 11 (through Zambelli's wmcmd.vbs) and TinTime's modified avs2asf, so I have nothing to say about Expression Encoder, except that it's overbloated for what it does, and still depends on the silly dotNET framework.

-Hmm, quality is more important to me than speed (we only encode once, but the video will be played back countless times, right?). Can the latest encoder rival x264's quality?

-Regarding Expression Encoder, I'm not sure too, that's why I asked here (I don't have resources to do thorough comparison).

-And yes, I also dislike .NET platform for overheads it causes; beside Expression Encoder, Paint.NET is the other .NET app that useful for me. IMHO, a developer should prioritize his program's quality instead of taking easier path, by using C++ or such (or even assembly where it makes sense) instead of interpreted/managed code e.g. .NET or Java. I understand the argument of improved code security & reliability, but the same can be achieved without a managed platform, just need more effort, skills, and time (the same quality vs. speed argument as first paragraph).


Regards.

Midzuki
30th April 2012, 15:30
-Hmm, quality is more important to me than speed (we only encode once, but the video will be played back countless times, right?).

Right --- however, a faster encoder doesn't always mean it outputs inferior quality, sometimes it means its source-code has been optimized. ;)

Can the latest encoder rival x264's quality?

I don't think so.

EDIT: The FAQ thread you mentioned in the first post is outdated, because it doesn't say a word about Microsoft's VC-1 SDK:

http://alexzambelli.com/blog/vc-1-sdk-faq/

Musafir_86
30th April 2012, 16:17
EDIT: The FAQ thread you mentioned in the first post is outdated, because it doesn't say a word about Microsoft's VC-1 SDK:

http://alexzambelli.com/blog/vc-1-sdk-faq/

-I already visited his blog and saw that FAQ before posting this, and that VC-1 Encoder SDK package dated back to 2007...

Atak_Snajpera
1st May 2012, 21:57
x264 in terms of quality and speed is alot better than vc1. stick to x264 and forget about the rest until x265 ;)

zambelli
2nd May 2012, 15:21
-The questions:
1. How about WMV/VC-1? Is there any improvement to WMV3/WMV9/VC-1 since WMP11/WMSDK11 (according to http://forum.doom9.org/showthread.php?t=112634 this is the latest)?

The WMV9/VC-1 encoder in Windows 7 (and soon Windows 8) is the latest DMO/MFT. In comparison to the WMF11/Vista binaries it contains 8-way threaded encoding (versus 4-way threading in WMF11/Vista) and some minor optimizations and bug fixes. I haven't worked on the Windows codec team in 4-5 years so I'm not as aware of code changes as I used to be.


2. Do the encoder bundled with Windows Live Movie Maker 2011 is the latest/an improved version?
There's no encoder bundled with WLMM. Movie Maker just uses Windows codecs.


3. How about the encoders in Expression Encoder 1/2/3/4; do they gradually get an increase in the output quality/improve their encoding efficiency with each newer release?

Expression Encoder uses the VC-1 Encoder SDK for VC-1 compression - it doesn't rely on any Windows codecs (except for WMA compression). The last time the VC-1 Encoder SDK was updated was in November 2009 when 8-way threading was also added.


4. Do Expression Encoder 4 uses the built-in encoder in Windows or the one bundled with .NET Framework 4 ? I can't seem to find the binary that do the encoding in its Program Files directory.
EDIT: I found vc1ecore.dll with version 11.5.2568.7346 dated 04 November 2009 (in its security certificate) there, which I assume should be the encoder binary I'm looking for.
5. Any test has been done? Any change log?
There is no video encoder bundled with .NET 4 runtime, I'm not sure which one you're referring to.
vc1ecore.dll is compiled from the VC-1 Encoder SDK.


There hasn't been any significant development of the VC-1 encoder at Microsoft (to the best of my knowledge) since 2009/2010, largely due to lack of demand and the ongoing change in industry priorities. Most companies, including Microsoft, are relying on H.264 for interoperability so continuing to invest money into VC-1 encoding for marginal enhancements just doesn't make a lot of sense fiscally. VC-1 decode speed advantage, which was important in the early days of HD, has lost its relevance with the advent of multi-core computing, DXVA and hardware decoders. VC-1 played an important role in the previous decade in advancing HD video adoption and forcing MPEG-LA to lower licensing fees for advanced codecs such as H.264 (competition always drives prices down). There's still a market for VC-1 encoder innovation out there, but I think that market is better suited for small companies at this point. I doubt Microsoft will ever release another singificant VC-1 encoder update.

Musafir_86
2nd May 2012, 16:28
-Thanks for taking your time in answering my questions.

The WMV9/VC-1 encoder in Windows 7 (and soon Windows 8) is the latest DMO/MFT. In comparison to the WMF11/Vista binaries it contains 8-way threaded encoding (versus 4-way threading in WMF11/Vista) and some minor optimizations and bug fixes. I haven't worked on the Windows codec team in 4-5 years so I'm not as aware of code changes as I used to be.

-So, does the Platform Update & Platform Update Supplement for Vista include these binaries? Or Vista stuck with the older ones without any (official) way to upgrade?

There is no video encoder bundled with .NET 4 runtime, I'm not sure which one you're referring to.
vc1ecore.dll is compiled from the VC-1 Encoder SDK.

-Sorry, I think I mixed it up with EVR (which found in .NET FX 3.0; not sure about 4.0) which adds EVR option for Windows XP (which originally only have WMR7/9). :o

There hasn't been any significant development of the VC-1 encoder at Microsoft (to the best of my knowledge) since 2009/2010, largely due to lack of demand and the ongoing change in industry priorities. Most companies, including Microsoft, are relying on H.264 for interoperability so continuing to invest money into VC-1 encoding for marginal enhancements just doesn't make a lot of sense fiscally. VC-1 decode speed advantage, which was important in the early days of HD, has lost its relevance with the advent of multi-core computing, DXVA and hardware decoders. VC-1 played an important role in the previous decade in advancing HD video adoption and forcing MPEG-LA to lower licensing fees for advanced codecs such as H.264 (competition always drives prices down). There's still a market for VC-1 encoder innovation out there, but I think that market is better suited for small companies at this point. I doubt Microsoft will ever release another singificant VC-1 encoder update.

-Hmm, is Microsoft not interested to open-source that VC-1 SDK? How about putting it on CodePlex? Maybe you could persuade them? IMHO, there's no harm by doing so (though I'm not sure about copyrights, patents, trade secrets, etc.; Microsoft Community Promise might be able to cover it), but all of the codes belong to Microsoft, right? :D


Thanks again & regards.

benwaggoner
10th May 2012, 01:50
-Thanks for taking your time in answering my questions.

-So, does the Platform Update & Platform Update Supplement for Vista include these binaries? Or Vista stuck with the older ones without any (official) way to upgrade?
Correct. Updated DMOs are only available with an OS update.

Expression Encoder has the same VC-1 Encoder SDK lib on all platforms, so that's an easy way to 8-way threading and other improvements on XP and Vista. Plus you don't need to mess with registry keys to get access to advanced settings.


-Hmm, is Microsoft not interested to open-source that VC-1 SDK? How about putting it on CodePlex? Maybe you could persuade them? IMHO, there's no harm by doing so (though I'm not sure about copyrights, patents, trade secrets, etc.; Microsoft Community Promise might be able to cover it), but all of the codes belong to Microsoft, right? :D

I can't imagine anyone at Microsoft caring enough to expend the resources to do an open source release.

benwaggoner
25th March 2013, 18:39
Now that Windows 8 has been released: are there any differences between Windows 7 and Windows 8 regarding the VC-1 encoder?
Not that I'm aware of. Digital Media in general didn't see much new from Windows 7.

zambelli
26th March 2013, 21:33
Probably just bug fixes and (maybe) some perf optimizations, but I doubt any development work went into quality improvements or new features. Most team seems to be focused on H.264 encoder these days. http://msdn.microsoft.com/en-us/library/windows/desktop/dd797816(v=vs.85).aspx

Unless some other company decides to develop a better VC-1 encoder, I doubt we'll ever see a better VC-1 encoder than the Microsoft VC-1 encoder that shipped with Windows 7/8.

Note: I no longer work at Microsoft either, so I'm merely speculating about the above.