Image Processing for Embedded Devices <7>

2.3.2 CFA和Bayer模式

 

2.15 Bayer颜色过滤排列结构:(a)sensor表面CFA;(b)光分成颜色分量影响sensor上不同像元

 

成像器件传感器上的每个像元都含有一个光电二极管,用以测量光照亮度。因为光电二极管是单色器件,不能区分不同光波长。因此,”马赛克”模式的颜色过滤器,颜色过滤排列(CFA)被置于sensor上面,可以过滤出入射光中红,绿,蓝分量。虽然GRGB Bayer模式从1976年起就是最常用的CFA,人们也在调研定义更多可用的CFAs。图2.15展示了一种经典的Bayer CFA和sensor如何采集颜色分量。

 

全彩 Sensor

 

2.16 全彩sensor结构:(a)经典Bayer CFA sensor平面;(b)新的全彩sensor平面,50%的平面用于白像元;(c)等效全彩宏块由经典RGGB宏块加白宏块组成;(d)彩色图像分解,全彩sensor产生图像更贴近人类视觉

 

近年柯达,Bayer格式的发明者,提出一种新格式,全彩sensor。这种sensor的优点是50%像元是白的(表面不置颜色过滤)光灵敏度更好,可在低照下使用。这个结构另一个重要优点是一个Bayer 2x2宏块对应于一个4x4块(图2.16),因此在每个块中有更多绿,蓝和红像元,另外白像元可用于重构光强度。

为了理解全彩sensor在低照度下灵敏度的提升,通过如下公式表示光照能量,依照ITU-RBT.601从RGB分量拆分。

 

         针对一个CFA的Bayer宏块应用上述公式:

 

采集效率少于40%;大概有60%的光子丢失和被过滤单元吸收。

         针对一个全彩sensor宏块应用同样公式:

 

通过这个sensor大约有70%的光照被采集到。作为结果,就采光效率而言,全彩sensor是Bayer sensor的1.76倍。当然在比较不同sensor模式是不能单单分析采光效率。另一个让人关注的方面是图像处理pipeline。市场上大部分相机sensor都采样Bayer格式。这意味着Bayer格式成了一个标准存在。新格式,有别于经典格式,即使有些优点,在需求图像处理方面存在不便之处。

 

2.17 柯达专利的全彩sensor图像生成pipeline

 

         图2.17为柯达专利的pipeline。它不同于通用pipeline,如自动曝光控制,降噪,去马赛克(尽管Bayer上的某些方法可以复用),色彩准确度,锯齿和锐化。

 

Foveon Sensor

 

2.18 Foveon sensor结构. (a)颜色平面叠在一起;(b)Foveon sensor和Bayer sensor比较

 

Foveon X3图像sensor由3层像素。像素层切入在硅内利用红绿蓝光穿透硅至不同深度的原理构成第一款采集图像每个点都能采集全部颜色的图像sensor。图2.18展示了光通过sensor的不同穿透能力和sensor表面3个颜色层的相对位移。因此,和Bayer sensor相比,这个sensor不需要颜色去马赛克处理,同样图像质量要求下,所需像素数量明显更少(1 Foveon = 4 Bayer sensor)。

Foveon X3 sensor可以有更大的像元,从而能收集更多光子。另一方面这种堆法更容易产生颜色串扰,从而限制SNR的表现。实际上蓝通道会有大量红绿信号渗透,绿通道会有大量红信号渗透,红通道是唯一低串扰的通道。针对Foveon sensor的图像处理需要数字端强串扰去除功能和专门的颜色处理用于恢复颜色还原性。接口深度和掺杂程度会严重影响色差还原性,因此图像处理控制需要特别注意。

2.3.3 不同动态范围sensor

 

真实场景具有非常大的动态范围,表2.2中做了简单总结(Lux是亮度的标准单位)。通常正常sensor不能采集到真实世界场景,尤其动态范围非常大时,如混有阳光和暗影区域的户外场景。以dB为单位标量动态范围使用如下公式,在真实场景下该值往往大于60dB。

 

DR表示动态范围(dB),maxLux和minLux是场景内最大和最下的光照强度值以Lux为单位。一般sensor通常设计成线性响应和大约60dB的有效动态范围。为了得到更大的动态范围,需要更改sensor响应函数,从线性变成非线性(通常对数)从而在sensor存储阶段直接压缩动态范围。

 

2.19 真实世界动态范围和LDR/HDR sensor类范围

 

         图2.19展示了一般sensor(亦称作LDR sensor)和HDR sensor的差别。图中dB值表示像素累积单元每秒存储电荷的最大最小eV比值。HDR的动态范围有80dB高于LDR。在这两类sensor之间,有另外一类,称作WDR,特征为sensor响应函数依然线性但动态范围高于LDR sensor。

转载于:https://www.cnblogs.com/yhszjm/p/11250923.html

Preface xi Acknowledgements xvii 1 Image Processing 1 1.1 Basic Definitions 2 1.2 Image Formation 3 1.3 Image Processing Operations 7 1.4 Example Application 9 1.5 Real-Time Image Processing 11 1.6 Embedded Image Processing 12 1.7 Serial Processing 12 1.8 Parallelism 14 1.9 Hardware Image Processing Systems 18 2 Field Programmable Gate Arrays 21 2.1 Programmable Logic 21 2.1.1 FPGAs vs. ASICs 24 2.2 FPGAs and Image Processing 25 2.3 Inside an FPGA 26 2.3.1 Logic 27 2.3.2 Interconnect 28 2.3.3 Input and Output 29 2.3.4 Clocking 30 2.3.5 Configuration 31 2.3.6 Power Consumption 32 2.4 FPGA Families and Features 33 2.4.1 Xilinx 33 2.4.2 Altera 38 2.4.3 Lattice Semiconductor 44 2.4.4 Achronix 46 2.4.5 SiliconBlue 47 2.4.6 Tabula 47 2.4.7 Actel 48 2.4.8 Atmel 49 2.4.9 QuickLogic 50 2.4.10 MathStar 50 2.4.11 Cypress 51 2.5 Choosing an FPGA or Development Board 51 3 Languages 53 3.1 Hardware Description Languages 56 3.2 Software-Based Languages 61 3.2.1 Structural Approaches 63 3.2.2 Augmented Languages 64 3.2.3 Native Compilation Techniques 69 3.3 Visual Languages 72 3.3.1 Behavioural 73 3.3.2 Dataflow 73 3.3.3 Hybrid 74 3.4 Summary 77 4 Design Process 79 4.1 Problem Specification 79 4.2 Algorithm Development 81 4.2.1 Algorithm Development Process 82 4.2.2 Algorithm Structure 83 4.2.3 FPGA Development Issues 86 4.3 Architecture Selection 86 4.3.1 System Level Architecture 87 4.3.2 Computational Architecture 89 4.3.3 Partitioning between Hardware and Software 93 4.4 System Implementation 96 4.4.1 Mapping to FPGA Resources 97 4.4.2 Algorithm Mapping Issues 100 4.4.3 Design Flow 101 4.5 Designing for Tuning and Debugging 102 4.5.1 Algorithm Tuning 102 4.5.2 System Debugging 104 5 Mapping Techniques 107 5.1 Timing Constraints 107 5.1.1 Low Level Pipelining 107 5.1.2 Process Synchronisation 110 5.1.3 Multiple Clock Domains 111 5.2 Memory Bandwidth Constraints 113 5.2.1 Memory Architectures 113 5.2.2 Caching 116 5.2.3 Row Buffering 117 5.2.4 Other Memory Structures 118 vi Contents 5.3 Resource Constraints 122 5.3.1 Resource Multiplexing 122 5.3.2 Resource Controllers 125 5.3.3 Reconfigurability 130 5.4 Computational Techniques 132 5.4.1 Number Systems 132 5.4.2 Lookup Tables 138 5.4.3 CORDIC 142 5.4.4 Approximations 150 5.4.5 Other Techniques 152 5.5 Summary 154 6 Point Operations 155 6.1 Point Operations on a Single Image 155 6.1.1 Contrast and Brightness Adjustment 155 6.1.2 Global Thresholding and Contouring 159 6.1.3 Lookup Table Implementation 162 6.2 Point Operations on Multiple Images 163 6.2.1 Image Averaging 164 6.2.2 Image Subtraction 166 6.2.3 Image Comparison 170 6.2.4 Intensity Scaling 171 6.2.5 Masking 173 6.3 Colour Image Processing 175 6.3.1 False Colouring 175 6.3.2 Colour Space Conversion 176 6.3.3 Colour Thresholding 192 6.3.4 Colour Correction 193 6.3.5 Colour Enhancement 197 6.4 Summary 197 7 Histogram Operations 199 7.1 Greyscale Histogram 199 7.1.1 Data Gathering 201 7.1.2 Histogram Equalisation 206 7.1.3 Automatic Exposure 210 7.1.4 Threshold Selection 211 7.1.5 Histogram Similarity 219 7.2 Multidimensional Histograms 219 7.2.1 Triangular Arrays 220 7.2.2 Multidimensional Statistics 222 7.2.3 Colour Segmentation 226 7.2.4 Colour Indexing 229 7.2.5 Texture Analysis 231 Contents vii 8 Local Filters 233 8.1 Caching 233 8.2 Linear Filters 239 8.2.1 Noise Smoothing 239 8.2.2 Edge Detection 241 8.2.3 Edge Enhancement 243 8.2.4 Linear Filter Techniques 243 8.3 Nonlinear Filters 248 8.3.1 Edge Orientation 250 8.3.2 Non-maximal Suppression 251 8.3.3 Zero-Crossing Detection 252 8.4 Rank Filters 252 8.4.1 Rank Filter Sorting Networks 255 8.4.2 Adaptive Histogram Equalisation 260 8.5 Colour Filters 261 8.6 Morphological Filters 264 8.6.1 Binary Morphology 264 8.6.2 Greyscale Morphology 269 8.6.3 Colour Morphology 270 8.7 Adaptive Thresholding 271 8.7.1 Error Diffusion 271 8.8 Summary 273 9 Geometric Transformations 275 9.1 Forward Mapping 276 9.1.1 Separable Mapping 277 9.2 Reverse Mapping 282 9.3 Interpolation 285 9.3.1 Bilinear Interpolation 286 9.3.2 Bicubic Interpolation 288 9.3.3 Splines 290 9.3.4 Interpolating Compressed Data 292 9.4 Mapping Optimisations 292 9.5 Image Registration 294 9.5.1 Feature-Based Methods 295 9.5.2 Area-Based Methods 299 9.5.3 Applications 305 10 Linear Transforms 309 10.1 Fourier Transform 310 10.1.1 Fast Fourier Transform 311 10.1.2 Filtering 318 10.1.3 Inverse Filtering 320 10.1.4 Interpolation 321 10.1.5 Registration 322 viii Contents 10.1.6 Feature Extraction 323 10.1.7 Goertzel’s Algorithm 324 10.2 Discrete Cosine Transform 325 10.3 Wavelet Transform 328 10.3.1 Filter Implementations 330 10.3.2 Applications of the Wavelet Transform 335 10.4 Image and Video Coding 336 11 Blob Detection and Labelling 343 11.1 Bounding Box 343 11.2 Run-Length Coding 346 11.3 Chain Coding 347 11.3.1 Sequential Implementation 347 11.3.2 Single Pass Algorithms 348 11.3.3 Feature Extraction 350 11.4 Connected Component Labelling 352 11.4.1 Random Access Algorithms 353 11.4.2 Multiple-Pass Algorithms 353 11.4.3 Two-Pass Algorithms 354 11.4.4 Single-Pass Algorithms 356 11.4.5 Multiple Input Labels 358 11.4.6 Further Optimisations 358 11.5 Distance Transform 359 11.5.1 Morphological Approaches 360 11.5.2 Chamfer Distance 360 11.5.3 Separable Transform 362 11.5.4 Applications 365 11.5.5 Geodesic Distance Transform 365 11.6 Watershed Transform 366 11.6.1 Flow Algorithms 366 11.6.2 Immersion Algorithms 367 11.6.3 Applications 369 11.7 Hough Transform 370 11.7.1 Line Hough Transform 371 11.7.2 Circle Hough Transform 373 11.7.3 Generalised Hough Transform 374 11.8 Summary 375 12 Interfacing 377 12.1 Camera Input 378 12.1.1 Camera Interface Standards 378 12.1.2 Deinterlacing 383 12.1.3 Global and Rolling Shutter Correction 384 12.1.4 Bayer Pattern Processing 384 Contents ix 12.2 Display Output 387 12.2.1 Display Driver 387 12.2.2 Display Content 390 12.3 Serial Communication 393 12.3.1 PS2 Interface 393 12.3.2 I2C 395 12.3.3 SPI 397 12.3.4 RS-232 397 12.3.5 USB 398 12.3.6 Ethernet 398 12.3.7 PCI Express 399 12.4 Memory 400 12.4.1 Static RAM 400 12.4.2 Dynamic RAM 401 12.4.3 Flash Memory 402 12.5 Summary 402 13 Testing, Tuning and Debugging 405 13.1 Design 405 13.1.1 Random Noise Sources 406 13.2 Implementation 409 13.2.1 Common Implementation Bugs 410 13.3 Tuning 412 13.4 Timing Closure 412 14 Example Applications 415 14.1 Coloured Region Tracking 415 14.2 Lens Distortion Correction 418 14.2.1 Characterising the Distortion 419 14.2.2 Correcting the Distortion 421 14.3 Foveal Sensor 424 14.3.1 Foveal Mapping 425 14.3.2 Using the Sensor 429 14.4 Range Imaging 429 14.4.1 Extending the Unambiguous Range 431 14.5 Real-Time Produce Grading 433 14.5.1 Software Algorithm 434 14.5.2 Hardware Implementation 436 14.6 Summary 439 References 441 Index 475 x Content
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值