| |
Preface | xiii |
1. Overview | 1 |
| ...Introduction to the XIL Imaging Library | 1 |
| ...Solaris Graphics Architecture | 1 |
| ...Division of Function in the XIL Library | 2 |
| ...XIL API Layer | 3 |
| ......XIL Base Classes | 5 |
| ..........The XilDebugObject Class | 5 |
| ..........The XilGlobalState Class | 5 |
| ..........The XilSystemState Class | 6 |
| ..........The XilObject Class | 9 |
| ..........The XilDeviceType Class | 10 |
| ..........The XilDevice Class | 11 |
| ......XIL API Level Classes | 12 |
| ..........The XilImageType Class | 13 |
| |
| ..........The XilImage Class | 14 |
| ..........The XilKernel Class | 22 |
| ..........The XilRoi Class | 22 |
| ..........The XilLookup Class | 28 |
| ..........The XilCis Class | 31 |
| ..........The XilError Class | 34 |
| ..........The XilHistogram Class | 37 |
| ..........The XilColorspace Class | 37 |
| ..........The XilSel Class | 39 |
| ..........The XilDitherMask Class | 40 |
| ..........The XilAttribute Class | 41 |
| ..........The XilInterpolationTable Class | 42 |
| ...XIL Core Layer | 43 |
| ......Deferred Execution | 43 |
| ..........The XIL Library Method | 44 |
| ..........Graph Evaluation and Molecules | 45 |
| ..........Some Considerations | 45 |
| ..........Unusual Effects of Deferred Execution | 48 |
| ......Core Layer Classes | 49 |
| ..........The XilOp Class | 49 |
| ..........The XilOpTreeNode Class | 53 |
| ...XIL GPI Layer | 54 |
| ......I/O Devices | 55 |
| ......Compute Devices | 55 |
| |
| ......Storage Devices | 56 |
| ......Compression Devices | 56 |
2. More on Writing Device Handlers | 57 |
| ...How XIL Device Handlers Work | 57 |
| ...The Development Environment | 60 |
| ...Installing XIL Device Handlers | 62 |
| ...Error Reporting for XIL Device Handlers | 62 |
| ...What Kinds of Ports Are Possible in the XIL Library? | 63 |
| ...What Kinds of Ports Are Not Possible in the XIL Library? | 64 |
| ...Version Control for XIL Handlers | 65 |
3. I/O Devices | 67 |
| ...About I/O Devices | 67 |
| ......XilDeviceInputOutputType Class | 68 |
| ......Handling Multiple Devices in an I/O Handler | 69 |
| ......XilDeviceInputOutput Class | 70 |
| ..........Device Attribute Functions | 72 |
| ..........Parent Function | 73 |
| ..........Image Type Functions | 73 |
| ..........Read- and Write-Only Functions | 74 |
| ..........Op Number Functions | 74 |
| ...Adding an I/O Device | 75 |
| ...Sample I/O Handler | 75 |
| ......XilDeviceInputOutputTypeCG6.h | 77 |
| ......XilDeviceInputOutputTypeCG6.cc | 79 |
| |
| ......XilDeviceInputOutputCG6.h | 85 |
| ......XilDeviceInputOutputCG6.cc | 88 |
| ...Sample I/O Device Handler | 106 |
4. Compute Devices | 121 |
| ...About Compute Devices | 121 |
| ...Implementing an XIL Function | 122 |
| ...Adding a Compute Device | 124 |
| ...Loading Compute Handlers | 129 |
| ...Adding a New Molecule | 130 |
| ...Manipulating Molecules | 132 |
| ...Molecules and I/O Devices | 133 |
| ...Sample Compute Device Handler | 134 |
| ......XilDeviceComputeTypeBandMemory.h | 135 |
| ......XilDeviceComputeTypeBandMemory.cc | 136 |
| ......Add8BandMemory.cc | 137 |
| ......band_memory_utils.cc | 143 |
5. Storage Devices | 147 |
| ...About Storage Devices | 147 |
| ...XilDeviceStorageType Class | 148 |
| ...XilDeviceStorage Class | 150 |
| ...Adding a Storage Device | 153 |
| ...Sample Storage Device Handler | 154 |
| ......XilBandMemoryDefines.h | 155 |
| ......XilDeviceStorageTypeBandMemory.cc | 156 |
| |
6. Compression/Decompression | 173 |
| ...Implementation of Compression | 173 |
| ......XilDeviceCompressionType Class | 175 |
| ......XilDeviceCompression Class | 177 |
| ..........Base Class Implementations | 180 |
| ..........Sufficient Default Implementation | 181 |
| .......... No Action for the Default Implementation | 182 |
| ..........Determine the CIS Read Position | 183 |
| ..........Adjust the Start of a CIS | 184 |
| ..........Compression Types with Ordinal Numbering | 184 |
| ..........Error Reporting | 185 |
| ..........Error Recovery | 185 |
| ..........Functions That Must Be Implemented | 186 |
| ...The CIS Buffer Manager | 189 |
| ......XilCisBuffer Class | 189 |
| ......XilCisBufferManager Class | 192 |
| ..........Attributes of a Frame | 194 |
| ..........The Constructor and Associated Functions | 195 |
| ..........Reset the Codec | 196 |
| ..........Set/Get Maximum Frame Size and Number of Frames per |
| ..........Buffer | 196 |
| ..........Method One of Adding Data to a CIS Bitstream | 196 |
| ..........Method Two of Adding Data to a CIS Bitstream | 197 |
| ..........Guarantee a Complete Frame for the Codec to |
| ..........Decompress | 198 |
| |
| ..........After a Frame is Decompressed | 198 |
| ..........An Alternative to Compressing into a CIS | 199 |
| ..........Return a Pointer to Data | 200 |
| ..........Return Data and Frame Information about the CIS | 200 |
| ..........Determine if a Complete Frame Exists | 201 |
| ..........Over-read Bytes | 203 |
| ..........Seek a Specific Frame within the CIS | 203 |
| ..........Adjust Start Frame within Buffer Lists | 206 |
| ..........Device Compression with Out-of-Order Frames | 206 |
| ..........Error Handling and Recovery | 208 |
| ...Adding a New Compression Method | 209 |
| ...Adding Compression Hardware | 211 |
| ...Sample Compressor | 214 |
| ......XilDeviceCompressionTypeIdentity.h | 215 |
| ......XilDeviceCompressionTypeIdentity.cc | 217 |
| ......XilDeviceCompressionIdentity.h | 220 |
| ......XilDeviceCompressionIdentity.cc | 223 |
| ......XilDeviceComputeTypeIdentityMemory.h | 232 |
| ......XilDeviceComputeTypeIdentityMemory.cc | 233 |
| ......compress_Identity.cc | 235 |
| ......decompress_Identity.cc | 239 |
A. Sample Molecule | 243 |
B. XIL Atomic Functions | 249 |
C. XilOp Object | 261 |