Pseudo-Color Processing of Electronic Photographs

Gazley, C Jnr, Rieber, J E, Stratton, R H

April 1967

Rand Corp RM-5297-PR

CONTENTS

PREFACE

RAND's recent concern with the enhancement of visual discrimination and the contact of staff members with advanced researchers in medicine combined to germinate the work reported here. The goal set was to improve and extend the medical pseudo-color technique used to study the distribution of radioactivity in a gland for the enhancement of visual discrimination in a black-and-white photograph. In the study reported here, one successful innovation was the use of the S-C 4020 computer-driven plotting system. Also the increase to 64 color gradations (instead of the earlier ten) was successful in substantially increasing the information visually available in a black-and-white photograph.

ABSTRACT

The ability to use black-and-white photographic information is limited by the observer's ability to distinguish shades of gray. This Memorandum describes a pseudo-color process which enhances visual discrimination by keying measured light intensity in a photograph to color. Test data obtained from the camera system of the Mariner IV have been processed as an example, and the resulting pseudo-color photograph is shown.

ACKNOWLEDGMENT

The authors wish to thank Barry W Boehm of The RAND Corporation for much help and timely encouragement.

This work was supported by the United States Air Force under Project RAND.

Original test data for the pseudo-color processing of the Mariner-Mars 1964 camera photographs were provided through the courtesy of the Jet Propulsion Laboratory, California Institute of Technology.

PSEUDO-COLOR PROCESSING OF ELECTRONIC PHOTOGRAPHS

The photograph (Figure 1) is actually a pseudocolor presentation of test data from the camera system of the Mariner IV. The original test photograph (black and white) was a Mariner's eye view of a relief map of a Southern California area. The reproduction is an offprint from the April cover of Astronautics and Aeronautics, a publication of the American Institute of Aeronautics and Astronautics.

Figure 1

A high-quality black-and-white photograph customarily records the graded intensities of light in a scene by means of a series of shades of gray ranging from near black to near white. In viewing such a record, the observer's ability to use the recorded gradations, i.e., to detect patterns, recognize objects, and discriminate between objects having different intensities, is limited by his ability to detect differences among various shades of gray.

Modern photographic techniques, whether chemical or electronic, can separate and record many more tonal values than can the eye. The Mariner's camera system can discriminate among 64 intensity levels, [1] but the human visual system can discriminate only about 15 shades of gray between black and white).[2]

Hence, for man to take advantage of the superior discrimination of a camera system, the information should be so presented that the observer can distinguish any recorded level of intensity from any other.

Accordingly we decided to make use of man's excellent color-discriminat.[3] The human eye can distinguish many thousands of colors, the exact number depending on the level of illumination. Thus by keying measured intensity level to color, pseudo-color can give an observer much more information than can a gray-scale. A recent example of the use of color coding to increase contrast is the work of Adams and Jaffe [4] who coded various levels of radioactive intensity to various colors for medical presentations. About ten colors are used in their process, and there are about as many colors in this pseudo-color transformation as there are discriminable shades of gray. The primary advantage thus gained is simply an enhanced effective contrast and an improved apparent resolution.

As a test of our pseudo-color presentation scheme, we used the data obtained from photographs of a relief map, made as a test of the Mariner's camera system. The digital output from the camera system consists of 200 lines of 200 elements each. Each picture element is coded with two octal digits representing an intensity level from O to 63, the 0 representing the lightest shade and the 63 the darkest. The information is coded line by line on magnetic tape, packed six elements to a standard 36-bit word.

By use of an IBM 7044 computer and a Stromberg-Carlson S-C 4020 peripheral plotting system) the information on the tape was converted into 64 successive black-and-white frames of 35-mm film. Each frame was used to mask out all the elements except those corresponding to a single intensity level. The processing consisted of three steps:

  1. the photo information on magnetic tape was unpacked and was used to write 40,000 intermediate records, each containing a line number, an element number, and the corresponding intensity level;
  2. the intermediate records were sorted by intensity level; and
  3. the sorted records were processed to produce a control tape for the S-C 4020, which produced the 64 frames (the black-and-white frames accompanying this text are printed from the negative produced by the S-C 4020).

    The 64 black-and-white frames were then copied successively onto a single frame (64 exposures) of 35-mm Kodachrome II daylight film. A different filter was used over the light source (electronic flash) for each exposure. Starting with shade number 0, the hue of the filter was red. Successive combinations of subtractive-wedge filters gradually shifted through orange, yellow, green, and cyan, and terminated with blue for shade 63. No nonspectral hues (magentas) were used. Thus, light areas in the original appear red, medium areas green, and dark areas blue, The accompanying color photograph is the result of this work. The two main problems in this transformation were (1) the frame-to-frame registration, both in the S-C 4020 camera system and in making the composite on color film, and (2) a magenta wash on the Kodachrome, which was caused by unwanted light passing through the dense areas of the black-and-white film.

    A method is now being developed by which the 64 shades of gray may be re-formatted and masking areas added to make only four exposures necessary. These would be made through a minimum number of filters with obvious advantages for registration and fogging.

    We hope soon to be able to apply the pseudo-color process to the Mariner's actual photographs of the Martian surface. We feel that the pseudo-color technique shows great promise in the presentation of television data from space-exploration vehicles and weather satellites, and in the presentation of electronic medical data.

    Figure 2a: This is part of the series of black-and-white masks made on the S-C 4020. A multiple exposure shot through each of these masks, using different colors, was used to make the color photograph.
    Figure 2b
    Figure 2c

    APPENDIX: COMPUTER PROGRAMS AND CONTROL CARDS USED TO PROCESS THE TEST TAPE FROM THE MARINER IV CAMERA SYSTEM

    
    $JCB           5754,MARINR,R3500,15,250,I30,P PAL 25 USES SC-4020 SIMULATOR
    $CLOSE         S.SU00,REWIND
    $CLOSE         S.SU08,REWIND
    $CLOSE         S.SU09,REWIND
    $IPJOB PRSORT  MAP
    $FILE  PRSORT  'INTERM',U00,*,TYPE1,REEL,
    $ETC   PRSORT  BLOCK=1950,LRL=3,RCT=65C,
    $ETC   PRSORT  ERR=RERRX.,EOF=RE0FX.,EOH=RECRX,
    $FILE  PRSORT  'INPUT',U09,*,TYPE1,REEL,
    $ETC   PRSORT  BLOCK=36,LRL=36,RCT=1,
    $ETC   PRSORT  ERR=RERRX.,EOF=RE0FX.,BOR=RECRX.
    
    $IBFTC PRSORT  
    C
    C
    C UNPACK THE PHOTO INFORMATION FROM THE JPL TAPE AND PREPARE AN 
    C INPUT TAPE FOR SCRT. 
    C 
          COMMON /PCOP/ INFC(36), OUTREC(210)
          DIMENSION TITLE(4)
          INTEGER OUTREC 
          INTEGER CELLNO 
    C 
    C     CLOSE INPUT FILE AND OPEN WITH A REWIND. 
    C 
                      CALL CLSEIN
                      CALL OPENIN
    C 
    C CLOSE INTERMEDIATE FILE AND OPEN MITH A REWIND, 
    C 
                      CALL CLSINT 
                      CALL OPNINT 
    C 
    C READ IN A BCD ARRAY TO BE USED TO IDENTIFY EACH SLIDE. 
    C 
                      READ 4000, TITLE 
                      PRINT 2001, TITLE 
    C 
    C READ IN THE FILE NUMBER (FRAME NUMBER) TO BE PROCESSED, 
    C 
                      READ 3000, NFILE 
                      PRINT 3000, NFILE 
    C
    C NO. OF RECORDS ON FILE 'NFILE'. 
    C 
                      READ 3000, N 
                      PRINT 3000, N 
    C SKIP TO THE FILE TO BE PROCESSED {'C' IS A DUMMY ARGUMENT), 
    C 
                      CALL SKIPF(0, NFILE-1) 
    C 
    C W060 'SKIPF·) CLOSES THE FILE WHEN SKIPPING. IT MUST BE 
    C RE-OPENED WITHOUT RRWINDING. 
    C 
                      CALL OPENNR 
    C 
    C THE FIRST THREE RECORDS CONTAIN TITLE AN FILE NO. INFORMATION, 
    C WRITTEN IN A FORM THAT WILL SURVIVE SORTING. 
    C 
                      CALL PUTREC(-3, TITLE(1), TITLE(2))
                      CALL PUTREC(-2, TITLE(3), TITLE(4)) 
                      CALL PUTREC(-1, NFILE, ZERO) 
    C 
          DO 100 LINENO = 1, N
    C 
    C READ IN A 36-WORD RECORD AND UNPACK IT TC +MAKE A 200-WORD RECORD. 
    C ARRAY 'OUTREC' HAS 10 EXTRA WORDS TO ALLOW FOR SPILLOVER IN 
    C SURROUTINE 'UNPACK'. 
                      CALL SETREC
                      CALL UNPACK
    C 
    C NOW WRITE THE COLOR, LINE NUMBER, AND CELL NUMBER (CULUMN) FOR 
    C EACH CELL OF THE CURRENT LINE 
    C 
                  DO 10 CELLNO = 1, 200 
                      CALL PUTREC(OUTREC(CELLNO),LINENO,CELLNO)
      10          CONTINUE 
    C 
      100         CONTINUE 
    C 
    C      CLOSE AND REWIND THE INPUT AND INTERMEDIATE FILES. 
    C      THE INTERMEDIATE FILE HILL NOH BE PROCESSED BY SORT. 
    
    C 
                  CALL CLSEIN 
                  CALL CLSINT  
    C
           STOP 
    C 
     2001 FORMAT(1X, 4A6)
     3000 FORMAT(I4) 
     4000 FORMAT(4A6) 
          END 
    
    
    $IPMAP UNPACK 
    *      UNPACK THE 36 WORD MARINER RECORD INTG A 200 WORD RECORD. 
    *
           PMC 
           CONTRL  POOP
           USE     POOP
    INREC  BSS     36 
    *      SINCE 6*34 = 204, 'OUTREC' NEEDS 204 WORDS. THE EXTRA SIX WORDS 
    *      ARE JUST FOR SAFETY. 
    *
    OUTREC BSS     210 
           USE 
    *
           ENTRY   UNPACK 
    UNPACK SAVE    1,2,4
    *
           AXT     210,4
           AXT     34,1
    *
    LOOP1  CAL     INREC+35,1 
           LOQ     INREC+36,1 
           LGR     11 
           AXT     6,2 
    *     
    LOOP2  LGL     6
           SAC     OUTREC+210,4,5
           TXI     *+1,4
           TIX     LOOP2,2,1
    *
           TIX     LOOP1,1,1
    *
           RETURN  UNPACK
           END
    
    $IPMAP INPRIN 
    *      NECESSARY ROUTINES FOR FILE 'INPUT'
    *
           CONTRL  POOP
           USE     POOP
    INREC  BSS     36
    OUTREC BSS     210
           USE
    *
           EXTERN  INPUT
    *
    *      GET A 36-WORD RECORD AND PLACE IT IN 'INREC'
    *
           ENTRY   GETREC
    GETREC SAVE
           TSX     S.GETL,4
           PZE     INPUT,,INREC
           RETURN  GETREC
    *
    *      OPEN THE INPUT FILE WITH A REWIND.
    *
           ENTRY OPENIN
    OPENIN SAVE
           TSX     S.OPEN,4
           PTW     INPUT              REWIND BINARY.INPUT
           RETURN  OPENIN
    *
    *      CLOSE THE INPUT FILE WITH A REWIND.
    *
           ENTRY   CLSEIN
    CLSEIN SAVE
           TSX     S.CLSE,4
           PZE     INPUT              REWIND,NOUNLOAD,END-OF-DATA
           RETURN  CLSEIN
    *
    *      OPEN THE INPUT FILE WITHOUT A REWIND.
    *
           ENTRY   OPENNR
    OPENNR SAVE
           TSX     S.OPEN,4
           MTW     INPUT              NOREWIND,BINARY.INPUT
           RETURN  OPENNR
           END
    
    $IPMAP INPUTV 
    *      SPECIAT *UTVAR.* DECK TO BE USED WITH W060 ('SKIPF').
    *      THE ADDRESS OF FILE 'INPUT', REGARDLESS OF THE ARGUMENT SUPPLIED.
    *
    *
           EXTERN  INPUT
    *
           ENTRY   UTVAR.
    UTVAR. NULL
           CLA     POINTR
           STO     2,4
           TRA     1,4
    *
    POINTR PZE     FILINP
    FILINP PZE     INPUT
           END
    
    $IPMAP OUTINT
    *      OUTPUT ROUTINES FOR FILE 'INTERM' - INTERMEDIATE FILE WHICH WILL
    *      BE PROCESSED BY SORT.
    *
           EXTERN  INTERM
    *
    *      PLACE A THREE WORD RECORD ON FILE 'INTERM;.
    *
           ENTRY   PUTREC
           PMC
    PUTREC SAVE
    *
    *      'SAVE'  MACRO SETS XR4 TO COMPLEMENT OF CALLING ADDRESS.
    *
           CLA*    3,4                  FIRST ARGUMENT
           STO     BUFFR
           CLA*    4,4                  SECOND ARGUMENT
           STO     BUFFR+1
           CLA*    5,4                  THIRD ARGUMENT
           STO     BUFFR+2
           TSX     S.PLTL,4
           PZE     INTFRM.,BUFFR
           RETURN  PUTREC
           PMC
    *
    *      CLOSE INTERMEDIATE FILE WITH AN EBD-OF-FILE MARK AND REWIND.
    *
           ENTRY   CLSINT
    CLSINT SAVE
           TSX     S.CLOSE,4
           PZE     INTFRM               REWIND,NOUNLOAD.END-OF-DATA.
           RETURN  CLSINT
    *
    *      OPEN INTERMEDIATE FILE WITH A REWIND
    *
           ENTRY   OPNINT
    OPNINT SAVE
           TSX     S.OPEN,4
           PTH     INTERM               REWIND,BINARY,OUTPUT
           RETURN  OPNINT
    *
    BUFFR  BSS     3
           END
    
    $ENTRY         PRSORT
    SOUTHERN CALIFORNIA
       1
     200
    $IBSYS
    
    $CLOSE         S.SUC0,REWIND
    $CLOSE         S.SUC9,REMOVE
    $IBSRT
          FILE, INP/1, MOD/B, BLC/1950, REW
          FILE, OUT, MOD/B, BLC/1950, REW
          REC, LEN/(3), FIELD/(36BS, 72BS)
          SORT, FIL/1, SEQ/S,ORC/2, FIELD/(IA)
          SYS, INP/S.SU00, MER/(0, 81, OUT/S.SC08,DISK/145
          OPT, NOCK
          END
    $IBSYS
    $CLOSE         S.SOK1,REWIND
    $CLOSE         S.SU08,REWIND
    
    $IBJCB MARINR  MAP
    $FILE  MARINR  'INTERM',U08.*.TYPF1,REEL,
    $ETC   MARINR  BLOCK=1950,LRL=3,RCT=650,
    $ETC   MARINR  ERR=RERRX.,EOF=RECX.,BCR=RECPX.
    $IBFTC MARINR
    C     JOB NO. 5754 - MARINER IV COLOR PHOTOS
    C
    C     READ THE SORTED PHOTO TAPE AND WRITE AN SC-4020 TAPE.
    C
          INTEGER EOFRET, SHADE, OLDSHD, CELLNC, FRAMNC
          INTEGER BLSHDS(64, 2)
          DIMENSION TITLE(4)
          EXTERNAL TABLIV
    C
    C     CLOSE, REWIND AND OPEN THE INTERMEDIARE FILE (OUTPUT FROM SORT).
    C
                      CALL CLSINT
                      CALL OPNINT
    C     NECESSARY INITIALIZATION FOR THE SC-4020
    C
                      CALL CAMRAV(935)
                      CALL CHSIZV(8, 8)
                      CALL RITSTV(48, 66, TABLIV)
                      CALL BRITEV
    C
    C     WRITE A 20-FRAME LEADER.
    C
                DO 4 I = 1, 20
                      CALL FRAMEV
       4        CONTINUE
    C
    C     SET UP END-OF-FILE CONTROL TO TRANSFER TO STATEMENT 9000 WHEN
    C     END-OF-FILE IS REACHED ON FILE 'INTERM'.  ('0' IS A DUMMY
    C     ARGUMENT.)
                     ASSIGN 9000 TO EOFRET
                     CALL EOFCTL(0,EOFRET)
    C
    C     RETRIEVE TITLE AND FRAME NUMBER INFORMATION FROM THE INTERMEDIATE
    C     FILE AND PRINT IT AS A CHECK.
    C
                     CALL GETREC(JUNK, TITLE(1), TITLE(2))
                     CALL GETREC(JUNK, TITLE(3), TITLE(4))
                     CALL GETREC(JUNK, FRAMNO, JUNK)
    C
                     PRINT 1000, TITLE, FRAMNO
    C
    C     GET FIRST RECORD FROM INTERMEDIATE FILE.
    C
                     CALL GETREC(SHADE, LINFNO, CELLNO)      
                     NREC = 1
    C
                     NBLANK = 0
    C
    C     TEST TO SEE IF FIRST SHADE IS 0. IF NOT, MAKE APPROPRIATE
    C     ENTRIES IN ARRAY 'BLSHDS'.
    C
                    IF(SHADE .EQ. 0)GO TO 5
                    NBLANK = NBLANK + 1
                    BLSHDS(NBLANK,1) = 0
                    BLSHDS(NBLANK,2) = SHADE - 1
    C
        5    CONTINUE
    C
    C     ADVANCE THE FILM AND PRINT A TITLE, FRAME NUMBER, SHADE NUMBER,
    C     AND BORDER.
    C
                    CALL FRAME(TITLE, FRAMNO, SHADE)
    C
       10    CONTINUE
    C
    C     PRINT THE CELL JUST READ ON THE SC-4020 FRAME, THEN READ IN A NEW
    C     RECORD.  CONTINUE IN THIS FASHION UNTIL A NEW SHADE  IS ENCOUNTERED
    C
                    CALL PRCELL(LINENO, CELLNO)
    C
                    OLDSHD = SHADE
                    CALL GETREC(SHADE, LINENO, CELLNO)
                    NREC = NREC + 1
    C
                    IF(SHADE .EQ. OLDSHD) GO TO 10
    C
    C     TEST FOR A GAP IN THE SHADES USED. IF THERE IS A GAP, MAKE AN
    C     APPRPRIATE ENTRY IN 'BLSHDS'.
    C
                    IF(SHADE .EQ. OLDSHD+1) GO TO 5
                         NBLANK = NBLANK + 1
                         BLSHDS(NBLANK, 1) = OLDSHD + 1
                         BLSHDS(NBLANK, 2) = SHADE - 1
    C
                    GO TO 5
    C
    C
    C     RETURN HERE WHEN END-OF-FILE IS ENCOUNTERED BY  'GETFFPC'.
    C
     9000          CONTINUE
    C
    C     PRINT THE TOTAL NUMBER OF RECORDS READ.
    C     NREC SHOULD TOTAL 40,000.
    C
                    PRINT 4000, NREC
    C
    C     TEST TO SEE IS LAST POSSIBLE SHADE WAS USED. IF NOT, MAKE AN
    C     ENTRY IN 'BLSHDS'.
    C
                    IF(OLDSHD .EQ. 63) GO TO 9010
    C
                         NBLANK = NBLANK + 1
                         BLSHDS(NBLANK, 1) = OLDSHD + 1
                         BLSHDS(NBLANK, 2) = 63
    C
     9010          CONTINUE
    C
    C     WRITE A 20-FRAME TRAILER.
    C
                DO 9014 I = 1, 20
                      CALL FRAMEV
     9014       CONTINUE
    C
    C     WRITE A  MESSAGE INDICATING WHICH SHADES WERE NOT USED>
    C
                      CALL MESSAGE(TITLE,FRAMNO,NBLANK,BLSHDS)
    C
    C     CLOSE AND REWIND THE INTERMEDIATE FILE.
    C
                      CALL CLSINT
    C
    C     CLOSE AND WRITE OUT THE STANDARD OUTPUT BUFFER. THIS ENSURES THAT
    C     ALL INFORMATION ON THE STANDARD OUTPUT FILE APPEARS BEFORE THE
    C     SC-4020 SIMULATION, WHICH DOES NOT USE A STANDARD FILE.
    C
                      CALL CLEAN
    C
    C     A SPECIAL 'EXIT' ROUTINE CAN BE PROVIDED TO CALL THE SC-4020
    C     SIMULATOR.
                      CALL EXIT
    C
    C     FORMATS FOR 'ECHO CHECK'.
    C
     1000 FORMAT(1H1, 4A6, 7H FRAME ,I4)
     4000 FORMAT(7H NREC= ,I13)
          END
    
    $IBFTC FRAME
    C     4X4 CELLS - BRIGHT MOCE 
    C 
    C     ADVANCE THE FILM TO A NEW FRAME AND PRINT BORDER AND TITLE 
    C     INFORMATION ON IT. 
    C 
          SUBROUTINE FRAME(TITLE, FRAMNO, SHADE)
          DIMENSION TITLE(14) 
          DIMENSION ALPHA(4) 
          INTEGER FRAMNO, SHADE 
    C
    C     ADVANCE FILM
    C
                      CALL FRAMEV
    C
    C     PRINT BORDER.
    C
    
                      CALL LINEV(913, 025, 913, 826)
                      CALL LINEV(112, 025, 112, 826)
                      CALL LINEV(112, 025, 913, 025)
                      CALL LINEV(112, 826, 913, 826)
    C
    C     PRINT TITLE.
    C
                      CALL RITE2V(24,957, 1023, 90, 1, 21, +1, TITLE, NLST)
    C 
    C CONVERT FRAME AND SHAOE NUMBER TO BCD USING INTFRNAL FILE 99. 
    C 
                      CALL BCDCON(ALPHA) 
                      WRITE(99, 2000) FRAMNO, SHADE 
    C 
    C PRINT FRAME ANO SHADE NUMBER. 
    C 
                      CALL RITE2V(24, 891, 1023, 90, l, 19, +l, ALPHA,NLST) 
    C 
                      RETURN 
    C 
    C FORMAT FOR FRAME AND SHADE NUMBER. 
    C 
    2000  FORMAT( 5HFRAME, I3, 8H, SHADE , I3) 
          END 
    
    $IBFTC PRCELL 
    C     PRINT A 4-D0T CELL AT THE APPROPRIATE LINE NUMBER AND CELL 
    C     (COLUMN) NUMBER. THIS ROUTINE DIVIDES THE PHOTO AREA INTO 200 
    C     LINES AND 200 COLUMNS. 
    C 
          SUBROUTINE PRCELL(LINENO, CELLNO)
          INTEGER CELLNO 
    C 
                      IX = 109 + 4*CELLNO
                      IY = 826 - 4*LINENO 
    C                     
                DO 100 I = 1, 2       
                DO 10  J = 1, 2       
    C                     
    C     '42' IS THE CODE FOR THE CHARACTRON PLOTTING DOT.   
    C                     
                      CALL PLOTV(IX+J,   IY+ I,   42)   
    C                     
       10       CONTINUE           
      100       CONTINUE           
    C                     
                RETURN             
          END                 
    
    $IBFTC MESSGE 
    C     PRINT A MESSAGE LISTING THE SHADES WHICH DO NOT APPEAR IN THE
    C     PICTURE. 
    C 
          SUBROUTINE MESSGE(TITLE, FRAMNO, NBLANK,  BLSHDS)
          INTEGER FRAMNO, BS1, BS2, BLSHDS(64, 2) 
          DIMENSION TITLE(4)
    C 
                      PRINT 1000, TITLE
                      PRINT 1001, FRAMNO
    C
                IF(NBLANK .NE. 0) GO TO 10       
    C
                      PRINT 1004
                RETURN
    C
       10       CONTINUE
    C
                DO 100 I = 1, NBLANK
    C
                      BS1 = BLSHDS(I, 1)
                      BS2 = BLSHDS(I, 2)
    C
                IF(BS1 .EQ. BS2) PRINT 1002, BS1       
                IF(BS1 .NE. BS2) PRINT 1003, BS1, BS2       
    C
     100        CONTINUE
    C
                RETURN
    C
     1000 FORMAT(1H1, 4A6)
     1001 FORMAT(44H0THE FOLLOWING SGADES DO NOT APPEAR IN FRAME ,I4/)
     1002 FORMAT(I4)
     1003 FORMAT(I4, 3H  -, I4)
     1004 FORMAT(46H0ALL SHADES FROM 0 TO 63 APPEAR ON THIS FRAME.)
          END
    
    $IPMAP CLEAN
    *      CLOSE AND UNBUFFER THE STANDARD OUTPUT FILE. 
    *
           ENTRY   CLEAN   
    CLEAN  TRA     **   
           SXA     XR4,4   
           TSX     S.CLSE,4   
           MON     S.FBOU   
    XR4    AXT     **,4   
           TRA     CLEAN   
           END     
    
    $IBFTC SCEXIT 
    C     SPECIAL 'EXII' ROUTINE CALLS THE SC-402O SIMULATOR BEFORE
    C     RETURNING TO $IBSYS. 
          SUBROUTINE EXIT
                       CALL SCSIM
                STOP 
          END
    
    $IPMAP INPNT
    *      INPUT ROUTINES FOR FILE 'INTERM' - INTERMEDIATE FILE WHICH HAS 
    *      BEEN PROCESSED BY SORT.
           EXTERN  INTERM   
           PMC
    *
    *      GET A 3-WORD RECORD FROM FILE 'INTERM'. 
    *
           ENTRY   GETREC 
    GETREC SAVE 
    *
    *      'SAVE' MACRO SETS XR4 TO COMPLEMENT GF CALLING ADRESS. 
    *      XR4 IS RESTORED TO THIS VALUE BY 'GXR4' AFTER TSX TO S.GFIL 
           SXA     GXR4,4         
           TSX     S.GETL,4         
           PZE     INTERM..BUFFR       
    GXR4   AXT     **,4         
           CLA     BUFFR        
           STO*    3,4                FIRST ARGUMENT   
           CLA     BUFFR+1         
           STO*    4,4                SECOND ARGUMENT   
           CLA     BUFFR+2         
           STO*    5,4                THIRD ARGUMENT   
           RETURN  GETREC
           PMC
    
           STO   at     SFCEND ARGUMENT   
    *             
    *      CLOSE   INTERMEDIATE FILE WITH A REWIND.   
    *             
           ENTRY   CLSINT
    CLISNT SAVE
           TSX     S.CLSE,4         
           PZE     INTERM             REWIND.NOUNLDED,END-OF-DATA
           RETURN  CLSINT
    *
    *      OPEN INTERMEDIATE FILE WITH A REWIND. 
    *
           ENTRY   OPNINT     
    CPNINT SAVE       
           TSX     S.OPEN,4 
           PTW     INTERM              REWIND,BINARY,INPUT
           RETURN  OPNINT  
    *
    BUFFR  BSS     3
           END   
    
    $IPMAP INTUTV 
    *      SPECIAT 'UTVAR.' DECK TO BE USEO WITH W061 ('ECFCTL'). IT 
    *      RETURNS THE ADDRESS OF FILF 'INTERN', REGARDLESS CF THE ARGUMENT 
    *      SUPPLIED IT.
    *
           EXTERN  INTERM
    *
           ENTRY   UTVAR
    UTVAR. NULL
           CLA     POINTR
           STO     2,4
           TRA     1,4
    *
    POINTR PZE     FILINT
    FILINT PZE     INTFRM
           END
    
    $ENTRY         MARINR
    $IBSYS
    $CLOSE         S-SU08.REMOVE
    $IPSYS         ENDJOB           TOTAL NUMBER OF CARDS
    

    REFERENCES

    1. Leighton, R B, The Photographs from Mariner IV, Sci. Am., 214, April 1966, 54-68.

    2. Le Grand, Y, Light, Colour, and Vision, Chapman and Hall, Ltd., London, 1957.

    3. MacAdam, D L, Visual Sensitivities to Color Differences in Daylight, J, Opt. Soc. Am., 32, 1942, 247-274.

    4. Adams, R and Jaffe, H L, A New Organ Scan Display in Polaroid Color, J. Nuclear Medicine, 5, No. 5, 1964, 346-347.