View Full Version : Open source VC-1 advanced profile encoder
malikcis
8th September 2008, 09:44
Hi All,
I developed a software model of a VC-1 encoder in ansi-C for my company (for a hardware development). My companie may donate the encoder sources as open source (e.g GPL).
Following features are currently implemented:
Advanced profile up to level 4 (2048x2048)
supports of I and P pictures
full search motion estimation
support of all VLC tables
No B-frames
No interlaced encoding
No in-loop filter
Is somebody interested in the encoder source code?
We won't release the sources when nobody want it?
Is somebody interested to moderate the further development of the project?
Regards,
:thanks:
Dark Shikari
8th September 2008, 09:45
FFMPEG would probably be quite interested in such an encoder (it'd have to be LGPL though).
malikcis
8th September 2008, 10:15
I am opened to that.
For the time being, yuv 422 raw is used as input.
Sergey A. Sablin
8th September 2008, 12:53
For the time being, yuv 422 raw is used as input.
what's the point if vc-1 only supports 420?
malikcis
8th September 2008, 13:39
Input could be in any proprietary raw format that is not well known.
yuv420 planar is used directly without any custom header.
benwaggoner
10th September 2008, 01:12
Hi All,
I developed a software model of a VC-1 encoder in ansi-C for my company (for a hardware development). My companie may donate the encoder sources as open source (e.g GPL).
Following features are currently implemented:
Advanced profile up to level 4 (2048x2048)
supports of I and P pictures
full search motion estimation
support of all VLC tables
No B-frames
No interlaced encoding
No in-loop filter
Is somebody interested in the encoder source code?
We won't release the sources when nobody want it?
Is somebody interested to moderate the further development of the project?
I'd certainly welcome another VC-1 encoder to the market!
Interlaced isn't used that much, but lack of the in-loop filter and B-frames is going to make it not particuarly competitive. But if it's otherwise a compliant encoder, I'm sure the community could add missing features.
pandy
12th September 2008, 11:12
I'd certainly welcome another VC-1 encoder to the market!
I agree - market need open source VC-1 encoder.
This is good for market and for VC-1 itself.
Interlaced isn't used that much, but lack of the in-loop filter and B-frames is going to make it not particuarly competitive. But if it's otherwise a compliant encoder, I'm sure the community could add missing features.
I can't agree - interlaced is very important - plenty of interlaced sources are on market (interlaced is not important only for "backup" HD movies ;) )
Sharktooth
12th September 2008, 13:09
nope. interlaced is useless expecially with LCD panels spreading like a disease...
pandy
12th September 2008, 13:29
nope. interlaced is useless expecially with LCD panels spreading like a disease...
But plenty of popular sources are interlace... Maybe companies such as Sony (for example only) don't know about this?
Sharktooth
12th September 2008, 15:23
then deinterlace them. interlacing was born as a sort of analog compression... we dont need it in the digital era.
pandy
12th September 2008, 16:16
then deinterlace them. interlacing was born as a sort of analog compression... we dont need it in the digital era.
1080i25 to the 1080p50 or maybe 540p50 or 1080p25?
bond
12th September 2008, 19:32
so, there are a lot of people interested. Any chance to see the code? :D
Sharktooth
12th September 2008, 19:50
1080i25 to the 1080p50 or maybe 540p50 or 1080p25?
there are several ways to deinterlace.
pick the one it looks best for you.
pandy
15th September 2008, 10:03
there are several ways to deinterlace.
pick the one it looks best for you.
Method "best for me" probably don't exist so until sources are interlaced (not ripped movies) and until specs for VC-1 says about interlacing support then interlaced should be supported.
:D regards
Sharktooth
16th September 2008, 20:36
so if M$ says, jump off the bridge, you jump off the bridge...?
interlacing must die coz it's useless (and that's a fact), it lowers the encoders efficiency, it slows down the decoding (since you have to deinterlace to watch the video on a modern LCD) and causes so much troubles to ppl who dont know how to deinterlace/IVTCing.
benwaggoner
16th September 2008, 21:15
so if M$ says, jump off the bridge, you jump off the bridge...?
interlacing must die coz it's useless (and that's a fact), it lowers the encoders efficiency, it slows down the decoding (since you have to deinterlace to watch the video on a modern LCD and causes so much troubles to ppl who dont know how to deinterlace/IVTCing.
Of the many conspiracy theories about Microsoft, this is the first I've heard that reveals our diabolical plan to use interlaced video as a weapon of domination :).
That said, given reasonably high motion 480i30 source and a good motion adaptive bob, I've found that encoding as interlaced at, say, 1.3 Mbps, 480i30 gives better quality than encoding the same source at 480p30 (too stuttery) or 480p60 (too many artifacts due to low bits-per-pixel).
A fair number of caveats, certianly, but yes, there are cases where interlaced delivery can be the best choice.
Sharktooth
17th September 2008, 03:59
i wasnt theorizing a conspirancy but just telling him he should look at the facts and use his own brain instead of listening and doing what others tell him to do...
interlacing is a sort of plague in the digital era. btw, what you said it's true... but if we get a progressive source as source things will be different...
benwaggoner
17th September 2008, 05:46
i wasnt theorizing a conspirancy but just telling him he should look at the facts and use his own brain instead of listening and doing what others tell him to do...
interlacing is a sort of plague in the digital era. btw, what you said it's true... but if we get a progressive source as source things will be different...
Well, if you want to get 720p60 to DVD...
But agreed, we should default to progressive and only use interlaced when there's a clear reason to.
pandy
17th September 2008, 14:55
so if M$ says, jump off the bridge, you jump off the bridge...?
interlacing must die coz it's useless (and that's a fact), it lowers the encoders efficiency, it slows down the decoding (since you have to deinterlace to watch the video on a modern LCD) and causes so much troubles to ppl who dont know how to deinterlace/IVTCing.
I use CRT dual monitor configuration and one of them is in interlaced modes...
btw MS strongly support progressive.
Until cheap amateur sources will be progressive then interlace should be supported. Howgh :devil: ;)
rica
20th September 2008, 17:27
nope. interlaced is useless expecially with LCD panels spreading like a disease...
Shark, i know you like very much those interlaced things :p
Yes, even MS Expression encoder itself neither supports interlaced encoding.
benwaggoner
20th September 2008, 17:49
Shark, i know you like very much those interlaced things :p
Yes, even MS Expression encoder itself neither supports interlaced encoding.
Expression Encoder limits itself to Silverlight-compatible bitstreams, and Silverlight itself doesn't support interlaced decoding.
We went back and forth on it, but in the end we thought that not enough people would want to use native interlaced in it to make it worth the additional installer size for the decoder + deinterlacer, and then of course all the additional fuzz testing and such on a whole new set of bitstreams.
rica
20th September 2008, 18:04
Expression Encoder limits itself to Silverlight-compatible bitstreams, and Silverlight itself doesn't support interlaced decoding.
We went back and forth on it, but in the end we thought that not enough people would want to use native interlaced in it to make it worth the additional installer size for the decoder + deinterlacer, and then of course all the additional fuzz testing and such on a whole new set of bitstreams.
I was one of the guys who wanted this on your forum but as far as i understood you seem given up forthcoming interlaced encoding? This is bad news.
benwaggoner
20th September 2008, 18:08
I was one of the guys who wanted this on your forum but as far as i understood you seem given up forthcoming interlaced encoding? This is bad news.
Sorry, I was talking about where it is now. I'm not actually on that team, and I know they've considered adding modes beyond what Silverlight handles in future versions. But depth with Silverlight was the main goal for the initial releases, with breadth for non-Silverlight scenarios much less important.
rica
20th September 2008, 18:14
Sorry, thx for the explanation.
pandy
22nd September 2008, 08:31
Expression Encoder limits itself to Silverlight-compatible bitstreams, and Silverlight itself doesn't support interlaced decoding.
Hmmm so Silverlight doesn't support VC-1?
benwaggoner
22nd September 2008, 08:39
Hmmm so Silverlight doesn't support VC-1?
Sure it does. Just progressively encoded VC-1 streams (which is easily 99% of the web bitrate VC-1 streams out there).
pandy
22nd September 2008, 09:27
Sure it does. Just progressively encoded VC-1 streams (which is easily 99% of the web bitrate VC-1 streams out there).
;) ok, i don't need another flame
regards
zambelli
24th September 2008, 04:07
Aaaanywho... Back to the topic. :)
Yes, having another VC-1 encoder would certainly be a good thing. Even if it is only limited to progressive video without B frames and in-loop filter, the whole point of making it open-source would be to allow people to implement those features if they've got the time and knowledge. So +1 vote from me.
Also, I'd like to remind everyone that Microsoft's VC-1 Encoder SDK Professional (http://www.microsoft.com/downloads/details.aspx?FamilyID=5031C859-E8DA-41BC-98E3-C13ADD5378B0&displaylang=en) is freely available for download for anybody wants to build a VC-1 encoding app. To this date only Nic has put some effort into building an app on it, but it's essentially just a mod of the sample code that ships with the SDK - it's really not very user friendly or robust, nor does it make encoding for best quality very intuitive. I know a ton of people are still encoding with WME9 and WMCmd.vbs so it's a little weird that nobody has taken the opportunity to take a much improved VC-1 encoder and do something very cool with it. If anybody has the interest, I'd be happy to help out with advice and suggestions.
buzzqw
24th September 2008, 07:37
i would like to "include/offer to download" with automkv the new vc1 encoder.. but i cannot compile it
anyone that can compile it with avs support is more then welcome.
also.. how does it deal with audio ? does vc1encoder encode audio too ?
does it creates a wmv file with audio AND video or 2 separated streams ?
last one: how to mux with command line audio and video (wma + wmv = wmv) ?
thanks :o
BHH
benwaggoner
24th September 2008, 08:06
i would like to "include/offer to download" with automkv the new vc1 encoder.. but i cannot compile it
What error are you getting?
also.. how does it deal with audio ? does vc1encoder encode audio too ?
It just makes a video bitstream. Audio needs to be encoded elsewhere (typically the Format SDK will be used for audio and ASF mux).
buzzqw
24th September 2008, 08:19
What error are you getting?
ehmm.. i will explain better: i haven't installed the compiler.
Audio needs to be encoded elsewhere
so using again wmcmd.vbs ?
and for muxing ? no command line muxer avaiable ?
thanks for your interest
BHH
benwaggoner
24th September 2008, 08:31
ehmm.. i will explain better: i haven't installed the compiler.
Ah. Good first step :).
so using again wmcmd.vbs ?
and for muxing ? no command line muxer avaiable ?
thanks for your interest
Simpler than that. You pass bitmaps to the VC-1 Encoder SDK lib, which gives compressed bitstream out. You give PCM audio and the compressed VC-1 bistream to the WM Format SDK, which encodes the audio and muxes to ASF.
Check out the sample code; that'll make it all make sense.
b66pak
27th September 2008, 21:49
Hi, i am interested in this VC-1 encoder for personal use. Where can i find a build?
b66pak
29th September 2008, 20:17
nobody?
rica
30th September 2008, 00:06
nobody?
For the time being you can give it a go with expression encoder trial.
No any free encoder yet afaik.
Kurtnoise
30th September 2008, 02:03
No any free encoder yet afaik.
never heard of avs2asf (http://forum.doom9.org/showthread.php?t=133173&highlight=avs2asf&page=5) ?
rica
30th September 2008, 16:08
never heard of avs2asf (http://forum.doom9.org/showthread.php?t=133173&highlight=avs2asf&page=5) ?
I use it for extracting WVC1 from the wmv created by expression. Really i didn't know its encoding feature :) :thanks:
EDIT: sorry; confused with asf2vc1; it means i didn't know.:confused:
bond
30th September 2008, 21:59
has anyone got the source from malikcis?
if not, i will close down this thread, as it seems to be plain spam and/or advertising..
Inventive Software
30th September 2008, 22:06
He's posted on the ffmpeg-devel mailing list as well, and there's interest there, so keep the thread open. :)
malikcis
6th October 2008, 08:45
so, there are a lot of people interested. Any chance to see the code? :D
Hello,
Our management decided not to release our source code yet.
But we know there is interest in an open source code of VC-1.
We may come back later to the community and release the code later.
Regards,
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.