On Thu, 18 Dec 2003, Michel Bardiaux wrote: > Erik Slagter wrote: > >>Software reduction means you grab the whole 704 by 576 (when PAL) pixels > >>for every frame, copying from the mmap-ed buffers to your own buffer. > >>Then you skip say 3 out of every 4 lines, and in the lines you keep, > >>skip 3 out of every 4 pixels. There are subtler methods but this one is > >>simple. > > > > > > I'd suggest capturing 720x576 - else the card already starts downscaling > > in hardware. > > Well, VIOCGCAP was telling me 924 for maxwidth, which I found puzzling. > Being in a rush I hardcoded 704x576 (2 times SIF). Do the cards do > downscaling or cropping? Whare do you get 720 from? If true, I should > see some improvements in speed and quality, so I'll certainly try. But > not today. The bt8x8 chip samples the video stream at a high horizontal resolution. I know that for NTSC, it's 756 pixels. I guess for PAL, it's 924. TV signals aren't perfect, so some lines will be < 756 (or 924) pixels long because the signal ended a few tenths of a microsecond early. The bt8x8 then scales the 756 or fewer pixels to the resolution you requested. It can only go down, so if you request 756 (or 924) pixels, most lines will be dropped because they ended up being only 755 pixels or fewer. 720 is called full-D1 resolution by the ccir601 standard, for NTSC. It's the resolution used by DVDs. If you request less than full resolution, the bt8x8 scales the image down in hardware using a number of different filters. You even control the filters it uses, but I don't think v4l has the ability to set these things. I don't see how capturing at a high resolution and then dropping pixels would be an improvement. The filters the bt8x8 uses are better than just dropping pixels, plus it does them in hardware for free instead of using the cpu, and there is less data to transfer over pci.