MAN U a L MEMO: Pixar User's Manual TO: Pixar Customers FROM: Pixar Documentation Group DATE: December 2, 1986
Total Page:16
File Type:pdf, Size:1020Kb
USE R ' 5 MAN U A L MEMO: Pixar User's Manual TO: Pixar Customers FROM: Pixar Documentation Group DATE: December 2, 1986 Welcome to the Pixar User's Manual. This book contains haroware"andsoftware overviews, programming tutorials, reference documents, arid additional material from the Pixar Tech Memo files. We hope you will find 'this material helpful. Also note that the Pixar Software Release 1.2 contains, plentyofsoutce, code which will be very helpful in writing your own software for thePixar Image Computer. Please contact us if you have any questions regarding'the material· in this manual. TABS: You will find two kinds of tabs to help divide the traditional UN1'X sec,tions into subsections. The major tabs have the familiar meaning, "wliiie 'the:' minor tabs correspond to subsecnons (e.g., specific tutorials). BUGS: Mail in the pink comment forms, or use electronic mail to submitori·4i:ne com· ments and suggestions (e.g., mail pixar!bugs). NOTE: Copyright 1986 by Pixar. This document is protected by 'Federal Copyright:-Law, witJ:1 all rights reserved. N~ part?f this publication may bereproduced~ stored'irt1a retneval system, or transnutted, m any form or by any means, electronlc,mechan ical, photocopying, recording, or otherwise, without prior writtenperrirission from Pixar. The information in this manual is for informational purposes only' arid: is subject to change without notice. Use, duplication or disclosure by :the Government is subject to restrictions as set forth in subdivision (b) (3) (ii) of tbeRigbts in;rreohn ical Data and Computer Software clause at 252.227-7013. Pixar Software Overview November 3, 1986 The Pixar Image Computer™ provides an innovative and powerful architecture for performing image-computing operations. The software for the Pixar Image Computer provides a collection of tools that utilize the full capabilities of the hardware to perform a wide range of standard image-computing operations quickly and efficiently, and powerful development tools that allow additional software to be easily developed for the system. The Pixar Image Computer is closely coupled to a host computer that provides those facilities and functions that do not directly relate to image-computing. The host computer provides net work access, a program development environment, and general resources required by application programs (e.g., operating system, file system, mass storage, etc.). The Pixar Image Computer can be interfaced to a variety of host computers, including Sun, Symbolics, Digital Equipment Corporation, and Silicon Graphics computer systems. Pixar offers a Pixar Development System™ that includes a Sun-3™ computer, bitmapped workstation, 380 MByte disk, with the Sun UNIXTM operating system and Pixar Software configured for use by software developers and research laboratories. Other configurations and specialized application programs may be purchased from Pixar OEMs and V ARs who offer the Pixar Image Computer in conjunction with their products. A development environment that includes Pixar Image Computers is shown below. ETHERNETI'M I ~ ~ TO OTHER r NETWORKED E:::I color " r color " c:::I COMPUTERS monitor PIXAR monitor PIXAA MAGE "- .., IMAGE -- COMPUTERl" COMPUTEIP c:::::a r bit-map ""'" r bit-map """ y 0 display o dISPla :[ host host rrm "keyboard \ mouse rrm disk aJ / ~Ybda);\[ disk CD drive drive 1 All image-computing operations are performed using software and resources of both the host computer and the Pixar Image Computer. The design of the closely coupled interrace between the two machines allows application programs to be implemented on the host computer with concurrent image processing perrormed by the Pixar Image Computer. The host computer pro gram provides the data for, and controls the overall operation of, the Pixar Image Computer. Table 1 lists the actions of the· host computer and the corresponding actions of the Pixar Image Computer for a typical application program: Table 1. Application Program Actions Step Host Computer P~rlmageCompu~r 1. Pixar Device Open Initialization 2. Load Pixar Software none 3. Transfer Data To Pixar Accept Data From Host 4. Invoke Image Computing Operation Perform Image Computations 5. Interact with User Display Image on Video Monitor 6. Retrieve Data From Pixar Transfer Data To Host 7. Pixar Device Close none The host computerlPixar Image Computer interface simplifies the development of complex image-computing applications. The host computer interrace provides for high bandwidth data transfer between the host and Pixar Image Computer, under polled and interrupt control. The Pixai:' software provides facilities to allocate and deallocate Pixar resources, load Pixar software, transfer data to and from the Pixar, as well as view images from any portion of the Pixar Image Memory using the video output capabilities of the Pixar Image Computer. In addition, many of the most commonly needed image-computing operations have also been provided as utility pro grams, available for immediate use without any programming required. The software provided with the Pixar Image Computer may be divided into five classes: • Utility Programs • Development Libraries • Development Tools for Pixar Programming • System Software • Contributed Software 2 Utility Programs Utility programs are provided for the most common image operations performed using the Pixar Image Computer. These utilities are provided with a wide range of options available, allowing general user access to many advanced capabilities of the Pixar Image Computer before any application-specific software is written. Included are: • Display Utilities: cbars generates standard color bars in an image memory window. c1r clears an image memory window to specified value(s). gamma sets gamma-corrected colormap. guide displays a field-guide alignment pattern in an image memory window. loop sequences preloaded animation frames. ramp displays a ramped pattern horizontally or vertically in an image memory window. tool allows the image memory contents to be examined interactively. video modifies the configuration of the video controller. • Image Input/Output Utilities: gt gets (loads) an image into the image memory from a picture file on mass storage. gtinfo displays information describing a picture file. sv saves all or part of the Image Memory to a picture file on mass storage. • Image Processing Utilities: blur applies a box filter to an image memory window. clamp clamps the contents of an image memory window to [0,1]. cony convolves an image memory window with arbitrary 3x3 filter. copy copies an image memory window to another window. bg generates a histogram of the pixels in an image memory window. merge merges two image memory windows using compositing operators. perm permutes image memory rows/columns, allowing clamping, inversion, etc. resize resizes an image memory window onto a destination window. rotate rotates and scales an image memory window onto a second window. scale scales the RGBA intensities of a image memory window. • Miscellaneous Utilities: pixinit initializes the Pixar hardware and the software configuration tables. The utility programs allow a large number of arguments to be specified, and allow functions to be performed over selected portions of the Image Memory. Both the utility programs and the Pixar development libraries use logical frame buffers and pixel windows to partition the image memory. 3 Development Libraries Development libraries are provided for both the host computer and the Channel Processor(s) (ChapTM) of the Pixar Image Computer. These development libraries provide high-level and low-level library functions for diverse uses that include the allocation and management of Pixar resources (Chaps, Chap program memory, image memory, scatchpad memory), data transfer operations, pixel operations, image processing functions, etc. The large variety of library func tions available enables many applications to be written without the need to program the Pixar Image Computer directly. The libraries provided are: • Host Libraries: libchad a library of functions that manage the allocation and deallocation of Pixar resources. Also included are procedures to initiate execution of Chap procedures and to synchronize host/Chap program execution. libpicio a library of functions for encoding, decoding, loading, and unloading image "picturett files. Image ttpictures" are areas of Image Memory that are stored in digital form on the file system of the host computer. Most image "pictures" are encoded using published run-length encoding tech niques to facilitate the interchange of data among Pixar Image Computers and other image gathering/processing equipment. libpirl a library of functions for manipulating rectangular pixel windows of the Pixar image memory. The libpirl functions provide a powerful set of building blocks that perform many of the most commonly required image processing functions. Included are library functions to perform arith metic operations, boolean algebra, linear algebra, filtering, clamping, convolution, merging, and copy operations on Image Memory pixel windows. Iibpixar a library of functions for accessing the Pixar Image Computer at a low level. Library functions are provided that allow direct access to all memories, registers, and buses that can be accessed by the host computer . • Chap Libraries: Iibchad a library of Chap functions that service the requests made by the host libchad functions. libpicio a library of Chap functions that service the requests made by the host libpicio functions.