Contained Within
Find More Documentation
Featured Support Resources
| Download this book in PDF
XIL Acceleration on SX
4
- This section covers commonly used XIL functions which have been accelerated on the SPARCstation 10SX system and SPARCstation 20 system for XIL_BYTE and XIL_SHORT images. There are certain restrictions which have been placed on the functions in order for acceleration to occur. If the function is not accelerated on a SPARCstation 10SX system and SPARCstation 20 system, it is performed using the memory driver of XIL.
- Two functions, xil_rotate()and xil_affine() require SXDRAM in the amount of the memory required for the source image. In addition, xil_lookup() also requires tables larger than 4096 bytes be stored in SXDRAM. Refer to Chapter 2, "Reserving DRAM for SX Accelerated Applications" for further details on how to allocate SXDRAM.
- To obtain optimum performance from the SPARCstation 10SX system, two conditions must be satisfied.
-
- The image must have been touched by the system already. That is, there is a performance penalty the first time the SPARCstation 10SX system and SPARCstation 20 system touches a particular image).
- Mixing of the SPARCstation 10SX system and SPARCstation 20 system accelerated and unaccelerated functions must be kept to a minimum.
4.1 SX XIL Features
- For dyadic functions, the following restrictions apply:
-
- 1, 3, 4 banded XIL_BYTE images.
- 3 banded child of 4 banded XIL_BYTE image
- Child images with x,y offsets ok, no band offsets
- Full support for ROIs
-
Table 4-1 describes dyadic functions.
-
Table 4-1
| XIL Function | 1 band | XIL_BYTE 3 bands | 4 bands | XIL_SHORT n bands | XIL_BYTE Child 3/4 |
| xil_add | x | x | x | x | x |
| xil_and | x | x | x | x | x |
| xil_multiply | x | x | x | x | x |
| xil_or | x | x | x | x | x |
| xil_subtract | x | x | x | x | x |
| xil_xor | x | x | x | x | x |
- For other imaging functions (see Table 4-2), the following restrictions apply:
-
- 1 band XIL_SHORT images
- 1, 3, 4 band XIL_BYTE images
- 3-banded child of a 4-banded image
- Child images w/ x, y offsets, no band offsets
- Full support for ROIs
-
Table 4-2
| XIL Function | 1 band | XIL_BYTE 3 bands | 4 bands | XIL_SHORT 1 band | XIL_BYTE Child3/4 |
| xil_add_const | x | x | x | x | x |
| xil_and_const | x | x | x | x | x |
| xil_divide_const | x | x | x | x | x |
| xil_multiply_const | x | x | x | x | x |
| xil_not | x | x | x | x | x |
| xil_or_const | x | x | x | x | x |
| xil_subtract_const | x | x | x | x | x |
| xil_subtract_from_const | x | x | x | x | x |
| xil_xor_const | x | x | x | x | x |
| xil_min | x | x | x | x | x |
| xil_max | x | x | x | x | x |
| xil_absolute |
|
|
| x |
|
| xil_blend | x | x | x | x | x |
| xil_paint | x | x | x | x | x |
| xil_scale | x | x | x | x | x |
| xil_rescale | x | x | x | x | x |
| xil_set_value | x | x | x | x | x |
| xil_extrema | x | x | x | x | x |
| 1 xil_convolve | x | x | x | x | x |
| xil_rotate (Nearest Neighbor only, no ROI) | x | x | x | x | x |
| xil_affine (Nearest Neighbor only, no ROI) xil_lookup2 xil_color_convert3 | x | x | x |
| x |
| 4 xil_copy | x | x | x | x | x |
-
Table 4-2 (Continued)
| XIL Function | 1 band | XIL_BYTE 3 bands | 4 bands | XIL_SHORT 1 band | XIL_BYTE Child3/4 |
| xil_threshold | x |
|
| x |
|
| xil_transpose | x | x | x | x | x |
| xil_translate | x | x | x | x | x |
| xil_get_pixel | x | x | x | x | x |
| xil_put_pixel | x | x | x | x | x |
5 xil_band_combine
6 xil_decompress
7 xil_cast |
| x |
| x (3-band) |
|
- 1. Convolve is implemented for the a limited number of kernels with central key pixels, as shown in Table 4-3.
- 2. The variations of xil_lookup are implemented, as shown in Table 4-4.
- 3. The variations of xil_color_convert are implemented, as shown in Table 4-5.
- 4. Copy function also allows the insertion and extraction of one band from 3/4 banded XIL_BYTE and 3-banded XIL_SHORT images.
- 5. xil_band_combine has been implemented for 3-banded XIL_SHORT and XIL_BYTE images.
- 6. For JPEG, the molecules decompress->color_convert->display and decompress->color_convert->scale(2X)->display have been implemented.
- 7. xil_cast has been implemented for conversion between 3-banded XIL_BYTE and 3-banded XIL_SHORT images, and between 1-banded XIL_BYTE and 1-banded XIL_SHORT images.
-
Table 4-3
| XIL Function | Kernel |
| xil_convolve | 3x3 |
| xil_convolve | 5x5 |
| xil_convolve | 7x7 |
| xil_convolve | 3x1/1x3 (molecule) |
| xil_convolve | 5x1/1x5 (molecule) |
| xil_convolve | 7x1/1x7 (molecule) |
-
Table 4-4 xil_lookup
| XIL Function | From-To | Bands |
| xil_lookup | 8-8 | 1 band XIL_BYTE |
| xil_lookup | 16_16 | 1 band XIL_SHORT |
| xil_lookup | 8_16 | 1 band XIL_BYTE to XIL_SHORT |
| xil_lookup | 16_8 | 1 band XIL_SHORT to XIL_BYTE |
| xil_lookup | 8_24 | 1 band to 3 bands XIL_BYTE |
| xil_lookup | 24_24 | 3 bands to 3 band XIL_BYTEs |
| xil_lookup | 8_32 | 1 band to 4 bands XIL_BYTE |
| xil_lookup | 32_32 | 4 bands to 4 band XIL_BYTE |
| Table 4-5 Variations of xil_color_convert SPARCstation 20 | Supported on SPARCstation 10SX and |
| Source Colorspace |
| Destination Colorspace |
| rgblinear |
| rgb709 |
| rgblinear |
| ycc709 |
| rgblinear |
| ycc601 |
| rgblinear |
| ylinear |
| rgblinear |
| cmyk |
| ycc601 |
| rgb709 |
| rgb709 |
| rgblinear |
| rgb709 |
| ycc601 |
| rgb709 |
| photoycc |
| photoycc |
| rgb709 |
| cmyk |
| rgblinear |
4.1.1 Imaging Molecules
- In addition to decompression molecules, imaging molecules, as described in
-
Table 4-6, are implemented.
-
Table 4-6
Function | Bands (XIL_BYTE only)
1 3 4 |
| xil_copy+display | x x x |
| xil_rotate+display | x x x |
| xil_scale+display | x x x |
| xil_set_value+display | x x x |
| xil_translate+display | x x x |
| xil_transpose+display | x x x |
| xil_convolve+xil_convolve | x x x (for separable convolution) |
|
|