基于FPGA的数字图像处理原理及应用(txt+pdf+epub+mobi电子书下载)


发布时间:2020-10-21 13:10:53

点击下载

作者:牟新刚

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

基于FPGA的数字图像处理原理及应用

基于FPGA的数字图像处理原理及应用试读:

前言

最近几年图像处理与机器视觉的发展非常迅速,图像处理领域也被认为是未来几十年最有前途的领域之一。

随着现代图像及视频处理技术的不断发展,人们对图像处理提出了新的要求,图像处理系统的硬件体积越来越小,实时性也越来越好。特别是最近几年,图像的分辨率和扫描频率都有了较大范围的提升,1080P分辨率的视频已经非常流行,2K甚至4K分辨率的图像也在火热发展中。目前,比较火热的VR技术更是需要双通道的高分辨率、高扫描频率的视频数据及处理能力。

这些新的要求给之前的图像处理平台带来了严重的挑战,传统的图像处理技术主要基于软件平台,一般运行在Windows平台的PC上。虽然现代PC的主频较高,但是用软件的串行化处理方法进行图像处理的效率还是非常低的。例如,用PC处理一个比较复杂的高分辨率图像处理算法花费半个小时或更多时间也是常见的事情。然而,对于实时图像处理,例如实时跟踪和视频显示,这个处理速度是远远不够的。

正是由于这个原因,嵌入式图像处理技术得到了广泛的应用,一些带有图像视频处理组件的嵌入式处理器开始在图像处理领域大显身手,例如,TI公司生产的达芬奇系列的DSP。这些组件实际上是图像处理硬核,但是大部分是标准化接口的硬核,针对数字视频、图像采样处理、视觉分析等应用进行了剪裁和优化。对于一个特定的图像处理任务,需要利用其内部的处理器来进行串行化软件处理。多核处理器的发展使得多个图像处理任务可以同时执行,也大大提高了图像处理的实时性。尽管这些嵌入式处理器的发展加快了图像处理和视频分析的实际应用,但其本质上仍为软件处理的串行方式,难以满足通用图像处理中大数据量计算的需求。

随着成像传感器技术和信号处理技术的迅猛发展,图像的分辨率、帧频和像元有效位数越来越高,图像处理算法越来越复杂,图像处理结果的实时性要求越来越高,基于PC和DSP软件平台的图像处理系统已难以满足要求。由于图像处理算法天然的并行性,FPGA的加入给图像处理带来了新的活力,特别是针对图像处理底层一些并行特性的图像处理算法。例如二维卷积,FPGA可以保证在极低主频下得到比DSP平台快得多的处理速度,利用其流水线技术可以在每个时钟输出一个处理后像素。然而,FPGA并不适合进行串行化处理算法和部分其他的上层算法。因此,目前DSP+FPGA平台是图像处理平台的主流。此外,FPGA在一些低成本的机器视觉领域也得到了广泛的应用。例如,著者所在实验室研究的利用线列CCD和激光实现高精度位移测量项目,该项目利用FPGA实现CCD时序驱动、A/D转换和测量算法实现,并实现高速接口与上位机。

在FPGA上实现一个图像处理算法包括确定具体算法和对其进行并行性改造、将算法中计算和存储需求与FPGA内部可用资源相映射、将算法映射到硬件结构上等步骤。然而,目前只有很少的公开资料可供初学者学习该领域的知识,可以让初学者深入了解设计思路、过程、代码的文献资料更难找到。

为改变这一现状,本书从FPGA图像处理理论和分析入手,重点讲解图像处理算法移植到FPGA中的基本思路和方法,突出工程应用。每一章均附有C/C++实现代码,同时用循序渐进、自顶向下的方式设计FPGA算法模块,针对每一个模块设计了详细的实现框图,确保读者能理解算法设计的原理。此外,每个算法都配有Verilog实现方法,并给出仿真结果。本书还提出了一个通用的利用Modelsim和VS实现图像处理的仿真测试平台。

本书内容概述如下:(1)第1~5章是基础章节,重点介绍数字图像处理和FPGA程序设计的基础知识。

第1章简单介绍了图像处理的基础知识,包括图像处理的发展现状,还地介绍了图像从获取到显示存储的基本流程。

第2章首先介绍了FPGA的发展现状,生产厂家及其开发流程。接着介绍了基于FPGA的图像处理的基本开发流程。

第3章主要介绍了在FPGA中应用的编程语言。本章并没有详细介绍Verilog语法,而是从工程应用的角度介绍常用的设计方法和实例。

第4章主要介绍了把软件算法映射到FPGA常用的技巧。首先介绍了应用较广泛的流水线设计方法,接着介绍了FPGA硬件计算技术,包括一些常用的计算转换、查找表、浮点计算、Cordic计算等方法。最后介绍了在图像处理中用途非常多的存储器映射,并提出了一些其他设计技巧。

第5章首先简要介绍了仿真测试软件Modelsim的使用,接着重点介绍了一个通用的视频图像处理仿真测试系统。这个测试系统包括完整的视频模拟、视频捕获,以及testbench设计,并结合基于MFC的VC上位机来实现测试系统的搭建。(2)第6~10章主要介绍算法实现。

第6章介绍直方图操作,主要介绍几种常用直方图操作的FPGA实现:直方图统计、直方图均衡、直方图规定及直方图线性拉伸。

第7章介绍基于图像处理的线性滤波。首先,介绍了均值滤波算法、高斯滤波算法、Sobel算子及FFT等常见的几种线性滤波原理。其次,介绍了均值滤波算法和Sobel算子的FPGA实现。

第8章主要介绍基于图像处理的非线性滤波算法,包括排序滤波的基本原理及其FPGA实现方法。

第9章主要介绍基于图像处理的形态学滤波算法,包括形态学滤波的基本概念,包括形态学膨胀、形态学腐蚀、开运算及闭运算等。重点介绍了基于FPGA的Tophat滤波的原理及实现方法。

第10章主要介绍基于图像处理的常见的分割算法,包括全局阈值分割、局部自适应阈值分割及Canny算子。重点介绍基于FPGA的局部自适应阈值分割和Canny算子的设计与实现。

第11章主要介绍与视频和图像处理相关的输入/输出接口,包括CameraLink、火线接口、USB接口、千兆以太网等视频输入接口和CVT标准,以及VGA,PAL,DVI,HDMI等视频输出接口。其中,给出了VGA和PAL接口的Verilog代码实现。

为了确保读者能够快速地掌握FPGA图像处理设计方法,本书提供了算法章节的全部源代码。

本书由武汉理工大学机电工程学院牟新刚、周晓和郑晓亮合著,全书由牟新刚统稿。

本书参考了相关著作及资料的部分内容和图表,部分技术资料取材于互联网,在此对这些文献的作者一并表示谢意。尽管我们为编写本书付出了心血和努力,但仍然存在一些疏漏及欠妥之处,敬请读者批评指正。著者2016.5第1章图像处理基础1.1 数字图像处理简介

光作用于视觉器官,使其感受细胞兴奋,其信息经视觉神经系统加工后便产生视觉(vision)。通过视觉,人和动物感知外界物体的大小、明暗、颜色、动静,获得对机体生存具有重要意义的各种信息。至少有80%以上的外界信息经视觉获得,视觉可以说是人和动物最重要的感觉。

图像作为人类感知世界的视觉基础,是人类获取信息、表达信息和传递信息的重要手段。数字图像处理即用计算机对图像进行处理的发展历史并不长。数字图像处理技术源于20世纪20年代时通过海底电缆从英国伦敦到美国纽约传输了一幅照片,采用了数字压缩技术。然而,由于当时的计算技术和存储空间的限制,基于计算机的图像处理并没有得到很快的发展。直到20世纪50年代,当时的美国国家标准局的扫描仪第一次被加入一台计算机中,用于进行边缘增强和模式识别的早期研究。在20世纪60年代,处理大量对从卫星和空间探索取得的大尺寸图像的需求直接推动了美国航空航天局对图像处理的研究。与此同时,高能粒子的物理研究,需要对大量的云室照片进行处理以捕获感兴趣的事件。随着计算机计算能力的增加及计算成本的降低,数字图像处理的应用范围呈爆炸式增长,从工业检测到医疗影像,都称为数字图像处理的应用领域。1.1.1 图像采样

多数图像传感器(如CCD等)的输出是连续的电压波形信号,这些波形的幅度和空间特性都与其所感知的光照有关。为了产生一幅数字图像,我们需要把连续的感知数据转换为数字形式,这个转换的过程被称为图像采样和量化。

采样和量化的过程如图1-1所示。图1-1 图像采样过程

采样频率是指1秒内采样的次数(即图1-1中采样间隔的倒数),它反映了采样点之间的间隔大小。采样频率越高,得到的图像样本越逼真,图像的质量越高,但要求的存储量也越大。图1-2(a)、(b)、(c)是采样间隔分别为16s、32s、64s采样所获得的图像。图1-2 以不同分辨率采样获得的数字图像

在进行采样时,采样点间隔大小的选取很重要,它决定了采样后的图像能否真实地反映原图像的程度。一般来说,原图像中的画面越复杂,色彩越丰富,则采样间隔应越小。由于二维图像的采样是一维的推广,根据信号的采样定理,要从取样样本中精确地复原图像,可得到图像采样的奈奎斯特(Nyquist)定理:图像采样的频率必须大于或等于源图像最高频率分量的两倍。1.1.2 图像量化

量化是指要使用多大范围的数值来表示图像采样之后的每一个点。量化的结果是图像能够容纳的颜色总数,它反映了采样的质量。

例如:如果以4位存储一个点,就表示图像只能有16种颜色;若16采用16位存储一个点,则有2=65536种颜色。因此,量化位数越来越大,表示图像可以拥有更多的颜色,自然可以产生更为细致的图像效果。但是,也会占用更大的存储空间。两者的基本问题都是视觉效果和存储空间的取舍。图1-3给出了量化级数分别为2,8,64所获得的数字图像。图1-3 以不同的量化深度采样获得的数字图像

在实际应用中,常常用8位,24位和32位数字来存储一个像素。8位图像也就是常说的灰度图像,这个灰度图像包含了一幅图像的主要亮度信息。一般情况下,对数字图像进行算法处理,通常会将图像转换为灰度图像进行处理。24位图像也就是常说的真彩图像,包括RGB 3个通道的颜色信息。32位的图像还包含了Alpha通道,用来表示图像的透明度。此外,在红外图像的处理中,通常用14位的数字来表示一个像素。

从图像传感器出来的信号经过采样和量化之后,便获得了一系列的数字图像。这个数字图像通常情况下被取样为一个二维阵列f(x,y),该阵列包含M列和N行,其中(x,y)是离散坐标,M也就是所说的图像宽度,N是图像的高度。(x,y)的取值范围为

0≤x≤M-1,0≤y≤N-1

通常情况下,用一个二维矩阵来表示这个数字图像,如图1-4所示。

一般情况下,数字图像的原点位于左上角。数字图像的扫描方式是从左上角开始向右扫描,扫描完一行之后转到下一行的最左侧开始扫描,一直到达图像的右下角,即x坐标轴方向为自左向右,y坐标轴方向为自上到下。这与传统的笛卡儿坐标系还是有区别的,如图1-5所示。图1-4 用矩阵表示的二维数字图像图1-5 数字图像的坐标轴方向1.1.3 数字图像处理

获得图像的下一步就是尽快对获得数字图像进行预期目的的处理。对一幅图像来说,从一个状态得到另一个状态的图像处理操作序列称为图像处理算法。

一般来说,数字图像处理常用方法有以下几种:(1)图像变换。由于图像阵列很大,直接在空间域中进行处理,涉及计算量很大。因此,往往采用各种图像变换的方法,例如傅里叶变换、沃尔什变换、离散余弦变换等间接处理技术,将空间域的处理转换为变换域处理,不仅可减少计算量,而且可获得更有效的处理(如傅里叶变换可在频域中进行数字滤波处理)。新兴研究的小波变换在时域和频域中都具有良好的局部化特性,它在图像处理中也有着广泛而有效的应用。(2)图像编码压缩。图像编码压缩技术可减少描述图像的数据量(即比特数),以便节省图像传输、处理时间和减少所占用的存储器容量。压缩可以在不失真的前提下获得,也可以在允许的失真条件下进行。编码是压缩技术中最重要的方法,它在图像处理技术中是发展最早且比较成熟的技术。(3)图像增强和复原。图像增强和复原的目的是为了提高图像的质量,例如,去除噪声及提高图像的清晰度等。图像增强不考虑图像降质的原因,突出图像中所感兴趣的部分。例如强化图像高频分量,可使图像中物体轮廓清晰、细节明显,以及强化低频分量可减少图像中噪声影响。图像复原要求对图像降质的原因有一定的了解,一般来说,应根据降质过程建立“降质模型”,再采用某种滤波方法,恢复或重建原来的图像。(4)图像分割。图像分割是数字图像处理中的关键技术之一。图像分割是将图像中有意义的特征部分提取出来,其有意义的特征包括图像中的边缘、区域等,这是进一步进行图像识别、分析和理解的基础。虽然已研究出不少边缘提取、区域分割的方法,但是还没有一种普遍适用于各种图像的有效方法。因此,对图像分割的研究还在不断深入之中,是图像处理中研究的热点之一。(5)图像描述。图像描述是图像识别和理解的必要前提。作为最简单的二值图像可采用其几何特性描述物体的特性,一般图像的描述方法采用二维形状描述,它有边界描述和区域描述两类方法。对于特殊的纹理图像可采用二维纹理特征描述。随着图像处理研究的深入发展,已经开始进行三维物体描述的研究,提出了体积描述、表面描述、广义圆柱体描述等方法。(6)图像分类(识别)。图像分类(识别)属于模式识别的范畴,其主要内容是图像经过某些预处理(增强、复原、压缩)后,进行图像分割和特征提取,从而进行判决分类。图像分类常采用经典的模式识别方法,有统计模式分类和句法(结构)模式分类,近年来新发展起来的模糊模式识别和人工神经网络模式分类在图像识别中也越来越受到重视。1.2 数字图像处理系统1.2.1 图像处理系统构成

一个典型的图像处理系统由图像传感器、图像编码、图像处理器、显示设备、存储设备及控制设备几大部分组成,如图1-6所示。图1-6 典型的图像处理系统(1)图像传感器。图像传感器负责采集光照信息,常用的图像传感器有CCD和CMOS等。在实际应用中,获取图像的方法不一定是传感器,可能是一个现成的图像采集卡、摄像机、数码相机、扫描仪或者一个专用的图像设备等。这一设备将待处理的图像场景或光照信息转换为数字或者模拟信号进行下一步的处理。(2)图像编码。图像编码负责对图像传感器输出的图像进行采样和量化(对于模拟输出的图像传感器),将图像变换为适合图像处理器处理的数字形式。然后,将编码后的结果送入图像处理器进行进一步的处理。(3)图像处理器。图像处理器是整个图像处理系统的核心,图像处理器将以取样和量化的结果作为数据源,根据图像处理任务的需求,对图像进行一系列的变换,例如图像预处理、图像分割及目标识别等。图像处理器还负责与图像显示设备、图像存储设备及控制设备进行交互。

图像处理器可以是以×86为硬件平台的PC,也可以是一个嵌入式图像处理器,例如,TI公司的达芬奇系列专用数字视频处理器、ARM处理器及本书所介绍的FPGA等。部分处理器有一系列现成的图像处理软件包,可以大大减轻开发的工作量。例如,如果图像处理系统以×86作为硬件平台,处理系统就可以以Windows操作系统为软件平台,并在其基础上采用已经开发好的图像处理软件。(4)显示设备。图像显示设备负责对图像进行显示。被显示的图像可能是最终的处理结果,或者使原始图像,或者是中间处理结果。这个显示设备可以是一个视频显示器、打印机,或者使Internet上的其他设备等。(5)存储设备。图像存储设备负责对视频或图像进行保存。(6)控制设备。图像控制设备在一个图像处理系统中不一定是必需的。控制设备通常应用在一些专用的场合,例如工业自动化领域的自动控制系统。图像处理的算法往往要完成一个特定的检测目的,图像处理器根据图像处理的结果进行决策。决策的结果被输出到控制设备用来完成一些控制目的,这个控制设备可能是电机、语音提示系统、报警系统或者是军工领域的一些控制设备等。1.2.2 原始图像获取

和其他信息的获取方式一致,图像的感知也需要用传感器来完成,图像传感器负责将感受到的光信号转换为电子信号。尽管光电传感器有各种各样的型号,其基本原理都是相同的:入射光子通过光电效应使硅半导体之内的电子得到释放,这些电子在曝光时间之内被累加,然后被转换为电压之后读出。

1.可见光传感器

对于可见光的图像成像,目前的图像传感器市场主要被CCD(Charge Coupled Device,电荷耦合元件)和CMOS(Complementary Metal-Oxide Semiconductor,金属氧化物半导体元件)所占据。

1)CCD传感器

CCD于1969年在贝尔试验室研制成功,之后由日本的公司开始批量生产,其发展历程已经将近40年多。

CCD传感器的基本单元是MOS电容器。CCD内部的门电路的三相中的一个被加上偏压,在偏转的电路下面的硅衬底上产生势阱,即MOS电容器。该势阱吸引和存储光电子,直到它们被读出为止。通过在电路下一相加偏压,电荷被传递到下一个单元。该单元不断地重复,并连续地把电荷从每个像素传递到读出放大器并将其转换为电压信号。该读出过程的特点是像素必须被顺序读出。CCD的内部结构如图1-7所示。图1-7 典型CCD传感器内部结构

CCD又可以分为以下几种:(1)面阵CCD。面阵CCD的结构一般有3种。第一种是帧转性CCD。它由上、下两部分组成,上半部分是集中了像素的光敏区域,下半部分是被遮光而集中垂直寄存器的存储区域。其优点是结构较简单并容易增加像素数,缺点是CCD尺寸较大,易产生垂直拖影。第二种是行间转移性CCD。它是目前CCD的主流产品,像素群和垂直寄存器在同一平面上,其特点是在1个单片上、价格低并容易获得良好的摄影特性。第三种是帧行间转移性CCD。它是第一种和第二种的复合型,结构复杂,但能大幅度减少垂直拖影并容易实现可变速电子快门等优点。(2)线列CCD。线列CCD用一排像素扫描过图片,进行三次曝光——分别对应于红、绿、蓝三色滤镜,正如名称所表示的,线性传感器是捕捉一维图像。初期应用于广告界拍摄静态图像、线性阵列及处理高分辨率的图像时,受局限于非移动的连续光照的物体。(3)三线传感器CCD。在三线传感器中,三排并行的像素分别覆盖RGB滤镜,当捕捉彩色图片时,完整的彩色图片由多排的像素来组合成。三线CCD传感器多用于高端数码机,以产生高的分辨率和光谱色阶。(4)交织传输CCD。这种传感器利用单独的阵列摄取图像和电量转化,允许在拍摄下一图像时在读取当前图像。交织传输CCD通常用于低端数码相机、摄像机和拍摄动画的广播拍摄机。(5)全幅面CCD。此种CCD具有更多电量处理能力、更好的动态范围、低噪声和传输光学分辨率,全幅面CCD允许即时拍摄全彩图片。全幅面CCD由并行浮点寄存器、串行浮点寄存器和信号输出放大器组成。全幅面CCD曝光是由机械快门或闸门控制去保存图像,并行寄存器用于测光和读取测光值。图像投射到作投影幕的并行阵列上。此元件接收图像信息并把它分成离散的由数目决定量化的元素。这些信息流就会由并行寄存器流向串行寄存器。此过程反复执行,直到所有的信息传输完毕。然后,系统进行精确的图像重组。

2)CMOS传感器

CMOS传感器使用光电二极管检测光照。它并不是直接将电荷传输至输出端,而是每个像素有一个进行局部放大的嵌入式放大器。这意味着电荷被保留至传感元件本身,因此需要一个重置晶体管和连线连接至输出。CMOS传感器的这种特点使其对像素进行单独寻址成为可能,从而更容易读出局部阵列或者随机存取像素。

CMOS内部原理如图1-8所示。CMOS传感器按为像素结构分被动式与主动式两种。(1)被动式。被动式像素结构(Passive Pixel Sensor,PPS),又称为无源式。它由一个反向偏置的光敏二极管和一个开关管构成。光敏二极管本质上是一个由P型半导体和N型半导体组成的PN结,它可等效为一个反向偏置的二极管和一个MOS电容并联。当开关管开启时,光敏二极管与垂直的列线(Column Bus)连通。位于列线末端的电荷积分放大器读出电路(Charge Integrating Amplifier)保持列线电压为一常数,当光敏二极管存储的信号电荷被读出时,其电压被复位到列线电压水平。与此同时,与光信号成正比的电荷由电荷积分放大器转换为电荷输出。图1-8 CMOS内部原理(2)主动式。主动式像素结构(Active Pixel Sensor,APS),又称为有源式。几乎在CMOS PPS像素结构发明的同时,人们很快认识到在像素内引入缓冲器或放大器可以改善像素的性能,在CMOS APS中每一像素内都有自己的放大器。集成在表面的放大晶体管减少了像素元件的有效表面积,降低了“封装密度”,使40%~50%的入射光被反射。这种传感器的另一个问题是,如何使传感器的多通道放大器之间有较好的匹配,这可以通过降低残余水平的固定图形噪声较好地实现。由于CMOS APS像素内的每个放大器仅在此读出期间被激发,因此CMOS APS的功耗比CCD图像传感器的还小。(3)填充因数。填充因数(Fill Factor)又称为充满因数,它指像素上的光电二极管相对于像素表面的大小。量子效率(Quantum efficiency)是指一个像素被光子撞击后实际和理论最大值电子数的归一化值,被动式像素结构的电荷填充因数通常可达到70%。因此,量子效率高。但光电二极管积累的电荷通常很小,很易受到杂波干扰。再说,像素内部又没有信号放大器,只依赖垂直总线终端放大器,因而输出的信号杂波很大,其S/N比低,更因不同位置的像素杂波大小不一样(固定图形噪声波FPN)而影响整个图像的质量。而主动性像素结构与被动式相比,它在每个像素处增加了一个放大器,可以将光电二极管积累的电荷转换成电压进行放大,大大提高了S/N比值,从而提高了传输过程中抗干扰的能力。但由于放大器占据了过多的像素面积,因而它的填充因数相对较低,一般为25%~35%。

3)CCD与CMOS的区别

CMOS针对CCD最主要的优势就是非常省电,不像由二极管组成的CCD,CMOS电路几乎没有静态电量消耗,只有在电路接通时才有电量的消耗。这就使得CMOS的耗电量只有普通CCD的1/3左右,这有助于改善人们心目中数码相机是“电老虎”的不良印象。CMOS主要问题是在处理快速变化的影像时,由于电流变化过于频繁而过热。暗电流抑制得好就问题不大,如果抑制得不好就十分容易出现杂点。

此外,CMOS与CCD的图像数据扫描方法有很大的差别。例如,如果分辨率为300万像素,那么CCD传感器可连续扫描300万个电荷,扫描的方法非常简单,就好像把水桶从一个人传给另一个人,并且只有在最后一个数据扫描完成之后才能将信号放大。CMOS传感器的每个像素都有一个将电荷转化为电子信号的放大器。因此,CMOS传感器可以在每个像素基础上进行信号放大。采用这种方法可节省任何无效的传输操作,只需少量能量消耗就可以进行快速数据扫描,同时噪声也有所降低。这就是佳能的像素内电荷完全转送技术。CCD与CMOS传感器是被普遍采用的两种图像传感器,两者都是利用感光二极管(photodiode)进行光电转换,将图像转换为数字数据,而其主要差异是数字数据传送的方式不同。

CCD传感器中每一行中每一个像素的电荷数据都会依次传送到下一个像素中,由最底端部分输出,再经由传感器边缘的放大器进行放大输出;而在CMOS传感器中,每个像素都会邻接一个放大器及A/D转换电路,用类似内存电路的方式将数据输出。造成这种差异的原因在于:CCD的特殊工艺可保证数据在传送时不会失真,各个像素的数据可汇聚至边缘再进行放大处理;而CMOS工艺的数据在传送距离较长时会产生噪声。因此,必须先放大后再整合各个像素的数据。

由于数据传送方式不同,因此CCD与CMOS传感器在效能与应用上也有很多差异,这些差异如下:(1)灵敏度差异。由于CMOS传感器的每个像素由4个晶体管与1个感光二极管构成(含放大器与A/D转换电路),使得每个像素的感光区域远小于像素本身的表面积,因此在像素尺寸相同的情况下,CMOS传感器的灵敏度低于CCD传感器。(2)成本差异。由于CMOS传感器采用一般半导体电路最常用的CMOS工艺,可以轻易地将周边电路(如AGC、CDS、Timing Generator或DSP等)集成到传感器芯片中。因此,可以节省外围芯片的成本。除此之外,由于CCD采用电荷传递的方式传送数据,只要其中有一个像素不能运行,就会导致一整排的数据不能传送。因此,控制CCD传感器的成品率比控制CMOS传感器的成品率困难很多。即使有经验的厂商也很难在产品问世的半年内突破50%的水平,CCD传感器的成本高于CMOS传感器。(3)分辨率差异。CMOS传感器的每个像素都比CCD传感器复杂,其像素尺寸很难达到CCD传感器的水平。因此,当比较相同尺寸的CCD与CMOS传感器时,CCD传感器的分辨率通常会优于CMOS传感器的水平。例如,市面上CMOS传感器最高可达到210万像素的水平(OmniVision的 OV2610,2002年6月推出),其尺寸为1/2英寸,像素尺寸为4.25μm,但Sony在2002年12月推出了ICX452,其尺寸与OV2610相差不多(1/1.8英寸),但分辨率却能高达513万像素,像素尺寸也只有2.78μm的水平。(4)噪声差异。由于CMOS传感器的每个感光二极管都需搭配一个放大器,而放大器属于模拟电路,很难让每个放大器所得到的结果保持一致,因此与只有一个放大器放在芯片边缘的CCD传感器相比,CMOS传感器的噪声就会增加很多,影响图像品质。(5)功耗差异。CMOS传感器的图像采集方式为主动式,感光二极管所产生的电荷会直接由晶体管放大输出,但CCD传感器为被动式采集,需外加电压让每个像素中的电荷移动,而此外加电压通常需要达到12~18V;因此,CCD传感器除了在电源管理电路设计上的难度更高(需外加 power IC),高驱动电压更使其功耗远高于CMOS传感器的水平。例如,OmniVision推出的OV7640(1/4英寸、VGA),在30 fps的速度下运行,功耗仅为40mW;而致力于低功耗CCD传感器的Sanyo公司推出的1/7英寸、CIF等级的产品,其功耗却仍保持在90mW以上。因此,CCD发热量比CMOS大,不能长时间在阳光下工作。

综上所述,CCD传感器在灵敏度、分辨率、噪声控制等方面都优于CMOS传感器,而CMOS传感器则具有低成本、低功耗及高整合度的特点。不过,随着CCD与CMOS传感器技术的进步,两者的差异有逐渐缩小的态势,例如,CCD传感器一直在功耗上作改进,以应用于移动通信市场(这方面的代表者为Sanyo);CMOS传感器则改善分辨率与灵敏度方面的不足,以应用于更高端的图像产品。

2.其他传感器

红外辐射是指波长为0.75~1000μm,介于可见光波段与微波波段之间的电磁辐射。红外辐射的存在是由天文学家赫胥尔在1800年进行棱镜试验时首次发现。红外辐射具有以下特点及应用:(1)所有温度在热力学绝对零度以上的物体都自身发射电磁辐射,而一般自然界物体的温度所对应的辐射峰值都在红外波段。因此,利用红外热像观察物体无需外界光源,相比可见光具有更好的穿透烟雾的能力。红外热像是对可见光图像的重要补充手段,广泛用于红外制导、红外夜视、安防监控和视觉增强等领域。(2)根据普朗克定律,物体的红外辐射强度与其热力学温度直接相关。通过检测物体的红外辐射可以进行非接触测温,具有响应快、距离远、测温范围宽、对被测目标无干扰等优势。因此,红外测温特别是红外热像测温在预防性检测、制程控制和品质检测等方面具有广泛应用。(3)热是物体中分子、原子运动的宏观表现,温度是度量其运动剧烈程度的基本物理量之一。各种物理、化学现象中,往往都伴随热交换及温度变化。分子化学键的振动、转动能级对应红外辐射波段。因此,通过检测物体对红外辐射的发射与吸收,可用于分析物质的状态、结构、状态和组分等。(4)红外辐射具有较强的热效应,因此广泛地用于红外加热等。

现代红外技术的发展,是从20世纪40年代光子型红外探测器的出现开始。第一个实用的现代红外探测器是二战中德国研制的PbS探测器,后续又出现了PbSe、PbTe等铅盐探测器。在20世纪50年代后期研制出InSb探测器,这些本征型探测器的响应波段局限于8μm之内。为扩大波段范围,发展了多种掺杂非本征型器件,如Ge:Au、Ge:Hg等,响应波长拓展到150μm以上。到20世纪60年代末,以HgCdTe(MCT)为代表的三元化合物单元探测器基本成熟,探测率已接近理论极限水平。20世纪70年代发展了多元线列红外探测器。20世纪80年代英国又研制出一种新型的扫积型MCT器件(SPRITE探测器),将探测功能与信号延时、叠加和电子处理功能结合为一体。之后,重点发展了所谓的第三代红外探测技术,主要包括大阵列凝视型焦平面、超长线列扫描型焦平面及非制冷型焦平面探测器。最近20年,3~5μm波段的InSb和MCT焦平面探测器,8~12μm波段的MCT焦平面探测器,以及8~14μm波段的非制冷焦平面探测器成为主流技术。同时,也先后出现了量子阱探测器(QWIP)、第二型超晶格探测器(T2SL),以及多色探测器、高工作温度(HOT)MCT探测器等新技术并逐渐走向实用化。特别是非制冷焦平面探测器技术,在体积、成本方面大幅改善,使得红外热像仪真正大规模走进工业和民用领域。

非制冷红外焦平面探测器由许多MEMS微桥结构的像元在焦平面上二维重复排列构成,每个像元对特定入射角的热辐射进行测量。像元常用的制作材料有非晶硅、多晶硅和氧化钒,这里以非晶硅红外探测器为例说明非制冷红外探测器的基本原理,如图1-9所示。图1-9 非晶硅红外探测器工作原理(1)红外辐射被像元中的红外吸收层吸收后引起温度变化,进而使非晶硅热敏电阻的阻值变化。(2)非晶硅热敏电阻通过MEMS绝热微桥支撑在硅衬底上方,并通过支撑结构与制作在硅衬底上的COMS独处电路相连。(3)CMOS电路将热敏电阻阻值变化转变为差分电流并进行积分放大,经采样后得到红外热图像中单个像元的灰度值。

为了提高探测器的响应率和灵敏度,要求探测器像元微桥具有良好的热绝缘性,同时为保证红外成像的帧频,需使像元的热容尽量小以保证足够小的热时间常数。因此,MEMS像元一般设计成如图1-10所示的结构。利用细长的微悬臂梁支撑以提高绝热性能,热敏材料制作在桥面上,桥面尽量轻、薄以减小热质量。在衬底制作反射层,与桥面之间形成谐振腔,提高红外吸收效率。例如,元微桥通过悬臂梁的两端与衬底内的CMOS输出电路连接。因此,非制冷红外焦平面探测器是CMOS-MEMS单体集成的大阵列器件。图1-10 非晶硅红外探测器结构

3.色彩分离技术

不管采用什么样的技术,传感器阵列上的所有感光点都是对灰度级强度敏感的,灰度级从最暗(黑色)到最亮(白色)。这些感光点对于灰度级敏感的程度被称为“位深度”。因此,8比特的像素可以8分辨出2即256个渐变的灰度。而12比特的像素则可以分辨出4096个渐变的灰度。

整个感光阵列上面有几层色彩过滤材料,将每个像素的感光点分为几个对颜色敏感的“子像素”。这种安排方式允许对每一个像素感光点测量不同的颜色强度。这样,每一个像素感光点上面的颜色就可以看做该点的红色,蓝色和绿色透光量的叠加和。位深度越大,则可以产生的RGB空间内的颜色就越多。例如,24位颜色(RGB各占8位)24可以产生2即大约1670万种颜色。

实际中常见的色彩分离技术主要是拜尔分离技术。

为了恰当地描绘彩色的图像,传感器需要每个像素位置有3个颜色样本——最常见的是红色、绿色和蓝色。但是,如果在每个相机里面放置3个独立的传感器,在成本方面又是无法接受的(尽管这种技术越来越实用化)。更重要的是,当传感器的分辨率增加到500万以上时,就更加有必要利用某种图像压缩算法来避免在某个像素输出3字节(或者更坏的情况,在某些情况下,对于更高分辨率的传感器,可能需要输出3个12位的字)。

一个最常用的压缩方法是使用颜色过滤阵列(Color Filter Array,CFA)。这个阵列仅仅测量像素点的一个分量。然后,通过图像处理器对其进行插值得到其他颜色的分量,这样看起来“好像”每个像素点测量了三种颜色。

当今最流行的CFA是拜尔模式Bayer Pattern,如图1-11所示,这种方法最早是由柯达公司发明的,其原理是利用人眼对绿色的分辨率高于对红色和蓝色的分辨率这一事实。在拜尔颜色过滤矩阵里,绿色的过滤点数是蓝色或者红色过滤点的2倍。这就产生了一种输出模式,也就是4∶2∶2格式,即每发送2个红色像素和2个蓝色像素就要发送4个绿色像素。图1-11 拜尔模式图像传感器阵列

4.色彩空间“色彩空间”一词源于西方的“Color Space”,又称为“色域”。在色彩学中,人们建立了多种色彩模型,以一维、二维、三维甚至四维空间坐标来表示某一色彩,这种坐标系统所能定义的色彩范围即色彩空间。

常见的色彩空间有以下几种。(1)RGB。(2)CMY和CMYK。(3)HIS。(4)YUV。(5)YCbCr。

1)RGB空间

RGB色彩空间是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化及它们相互之间的叠加得到各种各样的颜色的,RGB代表红、绿、蓝三个通道的颜色。这个标准几乎包括了人类视力能感知的所有颜色,是目前运用最广的色彩空间之一。

若将RGB单位立方体沿主对角线进行投影,可得到六边形。这样,原来沿主对角线的灰色都投影到中心白色点,而红色点(1,0,0)则位于右边的角上,绿色点(0,1,0)位于左上角,蓝色点(0,0,1)则位于左下角,如图1-12所示。

2)CMY和CMYK彩色空间

CMY是青(Cyan)、洋红或品红(Magenta)和黄(Yellow)三种颜色的简写,是相减混色模式,用这种方法产生的颜色之所以称为相减色,是因为它减少了为视觉系统识别颜色所需要的反射光。由于彩色墨水和颜料的化学特性,使得用三种基本色得到的黑色不是纯黑色,因此在印刷术中,常常添加一种真正的黑色(black ink),这种模型称为CMYK模型,广泛应用于印刷术。每种颜色分量的取值范围为0~100;CMY常用于彩色打印。

CMY模型与RGB模型的关系如图1-13所示。图1-12 RGB色彩模型图1-13 CMY色彩模型与RGB色彩模型的关系

3)HSI彩色空间

HSI模型是美国色彩学家孟塞尔(H.A.Munseu)于1915年提出的,它反映了人的视觉系统感知彩色的方式,以色调、饱和度和亮度三种基本特征量来感知颜色。(1)色调H(Hue):与光波的波长有关,它表示人的感官对不同颜色的感受,例如红色、绿色、蓝色等;它也可表示一定范围的颜色,例如暖色、冷色等。(2)饱和度S(Saturation):表示颜色的纯度,纯光谱色是完全饱和的,加入白光会稀释饱和度。饱和度越大,颜色看起来就越鲜艳,反之亦然。(3)亮度I(Intensity):对应成像亮度和图像灰度,表示颜色的明亮程度。

HSI模型的建立基于两个重要的事实:

① I分量与图像的彩色信息无关。

② H和S分量与人感受颜色的方式是紧密相连的。这些特点使得HSI模型非常适合彩色特性检测与分析。图1-14 HIS色彩模型

HSI颜色模型可用双六棱锥表示,如图1-14所示。I是强度轴,色调H的角度范围为[0,2π],其中,纯红色的角度为0,纯绿色的角度为2π/3,纯蓝色的角度为4π/3。饱和度S是颜色空间任一点与I轴的距离。若用圆表示RGB模型的投影,则HSI色度空间为双圆锥3D表示。

4)YUV色彩空间

YUV是被欧洲电视系统所采用的一种颜色编码方法(属于PAL),是PAL和SECAM模拟彩色电视制式采用的颜色空间。在现代彩色电视系统中,通常采用三管彩色摄影机或彩色CCD摄影机进行取像,然后把取得的彩色图像信号经分色、分别放大校正后得到RGB,再经过矩阵变换电路得到亮度信号Y和两个色差信号B-Y(即U)、R-Y(即V),最后发送端将亮度和色差三个信号分别进行编码,用同一信道发送出去。这种色彩的表示方法就是所谓的YUV色彩空间表示。采用YUV色彩空间的重要性是它的亮度信号Y和色度信号U、V是分离的。

其中“Y”表示明亮度(Luminance或Luma),也就是灰阶值;而“U”和“V”表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。“亮度”是透过RGB输入信号来建立的,方法是将RGB信号的特定部分叠加到一起。“色度”则定义了颜色的两个方面——色调与饱和度,分别用Cr和Cb来表示。其中,Cr反映了RGB输入信号红色部分与RGB信号亮度值之间的差异。而Cb反映的是RGB输入信号蓝色部分与RGB信号亮度值之间的差异。

YUV模型与RGB色彩模型的关系可以用以下两个矩阵来表示:

式(1-1)表示YUV模型与RGB模型的相互转换。

5)YCbCr色彩空间

YCbCr是在世界数字组织视频标准研制过程中作为ITU-R BT.601 建议的一部分,其中,Y是指亮度分量,Cb指蓝色色度分量,Cr指红色色度分量。人的肉眼对视频的Y分量更敏感,因此,在通过对色度分量进行子采样减少色度分量后,肉眼将察觉不到图像质量的变化。

YCbCr模型其实是YUV模型经过缩放和偏移的翻版。其中,Y与YUV中的Y含义一致。Cb,Cr同样都指色彩,只是在表示方法上不同而已。在YUV家族中,YCbCr是在计算机系统中应用最多的成员,其应用领域很广泛,JPEG,MPEG均采用此格式。一般人们所讲的YUV大多是指YCbCr。

YCbCr模型与RGB色彩模型的关系可以用以下两个矩阵来表示:

式(1-2)表示YCbCr模型与RGB模型的相互转换1.2.3 图像传感器接口

一方面,CMOS传感器通常会输出一个并行的像素数据流,格式一般为RGB或者YCbCr,同时还有场行同步信号和一个像素时钟。有时候,也可以用外部时钟信号及同步信号来控制传感器数据的输出。

另一方面,由于CCD传感器直接输出模拟信号,因此,在进一步对其进行处理之前,需要先将模拟视频转换为数字视频。CCD传感器一般要搭配一个AFE芯片,用以解决转换问题。这个AFE芯片通常是CCD专用芯片(例如ADI公司的AD9978),里面配有专为CCD传感器设计的测量电路,例如,直流偏置电路、双相关采样电路、黑电平钳位电路及场行同步等信号。AFE芯片和CCD的驱动时序配合,对CCD进行扫描,将输出的像素流数字化。一般情况下AFE芯片输出为并行像素数据或者LVDS (Low Voltage Differential Signal:低压差分信号)。LVDS的低功耗和高抗干扰能力使其在高分辨率的图像传感器领域的应用越来越广泛。

图1-15是一个以AD9978A作为AFE,以Xilinx生产的XCS400FPGA为图像处理器的一个图像采集系统方案。图1-15 图像采集系统示例

图像处理器FPGA产生CCD传感器(FTT1010M)的工作时序,一般情况下,这个时序输出信号不会直接输送到CCD上,这主要是基于电平匹配和降低设计复杂度的考虑。普遍的解决方案是采用一个专用的CCD驱动器或是一个可编程的脉冲发生器,图1-15采用的方案是Dalsa公司生产的图像传感器专用芯片DPP2010A,它可以产生CCD所需要的复位时钟、转移时钟及水平驱动和垂直驱动。同时,产生与AD9978A采样相位相关的场行同步信号。AD9978A内部集成直流偏置电路、双相关采样电路及黑电平钳位电路,可以用来补偿CCD的暗电流噪声影响和输出放大器复位脉冲串扰信号。同时,内部有可编程增益放大器VGA以便适应不同的CCD输入电压。

ADC采样电路需要输入场行同步信号(例如图1-15中的HD和VD信号)进行像素对齐,同时FPGA通过一个类似于SPI的三线接口对ADC进行配置,这些配置包括内部的VGA增益设置、采样模式设置、上电时序、通道切换及启动转换等。整个ADC由CCD驱动器的输出时钟作为参考时钟,以适应不同的采样速率。ADC直接输出LVDS信号到FPGA的LVDS输入管脚。

多数情况下,我们不直接与传感器打交道,就会直接得到一个指定接口的相机或者提前知道了一组视频的数据流的具体时序。这个相机可能有各种各样的接口,我们将在视频接口的章节详细讨论这个问题。1.2.4 图像处理流水线

图像采集并不是在传感器处就结束了,正好相反,它才刚刚开始。我们来看看一幅原始图像在进入下一步图像处理之前要历经哪些步骤。有时候,这些步骤是在传感器电子模块内部完成的(尤其是用CMOS传感器时),而有时候这些步骤必须由图像处理器来完成。在数码相机中,这一系列的处理阶段被称为“图像处理流水线”,简称为“图像流水线”。图1-16给出了一种可能的数据流程。图1-16 图像处理流水线示例

传感器输出模块通常包括传感器、前置放大器、自动对焦、预处理、时序控制等功能模块。后处理模块通常包括目标检测与跟踪、智能视频分析等高级图像处理任务。显示压缩与存储模块对采集的视频进行显示和压缩存储。下面对图像处理流水线中的通用模块进行详细阐述。

1)机械反馈控制

在松开快门之前,对焦和曝光系统连通其他机械相机组件并根据场景的特征来控制镜头位置。自动曝光算法测量各个区域的亮度,然后通过控制快门速度和光圈大小对过度曝光或者曝光不足的区域进行补偿。这里的目标是保持图像中不同的区域具有一定的对比,并达到一个目标的平均亮度。

2)自动对焦

自动对焦算法分为两类。主动方法利用红外线或者超声波发射器/接收器来估计相机和所要拍摄的对象之间的距离。被动方法则是根据相机接收到的图像进行对焦决策。图1-17 人眼的“伽马曲线”

在这两个子系统中,媒体处理器通过PWM信号控制各个镜头和快门电动机。对于自动曝光控制,也要调整传感器的自动增益控制(Automatic Gain Control,AGC)电路。

3)预处理

人眼对光线亮度的感应实际上是非线性的,人眼对光线的反应曲线称为“伽马曲线”,如图1-17所示。这个特性保证了人眼具有极宽的亮度分辨范围,可以分辨出亮度差别非常大的物体。

这个特性也决定了传感器的输出需要经过伽马校正才能用于显示(除非是采用逆伽马特性的CRT显示器)。

此外,由于传感器通常都具有一些有缺陷的像素点,因此需要对这些缺陷像素点进行预补偿。一种常用的预处理技术是中值滤波。

4)滤波与图像补偿

这组算法考虑了镜头的物理特性,也就是镜头会在一定程度上歪曲用户实际上看到的景象。不同的镜头可能引起不同的失真,例如,广角镜头会产生“桶状”或者“膨胀效应”,而长焦镜头则会产生“收缩效应”。镜头的阴影失真降低了周围图像的亮度,色差会引起图像周围出现条纹。为了纠正这些失真,媒体处理器需要运用数学变换来处理图像。

预处理的另外一个用处是图像的稳定性补偿,或者称为防抖动。这时,处理器会根据接收图像的平移云顶进行调整,这通常需要借助于外部传感器,例如通过陀螺仪或加速度传感器实时感知传感器的运动。

5)白平衡

预处理的另一个阶段就是白平衡。当我们看到一个场景时,不管条件如何,眼睛总会把看到的一切调整到同一组自然颜色下面的状态。例如,不管我们是在室内荧光灯下还是在室外阳光下,对于一个深红色的苹果,我们看起来都是深红色。但是,图像传感器对于颜色的感知却极大地依赖于光照条件,因此,必须将传感器获得的图像映射为“与光照无关”才能最终输出。这种映射处理可以手动也可以自动完成。

在手动系统中,一方面,可以指定相机要进行“白平衡”的对象,然后相机将调节整幅图像的“色温”以满足这种映射。另一方面,自动白平衡(Automatic White Balance,AWB)利用图像传感器的输入和额外的一个白平衡传感器来共同决定应该将图像中的哪一部分作为“真正的白色”。这实际上是调整了图像中R,G和B通道之间的相对增益。很显然,AWB要比手动方法多一些图像处理的过程,这也是厂商专属算法的另外一个目标。

6)拜尔插值

对拜尔插值进行插值,可能是图像流水线中最重要的、数值计算最多的操作。每一个相机制造商一般都有自己独特的“秘方”,不过一般来讲这些方法最终可以分为几个主要的算法大类。(1)非自适应算法,例如双线性插值或者双三次插值,是其中最简单的实现方法。在图像的平滑区域内使用这些算法效果很好。但是,边缘和纹理较多的区域则对这些直接实现的方法提出了巨大的挑战。(2)自适应算法可以根据图像的局部特征自动改变行为,其结果会更好。自适应算法的一个例子是边缘指导重构(Edge-direction Reconstruction)。该算法会分析某个像素周围的区域,然后决定在哪个方向进行插值。若该算法发现附近有一个边缘,则会沿着边缘方向进行插值,而不会穿越这个边缘。还有一种自适应算法是假定一个完整的物体具有恒定的颜色,这样可以防止单个物体内颜色出现突变。

除此之外,还有很多其他的插值算法。其中,涉及频域分析、贝叶斯决策,甚至还与神经网络和遗传算法有关。

7)色彩转换

在这个阶段,插值后的RGB图像被转换到目标颜色空间(如果还不是在正确的颜色空间中)。通常情况下,人的眼睛对亮度比对颜色有更高的空间分辨率。因此,也常常把图像转换为YCbCr格式。1.2.5 图像与视频压缩

一旦图像处理完毕,根据不同的设计需求,图像处理流水线可能会分为两条不同的分支。首先,经过处理后的图像将会输出到显示器上。其次,图像被存储到本地的存储介质(一般是非易失性闪存卡)之前,先用工业标准的压缩技术(如JPEG)进行压缩处理。

图像压缩是指以较少的比特有损或无损表示原来的像素矩阵的技术,也称为图像编码。图像数据之所以能被压缩,就是因为数据中存在着冗余。图像数据的冗余主要表现如下:图像中相邻像素间的相关性引起的空间冗余;图像序列中不同帧之间存在相关性引起的时间冗余;不同彩色平面或频谱带的相关性引起的频谱冗余,如图1-18所示。

数据压缩的目的就是通过去除这些数据冗余来减少表示数据所需的比特数。由于图像数据量的庞大,在存储、传输、处理时非常困难,因此图像数据的压缩就显得非常重要。

1.图像压缩

常见的图像压缩算法有以下几种。图1-18 图像和视频的空间冗余与时间冗余

1)JPEG

JPEG是当今比较流行的图像压缩格式之一。这种格式主要应用于照片,一般不用于简单的线条画和其他的调色板非常有限的图形。JPEG格式的压缩比例为10×~20×,当然,压缩比例越大,失真就越严重。即使在相当高的压缩比例之下,文件已经非常小,而与原始位图(BMP格式文件)相比,JPEG文件仍然保持了相当的视觉质量。JPEG支持无损压缩,无损压缩通常实现的压缩比例为2×。

2)JPEG 2000

JPEG 2000也称为J2K,是JPEG的延续。它解决了JPEG标准中一些基本限制,同时具备向下兼容的能力。JPEG 2000实现了更好的压缩比,对于二值图像、计算机图形和照片等性能表现都很好。和JPEG类似,JPEG也有有损和无损模式。J2K也支持“感兴趣区域”的压缩,也就是说,图像中选择的区域可以用比其他区域更高的质量进行编码。

3)GIF

GIF(Graphics Interchange Format)的原意是“图像互换格式”,是CompuServe公司在 1987年开发的图像文件格式。GIF文件的数据,是一种基于LZW算法的连续色调的无损压缩格式。其压缩率一般在50%左右,它不属于任何应用程序。目前几乎所有相关软件都支持它,公共领域有大量的软件在使用GIF图像文件。GIF图像文件的数据是经过压缩的,并且是采用了可变长度等压缩算法。GIF格式的还有一个特点:在一个GIF文件中可以存多幅彩色图像。如果把存于一个文件中的多幅图像数据逐幅读出并显示到屏幕上,就可构成一种最简单的动画。

GIF格式自1987年由CompuServe公司引入后,因其体积小而成像相对清晰,特别适合于初期慢速的互联网,从而大受欢迎。它采用无损压缩技术,只要图像不多于256色,就可既减少文件的大小又保持成像的质量(当然,现在也存在一些hack技术,在一定的条件下克服256色的限制)。但是,256色的限制大大局限了GIF文件的应用范围,如彩色相机等(当然采用无损压缩技术的彩色相机照片也不适合通过网络传输)。在高彩图片上有着不俗表现的JPG格式却在简单的折线上效果差强人意。因此,GIF格式普遍适用于图表、按钮等只需少量颜色的图像(如黑白照片)。

4)PNG

PNG也是图像文件存储格式,其设计目的是试图替代GIF和TIFF文件格式,同时增加一些GIF文件格式所不具备的特性。PNG的名称来源于“可移植网络图形格式(Portable Network Graphic Format,PNG)”,也有一个非官方解释“PNG’s Not GIF”,是一种位图文件(bitmap file)存储格式,读作“ping”。PNG用来存储灰度图像时,灰度图像的深度可多达16位,存储彩色图像时,彩色图像的深度可多达48位,并且还可存储多达16位的α通道数据。PNG使用从LZ77派生的无损数据压缩算法,一般应用于Java程序、网页或S60程序中,原因是它压缩比高,生成的文件体积小。

2.视频压缩

所谓视频编码方式就是指通过特定的压缩技术,将某个视频格式的文件转换成另一种视频格式文件的方式。视频流传输中最为重要的编解码标准有国际电联的H.261、H.263、H.264,运动静止图像专家组的M-JPEG和国际标准化组织运动图像专家组的MPEG系列标准。此外,在互联网上被广泛应用的还有Real-Networks的RealVideo、微软公司的WMV及Apple公司的QuickTime等。

1)H.261

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载