Finding a Minimal Cover for Binary Images: An Optimal Parallel Algorithm
Given a black and white image, represented by an array of $\surd n x \surd n$ binary valued pixels, we wish to cover the black pixels with a minimal set of (possibly overlapping) maximal squares. It was recently shown that obtaining a minimum cover with squares for a polygonal binary image having holes is NP-hard. We derive an optimal parallel algorithm for the minimal square cover problem, which for any desired computation time T in [log n, n] runs on an EREW-PRAM with (n/T) processors. The cornerstone of our algorithm is a novel data structure, the cover graph, which compactly represents the covering relationships between the maximal squares of the image. The size of the cover graph is linear in the number of pixels. This algorithm has applications to problems in VLSI mask generation, incremental update of raster displays, and image compression.