Registered: Not Yet
I think it's 360 x 480 but with 2 bytes (16 bits) per pixel, though it seems for 65k colors you'd need more than 520 bytes of header to describe the palette... I'm honestly not sure how it works yet, but I also suspect there might be a byte-order issue here (Intel's LSB-MSB vs Motorola's MSB-LSB)... but either way, if we can somehow translate the header (and thus the palette), we should be able to duplicate it.
I tried renaming the uncompressed version to every single image type that Paint Shop and Photoshop recognize, with no success. I tried every conceivable setting for "raw" in both programs, and was able to view them but the colors were way off...
I have some other ideas - neither program seems willing to take an image containing a palette for any raw type - it has to be either grey-scale or RGB or CYM (or whatever)... but nothing with a palette. So I'm thinking about trying to add the image header from an 8 or 16 bpp bitmap, and see if I can get it to recognize it. Then I may be able to somehow merge the palette into the header as well. If we can crack that, we should be able to easily whip up a BMP --> cs22 converter in C
I still don't know why I so badly want to get this to work - once I'm able to display my own images on the screen, I then will need to come up with a practical use... but I'm sure that won't take too long...
Also - I'm wondering if some of those bits are reserved for something like "transparency level". All image formats that I know of (except for .psd) cannot store varying levels of transparency - it's either transparent or opaque, no in-between. But keeping with TV standards, you need to be able to overlay an image over the video.
- TiVo can play only one MPEG type of image at a time, period. There is only one hardware decoder capable of displaying compressed images.
- TiVo can however mix raw video with the MPEG. Remember, you cannot mix compressed data without first decompressing both portions, mixing, then re-compressing them together - which the TiVo does not have enough processing power to do (same with audio).
Thus, all on-screen images that are mixed with video are raw (or RLE encoded, which is relatively simplistic in comparison to MPEG/JPEG). Hint: this is why the TiVo main menu will not overlay TV - it has its own animations in the back drop, probably in the form of an MPEG
What does all of this mean? I'm not sure, but my mind has been stuck on this all day. /dev/mpeg0v is for MPEG video. Go ahead and 'cat' something to it, you'll only see distortions in the video (proving my point above about mixing compressed data). The OSD is a separate rendering device (also why it records only the video, even if you're using the OSD to look at the description, for example).
To summarize, if we can figure out the color palette, the transparancy settings (how many bits are used for each - doesn't have to necessarily be 8:8 btw), the byte-ordering and so on, we should be able to project images, possibly as overlays and over only portions of the screen (perhaps ICQ messages, stock quotes, or whatever you can make a program on another PC send to the TiVo)...
PS - sorry for the long post - I've been up too long, and I tend to do 'brain dumps'
PPS - Thanks for the decoder, btw - it's been extremely helpful with this whole process
- J-Man aka Justin
[This message has been edited by J-Man (edited August 18, 2000).]
POST #9 | Report this post to a moderator
| IP: Logged