On Sat, Jun 07, 2008 at 11:24:53AM -0400, Younes Manton wrote: > > It seems that this GSOC would go a long way to sorting this: > > http://www.bitblit.org/gsoc/g3dvl/index.shtml > > http://www.bitblit.org/gsoc/g3dvl/proposal.shtml > > but nothing anywhere mentions Dirac. > > Lots of other people have asked me about support for other codecs. > Since GSOC is only a few months and I'm only one person (who knew more > about GPUs than video codecs when he started), I thought it was > reasonable to stick with MPEG2 and XvMC for starters, but a lot of > that code can be applied to VAAPI and other codecs, so I'm optimistic > that VC1, h264, and others will eventually be handled. > > > I'm also interested in whether any of this will help encoding (it does > > not sound like VAAPI currently intends to support encoding). > > Encoding doesn't make sense on a GPU to be honest with you.
It makes sense for the same reason that it makes sense to use multiple cores in a machine, or multiple machines in a cluster. The numbers concerning bandwidth to and processing power of the remove processor are different, but that merely changes the efficiency of adding the remote processor. Pushing uncompressed video to a video card takes up a noticeable fraction of the bus bandwidth, but it's already done for software decoding of video, so it's clearly possible. The difficult part of encoding is that at some point, intelligent decisions need to be made that take into account a wide variety of input data. Think: massive rats nest of if() statements. CPUs are good at this, GPUs bad. So what happens is that you have to split up encoding into many subunits, and execute some on the GPU. Since the splitting is dependent on the design of the encoder, it is difficult to design a useful API. In this respect, CUDA is really great, since we have complete control over what gets executed on the GPU. I've been attempting to duplicate some of the CUDA ideas in ORC (subproject of liboil, I've only blogged about it), but haven't thought much about targetting ORC for a GPU, other than avoiding designs that make this impossible. Also, since arithmetic coding is an entirely serial operation, GPUs are not particularly good at this either. Hopefully newer generations of video cards will have dedicated units for this. Er, so I think I agree with you, if your statement was meant to be "Encoding doesn't make sense using VAAPI." dave... ------------------------------------------------------------------------- Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://sourceforge.net/services/buy/index.php _______________________________________________ Schrodinger-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/schrodinger-devel
