4.5.
File Upload
A page for file uploads is provided.
Test patterns can be created and stored on the PC. Four such custom test patterns can be uploaded to
and stored by the VP-794 unit. Each of the test patterns in the four slots can be deleted and replaced by
another test pattern.
The test patterns need to be in RGB 24bit .PNG format as supported by MS Paint®. For best detail the
test patterns should be created with the output resolution VP-794 will be operated at. Non matching
resolution test patterns will be scaled to the output resolution.
A single alpha map can be uploaded to the HQView unit.
The alpha map format is B/W 16bit .PNG as supported by Adobe Paintshop®. Only the most significant
10 bits are used.
Also a Kramer proprietary format without compression is supported. This format is intended for uploads
in proprietary calibration systems directly controlling the VP-794 unit. Thus, a .PNG encoder does not
have to be implemented on the host side. If the alpha map size exceeds the available storage space on
the VP-794 unit the .PNG (lossless compression) has to be used.
The Kramer format is as follows:
// Custom Alpha Map File Format
//
// Offset Size Purpose
// 00 4 Header field used to identify custom alpha map file ('AM30')
// 04 2 Horizontal resolution in pixels (big endian)
// 06 2 Vertical resolution in pixels (big endian)
// 08 s Image data
//
// Each line of image data is built like this:
// One 32-bit unsigned (four bytes, big endian) for every three pixels of image data
// Bits[31..30] - unused
// Bits[20..20] - leftmost pixel of three
// Bits[19..10] - middle pixel of three
// Bits[09..00] - rightmost pixel of three
// Each line has to be zero-padded to make up an integer number of 32-bit unsigned values
//
// e.g. 1280 pixels horizontally needs 427 values (1024/3 = 426.67, rounded up)
//
// So the size (s) of the image data is calculated like this:
// s = CEILING(ImageWidth /3 ) * 4 * ImageHeight
//
// Example of a 1920x1200 custom alpha map (all alpha values set to 1):
//
// 000000 41 4D 33 30 07 80 04 B0 (header)
// 000008 3F FF FF FF 3F FF FF FF (beginning of first line)
// ...
// 000A08 3F FF FF FF 3F FF FF FF (beginning of second line)
// ...
// 2ED608 3F FF FF FF 3F FF FF FF (beginning of last line)
//
// s = CEILING(1920 /3 ) * 4 * 1200 = 3072000 bytes