[Future Technology Research Index]
[SGI Tech/Advice Index]
[Nintendo64 Tech Info Index]
[WhatsNew]
[P.I.]
[Indigo]
[Indy]
[O2]
[Indigo2]
[Crimson]
[Challenge]
[Onyx]
[Octane]
[Origin]
[Onyx2]
(check my current auctions!)
Indy Technical Report
Section 6 Indy Video
-
Indy Video is a video option card for the Indy desktop workstations. It provides cost-effective, high-quality video input and output in both 525/60 and 625/50 video timings. Indy Video also provides onboard realtime keying and special effects mixing as well as realtime scan conversion of graphics output to video.
Note: Silicon Graphics also offers Cosmo Compress, an option card providing compression and decompression of incorning and outgoing video to the CCITT/ISO JPEG standard. For information on Cosmo Compress, see the Silicon Studio Technical Report.
6.1 Product Features
Cosmo Compress has these features:
Compression and decompression in ratios from 5:1 to 100:1, depending on the source material (the minimum compression ratio to sustain a real-time video frame rate compression will be higher)
Frame and field compression/decompression modes: up to 30 frames/second or 60 fields/second
NTSC and PAL square-pixel formats and CCIR 601 525/625 formats (with 601 video option)
Data transfers
- Single-frame transfers to and from workstation host memory in 8-bit per component 4:2:2 YUV, 24-bit RGB
- Transfers of NTSC- or PAL-sized images, to and from video option card and peripherals via digital video port
Arbitrary scaling for decompressing video to host memory for playback using the Philips SAA7186 Digital Video Sealer
Fixed scaling
- Incoming images from the SGI Digital Video port can be scaled by 2 or 4 before compressing (using decimation)
- Outgoing images sent to the SGI Digital Video port can be zoomed by 2 or 4 using pixel/line replication
Output synchronization to external source via digital video port
6.2 Indy Video Features
Indy Video offers these features:
Analog input in composite or S-VHS
Analog output in composite or S-VHS
Analog output genlocks to video input or to external black burst (house reference) Full-size video windows in 525 (640 x 486) and 625 (768 x 576) formats Alpha blending (keying and mixing) of video and graphics in real time Video-to-screen conversion with anti-aliasing: Integer zoomed and decimated sizes (1/7 to 1:1 to 7:1) Pan (on pixel boundaries) Selectable de-interlace filtering
Computer-generated graphics filtered to 525/60 and 625/50 video: Anti-aliasing Selectable flicker reduction
Output may be video-sized (1:1) or nearly full-screen scan converted to video size Keys generated from chroma/luma of the video signal or from pixels in graphics window X-Y pixel-wipes and fades
Two 24-bit non-overlapping video windows, or one 24-bit and two 12-bit non-overlapping video windows on screen simultaneously
Frame buffer for synchronizing video signals, storage of video frames, or transfer of still images to the workstation
Crosspoint switch selects input for major board components
Video is routed internally to the video option card in YUV 4:2:2 color space (converting to RGB color space is unnecessary)
6.3 Physical Characteristics
Indy Video is a video expansion card. It occupies the space allotted to one GIO slot in the Indy chassis. The board uses Philips television components and two custom SGI gate-arrays.
6.4 How to Use Indy Video
With the video expansion card, the Indy workstation provides basic video input/output and graphics overlays at a low cost. An application can input analog video, convert any graphic image to video, create video keys and special effects within the application, and output the results as analog video.
6.4.1 Analog Video
Input
The Indy Video expansion card supports composite and Y/C analog input. The video is converted to 24-bit RGB for display on the workstation monitor. The video may be displayed in full size video windows or scaled down; it may be zoomed and panned, as well. The input may also be used for video timing within the Indy Video system. With both Indy Graphics and XZ Graphics, a video input can be used to frame lock the graphics subsystem.
Video display does not affect workstation performance, since the Indy Video card performs all input, scaling and switching between graphics pixels and video pixels in real time.
Output Indy Video can output composite and Y/C (S-VHS) with sync in 525/60 and 625/50 timings.
Almost all of the full graphics screen (1280x960) or an NTSC- or PAL-sized portion of it may be output in real time. The output is taken from the graphics subsystem frame buffer and scan converted with flicker reduction and filtering. The outputting and scan converting are performed by the video board, so they place no additional demands on the workstation CPU or graphics subsystem. This filtered scaling is set in the hardware to 2:1 for NTSC output and 5:3 for PAL output.
All output signals are low-pass-filtered and sin x/x-corrected. The board has a notch filter that an application may select as needed. It reduces the cross-chroma artifacts created when dithered graphics images are encoded to composite video.
Applications may use the board as a frame buffer to record single frames to a frame-accurate VTR.
6.4.2 Video Overlay and Blending
Video and graphics may be combined in simple mixes, such as fades, wipes and keys. An application can generate a chroma or luma key from either the video input or the input from the graphics subsystem and overlay the key over the other signal. Graphics and video can be set to any level of opacity and blended (or mixed) with the other signal.
The standard video inputs can he used as the source of the graphics subsystem input to the keyer/mixer circuitry on the Indy Video option card. Using the standard video input from the Indy Video option card allows keying and mixing of two composite or Y/C video channels.
6.5 Hardware Features
6.5.1 System Architecture Figure 16 is a block diagram of Indy Video.
Analog Video Ouputs
Composite orY
SGI Digital Video I/O
RGB to Graphics Monitor
#1 Input Only
#2 lnput/ Output
FIGURE 16 Indy Video block diagram.
6.5.2 Analog Input
Indy Video has one analog input channel which is decoded by a Philips 7191 decoder. The video is decoded into YUV components at the sampling rates shown in Table 2 below.
YUV Component
525/60 Square Pixel
625/50 Square Pixel
Y
12.2727 MHz
14.75 MHz
U (B-Y)
6.13635 MHz
7.375 MHz
V (R-Y)
6.13635 MHz
7.375 MHz
TABLE 2 Indy Video analog sampling rates.
6.5.3 Analog Output
Indy Video has one analog output channel in addition to the SGI digital output which supports the Cosmo Compress option.
Composite and S-VHS analog output is converted from 4:2:2 YUV by a Philips 7199 encoder and reconstructed with a 5-MHz low-pass filter and sin x/x correction.
6.5.4 SGI Digital Video Expansion Port
The digital expansion port supports two channels of real time, SGI digital video data. One 60-pin connector supports both channels. One channel is for input only; the other channel is programmable for input or output.
Data in the port is sampled as square-pixel 4:2:2 YUV with 8-bits per channel:
Square-pixel video adheres to the CCIR 601 and CCIR 656 standards with three exceptions: the number of clocks during blanking is nonstandard, the active pixel area is modified to accommodate the square-pixel sampling formats, and the voltage level of the signal is TTL rather than ECL. For true CCIR 601 video I/O, the Indy Video 601 option is required.
For square-pixel sampling of the video, the clock is twice the pixel rate: 24.54545 MHz for NTSC and 29.5 MHz for PAL. For CCIR 601 sampling, there is a slight (-10%) scaling of the image in the horizontal dimension only when viewed on the graphics monitor. Throughput to the video outputs is not affected. The scaling is proportional to the ratio of the square-pixel clock rate and 13.5 MHz. Applications can use Graphics Library routines to correct for the scaling.
6.5.5 Scan Conversion
Indy Video maintains all video as 4:2:2 YUV. The only time this YUV data is converted to RGB is for display on the graphics screen or for the analog RGB output. All graphics data brought from the screen into Indy is directly converted from RGB to 4:2:2 YUV. See Section 6.5.8 Color Space Conversion.
Digitized Video to Graphics
After the analog video input has been digitized and/or processed, it may be converted to RGB and displayed on a workstation monitor.
Digitized video is converted to RGB in a dedicated frame buffer. Note this frame buffer is not shown on the block diagram. It resides in the scan converter block and is not shown because it is not accessible by applications or end users. The buffer may be displayed at full 24-bit resolution (8 bits per component) or split into two half-resolution, 12-bit planes (4 bits per component). All three windows (one 24-bit and two 12-bit) may be displayed at the same time, or two 24-bit window's may be displayed.
Although the video may be displayed on the workstation monitor at 12-bit resolution all 24 bits of data are available to Indy Video and the system. Note the following restrictions apply to all video windows:
Video windows cannot overlap and a 24-bit window cannot share the same horizontal scan line on the graphics screen as another 12-bit window or 24-bit window.
The graphics screen is 1280x1024 pixels, so only one full size PAL window can fit on the graphics screen at a time. Windows can be reduced in size to fit on the screen.
Video in graphics windows may be reduced, zoomed and panned:
Each window may be reduced by six integer factors, from 1/2 to 1/7. To minimize aliasing, the data is filtered with a box filter before it is decimated. Note both 12-bit resolution windows must be decimated by the same factor.
Each window may be zoomed by any integer factor from 2 to 7. Indy Video creates the zooms by building a square array of replica pixels around each pixel in the source video.
Each window may be panned to any location in the source image.
For de-interlacing, Indy Video uses a selectable de-interlacing filter that uses the average value of the two immediately-adjacent lines. Another option for custom applications is to use the filter to generate black lines for the missing field at every 60th (or 50th) of a second. Inserting black lines reduces the intensity of the image by one-half.
Graphics to Digitized Video
The graphics subsystem output may be converted to video in lx or full screen modes:
In lx mode, a video resolution window is converted to video (640x486 or 768x576).
In full screen mode, an image twice the resolution of an NTSC image, or 5/3 the resolution of a PAL image is converted to video.
Everything that appears on the graphics screen is converted, including cursors, pop-up menus, dialog boxes, and so on, but a graphics application can turn off these events as needed.
An application may convert the graphics pixel-by-pixel or line-by-line:
Pixel-by-pixel conversion, in which each graphics pixel is converted to a video pixel, should be used for images up to the size of the video format. The data passes through a flicker-reduction filter during the conversion. Indy Video stores the filtered data in the scan converter's dedicated frame buffer, from which the data may be read at a rate determined by the video timing.
Line-by-line conversion should be used for images that are larger than the video format. Indy Video reduces aliasing by filtering each line of the graphics data horizontally, first, then vertically. The filtering also minimizes artifacts produced during decimation.
Flicker reduction, which is selectable, is performed during the vertical filtering.
Two separate areas of the graphics screen may be converted to video simultaneously if they do not share horizontal lines.
Indy Video uses four field buffers for scan rate conversion of two channels of video. The phase relationship between graphics and video vertical intervals is monitored to determine when fields should be skipped or replaced. A digital phase detector determines when graphics frames must be dropped. Indy Video passes status information about the dropped frames to the workstation CPU, allowing applications to render motion in the video image more smoothly.
Framelocking the graphics frame rates to input can be performed which allows for smooth graphics output to video without repeat or skip frames.
6.5.6 Frame Synchronization
Indy Video uses a dedicated buffer for frame synchronization; the buffer may also be used for storing still images. The buffers store video fields in the internal 4:2:2 YUV format, 8 bits per component. They can input and output synchronized video to and from the functional units and to the workstation CPU.
6.5.7 Access to the CPU
4:2:2 YUV data must be used for reads and writes between the Indy Video frame buffer and the CPU. The video from the frame buffer may be full resolution frames or decimated by factors of 2 and 4. Vertical blanking information may be obtained without disturbing the active video. When writing data from the CPU to the Indy Video frame buffer, data may be full resolution frames or l/ 2 or 1/4 size (previously decimated) frames which can be zoomed to full resolution on Indy.
6.5.8 Color Space Conversion
Data is color space-converted during graphics-to-video and video-to-graphics conversions, but not during video input and output or reads and writes to the field buffers. Because of the 4:2:2 format of the video, the U and V components are sub-sampled during interpolation and decimation (every other pixel is converted, instead of every pixel). The sub-sampling causes aliasing artifacts which Indy Video removes with anti-aliasing filtering.
6.5.9 Video Crosspoint
The crosspoint/.switch matrix allows the following sources to connect to any of the following destinations:
Source
Analog video in Digital video in I Digital video in 2
Host memory (frame buffer output) Alpha blonder pixels Alpha blonder alpha Graphics A (24-bit resolution) Graphics B (24-bit resolution)
Destination Analog Video out Digital Video out
Host memory (frame buffer input) Alpha hiender foreground Alpha blendor background Graphics I (24-bit resolution) Graphics 2 (12-bit or 24-bit resolution) Graphics 3 (12-bit resolution)
6.6 Keys
Indy Video generates linear, 8-bit keys and passes the 8-bit values to the alpha blender for mixing (see Section 6.7). Changes and updates to the keys are double-buffered during vertical blanking.
Keys are created on a pixel-by-pixel basis. Indy Video applies mathematical formulas to the Y and U-V values of each pixel in a selected portion of an image, producing an alpha value for that portion. It blends this value with the corresponding alpha of the remainder of the image:
Pixels may be chosen in three ways:
Whole image
X-Y location in the image
Random (pixels chosen by a random numbers generator)
Note: For more information please refer to the Video Library' Programmer's Guide.
6.7 Alpha Blending
In a mix, the foreground and background each have an alpha value. The most common sources of the values are the key generator and the graphics display bus. The alpha blender uses the two values to composite the mix; it can generate the composite in 16 ways.
Dedicated registers containing the YUV values of a flat field background may he used for fades to and from any color.
Note: For more information please refer to the Video Library Programmer's Guide.
6.8 Software Features
Software for Indy Video follows Silicon Graphics successful strategy of providing common functionalities in a library of device-dependent and device-independent routines addressed through an API. This software is included in the Digital Media Development Kit.
Libraries insure that upgrades are compatible with current releases, that applications developed for one product can be ported easily to other products, and that functions provided by one library interface reliably and consistently with the functions of other libraries.
The software consists of the following:
Video Library
Video tools
Video daemon
Kernel (device driver)
X window system server
6.8.1 Video Library
The library provides an API that is common to all Silicon Graphics video products. Through the API, video applications developed for one Silicon Graphics product can be designed to run on all other Silicon Graphics products. Applications designed for a simpler product can be made to run on more complex products with little or no modifications; applications designed for more complex products can return error codes when they run on simpler products and calls are made to an unavailable parameter.
The basic model for the library is the video stream. Library routines manage the video stream by defining a source device, a destination device and the path between the two. Parameters called controls modify the path; all devices should recognize a subset of common controls.
Applications written to the square-pixel Video Library API will be able to access the other Silicon Graphics libraries, such as Compression Library and Graphics Library.
6.8.2 Video Tools
The tools, built from calls to Video Library, provide a range of basic functionalities, such as displaying video in a window, capturing video frames and outputting video. GUI control panels and a command-line interface set the device parameters.
To illustrate how to use the library, the source code for each tool and control panel is also provided.
The basic tools are outlined as follows:
vlinfo Use the video info tool to display information about video devices available through the VL, such as the name of the server, number of devices on the server, and the types and ID numbers of nodes, sources, and drains on each device.
videoout Use the video output tool to output video from a video-sized window or a nearly
full-screen area of the graphics screen.
videoin Use the video input window^ tool to view video-in-a-window.
vidtomem Use this tool to capture a single frame (the current video input) or a specified number of frames, depending on the hardware limits for burst capture, and write the data to disk on hardware that supports the video-to-memory path. Capture size can also be specified. The data can be color space converted or left as raw data, which can be used by the memtovid tool.
memtovid Use this tool to output single frames (images) to video out on hardware that supports the memory-to-video path.
videopanel (vcp)
Use this graphical user interface to set controls, such as hue or contrast, on devices. The panel resizes itself dynamically to reflect available video devices.
vintovout Use this tool to send video input to video output. There are four optional parameters:
-n devicenum The number of the video device to use.
-v inputmodenum The number of the video input mode to use.
-o outputnodenum The number of the video output node to use.
-/ Print the node and path numbers for use with the command line interface.
The tools vlinfo, vidtomem, and memtovid are command line tools. In addition to their man pages, these tools are explained in the IRIS Utilities Guide.
6.8.3 Video Daemon
All data passes through the video daemon except the digitized video. The daemon handles both device-dependent and device-independent tasks, such as multiple device management, client access to other devices, event dispatch, and system configuration and device state information.
6.8.4 Kernel
The daemon communicates with the Indy Video board through a device driver located in the IRIX kernel. The device driver is responsible for translating requests from the daemon into requests that can be understood by the hardware.
6.8.5 X Window System Server
The window system server is responsible for window positioning, loading color map tables and clipping the graphics screen around the video.
6.9 Specifications Table 3 lists Incly Video specifications.
Board Function
Specification
Value
Compatibility
Television standard
NTSC
PAL
Sampling
Square-pixel NTSC
12.27 MHz, 640 pixels/line
Square-pixel PAL
14.75 MHz, 768 pixels/line
4:2:2 YUV
8-bits/component, U and V sub-sampled by 2
Input connectors
Composite
2RCA
Y/C (S-VHS)
1 S-VHS (4-pin DIN)
Output connectors
Composite
1 RCA
Y/C (S-VHS)
1 S-VHS
Composite Input
Color separation
Chrominance trap only
Aperture filters
Selectable
Coring
Selectable up to ±3 LSB
Hue control
±180°
Chroma gain
Automatic
Luminance gain
Automatic
Differential phase
4°
Chrominance-luminance gain
±4%
Composite output
Operating modes
Genlocked or stand-alone
Horizontal phase
3 psec advance to 1 psec delay
Horizontal blanking
Fixed at the following rates:
11.4 psec NTSC square pixel
11.9 psec PAL square pixel
Vertical blanking
Adjustable through all vertical interval lines
SC-H phase
±180°
Differential phase
1°
Differential gain
1%
Chrominance-luminance gain
±2%
Chrominance-luminance delay
± 20 nsec
Frequency response
4.2 MHz - 2 dB
Blanking level output voltage
±0.25 V
S/N ratio
48 dB
Board Function
Specification
Value
Y/C (S-VHS) input
Aperture filters
Selectable
Coring
Selectable up to ±3 LSB
Hue control
±180°
Chroma gain
Automatic
Luminance gain
Automatic
Differential phase
4°
Differential gain
4%
Chrominance-luminance gain
±4%
Chrominance-luminance delay
± 40 nsec
Frequency response
4.2 MHz -3 dB (Y only)
Frame buffers
Number
4
Bandwidth to CPU
1.5 Mpixels/sec maximum
Readback to CPU decimation
2x or 4x, with or without anti-alias filtering
Data format
4:2:2 YUV, 8 bits/component
Graphics-to-video conversion
Reduction ratios, with anti-alias filtering Flicker reduction Color space conversion accuracy
2:1 NTSC square-pixel; 5:3 PAL square-pixel Selectable ±1 LSB
TABLE 3 Indy Video specifications.
Section 7 Software Environment
Indy offers exciting software solutions to complement the powerful Indy hardware and enhance the working and development environment.
The full hardware power of Indy is made available through bundled end-user tools such as Indigo Magic and IRIS Showcase3.0. Several products for the developer are also available, including CASEVision tools, programming and media libraries.
The extensive set of software available with Indy allows both developers and end-users to add interactive 3D, high-resolution images, audio, and video to applications and presentations.
Industry standards are utilized throughout Indy software. From Unix to X11 to standard image and audio file formats, Indy provides a standards based environment that allows for easier integration into a heterogenous work environment as well as easier development and maintenance of applications.
Indy is binary-compatible with other IRIS 4D workstations; applications written for existing IRIS workstations run with little or no modification on Indy, and applications written on Indy also run on other IRIS 4D systems. Because Indy supports most of the advanced graphics features found on IRIS Advanced Graphics systems, you can use the less expensive Indy to run advanced graphics applications or to develop applications for more expensive IRIS 4D systems.
Indy comes with a rich set of system and application software installed on disk. They present end-users with an intuitive and visually pleasing graphical interface to the operating system, which makes desktop file operations and system configuration fast and simple. The development option offers programmers an extensive set of both industry-standard and proprietary libraries as well as development tools to quickly construct applications of any size and complexity.
7.1 Indigo Magic User Environment
The Indigo Magic User Environment is a revolutionary new Media User Interface that utilizes the full screen as a background desktop. The icons provide a visual interface to file system navigation, mounting of remote devices, searching for resources on the network-every aspect of interacting with UNIX. Icons are used to represent files, applications, people, machines, devices, etc., and they change in appearance to indicate a state of activity. A printer icon, for example, changes its appearance to indicate when the printer software is processing a document or when the printer is idle.
The Indigo Magic User Environment lets you create multiple desktops containing all the applications, files, and tools you need to work on specific projects, or organize your desktops by functions; for example, creating one desktop for software development and another for computer aided design. It also includes an extensive collection of media tools including Media Mail (you can send electronic mail with video and audio) and IRIS Showcase 3.0 which provides all the features you need to create interactive multi-media presentations.
Indigo Magic provides supports for developer integration into the Media User Interface with support for standard Motif and a common set of resources such as file browsers, movie players, etc. The Indigo Magic Developers kit also offers cut and paste extensions to support all first-class SGI data types.
7.1.1 Online Documentation Viewer
Now you can access Silicon Graphics end user manuals, customer support, and product information directly on your Indy using the on-line documentation viewer built into Indigo Magic. You can choose to access your online manuals from your system disk, a server, or directly from CD-ROM.
7.1.2 Media Tools
Indigo Magic includes a set of powerful easy-to-use tools providing basic production capabilities for a range of media. There are tools to capture, create, and manipulate standard-format images, with support for image scan, blur, rotate, scale, stretch, sharpen, and more. The video tools provide plug and play capability with NTSC or PAL video input and output. Users can grab video frames, create and edit movies, and create audio annotation. A Video Control Panel, Video Pro Panel, Movie Maker, Movie player, Audio Control Panel, SoundEditor and SoundFiler, CD Manager and DAT Manager are included with the Indigo Magic media tools. In addition, Indigo Magic Movie Tools support creation and playback of QuickTime movies as well as a Silicon Graphics movie format.
7.1.3 Digital Media Clip Library
With over 20 MByte of ready-to-use images, sounds, movies and 3D objects, the Digital Media Clip Library takes you several steps closer to compelling interactive presentations.
7.1.4 Media Mail
Indigo Magic includes a Media Mail application with which users can distribute multimedia files over a network. It provides a graphical user interface to the standard UNIX mail systems and lets you attach a file or other type of media.
7.1.5 Interactive Presentation
IRIS Showcase 3.0 allows you to create interactive documents that incorporate text, raster images, digital audio, live video graphics, and 3D objects. A Showcase document can be viewed as an interactive presentation or an onscreen slide show, captured on video tape for a video presentation, printed as a paper document or overhead, or encoded as ASCII and sent as a message using the Indigo Magic Media Mail.
Showcase 3.0 allows you to create, import, and edit Inventor-based 3D models. You can use your primary application to develop model data and then import the data into Showcase to take advantage of Showcase's editing and interactive presentation features. Showcase 3.0 3D editing capabilities include: a material editor, a material palette, a texture editor, and palette, an extrusion profile editor, and a light and shadow editor. Translators to the Inventor file format for DXF, IGES, and several applications are available.
Showcase Hyperscripts allow you to create interactive documents that include scripted actions linked to objects on a page. Hyperscript actions include page turns, launching other applications, playing video, playing audio, and many others.
Showcase also supports a wide selection of font families and point sizes. Fonts can be rotated, scaled interactively, and converted to 2D graphics.
7.1.6 Inperson
Inperson is an affordably priced desktop conferencing software package that turns your workstation into a powerful communications center. It allows you to call other properly equipped workstations and interact with live video and audio while you work together-in real time-on a selected file, a captured image, or a text document.
7.2 IRIS Explorer
IRIS Explorer"" is a modular application builder that enables end users and developers to rapidly prototype applications and reconfigure their software environment. IRIS Explorer greatly simplifies using Silicon Graphics systems to create new applications, visualize changing data sets, integrate foreign data types, and much more. Users can:
build applications from a series of reconfigurable modules
visualize data sets in new and unique ways
publish modules for use by others
obtain tangible results in minutes-without programming
work in a distributed execution environment
use existing code as a basis for new modules
The IRIS Explorer environment is a new paradigm for using computers. Modules supporting Computational Fluid Dynamics, Molecular Modeling, EOS-DIS Earth Sciences, Medical Imaging, and more can be combined with user-created modules to build applications and to explore science in ways that change as fast as the users' needs.
7.3 Developer Tools
Indy offers a productive software environment for many kinds of software development. For UNIX programming, it provides IRIX 5.2, Silicon Graphics' version of SVR4 UNIX with 4.3 BSD extensions, and other extensions that include TCP/IP network protocols and Network File System (NFS). For window management, it provides a full implementation of the X11/R6 Window System, Display PostScript, and 4Dwm, a Motifs-based window manager. To resolve any potential color conflicts between X11 and 3D graphics applications, Indy keeps completely separate color maps for both X11 and IRIS Graphics Library applications.
For graphics programming, Indy offers a software-based implementation of the IRIS Graphics Library API. It offers support for input devices such as the mouse, keyboard, trackball, and digitizing tablet. It also provides calls for object modeling in 3D space for spatial transformations (providing perspective and viewpoint control, etc.), for lighting, rendering polygonal and spline surfaces, smooth animation, and many other graphics tasks. It provides the full set of IRIS Advanced Graphics features (with the exception of stencil-plane and alpha source-blending functions), which include fogging and multiple arbitrary clipping planes. In addition, with IRIX 5.2, IRIS GL graphics can be displayed within subwindows of X applications, allowing IRIS GL
programmers to take advantage of Motif and other Xll-based user interface toolkits, and X programmers to make use of high-performance graphics.
For image processing on an Indy, the SGI ImageVision Library offers an object-oriented extensible toolkit for creating, processing, and displaying images. Its core set of over 70 routines provides general-purpose image operators which are easily augmented using abstract data types (objects) and access functions (methods). It also provides a general interface for image-processing applications, support for SGI, TIFF, and FIT formats, an optimal memory model for handling large images, and an architecture that supports general image types.
7.3.1 CASEVision
Silicon Graphics' expertise in visual processing technology provides an advanced, interactive, visual development environment with CASEVision. CASEVision brings the advantages of visualization to software developers by providing the ability to see processes and data structures.
Premiere third-party CASE products supplement Silicon Graphics' solutions. The ToolTalk integration mechanism allows both Silicon Graphics' and third-party solutions to be tightly integrated so users can concentrate on the job at hand instead of managing the boundaries between the individual tools. The CASEVision environment is optional and composed of the following major components:
CASEVision/Workshop is an Interactive programming environment that consists of a Static Analyzer, a visual Debugger, a Performance Analyzer and a Build Analyzer.
CASEVision/ClearCase is an advanced Configuration Management, Version Control and Build Management system designed to support large-scale development.
CASEVision/Tracker is a flexible event tracking system that is tightly integrated with other CASEVision solutions.
7.3.2 Compilers and Standard Development Tools
Silicon Graphics supplies a variety of compilers to best suit your programming needs. ANSI standard C and Fortran compilers are available, as well as compilers for C++, Ada, and Pascal.
IRIX 5.2 includes a set of profiling tools that can identify CPU-intensive code fragments to help focus optimization efforts. Prof and pixie provide detailed analyses of application performance. Grosview gives a view of system loading; users can see what percentages of the available CPU, I/O, and other resources are being used at any given time.
IRIX 5.2 also includes general and specialized debuggers. Dbx, a standard UNIX source-level debugger is included. In addition, IRIX 5.2 comes with gidebug, specifically designed for debugging graphics applications created using the IRIS Graphics Library API. It includes a viewer which graphically displays the state of the IRIS GL as the application is running, and a controller, which lets you interactively set break points and change the level of debugging output.
7.3.3 Iris Graphics Library
The IMS Graphics Library (IRIS GL) is a set of over 300 function calls available in C, C++, Fortran??, Ada, and Pascal versions. IRIS GL simplifies the development of highly interactive real-time graphics applications. It supports input devices such as the mouse and keyboard, digitizing tablets, dial and button boxes, and the spaceball. When used in conjunction with a toolkit like
IRIX/Motif, IRIS GL lets developers create highly responsive graphics applications with industry-standard user interfaces.
IRIS GL programmers define object, world, and viewing coordinate systems, and apply orthographic or perspective projections to map them to any viewport on the screen. Objects can be translated, rotated, and scaled in real time, without flicker, by taking advantage of high-speed IRIS GL 3D rendering capabilities and double buffering. IRIS GL includes powerful primitives that allow programmers to create points, lines, arcs, circles, polygons, parametric curves, rational bicubic patches, and Gouraud shaded, Z-buffered solids. Complex objects can be quickly built by combining these primitives.
Advanced Graphics Features
Indy supports most IRIS GL functions, including IRIS Advanced Graphics functions found on high-end IRIS workstations. All Indy configurations support the following Advanced Graphics features:
lighting models
texture-mapping
accumulation buffer
alpha blending
fogging
arbitrary clipping planes
antialiased lines
depth cueing
subpixel positioning
Indy also support these Advanced Graphics features:
stenciling
source alpha blending
antialiased points
pixel read, write, and copy
Network Transparency
In IRIX 5.2, the IRIS GL API is network-transparent; any IRIS GL program may be run remotely from another IRIS 4D workstation sharing the same network as the host workstation. Users can set the DISPLAY variable in their environment to the name of the workstation to which they want to send IRIS GL (and X11) applications to be imaged (IRIS GL works remotely only on other IRIS
workstations running IRIX 5.2).
7.3.4 Open GL
Open GL is an application programming interface (API) providing 2D and 3D graphics functions to software programmers. Functions include modeling, transformations, color, shading, lighting, texture mapping, and sophisticated framebuffer operations such as alpha blending and motion blur. All functionality is supported across the IRIS workstation family, as well as all other Open GL implementations on other workstations and personal computers.
7.3.5 IRIS Inventor
IRIS Inventor is an object-oriented software library that drastically simplifies graphics programming. It is the catalyst for writing highly interactive, creative graphics applications. This programming environment provides a rich set of pre-programmed building blocks, and defines a full featured, extensible framework through which entire applications can be developed.
7.3.6 Image Processing Library
The ImageVision Library object-oriented extensible toolkit is for creating, processing, and displaying images on all IRIS 4D workstations. The toolkit provides a framework for managing and manipulating images to aid image processing applications developers. Some of the features it provides are:
A common functional interface for image processing applications across the IRIS 4D product line.
A core set of general purpose image operators and an easy way to add new operators. The first release contains a core set of about 70 routines. A set of abstract data types (objects) and access functions (methods) are provided to allow a developer to design and augment the set of image operators.
Support for three standard image formats: SGI, TIFF, and a tiled format based on TIFF called FIT. New file formats can be seamlessly integrated into the library as needed.
An optimal memory model for handling large images. ImageVision Library provides a memory model for efficient manipulation of general image data types, sizes, and resolutions. It includes a configurable cache to allow access to and processing of very large images.
An architecture that supports general image types. ImageVision Library provides an interface for manipulating image attributes and image data requiring little or no knowledge of the internal structure and format of the image.
7.3.7 Digital Media Libraries
Several libraries are available for Indy to assist programmers in developing multimedia applications incorporating 2D and 3D graphics and audio, as w^ell as support for video I/O devices. Key among these are the Audio Library, the IndigoVideo Library, the MIDI Library and Compression Library, and the Image Processing Library.
The Digital Media Development Option offers a comprehensive and intelligent environment for digital media application development on Indy. Six library modules callable from C and C++ enable the rapid development of audio, video and MIDI applications that need to use unique hardware features found on Indy. DMDEV gives you the power to access the world of digital media.
The Audio Library and Audio File Library access the basic capabilities: reading and writing samples from the hardware and reading and writing disk files in AIFF and AIFF-C formats. The CD-ROM Audio Library and DAT Audio Library provide transport control and access the audio capabilities of the optional CD-ROM and DAT drives. The MIDI Library supports reading and writing of time-stamped MIDI messages through Indy serial ports using a Macintosh serial port to MIDI converter, it also assists with the parsing of incoming MIDI messages.
7.4 Operating System
7.4.1 IRIX5.2
IRIX is Silicon Graphics' implementation of the UNIX operating system, first developed by AT&T Bell Laboratories. IRIX 5.2 is based on AT&T UNIX System V.4, but also includes numerous 4.3 BSD extensions, such as TCP/IP network protocols and Network File System (NFS), which provide transparent access to files across a heterogeneous network. Adherence to these industry standards lets users easily integrate an Indy into existing computing environments.
In addition to the BSD extensions, IRIX includes several enhancements to support the real-time requirements of 3D graphics and audio:
non-degrading priorities and high-resolution timers
kernel primitives and libraries that support multi-process applications and high-performance concurrent programming
memory-mapped files that allow a process to access a file as part of its address space
a tight coupling between the operating system and IRIS Graphics Library kernel routines to produce high graphics throughput
IRIX applications are binary compatible across the entire IRIS 4D product line, making it trivial to move existing applications to an Indy and to port applications developed on an Indy to more expensive machines.
The Indy operating system, IRIX 5.2, is a standards-rich user and programming environment, compliant with the following window system and operating system standards:
X11/R6
IRIX/Motif, based on OSF/Motif Release 1.2.2
Display PostScript
AT&T UNIX System V.4, with 4.3 BSD enhancements
POSIX 1003.1
X/OPEN XPG3, Vol. 1,2,3
7.4.2 The X Window System
With the release of IRIX 5.2, the X Window System runs native on all IRIS workstations. Indy was designed to run X11/R6 quickly and efficiently. X11 support on an Indy and the rest of the IRIS family includes Display PostScript, the OSF/Motif user interface toolkit, and special extensions for supporting 3D graphics subwindows within X applications. Other extensions to X11 include arbitrary shaped window's, and input mechanisms for IRIS input devices such as tablets, dial-and-button boxes, and the spaceball.
4Dwm is an OSF/Motif-compliant window manager similar to the widely-used mwm, but offering enhanced usability and functionality for the end-user. 4Dwm, like most X-based window managers, is customizable to suit the individual user's taste.
IRIX/Motif
The IRIX/Motif toolkit offers an industry-standard API for constructing graphical interfaces. The Motif library is included as part of the Graphics Development Option for Indy and other IRIS 4D workstations. Interactive user-interface builders are also available as an option.
Display PostScript
The Display PostScript (DPS) server from Adobe is shipped as part of the IRIX 5.2 window system. Silicon Graphics is the first company to offer full 24-bit color support in Display PostScript under X. The DPS library is included as part of the Graphics Development Option for Indy, and can be used in conjunction with X and Motif to create complete 2D applications.
X11 and the IRIS GL
IRIX 5.2 supports IRIS GL imaging and X-based graphics in separate subwindows of the same parent X window. To make this possible, Silicon Graphics provides an IRIS GL widget and several function calls for easy integration into X applications. This allows applications to use IRIX/Motif for a common, portable, and interoperable user interface and IRIS Graphics Library for high-performance 3D rendering.
X11 and the Open GL
The Silicon Graphics implementation of X11/R6 fully supports GLX, the Open GL extension to the X Window System.
7.5 Networking
IRIX 5.2 provides TCP/IP and a complete suite of Internet and BSD network application programs. For administering medium to large networks, Silicon Graphics' offers NetVisualyzef", which allows the user to interactively locate and correct network bottlenecks and breakdowns, and to analyze network usage via graphical displays of the entire network.
Indy connects out of the box to Ethernet and ISDN networks. In addition, several optional networking products are currently available:
NFS"" with the Network Information System (NIS) allows file sharing, directory services, and data format interpretation
TCP 3270 software allows Indy to connect to an IBM mainframe via Ethernet
SNA 3270, 3770, and LU6.2 software allows Indy to connect to an IBM mainframe through an SNA gateway
4DDN software allows Indy to connect to a DEC system using DECnet protocols
FDDI
ATM
Token Ring
Macintosh connectivity (third party solution)
SNMP agent
Distributed IRIS GL
NetVisualyzer (visual traffic monitor)
The networking capabilities of Indy can also be expanded with the addition of an optional FDDI port or an additional Ethernet port.
(check my current auctions!)
[WhatsNew]
[P.I.]
[Indigo]
[Indy]
[O2]
[Indigo2]
[Crimson]
[Challenge]
[Onyx]
[Octane]
[Origin]
[Onyx2]
[Future Technology Research Index]
[SGI Tech/Advice Index]
[Nintendo64 Tech Info Index]