Linked e-resources
Details
Table of Contents
Intro
Preface
Contents
Contributors
Part I Introduction to Holography
1 Light Wave, Diffraction, and Holography
1.1 Expression of Light
1.1.1 Scalar Waves
1.1.2 Plane Waves and Spherical Waves
1.2 Coherence of Light
1.3 Interference of Light
1.4 Diffraction of Light
1.4.1 Sommerfeld Diffraction Integral
1.4.2 Angular Spectrum Method
1.4.3 Fresnel Diffraction
1.4.4 Fresnel Diffraction Based on Convolution Expression
1.4.5 Fresnel Diffraction Based on Fourier transform Expression
1.4.6 Fraunhofer Diffraction
1.4.7 Special Diffraction Calculations
1.5 Holography
1.5.1 Recording of the Hologram
1.5.2 Reconstruction of Hologram
1.5.3 In-line Holography and Off-Axis Holography
1.5.4 Types of Holograms
References
2 Computer-Generated Hologram
2.1 Computer-Generated Amplitude Hologram
2.2 Fresnel CGH
2.3 Recurrence Algorithm
2.4 Kinoform (Phase-Only Hologram)
References
3 Basics of Digital Holography
3.1 Digital Holography
3.2 Off-Axis Digital Holography
3.3 Phase-Shifting Digital Holography
3.3.1 Four-Step Phase-Shifting Digital Holography
3.3.2 Three-Step Phase-Shifting Digital Holography
3.4 Single-Shot Phase-Shifting Digital Holography
References
Part II Introduction to Hardware
4 Basic Knowledge of CPU Architecture for High Performance
4.1 Introduction
4.2 Pipeline Processing
4.2.1 Fundamentals of CPU Architecture
4.2.2 Pipeline Architecture
4.2.3 Instruction Latency and Throughput
4.3 Parallel Architecture
4.3.1 Single Instruction Multiple Data (SIMD) Architecture
4.3.2 Superscalar and Vector Processor
4.3.3 Logical CPU
4.3.4 Multi-Core CPU
4.4 Memory Architecture
4.4.1 Continuity of Data
4.4.2 Cache Hierarchy
4.4.3 Cache Line
References
5 Basics of CUDA
5.1 Evolution of GPUs
5.2 Introduction to CUDA
5.3 Setting Up the CUDA Environment
5.4 Hello World
5.4.1 CUDA Thread Construction
5.4.2 Kernel Function
5.4.3 Compilation and Execution
5.5 Parallel Addition of Vectors
5.5.1 Data and Memory Management on GPU
5.5.2 Performing Different Calculations on CUDA Threads
5.6 Parallel Reduction
References
6 Basics of OpenCL
6.1 General Introduction of OpenCL
6.2 Setting Up an OpenCL Environment
6.3 Constructing an OpenCL Program
6.3.1 Creating OpenCL Objects That Are Not Required in CUDA
6.3.2 Executing the Kernel Function
6.3.3 Writing the Kernel Function
References
7 Basics of Field-Programmable Gate Array
7.1 Structure of Field-Programmable Gate Array
7.2 Hardware Description Language (HDL)
7.3 Special-Purpose Computation Circuit Using FPGA
7.4 Fixed-Point and Floating-Point Arithmetic
7.5 Communication Between FPGAs and CPUs
7.6 AXI Communication
7.7 Communication Program Between CPU and FPGA
7.8 Discussion
References
Preface
Contents
Contributors
Part I Introduction to Holography
1 Light Wave, Diffraction, and Holography
1.1 Expression of Light
1.1.1 Scalar Waves
1.1.2 Plane Waves and Spherical Waves
1.2 Coherence of Light
1.3 Interference of Light
1.4 Diffraction of Light
1.4.1 Sommerfeld Diffraction Integral
1.4.2 Angular Spectrum Method
1.4.3 Fresnel Diffraction
1.4.4 Fresnel Diffraction Based on Convolution Expression
1.4.5 Fresnel Diffraction Based on Fourier transform Expression
1.4.6 Fraunhofer Diffraction
1.4.7 Special Diffraction Calculations
1.5 Holography
1.5.1 Recording of the Hologram
1.5.2 Reconstruction of Hologram
1.5.3 In-line Holography and Off-Axis Holography
1.5.4 Types of Holograms
References
2 Computer-Generated Hologram
2.1 Computer-Generated Amplitude Hologram
2.2 Fresnel CGH
2.3 Recurrence Algorithm
2.4 Kinoform (Phase-Only Hologram)
References
3 Basics of Digital Holography
3.1 Digital Holography
3.2 Off-Axis Digital Holography
3.3 Phase-Shifting Digital Holography
3.3.1 Four-Step Phase-Shifting Digital Holography
3.3.2 Three-Step Phase-Shifting Digital Holography
3.4 Single-Shot Phase-Shifting Digital Holography
References
Part II Introduction to Hardware
4 Basic Knowledge of CPU Architecture for High Performance
4.1 Introduction
4.2 Pipeline Processing
4.2.1 Fundamentals of CPU Architecture
4.2.2 Pipeline Architecture
4.2.3 Instruction Latency and Throughput
4.3 Parallel Architecture
4.3.1 Single Instruction Multiple Data (SIMD) Architecture
4.3.2 Superscalar and Vector Processor
4.3.3 Logical CPU
4.3.4 Multi-Core CPU
4.4 Memory Architecture
4.4.1 Continuity of Data
4.4.2 Cache Hierarchy
4.4.3 Cache Line
References
5 Basics of CUDA
5.1 Evolution of GPUs
5.2 Introduction to CUDA
5.3 Setting Up the CUDA Environment
5.4 Hello World
5.4.1 CUDA Thread Construction
5.4.2 Kernel Function
5.4.3 Compilation and Execution
5.5 Parallel Addition of Vectors
5.5.1 Data and Memory Management on GPU
5.5.2 Performing Different Calculations on CUDA Threads
5.6 Parallel Reduction
References
6 Basics of OpenCL
6.1 General Introduction of OpenCL
6.2 Setting Up an OpenCL Environment
6.3 Constructing an OpenCL Program
6.3.1 Creating OpenCL Objects That Are Not Required in CUDA
6.3.2 Executing the Kernel Function
6.3.3 Writing the Kernel Function
References
7 Basics of Field-Programmable Gate Array
7.1 Structure of Field-Programmable Gate Array
7.2 Hardware Description Language (HDL)
7.3 Special-Purpose Computation Circuit Using FPGA
7.4 Fixed-Point and Floating-Point Arithmetic
7.5 Communication Between FPGAs and CPUs
7.6 AXI Communication
7.7 Communication Program Between CPU and FPGA
7.8 Discussion
References