From: Billy B. <ve...@du...> - 2001-10-31 23:10:21
|
Matthias Dahl (mat...@we...): > I'm currently working on *hardware* deinterlacing support for the > G400+ matrox cards (I don't know about any <G400 cards because I only > have the specs for the G400 ones right now). They support BOB in > hardware so it's just perfect for TV source material. I'd like to > add a new atom to the XVideo extension which toggles the > deinterlacing. So we could add a new deinterlacing method to our > list which just toggles a XV atom - this way we would have good > quality and low cpu consumption... at least for those who own some > Gx00 card (no I'm not payed to say that again *grin*) right now but > maybe more will follow. ;-) Please read the discussion on deinterlacing atoms for XVideo going on on Xpert right now. The latest proposal from Matt Sottek is awesome. > Even though I am working myself slowly into all those MPEG2 details > and so on, I am still lacking a lot of detail information. :( For > instance, I have tried to modify the onefield XV deinterlacer so that > it'd seperate both fields by putting all even and all odd lines > back into seperate fields. This would be necessary for the hardware > BOB to work. With the Xv atom, when you copy into graphics memory, just copy the scanlines in the order you need. > Yet I couldn't figure out why there are three for-loops for the XV > onefield deinterlacer - so I wasn't able to modify it for my needs. I > guess it's some- thing to do with the YUV format? I'd be very thankful > for an insight here. :-) The images presetnted to Xv use Y'CbCr encoding with 4:2:0 sampling, each plane presented in sequence. So, each image is a w*h Y' image, followed by a w/2*h/2 Cb image, followed by a w/2*h/2 Cr image. > By the way. I have read in the TODO file a note about synching the > video to the vertical blank. Well I suggest we remove that line > because there's nothing that XINE could do about that. If the X > graphic card driver supports it, it'll do it automatically (like the > ATI or NVIDIA cards for example). We could check for the > XV_DOUBLE_BUFFER atom and enable it, if it isn't already. If no one > objects, I will add a check for it. Reminds me, if anyone is > interested, I do have a patch that adds that functionality also to > the X mga driver -- it's not yet in the offical X tree but I can send > it to anyone who wants it. You're confusing syncing to vertical blanking with just never blitting during a refresh. These are two different issues. In video playback, you want to sync to vertical refresh so that when your video fps and refresh rate are in sync you show each frame for the same number of refreshes. Consider playing 24fps video with a monitor at 72hz. Each frame should be shown for exactly 3 refreshes. A more difficult example is 59.94fps deinterlaced video on a CRT projector running at exactly 59.94hz. See http://www.dumbterm.net/graphics/refresh/ for some theoretical results on a related topic. -- Billy Biggs ve...@du... |