How to Use This Book


The book is intended to be read sequentially, since there is a concrete example introduced in Chapter 2 and used to evolve the final design of the image framework that is presented in Chapter 5. Throughout the book, we highlight the C++ techniques we are exploring in heading titles and in summary boxes that appear on the first page of each chapter.

The book is organized as follows :

Chapter 1, Introduction, provides an overview of what we set out to accomplish by writing this book, and reveals our background and biases as they apply to the C++ techniques we recommend. We also provide an optional background section on digital imaging. If you have experience working with imaging applications, you may want to skip the final section of this chapter.

Chapter 2, A Test Application, introduces our simple, inadequate application, used as a test bed for prototyping C++ techniques. We deliberately create this strikingly simple application because it effectively demonstrates the trade-offs of various design and implementation decisions.

Chapter 3, Design Techniques, begins our discussion of C++ design. We use lots of code examples to demonstrate design strategies, and we provide a primer on templates since they are used so heavily within the book. Finally, we prototype various aspects of the design and build general utilities needed to support the design.

Chapter 4, Design Considerations, explores guidelines and additional strategies you may want to use in your designs. We offer a practical set of coding guidelines, reusability strategies, and a simple but effective debugging strategy.

Chapter 5, System Considerations, explores system-level design issues, like multi-threaded and multi-process designs, exception handling (including a framework we provide for handling exceptions), compile time and run-time issues, template specialization, and internationalization concerns.

Chapter 6, Implementation Considerations, applies the C++ techniques we have explored to the final design and implementation of all pieces in the image framework. In addition, this chapter introduces global image processing functions, like edge sharpening and noise reduction, and provides both a visual overview of these techniques and the C++ implementations . We also provide a high-level interface to libraries and other third-party software. Specifically, we introduce you to the Intel Integrated Performance Primitives (IPP) library and show you how to use IPP for high-speed imaging applications.

Chapter 7, Testing and Performance, provides a reasonable strategy for integrating unit tests into your software development cycle, including a full unit test framework and a discussion of how you can extend it to meet your particular needs. We also focus on performance, giving specific techniques that you can use to immediately improve the runtime performance of your application.

Chapter 8, Advanced Topics, explores those issues that we felt warranted more detailed discussion, such as copy on write, caching, explicit keyword usage, const , and pass by reference. We also include a section on extending the image framework, to serve as a guide for taking the existing framework and adding your own processing functions. We've highlighted some routines that work particularly well for enhancing your digital photographs.

Appendix A, Useful Online Resources, provides links to those software tools and resources that we thought might be helpful.

Appendix B, CD-ROM Information, outlines the contents of the CD-ROM included with this book. There is a great deal of code presented in this book. All of the source code for our test application, prototypes , and image framework is included on the disc. In addition, we provide all of the unit tests, unit test framework, and makefiles necessary to run the software on a variety of platforms. We also include some useful third-party software: the freeware DebugView utility by SysInternals for Microsoft Windows, the evaluation version of the Intel Integrated Performance Primitives (IPP) library for Microsoft Windows and Linux, the evaluation version of the Intel C++ Compiler for Microsoft Windows, the source code to build the JPEG file delegate, and the source code to build the TIFF file delegate.



Applied C++
Applied C++: Practical Techniques for Building Better Software
ISBN: 0321108949
EAN: 2147483647
Year: 2003
Pages: 59

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net