web page header logo

Managing RAM by Striping

Physically large, high resolution panels require a lot of pixels. How many? For a 600 x 600 mm panel at 50,800 DPI (2 pixels per micron) we calculate:

      600mm x 600mm x 2000px/mm x 2000px/mm = 144E10 pixels/8 = 180E9 Bytes

Since we can't access that amount of memory directly (and we would not want to use disk swapping ) we use a different strategy. We divide the image area into stripes1 and work on one stripe at a time. The bitmap for that stripe can be saved to disk. Then the memory is reused for the next stripe or tile.

Suppose we choose a stripe of height 120 mm and width of 300 mm. Our required memory is:

      120mm x 300mm x 2000px/mm x 2000px/mm = 144E9 pixels/8 = 18E9 Bytes

So we have reduced the required memory from 180 GByte to 18 GByte. This should not be a problem in a workstation equipped with 32 GBytes of RAM2.

Of course there is a trade off. We must repeat the RIP 10X to cover the entire image and each time we complete a stripe we must write the bitmap to disk or otherwise dispose of it. This will certainly take more time that a single pass of the RIP.


1 The RIP has to insure that data crossing the stripe boundaries does not get corrupted or otherwise shifted.

2 To maintain throughput, we will actually need two image buffers - one for the RIP to use and a second to process the pixels from one stripe while the RIP is working on the next stripe.

Download Programmer's API Revision History     Price    

417 Ingalls St. Unit C, Santa Cruz, CA 95060 831.426.6163 email:  info@artwork.com