Application driven design of embedded real-time image processors (original) (raw)
Real-time image processing systems become more and more embedded in systems for industrial inspection, autonomous robots, photo-copying, traffic control, automotive control, surveillance, security, and the like. Starting in the 80's many systems -mainly for low-level image processing -have been developed. The architectures range from framegrabbers with attached Digital Signal Processors (DSPs), to systolic pipelines, square and linear single-instruction multiple-data (SIMD) systems, pyramids, PCclusters, and smart cameras. Many of those systems lack a suitable software support, are based on a special programming language, are stand alone and cannot be tightly coupled to the rest of the processors of the embedded system. As a consequence, most often the embedded system cannot be programmed in one uniform way. In this paper we will shortly review the archetypes of image processing architectures and their support, after which we will elaborate on a hard and software design framework for embedded image processors. In this framework we are able to schedule the inherent data and task parallelism in an application in such a way, that a balance is found for both data and task parallel parts of the application software. This schedule is optimal for a certain architecture description. For the selection of the best architecture in combination with the best schedule, one can cycle through design space exploration and scheduling.