As already discussed in Chapter 2 of this book, today’s image processing systems are getting more and more complex. Consequently, new methodologies are required for implementation of hardware–software systems in order to raise the level of abstraction above the currently used RTL or C coding techniques. Section 2.5 has identified several requirements on such a new design flow like, for instance, efficient representation of point, local, or global algorithms, the capacity to express different kinds of parallelism as well as control flow, and the support for out-of-order communication, high-level verification, simulation on different levels of abstraction, or high-level performance evaluation.