16bit NTSC, the display is incomplete

Designing hardware and software that uses the VS23S0X0 family of ICs as a 8-bit or SPI SRAM memory or as a Video Controller for generating Composite Video (TV-Out) or driving other kinds of displays.
Post Reply
Kaizhi Wong
User
Posts: 3
Joined: Tue 2018-10-23 8:45

16bit NTSC, the display is incomplete

Post by Kaizhi Wong » Tue 2018-10-23 9:02

Hi, I use 16bit per pixel, 320*200, but I have two problems:
IMG_7034.JPG
IMG_7034.JPG (2.48 MiB) Viewed 448 times
1, The black border above is too large, the image is positioned too far below.
2, I can only draw 320*190 pixels, I don't know if Ram is not enough.

Is there a register setting that can set the image to move up?
Can vs23s010-L process 320*200*16bit image? What exactly does protoline do, whether it takes up some pictures Ram makes Ram not enough.

viewtopic.php?f=14&t=2164
I used the code, and change the program setting, and PICLINE_LENGTH_BYTES =320*2

Thanks! :D

User avatar
Panu
VLSI Staff. Currently on holiday.
Posts: 2681
Joined: Tue 2010-06-22 13:43

Re: 16bit NTSC, the display is incomplete

Post by Panu » Tue 2018-10-23 13:51

Hi!

Great that you have gotten your VS23S0x0 to work as a video controller! Let's see if I can answer some of your questions!

First of all, these 2 questions are very similar:
What exactly does protoline do, whether it takes up some pictures Ram
Is there a register setting that can set the image to move up?
First see the post "Understanding Protolines and Line Pointers" at viewtopic.php?f=14&t=1829. Really read it, it's very good.

Protoline makes the basic shape of the complete video line, including sync and blank regions. Proto region is the whole line and Picture region is just the part of the line that really shows a picture on your TV.

To make the picture go up, change your line pointers. For example, let's say that your code now is so that line pointer of line 50 points to the first row of your bitmap. If you change it so that the line pointer of line 40 points to the first row of your bitmap, your image moves 10 lines up.

I can only draw 320*190 pixels, I don't know if Ram is not enough.
It depends on how many bits per pixel you need to use in your bitmap. 320 * 190 pixels is 60800 pixels. VS23S010 can use max 1 megabit for protolines and picture data. Maybe you need 3 or 4 kilobytes for protolines and line pointers, it depends on your number of lines and how complex video signal you need to do (interlaced/noninterlaces, do you need different background lines for different parts of the picture etc) . So for the picture data, maybe there is one million (1000000) bits remaining. 1000000 / 60800 = 16.44. So you can have 16 bits per pixel for that resolution.

But maybe 8 bits per pixel is enough? I suggest you start with the default 8-bit palette, explained here:viewtopic.php?f=14&t=1813#p9013
I used the code, and change the program setting, and PICLINE_LENGTH_BYTES =320*2
That's ok, you can fit a picture line of 320 pixels at 16 bits per pixel to that memory, or 640 pixels at 8 bits per pixel. It just changes the start addresses of each of your picture lines.

-Panu
Info: Line In and Line Out, VS1000 User interface, Overlay howto, Latest VSIDE, MCU Howto, Youtube
Panu-Kristian Poiksalo, VLSI Solution Oy

Post Reply