We and Amazon are going to be publishing 1000 HD DVD indie movies via their Manufacture on Demand system.
Since HD DVD can be written on a DVD-5 or DVD-9 media for shorter content, doesn't require AACS for replicated content, and has cheaper and more readily available replication, it's proving to be a much more prosumer-friendly format for authoring.
I can't speak to the edit, but Silverlight has been running on Safari for several public releases now, including the current Beta. No secrets around that!
I'm not a codec developer; I mainly work with tool vendors incorporting our SDKs and content publishing companies delivering in Windows Media.
As for other platforms, we've been distributing Flip4Mac for a while as a Mac OS X solution for WMV playback. That's based on our Porting Kit, which is a C++ source code implementation of Windows Media that can be licensed by anyone wishing to build a player.
I don't know why Google would need to reverse engineer WMV3. WMV3==VC-1 Simple/Main profile, which are SMPTE standards, including full reference source code. Good luck finding that with VP6!
I work on the codec team at Microsoft, and have been working with Silverlight for a while. Silverlight actually comes out of the gate with extremely mature tools.
It's video experience is Windows Media, which has been shipping for years and is more widely available than good.flv encoders. WMV is also a better codec (encodes faster, looks better). And Windows Media Services in Windows 2003 Server is much more scalable and cost effective than the equivalent Flash server.
For tools, there's the Expression suite for design, and Visual Studio for code. And unlike Flash, there's a really good workflow for designers, developers, and video folks to collaborate together without having a single person who runs the Flash app to integrate all the elements.
It isn't that Warner is being quicker about HD DVD release. It's that the titles with advanced interactivity like the Matrix require features not supported in extant BD players. For example, a secondary video decoder for picture-in-picture.
Those features aren't required in any BD player released before Nov 1st.
I'm not sure what you think really happened, but you've got some of the major facts wrong here.
First, the presentation of VC-1 to SMPTE always hat the explicit goal of standardizing WMV9, and everyone knew it. The working name for it for quite a while was VC-9 in explicit recognition that it was a standardized version of WMV9. WMV9's bitstream was locked down with the Corona launch back in 2001, well before H.264 was complete. If anything, H.264 got more from WMV9, for example the addition of variable block sizes to H.264 High Profile (although just 4x4 and 8x8, not including the 4x8 and 8x4 modes from VC-1). I wasn't at Microsoft at the time, but was part of c24, and saw how all this unfold. You really should go back and research this point - what happened was exactly according to the plan all parties signed onto in the first place. For example:
Sorenson Media licenses our Format SDK for incorporation into their product to make WMV files. There's also good guys, and we cooperate in a number of ways.
We use VC-1 because it was a codec designed to do what we wanted a codec to do:). We certainly support H.264 where appropriate, for example in the Zune (for podcast playback), in the Xbox 360 (file-based playback, and in the HD DVD player), and in the MSTV IPTV solutions.
Actually, there are a number of independent implementations of the VC-1 encoder not based on any input from Microsoft. Main Concept and Sonic Cinevision are probalby the most prominant. There's also an open source one that came out of a "Summer of Code" project.
I'm not really sure what you're getting at about Sorenson and all that. Sorenson Media had many generations of popular codecs. You're right about a connection between that and H.263 - reverse engineering determined a few years ago that the original Sorenson Video codec was basically H.263 + YUV-9 color + Vector Quantization. Sorenson the company poured most of thier codec development into real-time H.264 encoders for their videoconferencing systems, but spun off the compresion tools business, which continues to do quite nicely (and they're a fine partner of ours).
As for why VC-1 and H.264? Different codecs for different goals. VC-1 was designed for high-performance PC playback as the #1 goal, and with high def scenarios as a big factor. However, H.264 was designed with a much bigger relative focus on videoconferencing and device implementations. Different codecs with different goals, and hence different sweet spots.
Actually, go ahead and use one less than the max complexity. It's actually ever-so-slightly better, and quite a bite faster, in the current verison.
As for most of the other feaures, you can get them via that PowerToy tool, or they're already on:
Multiple Reference Frames: Not explicitly supported in VC-1 (they're a huge decode complexity hit). Instead, we get the same benefit for stuff like flashes and strobes by using BI frames - an intra-only encoded B-frame, which then lets the frame after the flash refer to the frame before. You get that automaticlaly by turning B-frames on, and either encoding in 2-pass mode or using Lookahead with 1-pass.
Mixed References: You get the equivalent when the above is enabled.
Rate Distortion Optimization: On automatically at complexity 3 or higher, or you can set it with a registry key.
Trellis Quantization: No real equivalent, since we use a different entropy coding method.
VC-1 Main and Simple profiles *are* WMV9, and so are compatible to out of the box WMP9, 10, or 11, which gives compatibility down to Win 98 and 2K. WMV9-AP/VC-1 Advanced Profile, which is really only needed when you're doing native interlaced encoding, is an automatic free download for WMP 9 and 10, and installed with WMP 11.
On Mac, Flip4Mac is our recommended solutions for playing back WMV files, and we distribute it free for Telestream.
For other OS's, many companies have licensed WMV playback, like the Kinoma Player for Palm, the Amp'd Mobile phones, the VBrick internet video appliances, etcetera.
More broadly about VC-1 (not specific to a.wmv file), that's just a SMPTE standard licensed by MPEG-LA (who also handles MPEG-2 and H.264). From a business and porting perspective, it's just like any other codec. We're seeing broad use of VC-1 in HD DVD and Blu-ray, in IPTV, and it's not part of the DVB-H television standard in Europe. So all kinds of devices will have VC-1 built in.
We're also seeing WMV and VC-1 support in some open source players, like VLC (I think derived from ffmpeg). With VC-1 being an open standard, we don't need to (or have) any involvement in those projects.
We've done lots of testing, and that hasn't been our results.
Can you share what settings you were using? If you're seeing a lot of dropped frames, one possibility is you cranked the Quality slider up to 100. That sets the minimum quality of each frame really high, telling the codec to drop frames in order to maintain data rate. A quality of 90 will give you much less trouble.
WMV9-AP is a superset of WMV9, so there shouldn't be any cases where you get fewer frames out of AP.
Also, the current codec has some useful parameters available as registry keys (I'm sorry - they came up late enough in development that we couldn't get them integrated into the Format SDK API, but it will be supported in our forthcoming SDK's API).
Here are some utilities you can use to set them, or even batch script with them:
My general best practices for quality-emphasized encoding: B-Frames 1 2-pass encoding, or Lookahead=16 for 1-pass encoding Full Chroma Search Adaptive Motion Match Adaptive Motion Search Range
And you want to run in Complexity 4 (one less than the max).
Depending on the content, DQuant and Adaptive Deadzone can help a lot, especially with film sources
The Slashdotting finally eased up enough for me to finally get to Page 4. Earlier complaints about the complete absence of accurate facts in the technical part were dead-on. But in the proceudre, wow, it's hard to know what relevant of the test would be.
40 FRAME clips? The default GOP length of most of these codecs is longer than that! There's no useful test of rate control in there, or keyframe supression popping.
And as far as compression setings, all they say is "we used the defaults, but set it to highest quality". There isn't just ONE defualt in these products. We don't know if they're even comparing CBR and VBR, 1-pass or 2-pass. And there are lots of tweaks appropriate to different kinds of content that would be used in practic - one doesn't compress film source like cel animation!
Sheesh, there's really no useful information here at all. The average reader would probably wind up knowing less about compression after reading it...
I think our qualty is very competitive with H.264! Bear in mind that the majority of HD optical (HD DVD and BD) discs use VC-1. Did you check out my sample encode?
I've got lots of bandwidth - feel free to suggest a scenario where you feel VC-1 isn't competitive, and I'll see if I can come up with a counterexample.
Actually, there are more non-Windows playback options than you think.
First, Flip4Mac can play back all VC-1 flavors and WMA Pro today. It doesn't play back the higher frequencies of WMA Pro, but they continually improve their support every release (full VC-1 Advanced Profile came in 2.1.1 last month). Downloading it seems pretty simple, but it isn't open source. And it nicely integrates with QuickTime, so once it's installed, WMV beccomes just another file format that QuickTime Player and the QuickTIme browser plugin can use. Can you go into some more detail as to why it's a painful option for you?
VLC 0.8.6 added WMV playback support, including VC-1. It's got some glitches around playing back B-frames, but I'm sure they'll address those. I haven't tried WMA Pro in it yet, I must admit.
Since VC-1 is a SMPTE standard, with full decoder reference source code avilable, adding decoding for it isn't harder than any other codec.
And of coures Silverlight will provide WMV playback on Mac and Windows as a browser plugin. We haven't committed to doing a Linux port post 1.0, but we've certainly gotten a lot of feedback from people who'd like to see it.
Are you aware that VC-1 in the SMPTE spec for VC-1? So both codecs have fully publshed specifications, and reference source code for both encoding and decoding.
All the info about algorithms in the video codecs is fully public. The same body, MPEG-4 LA, handles licensing for both technologies, and handling patent issues around them.
Going back to the paleolithic era, Microsoft made the original reference encoder for MPEG-4 (hence the venerable MPEG-4v3 codec). Windows Media Video 7 and later were about going beyond what MPEG-4 was capable of, since we and everyone else started hitting our heads against its architectural limitations. Microsoft was also quite involoved in H.264 as well, including a Microsoft employee who chaired the committe that developed the standard.
That said, we find VC-1 is a better codec for many uses. H.264 was really designed more for an ASIC environment, and uses computationally and bandwidth intensive techniques like CABAC and a really strong loop filter that make it much more expensive for PC playback (in CPU requirements and battery life in a laptop) than a VC-1 encode of equivalent quality and bitrate. Also, VC-1's simpler loop filter design makes it easier for us to preserve textures like film grain at lower bitrates. This lower horsepower needed for decode makes it possible for us to do stuff like software-only decode of HD content inside the Silverlight brower plugin, where we have no access to hardware acceleration.
Oh, I'm really a big fan of our WMA 10 Professional low bitrate modes (
And on a practical level, we support rate control modes rarely seen in other audio codec implementations, like 2-pass CBR and 2-pass VBR. This lets us get more bang for the bit compared to 1-pass CBR and VBR modes.
H.263 baseline is the same bitstream as MPEG-4 pt. 2 short header (and forms the basis of the Flash Spark codec). Both H.263+ and ++ and MPEG-4 pt. 2 Simple Profile and Advanced Simple Profile have further (and different) enhancements to that core bitstream.
Being based on H.263 proved to be much more of a limit for MPEG-4 pt. 2 development than was original determined, which led to the development of newer codecs like VC-1 and H.264.
Making software isn't just coding - it's the whole product.
Even if it's an open-source model where it's support that gets paid for, the software needs to be designed so that the support itself is economically feasible to deliver at a cost economically feasible for the customers to pay for.
But the marginal costs to support an additional user are extant.
And building a product that works for a bigger audience is also more expensive. Design and test for a product with a single user is a lot easier than for a million.
We and Amazon are going to be publishing 1000 HD DVD indie movies via their Manufacture on Demand system.
Since HD DVD can be written on a DVD-5 or DVD-9 media for shorter content, doesn't require AACS for replicated content, and has cheaper and more readily available replication, it's proving to be a much more prosumer-friendly format for authoring.
Looks like the Samsung chip has a VC-1 deocder as well. That means it'd be possible to get WMv playback on this baby. Maybe Silverlight as well.
Cool!
I can't speak to the edit, but Silverlight has been running on Safari for several public releases now, including the current Beta. No secrets around that!
Do you have a link? VP6 in Flash today is pretty heavyweight, with some pretty hefty system requirements.
I'm not a codec developer; I mainly work with tool vendors incorporting our SDKs and content publishing companies delivering in Windows Media.
As for other platforms, we've been distributing Flip4Mac for a while as a Mac OS X solution for WMV playback. That's based on our Porting Kit, which is a C++ source code implementation of Windows Media that can be licensed by anyone wishing to build a player.
I don't know why Google would need to reverse engineer WMV3. WMV3==VC-1 Simple/Main profile, which are SMPTE standards, including full reference source code. Good luck finding that with VP6!
There are a wide variety of tools that play .wmv files on a variety of platforms. The VC-1 codec itself is a SMPTE standard.
Silverlight supports both progressive download and streaming.
I've been demoing 720p HD streaming to Silverlight at 4 Mbps. It works fine today (and Silverlight 1.0 is still only in public beta).
There has never been a commitment for a Linux version of Silverlight from Microsoft. Announced has been:
OS: Windows XP and Vista, and Mac OS X on Intel and PPC
Browser: IE, FireFox, and Safari
There's been public mention of future plans around mobile and Opera.
I work on the codec team at Microsoft, and have been working with Silverlight for a while. Silverlight actually comes out of the gate with extremely mature tools.
.flv encoders. WMV is also a better codec (encodes faster, looks better). And Windows Media Services in Windows 2003 Server is much more scalable and cost effective than the equivalent Flash server.
It's video experience is Windows Media, which has been shipping for years and is more widely available than good
For tools, there's the Expression suite for design, and Visual Studio for code. And unlike Flash, there's a really good workflow for designers, developers, and video folks to collaborate together without having a single person who runs the Flash app to integrate all the elements.
It isn't that Warner is being quicker about HD DVD release. It's that the titles with advanced interactivity like the Matrix require features not supported in extant BD players. For example, a secondary video decoder for picture-in-picture.
Those features aren't required in any BD player released before Nov 1st.
I'm not sure what you think really happened, but you've got some of the major facts wrong here.
0 4/04-19BroadcastOverallNAB04PR.mspx
:). We certainly support H.264 where appropriate, for example in the Zune (for podcast playback), in the Xbox 360 (file-based playback, and in the HD DVD player), and in the MSTV IPTV solutions.
First, the presentation of VC-1 to SMPTE always hat the explicit goal of standardizing WMV9, and everyone knew it. The working name for it for quite a while was VC-9 in explicit recognition that it was a standardized version of WMV9. WMV9's bitstream was locked down with the Corona launch back in 2001, well before H.264 was complete. If anything, H.264 got more from WMV9, for example the addition of variable block sizes to H.264 High Profile (although just 4x4 and 8x8, not including the 4x8 and 8x4 modes from VC-1). I wasn't at Microsoft at the time, but was part of c24, and saw how all this unfold. You really should go back and research this point - what happened was exactly according to the plan all parties signed onto in the first place. For example:
http://www.microsoft.com/presspass/press/2004/apr
Sorenson Media licenses our Format SDK for incorporation into their product to make WMV files. There's also good guys, and we cooperate in a number of ways.
We use VC-1 because it was a codec designed to do what we wanted a codec to do
Actually, there are a number of independent implementations of the VC-1 encoder not based on any input from Microsoft. Main Concept and Sonic Cinevision are probalby the most prominant. There's also an open source one that came out of a "Summer of Code" project.
I'm not really sure what you're getting at about Sorenson and all that. Sorenson Media had many generations of popular codecs. You're right about a connection between that and H.263 - reverse engineering determined a few years ago that the original Sorenson Video codec was basically H.263 + YUV-9 color + Vector Quantization. Sorenson the company poured most of thier codec development into real-time H.264 encoders for their videoconferencing systems, but spun off the compresion tools business, which continues to do quite nicely (and they're a fine partner of ours).
As for why VC-1 and H.264? Different codecs for different goals. VC-1 was designed for high-performance PC playback as the #1 goal, and with high def scenarios as a big factor. However, H.264 was designed with a much bigger relative focus on videoconferencing and device implementations. Different codecs with different goals, and hence different sweet spots.
Actually, go ahead and use one less than the max complexity. It's actually ever-so-slightly better, and quite a bite faster, in the current verison.
As for most of the other feaures, you can get them via that PowerToy tool, or they're already on:
Multiple Reference Frames: Not explicitly supported in VC-1 (they're a huge decode complexity hit). Instead, we get the same benefit for stuff like flashes and strobes by using BI frames - an intra-only encoded B-frame, which then lets the frame after the flash refer to the frame before. You get that automaticlaly by turning B-frames on, and either encoding in 2-pass mode or using Lookahead with 1-pass.
Mixed References: You get the equivalent when the above is enabled.
Rate Distortion Optimization: On automatically at complexity 3 or higher, or you can set it with a registry key.
Trellis Quantization: No real equivalent, since we use a different entropy coding method.
VC-1 Main and Simple profiles *are* WMV9, and so are compatible to out of the box WMP9, 10, or 11, which gives compatibility down to Win 98 and 2K. WMV9-AP/VC-1 Advanced Profile, which is really only needed when you're doing native interlaced encoding, is an automatic free download for WMP 9 and 10, and installed with WMP 11.
.wmv file), that's just a SMPTE standard licensed by MPEG-LA (who also handles MPEG-2 and H.264). From a business and porting perspective, it's just like any other codec. We're seeing broad use of VC-1 in HD DVD and Blu-ray, in IPTV, and it's not part of the DVB-H television standard in Europe. So all kinds of devices will have VC-1 built in.
On Mac, Flip4Mac is our recommended solutions for playing back WMV files, and we distribute it free for Telestream.
For other OS's, many companies have licensed WMV playback, like the Kinoma Player for Palm, the Amp'd Mobile phones, the VBrick internet video appliances, etcetera.
More broadly about VC-1 (not specific to a
We're also seeing WMV and VC-1 support in some open source players, like VLC (I think derived from ffmpeg). With VC-1 being an open standard, we don't need to (or have) any involvement in those projects.
We've done lots of testing, and that hasn't been our results.
Can you share what settings you were using? If you're seeing a lot of dropped frames, one possibility is you cranked the Quality slider up to 100. That sets the minimum quality of each frame really high, telling the codec to drop frames in order to maintain data rate. A quality of 90 will give you much less trouble.
WMV9-AP is a superset of WMV9, so there shouldn't be any cases where you get fewer frames out of AP.
Also, the current codec has some useful parameters available as registry keys (I'm sorry - they came up late enough in development that we couldn't get them integrated into the Format SDK API, but it will be supported in our forthcoming SDK's API).
Here are some utilities you can use to set them, or even batch script with them:
http://www.citizeninsomniac.com/WMV/
My general best practices for quality-emphasized encoding:
B-Frames 1
2-pass encoding, or Lookahead=16 for 1-pass encoding
Full Chroma Search
Adaptive Motion Match
Adaptive Motion Search Range
And you want to run in Complexity 4 (one less than the max).
Depending on the content, DQuant and Adaptive Deadzone can help a lot, especially with film sources
The Slashdotting finally eased up enough for me to finally get to Page 4. Earlier complaints about the complete absence of accurate facts in the technical part were dead-on. But in the proceudre, wow, it's hard to know what relevant of the test would be.
40 FRAME clips? The default GOP length of most of these codecs is longer than that! There's no useful test of rate control in there, or keyframe supression popping.
And as far as compression setings, all they say is "we used the defaults, but set it to highest quality". There isn't just ONE defualt in these products. We don't know if they're even comparing CBR and VBR, 1-pass or 2-pass. And there are lots of tweaks appropriate to different kinds of content that would be used in practic - one doesn't compress film source like cel animation!
Sheesh, there's really no useful information here at all. The average reader would probably wind up knowing less about compression after reading it...
The codec has already been licensed by vendors of Linux-based devices. We offer a complete source code implementation as a porting kit.
I think our qualty is very competitive with H.264! Bear in mind that the majority of HD optical (HD DVD and BD) discs use VC-1. Did you check out my sample encode?
p le/
http://on10.net/Blogs/benwagg/elephants-dream-sam
I've got lots of bandwidth - feel free to suggest a scenario where you feel VC-1 isn't competitive, and I'll see if I can come up with a counterexample.
Well, the OP was about how good codecs are :).
Actually, there are more non-Windows playback options than you think.
First, Flip4Mac can play back all VC-1 flavors and WMA Pro today. It doesn't play back the higher frequencies of WMA Pro, but they continually improve their support every release (full VC-1 Advanced Profile came in 2.1.1 last month). Downloading it seems pretty simple, but it isn't open source. And it nicely integrates with QuickTime, so once it's installed, WMV beccomes just another file format that QuickTime Player and the QuickTIme browser plugin can use. Can you go into some more detail as to why it's a painful option for you?
VLC 0.8.6 added WMV playback support, including VC-1. It's got some glitches around playing back B-frames, but I'm sure they'll address those. I haven't tried WMA Pro in it yet, I must admit.
Since VC-1 is a SMPTE standard, with full decoder reference source code avilable, adding decoding for it isn't harder than any other codec.
And of coures Silverlight will provide WMV playback on Mac and Windows as a browser plugin. We haven't committed to doing a Linux port post 1.0, but we've certainly gotten a lot of feedback from people who'd like to see it.
Are you aware that VC-1 in the SMPTE spec for VC-1? So both codecs have fully publshed specifications, and reference source code for both encoding and decoding.
All the info about algorithms in the video codecs is fully public. The same body, MPEG-4 LA, handles licensing for both technologies, and handling patent issues around them.
Going back to the paleolithic era, Microsoft made the original reference encoder for MPEG-4 (hence the venerable MPEG-4v3 codec). Windows Media Video 7 and later were about going beyond what MPEG-4 was capable of, since we and everyone else started hitting our heads against its architectural limitations. Microsoft was also quite involoved in H.264 as well, including a Microsoft employee who chaired the committe that developed the standard.
That said, we find VC-1 is a better codec for many uses. H.264 was really designed more for an ASIC environment, and uses computationally and bandwidth intensive techniques like CABAC and a really strong loop filter that make it much more expensive for PC playback (in CPU requirements and battery life in a laptop) than a VC-1 encode of equivalent quality and bitrate. Also, VC-1's simpler loop filter design makes it easier for us to preserve textures like film grain at lower bitrates. This lower horsepower needed for decode makes it possible for us to do stuff like software-only decode of HD content inside the Silverlight brower plugin, where we have no access to hardware acceleration.
Oh, I'm really a big fan of our WMA 10 Professional low bitrate modes (
And on a practical level, we support rate control modes rarely seen in other audio codec implementations, like 2-pass CBR and 2-pass VBR. This lets us get more bang for the bit compared to 1-pass CBR and VBR modes.
Note that adaptive quantization isn't something particularly magic in x264. Our released VC-1 (WMV9) codec supports Differential Quantization and Adaptive Deadzone.
p le/
I just wrote up a blog post about using them in a downloadable 1080p version of the Elephant's Dream clip:
http://on10.net/Blogs/benwagg/elephants-dream-sam
I'll take a whack at it.
H.263 baseline is the same bitstream as MPEG-4 pt. 2 short header (and forms the basis of the Flash Spark codec). Both H.263+ and ++ and MPEG-4 pt. 2 Simple Profile and Advanced Simple Profile have further (and different) enhancements to that core bitstream.
Being based on H.263 proved to be much more of a limit for MPEG-4 pt. 2 development than was original determined, which led to the development of newer codecs like VC-1 and H.264.
Making software isn't just coding - it's the whole product.
Even if it's an open-source model where it's support that gets paid for, the software needs to be designed so that the support itself is economically feasible to deliver at a cost economically feasible for the customers to pay for.
But the marginal costs to support an additional user are extant.
And building a product that works for a bigger audience is also more expensive. Design and test for a product with a single user is a lot easier than for a million.