一种基于变换域下采样技术的低分辨率图像压缩方法技术领域
本发明属于图像编码领域,主要涉及数字图像的压缩技术。
背景技术
图像的低分辨实现主要是为了适应低分辨率显示设备的显示需求。在实际应用
中,一般需要对原始图像进行编码压缩和等分辨率重建,再降低压缩后图像的分辨率,才能
够满足这一需求。而低分辨率图像的获得,通常是通过对压缩后的图像进行空域下采样得
以实现。因此,高质量的压缩图像对获得后期高质量的低分辨率图像十分重要。为了实现前
期高质量的压缩图像,传统方法往往需要通过提高编码码率实现,这样就会降低整体的编
码效率。因此,如何在带宽和存储空间有限的条件下,实现高质效的低分辨率压缩图像的显
示,是新型图像编码技术研究领域需要解决的一大问题。
传统的对于压缩图像的地低分辨重建,需要分两步实现,第一步是对图像进行压
缩,第二步是对压缩后的图像进行水平方向和垂直方向上像素点的空域下采样,以降低图
像的分辨率。当使用传统的JPEG图像编码标准对图像进行压缩时,所得的压缩图像中的每
个像素点的质量相当,进行低分辨率显示时,显示质量因受到编码质量的约束而无法进一
步提高,因此造成了压缩后图像低分辨率显示输出效率的低下,参见参考文献“JPEG(Joint
PhotographicExpertsGroup):ISO/IECIS10918–1/ITU-TRecommendationT.81,
DigitalCompressionandCodingofContinuous-ToneStillImage,1993”。如果能够
将图像的编码压缩和低分辨率显示输出相结合,那么将会极大地提高压缩图像的低分辨率
显示输出的效率。
发明内容
本发明的目的是提供一种新型的基于变换域下采样技术的低分辨率图像压缩方
法,这种方法主要是将变换域下采样技术和图像低分辨率显示输出相结合,对整个图像进
行压缩编码的同时,为低分辨率的显示提供高质量的重建图像。与传统的方法相比,本发明
在图像压缩的过程中,为低分辨率的图像输出提供了高质量的像素点,克服传统方法因分
步实现压缩和低分辨率输出而造成低分辨压缩图像质量较差的缺点。
为了方便描述本发明的内容,首先做以下术语定义:
定义1,传统的JPEG图像压缩标准中图像分块的方法
传统的图像分块方法按照JPEG标准中对图像进行分块的方法,将原始图像划分为
多个互不重叠的等尺寸图像块,具体描述过程参见“JPEG(JointPhotographicExperts
Group):ISO/IECIS10918–1/ITU-TRecommendationT.81,DigitalCompressionand
CodingofContinuous-ToneStillImage,1993”;
定义2,传统的计算离散余弦变换矩阵的方法
传统的计算离散余弦变换矩阵的方法是根据离散余弦变换矩阵的定义,计算变换
矩阵中的每一个元素,从而根据需要产生任意大小的离散余弦变换矩阵,具体描述过程参
见文献“数字视频编码技术原理”,高文、赵德斌、马思伟著,科学出版社;
定义3,传统的矩阵Kronecker乘法
传统的矩阵Kronecker乘法表示为其中,表示Kronecker乘法算子,A是
大小为m×n的矩阵,并且
B是大小为p×q的矩阵,C是大小为mp×nq的矩阵,
具体描述过程参见文献“矩阵分析与应用(第2版)”,张贤达著,清华大学出版社;
定义4,传统的矩阵转置操作
传统的矩阵转置是把矩阵A的行换成相应的列,得到的新矩阵称为A的转置矩阵,
记作AT,符号T表示矩阵的转置操作;具体描述过程参见文献“矩阵分析与应用(第2版)”,张
贤达著,清华大学出版社;
定义5,传统的基于离散余弦变换的向量填充算法
传统的基于离散余弦变换的向量填充算法利用离散余弦变换矩阵和原始输入向
量的一部分分量,通过计算相应的填充值,对另一部分分量进行数据替换;具体步骤参见文
献“Arbitrarily-shapedtransformcodingbasedonanewpaddingtechnique”;
定义6,传统的一维离散余弦变换方法
传统的一维离散余弦变换方法利用离散余弦变换矩阵左乘输入行向量,从而得到
变换后的系数向量,具体描述过程参见文献“数字视频编码技术原理”,高文、赵德斌、马思
伟著,科学出版社;
定义7,传统的JPEG图像压缩标准中的量化方法
传统的JPEG图像压缩标准中的量化方法将变换编码后系数矩阵中的每个元素与
量化表格中的每个元素对应相除,然后对得到的每个结果进行四舍五入的取整操作,从而
得到量化的系数矩阵;具体描述过程参见“JPEG(JointPhotographicExpertsGroup):
ISO/IECIS10918–1/ITU-TRecommendationT.81,DigitalCompressionandCoding
ofContinuous-ToneStillImage,1993”;
定义8,传统的JPEG图像压缩标准中的反量化方法
传统的JPEG图像压缩标准中的反量化方法将量化后系数矩阵中的每个元素与量
化表格中的每个元素对应相乘,从而得到反量化的系数矩阵;具体描述过程参见“JPEG
(JointPhotographicExpertsGroup):ISO/IECIS10918–1/ITU-TRecommendation
T.81,DigitalCompressionandCodingofContinuous-ToneStillImage,1993”;
定义9,传统的JPEG图像压缩标准中的编码方法
传统的JPEG图像压缩标准中的编码方法主要包括对每个图像块进行变换编码、量
化和熵编码以及计算编码比特数;具体描述过程参见“JPEG(JointPhotographicExperts
Group):ISO/IECIS10918–1/ITU-TRecommendationT.81,DigitalCompressionand
CodingofContinuous-ToneStillImage,1993”;
定义10,传统的JPEG图像压缩标准中的解码方法
传统的JPEG图像压缩标准中的解码方法主要包括对每个图像块进行反变换和反
量化;具体描述过程参见“JPEG(JointPhotographicExpertsGroup):ISO/IECIS
10918–1/ITU-TRecommendationT.81,DigitalCompressionandCodingof
Continuous-ToneStillImage,1993”;
定义11,传统的二维离散余弦反变换方法
传统的二维离散余弦反变换方法分两步完成,第一步,利用离散余弦变换矩阵的
逆矩阵左乘输入矩阵,得到一个矩阵;第二步,用离散余弦变换矩阵转置矩阵的逆矩阵再右
乘第一步得到的矩阵,从而得到反变换后的矩阵;具体描述过程参见文献“数字视频编码技
术原理”,高文、赵德斌、马思伟著,科学出版社;
定义12,传统的双三次插值方法
传统的双三次插值方法是二维空间中最常用的插值方法,在这种插值方法中,点
(u,v)处的值可以通过它周围矩形网格中最近的十六个点的加权平均得到;具体描述过程
参见文献“Cubicconvolutioninterpolationfordigitalimageprocessing”;
定义13,传统的JPEG图像压缩标准中图像块合成图像的方法
传统的图像块合成图像的方法是按照JPEG图像压缩标准中用图像块进行相互不
重叠组合以合成完整图像的方法,具体描述过程参见“JPEG(JointPhotographicExperts
Group):ISO/IECIS10918–1/ITU-TRecommendationT.81,DigitalCompressionand
CodingofContinuous-ToneStillImage,1993”;
本发明提供一种基于变换域下采样技术的低分辨率图像压缩方法,它包括以下步
骤:
步骤1,图像的预处理
将大小为W×H的图像,按照传统的JPEG图像压缩标准中图像分块的方法划分为N
=(W×H)/162个互不重叠的,大小为16×16的正方形图像块,记为B1,B2,…,Bi,…,BN,这里,
W代表图像的宽度,H代表图像的高度,N代表图像划分后图像块的总个数,i代表图像块的索
引,i∈{1,2,…,N}。
步骤2,索引矩阵的产生
把256个自然数1,2,…,256按从小到大,从上到下的顺序逐列摆放,产生一个大小
为16×16的索引矩阵,记为I:
将I中的元素记为I(x,y),这里,x代表索引矩阵I内元素的横坐标,y代表索引矩阵
I内元素的纵坐标,x和y都是自然数,并且1≤x≤16,1≤y≤16。
步骤3,列索引向量的产生
首先,定义2个列索引子向量,分别记为这里,是一个1×64的行
向量,x为奇数,y为奇数,并且1≤x≤16,1≤y≤16},即…,
I(15,1)I(1,3)I(3,3),…,I(15,3),…,I(1,15)I(3,15),…,I(15,15)]=[13,…,
153335,…,47,…,225227,…,239];是一个1×192的行向量,x和y不同
时为奇数,并且1≤x≤16,1≤y≤16},即…,I(16,1)I(1,2)I(2,
2),…,I(16,2),…,I(2,15)I(4,15),…,I(16,15)I(1,16)I(2,16),…,I(16,16)]=
[24,…,161718,…,32,…,226228,…,240241242,…,256],其中,I是步骤2中产生的索引
矩阵,x代表索引矩阵I内元素的横坐标,y代表索引矩阵I内元素的纵坐标,x和y都是自然
数;
然后,将按照从左到右的顺序组成一个1×256的列索引向量,记为
…,I(15,1)I(1,3)I(3,3),…,I(15,3),…,I(1,
15)I(3,15),…,I(15,15)I(2,1)I(4,1),…,I(16,1)I(1,2)I(2,2),…,I(16,2),…,I(2,
15)I(4,15),…,I(16,15)I(1,16)I(2,16),…,I(16,16)]=[13,…,153335,…,47,…,
225227,…,23924,…,161718,…,32,…,226228,…,240241242,…,256],这里,I是步骤2
中产生的索引矩阵。
步骤4,行索引向量的产生
首先,定义3个行索引子向量,分别记为这里,是一个大
小为1×64的行向量,1≤x≤8,1≤y≤8},即…,I(8,1)I
(1,2)I(2,2),…,I(8,2),…,I(1,8)I(2,8),…,I(8,8)]=[12,…,81718,…,24,…,
113114,…,120];是一个大小为1×64的行向量,9≤x≤16,1≤y≤8},即
…,I(16,1)I(9,2)I(10,2),…,I(16,2),…,I(9,8)I(10,8),…,I
(16,8)]=[910,…,162526,…,32,…,121122,…,128];是一个大小为1×128的行向
量,1≤x≤16,9≤y≤16},即…,I(16,9)I(1,10)I(2,
10),…,I(16,10),…,I(1,16)I(2,16),…,I(16,16)]=[129130,…,144145146,…,
160,…,241242,…,256],其中,I是步骤2中产生的索引矩阵,x代表索引矩阵I内元素的横
坐标,y代表索引矩阵I内元素的纵坐标,x和y都是自然数;
然后,将按照从左到右的顺序组成一个大小为1×256的行索
引向量,记为=[I(1,1)I(2,1),…,I(8,1)I(1,2)I(2,
2),…,I(8,2),…,I(1,8)I(2,8),…,I(8,8)I(9,1)I(10,1),…,I(16,1)I(9,2)I(10,
2),…,I(16,2),…,I(9,8)I(10,8),…,I(16,8)I(1,9)I(2,9),…,I(16,9)I(1,10)I(2,
10),…,I(16,10),…,I(1,16)I(2,16),…,I(16,16)]=[12,…,81718,…,24,…,
113114,…,120910,…,162526,…,32,…,121122,…,128129130,…,144145146,…,
160,…,241242,…,256];这里,I是步骤2中产生的索引矩阵。
步骤5,变换矩阵的产生
首先,按照传统的计算离散余弦变换矩阵的方法,产生一个大小为16×16的离散
余弦变换矩阵,记为C;
其次,将离散余弦变换矩阵C带入传统的矩阵Kronecker乘法中,产生一个大小为
256×256的变换矩阵,记为D,并且这里,符号代表传统的矩阵Kronecker乘法
中的Kronecker乘法算子。
步骤6,调整变换矩阵的列
将步骤3产生的列索引向量的每个元素记为这里,l表示中元素的
索引,l是自然数,1≤l≤256;
用矩阵D中的所有列向量组成一个新的大小为256×256的变换矩阵,记为E,步骤
是:
第1次,取矩阵D的第个列向量,生成矩阵E的第1列;……;第l次,取矩阵D的
第个列向量,生成矩阵E的第l列;……;第256次,取矩阵D的第个列向量,生
成矩阵E的第256列,
即
这里,em,n代表矩阵E中的元素,m代表索引矩阵E内元素的横坐标,n代表索引矩阵E
内元素的纵坐标,m和n都是自然数,1≤m≤256,1≤n≤256。
步骤7,调整变换矩阵的行
将步骤4产生的行索引向量的每个元素记为这里,l表示中元素的
索引,l是自然数,1≤l≤256;
用步骤6产生的矩阵E中的所有行向量组成一个新的变换矩阵,记为F,步骤如下:
第1次,用矩阵E的第个行向量生成矩阵F的第1行;……;第l次,用矩阵E的第
个行向量生成矩阵F的第l行;……;第256次,用矩阵E的第个行向量生成矩阵F的
第256行,
即
这里,fp,q代表矩阵F中的元素,p代表索引矩阵F内元素的横坐标,q代表索引矩阵F
内元素的纵坐标,p和q都是自然数,1≤p≤256,1≤q≤256。
步骤8,将每个图像块转化为列向量
首先,将步骤1产生的图像块Bi中的每一列,按照从左到右的顺序,依次取出,并按
照第一列,第二列,……,第十六列,从上到下的摆放顺序组成一个大小为256×1的列向量,
记为即这里,xj代表列向量中的元素,j是中元素的
下标索引,j是自然数,1≤j≤256;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像
划分后图像块的总个数;符号T表示传统的矩阵转置操作;
接着,将中的元素x1、x3、x5、x7、x9、x11、x13、x15、x33、x35、
x37、x39、x41、x43、x45、x47、x65、x67、x69、x71、x73、x75、x77、x79、x97、x99、x101、x103、x105、x107、x109、x111、
x129、x131、x133、x135、x137、x139、x141、x143、x161、x163、x165、x167、x169、x171、x173、x175、x193、x195、x197、
x199、x201、x203、x205、x207、x225、x227、x229、x231、x233、x235、x237和x239,按照从上到下的顺序生成一
个大小为64×1的列向量,记为即:这里,xk代表列向量
中的元素,k是中元素的下标索引,k是自然数,1≤k≤256;x'j代表列向量中的元素,j
是中元素的下标索引,j是自然数,1≤j≤64;i代表图像块的索引,i∈{1,2,…,N},N代
表步骤1中图像划分后图像块的总个数;符号T表示传统的矩阵转置操作;
步骤9,填充向量的产生
将步骤7中产生的变换矩阵F和步骤8中产生的列向量代入传统的基于离散余
弦变换的向量填充算法中,得到一个大小为192×1的填充列向量,记为即:
这里,x″k代表列向量中的元素,k是中元素的
下标索引,k是自然数,1≤k≤192;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像
划分后图像块的总个数;符号T表示传统的矩阵转置操作;
步骤10,中间向量的产生
用步骤8中产生的列向量和步骤9中产生的列向量按照从上到下的顺序组成
一个大小为256×1的列向量,记为即:
即
这里,yl代表列向量中的元素,l是中元素的下标索引,l是自然数,1≤l≤256;
x'j代表步骤8中产生的列向量中的元素,j是中元素的下标索引,j是自然数,1≤j≤
64;x″k代表步骤9中产生的列向量中的元素,k是中元素的下标索引,k是自然数,1≤k
≤192;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;符
号T表示传统的矩阵转置操作;
步骤11,系数向量的产生
用传统的一维离散余弦变换方法对步骤10中产生的中间向量进行离散余弦变
换,得到系数向量即这里,zj代表列向量中的元素,j是
中元素的下标索引,j是自然数,1≤j≤256;i代表图像块的索引,i∈{1,2,…,N},N代表
步骤1中图像划分后图像块的总个数;符号T表示传统的矩阵转置操作;
步骤12,系数矩阵的产生
定义大小为8×8的系数矩阵为B'i,用的第1至8个元素z1~z8按照从上到下的顺
序生成B'i的第1列;用的第9至16个元素z9~z16按照从上到下的顺序生成B'i的第2列;用
的第17至24个元素z17~z24按照从上到下的顺序生成B'i的第3列;用的第25至32个元素
z25~z32按照从上到下的顺序生成B'i的第4列;用的第33至40个元素z33~z40按照从上到
下的顺序生成B'i的第5列;用的第41至48个元素z41~z48按照从上到下的顺序生成B'i的
第6列;用的第49至56个元素z49~z56按照从上到下的顺序生成B'i的第7列;用的第57
至64个元z57~z64素按照从上到下的顺序生成B'i的第8列;
即 B i ′ = β 1 , 1 β 1 , 2 ... β 1 , n β 2 , 1 β 2 , 2 ... β 2 , n . . . . . . . . . . . . β m , 1 β m , 2 ... β m , n = z 1 z 9 ... z 57 z 2 z 10 ... z 58 . . . . . . . . . . . . z 8 z 16 ... z 64 , ]]>
这里,βm,n是B'i中的元素,m代表矩阵B'i内元素的横坐标,n代表矩阵B'i内元素的
纵坐标,m和n是自然数,1≤m≤8,1≤n≤8;z1,z2,…,z64代表步骤11中产生的列向量中的
64个元素;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个
数;
步骤13,对系数矩阵进行编码
用传统的JPEG图像压缩标准中的量化方法对步骤12中产生的系数矩阵B'i进行量
化,将量化后得到的系数矩阵,记为
这里,是中的元素,m代表矩阵内元素的横坐标,n代表矩阵内元素的
纵坐标,m和n是自然数,1≤m≤8,1≤n≤8;
用传统的JPEG图像压缩标准中的反量化方法对进行反量化,得到反量化后的系
数矩阵B"i,
这里,β″m,n是B"i中的元素,m代表矩阵B"i内元素的横坐标,n代表矩阵B"i内元素的
纵坐标,m和n是自然数,1≤m≤8,1≤n≤8;这里,i代表图像块的索引,i∈{1,2,…,N},N代
表步骤1中图像划分后图像块的总个数;
步骤14,对系数矩阵进行解码
首先,定义一个大小为16×16的全零矩阵,记为
B ^ i = 0 0 ... 0 0 0 ... 0 . . . . . . . . . . . . 0 0 ... 0 ; ]]>
其次,将步骤13得到的矩阵B"i的第1列元素依次取出,并依次放入矩阵第1列的
第1至8行;将矩阵B"i的第2列元素依次取出,并依次放入矩阵第2列的第1至8行;将矩阵
B"i的第3列元素依次取出,并依次放入矩阵第3列的第1至8行;将矩阵B"i的第4列元素依
次取出,并依次放入矩阵第4列的第1至8行;将矩阵B"i的第5列元素依次取出,并依次放
入矩阵第5列的第1至8行;将矩阵B"i的第6列元素依次取出,并依次放入矩阵第6列的
第1至8行;将矩阵B"i的第7列元素依次取出,并依次放入矩阵第7列的第1至8行;将矩阵
B"i的第8列元素依次取出,并依次放入矩阵第8列的第1至8行;将修改后的矩阵记为
这里,是中的元素,p代表矩阵内元素的横坐标,q代表矩阵内元素的
纵坐标,p和q是自然数,1≤p≤16,1≤q≤16;β″m,n是B"i中的元素,m代表矩阵B"i内元素的横
坐标,n代表矩阵B"i内元素的纵坐标,m和n是自然数,1≤m≤8,1≤n≤8;i代表图像块的索
引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
最后,用传统的二维离散余弦反变换方法对矩阵进行二维离散余弦反变换,得
到大小为16×16的像素矩阵,记为bi:
这里,αm,n是bi中的元素,m代表矩阵bi内元素的横坐标,n代表矩阵bi内元素的纵坐
标,m和n是自然数,1≤m≤16,1≤n≤16;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1
中图像划分后图像块的总个数;
步骤15,解码图像块的修正
对步骤14中产生的像素矩阵bi,用传统的双三次插值方法对位于(u,v)位置上的
像素点进行插值,这里,u为bi内像素点的横坐标,v为bi内像素点的纵坐标,u和v是自然数,
并且u和v不同时为奇数,1≤u≤16,1≤v≤16;将得到插值图像块矩阵,记为b′i:
这里,α′m,n是b′i中的元素,m代表矩阵b′i内元素的横坐标,n代表矩阵b′i内元素的
纵坐标,m和n是自然数,1≤m≤16,1≤n≤16;i代表图像块的索引,i∈{1,2,…,N},N代表步
骤1中图像划分后图像块的总个数;
步骤16,图像块的空域下采样
首先,定义一个大小为8×8的全零图像块矩阵,记为
这里,i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总
个数;
接着,将步骤15得到的矩阵b′i中第1列上所有奇数行的元素逐个取出,依次放入
的第1列;将b′i中第3列上所有奇数行的元素逐个取出,依次放入的第2列;将b′i中第5列
上所有奇数行的元素逐个取出,依次放入的第3列;将b′i中第7列上所有奇数行的元素逐
个取出,依次放入的第4列;将b′i中第9列上所有奇数行的元素逐个取出,依次放入的第
5列;将b′i中第11列上所有奇数行的元素逐个取出,依次放入的第6列;将b′i中第13列上
所有奇数行的元素逐个取出,依次放入的第7列;将b′i中第15列上所有奇数行的元素逐个
取出,依次放入的第7列;得到图像块
b ^ i ′ = α 1 , 1 ′ α 1 , 3 ′ ... α 1 , 15 ′ α 3 , 1 ′ α 3 , 3 ′ ... α 3 , 15 ′ . . . . . . . . . . . . α 15 , 1 ′ α 15 , 3 ′ ... α 15 , 15 ′ ; ]]>
这里,α′m,n是b′i中的元素,m代表矩阵b′i内元素的横坐标,n代表矩阵b′i内元素的
纵坐标,m和n都是奇数,并且1≤m≤16,1≤n≤16;i代表图像块的索引,i∈{1,2,…,N},N代
表步骤1中图像划分后图像块的总个数;
步骤17,构建高分辨率图像
对于步骤15中产生的插值图像块矩阵b′i,采用传统的JPEG图像压缩标准中图像
块合成图像的方法,产生大小为W×H的图像,记为这里,W代表步骤1中输入图像的宽度,
H代表步骤1中输入图像的高度,i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划
分后图像块的总个数。
步骤18,构建低分辨率图像
用步骤16中产生的图像块按照传统的JPEG图像压缩标准中图像块合成图像的
方法,产生大小为(W/2)×(H/2)的图像,记为这里,W代表步骤1中输入图像的宽度,H代
表步骤1中输入图像的高度,i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分
后图像块的总个数。
本发明的基本原理:利用变换域的下采样技术,在图像的压缩编码过程中,提高图
像中部分像素点的编码质量,并用这些像素点构成高质量的低分辨率图像以满足显示输出
的需求。在对图像进行编码的同时,完成了高质量低分辨率图像的构建。
本发明的实质是:为了满足高质量低分辨率压缩图像的显示需求,本发明将基于
变换域的下采样技术的编码方法应用于图像编码中,提高压缩图像中部分像素点的质量,
从而实现了低分辨率输出图像的高质量编码。
本发明的创新点:本发明将变换域的下采样技术应用于压缩图像的低分辨率编码
和显示中,将图像压缩编码和低分辨率重建相结合,实现了高效的压缩图像低分辨率显示。
本发明的优点:将图像的压缩和低分辨率显示输出相结合,以图像的压缩编码为
基础,为高质量低分辨率显示提供了保障,并实现了图像压缩和低分辨率显示输出的高效
统一。
附图说明
图1为本发明的实现流程;
图2为应用不同图像编码方法在相同编码码率下得到的PSNR值。
具体实施方式
本发明主要采用仿真实验的方式验证该系统模型的可行性,所有步骤都经过实验
验证,为实现基于变换域下采样技术的图像压缩,具体实施步骤如下:
步骤1,图像的预处理
设定图像的宽度W=16m,图像的高度H=16n,这里m和n都是自然数,按照传统的
JPEG图像压缩标准中图像分块的方法划分为N=(W×H)/162个互不重叠的,大小为16×16
的正方形图像块,记为B1,B2,…,BN,这里,N代表图像划分后图像块的总个数,i代表图像块
的索引,i∈{1,2,…,N};
步骤2,索引矩阵的产生
把256个自然数1,2,…,256按从小到大,从上到下的顺序逐列摆放,产生一个大小
为16×16的索引矩阵,记为I:
将I中的元素记为I(x,y),这里,x代表索引矩阵I内元素的横坐标,y代表索引矩阵
I内元素的纵坐标,x和y都是自然数,并且1≤x≤16,1≤y≤16。
步骤3,列索引向量的产生
首先,定义2个列索引子向量,分别记为这里,是一个1×64的行
向量,x为奇数,y为奇数,并且1≤x≤16,1≤y≤16},即…,
I(15,1)I(1,3)I(3,3),…,I(15,3),…,I(1,15)I(3,15),…,I(15,15)]=[13,…,
153335,…,47,…,225227,…,239];是一个1×192的行向量,x和y不同
时为奇数,并且1≤x≤16,1≤y≤16},即…,I(16,1)I(1,2)I(2,
2),…,I(16,2),…,I(2,15)I(4,15),…,I(16,15)I(1,16)I(2,16),…,I(16,16)]=
[24,…,161718,…,32,…,226228,…,240241242,…,256],其中,I是步骤2中产生的索引
矩阵,x代表索引矩阵I内元素的横坐标,y代表索引矩阵I内元素的纵坐标,x和y都是自然
数;
然后,将和按照从左到右的顺序组成一个1×256的列索引向量,记为
…,I(15,1)I(1,3)I(3,3),…,I(15,3),…,I(1,
15)I(3,15),…,I(15,15)I(2,1)I(4,1),…,I(16,1)I(1,2)I(2,2),…,I(16,2),…,I(2,
15)I(4,15),…,I(16,15)I(1,16)I(2,16),…,I(16,16)]=[13,…,153335,…,47,…,
225227,…,23924,…,161718,…,32,…,226228,…,240241242,…,256],这里,I是步骤2
中产生的索引矩阵。
步骤4,行索引向量的产生
首先,定义3个行索引子向量,分别记为这里,是一个大
小为1×64的行向量,即…,I(8,1)I
(1,2)I(2,2),…,I(8,2),…,I(1,8)I(2,8),…,I(8,8)]=[12,…,81718,…,24,…,
113114,…,120];是一个大小为1×64的行向量,即
…,I(16,1)I(9,2)I(10,2),…,I(16,2),…,I(9,8)I(10,8),…,I
(16,8)]=[910,…,162526,…,32,…,121122,…,128];是一个大小为1×128的行向
量,即…,I(16,9)I(1,10)I(2,
10),…,I(16,10),…,I(1,16)I(2,16),…,I(16,16)]=[129130,…,144145146,…,
160,…,241242,…,256],其中,I是步骤2中产生的索引矩阵,x代表索引矩阵I内元素的横
坐标,y代表索引矩阵I内元素的纵坐标,x和y都是自然数;
然后,将按照从左到右的顺序组成一个大小为1×256的行索
引向量,记为=[I(1,1)I(2,1),…,I(8,1)I(1,2)I(2,
2),…,I(8,2),…,I(1,8)I(2,8),…,I(8,8)I(9,1)I(10,1),…,I(16,1)I(9,2)I(10,
2),…,I(16,2),…,I(9,8)I(10,8),…,I(16,8)I(1,9)I(2,9),…,I(16,9)I(1,10)I(2,
10),…,I(16,10),…,I(1,16)I(2,16),…,I(16,16)]=[12,…,81718,…,24,…,
113114,…,120910,…,162526,…,32,…,121122,…,128129130,…,144145146,…,
160,…,241242,…,256];这里,I是步骤2中产生的索引矩阵。
步骤5,变换矩阵的产生
首先,按照传统的计算离散余弦变换矩阵的方法,产生一个大小为16×16的离散
余弦变换矩阵,记为C;
其次,将离散余弦变换矩阵C带入传统的矩阵Kronecker乘法中,产生一个大小为
256×256的变换矩阵,记为D,并且这里,符号代表传统的矩阵Kronecker乘法
中的Kronecker乘法算子。
步骤6,调整变换矩阵的列
将步骤3产生的列索引向量的每个元素记为这里,l表示中元素
的索引,l是自然数,1≤l≤256;
用矩阵D中的所有列向量组成一个新的大小为256×256的变换矩阵,记为E,步骤
是:第1次,取矩阵D的第个列向量,生成矩阵E的第1列;……;第l次,取矩阵D的第
个列向量,生成矩阵E的第l列;……;第256次,取矩阵D的第个列向量,生成
矩阵E的第256列,
即
这里,em,n代表矩阵E中的元素,m代表索引矩阵E内元素的横坐标,n代表索引矩阵E
内元素的纵坐标,m和n都是自然数,1≤m≤256,1≤n≤256。
步骤7,调整变换矩阵的行
将步骤4产生的行索引向量的每个元素记为这里,l表示中元素的
索引,l是自然数,1≤l≤256;
用步骤6产生的矩阵E中的所有行向量组成一个新的变换矩阵,记为F,步骤如下:
第1次,用矩阵E的第个行向量生成矩阵F的第1行;……;第l次,用矩阵E的
第个行向量生成矩阵F的第l行;……;第256次,用矩阵E的第个行向量生
成矩阵F的第256行,
即
这里,fp,q代表矩阵F中的元素,p代表索引矩阵F内元素的横坐标,q代表索引矩阵F
内元素的纵坐标,p和q都是自然数,1≤p≤256,1≤q≤256。
步骤8,将每个图像块转化为列向量
首先,将步骤1产生的图像块Bi中的每一列,按照从左到右的顺序,依次取出,并按
照第一列,第二列,……,第十六列,从上到下的摆放顺序组成一个大小为256×1的列向量,
记为即这里,xj代表列向量中的元素,j是中元素的
下标索引,j是自然数,1≤j≤256;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像
划分后图像块的总个数;符号T表示传统的矩阵转置操作;
接着,将中的元素x1、x3、x5、x7、x9、x11、x13、x15、x33、x35、
x37、x39、x41、x43、x45、x47、x65、x67、x69、x71、x73、x75、x77、x79、x97、x99、x101、x103、x105、x107、x109、x111、
x129、x131、x133、x135、x137、x139、x141、x143、x161、x163、x165、x167、x169、x171、x173、x175、x193、x195、x197、
x199、x201、x203、x205、x207、x225、x227、x229、x231、x233、x235、x237和x239,按照从上到下的顺序生成一
个大小为64×1的列向量,记为即:这里,xk代表列向量
中的元素,k是中元素的下标索引,k是自然数,1≤k≤256;x'j代表列向量中的元素,j
是中元素的下标索引,j是自然数,1≤j≤64;i代表图像块的索引,i∈{1,2,…,N},N代
表步骤1中图像划分后图像块的总个数;符号T表示传统的矩阵转置操作;
步骤9,填充向量的产生
将步骤7中产生的变换矩阵F和步骤8中产生的列向量代入传统的基于离散余弦
变换的向量填充算法中,得到一个大小为192×1的填充列向量,记为即:
这里,x″k代表列向量中的元素,k是中元素的下标索引,
k是自然数,1≤k≤192;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图
像块的总个数;符号T表示传统的矩阵转置操作;
步骤10,中间向量的产生
用步骤8中产生的列向量和步骤9中产生的列向量按照从上到下的顺序组成
一个大小为256×1的列向量,记为即:
即
这里,yl代表列向量中的元素,l是中元素的下标索引,l是自然数,1≤l≤256;
x'j代表步骤8中产生的列向量中的元素,j是中元素的下标索引,j是自然数,1≤j≤
64;x″k代表步骤9中产生的列向量中的元素,k是中元素的下标索引,k是自然数,1≤k
≤192;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;符
号T表示传统的矩阵转置操作;
步骤11,系数向量的产生
用传统的一维离散余弦变换方法对步骤10中产生的中间向量进行离散余弦变
换,得到系数向量即这里,zj代表列向量中的元素,j是
中元素的下标索引,j是自然数,1≤j≤256;i代表图像块的索引,i∈{1,2,…,N},N代表
步骤1中图像划分后图像块的总个数;符号T表示传统的矩阵转置操作;
步骤12,系数矩阵的产生
定义大小为8×8的系数矩阵为B'i,用的第1至8个元素z1~z8按照从上到下的顺
序生成B'i的第1列;用的第9至16个元素z9~z16按照从上到下的顺序生成B'i的第2列;用
的第17至24个元素z17~z24按照从上到下的顺序生成B'i的第3列;用的第25至32个元
素z25~z32按照从上到下的顺序生成B'i的第4列;用的第33至40个元素z33~z40按照从上
到下的顺序生成B'i的第5列;用的第41至48个元素z41~z48按照从上到下的顺序生成B'i
的第6列;用的第49至56个元素z49~z56按照从上到下的顺序生成B'i的第7列;用的第
57至64个元z57~z64素按照从上到下的顺序生成B'i的第8列;
即 B i ′ = β 1 , 1 β 1 , 2 ... β 1 , n β 2 , 1 β 2 , 2 ... β 2 , n . . . . . . . . . . . . β m , 1 β m , 2 ... β m , n = z 1 z 9 ... z 57 z 2 z 10 ... z 58 . . . . . . . . . . . . z 8 z 16 ... z 64 , ]]>
这里,βm,n是B'i中的元素,m代表矩阵B'i内元素的横坐标,n代表矩阵B'i内元素的
纵坐标,m和n是自然数,1≤m≤8,1≤n≤8;z1,z2,…,z64代表步骤11中产生的列向量中的
64个元素;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个
数;
步骤13,对系数矩阵进行编码
用传统的JPEG图像压缩标准中的量化方法对步骤12中产生的系数矩阵B'i进行量
化,将量化后得到的系数矩阵,记为
这里,是中的元素,m代表矩阵内元素的横坐标,n代表矩阵内元素的
纵坐标,m和n是自然数,1≤m≤8,1≤n≤8;用传统的JPEG图像压缩标准中的反量化方法对
进行反量化,得到反量化后的系数矩阵B"i,
这里,β″m,n是B"i中的元素,m代表矩阵B"i内元素的横坐标,n代表矩阵B"i内元素的
纵坐标,m和n是自然数,1≤m≤8,1≤n≤8;这里,i代表图像块的索引,i∈{1,2,…,N},N代
表步骤1中图像划分后图像块的总个数;
步骤14,对系数矩阵进行解码
首先,定义一个大小为16×16的全零矩阵,记为
B ^ i = 0 0 ... 0 0 0 ... 0 . . . . . . . . . . . . 0 0 ... 0 ; ]]>
其次,将步骤13得到的矩阵B"i的第1列元素依次取出,并依次放入矩阵第1列的
第1至8行;将矩阵B"i的第2列元素依次取出,并依次放入矩阵第2列的第1至8行;将矩阵
B"i的第3列元素依次取出,并依次放入矩阵第3列的第1至8行;将矩阵B"i的第4列元素依
次取出,并依次放入矩阵第4列的第1至8行;将矩阵B"i的第5列元素依次取出,并依次放
入矩阵第5列的第1至8行;将矩阵B"i的第6列元素依次取出,并依次放入矩阵第6列的
第1至8行;将矩阵B"i的第7列元素依次取出,并依次放入矩阵第7列的第1至8行;将矩阵
B"i的第8列元素依次取出,并依次放入矩阵第8列的第1至8行;将修改后的矩阵记为
这里,是中的元素,p代表矩阵内元素的横坐标,q代表矩阵内元素的
纵坐标,p和q是自然数,1≤p≤16,1≤q≤16;β″m,n是B"i中的元素,m代表矩阵B"i内元素的横
坐标,n代表矩阵B"i内元素的纵坐标,m和n是自然数,1≤m≤8,1≤n≤8;i代表图像块的索
引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
最后,用传统的二维离散余弦反变换方法对矩阵进行二维离散余弦反变换,得
到大小为16×16的像素矩阵,记为bi:
这里,αm,n是bi中的元素,m代表矩阵bi内元素的横坐标,n代表矩阵bi内元素的纵坐
标,m和n是自然数,1≤m≤16,1≤n≤16;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1
中图像划分后图像块的总个数;
步骤15,解码图像块的修正
对步骤14中产生的像素矩阵bi,用传统的双三次插值方法对位于(u,v)位置上的
像素点进行插值,这里,u为bi内像素点的横坐标,v为bi内像素点的纵坐标,u和v是自然数,
并且u和v不同时为奇数,1≤u≤16,1≤v≤16;将得到插值图像块矩阵,记为b′i:
这里,α′m,n是b′i中的元素,m代表矩阵b′i内元素的横坐标,n代表矩阵b′i内元素的
纵坐标,m和n是自然数,1≤m≤16,1≤n≤16;i代表图像块的索引,i∈{1,2,…,N},N代表步
骤1中图像划分后图像块的总个数;
步骤16,图像块的空域下采样
首先,定义一个大小为8×8的全零图像块矩阵,记为
这里,i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总
个数;
接着,将步骤15得到的矩阵b′i中第1列上所有奇数行的元素逐个取出,依次放入
的第1列;将b′i中第3列上所有奇数行的元素逐个取出,依次放入的第2列;将b′i中第5列
上所有奇数行的元素逐个取出,依次放入的第3列;将b′i中第7列上所有奇数行的元素逐
个取出,依次放入的第4列;将b′i中第9列上所有奇数行的元素逐个取出,依次放入的第
5列;将b′i中第11列上所有奇数行的元素逐个取出,依次放入的第6列;将b′i中第13列上
所有奇数行的元素逐个取出,依次放入的第7列;将b′i中第15列上所有奇数行的元素逐
个取出,依次放入的第7列;得到图像块
b ^ i ′ = α 1 , 1 ′ α 1 , 3 ′ ... α 1 , 15 ′ α 3 , 1 ′ α 3 , 3 ′ ... α 3 , 15 ′ . . . . . . . . . . . . α 15 , 1 ′ α 15 , 3 ′ ... α 15 , 15 ′ ; ]]>
这里,α′m,n是b′i中的元素,m代表矩阵b′i内元素的横坐标,n代表矩阵b′i内元素的
纵坐标,m和n都是奇数,并且1≤m≤16,1≤n≤16;i代表图像块的索引,i∈{1,2,…,N},N代
表步骤1中图像划分后图像块的总个数;
步骤17,构建高分辨率图像
对于步骤15中产生的插值图像块矩阵b′i,采用传统的JPEG图像压缩标准中图像
块合成图像的方法,产生大小为W×H的图像,记为这里,W代表步骤1中输入图像的宽度,
H代表步骤1中输入图像的高度,i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划
分后图像块的总个数。
步骤18,构建低分辨率图像
用步骤16中产生的图像块按照传统的JPEG图像压缩标准中图像块合成图像的
方法,产生大小为(W/2)×(H/2)的图像,记为这里,W代表步骤1中输入图像的宽度,H代
表步骤1中输入图像的高度,i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分
后图像块的总个数。
将实施例应用于Lena和Barbara两幅分辨率为512×512的经典图例中,附图2是在
不同的编码码率下,对不同图像应用不同的图像压缩方法进行编码和解码后得到的峰值信
噪比(peaksignaltonoiseratio,PSNR)。很明显,本发明中的方法较现有方法有明显的
性能提升。