But then also I think some webcams use H264? I remember reading that somewhere.
But then also I think some webcams use H264? I remember reading that somewhere.
It's not fitting into anything I fear, best case scenario the effective bulk transfer rate of USB2 is 53MB/s.
60 is the signaling rate, but that doesn't account for the framing or the packet overhead.
That limit is too high even as a theoretical max.
You could do raw 720p.
Also 4:2:0 is 6 values per 4 pixels. 1.5 bytes per pixel at 8-bit.
If we take the AR0330 sensor used in the USB Camera C1[2] as an example, it has a native resolution of 2304H x 1296V and outputs 10 bits per native pixel after internal A-Law compression[3] for a total raw frame size of 3.56 MiB, assuming optimal packing. The corresponding image, demosaiced and downscaled to Full HD (1920x1080), in RGB with eight bits per channel would be 5.93 MiB.
[0] https://en.wikipedia.org/wiki/Bayer_filter
[1] https://en.wikipedia.org/wiki/Demosaicing
[2] https://www.kurokesu.com/shop/cameras/CAMUSB1
[3] https://www.onsemi.com/products/sensors/image-sensors/ar0330
Seems to me like that kills the idea dead? GGP assumed 8bpp and that the raw resolution matched the output, and came out... well wrong (the effective bulk transfer rate of USB 2.0 is 53MB/s on a good day), but by just a few megs.
However the raw resolution is 40% higher than the final output, meaning even at 8bpp you're at 85MB/s and you've blown way past any hope of recovering via a few tricks. At 10 bpp you're above 100MB/s.
The problem is that neither format fits within the limits of USB 2.0 at 15 FPS or higher. To achieve a reasonable framerate you need to apply compression, and generally speaking you'll get better compression if you demosaic first.