Due to the intricacies in the algorithms involved, the design of imaging software is considered to be more complex than
non-image processing software (Sangwan et al, 2005). A recent investigation (Larsson and Laplante, 2006) examined
the complexity of several image processing and non-image processing software packages along a wide variety of
metrics, including those postulated by McCabe (1976), Chidamber and Kemerer (1994), and Martin (2003). This work
found that it was not always possible to quantitatively compare the complexity between imaging applications and nonimage
processing systems. Newer research and an accompanying tool (Structure 101, 2006), however, provides a
greatly simplified approach to measuring software complexity. Therefore it may be possible to definitively quantify the
complexity differences between imaging and non-imaging software, between imaging and real-time imaging software,
and between software programs of the same application type.
In this paper, we review prior results and describe the methodology for measuring complexity in imaging systems. We
then apply a new complexity measurement methodology to several sets of imaging and non-imaging code in order to
compare the complexity differences between the two types of applications. The benefit of such quantification is far
reaching, for example, leading to more easily measured performance improvement and quality in real-time imaging
Real-time imaging applications are concerned with efficient and deterministic processing of digital images. These applications are predominantly written using structured programming rather than object-oriented programming with the belief that the former approach has better performance characteristics. Current research shows that this may not be the case and an object-oriented approach may not only result in efficient code but one that is more maintainable and understandable. We look at current techniques for visualizing the code for software applications to determine if they can help predict its qualities such as maintainability, understandability and performance, and suggest ways in which these techniques can be enhanced to meet the specific needs of real-time imaging applications.
The benefits of an object-oriented approach and pattern based design for complex software systems are well known. But most software engineers believe that these techniques have a run time performance cost that is too high for real-time imaging applications. Unfortunately, no usable data to support or disprove this contention exists. In this work we describe a set of experiments that challenge the conventional wisdom. We report on our results and we further introduce a strategy to thoroughly investigate the issues of run-time performance in any real-time imaging system.
Conference Committee Involvement (1)
Real-Time Image Processing III
16 January 2006 | San Jose, California, United States