Re: [Openpvr-devel] filter chains, etc.
Brought to you by:
brian_j_murrell,
jfunk
From: Billy B. <ve...@du...> - 2002-03-28 03:32:38
|
Dave Caplinger (de...@co...): > 1) Capture video to lossless-compressed AVI (e.g. huffYVUY) > 2) Run the stored video through a gamut of filters > 3) Compress to MPEG1, MPEG2, DivX, etc. depending on desired purpose > > [...] > > For some reason I haven't seen this focus on the Linux side (or maybe > I'm just missing it), where everyone trying to make PVR-like devices > appears to be just realtime-lossy-compressing the video stream (or in > the case of DVB, just storing the incoming MPEG2 stream), and later > playing back that same file. I've been busy lately with school, but ... For my pvr I wrote a huffyuv-like lossless codec to compress Y'CbCr images, and my recording app does basically what you describe above. I've been working on high quality resampling filters and have quite a good 3:2 pulldown inversion algorithm. After this last month of school I'll get back to my coding routine (at least, that's the idea). http://dumbterm.net/graphics/compression/ http://sf.net/projects/reetpvr/ > So my question for everyone else is: does a PVR need filtering? Does > it make sense to record in one format and then filter and re-encode to > another at a later time? Filtering and re-encoding is likely to be > time consuming, but if we ever hope to move stored shows to some > VCD-variant, we have no choice but to do this, right? (unless you're > going to record in 352x240 29.97 frame/sec (NTSC) 1150 kbit/sec CBR > MPEG1 and forsake any chance of xVCD or SVCD). I know I want to be able to make high quality recordings of my VHS tapes. This means I need to be able to record without frame drops and also record data from both fields. So, for VHS I record at least at 480x480 per frame, and then spend alot of time post-processing. You can do a much better 3:2 pulldown detection if your phase finding algorithm is multi-pass, for example. The 3:2 pulldown case is one great example of a filter that's better in the offline case, but if you do want to resample your image, you also want to spend alot of time doing it. To do a correct image resample, you need to convert from Y'CbCr to linear RGB space, interpolate there, and convert back. All of this is incredibly expensive to do right. Of course, doing a poor resample is cheap (especially if you're willing to stay in Y'CbCr space), but will have bad artifacts. Depends what you want to do and how much time you have. If you have hardware MPEG2 encoding and playback, building a PVR application is trivial. If you restrict yourself to bttv-style chips, things become much more difficult. -- Billy Biggs ve...@du... |