数字视频报告-图像的DPCM预测编码研究讲解

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

成绩

评阅人

中国矿业大学2015-2016学年第一学期

《数字视频技术》课程小设计考核

设计题目:图像的DPCM预测编码研究

专业班级:

学生姓名:

学生学号:

指导教师:

成绩:

本人郑重声明:本人认真、独立完成了查找资料、完成作业、编写程序等考核任务,无抄袭行为。

签字:

日期:

一、设计任务、目的和要求:

1.1设计任务:

DPCM预测编码

1.2设计目的:

1了解图像压缩的意义和手段;

2熟悉DPCM预测编码的基本性质;

3熟练掌握DPCM预测编码的方法与应用;

4掌握利用MATLAB编程实现数字图像的DPCM预测编码。

1.3设计要求:

查阅无损和有损DPCM预测编码资料,分别实现图像的一阶,二阶,三阶,四阶DPCM编码和解码恢复图像;实现无损和有损处理结果对比,处理结果要求最终图像显示,且计算压缩比。

二、总体方案设计

2.1 DPCM原理:

DPCM编码,简称差值编码,是对模拟信号幅度抽样的差值进行量化编码的调制方式(抽样差值的含义请参见“增量调制”)。这种方式是用已经过去的抽样值来预测当前的抽样值,对它们的差值进行编码。差值编码可以提高编码频率,这种技术已应用于模拟信号的数字通信之中。

对于有些信号(例如图像信号)由于信号的瞬时斜率比较大,很容易引起过载,因此,不能用简单增量调制进行编码,除此之外,这类信号也没有像话音信号那种音节特性,因而也不能采用像音节压扩那样的方法,只能采用瞬时压扩的方法。但瞬时压扩实现起来比较困难,因此,对于这类瞬时斜率比较大的信号,通常采用一种综合了增量调制和脉冲编码调制两者特点的调制方法进行编码,这种编码方式被简称为脉码增量调制,或称差值脉码调制,用DPCM表示。

2.2 运行环境

本次课程小设计使用的软件平台为MATLAB2014a。

2.3 编码算法原理及流程图

DPCM 有损编、解码原理图

系统包括,发送、接收和信道传输三个部分。发送端由编码器、量化器、预测器和加/减法器组成;接收端包括解码器和预测器等;信道传送以虚线表示。由图可见DPCM 系统具有结构简单,容易用硬件实现(接收端的预测器和发送端的预测器完全相同)的优点。图中输入信号f(i,j)是坐标为(,)i j 像素点的实际

灰度值, (,)f i j 是由已出现先前相邻像素点的灰度值对该像素点的预测灰度值。e i j (,) 是预测误差。假如发送端不带量化器,直接对预测误差e i j (,) 进行编码、传送,接收端可以无误差地恢复f i j (,) 。这是可逆的无失真的DPCM 编码,是信息保持编码;但是,如果包含量化器,这时编码器对'e i j (,) 编码,量化器导致了不可逆的信息损失,这时接收端,经解码恢复出的灰度信号,不是真正的f i j (,) ,以'f i j (,) 表示这时的输出。可见引入量化器会引起一定程度的信息损失,使图像质量受损。但是,为了压缩比特数,利用人眼的视觉特性,对图像信息丢失不易觉察的特点,带有量化器有失真的DPCM 编码系统还是普遍被采用。

其中无损编码与有损编码的区别在于是否被量化。预测误差不被量化,直接被编码传送的是无损量化,预测误差被量化,再经编码传量化器

预测器

预测器编码器

解码器f(i,j)

e(i,j)e'(i,j)(i,j)f'(i,j)f(i,j)^e'(i,j)f'(i,j)

f(i,j)^输入输出信道传输f ^

送的是有损编码。

三、设计与实现

Matlab程序如下:

%一阶/二阶/三阶/四阶预测的区别不仅在于信号的清晰度,而更重要在于%阶数越高,图像越光滑.

clc

clear

close all;

%从D盘导入图片,以学校风光图片为例实现DPCM

I03=imread('cumt.jpg');

%把RGB图像转化为灰度图像

I02=rgb2gray(I03);

I=double(I02);

fid1=fopen('mydata1.dat','w');

fid2=fopen('mydata2.dat','w');

fid3=fopen('mydata3.dat','w');

fid4=fopen('mydata4.dat','w');

[m,n]=size(I);

%对预测信号将边缘锁定,防止程序运行时抓不到数据

J1=ones(m,n);

J1(1:m,1)=I(1:m,1);

J1(1,1:n)=I(1,1:n);

J1(1:m,n)=I(1:m,n);

J1(m,1:n)=I(m,1:n);

J2=ones(m,n);

J2(1:m,1)=I(1:m,1);

J2(1,1:n)=I(1,1:n);

J2(1:m,n)=I(1:m,n);

J2(m,1:n)=I(m,1:n);

J3=ones(m,n);

J3(1:m,1)=I(1:m,1);

J3(1,1:n)=I(1,1:n);

J3(1:m,n)=I(1:m,n);

J3(m,1:n)=I(m,1:n);

J4=ones(m,n);

J4(1:m,1)=I(1:m,1);

J4(1,1:n)=I(1,1:n);

J4(1:m,n)=I(1:m,n);

J4(m,1:n)=I(m,1:n);

相关文档
最新文档