VCE YUV rom table dump

Okay, I think I got this figured out. I compared the patent table of the RGB to YUV matrix rom to that of just YUV clipped to 5bits. There’s rounding in there. Not just rounding, but some weird bias in the first all blue level entries (didn’t seem to follow any logic that I could see). Something I really didn’t expect to see that. That makes it a little problematic for trying to model the YUV conversion process.

You could just set a weight to round all values that aren’t in the patent table, to 5bit. But there’s another way.

The VCE doesn’t handle complete quadrature modulation inside the chip. The last step is done externally, right before the amp. Since it’s just a simple addition (you just simply tie the lines together. Remember; amplitudes add). But the 90 degree phase shift and the amplitude modulation of subcarrier sinewave is (handled internal, that is). So, you actually have all three independent Y,U,V outputs. Even the color burst reference is on its own output (but that’s irrelevant for this).

What that means is; is that I can cut the trace of either U or V component of the subcarrier and easily just look at the amplitude modulation. It’s 5bit, so I should be able to clearly see the stepping on my oscilloscope if I stretch it vertically. I’ve already removed U and V independently on my Duo unit before (it’s pretty cool looking :D). So, I just need to do this for Y, then U, then V.

So, I can reliably dump the whole table by hand. That only downside is that I’d be writing 1536 entries down on paper. But yeah, beggers can’t be choosers (that would be me šŸ˜‰ ). I’ll take this over $600+ decap and micro scope pics.

Edit: Oh yeah, I wanted to mention that just looking at the first few and last few entries in the patent matrix rom table – the Luma is full range. It’s not compressed to 16 – 225. It’s full 0 to 255 (in 5bit steps). That’s important to know. Though, I just figured that out a few hours before hand when messing with the capture card. But it’s nice have a direct second source confirmation of this.

Advertisements

3 Responses to “VCE YUV rom table dump”

  1. Before I attempt to write down 1536 entries by hand, I think I’ll compare the table in the patent to Y,Cr,Cb color space (which is just slightly different than YUV). It’s possible that’s what it’s converted to.

  2. I have already addressed the problem of the YUV rom table for my emulator(PicchioEngine):
    0<=R<=7, 0<=G<=7, 0<=B<=7
    0<=Y<=31, -15<=R-Y<=15, -15<=B-Y<=15
    Y = nint( 1.33*R + 2.61*G + 0.49*B)
    R-Y = nint( 2.14*R – 1.80*G – 0.34*B)
    B-Y = nint(- 0.72*R – 1.42*G + 2.14*B)
    where nint(x) is the nearest integer function(symmetric arithmetic rounding)
    Note: the rounding method described in the patent US 5389949 is wrong,
    probably an error of translation from the Japanese.

    • Much much thanks for the patent number. But I noticed something conflicting from the earlier VCE patent filed in ’87 (the one you gave is ’95). The early patent shows the first few and last few rom matrix entries. The very first one has a different value for pure black. Also, ran CCovell’s 512 color demo on your emu, took a screen shot – and overlaid the pure capture I got from my SGX. They extremely close as to the Luma stepping, but they’re not exact. I can snip R-Y and B-Y for the composite circuit and capture just Y (full luma range of IRE 0 to IRE 100). If you want to compare it so your conversion (but just Y output)?

      It’s possible they changed the rom table for whatever that 1995 patent required it for (I’ve seen Hudsons chips available to buy in bulk order still).

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: