第一篇:实验四图像压缩编码介绍
系: 信息与机电工程系 专业: 电子信息工程 年级: 2013级 姓名: 学号: 136710093 实验课程: 数字图像处理 实验室号:_ 实验设备号: 实验时间: 2015.6.16 指导教师签字: 成绩:
实验四 图像压缩编码
一、实验目的
1.了解有关数字图像压缩的基本概念 2.理解有损压缩和无损压缩的概念; 3.理解图像压缩的主要原则和目的;
4.了解几种常用的图像压缩编码方式。5.进一步熟悉DCT的概念和原理;
6.掌握对灰度和彩色图像作离散余弦变换和反变换的方法; 7.掌握利用MATLAB软件进行图像压缩。
二、实验原理
1、图像压缩原理
图像压缩主要目的是为了节省存储空间,增加传输速度。图像压缩的理想标准是信息丢失最少,压缩比例最大。不损失图像质量的压缩称为无损压缩,无损压缩不可能达到很高的压缩比;损失图像质量的压缩称为有损压缩,高的压缩比是以牺牲图像质量为代价的。压缩的实现方法是对图像重新进行编码,希望用更少的数据表示图像。
信息的冗余量有许多种,如空间冗余,时间冗余,结构冗余,知识冗余,视觉冗余等,数据压缩实质上是减少这些冗余量。高效编码的主要方法是尽可能去除图像中的冗余成分,从而以最小的码元包含最大的图像信息。
编码压缩方法有许多种,从不同的角度出发有不同的分类方法,从信息论角度出发可分为两大类。
(1).冗余度压缩方法,也称无损压缩、信息保持编码或嫡编码。具体说就是解码图像和压缩编码前的图像严格相同,没有失真,从数学上讲是一种可逆运算。
(2)信息量压缩方法,也称有损压缩、失真度编码或烟压缩编码。也就是说解码图像和原始图像是有差别的,允许有一定的失真。
应用在多媒体中的图像压缩编码方法,从压缩编码算法原理上可以分为以下3类:
(1)无损压缩编码种类
哈夫曼(Huffman)编码,算术编码,行程(RLE)编码,Lempel zev编码。(2)有损压缩编码种类 预测编码,DPCM,运动补偿;
频率域方法:正交变换编码(如DCT),子带编码; 空间域方法:统计分块编码; 模型方法:分形编码,模型基编码;
基于重要性:滤波,子采样,比特分配,向量量化;(3)混合编码。
有JBIG,H261,JPEG,MPEG等技术标准。
本实验主要利用MATLAB程序进行离散余弦变换(DCT)压缩。
2、离散余弦变换(DCT)图像压缩原理
离散余弦变换DCT在图像压缩中具有广泛的应用,它是JPEG、MPEG等数据压缩标准的重要数学基础。
和相同图像质量的其他常用文件格式(如GIF(可交换的图像文件格式),TIFF(标签图像文件格式),PCX(图形文件格式))相比,JPEG是目前静态图像中压缩比最高的。JPEG比其他几种压缩比要高得多,而图像质量都差不多(JPEG处理的图像只有真彩图和灰度图)。正是由于其高压缩比,使得JPEG被广泛地应用于多媒体和网络程序中。JPEG有几种模式,其中最常用的是基于DCT变换的顺序型模式,又称为基本系统(Baseline)。
用DCT压缩图像的过程为:
(1)首先将输入图像分解为8×8或16×16的块,然后对每个子块进行二维DCT变换。
(2)将变换后得到的量化的DCT系数进行编码和传送,形成压缩后的图像格 式。
2-DCT变换公式如下:
177(2x1)u(2y1)vC(u,v)[E(u)E(v)f(x,y)coscos]4x0y01616其中: f(x,y)—输入/输出图像取样值(基准系统的取值为[-128,127]); C(u,v)—DCT系数(基准系统中C(u,v)的取值范围为[-1023,1023]);
12u0C(u)u0112v0C(v)v01C(0,0)代表DC系数,其余63个为AC系数。用DCT解压的过程为:
(1)对每个8×8或16×16块进行二维DCT反变换。
(2)将反变换的矩阵的块合成一个单一的图像。
余弦变换具有把高度相关数据能量集中的趋势,DCT变换后矩阵的能量集中在矩阵的左上角,右下的大多数的DCT系数值非常接近于0。对于通常的图像来说,舍弃这些接近于0的DCT的系数值,并不会对重构图像的画面质量带来显著的下降。所以,利用DCT变换进行图像压缩可以节约大量的存储空间。压缩应该在最合理地近似原图像的情况下使用最少的系数。使用系数的多少也决定了压缩比的大小。
在压缩过程的第2步中,可以合理地舍弃一些系数,从而得到压缩的目的。在压缩过程的第2步,还可以采用RLE和Huffman编码来进一步压缩。
三、实验步骤
1.打开计算机,启动MATLAB程序;
2.调入实验数字图像,并进行数据的DCT编码压缩处理;
3.对图像分别给出保留1个、2个、3个、….、20个DCT变换系数的解压缩结果,这可调整矩阵的mask中1的个数实现,你认为保留几个系数时,图像的恢复效果可以接受,通过观察,给出结论。
4.记录和整理实验报告
四、实验仪器
1计算机; MATLAB、Photoshop等程序; 3移动式存储器(软盘、U盘等)。4记录用的笔、纸。
五、实验程序 DCT编码压缩处理
RGB = imread('C:UserslenovoDesktopbb.jpg');%读取图像 I = rgb2gray(RGB);%将其转为灰度 J = dct2(I);%进行二维离散余弦变换
imshow(log(abs(J)),[]), %显示出变换后的图像,此时能量集中在左上角 colormap(jet(64)), colorbar %建立颜色模板
J(abs(J)< 10)= 0;%将DCT变换结果中绝对值小于10的系数舍弃 K = idct2(J);%idct2重构图像 figure,imshow(I,[0 255]);figure,imshow(K,[0 255])DCT变换系数的解压缩
I=imread('C:UserslenovoDesktopbb.jpg');%读入原图像; I = rgb2gray(I);I=im2double(I);%将原图像转为双精度数据类型; T=dctmtx(8);%产生二维DCT变换矩阵
B=blkproc(I,[8 8],'P1*x*P2',T,T');%计算二维DCT,矩阵T及其转置T’是DCT函数P1*x*P2的参数 Mask=[ 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0];%二值掩膜,用来压缩DCT系数,只留下DCT系数中左上角的10个
B2=blkproc(B,[8 8],'P1.*x',Mask);%只保留DCT变换的10个系数 I2=blkproc(B2,[8,8],'P1*x*P2',T',T);%逆DCT,重构图像 Subplot(1,2,1);Imshow(I);title('原图像');%显示原图像 Subplot(1,2,2);Imshow(I2);title('压缩图像');%显示压缩后的图像
六、实验报告内容 DCT编码压缩处理
2.DCT变换系数的解压缩
根据改变mask里面1的各数来改变图片压缩程度 这是原有程序1的个数
1少的个数
1多的个数
七、思考题
1.简述离散余弦变换(DCT)编码的原理。
视频编码和图像编码的对象主要是自然视频信号、图像信号或其预测残差(包括帧内和帧间)信号。号在空间域上的相关性己部分减弱,但是统计数据表明,在某些情况下残差数据之间仍有其较强的相关性。所以类似于图像信号和视频信号,残差信号也需要进行一定的处理。这种去除相关性的处理过程就是变换编码过程。
2.有损压缩和无损压缩的区别和联系。
利用有损压缩技术可以大大地压缩文件的数据,但是会影响图像质量,使用了有损压缩的图像仅在屏幕上显示,可能对图像质量影响不太大,至少对于人类眼睛的识别程度来说区别不大。如果要减少图像占用内存的容量,就必须使用有损压缩方法。无损压缩方法的优点是能够比较好地保存图像的质量,但是相对来说这种方法的压缩率比较低
3.图像中哪些信息是主要的,哪些信息是次要的?
需要传达给别人的部分是主要的。其他是次要的。例如肖像图片,肖像部分是主要的,其背景是次要的。为了证明当时的场景,场景就是主要的了,而人物就变成次要的。描述风景,人物是次要的,背景是主要的。主要和次要是相对的。没有绝对的主要,也没有绝对的次要。
第二篇:实验四 心电图压缩技术
实验四 ECG信号压缩
一、实验目的
1.熟悉ECG信号压缩的基本原理; 2.掌握采用转折点算法压缩ECG信号; 3.掌握采用AZTEC算法压缩ECG信号;
二、实验内容
1.x为ECG信号,x=-1*[-4-2 0-4-6-4-2-4-6-6-4-4-6-6-2 6 12 8 0-16-38-60-84-90-66-32-4-2-4 8 12 12 10 6 6 6 4 0 0 0 0 0-2-4 0 0 0-2-2 0 0-2-2-2-2 0];在matlab中利用plot函数画出其波形,并观察其特点;
2.采用转折点算法压缩该ECG信号;
3.采用AZTEC算法压缩ECG信号,观察不同Vth, VLth参数下的压缩信号波形。
三.实验原理:
1.转折点算法的目的是使心电信号的采样频率由200次/s减少到100次每秒。除了大振幅与陡峭的QRS复波外,对于ECG来说,100次/s的采样速率是足够的。转折点算法基于以下认识:心电图信号一般被过分采样,其采样频率比其最高频率成分还要快4或5倍。
AZTEC算法:数据压缩算法将原始ECG数据分为水平直线和斜线段。它产生了一个线段序列,形成了心电图的逐段线性逼近。
线检测
线处理
四. 实验程序
%转折点算法计算ECG信号
x=-1*[0 0 0 0 0-4-2 0-4-6-4-2-4-6-6-4-4-6-6-2 6 12 8 0-16-38-60-84-90-66-32-4-2-4 8 12 12 10 6 6 6 4 0 0 0 0 0-2-4 0 0 0-2-2 0 0-2-2-2-2 0];subplot(2,2,1);plot(x);N=length(x);s1=0;s2=0;y=[x(1)];for i=1:2:N-2 x0=x(i);x1=x(i+1);x2=x(i+2);s1=sign(x1-x0);s2=sign(x2-x1);
if or(not(s1),s1+s2)==1 r=x2;
y=horzcat(y,r);%为y增加内容
else r=x1;
y=horzcat(y,r);%为y增加内容
end end
subplot(2,2,2);plot(y);
%AZTEC算法计算ECG信号 m=length(x);i=1;Vmxi=x(i);Vmni=x(i);
LineMode='_PLATEAU';LineLen=1;Vth=2;VLth=1;AZT=[];while i LineLen=LineLen+1; if LineLen<=50 Vmxi=max(Vmxi,V);Vmni=min(Vmni,V); if abs(Vmxi-Vmni) end end T1=LineLen-1;V1=(Vmx+Vmn)/2; if LineMode=='_PLATEAU' if T1>VLth AZT=horzcat(AZT,[T1,V1]); else LineMode='_SLOPE '; if length(AZT)>0 Vsi=AZT(end); else Vsi=V; end if(V1-Vsi)<0 sgn=1;else sgn=-1;end Tsi=0;Vsi=V;end else if T1>VLth AZT=horzcat(AZT,[-1*Tsi,Vsi,T1,V1]);LineMode='_PLATEAU'; else if(V1-Vsi)*sgn<0 AZT=horzcat(AZT,[-1*Tsi,Vsi]);Tsi=0;Vsi=V1;sgn=sgn*-1; else Tsi=Tsi+T1;Vsi=V1; end end end Vmxi=V;Vmni=V;LineLen=1;end subplot(2,2,3);plot(AZT);%描绘压缩信号 m=length(AZT);subplot(2,2,4)n=1;x0=[0];y0=[0];for i=1:2:m if AZT(i)>0 xx=[x0,n,n+AZT(i)];yy=[y0,AZT(i+1),AZT(i+1)];line(xx,yy,'color','g');x0=xx(3);y0=yy(3);n=n+abs(AZT(i)); else xx=[x0,n,n-AZT(i)+1];yy=[y0,AZT(i-1),AZT(i+1)];line(xx,yy,'color','r');x0=xx(3);y0=yy(3); n=n+abs(AZT(i))+1;end end 实验结果: 五,结果分析: 1.转折点算法简单、快速、产生固定的2:1的压缩比。在有选择地删除一半采样数据后,可以通过被存数据对之间插值的方法来恢复原始数据由原始信号到转折点算法下的波形横轴减少到原来的一半(0-70到0-35),所以这个图形实现数据的压缩.2.。将平稳段和斜线段扩展成离散点来重建AZTEC数据。图三就是离散的原始波形 3.图四彩色图绘制的是将离散的AZTEC算法计算出来的波形进行连线所成的结果,AZTEC算法中将心电信号转变成由产生阶梯状的心电图信号波形,原始信号跟AZTEC算法下的压缩ECG信号不断改变的线段的采样长度和幅值,特点是图形呈阶梯状 六.实验小结 通过本次试验熟悉ECG信号压缩的基本原理;掌握采用转折点算法压缩ECG信号。掌握采用AZTEC算法压缩ECG信号。学会使用简单的压缩数据的功能使得在生物医学信号处理的功能上实现一些简单的功能从而达到处理数据的功能。 课题:信息编码中的声音编码和图像编码 教学目标: 一、知识与技能: 1、了解声音编码的两个步骤。 2、理解并学会采样频率、量化级数与存储声音的容量之间的关系及其计算方法。 3、了解计算机中显示的图像的两大分类的特点与区别。 4、理解并学会图像的分辨率、颜色与存储容量之间的关系及其计算方法。 二、过程与方法: 1、通过对“采样”和“量化”的解说,掌握声音编码的原理。 2、通过观察一张放大的位图图像,掌握图像编码的原理。 3、通过例题与练习,加深对声音及图像文件数据量的计算方法。 三、情感态度与价值观: 1、通过对声音和图像的编码的学习和了解,让学生对二进制在编码中的运用有一个更深入地了解,同时与生活中出现的各种音频及图像格式相联系,激发学习信息编码的兴趣。 教学重点:声音和图像文件的存储数据量的计算 教学难点:量化的概念、位图 教学方法:讲解法、演示法、问答法 教学媒体:自制多媒体教学课件 教学过程: 新课导入(课前准备): 在平时的生活中,我们都习惯于用电脑或者MP3之类的工具来听音乐。但是,同学们有没有想过存储在电脑或MP3中的声音和现实生活中人们发出的声音有什么不同呢? 同学们在初中都学过声音的传播,都知道声波吧。声音是一种波,是连续变化、平滑的量。而我们通常把这种连续、平滑的量称作模拟量。 我们前课学过在计算机中的各类信息都是以二进制数的形式进行存储的,我们把各种信息转化为二进制数形式的过程叫做信息的数字化或者信息的编码。那么,编码之后得到的二进制数的量我们就叫做数字量。数字量是一串数字的序列,并不是连续的。 声音和图像是否也是编码之后存放在计算机中的,但是它们又是如何进行编码的呢? 这堂课我们就来研究声音和图像是以何种形式如何存储于计算机中的。课的进行: 声音编码PCM(脉冲编码调制): 1.强调一下声音的概念,说明声音编码的两个步骤:采样、量化(也是模拟信号转化为数字信号的基本方法)及其概念。 采样:采集模拟信号的样本。 采样频率:每秒钟采样的样本数(单位:Hz)。 量化:把采集得到的模拟量值序列转换成一个二进制数序列。 2.观察图片,加深对采样及量化的理解。 采样 采样频率越高,文件越大(数据量),音质越好。采样周期越短,文件越大(数据量),音质越好。3.把采样得到的模拟量值序列转换为二进制数序列。 量化 由图可知,模拟量值序列为:5;2;5;10;10;7;9;14;14;12;8;4;1;2;5。则它的数字量值序列是什么?0101;0010;0101;1010;1010;0111;1001;1110;1110;1100;1000;0100;0001;0010;0101。 若连续两个采样点的模拟量序列为4,6,则转化为二进制数序列为110100。 (引出量化级数,也就是用几位二进制数表示。)量化级数与声音的强弱(振幅)成正比。4.用一道例题引出每秒数据量的计算公式。 提问:红色部分数据室如何得出的? 每秒数据量(bit)=采样频率(Hz)*量化级数(bit)*声道数 每秒数据量(Byte)=采样频率(Hz)*量化级数(bit)*声道数÷8 2个字节数 5.练习:某种音频文件的采样频率为22.050kHz,量化的值用16位二进制数表示,立体声双声道,则这个音频文件每分钟的数据量为多少? (22050*16*2÷8)*60=5292000B=5167.97KB=5.05MB 6.目前音质最好的是CD音频格式和WAV格式,MP3格式和WMA格式的音质次之,RA格式的声音文件适用于在线播放。 图像编码: 矢量图 1.图像的两大类: 缺点。 矢量图:用直线和曲线等属性来描述图形,均通过数学公式获得。优点:数据量较小;无论放大、缩小或旋转等都不会失真。 缺点:难以表现色彩层次丰富的逼真图像效果;打开和制作矢量图都需要专门的软件。 位图:由许许多多的小点按行列排序组成,这些小点称为像素。优点:像素越多,图像的信息越完整,所还原的图像精度越高。缺点:像素越多所带来的数据量也就越大;放大到一定比例就会失真。分辨率:像素的数量。 分辨率=水平方向上的像素数量*垂直方向上的像素数量。2.位图的格式: .bmp(未压缩,数据量比较大).TIF(非失真压缩,用于叫专业的用途).jpg(静态图像压缩标准,压缩比高,失真不明显).gif(压缩比较高,文件长度较小,用于网页应用)3.颜色深度:记录每个像素所使用的二进制位数。黑白位图:一位二进制表示一个像素。(21) 如果把白色与黑色之间分为256个等级,那么这样的灰度图每个像素需要几位二进制数来表示颜色? 8位。 计算机中彩色图像的每一种颜色是由红、绿、蓝三种原色组成,每种原色又可以分为256个等级。 那么这样的图像每个像素需要几位二进制数来表示颜色? 24位。 位图 观察图片比较两幅图的不同点。并根据书本上的内容找出矢量图和位图的优4.图像编码的数据量的计算: 若采用4000*3000的分辨率来拍照,且图像中每个像素用16位二进制数表示颜色,那么它的数据量有多少? 4000*3000*16÷8=24000000B=23437.5KB=22.89MB 图像编码的数据量(bit)=分辨率*每个像素的二进制位数 练习: 1.计算机中一幅800*600像素的32位色的BMP位图图像所占用的存储空间大约是(A)A 1.83MB B 234KB C 934KB D 1.2MB 2.如一幅彩色图像的分辨率为1024×768,每种原色分成256种层次,那么为了记录这幅图像需要多大的存储空间呢? 1024×768×8×3÷8=2359296B=2304KB=2.25MB (行数*列数) 课的结束:总结声音编码和图像编码的原理,强调一下数据量的计算方法。教学后记: 电子科技大学 信 息 网 络 技 术 实 验 报 告 政治与公共管理学院 2016-03-17 实验名称 虚拟机上安装Linux系统并调试实验 实验编号 004 姓名 罗佳 学号 2014120101013 成绩 一、实验室名称 政管电子政务实验可视化办公室 二、实验项目名称 在虚拟机上安装Linux操作系统并设置调试实验 三、实验原理 虚拟机(Virtual Machine)不是一台真正的计算机,而是利用真正计算机的部分硬盘空间,通过虚拟机软件模拟出一台计算机。这台虚拟机拥有自己的CPU等外部设备,现在的虚拟机软件已经能让虚拟机的功能与真正的计算机没有什么区别。用户可以对虚拟机进行磁盘分区、格式化、安装操作系统等操作,而对本身的计算机没有任何影响。 四、实验目的 通过Linux操作系统安装、设置、调试等实验加深对网络操作系统中进程管理、存储管理、设备管理的理解和运用。 五、实验内容 实验2 RedHat Linux 9.0桌面环境的基本操作 Linux操作系统上最常用的桌面环境为GNOME和KDE,两种使用环境稍有差别,RedHat Linux9.0以GNOME作为默认桌面。 1、设置系统面板 1)设置底部任务栏面板隐藏 操作步骤 (1)以普通用户jkx身份登录系统,进入桌面环境; (2)右击底部任务栏面板空白处,在快捷菜单中选择“属性”项,弹出“面板属性”对话框;(3)在“边缘面板”选卡中选中“自动隐藏”复选框,并选中“显示隐藏按钮”复选框,单击“关闭”按钮,底部面板即处于隐藏状态。观察操作前后底部面板的状态;(4)移动光标到桌面上端,底部面板出现;(5)再次设置底部面板,恢复默认设置。2)在窗口顶部创建菜单面板,并在上面添加、移动和删除对象 操作步骤 (1)右击底部任务栏面板空白处,在快捷菜单中选择“新建面板”项,选择“菜单面板”,屏幕的顶部将出现菜单面板;(2)右击菜单面板的空白处,依次选则“添加到面板”-“抽屉”,面板上将出现一个抽屉; (3)在面板上单击抽屉图标,打开抽屉;移动抽屉到面板的其他位置;(4)选中抽屉图标,利用快捷菜单删除抽屉;删除抽屉将同时删除抽屉中的所有内容。 2、设置桌面 1)设置桌面背景 操作步骤 (1)右击桌面空白处,在快捷菜单中选择“改变桌面背景”项,弹出“背景首选项”对话框; (2)根据对话框做相应设置,则所有工作区的背景都将发生变化,观察操作结果;(3)关闭对话框。2)设置屏幕保护程序 操作步骤 (1)单击任务栏最左端的主菜单,选择“首选项”-“屏幕保护程序”菜单,打开屏幕保护程序对话框的选卡“Display Models”; (2)设置Model为“只使用一个屏保程序”,并在从屏保主题列表框中选择主题Anemore,列表的右侧可观察该主题的显示效果;(3)设置等待时间Blank After为1分钟;选中复选框,设置恢复屏幕时输入用户口令,关闭对话框;(4)等待1分钟观察屏保程序的效果。 3、设置桌面图标 1)新建“我的文档”文件夹图标 操作步骤 (1)右击桌面空白处,在快捷菜单中选择“新建文件夹”项,桌面将出现一个新的文件夹,名称默认为“未命名的文件夹”;(2)启动中文输入法(Ctrl+Space),修改文件夹名为“我的文档”。2)新建文本编辑器gedit的快捷图标 操作步骤 (1)右击桌面空白处,在快捷菜单中选择“新建启动器”项,弹出“新建启动器”对话框;(2)在“名称”栏输入“gedit”,在“命令”栏输入文本编辑器程序的路径“/usr/bin/geidt”,单击右侧“无图标”按钮为快捷项选择图标;(3)单击“确定”按钮,关闭对话框,桌面增加一个应用程序快捷图标。 4、设置主题 创建新主题 操作步骤 (1)依次选择“主菜单”-“首选项”-“主题”菜单,打开“主题首选项”对话框,左边列表是可供选择的已有主题;(2)单击“细节”,可在已有主题上创建具有个人风格的主题:“控件”选卡可选择主题、“窗口边框”可设置边框、“图标”选卡为自定义主题选择一个图标,选择时请注意观察标题栏、边框的显示状态,单击“关闭”按钮回到“主题首选项”对话框。(3)对话框左侧列表中出现一个“自定义主题”,可保存该主题以便将来继续使用。 5、增加启动项 启动桌面环境就自动启动文本编辑器gedit 操作步骤 (1)依次选择“主菜单”-“首选项”-“更多首选项”-“会话”菜单,打开“会话”对话框,并切换到“启动程序”选卡; 2)单击“添加”按钮,弹出“添加启动程序”对话框,在“启动命令”栏输入文本编辑器gedit的路径“/usr/bin/geidt”,并单击“确定”按钮,返回前一个对话框;(3)此时“会话”对话框的启动程序选卡列表中将出现文本编辑器命令行,关闭对话框;(4)注销系统退出当前用户,然后重新登录,检查是否自动启动文本编辑器。 6、使用文件管理器 1)基本文件操作,与Windows下的操作基本一致 操作步骤 (1)启动文本编辑器gedit,在编辑窗口中输入任意字符,保存为f1文件并退出;(2)双击桌面上的的用户主文件夹图标(如jkx的主文件夹),启动文件管理器,找到文件f1; (3)复制f1文件,并重命名为f2; H.261概述 该标准由CCITT于1988至1990间发展制定。 应用于ISDN电话线的视频会议,可视电话等。 ISDN的基本速率为64kbps,可以使用多路复用(p×64kbps)。 解码序列如下: 图像帧类型为 CCIR 601 CIF(352×288)和 QCIF(176×144),信号色度格式4:2:0。 两种帧编码类型:帧内编码 Intraframes(I-frames)和帧间编码 Interframes(P-frames)。 帧内编码的 I-frames主要使用JPEG的技术。 帧间编码的 P-frames使用与前一帧(预测帧,predicted frame)的差值进行编码,因此当前帧依赖于前一帧。 I-frame可以作为随机读取点。 帧内编码(Intra Frame Coding) 下图显示了帧内编码的流程,和JPEG编码过程基本一致。 宏块(macroblock)为原始图像里16×16像素区域。 在4:2:0格式中,一个宏块对应4个亮度块(Y block),1个Cr块,1个Cb块(Cr block & Cb block,子采样后的色度信号块) 对所有DCT系数用常数值进行量化(即,没有JPEG标准里的量化表) 帧间编码(Inter-frame(P-frame)Coding) 帧间编码的基本思路如下图所示: 上图中: 参考图像(reference image)指前面(已编码)的图像。 目标图像(target image)指当前要编码的图像 在帧间编码中,关键过程称为运动估值(motion estimation),对于当前目标图像中的某一宏块,在参考图像中寻找与之最相似的宏块(best match),然后对他们的差值进行和帧内编码类似的编码。 这样作的好处是得到的差值矩阵比较小,编码需要的比特量业也比较小。但是这里还要传送最匹配宏块和当前编码宏块之间相对位置的信息,这里称为运动向量(motion vector)。 两点补充: 1.这里用解码后的图像(decoded image)作为参考图像,而不用原始图像。 2.一般使用“平均绝对差值”(MAD: Mean Absolute Difference)作为判断最匹配块的标准。也可以使用“均方差”(MSE: Mean Squared Errow) 细节:如何对宏块编码 很多宏块能匹配得很好,传送每个宏块在图像中的地址--> Addr 有时找不到合适的匹配,这时传送帧内编码块(INTRA block)--> Type 若想调制量化以得到更好的压缩效果,传送量化值-->Quant 运动向量-->vector 宏块中,某些块匹配很好,其他则较差。这时传送bitmask,用来表示显示哪些块(CBP: Coded Block Pattern)。 象JPEG一样,传送各块。(4 Y, 1 Cr, 1 Cb) H.261比特流结构 很多宏块能匹配得很好,传送每个宏块在图像中的地址--> Addr 有时找不到合适的匹配,这时传送帧内编码块(INTRA block)--> Type 若想调制量化以得到更好的压缩效果,传送量化值-->Quant 运动向量-->vector 宏块中,某些块匹配很好,其他则较差。这时传送bitmask,用来表示显示哪些块(CBP: Coded Block Pattern)。 象JPEG一样,传送各块。(4 Y, 1 Cr, 1 Cb) H.261比特流结构 H.261中的难点问题 1.运动向量搜 当前目标图像中待编码宏块C,其右上角坐标为(x,y),则该宏块中像素为C(x+k,y+l) 参考图像内,右上角坐标(x+i,y+j)的参考宏块R内像素为R(x+i+k,y+j+l) 下式求绝对误差平均值(MAE: Mean Absolute Error): 运动向量搜索的目标就是寻找一个MAE值最小的参考宏块,其对应向量(u,v)为运动向量。 全搜索(Full Search Method) 1.对参考图像内范围为[-p,p]搜索区域的所有可能宏块进行搜索。 2.全搜索方法的运算量为: 设对比每个像素需要3次操作:减法、求绝对值,相加。当搜索范围(p)较大时,全搜索算法的运算量相当大,因此需要各种快速算法。 二维对数搜索。(Two-Dimensional Logarithmic Search) 类似于binary search,在一个范围为[-p/2, p/2] 的窗口内对九个点进行初始的MAE计算(如下图所示) 1.在上述九点求出的MAE中,找出最小的一个。 2.以该点为中心,用上一步搜索范围的一半形成新的搜索区域,对新的九点进行搜索。 3.重复上两步,直到搜索区范围为一个像素。 层次化运动估值(Hierarchical Motion Estimation) 1.对目标图像和参考图像,生产若干低分辨率的版本。2.对最低分辨率版本搜索运动向量。 3.由低分辨率向高分辨率,逐级修改运动向量。(在每一级进行小范围搜索,最后得到的运动向量可能很大) 各种快速算法运算量大大小于全搜索算法,但搜索结果要比全搜索算法差,全搜索算法得到全局极小点,而快速算法可能只能找到局部极小点。以下是各种算法性能比较: 2.误差传递(Propagation of Errors) 不能有太多连续的P帧。 在比较时(求MAD时),参考帧使用解码帧。3.比特率控制(Bit-rate Control) 基于“缓冲器充满程度”(buffer fullness)进行简单的反馈控制。 若缓冲器太满,增加量化比例因子来降低数据量。H.263 H.263是1996年3月发表的,针对低码率应用的视频压缩标准。和h.261一样,该标准对帧内压缩 采用transform 编码,对帧间压缩采用预测编码 改进: 半象素精度运动补偿 无限制运动向量 Syntax-based arithmetic coding 先进的预测,PB帧 除了CIF和QCIF,H.263还支持SQCIF,4CIF和16CIF 以下是H.261/H.263支持的视频格式:第三篇:声音编码和图像编码(教案)
第四篇:实验四虚拟机实验介绍
第五篇:图像压缩原理简介之H.261H.263