
JPEG格式 JPEG也是常见的一种图像格式,它由联合照片专家组(Joint Photographic Experts Group)开发并以命名为%二陆quot;ISO 一09一吧-一%二陆quot;,JPEG仅仅是一种俗称而已。JPEG文件的扩展名为jpg或jpeg,其压缩技术十分先进,它用有损压缩方式去除冗余的图像和彩色数据,获取得极高的压缩率的同时能展现十分丰富生动的图像,换句话说,就是可以用最少的磁盘空间得到较好的图像质量。 同时JPEG还是一种很灵活的格式,具有调节图像质量的功能,允许你用不同的压缩比例对这种文件压缩,比如我们最高可以把一三漆MB的BMP位图文件压缩至二0三KB。当然我们完全可以在图像质量和文件尺寸之间找到平衡点。 由于JPEG优异的品质和杰出的表现,它的应用也非常广泛,特别是在中国络和光盘读物上,肯定都能找到它的影子。目前各类浏览器均支持JPEG这种图像格式,因为JPEG格式的文件尺寸较小,下载速度快,使得Web页有可能以较短的下载时间提供大量美观的图像,JPEG同时也就顺理成章地成为中国络上最受欢迎的图像格式。 四、JPEG二000格式 JPEG 二000同样是由JPEG 组织负责制定的,它有一个正式名称叫做%二陆quot;ISO 一5四四四%二陆quot;,与JPEG相比,它具备更高压缩率以及更多新功能的新一代静态影像压缩技术。 JPEG二000 作为JPEG的升级版,其压缩率比JPEG高约三0%左右。与JPEG不同的是,JPEG二000 同时支持有损和无损压缩,而 JPEG 只能支持有损压缩。无损压缩对保存一些重要是十分有用的。JPEG二000的一个极其重要的特征在于它能实现渐进传输,这一点与GIF的%二陆quot;渐显%二陆quot;有异曲同工之妙,即先传输图像的轮廓,然后逐步传输数据,不断提高图像质量,让图象由朦胧到清晰显示,而不必是像现在的 JPEG 一样,由上到下慢慢显示。 此外,JPEG二000还支持所谓的%二陆quot;感兴趣区域%二陆quot;特性,你可以任意指定影像上你感兴趣区域的压缩质量,还可以选择指定的部份先解压缩。 JPEG 二000 和 JPEG 相比优势明显,且向下兼容,因此取代传统的JPEG格式指日可待。 JPEG二000可应用于传统的JPEG市场,如扫描仪、数码相机等,亦可应用于新兴领域,如中国路传输、无线通讯等等。 ------- JPEG(Joint Photographic Experts Group) 是一个由 ISO和IEC两个组织机构联合组成的一个专家组,负责制定静态的数字图像数据压缩编码标准,这个专家组开发的算法称为JPEG算法,并且成为国际上通用的标准,因此又称为JPEG标准。JPEG是一个适用范围很广的静态图像数据压缩标准,既可用于灰度图像又可用于彩色图像。 JPEG专家组开发了两种基本的压缩算法,一种是采用以离散余弦变换(Discrete Cosine Transform,DCT)为基础的有损压缩算法,另一种是采用以预测技术为基础的无损压缩算法。使用有损压缩算法时,在压缩比为二5:一的情况下,压缩后还原得到的图像与原始图像相比较,非图像专家难于找出它们之间的区别,因此得到了广泛的应用。例如,在V-CD和DVD-Video电视图像压缩技术中,就使用JPEG的有损压缩算法来取消空间方向上的冗余数据。为了在保证图像质量的前提下进一步提高压缩比,近年来JPEG专家组正在制定JPEG 二000(简称JP 二000)标准,这个标准中将采用小波变换(wavelet)算法。 JPEG压缩是有损压缩,它利用了人的视角系统的特性,使用量化和无损压缩编码相结合来去掉视角的冗余信息和数据本身的冗余信息。压缩编码大致分成三个步骤: 一使用正向离散余弦变换(forward discrete cosine transform,FDCT)把空间域表示的图变换成频率域表示的图。 二使用加权函数对DCT系数进行量化,这个加权函数对于人的视觉系统是最佳的。 三使用霍夫曼可变字长编码器对量化系数进行编码。 译码或者叫做解压缩的过程与压缩编码过程正好相反。 JPEG算法与彩色空间无关,因此“RGB到YUV变换”和“YUV到RGB变换”不包含在JPEG算法中。JPEG算法处理的彩色图像是单独的彩色分量图像,因此它可以压缩来自不同彩色空间的数据,如RGB, YCbCr和CMYK。 JPEG压缩编码算法的主要计算步骤如下: 一正向离散余弦变换(FDCT)。 二量化(quantization)。 三Z字形编码(zigzag scan)。 四使用差分脉冲编码调制(differential pulse code modulation,DPCM)对直流系数(DC)进行编码。 5使用行程长度编码(run-length encoding,RLE)对交流系数(AC)进行编码。 陆熵编码(entropy coding)。 二 量化 量化是对经过FDCT变换后的频率系数进行量化。量化的目的是减小非“0”系数的幅度以及增加“0”值系数的数目。量化是图像质量下降的最主要原因。 对于有损压缩算法,JPEG算法使用均匀量化器进行量化,量化步距是按照系数所在的位置和每种颜色分量的色调值来确定。因为人眼对亮度信号比对色差信号更敏感,因此使用了两种量化表:亮度量化值和色差量化值。此外,由于人眼对低频分量的图像比对高频分量的图像更敏感,因此图中的左上角的量化步距要比右下角的量化步距小。 三 Z字形编排 量化后的系数要重新编排,目的是为了增加连续的“0”系数的个数,就是“0”的游程长度,方法是按照Z字形的式样编排,如图5-一漆所示。这样就把一个吧 吧的矩阵变成一个一 陆四的矢量,频率较低的系数放在矢量的顶部。 四 直流系数的编码 吧 吧图像块经过DCT变换之后得到的DC直流系数有两个特点,一是系数的数值比较大,二是相邻吧 吧图像块的DC系数值变化不大。根据这个特点,JPEG算法使用了差分脉冲调制编码(DPCM)技术,对相邻图像块之间量化DC系数的差值(Delta)进行编码, Delta=DC(0, 0)k-DC(0, 0)k-一 (5-5) 5 交流系数的编码 量化AC系数的特点是一 陆四矢量中包含有许多“0”系数,并且许多“0”是连续的,因此使用非常简单和直观的游程长度编码(RLE)对它们进行编码。 JPEG使用了一个字节的高四位来表示连续“0”的个数,而使用它的低四位来表示编码下一个非“0”系数所需要的位数,跟在它后面的是量化AC系数的数值。 陆 熵编码 使用熵编码还可以对DPCM编码后的直流DC系数和RLE编码后的交流AC系数作进一步的压缩。 在JPEG有损压缩算法中,使用霍夫曼编码器来减少熵。使用霍夫曼编码器的理由是可以使用很简单的查表(lookup table)方法进行编码。压缩数据符号时,霍夫曼编码器对出现频度比较高的符号分配比较短的代码,而对出现频度较低的符号分配比较长的代码。这种可变长度的霍夫曼码表可以事先进行定义。
参考资料:
JPEG压缩分四个步骤实现:
一、颜色模式转换及采样:
RGB色彩系统是我们最常用的表示颜色的方式。JPEG采用的是YCbCr色彩系统。想要用JPEG基本压缩法处理全彩色图像,得先把RGB颜色模式图像数据,转换为YCbCr颜色模式的数据。Y代表亮度,Cb和Cr则代表色度、饱和度。通过下列计算公式可完成数据转换。 Y=02990R+05870G+01140B Cb=-01687R-03313G+05000B+128 Cr=05000R-04187G-00813B+128 人类的眼晴对低频的数据比对高频的数据具有更高的敏感度,事实上,人类的眼睛对亮度的改变也比对色彩的改变要敏感得多,也就是说Y成份的数据是比较重要的。既然Cb成份和Cr成份的数据比较相对不重要,就可以只取部分数据来处理。以增加压缩的比例。JPEG通常有两种采样方式:YUV411和YUV422,它们所代表的意义是Y、Cb和Cr三个成份的数据取样比例。
二、DCT变换:
DCT变换的全称是离散余弦变换(Discrete Cosine Transform),是指将一组光强数据转换成频率数据,以便得知强度变化的情形。若对高频的数据做些修饰,再转回原来形式的数据时,显然与原始数据有些差异,但是人类的眼睛却是不容易辨认出来。 压缩时,将原始图像数据分成88数据单元矩阵。JPEG将整个亮度矩阵与色度Cb矩阵,饱和度Cr矩阵,视为一个基本单元称作MCU。每个MCU所包含的矩阵数量不得超过10个。例如,行和列采样的比例皆为4:2:2,则每个MCU将包含四个亮度矩阵,一个色度矩阵及一个饱和度矩阵。 当图像数据分成一个88矩阵后,还必须将每个数值减去128,然后一一代入DCT变换公式中,即可达到DCT变换的目的。图像数据值必须减去128,是因为DCT变换公式所接受的数字范围是在-128到+127之间。
三、量化:
图像数据转换为频率系数后,还得接受一项量化程序,才能进入编码阶段。量化阶段需要两个88矩阵数据,一个是专门处理亮度的频率系数,另一个则是针对色度的频率系数,将频率系数除以量化矩阵的值,取得与商数最近的整数,即完成量化。 当频率系数经过量化后,将频率系数由浮点数转变为整数,这才便于执行最后的编码。不过,经过量化阶段后,所有数据只保留整数近似值,也就再度损失了一些数据内容。
四、编码:
1、编码 Huffman编码无专利权问题,成为JPEG最常用的编码方式,Huffman编码通常是以完整的MCU来进行的。 编码时,每个矩阵数据的DC值与63个AC值,将分别使用不同的Huffman编码表,而亮度与色度也需要不同的Huffman编码表,所以一共需要四个编码表,才能顺利地完成JPEG编码工作。 DC编码 DC是彩采用差值脉冲编码调制的差值编码法,也就是在同一个图像分量中取得每个DC值与前一个DC值的差值来编码。DC采用差值脉冲编码的主要原因是由于在连续色调的图像中,其差值多半比原值小,对差值进行编码所需的位数,会比对原值进行编码所需的位数少许多。例如差值为5,它的二进制表示值为101,如果差值为-5,则先改为正整数5,再将其二进制转换成1的补数即可。所谓1的补数,就是将每个Bit若值为0,便改成1;Bit为1,则变成0。差值5应保留的位数为3,下表即列出差值所应保留的Bit数与差值内容的对照。
在差值前端另外加入一些差值的霍夫曼码值,例如亮度差值为5(101)的位数为3,则霍夫曼码值应该是100,两者连接在一起即为100101。下列两份表格分别是亮度和色度DC差值的编码表。根据这两份表格内容,即可为DC差值加上霍夫曼码值,完成DC的编码工作;
2、AC编码方式与DC略有不同,在AC编码之前,首先得将63个AC值按Zig-zag排序,即按照下图箭头所指示的顺序串联起来。 63个AC值排列好的,将AC系数转换成中间符号,中间符号表示为RRRR/SSSS,RRRR是指第非零的AC之前,其值为0的AC个数,SSSS是指AC值所需的位数,AC系数的范围与SSSS的对应关系与DC差值Bits数与差值内容对照表相似。 如果连续为0的AC个数大于15,则用15/0来表示连续的16个0,15/0称为ZRL(Zero Rum Length),而(0/0)称为EOB(Enel of Block)用来表示其后所剩余的AC系数皆等于0,以中间符号值作为索引值,从相应的AC编码表中找出适当的霍夫曼码值,再与AC值相连即可。 例如某一组亮度的中间符为5/3,AC值为4,首先以5/3为索引值,从亮度AC的Huffman编码表中找到1111111110011110霍夫曼码值,于是加上原来100(4)即是用来取[5,4]的Huffman编码1111111110011110100,[5,4]表示AC值为4的前面有5个零。 由于亮度AC,色度AC霍夫曼编码表比较长,在此省略去,有兴趣者可参阅相关书籍。 实现上述四个步骤,即完成一幅图像的JPEG压缩。
视频压缩标准如下:
1、H261
H261标准是为ISDN设计,主要针对实时编码和解码设计,压缩和解压缩的信号延时不超过150ms,码率px64kbps(p=1~30)。
H261标准主要采用运动补偿的帧间预测、DCT变换、自适应量化、熵编码等压缩技术。只有I帧和P帧,没有B帧,运动估计精度只精确到像素级。支持两种图像扫描格式:QCIF和CIF。
2、H263
H263标准是甚低码率的图像编码国际标准,它一方面以H261为基础,以混合编码为核心,其基本原理框图和H261十分相似,原始数据和码流组织也相似;另一方面,H263也吸收了MPEG等其它一些国际标准中有效、合理的部分,如:半像素精度的运动估计、PB帧预测等,使它性能优于H261。
H263使用的位率可小于64Kb/s,且传输比特率可不固定(变码率)。H263支持多种分辨率:SQCIF(128x96)、 QCIF、CIF、4CIF、16CIF。
3、H264/AVC
视频压缩国际标准主要有由ITU-T制定的H261、H262、H263、H264和由MPEG制定的MPEG-1、MPEG-2、MPEG-4,其中H262/MPEG-2和H264/MPEG-4 AVC由ITU-T与MPEG联合制定。
从简单来说H264就是一种视频编码技术,与微软的WMV9都属于同一种技术也就是压缩动态图像数据的“编解码器”程序。
一般来说,如果动态图像数据未经压缩就使用的话,数据量非常大,容易造成通信线路故障及数据存储容量紧张。
因此,在发送动态图像时、或者把影像内容保存在DVD上时、以及使用存储介质容量较小的数码相机或相机手机拍摄映像时,就必须使用编解码器。虽然编解码器有许多种类,但DVD-Video与微波数字电视等使用的主要是MPEG2,数码相机等摄像时主要使用MPEG4。
既然作为压缩视频编码技术,H264最大的作用对视频的压缩了。我们熟悉的MPEG2也就是最常用的DVD视频编码技术已经比较落后。
MPEG-4
MPEG-4标准并非是MPEG-2的替代品,它着眼于不同的应用领域。MPEG-4的制定初衷主要针对视频会议、可视电话超低比特率压缩(小于64Kb/s)的需求。在制定过程中,MPEG组织深深感受到人们对媒体信息,特别是对视频信息的需求由播放型转向基于内容的访问、检索和 *** 作。
MPEG-4与前面提到的JPEG、MPEG-1/2有很大的不同,它为多媒体数据压缩编码提供了更为广阔的平台,它定义的是一种格式、一种框架,而不是具体算法,它希望建立一种更自由的通信与开发环境。
于是MPEG-4新的目标就是定义为:支持多种多媒体的应用,特别是多媒体信息基于内容的检索和访问,可根据不同的应用需求,现场配置解码器。编码系统也是开放的,可随时加入新的有效的算法模块。应用范围包括实时视听通信、多媒体通信、远地监测/监视、VOD、家庭购物/娱乐等。
MPEG-4视频压缩算法相对于MPEG-1/2在低比特率压缩上有着显著提高,在CIF(352288)或者更高清晰度(768576)情况下的视频压缩,无论从清晰度还是从存储量上都比MPEG1具有更大的优势,也更适合网络传输。另外MPEG-4可以方便地动态调整帧率、比特率,以降低存储量。
MPEG-4由于系统设计过于复杂,使得MPEG-4难以完全实现并且兼容,很难在视频会议、可视电话等领域实现,这一点有点偏离原来地初衷。
1、什么是H261编码协议
答:H261是最早出现的视频编码建议,它采用的算法结合了可减少时间冗余的帧间预测和可减少空间冗余的DCT变换的混合编码方法,其输出码率是p×64kbit/s。p取值较小时,只能传清晰度不太高的图像,适合于面对面的电视电话;p取值较大时(如 p>6),可以传输清晰度较好的会议电视图像。该标准主要针对ISDN电话线的视频会议,可视电话等,ISDN的基本速率为64kbps,可以使用多路复用(p×64kbps)。
2、什么是H263编码协议?
答: 1996年3月ITU-T制定的H263标准是一种用于低比特率视频业务中运动图像部分的压缩编码方法。视频编码算法的基本思想是基于ITU-T的H261标准,把减少空间冗余的帧内预测法和减少时间冗余的变换编码法结合起来。编码器有运动补偿能力,并有一些功能、编码方法选项。与采用全象素精度和一个环形滤波器的H261标准的运动补偿比较,H263标准采用了半象素精度位移估值。除了基本的视频源编码算法外,为了改善性能,它包含4个可选的编码方案:非限制运动矢量,先进预测模式,PB帧模式和基于语法的算术编码。H263是对原有标准的修订和改进,包括图像格式、总开销和减少方块效应等。尽管这些选项使编码器复杂,但能显著改善图像的质量。
为了提高编码效率,1997年9月ITU-T又制定了H263+(H263的第二版)标准,它是兼容H263的。H263+能更好的提高恢复图像的质量和压缩性能,有广阔的应用前景。H263+在H263的基础上实施了许多改进,它允许使用更多的图像格式、图像形状和时钟频率。这就增加了H263+应用的灵活性。另外,图像大小、形状和时钟频率可以在H263+的比特流中给出。H263+在H263的基础上的另一个重要改进是采用可放缩性,它能提高视频信息在易出错、数据丢失或不同环境中的传输正确率,进一步限制图像
3、什么是H264(MPEG-4 Part 10) 编码协议?其技术亮点是什么?
答: H264是ITU-T的VCEG(视频编码专家组)和ISO/IEC的MPEG(活动图像编码专家组)的联合视频组(JVT:joint video team)开发的一个新的数字视频编码标准,它既是ITU-T的H264(MPEG-4 Part 10) ,又是ISO/IEC的MPEG-4的第10 部分。1998年1月份开始草案征集,1999年9月,完成第一个草案,2001年5月制定了其测试模式TML-8,2002年6月的 JVT第5次会议通过了H264(MPEG-4 Part 10) 的FCD板。
H264(MPEG-4 Part 10) 和以前的标准一样,也是DPCM加变换编码的混合编码模式。但它采用“回归基本”的简洁设计,不用众多的选项,获得比H263++好得多的压缩性能;加强了对各种信道的适应能力,采用“网络友好”的结构和语法,有利于对误码和丢包的处理;应用目标范围较宽,以满足不同速率、不同解析度以及不同传输(存储)场合的需求;它的基本系统是开放的,使用无需版权。
在技术上,H264(MPEG-4 Part 10) 标准中有多个闪光之处,如统一的VLC符号编码,高精度、多模式的位移估计,基于4×4块的整数变换、分层的编码语法等。这些措施使得H264(MPEG-4 Part 10) 算法具有很的高编码效率,在相同的重建图像质量下,能够比H263节约50%左右的码率。H264(MPEG-4 Part 10) 的码流结构网络适应性强,增加了差错恢复能力,能够很好地适应IP和无线网络的应用。
技术亮点:
(1)分层设计
H264(MPEG-4 Part 10) 的算法在概念上可以分为两层:视频编码层(VCL:Video Coding Layer)负责高效的视频内容表示,网络提取层(NAL:Network Abstraction Layer)负责以网络所要求的恰当的方式对数据进行打包和传送。在VCL和NAL之间定义了一个基于分组方式的接口,打包和相应的信令属于NAL的一部分。这样,高编码效率和网络友好性的任务分别由VCL和NAL来完成。
(2)高精度、多模式运动估计
H264(MPEG-4 Part 10) 支持1/4或1/8像素精度的运动矢量。在1/4像素精度时可使用6抽头滤波器来减少高频噪声,对于1/8像素精度的运动矢量,可使用更为复杂的8抽头的滤波器。在进行运动估计时,编码器还可选择“增强”内插滤波器来提高预测的效果。
(3)4×4块的整数变换
H264(MPEG-4 Part 10) 与先前的标准相似,对残差采用基于块的变换编码,但变换是整数 *** 作而不是实数运算,其过程和DCT基本相似。这种方法的优点在于:在编码器中和解码器中允许精度相同的变换和反变换,便于使用简单的定点运算方式。也就是说,这里没有“变换误差”。变换的单位是4×4块,而不是以往常用的8×8块。由于用于变换块的尺寸缩小,运动物体的划分更精确,这样,不但变换计算量比较小,而且在运动物体边缘处的衔接误差也大为减小。
(4)统一的VLC
H264(MPEG-4 Part 10) 中熵编码有两种方法,一种是对所有的待编码的符号采用统一的VLC(UVLC :Universal VLC),另一种是采用内容自适应的二进制算术编码(CABAC:Context-Adaptive Binary Arithmetic Coding)。CABAC是可选项,其编码性能比UVLC稍好,但计算复杂度也高。UVLC使用一个长度无限的码字集,设计结构非常有规则,用相同的码表可以对不同的对象进行编码。这种方法很容易产生一个码字,而解码器也很容易地识别码字的前缀,UVLC在发生比特错误时能快速获得重同步。
(5)帧内预测
在先前的H26x系列和MPEG-x系列标准中,都是采用的帧间预测的方式。在H264(MPEG-4 Part 10) 中,当编码Intra图像时可用帧内预测。对于每个4×4块(除了边缘块特别处置以外),每个像素都可用17个最接近的先前已编码的像素的不同加权和(有的权值可为0)来预测,即此像素所在块的左上角的17个像素。显然,这种帧内预测不是在时间上,而是在空间域上进行的预测编码算法,可以除去相邻块之间的空间冗余度,取得更为有效的压缩。
(6)面向IP和无线环境
H264(MPEG-4 Part 10) 草案中包含了用于差错消除的工具,便于压缩视频在误码、丢包多发环境中传输,如移动信道或IP信道中传输的健壮性。
4、什么是视频前处理技术?
答:视频前处理过程首先将复合的模拟视频信号数字化后,分离出亮度信号和色度信号,再滤掉信号中的噪声,转换为世界通用的中间格式CIF或QCIF。该过程还可解决亮度与色度信号串扰,减少叠折干扰的作用。
视频信号在存储、传输过程中都可能会受到噪声的干扰。信源的质量对后面的压缩编码部分的性能有重要影响,在系统设计时必须考虑到这一点,尤其在编码的输出目标码率较低时这一点显得更为重要。噪声增加了输入端的信息量,而且图象的相关性减弱,使得后续的压缩编码较为困难。最坏情况时只有一小部分输出码率用于传送信号的信息,大部分则消耗在噪声信息的传送上。这时恢复信号的SNR往往要较信源噪声较小的图象恢复的情况要坏得多。分析表明,信源的信噪比对于混合编码器的性能有很大影响。Junji Kumada曾经计算了混合编码器的率失真函数(RDF)和输入信号信噪比的关系。率失真函数在理论上给出了在一定失真的情况下,信源编码所需的最低信息速率。该值与信源本身的功率密度谱(PSD)有关。
不同输入信噪比条件下的编码器的率失真函数曲线如下图所示。假定图象序列相邻象素的相关系数为095。可以看出,信源的SNR对于编码器的性能有很大影响:在信源SNR为30dB时,若要保证输出信噪比为50dB至少需要4比特/象素,而信源没有噪声干扰时则仅需2比特/象素,所需编码比特数增加一倍。
因此,为提高压缩编码的性能,有必要对混杂噪声的信号进行滤波。常用的滤波方法包括线性和非线性滤波。中值滤波属于非线性滤波,它被认为是消除脉冲干扰的有效手段,但对一些其他类型的干扰,如高斯分布的噪声,其效果则近似于一个低通滤波器。常用的线性滤波器是FIR滤波器,这类滤波器通常用来对信号进行限带处理。
在图象处理中广泛采用二维滤波器,这是因为一般而言图象信号水平和垂直方向都有较强的相关性,但把一维中值滤波器简单地推广到二维,效果却不是很好,该滤波器在平滑噪声的同时,也去掉了一定的图象细节。因此人们提出了很多种改进的滤波器,用来保留图象的细节。栈滤波器(中值滤波器)便是其中的一种。当然,考虑到实现上的简单性,一般采用一维滤波器。
6、图象数据压缩基本方法有哪些?
答:1)预测编码
预测编码旨在去除相邻像素之间的冗余度,差分脉码调制(简称DPCM)是它的一种基本方法。
输入信号x(n)是量化前的图像信号取样值,虚线框内的电路称为预测器,其中Di和ai(i=1,2,……,N)分别为延迟单元和固定的加权系数值,Q为量化器。预测器根据前N个邻近像素的样值推算出当前样值x(n)的估计值
其中τ为取样间隔。编码器对预测误差信号进行量化、编码传送,而不是传送x(n)本身。由于相邻像素之间相关性,预测值接近于x(n)。因此,通过预测将x(n)转换成e(n),在很大程序上降低了信源的冗余。用量化台阶相同的量化器量化e(n),所需的量化电平数要大大少于x(n),这便是通过DPCM进行数据压缩的基本原理。在解码端利用一个相同的预测器,可以恢复出原信号x(n)的近似值y(n),其误差是由于对e(n)的均方值最小。此时的预测器称为最佳预测器。
如果用作预测的像素与被预测像素X在同一扫描行内(如图(b)中的x1,x2),称为一维预测;当用作预测的像素位于相邻的不同扫描行上时(如图(b)中的x3,x4)则称为二维预测。
2) 换编码
变换编码也是一种降低信源空间冗余度的压缩方法。我们熟悉的富氏变换就是一种正交变换。如果把取样后的图像看作一个二维的矩阵,对此矩阵作二维离散富氏变换(DFT),所得到的变换域中的各元素(变换系数),对应着图像中不同频率成份的复振幅值。由于画面在内容上的连续性,图像矩阵中相邻元素之间的相关性很强,而经变换后,变换系数(不同频率的复振幅)值之间,显然相关性要小得多。研究证明,各种正交变换(例如,K-L变换,余弦变换,沃什变换等)都能在不同程度上减少随机向量的相关性。由于变换所产生的变换系数之间的相关性很小,可以分别独立地对其进行处理;而且信号经大多数正交变换后,能量都集中在少数系数上,通过量化删去对图像信号贡献小的系数,只用保留下的系数来恢复原图像,并不引起明显的失真。这就是利用正交变换进行数据压缩的基本原理。
在最小均方误差准则下,最佳的正交变换是卡南-洛伊夫(K-L)变换,它所给出的变换系数是互不相关的。但是由于计算的复杂性,K-L变换的实际应用甚少。离散余弦变换(DCT)是一种性能接近K-L变换的正交变换,并具有多种快速算法,因而在数据压缩中被广泛地采用。一个N×N的二维DCT由下式定义:
3) 量化
DPCM将像素值转换为预测误差值e(n);DC将像素值转换为DCT系数值,二者都仅仅是变换一种形式来表达原来用像素值表示的图像。只有在对预测误差,或对DCT系数进行量化时,才引入信息的损失。在同样的信噪比下,对转换后的参数进行量化所得到的数据率比对原图像量化要低,从而达到压要取得好的压缩效果,DPCM量化器的设计要与e(n)的统计特性相匹配。同时,考虑到视觉的空间掩蔽效应,在亮度变化密集的局部区域,还可以使用较大的量化台阶,以进一步提高压缩比。
DCT系数的理化与DPCM不同,DPCM中量化误差只影响与误差产生点相邻的像素,而某个DCT系数的量化误差,经反变换后会影响到整块图像中的每一个像素值。幅度很小的高频DCT系数量化后为0,可以忽略。由于人眼对高频分量的不敏感,忽略高频分量后所恢复的图像,仍有较高的质量。剩余的DCT系数,相互之间的相关性已经很小,可以根据各个系数对视觉影响的大小,分别采用不同大小的台阶量化。为简化系统起见,通常的作法是,将各个系数乘以不同的权值以后,用同一个量化器量化。
为了充分地利用视觉的空间掩蔽效应,提高压缩比,无论是DPCM,还是DCT系数的量化器都可以通过动态的自适应量化器来实现。自适应量化器有一组预先设定好的量化台阶,根据检测到的图像细节丰富程度,量化器自动选用相应的量化台阶。
4)具有运动补偿的帧间预测编码
(1)序列图像的运动估值
消除序列图像在时间上的冗余,是视频编码的另一重要途径。序列图像的时间冗余表现在:
3) (1)对于静止的场景,当前帧和前一帧是完全相同的; (2)对于运动的物体,只要知道其运动规律,就可以从前一帧图像推算出它在当前帧中的位置来。因此,编码器只要将物体的运动信息(运动速度,或静止)告知解码器,解码器就可根据此信息和前一帧图像来更新当前图像,这比传送当前图像所需的数据量要小得多。而要这样做,一个首先要解决的问题是如何从序列图像中提取有关物体的运动信息,这通常称为运动估值。 比较成熟的估值方法主要分为两大类:块匹配方法和像素递归法。两类方法都只估计物体的平移,其中块匹配方法应用比较广泛。
块匹配方法将图像划分成许多方块,并认为每个子块中所有像素的位移量都相同。对于第k帧中的每一子块,在第K-1帧中找到与其最相似的子块,称为匹配快。匹配块偏离原来位置的距离(见图2(a))决定了该子块的位移矢量(或称运动矢量)
判断两个子块匹配最常用的准则是求帧间亮度差的绝对值的均值MAD:其中bk和bk-1分别代表k和k-1帧的像素亮度值,M、N为子块的水平和垂直像素数,dM为最大可能平移的水平和垂直像素数(见图2(b))。当MAD最小时,表示两个子块匹配。
为了寻找最佳匹配块,我们需要将k-1帧中对应的子块沿水平和垂直方向逐个像素移动,每移动一次计算一次MAD由图2(b)看出,在(M+2dM)×(N+2dM)的搜索范围内,总的移动次数为(2dM+1)2。这种搜索方式称为全搜索,其运算量是很大的。为了加快搜索过程,人们已经提出了若干不同的搜索方法。
(2)帧间预测编码
帧间预测与消除空间冗余的预测编码相类似,即不直接传送当前帧(k帧)的像素值x,而是传送x与前一帧的对应像素x'之间的差值(见图2(a))。考虑到图像中存在着运动物体,我们传送x与前一帧经位移后所对应的像素x''之间的差值,这种方法称为具有运动补偿的帧间预测。显然,它给出的预测误差要比简单的帧间预测低,因而可以达到更高的压缩比。需要指出,在传送经运动补偿的帧间预测误差的同时,还需将该子块对就的运动量传送给解码器,以便解码器能够从已收到的前一帧(k-1帧)信息中恢复出该子块来。
用k-1帧预测k帧图像的方式称为前向预测。如果待测子块在k-1帧,而搜索区处在k帧,也就是从后续的k帧预测前面的k-1帧图像,这种方式称为后向预测。为了提高压缩比,往往还采用由前、后两帧来预测中间帧的方法,称为双向预测,此时有两个运动矢量需要作为附加信息传送给解码器。
6)其他编码方法
其他的压缩编码方式,例如,子带滤波/小波变换,矢量量化,分形编码及基于模型的编码等,在这里不一一介绍。
4) 音频压缩编码
1、什么是语音编码技术?其发展与现状是怎样的?
答: 语音信号的数字化传输,一直是通信的发展方向之一。采用低速率语音编码技术进行语音传输比语音信号模拟传输有诸多优点,现代通信的发展趋势决定了语音编码技术的两大突出优势:
5) 大大节省了带宽。从最初的PCM64k编码到现在标准语音压缩协议,如G723编码速率为53K或63Kbps;G729编码速率为8Kbps。还有未形成协议标准但更低的编码速率已有成熟的算法可以实现,如AMBE、CELP、RELP、VSELP、MELP、MP-MLQ、LPC-10等多种语音压缩算法,最低编码速率达到24kbps,有些算法已在包括第三代移动通信系统(3G)的多个领域得到应用。
6) 便于实现与IP融合。Internet的成功运用使得与IP的融合已成必然的发展趋势。分组语音即将分组交换的概念与语音传输相结合,使得语音信息更易于接入IP网。而分组语音的关键技术之一就是语音编码技术,低速率的语音编码技术对语音信息的实时性有更好的保证。采用分组语音传输的网络,其传输的语音信息本身就是分组数据包,这样的语音信息在接入Internet时将是非常的方便。 语音编码既可用软件也可用硬件的方法实现。软件实现就是将压缩算法用软件方法实现,这样做的好处是成本低、修改方便灵活,但处理速度较慢,不易保证处理的实时性。采用硬件实现就是将语音压缩算法固化到专用DSP芯片中,这样处理速度快,便于实时处理。
2、112 什么是G711编码?
答: G711建议一种典型的采用PCM波形编码的压缩编解码方法,可以获得较高的语音质量,但数据压缩率低。
G711建议描述了PCM的μ律(A律)压缩,如下图所示:
采样率为8kHz,12bit线性A/D变换为数字信号,再经过对数PCM后压缩为8bit,一路音频为64kbit/s。
7) 音频压缩技术
1、音频信号的指标有哪些?
答: 1)频带宽度:音频信号的频带越宽,所包含的音频信号分量越丰富,音质越好。
2)动态范围:动态范围越大,信号强度的相对变化范围越大,音响效果越好。
3)信噪比:信噪比SNR(Signal to Noise Ratio)是有用信号与噪声之比的简称。 噪音可分为环境噪音和设备噪音。信噪比越大,声音质量越好。
4)主观度量法:人的感觉机理对声音的度量最有决定意义。感觉上的、主观上的测试是评价声音质量不可缺少的部分。当然,可靠的主观度量值是较难获得的。
8) 2、 什么是音频数字音频原理?
答: 由于音频信号是一种连续变化的模拟信号,而计算机只能处理和记录二进制的数字信号,因此,由自然音源而得的音频信号必须经过一定的变化和处理,变成二进制数据后才能送到计算机进行再编辑和存贮。
PCM(Pulse Code Modulation)脉冲编码调制是一种模数转换的最基本编码方法。它把模拟信号转换成数字信号的过程称为模/数转换,它主要包括:
9) 采样:在时间轴上对信号数字化; 量化:在幅度轴上对信号数字化; 编码:按一定格式记录采样和量化后的数字数据。 编码的过程首先用一组脉冲采样时钟信号与输入的模拟音频信号相乘,相乘的结果即输入信号在时间轴上的数字化。然后对采样以后的信号幅值进行量化。最简单的量化方法是均衡量化,这个量化的过程由量化器来完成。对经量化器A/D变换后的信号再进行编码,即把量化的信号电平转换成二进制码组,就得到了离散的二进制输出数据序列x ( n ),n表示量化的时间序列,x ( n )的值就是n时刻量化后的幅值,以二进制的形式表示和记录。
3、数字音频的技术指标有哪些?
答: 1)采样频率:采样频率是指一秒钟内采样的次数。采样频率的选择应该遵循奈奎斯特(Harry Nyquist)采样理论(如果对某一模拟信号进行采样,则采样后可还原的最高信号频率只有采样频率的一半,或者说只要采样频率高于输入信号最高频率的两倍,就能从采样信号系列重构原始信号)。
根据该采样理论,CD激光唱盘采样频率为44kHz,可记录的最高音频为22kHz,这样的音质与原始声音相差无几,也就是我们常说的超级高保真音质。通信系统中数字电话的采用频率通常为8kHz,与原4k带宽声音一致的。
2)量化位数:量化位是对模拟音频信号的幅度轴进行数字化,它决定了模拟信号数字化以后的动态范围。由于计算机按字节运算,一般的量化位数为8位和16位。量化位越高,信号的动态范围越大,数字化后的音频信号就越可能接近原始信号,但所需要的存贮空间也越大。
3)声道数:有单声道和双声道之分。双声道又称为立体声,在硬件中要占两条线路,音质、音色好,但立体声数字化后所占空间比单声道多一倍。
4)编码算法:编码的作用其一是采用一定的格式来纪录数字数据,其二是采用一定的算法来压缩数字数据以减少存贮空间和提高传输效率。压缩算法包括有损压缩和无损压缩;有损压缩指解压后数据不能完全复原,要丢失一部分信息。压缩编码的基本指标之一就是压缩比,它通常小于1。压缩越多,信息丢失越多、信号还原后失真越大。根据不同的应用,应该选用不同的压缩编码算法。
5)数据率及数据文件格式:数据率为每秒bit数,它与信息实时传输有直接关系,而其总数据量又与存储空间有直接关系。
10) H323
1、什么是H225协议?
答:H2250是一个框架协议,遵循H323V2标准,包含了RAS和Q931两部分,描述了为在分组网络上的H323设备之间传送音频、视频、数据和控制信息而进行关联、编码及分组的方法。H2250负责协议和消息格式的描述。
H2250把RTP/RTCP用于所有下层分组网络媒体流的分组和同步,H2250假定了一个初始信令是建立在非RTP传输地址之上的呼叫模型,并把此呼叫模型用于呼叫建立和能力协商(见H323和H245),这之后将建立一个或多个RTP/RTCP连接。 H2250包含RTP/RTCP的详细使用方法。
2、什么是 H245协议?
答:用于控制H323实体的 *** 作的H245协议消息通过H245控制信道传输, H245消息分为四种类型:请求(Request)、响应(Response)、命令(Command)和指示(Indication)。请求消息要求接收机有动作,包括立即响应;响应消息响应一个请求;命令消息要求规定的动作,但不要求响应;指示消息只是通知的作用,不要求任何动作和响应,通常是指示终端的信息状态。
H245协议规定的主要控制过程有:主/从决定、终端能力交换、逻辑通道控制、多点会议控制&指示,回路时延。 主从决定:决定节点的主从关系。 能力交换:协商出一个兼容的媒体能力(音频、视频、数据、会议等)集合。
逻辑通道控制:指示开始传输特定媒体流。 多点会议控制&指示:会场列表、主席控制、媒体指示等。 回路时延:发送端到接收端的往返时延,也可用于检测远端是否异常。 GK直接呼叫流程(包括H245部分):
3、什么是 H323协议?
答:H323协议描述了在不提供QoS的基于包交换的网络(PBN,Packet Based Networks)上提供多媒体通信服务(包括实时的音频、数据通信等)的协议和设备。H323协议定义了四种组件:终端、网关、网守和多点控制单元。H323协议是视频通信所基于的主要协议之一。H323协议实际上是一个框架,它包含了相关的一系列协议,
3、什么是 Q931信令?
答:Q931呼叫信令是H2250中用于在两个H323端点之间建立呼叫连接的控制信令。当整个网络中有GK时,其初始接入消息在主叫端点与GK之间利用GK的RAS信道传输地址进行交换。在初始接入消息交换时,GK在ACF 消息中指示了其它端点的呼叫信令传输地址。主叫端口根据此地址与其它端口建立呼叫。
呼叫信令主要包括:
Setup:向另一个实体发起呼叫
Alerting:被叫震铃
Connect:被叫应答
ReleaseComplete:断开呼叫
JPEG压缩分四个步骤实现:
一、颜色模式转换及采样:
RGB色彩系统是我们最常用的表示颜色的方式。JPEG采用的是YCbCr色彩系统。想要用JPEG基本压缩法处理全彩色图像,得先把RGB颜色模式图像数据,转换为YCbCr颜色模式的数据。Y代表亮度,Cb和Cr则代表色度、饱和度。通过下列计算公式可完成数据转换。 Y=02990R+05870G+01140B Cb=-01687R-03313G+05000B+128 Cr=05000R-04187G-00813B+128 人类的眼晴对低频的数据比对高频的数据具有更高的敏感度,事实上,人类的眼睛对亮度的改变也比对色彩的改变要敏感得多,也就是说Y成份的数据是比较重要的。既然Cb成份和Cr成份的数据比较相对不重要,就可以只取部分数据来处理。以增加压缩的比例。JPEG通常有两种采样方式:YUV411和YUV422,它们所代表的意义是Y、Cb和Cr三个成份的数据取样比例。
二、DCT变换:
DCT变换的全称是离散余弦变换(Discrete Cosine Transform),是指将一组光强数据转换成频率数据,以便得知强度变化的情形。若对高频的数据做些修饰,再转回原来形式的数据时,显然与原始数据有些差异,但是人类的眼睛却是不容易辨认出来。 压缩时,将原始图像数据分成88数据单元矩阵。JPEG将整个亮度矩阵与色度Cb矩阵,饱和度Cr矩阵,视为一个基本单元称作MCU。每个MCU所包含的矩阵数量不得超过10个。例如,行和列采样的比例皆为4:2:2,则每个MCU将包含四个亮度矩阵,一个色度矩阵及一个饱和度矩阵。 当图像数据分成一个88矩阵后,还必须将每个数值减去128,然后一一代入DCT变换公式中,即可达到DCT变换的目的。图像数据值必须减去128,是因为DCT变换公式所接受的数字范围是在-128到+127之间。
三、量化:
图像数据转换为频率系数后,还得接受一项量化程序,才能进入编码阶段。量化阶段需要两个88矩阵数据,一个是专门处理亮度的频率系数,另一个则是针对色度的频率系数,将频率系数除以量化矩阵的值,取得与商数最近的整数,即完成量化。 当频率系数经过量化后,将频率系数由浮点数转变为整数,这才便于执行最后的编码。不过,经过量化阶段后,所有数据只保留整数近似值,也就再度损失了一些数据内容。
四、编码:
1、编码 Huffman编码无专利权问题,成为JPEG最常用的编码方式,Huffman编码通常是以完整的MCU来进行的。 编码时,每个矩阵数据的DC值与63个AC值,将分别使用不同的Huffman编码表,而亮度与色度也需要不同的Huffman编码表,所以一共需要四个编码表,才能顺利地完成JPEG编码工作。 DC编码 DC是彩采用差值脉冲编码调制的差值编码法,也就是在同一个图像分量中取得每个DC值与前一个DC值的差值来编码。DC采用差值脉冲编码的主要原因是由于在连续色调的图像中,其差值多半比原值小,对差值进行编码所需的位数,会比对原值进行编码所需的位数少许多。例如差值为5,它的二进制表示值为101,如果差值为-5,则先改为正整数5,再将其二进制转换成1的补数即可。所谓1的补数,就是将每个Bit若值为0,便改成1;Bit为1,则变成0。差值5应保留的位数为3,下表即列出差值所应保留的Bit数与差值内容的对照。
在差值前端另外加入一些差值的霍夫曼码值,例如亮度差值为5(101)的位数为3,则霍夫曼码值应该是100,两者连接在一起即为100101。下列两份表格分别是亮度和色度DC差值的编码表。根据这两份表格内容,即可为DC差值加上霍夫曼码值,完成DC的编码工作;
2、AC编码方式与DC略有不同,在AC编码之前,首先得将63个AC值按Zig-zag排序,即按照下图箭头所指示的顺序串联起来。 63个AC值排列好的,将AC系数转换成中间符号,中间符号表示为RRRR/SSSS,RRRR是指第非零的AC之前,其值为0的AC个数,SSSS是指AC值所需的位数,AC系数的范围与SSSS的对应关系与DC差值Bits数与差值内容对照表相似。 如果连续为0的AC个数大于15,则用15/0来表示连续的16个0,15/0称为ZRL(Zero Rum Length),而(0/0)称为EOB(Enel of Block)用来表示其后所剩余的AC系数皆等于0,以中间符号值作为索引值,从相应的AC编码表中找出适当的霍夫曼码值,再与AC值相连即可。 例如某一组亮度的中间符为5/3,AC值为4,首先以5/3为索引值,从亮度AC的Huffman编码表中找到1111111110011110霍夫曼码值,于是加上原来100(4)即是用来取[5,4]的Huffman编码1111111110011110100,[5,4]表示AC值为4的前面有5个零。 由于亮度AC,色度AC霍夫曼编码表比较长,在此省略去,有兴趣者可参阅相关书籍。 实现上述四个步骤,即完成一幅图像的JPEG压缩。
以上就是关于opencv怎样提取出JPEG图像的DCT系数全部的内容,包括:opencv怎样提取出JPEG图像的DCT系数、简述JPEG的压缩原理、视频图像的压缩编码方式有哪些等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)