I would like to generate TED-like signal for VGA monitor input (Analog RGB + H/V-Sync). This is basically 16 pre-defined chroma values with 8 brightness levels applied, encoded as 7 bits: XBBBCCCC
(4 bits chroma, 3 bits luma).
I would like to base my build on https://github.com/raspberrypi/pico-playground#scanout-video but minimize pins used (9 instead of 17 GPIO pins).
I'm thinking about building a resistor array that would drive RGB values off 4 chroma bits in the following ratio:
- 1 bit 66% Red,
- 1 bit 66% Green,
- 1 bit 33% Red + 50% Blue,
- 1 bit 33% Green + 50% Blue,
with added fixed luma bias and opamp for luma brightening - driven by 3 bit DAC (or VGA) - on each R/G/B channel.
That would give me following colors:
Not very artistic, but predictable and (I think) usable.
Unfortunately this method gives over-representation of whites, as I cannot whiten a white.
The questions I have:
- Does that even make sense - using resistors and opamps to generate such VGA signal?
- How do I work-out the resistor values?
- Any suggestions for opamps/VGAs? Or something else to drive 3 bit brightness?
- Could you suggest a better method of generating RGB signal from 4+3 bits encoded colors?
I did palette analysis of this color creation method and it is obvious that brightening by R/G/B amplification is sub-optimal (conical color-space coverage).
dawnbringer-palette-analysis
censor-palette-analysis
Especially compared to how "evenly" TED colors cover the spectrum:
Plus4 dawnbringer-palette-analysis
Plus4 censor-palette-analysis