Preface xvii

Acknowledgments xxi

**1 Vector Spaces, Signals, and Images 1**

1.1 Overview 1

1.2 Some Common Image Processing Problems 1

1.2.1 Applications 2

1.2.1.1 Compression 2

1.2.1.2 Restoration 2

1.2.1.3 Edge Detection 3

1.2.1.4 Registration 3

1.2.2 Transform-Based Methods 3

1.3 Signals and Images 3

1.3.1 Signals 4

1.3.2 Sampling, Quantization Error, and Noise 5

1.3.3 Grayscale Images 6

1.3.4 Sampling Images 8

1.3.5 Color 9

1.3.6 Quantization and Noise for Images 9

1.4 Vector Space Models for Signals and Images 10

1.4.1 Examples—Discrete Spaces 11

1.4.2 Examples—Function Spaces 14

1.5 Basic Waveforms—The Analog Case 16

1.5.1 The One-Dimensional Waveforms 16

1.5.2 2D Basic Waveforms 19

1.6 Sampling and Aliasing 20

1.6.1 Introduction 20

1.6.2 Aliasing for Complex Exponential Waveforms 22

1.6.3 Aliasing for Sines and Cosines 23

1.6.4 The Nyquist Sampling Rate 24

1.6.5 Aliasing in Images 24

1.7 Basic Waveforms—The Discrete Case 25

1.7.1 Discrete Basic Waveforms for Finite Signals 25

1.7.2 Discrete Basic Waveforms for Images 27

1.8 Inner Product Spaces and Orthogonality 28

1.8.1 Inner Products and Norms 28

1.8.1.1 Inner Products 28

1.8.1.2 Norms 29

1.8.2 Examples 30

1.8.3 Orthogonality 33

1.8.4 The Cauchy–Schwarz Inequality 34

1.8.5 Bases and Orthogonal Decomposition 35

1.8.5.1 Bases 35

1.8.5.2 Orthogonal and Orthonormal Bases 37

1.8.5.3 Parseval’s Identity 39

1.9 Signal and Image Digitization 39

1.9.1 Quantization and Dequantization 40

1.9.1.1 The General Quantization Scheme 41

1.9.1.2 Dequantization 42

1.9.1.3 Measuring Error 42

1.9.2 Quantifying Signal and Image Distortion More Generally 43

1.10 Infinite-Dimensional Inner Product Spaces 45

1.10.1 Example: An Infinite-Dimensional Space 45

1.10.2 Orthogonal Bases in Inner Product Spaces 46

1.10.3 The Cauchy–Schwarz Inequality and Orthogonal Expansions 48

1.10.4 The Basic Waveforms and Fourier Series 49

1.10.4.1 Complex Exponential Fourier Series 49

1.10.4.2 Sines and Cosines 52

1.10.4.3 Fourier Series on Rectangles 53

1.10.5 Hilbert Spaces and L2(a, b ) 53

1.10.5.1 Expanding the Space of Functions 53

1.10.5.2 Complications 54

1.10.5.3 A Converse to Parseval 55

1.11 Matlab Project 55

Exercises 60

**2 The Discrete Fourier Transform 71**

2.1 Overview 71

2.2 The Time Domain and Frequency Domain 71

2.3 A Motivational Example 73

2.3.1 A Simple Signal 73

2.3.2 Decomposition into BasicWaveforms 74

2.3.3 Energy at Each Frequency 74

2.3.4 Graphing the Results 75

2.3.5 Removing Noise 77

2.4 The One-Dimensional DFT 78

2.4.1 Definition of the DFT 78

2.4.2 Sample Signal and DFT Pairs 80

2.4.2.1 An Aliasing Example 80

2.4.2.2 Square Pulses 81

2.4.2.3 Noise 82

2.4.3 Suggestions on Plotting DFTs 84

2.4.4 An Audio Example 84

2.5 Properties of the DFT 85

2.5.1 Matrix Formulation and Linearity 85

2.5.1.1 The DFT as a Matrix 85

2.5.1.2 The Inverse DFT as a Matrix 87

2.5.2 Symmetries for Real Signals 88

2.6 The Fast Fourier transform 90

2.6.1 DFT Operation Count 90

2.6.2 The FFT 91

2.6.3 The Operation Count 92

2.7 The Two-Dimensional DFT 93

2.7.1 Interpretation and Examples of the 2-D DFT 96

2.8 Matlab Project 97

2.8.1 Audio Explorations 97

2.8.2 Images 99

Exercises 101

**3 The Discrete Cosine Transform 105**

3.1 Motivation for the DCT—Compression 105

3.2 Other Compression Issues 106

3.3 Initial Examples—Thresholding 107

3.3.1 Compression Example 1: A Smooth Function 108

3.3.2 Compression Example 2: A Discontinuity 109

3.3.3 Compression Example 3 110

3.3.4 Observations 112

3.4 The Discrete Cosine Transform 112

3.4.1 DFT Compression Drawbacks 112

3.4.2 The Discrete Cosine Transform 113

3.4.2.1 Symmetric Reflection 113

3.4.2.2 DFT of the Extension 113

3.4.2.3 DCT/IDCT Derivation 114

3.4.2.4 Definition of the DCT and IDCT 115

3.4.3 Matrix Formulation of the DCT 116

3.5 Properties of the DCT 116

3.5.1 BasicWaveforms for the DCT 116

3.5.2 The Frequency Domain for the DCT 117

3.5.3 DCT and Compression Examples 117

3.6 The Two-Dimensional DCT 120

3.7 Block Transforms 121

3.8 JPEG Compression 123

3.8.1 Overall Outline 123

3.8.2 DCT and Quantization Details 124

3.8.3 The JPEG Dog 128

3.8.4 Sequential versus Progressive Encoding 128

3.9 Matlab Project 131

Exercises 134

**4 Convolution and Filtering 139**

4.1 Overview 139

4.2 One-Dimensional Convolution 139

4.2.1 Example: Low-Pass Filtering and Noise Removal 139

4.2.2 Convolution 142

4.2.2.1 Convolution Definition 142

4.2.2.2 Convolution Properties 143

4.3 Convolution Theorem and Filtering 146

4.3.1 The Convolution Theorem 146

4.3.2 Filtering and Frequency Response 147

4.3.2.1 Filtering Effect on BasicWaveforms 147

4.3.3 Filter Design 150

4.4 2D Convolution—Filtering Images 152

4.4.1 Two-Dimensional Filtering and Frequency Response 152

4.4.2 Applications of 2D Convolution and Filtering 153

4.4.2.1 Noise Removal and Blurring 153

4.4.2.2 Edge Detection 154

4.5 Infinite and Bi-Infinite Signal Models 156

4.5.1 L2(ℕ) and L2(ℤ) 158

4.5.1.1 The Inner Product Space L2(ℕ) 158

4.5.1.2 The Inner Product Space L2(ℤ) 159

4.5.2 Fourier Analysis in L2(ℤ) and L2(ℕ) 160

4.5.2.1 The Discrete Time Fourier Transform in L2(ℤ) 160

4.5.2.2 Aliasing and the Nyquist Frequency in L2(ℤ) 161

4.5.2.3 The Fourier Transform on L2(ℕ)) 163

4.5.3 Convolution and Filtering in L2(ℤ) and L2(ℕ) 163

4.5.3.1 The Convolution Theorem 164

4.5.4 The z-Transform 166

4.5.4.1 Two Points of View 166

4.5.4.2 Algebra of z-Transforms; Convolution 167

4.5.5 Convolution in ℂN versus L2(ℤ) 168

4.5.5.1 Some Notation 168

4.5.5.2 Circular Convolution and z-Transforms 169

4.5.5.3 Convolution in ℂN from Convolution in L2(ℤ) 170

4.5.6 Some Filter Terminology 171

4.5.7 The Space L2(ℤ × ℤ) 172

4.6 Matlab Project 172

4.6.1 Basic Convolution and Filtering 172

4.6.2 Audio Signals and Noise Removal 174

4.6.3 Filtering Images 175

Exercises 176

**5 Windowing and Localization 185**

5.1 Overview: Nonlocality of the DFT 185

5.2 Localization via Windowing 187

5.2.1 Windowing 187

5.2.2 Analysis of Windowing 188

5.2.2.1 Step 1: Relation of X and Y 189

5.2.2.2 Step 2: Effect of Index Shift 190

5.2.2.3 Step 3: N-Point versus M-Point DFT 191

5.2.3 Spectrograms 192

5.2.4 Other Types of Windows 196

5.3 Matlab Project 198

5.3.1 Windows 198

5.3.2 Spectrograms 199

Exercises 200

**6 Frames 205**

6.1 Introduction 205

6.2 Packet Loss 205

6.3 Frames—Using more Dot Products 208

6.4 Analysis and Synthesis with Frames 211

6.4.1 Analysis and Synthesis 211

6.4.2 Dual Frame and Perfect Reconstruction 213

6.4.3 Partial Reconstruction 214

6.4.4 Other Dual Frames 215

6.4.5 Numerical Concerns 216

6.4.5.1 Condition Number of a Matrix 217

6.5 Initial Examples of Frames 218

6.5.1 Circular Frames in ℝ2 218

6.5.2 Extended DFT Frames and Harmonic Frames 219

6.5.3 Canonical Tight Frame 221

6.5.4 Frames for Images 222

6.6 More on the Frame Operator 222

6.7 Group-Based Frames 225

6.7.1 Unitary Matrix Groups and Frames 225

6.7.2 Initial Examples of Group Frames 228

6.7.2.1 Platonic Frames 228

6.7.2.2 Symmetric Group Frames 230

6.7.2.3 Harmonic Frames 232

6.7.3 Gabor Frames 232

6.7.3.1 Flipped Gabor Frame 237

6.8 Frame Applications 237

6.8.1 Packet Loss 239

6.8.2 Redundancy and other duals 240

6.8.3 Spectrogram 241

6.9 Matlab Project 242

6.9.1 Frames and Frame Operator 243

6.9.2 Analysis and Synthesis 245

6.9.3 Condition Number 246

6.9.4 Packet Loss 246

6.9.5 Gabor Frames 246

Exercises 247

**7 Filter Banks 251**

7.1 Overview 251

7.2 The Haar Filter Bank 252

7.2.1 The One-Stage Two-Channel Filter Bank 252

7.2.2 Inverting the One-stage Transform 256

7.2.3 Summary of Filter Bank Operation 257

7.3 The General One-stage Two-channel Filter Bank 260

7.3.1 Formulation for Arbitrary FIR Filters 260

7.3.2 Perfect Reconstruction 261

7.3.3 Orthogonal Filter Banks 263

7.4 Multistage Filter Banks 264

7.5 Filter Banks for Finite Length Signals 267

7.5.1 Extension Strategy 267

7.5.2 Analysis of Periodic Extension 269

7.5.2.1 Adapting the Analysis Transform to Finite Length 270

7.5.2.2 Adapting the Synthesis Transform to Finite Length 272

7.5.2.3 Other Extensions 274

7.5.3 Matrix Formulation of the Periodic Case 274

7.5.4 Multistage Transforms 275

7.5.4.1 Iterating the One-stage Transform 275

7.5.4.2 Matrix Formulation of Multistage Transform 277

7.5.4.3 Reconstruction from Approximation Coefficients 278

7.5.5 Matlab Implementation of Discrete Wavelet Transforms 281

7.6 The 2D Discrete Wavelet Transform and JPEG 2000 281

7.6.1 Two-dimensional Transforms 281

7.6.2 Multistage Transforms for Two-dimensional Images 282

7.6.3 Approximations and Details for Images 286

7.6.4 JPEG 2000 288

7.7 Filter Design 289

7.7.1 Filter Banks in the z-domain 290

7.7.1.1 Downsampling and Upsampling in the z-domain 290

7.7.1.2 Filtering in the Frequency Domain 290

7.7.2 Perfect Reconstruction in the z-frequency Domain 290

7.7.3 Filter Design I: Synthesis from Analysis 292

7.7.4 Filter Design II: Product Filters 295

7.7.5 Filter Design III: More Product Filters 297

7.7.6 Orthogonal Filter Banks 299

7.7.6.1 Design Equations for an Orthogonal Bank 299

7.7.6.2 The Product Filter in the Orthogonal Case 300

7.7.6.3 Restrictions on P(z); Spectral Factorization 301

7.7.6.4 Daubechies Filters 301

7.8 Matlab Project 303

7.8.1 Basics 303

7.8.2 Audio Signals 304

7.8.3 Images 305

7.9 Alternate Matlab Project 306

7.9.1 Basics 306

7.9.2 Audio Signals 307

7.9.3 Images 307

Exercises 309

**8 Lifting for Filter Banks and Wavelets 319**

8.1 Overview 319

8.2 Lifting for the Haar Filter Bank 319

8.2.1 The Polyphase Analysis 320

8.2.2 Inverting the Polyphase Haar Transform 321

8.2.3 Lifting Decomposition for the Haar Transform 322

8.2.4 Inverting the Lifted Haar Transform 324

8.3 The Lifting Theorem 324

8.3.1 A Few Facts About Laurent Polynomials 325

8.3.1.1 The Width of a Laurent Polynomial 325

8.3.1.2 The Division Algorithm 325

8.3.2 The Lifting Theorem 326

8.4 Polyphase Analysis for Filter Banks 330

8.4.1 The Polyphase Decomposition and Convolution 331

8.4.2 The Polyphase Analysis Matrix 333

8.4.3 Inverting the Transform 334

8.4.4 Orthogonal Filters 338

8.5 Lifting 339

8.5.1 Relation Between the Polyphase Matrices 339

8.5.2 Factoring the Le Gall 5/3 Polyphase Matrix 341

8.5.3 Factoring the Haar Polyphase Matrix 343

8.5.4 Efficiency 345

8.5.5 Lifting to Design Transforms 346

8.6 Matlab Project 351

8.6.1 Laurent Polynomials 351

8.6.2 Lifting for CDF(2,2) 354

8.6.3 Lifting the D4 Filter Bank 356

Exercises 356

**9 Wavelets 361**

9.1 Overview 361

9.1.1 Chapter Outline 361

9.1.2 Continuous from Discrete 361

9.2 The Haar Basis 363

9.2.1 Haar Functions as a Basis for L2(0, 1) 364

9.2.1.1 Haar Function Definition and Graphs 364

9.2.1.2 Orthogonality 367

9.2.1.3 Completeness in L2(0, 1) 368

9.2.2 Haar Functions as an Orthonormal Basis for L2(ℝ) 372

9.2.3 Projections and Approximations 374

9.3 Haar Wavelets Versus the Haar Filter Bank 376

9.3.1 Single-stage Case 377

9.3.1.1 Functions from Sequences 377

9.3.1.2 Filter Bank Analysis/Synthesis 377

9.3.1.3 Haar Expansion and Filter Bank Parallels 378

9.3.2 Multistage Haar Filter Bank and Multiresolution 380

9.3.2.1 Some Subspaces and Bases 381

9.3.2.2 Multiresolution and Orthogonal Decomposition 381

9.3.2.3 Direct Sums 382

9.3.2.4 Connection to Multistage Haar Filter Banks 384

9.4 Orthogonal Wavelets 386

9.4.1 Essential Ingredients 386

9.4.2 Constructing a Multiresolution Analysis: The Dilation Equation 387

9.4.3 Connection to Orthogonal Filters 389

9.4.4 Computing the Scaling Function 390

9.4.5 Scaling Function Existence and Properties 394

9.4.5.1 Fixed Point Iteration and the Cascade Algorithm 394

9.4.5.2 Existence of the Scaling Function 395

9.4.5.3 The Support of the Scaling Function 397

9.4.5.4 Back to Multiresolution 399

9.4.6 Wavelets 399

9.4.7 Wavelets and the Multiresolution Analysis 404

9.4.7.1 Final Remarks on Orthogonal Wavelets 406

9.5 Biorthogonal Wavelets 407

9.5.1 Biorthogonal Scaling Functions 408

9.5.2 Biorthogonal Wavelets 409

9.5.3 Decomposition of L2(ℝ) 409

9.6 Matlab Project 411

9.6.1 Orthogonal Wavelets 411

9.6.2 Biorthogonal Wavelets 414

Exercises 414

Bibliography 421

Appendix: Solutions to Exercises 423

Index 439