High Performance Java Software for Image Processing Open Access

Wendykier, Piotr Maciej (2009)

Permanent URL: https://etd.library.emory.edu/concern/etds/h989r341v?locale=en
Published

Abstract

Abstract
High Performance Java Software for Image Processing
By Piotr Wendykier
Parallel computing has been used for scientific computing applications since the
1960s, when the first supercomputers were developed. However, only recently
have these programming paradigms become useful for software running on desk-
top and notebook computers. In this dissertation we demonstrate the advantage
of exploiting modern computer architectures in scientific computing with multi-
threaded programming in Java for applications in image processing. A significant
contribution of this work is an open source, multithreaded high performance sci-
entific computing Java library called Parallel Colt. In addition, on top of Parallel
Colt, we have implemented six ImageJ plugins for deconvolution, super-resolution,
fast Fourier transforms and image cropping. Hence, we are able to provide soft-
ware to solve important problems in real image processing applications, and which
can effectively make use of multi-core CPUs available on affordable desktop and
notebook computers.

High Performance Java Software for Image Processing
by
Piotr Wendykier
M.Sc., Adam Mickiewicz University, 2003
Advisor: James G. Nagy, PhD
A dissertation submitted to the Faculty of the
James T. Laney School of Graduate Studies of Emory University
in partial fulfillment of the requirements of the degree of
Doctor of Philosophy
in mathematics
2009

Table of Contents

1 Introduction 1
1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Inverse Problems . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Regularization . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4 Outline of This Work . . . . . . . . . . . . . . . . . . . . . . . . 9
2 Deconvolution and Super-resolution 11
2.1 Deconvolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1.1 Spectral Deconvolution . . . . . . . . . . . . . . . . . . . 13
2.1.2 Iterative Deconvolution . . . . . . . . . . . . . . . . . . . 22
2.2 Motion Correction of PET Brain Images . . . . . . . . . . . . . . 28
2.2.1 Motion Detection . . . . . . . . . . . . . . . . . . . . . . 30
2.2.2 Mathematical Formulation . . . . . . . . . . . . . . . . . 35

2.2.3 Determining Head Positions . . . . . . . . . . . . . . . . 36
2.3 Super-Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3 Java in Scientific Computing and Imaging 42
3.1 Why Java? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.2 Related Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.3 Parallel Colt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.3.1 Colt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.3.2 Concurrency . . . . . . . . . . . . . . . . . . . . . . . . 50
3.3.3 Multidimensional Arrays . . . . . . . . . . . . . . . . . . 51
3.3.4 Iterative Solvers . . . . . . . . . . . . . . . . . . . . . . 55
3.3.5 Linear Algebra . . . . . . . . . . . . . . . . . . . . . . . 56
3.3.6 Trigonometric Transforms . . . . . . . . . . . . . . . . . 58
3.3.7 Accuracy . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.3.8 Other Additions . . . . . . . . . . . . . . . . . . . . . . . 64
3.3.9 Examples of Usage . . . . . . . . . . . . . . . . . . . . . 65
3.3.10 Benchmarks . . . . . . . . . . . . . . . . . . . . . . . . . 66
4 Implementation 73
4.1 Parallel Spectral Deconvolution . . . . . . . . . . . . . . . . . . 73

4.1.1 Description and Usage . . . . . . . . . . . . . . . . . . . 74
4.1.2 Benchmark . . . . . . . . . . . . . . . . . . . . . . . . . 77
4.2 Parallel Iterative Deconvolution . . . . . . . . . . . . . . . . . . 81
4.2.1 Description and Usage . . . . . . . . . . . . . . . . . . . 81
4.2.2 Benchmark . . . . . . . . . . . . . . . . . . . . . . . . . 92
4.3 Parallel HRRT Deconvolution . . . . . . . . . . . . . . . . . . . 93
4.3.1 Description and Usage . . . . . . . . . . . . . . . . . . . 94
4.3.2 Benchmark . . . . . . . . . . . . . . . . . . . . . . . . . 98
4.4 Parallel Super-Resolution . . . . . . . . . . . . . . . . . . . . . . 104
4.4.1 Description and Usage . . . . . . . . . . . . . . . . . . . 104
4.4.2 Benchmark . . . . . . . . . . . . . . . . . . . . . . . . . 109
4.5 Parallel FFTJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
4.5.1 Description and Usage . . . . . . . . . . . . . . . . . . . 110
4.5.2 Benchmark . . . . . . . . . . . . . . . . . . . . . . . . . 112
4.6 Lincoln Papers . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
4.6.1 Description and Usage . . . . . . . . . . . . . . . . . . . 114
4.6.2 Benchmark . . . . . . . . . . . . . . . . . . . . . . . . . 120
5 Conclusions 122

Appendix A 124
6.1 Fast Fourier Transform . . . . . . . . . . . . . . . . . . . . . . . 124
Appendix B 127
7.1 Popularity of Parallel Colt . . . . . . . . . . . . . . . . . . . . . 127
7.2 Popularity of JTransforms . . . . . . . . . . . . . . . . . . . . . 128
7.3 Popularity of ImageJ Plugins . . . . . . . . . . . . . . . . . . . . 130
7.4 Lines of Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Bibliography 132

About this Dissertation

Rights statement
  • Permission granted by the author to include this thesis or dissertation in this repository. All rights reserved by the author. Please contact the author for information regarding the reproduction and use of this thesis or dissertation.
School
Department
Degree
Submission
Language
  • English
Research field
Keyword
Committee Chair / Thesis Advisor
Committee Members
Last modified

Primary PDF

Supplemental Files