robfinch wrote:
Quote:
Another option might be temporal dithering similar to what's used in some cheaper LCDs.
I may try dithering the output instead. I half expected the circuit to produce a dithered output given the high bandwidth DAC.
I had a chance to play with Delta-Sigma code and it looks like it would apply some nice dithering to your LSB.
For testing I used only a single bit for each colour with no kind of external DAC, the only added components are a 1K + 270Ohm series resistor net (1 per R,G,B) to drop the 3.3v output to 0.7v for the VGA input of the screen.
I used an internal colour space of 18 bits (6 per colour). 50MHz pixel clock with a 300MHz subpixel clock. Used a little Altera Cyclone II board that could do with VGA, seems to have a nice PLL.
Video:
https://www.youtube.com/watch?v=Sfqd7RtJZ_sCode looks like this, excuse the VHDL

Code:
process(CLOCK_300)
begin
if rising_edge(CLOCK_300) then
-- Show test animation
PWM_Accumulator1 <= (('0'&PWM_Accumulator1(5 downto 0)) + ('0'&SixBitRedInput));
PWM_Accumulator2 <= (('0'&PWM_Accumulator2(5 downto 0)) + ('0'&SixBitGreenInput));
PWM_Accumulator3 <= (('0'&PWM_Accumulator3(5 downto 0)) + ('0'&SixBitBlueInput));
end if;
end if;
end process;
VGAOutRed <= PWM_Accumulator1(6);
VGAOutGreen <= PWM_Accumulator2(6);
VGAOutBlue <= PWM_Accumulator3(6);
robfinch wrote:
I started working on a Bit-Blitter component. It copies a rectangular region from a source bitmap to a destination bitmap excluding pixels that match the transparent color.
It works a pixel at a time. The blitter currently handles up to 64 region copies from up to 16 source bitmaps to a single target bitmap. I've been trying to find information on blitter components on the web in particular capabilities and registers sets. There are a zillion sites that have non-specific information.
I've only had a quick look at the source so far so might have missed it. The ability to average two bitmaps is handy but I don't think I saw it in the code. It would help with the datkening areas of the screen : (bitmap1 colour + bitmap2 colour) / 2