Log in

View Full Version : Open Source VC-1 Encoder


Randall
18th January 2007, 20:08
So since VC-1 has become the codec of choice for HD-DVD and Blu-ray content, does anybody know if there are plans in the works for an open source GPL'd VC-1 encoder? I was thinking of something along the lines of what the x264 project is to MPEG-4/AVC.

Sirber
18th January 2007, 20:54
most efforts are made on x264, which is also part of HD codecs. no need of 45 codecs ;)

ArcticFox
19th January 2007, 19:38
most efforts are made on x264, which is also part of HD codecs. no need of 45 codecs ;)
Yes there is, its called choice, not everyone wants x264.

emmel
19th January 2007, 19:54
MS already provides quite nice codecs for VC-1. Not open source, but still "free". Hard to figure out, why someone would go through all the trouble to do the same, as long as there is x264 as an open source alternative. Of course, I'd love to see an alternative for the MS product.

R3Z
20th January 2007, 05:43
MS already provides quite nice codecs for VC-1. Not open source, but still "free". Hard to figure out, why someone would go through all the trouble to do the same, as long as there is x264 as an open source alternative. Of course, I'd love to see an alternative for the MS product.

I would love to see microsoft stop being so lazy with their codec. Its no wonder no one is touching VC1 when x264 is being updated and improved so much.

bond
20th January 2007, 17:37
guys, for wishing lists for santa clause or baby jesus, you are a few weeks too late ;)

zambelli
21st January 2007, 02:36
Of course, I'd love to see an alternative for the MS product.
Hell, I would too. :)

Furthermore, keep in mind that the free WMV9 codecs are VC-1 compliant, but aren't checked at all for HD-DVD and BluRay compliance (which is more restrictive).

I think an opensource VC-1 encoder project that's targetted at HD disc encoding would be very useful to many people.

acidsex
21st January 2007, 04:32
Hell, I would too. :)

Furthermore, keep in mind that the free WMV9 codecs are VC-1 compliant, but aren't checked at all for HD-DVD and BluRay compliance (which is more restrictive).

I think an opensource VC-1 encoder project that's targetted at HD disc encoding would be very useful to many people.

Why doesnt MS make one available? They could even offer it as a Vista Ultimate extras.

MS did the same thing with MCE when it was released. They waited for third party developers to provide solutions for editing and converting MS-DVR files. Third party developers for the most part cannot be counted on for providing these solutions as history has shown.

At the very least, MS should try provide at least an encoding profile to consumers for use with WME9 so that they can avoid re-encoding for next gen dvd authoring.

zambelli
21st January 2007, 07:18
Why doesnt MS make one available? They could even offer it as a Vista Ultimate extras.
One step at a time. MS is currently focused on providing VC-1 encoding tools to high volume professional customers. While providing useful tools to every level of customer for every scenario imaginable is an admirable goal, it's not one that can be accomplished quickly and adequately with current resources. We have to focus on one thing at a time.

MS did the same thing with MCE when it was released. They waited for third party developers to provide solutions for editing and converting MS-DVR files. Third party developers for the most part cannot be counted on for providing these solutions as history has shown.
That's a difficult hypothesis to argue because it could go either way. If Microsoft made all the tools for its formats, perhaps somebody else would argue that 3rd parties aren't being given a chance to contribute and augment the ecosystem, or that Microsoft is guarding its formats too closely. I agree that it'd be great if Microsoft's own formats were best supported with Microsoft's own tools, but sometimes that's just not possible due to limited development resources. Sometimes the company can't go much further than developing the SDK - which ought to be sufficient if only enough 3rd party developers took advantage of it.

This is even more true in the case of VC-1, which is a SMPTE standard and not at all governed by Microsoft. MS has no more responsibility to provide VC-1 tools than Fraunhofer has to provide MP3 tools.

At the very least, MS should try provide at least an encoding profile to consumers for use with WME9 so that they can avoid re-encoding for next gen dvd authoring.
It's not as simple as writing a .weu or .prx profile, in this case.

acidsex
21st January 2007, 07:32
Zambelli, I totally understand what you are saying but just like with MS-DVR, how long did the format sit before developers finally figured out how to extract simple streams from the container? It was silly.

Of course MS doesnt want to look as if they are trying to monopolize the tools for their codec but IMO, if MS can put out a better product to do it, then screw those developers who fail ro dealy to do so. No one says third parties couldnt develop it but I would like to assume that no one understands VC1 more than MS itself which to me means they are the ones to offer the better overall solution.

bond
21st January 2007, 11:23
is someone really believing that m$ would ever release their vc-1 encoder as open source?

mrcorbo
21st January 2007, 17:09
is someone really believing that m$ would ever release their vc-1 encoder as open source?

I don't think anyone mentioned that until you did, actually.

The specs are all out there for anyone to do their own implementation. The OP was asking if there was any initiative to do so.

zambelli
21st January 2007, 23:35
is someone really believing that m$ would ever release their vc-1 encoder as open source?
Do you even read threads anymore? Nobody has even suggested or requested that.

celtic_druid
22nd January 2007, 06:10
Well technically...
we've had:
I think an opensource VC-1 encoder project that's targetted at HD disc encoding would be very useful to many people.
followed by:
Why doesnt MS make one available?
Although that could have easily referred to wanting MS to add checking for HD-DVD and BluRay compliance to their already free, closed source encoder. That's the problem with quoting an entire post when you only want to make reference to part of it.

lexor
30th January 2007, 01:36
Technically US switched to SI units decades ago, yet everyone still goes by inches. We not in court of law, one can't get off on technicalities. Internet FTW, or something like that...

bond
30th January 2007, 15:08
Why doesnt MS make one available? They could even offer it as a Vista Ultimate extras.One step at a time. MS is currently focused on providing VC-1 encoding tools to high volume professional customers. While providing useful tools to every level of customer for every scenario imaginable is an admirable goal, it's not one that can be accomplished quickly and adequately with current resources. We have to focus on one thing at a time.one step at a time? sounded to me like you were pointing out that m$ could release an opensource vc-1 encoder somewhen in the future, but m$ doesnt have the time to do it now because there are other things to do first...

maybe i misunderstood what you wanted to say, for me it sounded like ...

Sharktooth
30th January 2007, 15:33
well, releasing the sources does not take any time or resource... it's like zipping the sources folder and throw the zip on a website...

Inventive Software
30th January 2007, 15:34
But releasing it under the right license however....

Sharktooth
30th January 2007, 15:38
they already have a gpl-like license for "open" projects

zambelli
30th January 2007, 20:46
<sigh> Am I the only one who understood AcidSex's question as referring to an encoder targeted at HD-DVD encoding?

I think an opensource VC-1 encoder project that's targetted at HD disc encoding would be very useful to many people.
Why doesnt MS make one available? They could even offer it as a Vista Ultimate extras.
I never thought acidsex was implying the MS encoder should be open-sourced, but that it should be made specifically for HD-DVD encoding.

Just to make things clear: Microsoft has absolutely no plans to release a "shared source" VC-1 encoder now or in the future. If anything new is released as free, it's likely to be closed source.

protovision
30th January 2007, 23:18
... If Microsoft made all the tools for its formats, perhaps somebody else would argue that 3rd parties aren't being given a chance to contribute and augment the ecosystem, or that Microsoft is guarding its formats too closely.

I know this is a bit OT, but was sorta mentioned, here goes:

"Does MS plan to SUPPORT, NOT SUPPORT, or BLOCK development (3rd party or internal) of apps/codecs to play and stream non-DLNA file formats on the Xbox 360?"

(any chance of a real answer? Zambelli?)

I know MS wants us all locked into their formats, but does this mean they would prevent others from developing? (there's lots of ways they could block). Its bad enough that a $50 POS dvd player can play divx, but my $400 xbox 360 can't (easily).

Any chance of a non-FUD answer? Its been brought up several times in the XNA forums, and even has a useless entry in the XNA FAQ. If its a codec licensing thing, then let the xbox owners buy the codecs.

MS, come to grips, and start writing software people actually want, (*cough* 'Vista' vending machine/os), or at least allows others to do it. It seems such a shame that it will take cracking of the Xbox360 before we can copy games to the HD for quick loading, less noise, stream other formats, etc. basically making the xbox360 much more valuable and useful, just like the original w/XBMC.


thx,
p.

Cyberace
2nd February 2007, 13:27
The FFmpeg project (http://ffmpeg.mplayerhq.hu) (and the codec developers behing FFmpeg/libavcodec (http://en.wikipedia.org/wiki/Libavcodec)/libavformat (http://en.wikipedia.org/wiki/Libavformat)) would be the natural choise for directing these requests/suggestions too, (and also the MPlayer (http://en.wikipedia.org/wiki/MPlayer), Xine (http://en.wikipedia.org/wiki/Xine), and VLC (http://en.wikipedia.org/wiki/VLC_media_player)/VideoLAN (http://en.wikipedia.org/wiki/VideoLAN) developers who cross-post/work between their own mediaplayer projects and the FFmpeg (http://en.wikipedia.org/wiki/FFmpeg) project a lot)

FFmpeg (http://en.wikipedia.org/wiki/FFmpeg) is a open source codec suit (with free audio and video decoder/encoder code licensed under GPL/LGPL). FFmpeg already have a VC1 decoder, and H.264 (MPEG-4 AVC) decoder and encoder (based on x264). The voleteering developers like challanges and if you present/lobby your case the right way (in a polite manor) then I'm sure someone will seriously consider accepting the challage, if not then I'm sure they at the very least add it as a new project for Google Summer of Code 2007 (http://code.google.com/soc/) together with the new Dolby and DTS audio-codec formats for Blu-ray and HD-DVD, (that is how their VC1 decoder came to be).

Note! If you like to request a new encoder/decoder from the FFmpeg project then respect that they use mailing-lists (http://ffmpeg.mplayerhq.hu/mailinglists.html) (and not a forum like here on doom9.net), and you can not just send a mail to those mailing-lists without first suscribing to it first, (suscribing is free, and you can unsubscribe at any time).

PS! Before you request support for any new codecs from MPlayer or FFmpeg developers, carefully research codec coding process: They will always preferably that the full source code (of the full stand-alone audio/video codec written in C or C++ programming-lanuage is already available as open sourced under GPL or LGPL), however if three are not open source codec available for that format then the FFmpeg developers would have to reverse-engineer it from scratch (so to speak) based on any official or unofficial documentation/specification available to the public to be able to create a new native codec. Rememeber that this can be very/extremly hard and can take a long time and a lot of skill to do, and thus they are unlikely to do so even if you ask very nicely, and if there are one group of people who have the skill, experince and interest/will to reverse-engineering codecs from scratch like that then that is those guys. They probebely require more convincing though than one simple request from one or two end-users like us to take on something as difficult, so lobbying is one way, bribing is another, to encurage them to do so, ...but money is usually not welcomed by them on principle however computer equipment/hardware usually is.

benwaggoner
7th February 2007, 09:03
Yes there is, its called choice, not everyone wants x264.

As for specific examples,

VC-1 AP takes a lot fewer MIPS than H.264 High Profile at the same quality level and data rate. 25 Mbps 1920x1080 24p with CABAC and a complex loop filter need a lot of juice

VC-1 is better at preserving film grain, due to a simpler loop filter and variable block sizes.

Sergey A. Sablin
7th February 2007, 13:40
As for specific examples,

VC-1 AP takes a lot fewer MIPS than H.264 High Profile at the same quality level and data rate. 25 Mbps 1920x1080 24p with CABAC and a complex loop filter need a lot of juice

vc-1 loop filter just much less effective and yet still not faster than good implementation of AVC in-loop filter.
(and yes - I may agree with you if you are talking about decoder speed, but not encoder, cause entropy coding and in-loop filter don't take a lot from encoding)


VC-1 is better at preserving film grain, due to a simpler loop filter and variable block sizes.

AVC also has variable size MC and one can disable loop filter or use adaptive loop filter to preserve such content.
These features haven't to much influence to grain preservation...

benwaggoner
7th February 2007, 22:37
vc-1 loop filter just much less effective and yet still not faster than good implementation of AVC in-loop filter.
(and yes - I may agree with you if you are talking about decoder speed, but not encoder, cause entropy coding and in-loop filter don't take a lot from encoding)
I was talking about decoding performance only. Encoder performance is pretty unbound. It'd be hard to meaningfully compare encoder performance between different codec standards - there are certainly MPEG-2 encoders that are slower than VC-1 encoders.

Hmm. It would be interesting to have a compression shootout being about quality at a given MIPS/pixel on encode...

AVC also has variable size MC and one can disable loop filter or use adaptive loop filter to preserve such content.
These features haven't to much influence to grain preservation...
I understand that there are things that can be done to make it better, but I've yet to see HD DVD or BD compatible H.264 implementation do a good job of grain preservation.

kolak
7th February 2007, 23:27
I've done some test with simulated grain and AVC encoder (manconcept v2.1 ).
The source was clip from red camera (good quality) and than I've added some simulated grain.
Average 14Mbit with 20 Mbit peak (2 passes) didn't give me good result.
The same clip without grain looks realy good even with much lower bitrate.


Andrew

bond
8th February 2007, 19:27
As for specific examples,

VC-1 AP takes a lot fewer MIPS than H.264 High Profile at the same quality level and data rate. 25 Mbps 1920x1080 24p with CABAC and a complex loop filter need a lot of juice

VC-1 is better at preserving film grain, due to a simpler loop filter and variable block sizes.any proove for those claims?

honai
8th February 2007, 19:48
I guess benwaggoner is using the concepts "VC-1 encoder", "Microsoft's implementation of VC-1", "H.264 HP", "an implementation of H.264 HP", and "the x264 implementation of H.264 HP" very loosely.

Now if you compare Microsoft's latest release of their VC-1 encoder to the first-generation of H.264 encoders from some well-known Japanese company then his claims are valid.

But in similar jest I could just write my own crappy implementation of the VC-1 standard, and compare it to the latest release of x264.exe, and exclaim, "Look, H.264 High Profile is sooo much better than VC-1".

I tend to think that if the best implementation of VC-1 were really that much better than the best implementation of H.264 HP then benwaggoner would have no reason to resort to such tactics.

benwaggoner
16th February 2007, 00:15
I tend to think that if the best implementation of VC-1 were really that much better than the best implementation of H.264 HP then benwaggoner would have no reason to resort to such tactics.
I agree, the best H.264 implementation is the appropriate comparison point.

Is there a particular encoder and setting you feel provides good grain retention? This is an emperical question - feel free to try and convince me I'm wrong. I simply haven't seen one yet, but I'm happy to be educated.

MySchizoBuddy
16th February 2007, 00:39
isn't vc1 encapsulated in wmv file format
wmv is proprietary

How will an alternative encoder get wmv?
what about wma. or can vc1 be used with aac or mp3 etc

zambelli
16th February 2007, 03:09
isn't vc1 encapsulated in wmv file format
wmv is proprietary

How will an alternative encoder get wmv?
what about wma. or can vc1 be used with aac or mp3 etc
First of all, the "WMV file format" is the ASF file format. Second, VC-1 is a codec standard - it's independent of any container format. Microsoft implements it as WMV9 and favors combining it with WMA in ASF, but anyone could take even Microsoft's encoder DMO and store the video stream output in an AVI container or a MKV container.

If an open source VC-1 encoder was developed, I suppose the easiest thing to do would be to have it output VC-1 Elementary Streams. Support for ASF and AVI writing could easily be added using DirectShow.

benwaggoner
16th February 2007, 04:16
If an open source VC-1 encoder was developed, I suppose the easiest thing to do would be to have it output VC-1 Elementary Streams. Support for ASF and AVI writing could easily be added using DirectShow.
FWIW, the HD DVD/BD encoder we provide makes VC-1 elementary streams (.vc1).

ToS_Maverick
16th February 2007, 08:54
Is there a particular encoder and setting you feel provides good grain retention? This is an emperical question - feel free to try and convince me I'm wrong. I simply haven't seen one yet, but I'm happy to be educated.

sure there is, check this :cool:
http://forum.doom9.org/showthread.php?t=121304&page=9

Sagittaire
16th February 2007, 16:14
I agree, the best H.264 implementation is the appropriate comparison point.

Is there a particular encoder and setting you feel provides good grain retention? This is an emperical question - feel free to try and convince me I'm wrong. I simply haven't seen one yet, but I'm happy to be educated.

- only 8x8 partition
- Particular matrix quantisation
- Low inloop filtering
- Low quantizer

AlexW
17th February 2007, 04:07
- only 8x8 partition
- Particular matrix quantisation
- Low inloop filtering
- Low quantizer

Low deadzone settings should help with grain retention as well.