A1 Gori Thms and Programing Tools For

A1 Gori Thms and Programing Tools For

A1gori thms and Programing Tools for Image Processing on the MPP: #2 Report for the Period March 1986 to August 1985 Anthony P. Reeves School of Electrical Engineering Cornel 1 University Ithaca, New York 14853 Work Supported by NASA Grant NAG 5-403 Algorithms and Programming Tools for Image Processing on the MPl? #2 Report for the Period March 1986 to August 1985 Anthony P. Reeves School of Electrical Engineering Cornell University Ithaca, New York 14853 Work Supported by NASA Grant NAG 5-403 Summczry The work reported here was conducted by Maria Gutierrez and Marc Willebeek-LeMair, who are graduate students at Cornell University, and myself. The work for this period iof the grant falls into two main categories algorithms for the MPP and performance analysis of data manipulations for the MPP and related archi- tectures. Maria has developed a number of novel algorithms for image warping and pyramid image filtering. Marc has investigated techniques for the parallel processing of a large number of independent irregular shaped regions on the MPP. In addition some new utilities for dealing with very long vectors and for sorting have been developed. Documentation pages for the new algorithms which are available for dis- tribution are given in Appendix A. Not all algorithms have been made to work on the MPP. The effort in the final period of the grant will concentrate on the MPP im- plementation. The performance of the MPP for a number of basic data manipulations has been determined. From these results it is possible to predict the efficiency of the MPP for a number of algorithms and applications Some of these results have been published 11,Z31 and these papers are included as Appendices C, D and E The Parallel Pascal development system, which is a portable programming environment for the MPP, has been improved and better documentation including a tutorial has been written. This environment, allows programs for the MPP to be developed on any conventional mm- puter system; it consists of a set of system programs and a library of general purpose Parallel Pascal functions The new tutorial is included as Appendix EL 2 During this report period Idria, Man: and mysel have visited the NA 4 God- dard Space Flight Center. Algorithms have been tested on the MPP and a presenta- tion on the development system was made to the MPP users group We have distri- buted the uND< version of the Parallel Pascal System to number of new sites. Some of the highlights of the rmlts of this research are listed below. Image Processing Algorithms Algorithms for image warping are described in Appendix A. The two main functions are nearest neighbor, "WARP, and bilinear interpolation BLWARP. Both of these functions are guided by the same heuristic technique which is very &cient for small arbitrary warps but can also deal with large image distortions Building on the pyramid processing primitives, which were mentioned in the previous report, Laplacian and Gaussian pyramid image filters have been implemented by the functions LAFUICIAN and GAUSSIAN respectively as outlined in Appendix A. These algorithms are used to decompose an image into a number of bandpass filtered subimages A number of interesting &cient image analysis and image filter- ing algorithms have been based on this pyramid of subimages. Local Region Processing A new approach to the parallel processing of independent regions in parallel on the MPP is being investigated. For each region in an image a tree is created which spans the region and can be used to compute features of the region. Special provisions have been made for generating trees for non-simply connected regions Techniques for parallel region merging have been developed. After merging two regions, a new tree is generated which covers the region in a minimum amount of time Using these tree procedures, an image segmentation algorithm, based on the split and merge para- digm, has been implemented. An initial paper on these techniques is in preparation. General Utilities A general purpose sorting algorithm has been implemented; this is described in the SORT documentation page in Appendix A. Based on the bitonic sorting technique this program can sort the rows, the columns or treat the whole PE matrix as a long 3 vector. Any basic data type can be sorted. There are new utilities for local mean, local median and local maximum filters; see LMEAN, LMEDIAN and LMAXIMUM in Appendix A. Also, a general purpose binary matching algorithm (COMPN)has been developed. Performance analysis An analysis of different data permutations and manipulations on the MPP is presented in [l] which is also included in Appendix C This analysis expresses the co6t of data manipulations in terms of elemental arithmetic operations; Boolean, in- teger and floating point data types are considered. Results are computed for arrays of size 128 x 128,256 x 256, and 512 x 512. An extended version of this paper, which includes a general description of the MPP, is given in [21 which is also included as Ap pendix C There has been much recent interest in the implementation of parallel pyramid data processors Such a processor could be maded with the MPP by augmenting the processor array with a pyramid structure of additional processing elements. A py- ramid processor based on the MPP is considered in 131 which is also included as Ap- pendix D. The results from an analysis of the proposed system indicate that, in gen- eral, there would be little advantage in having the additional pyramid hardware for implementing many of the pyramid algorithms References 1. A. P. Reeves and C H. Moura, "Data Manipulations on the Massively Parallel Processor," Proceedings of the Nineteenth Hawaii lnterncrtwd Conference on System Sciences, pp 222-229 (January, 19862 2 A. P. Reeves, 'The Massively Parallel Processor: A Highly Parallel scientific Computer," pp 239-252 in Data Analysis in Astrommy 11,ed. V. Di Gesu, Ple- num Press (1986). 3 A. P. Reeves, ''Pyramid Algorithms on Processor Arrays," pp 195-213 in Pyrm- kid Systems for Computer Visison, ed. V. Cantoni and S Levialdi, Academic Press (1986). Appendix A BLWARP ( 2 ) PPSPDS Users Manual BLWARP ( 2 ) NAME blwarp - Bilinear interpolation warping SYNOPSIS {$library blwsrp.pl} function blwarp( mx:pli; rp:pli;cp:pli; rf:plr; cfip1r):pli; extern rl, rh, cl, ch; TYPES plr = array [rl..rh,cl..ch] of btype; pli = array [rl..rh,cl..ch] of itype; plb = array [rl..rh,cl..ch] of boolean; Where btype is any type and itype is an integer or subrange base type EXTERN CONSTANTS rl = the smallest row number of the input matrix rh = the largest row number of the input matrix cl = the smallest column number of the input matrix ch = the largest column number of the input matrix DESCRIPTION Blwarp is a two dimensional bilinear interpolation warping function. It first finds the four ver- tices of the squares that contain each of the points that we want to interpolate. The function nnwarp is used to find these vertices and the points are given by the matrices (rp+rf) and (cp+cf). Rp and cp define the mapping to be implemented. The bilinear interpolation is performed in the following way: - cf P1 -+ * P2 II II rf I I -*P P3 * * P4 for all points P in the matrix. AUTHOR Maria C. Gutierrez SEE ALSO rotation(2),~warp(2) A. P. Reeves PPL 1 ~ ~- I COMPN(2) PPSPDS Users Manual COMPN(2) I NM compn - near neigbor comparison function I SYNOPSIS {library mx.pl } I compn (m:mtype; w:wtype ):mtype; extern sise; TYPES mtype = parallel array [lol..hil, lo2..hi2] of boolean; I wtype = array [O..size, O..size] of 0.2; DESCRIPTION Compn compares the local neighborhood of each element of the boolean input matrix m with the I window w. If a match occures then the result element is true, otherwise it is false. A zero in w matches with false in m, a one in w matches with true in m and a two in w is a don’t care. AUTHOR I A. P. Reeves I I I I I I I I m I I I A. P. Reeves PPL 1 I GAUSSIAN ( 2 ) PPSPDS Users Manual GAUSSIAN ( 2 ) I NAME gaussian - gaussian pyramid: low pass filter I SYNOPSIS {(library Pyramid.pl } function gaussian(image:gtype; weight:real):rtype; I extern nrows ncols; TYPES 1 gtype = parallel array [O..nrows, O..ncols] of (real or integer); rtype = parallel array [O..nrows, O..ncols] of real; itype = parallel array (O..nrows, O..ncols] of integer; I btype = parallel array [O..nrows, O..ncols] of boolean; EXTERN CONSTANTS nrows = The largest row number of the image matrix I ncols = The largest column number of the image matrix VARS idl,id2,upl,dnl,up2,dn2: itype I pyr msk: btype; Id1 and id2 are two global index identifying matrices as created by twodid (see mat(2)). These must be initialized first. The other matrices specify transformations for managing pyramid data; see pyramid(2) for more information. I DESCRIPTION GUU88iUn is a low pass filter function for pyramid structure images stored in atwo dimensional matrix. The successive levels of the pyramid structure are stored in successive rows of the image I matrix with the highest level image (1 pixel image) being located at position [O,O] in the input matrix. Each level is a low pass filtered copy of its predecessor and it is obtained by convolving the predecessor with a Gaussian weighting kernel. This kernel is generated from the weight I parameter; if a gaussian kernel is desired the weight should be equal to 0.4.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    65 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us