变换编码的设计与实现
一、实验目的
采用dct变换,编制对图象进行变换的程序,图象采用8x8分快。
对变换系数做Z型扫描,分别采用前2、3、5、8个和全部系数恢复原图象,观察结果,给出psnr值。
对变换后系数做量化,量化表采用JPEG量化表,量化过程如下:
,j)=C(i,j)/Q(i,j),
其中C(i,j)为变换后系数,F(i,j)为量化后系数,Q(i,j) = K q(i,j),q(i,j)为JPEG基本量化表。
量化后做重构图像(反量化,反变换),
计算K=1时的PSNR值,
求PSNR大约分别为25、28、30、35时的K值。
二、实验环境
系统环境:windows 10;
编程语言:matlab
三、实验原理
将空间域的图像信号映射变换到另一个复正交矢量空间,产生一批变换系数,制去除图像的空间冗余度,然后对这些系数进行编码处理。具体来讲就是讲图像的每一个像素定为一百个字块,然后将这N*N个像块各自正交变换,再通过滤波、量化,再统一编码。
四、实验过程与结果
实验使用的原图是lena.bmp(512*512)
4.1 DCT变换
DCT变化是:将图像分解为8×8的子块,并对每一个子块进行单独的DCT变换,然后对变换结果进行量化、编码。DCT变换公式: 正变换:Y=CPC';逆变换:P=C'YC。
实验结果:
4.2 对变换系数做Z型扫描
对变化系数矩阵进行Z字型扫描,Z字形扫描的过程如下图所示:
4.3 对变换后系数做量化
采用JPEG量化表,如下a1是亮度量化表。
量化过程如下:K(i,j)=C(i,j)/Q(i,j),其中C(i,j)为变换后系数,K(i,j)为量化后系数,Q(i,j) = k .* a1(i,j),a1(i,j)为JPEG基本量化表。
4.4 量化后做重构图像
DCT反变换,根据量化过程进行反量化。
实验结果:
4.5 PSNR的计算
公式是:PSNR=10*log10((2^n-1) ^ 2/MSE)。
=1时的PSNR值为-10.3237。
PSNR大约分别为25、28、30、35时的K值为6,6,7,8。
PSNR实验结果(量化后11比特整数,即k=11):
本文含有隐藏内容,请 开通VIP 后查看