720p support/1080i support
Implement 720p60 and 720p50 support, with suitable scaling
#7 Updated by foft about 1 month ago
I implemented winscale and am debugging it!
It seems to work except I have some vertical stripes. I think this is because its actually down-scaling for the x axis (4x 1/2 colour clock width to 1280). While the attached paper says I can downscale up to 50% I think this is incorrect! Since the target pixel will overlap 3 source pixels even if the target pixel is even slightly wider than the source pixel.
The scaler is looking very nice now, a few border/locations bugs to fix.
Looking at the plls, need to have: 27MHz, 135MHz, 74.25MHz and 371.25MHz at the same time. This looks to be possible by feeding 54MHz from the USB pll to the HDMI pll.
It looks like 74.25 will also work for 1080i, so may as well enable that too.
Speaking of other modes, with these two clocks can also support:
1440x576i@50 (also 288 option, but not quite 50Hz)
firstname.lastname@example.org (also 240 option, but not quite 59.94Hz)
These are probably the best fit of all, for 4x colour clock modes :-)
For 720p, 480p, 576p only sampling every other pixel at the moment, since can't downscale...
For 1080i and 1440x its either upscaling or exact.
Not that there is any software for 2x or 4x anyway!
Plumbed in a 4x4 block of pixels so I can try out polyphasic filters too.
For now its just using a 2x2 block with the area based scale, but got some vertical bug. Stripey!
Using 16KB of block ram now, which is a bit wasteful. 360*4 pixels/line, 8 lines = 11.25KB. However, addressing is tricker. So using 2048 bytes/line.