Computer system and method for displaying functional information with parallax shift
FIELD OF THE INVENTION 
     This invention generally relates to improvements in design analysis of logic and circuit simulators and more particularly to a technique that employs depth perception to improve multi-dimensional visualization techniques to analyze and display large volumes of data more effectively. 
     DESCRIPTION OF THE INVENTION 
     Most complex scientific problems require the analysis of functions that have many variables that influence the resulting solution to the function. The subject invention facilitates the use of human pattern recognition and depth perception to understand the inter-relationships of the variables and analyze their influence on the function&#39;s behavior. 
     High speed logic and circuit simulators are used throughout the computer industry to aid in the design of complex systems. High performance simulators generate enormous amounts of data making storage of the information impractical. In order to pinpoint problems effectively, the information must be displayed to the designer as it is generated. However, current technology only allows the information to be presented in the form of waveforms, tables or compared to known values to detect problems. 
     In one embodiment of the invention, a database is employed to store the information in an organized fashion. The database is utilized to present information to the visualization program for subsequent transformation and presentation to a user. 
     A prior art technique for analyzing information on a computer channel is disclosed in U.S. Pat. No. 4,773,003. This patent detects a pre-selected signal line event and displays the information on a two-dimensional display for further manual analysis. 
     VLSI designers have difficulty trying to debug designs when a large amount of information is displayed without trend or summary information. For example, it is very difficult for a designer to analyze the effect of power-on reset within all macros. The source of a problem is often very difficult to trace to its cause. A typical network predecessor tree for the problem just described can be very large and quite deep. The tree also grows quickly to obscure the source of the problem further. 
     State of the art waveform displays help the designer in analyzing networks. However, they only focus on one aspect of the problem at a time and have no capability for correlating multiple functions to decipher the common source of the problem. 
     Graphic display programs are offered by many of the Computer Aided Design (CAD) vendors such as the Mathematica program from Wolfram Research. A standard approach plots the information on two-dimensional graph for each function of 1 or 2 dependant variables. The plots are displayed on a graphic device for further manual interrogation. 
     FIGS. 1A-1C show examples of prior art displays. To visualize complex problems that contain many more relationship information globally, a new approach is necessary. 
     Existing display techniques require the operator to mentally cross reference multiple images, analyze the information and draw an inferred conclusion. Additional time is spent processing the information and often errors result from incorrect interpretation of the information. 
     It is extremely difficult to identify errors when a two-dimensional display is used serially to display multiple sets of information a display at a time as illustrated in FIG. 1 at label 100. Two-dimensional perspective drawings cannot convey enough information to solve complex multi-variable problems. Just to represent a function of three variables requires the creation of a perspective drawing in two-dimensions hiding some of the information behind information in the foreground as shown in FIG. 1 at label 101. The three-dimensional perspective drawing also distorts the values of objects by representing distant objects as smaller figures. 
     Waveform programs are sold by many of the Engineering Design Association (EDA) vendors such as the LSIM simulator, ZYCAD, IKOS and Mentor. A standard approach plots the information on two-dimensional waveforms for each net as a function of time. The plots are displayed on a graphics device for further manual interrogation. As many as fifty nets are plotted in the vertical direction while time is plotted from an origin of zero at the extreme left-hand side. 
     SUMMARY OF THE INVENTION 
     The invention consists of a computer and graphic display system for processing large amounts of information and displaying that information graphically. Software is employed to process and display the processed information on a display. The software focuses attention to suspect areas employing depth perception to highlight the influence of a variable and display the nature of some function. Current techniques of coloring and shading techniques are unable to accurately convey the information. 
     The invention displays variables of interest in parallax shifts and displays the resultant function on a stereo image viewing apparatus. The technique is equally applicable to depth perception viewed using polarization, liquid crystal shutter devices or holographic images. The variable of interest can also be enhanced to highlight it in relation to other information displayed to further attenuate its characteristics. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The foregoing and other objects, aspects and advantages of the invention will be better understood from the following detailed description of the preferred embodiment of the invention with reference to the accompanying drawings, in which: 
     FIGS. 1A-1C illustrate prior art examples of a two-dimensional graph; 
     FIG. 2 is a block diagram of the hardware environment in accordance with the invention; 
     FIG. 3 is a flowchart of the logic in accordance with the invention; 
     FIG. 4 is an illustration of a multi-dimensional example in accordance with the invention; 
     FIG. 5 is another multi-dimensional example in accordance with the present invention; 
     FIGS. 6A-6B are an illustration of a graphic display employing depth perception to represent heat generation on a personal computer card in accordance with the present invention; 
     FIGS. 7A-7B are an illustration of a graphic display employing depth perception to represent current utilization, on a personal computer card in accordance with the present invention; 
     FIGS. 8A-8B are an illustration of a graphic display employing depth perception to represent chip wiring overflows, wire lengths and wire weights in accordance with the present invention. 
     FIG. 9 is an illustration of a graphic display employing depth perception to represent a mathematical system in the complex x,y number plane in accordance with the present invention; 
     FIG. 10 is an illustration of a graphic display employing depth perception to represent a mathematical system in the complex x,y number plane in accordance with the present invention: and 
     FIG. 11 is a pseudo-code representation of the invention&#39;s logic in accordance with the invention. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     State of the art displays of mathematical functions are limited to three dimensional spatial representations displayed on a two-dimensional display or a three-dimensional stereo graphic display. Examples of three-dimensional stereo graphic displays on which the present invention can function are any of the three-dimensional systems provide by the StereoGraphics Corporation, or even simple use of the over-under viewers used with any graphics display system that has software support for displaying image windows. 
     Such an over/under viewer is built by Leavision in West Germany. This view can be used to enhance the display generated by the image viewing software example shown in the source listing labeled GL1DISP. 
     FIGS. 2A and 2B show the conventional hardward that was sued to create the 3D images shown in FIGS. 6, 7, 8, 9, 10 and 11. The hardware shown, together with the software, improves the user productivity by using stereo graphics or 3D to encode data instead of using color or shading. 
     Stereo graphics is different than creating a 3D image using perspective and shading. Conventional stereo graphics requires the creation of two perspective views of a subject and the use of hardware to force the left eye to see the left perspective and the right to see the right perspective. Software runs in the Host 370 or any CPU that has a graphic display attachment. The Host 370 has an internal memory connected to the CPU and typically also includes external memory, such as disk or tape drives. The four boxes in FIG. 2A, represent any standard graphics attachment environment, i.e. a Host 370, an IBM Control Interface Model 5088, an IBM Remote Graphics Adapter Model 5085, and an IBM Model 5081 Monitor. The software to support this stereo (3D) application was written for an IBM 370 host computer. 
     If any one of the stereo images, like FIG. 7, is displayed on the graphics screen of the Monitor, there must be some way to restrict what each eye sees. In FIG. 2A the method used requires placing before the user&#39;s eyes a commercially available Over/Under Viewer, such as is available from KMQ Corp. This forces the light from the bottom half of the image to arrive at only one eye (right) and the light from the top half of the image to arrive at the other eye (left). The Over/Under Viewer is a passive device. It is just a simple prism in front of each eye that redirects the light beams. The Over/Under Viewer also blocks all light rays from the part of the image that each eye should not see. The right eye should not see any part of the left image which is at the top of the screen image (see FIG. 7, 701 is top 702 is bottom). The Over/Under Viewer results in the two different images appearing to be overlapped and in 3D. 
     FIG. 2B shows the same Host 370 and graphics attachment, but the Monitor is 120 Hz instead of 60 Hz. The net result is that the &#34;top&#34; and &#34;bottom&#34; part of the image that was described in FIG. 2A are now overlapped by the hardward and the &#34;viewer&#34; hardware is now an active device. The viewer is a commercially available Electronic Shutter/Polarizer controlled by a StereoGraphics Sync Control which receives input from the RGB signal. The Electronic Shutter is controlled electronically and is in sync with the Monitor frame rate. The electronic Shutter blocks the light arriving at each eye to make sure that the right eye only sees the right image and the left eye only sees the left image. Electronic Shutter hardward is built by several companies that will take input from the Monitor input. In the example the hardware built by the Stereo Graphics company takes the RGB signal in. A voltage controlled Electronic Shutter electronically makes each alternating eye unable to see the graphics screen in sync with the Monitor frame rate. The Electronic Shutter results in the two different images appearing to be overlapped and in 3D without distortion. 
     The natural human visual system uses differences in horizontal retinal images to interpret depth. By exploiting this natural way of understanding reality or models of reality, a mathematical system is easier to understand resulting in a productivity improvement. 
     This invention improves efficiency for human thought in both research, development, and manufacturing processes where multi-dimensional functions require monitoring and analysis. By way of example, we can explore the simple model of the mandelbrot closed system of k**2+c in the complex number plane. The discussion commences with an analysis of a mathematical system having varying rates of acceleration to infinity. 
     In a two-dimensional image it is extremely difficult to ascertain critical points where the values are changing (increasing or decreasing), or to determining the rate of change of a variable of interest. Referring to FIG. 9 &amp; 10, a multi-dimensional display of the mandelbrot function in accordance with the invention is provided. 
     To experience the three-dimensional effect, a user could stare at FIGS. 9 and 10 and notice how the image depth changes. Then, view the example with one eye. A variable of interest can be encoded as depth directly or can be modified by a specific mathematical equation that will make the function more apparent in the space of depth. The human retina has a range of parallax values that range from the maximum (to keep eyes from divergence) to the minimum distance that will show any depth. 
     The invention maps the variable of interest into this range of values and then modifies the rate of change of the values based on a particular feature of interest. The technique can be activated by detection of a variable&#39;s rate of change outside of acceptable parameters to highlight the variable and provide more detail to the viewer. 
     FLOWCHART AND CODE EXAMPLE 
     Let&#39;s assume we want to map a simple function value k=f(x,y) as depicted in the flowchart of FIG. 3 and the Pascal language pseudo-code of FIG. 11. The program assumes that the output array is initially set to 0, and the maximum parallax value is preset. The function values for the k entries in the 1000×1000 array are read into the array and mapped to a display screen. 
     Assume for our screen of interest that the maximum parallax shift for the stereo display is 38 pels which is approximately 2 degrees of parallax at a normal viewing distance. A color table is used to map the function onto the display and has already mapped its value into some color table. 
     For example, if the system can display 25 colors one might assign each color to a range of k values. The values of interest are the k values between 1 and 25. 
     Then each k value could have a different color. The color selection is only important in that it can cause some depth sensation. (red closer and blue farther away.) A key assumption is: one needs to create shapes that stand out and are common in the right and left eye image. 
     Shades of gray can substitute for colors, or, alternatively, fill patterns, such as black and white line drawings that outline the areas that have the same value of k can be employed. 
     To explore complex functions of n variables one can also use a system of parallel coordinates. In parallel coordinates one creates n copies of real lines labeled X1, X2, X3 . . . Xn placed equidistant and perpendicular to the normal x axis. (See FIG. 4 and 5) 
     A set of touching line segments connecting the vertical axis represents a &#34;point&#34; in the n-dimensional space. For example the point (A,B,C,D). A is 400 and D is 400. A &#34;line&#34; in n-dimensional space is represented by a set of points on the parallel coordinate display, one for each pair of coordinates. 
     In parallel coordinates, if &#34;lines&#34; intersect in one &#34;point&#34;, all the parallel coordinate segments that represent that &#34;point&#34; overlay on the two-dimensional plot. 
     &#34;Line&#34; one 401 and &#34;line&#34; two 402 do intersect at the &#34;point&#34; (A,B,C,D). The problem occurs when you add more &#34;lines&#34; which may have subset of overlapping parallel coordinate line segments but the &#34;lines&#34; may not intersect. The parallel coordinate points may also lie anywhere in the two dimensional plane making it necessary to label every point to understand which line they correspond to. One solution employs the invention to encode each set of segments with the minimum line separation as depth. Thus, &#34;line&#34; one 401 and &#34;line&#34; two 402 occupy the same depth since they intersect at (A,B,C,D). Finally, line three 403 is at a different depth and would be perceived as distinct from lines one 401 and line two 403. 
     Several variables can be encoded with depth cues at the same time. For example, if the function represented a closed shape you might display the selected point behind the graph if it was outside the shape and in front of the graph if the point is inside the shape and the actual depth from a center point could represent distance from the surface of the function. 
     FIG. 5 illustrates another problem that could be overcome in the display of an n-dimensional function to study the affect of one variable on a plurality of other variables. The parallel coordinate representation could be an envelope making the overall affect indeterminate. However, if each &#34;point&#34; that is a solution to the function is displayed at a depth, (by mapping the variable value x1 into parallax shifts) then the relationships to other variables would be clearly portrayed without having to trace specific solution points. In two-dimensions it is impossible to detect how a variable would react to a positive change in X1 without close examination of the specific values. 
     The invention enables a user to ascertain patterns, such as increases in X1 correlating to corresponding decreases in X8 depth. Take this example and imagine that X1=1 501 is located far away, then the corresponding points in the set of line segments labeled 501 will be at the same depth. Now X1=4 504 is closer to us in depth and finally X1=7 507 appears to be very close. 
     On the X8 axis 510 the encoding of X1 in depth overlayed on the X8 values is possible without moving the X1 axis next to the X8 axis and without having to encode the line segments or &#34;points&#34; in color. 
     FEATURES 
     Some features of the invention and the method of operation are discussed below. 
     1. Encoding a variable of interest with depth queues. 
     a. Getting the function output variable value f; 
     b. Plotting the value f in the left image as a point in two-dimensional space; 
     c. Calculating a parallax value from the depth function required: 
     parallax value=f(dependant variables or output value) 
     So, for example: parallax maximum * (output value/max output value) 
     d. Checking thresholds to determine if maximum values have been exceeded; 
     e. Shifting the two-dimensional horizontal position based on the parallax value; and 
     f. Plotting a value in the right image as a point in two-dimensional space. 
     2. Mapping a variable of interest to range of parallax values: 
     a. Finding the total range of the output variables; 
     b. Inputing a user distance from screen; 
     c. Using a range of allowed parallax values; and 
     d. Calculating a ratio of output change to the parallax value. 
     3. Enhancing variable characteristics with non-linear mapping: 
     a. Encoding variables of interest with depth queues using a non-linear function for parallax value calculation; and 
     b. Setting the output function to a function that increases exponentially. Then, the parallax mapping could take to log parallax value=parallax max * log(output value)/log(max output). 
     This technique eliminates data hiding or distortion and the requirement for hidden line or surface hiding to create depth. Lines drawn that appear farther away do so because of parallax. Color or texture is not required for data value encoding since depth is used instead. Therefore color and texture can be used for other kinds of data grouping. This technique exploits stereo graphic or holographic display techniques and creates a more natural way of viewing depth. 
     APPLICATION 
     These new functions have been useful in implementing VLSI design display programs to understand design problems with placing circuits on a card or chip. An undistorted x,y location plot of the physical card or chip is created and displayed first. Then, the other variables, like power and current flow and direction for the entire x, y space is displayed. The depth is used to highlight the value of the power and/or current to attenuate changes. 
     Thus, the limitation of a physical x,y or x,y,z space is removed and the function of interest can have an unlimited number of variables. 
     The natural human visual system uses differences in horizontal retinal images to interpret depth. Mathematical systems can similarly employ depth perception to enhance user perception of difficult mathematical models. This idea, which is central to the subject invention, provides improved efficiency for human thought and can be used by research, development and manufacturing processes where multi-dimensional functions need to be studied or monitored. 
     By way of example, we can explore the simple model of the mandelbrot closed system of k**2+c in the complex number plane. The discussion commences with an analysis of a mathematical system having varying rates of acceleration to infinity. A two-dimensional image makes detection of critical points extremely difficult. Referring to FIG. 9 and 10, a multi-dimensional display of the mandelbrot function in accordance with the invention is provided. 
     To experience a two-dimensional effect, stare at the drawing and notice how the depth of the image changes. Then, view the example with a single eye open. A variable of interest can be encoded as depth directly or can be modified by a specific mathematical equation that makes the function more apparent in the space of depth. The human retina has a range of parallax values that range from the maximum (to keep eyes from divergence) to the minimum distance that will show any depth. 
     The invention maps the variable of interest into this range of values and then modifies the rate of change of the values based on a particular feature. This technique can be activated by detection of a variable&#39;s rate of change outside of acceptable parameters to highlight the variable and provide more detail to the viewer. 
     Several variables can also be encoded with depth cues at the same time. For example, if the function represented a closed shape you might display the selected point behind the graph if it was outside the shape and display the selected point in front of the graph if the point is inside the shape. Further, the depth from a center point could represent the distance from the surface of the function. 
     FIG. 5 illustrates another problem that could be helped is the display of a n-dimensional function where on is interested in the affect of one variable on the others. The parallel coordinate representation might just be an envelope and one could not see the overall affect. If each point that is a solution to the function is displayed at a depth (map the variable value x1 500 into parallax shifts) then the relationships to other variables instantly appear without having to trace out specific solution points. 
     In two-dimensions you cannot tell how X8 510 will react to a positive change in X1 500 without careful examination of the specific values. Using the invention, a pattern can be ascertained, like as X1 500 increases in depth X8 510 decreases then increases. 
     USE OF THE INVENTION 
     The invention can be used with any graphics application that has multi-dimensional characteristics. IBM currently uses the invention as part of a general graphics shape browser on a System/370 with an attached 5080 graphics display system. The source code listing of the IBM graphics program employing the inventive techniques is provided below in the Appendix. 
     The techniques are used to analyze heat generation on a simulated printed circuit (PC) card as shown in FIGS. 6A-6B. FIG. 6A shows the left image and FIG. 6B shows the right image. The left image is on the top half of the page. In each image, hundreds of rectangles each represent a circuit module on the card. The heat generated by each module is encoded in depth while the color encodes the circuit types. For example the modules 601 are the control PLA modules and the large square modules 600 in the lower right are floating point chips. 
     A user can verify depth is encoded by using a three-dimensional viewer. Alternatively, without a viewer, a user can focus on a specific rectangle in the left image and comparing it with a specific pair of lines in the right image one can see X shifts which are the parallax values used to encode the depth. In FIG. 6 compare the left and right image, and notice the larger two squares in the lower right of each image and compare with the position of the rectangles that are within the squares 602. 
     The inventive techniques are used to analyze current flow on a simulated PC card as shown in FIGS. 7A-7B. FIG. 7A shows the left 701 and FIG. 7B the right images 702. The left image is on the top half of the page. Each image has eight focal points 700 that represent where the external power attaches to the card. The current flows from a connector point in the shape of a cone. 
     Each line is drawn from a module to a power connection and the size of the current is encoded in depth. The line depth is a function of module current flow and ranges from low power modules to high power modules. 
     FIGS. 8A-8B are an illustration of a graphic display employing depth perception to represent chip wiring overflows, wire lengths and wire weights in accordance with the present invention. FIG. 8A shows the left image and FIG. 8B shows the right image. The lines at the bottom have a depth that is at one end of the parallax range 802 and the group of red lines at the top 803 are at the opposite end of the parallax range. One can verify this by comparing the horizontal position of like points in each image with the vertical axis lines 801. 
     FIGS. 9 and 10 illustrate a graphic display employing depth perception to represent a mathematical system in the complex x,y number plane in accordance with the present invention. FIG. 9 is the left image and FIG. 10 is the right image. Again one can view these Figures with an over/under view or a side by side stereo viewer. 
     Each x,y point represents a point in the complex number plane. The value of the system at each point is encoded in depth. The white area labeled 900 in the center is the farthest point away while the shapes at the border are closer to the viewer. 
     While the invention has been described in terms of a preferred embodiment in a specific system environment, those skilled in the art recognize that the invention can be practiced, with modification, in other and different systems within the spirit and scope of the appended claims. ##SPC1##