CN104867165B - 一种基于变换域下采样技术的图像压缩方法 - Google Patents
一种基于变换域下采样技术的图像压缩方法 Download PDFInfo
- Publication number
- CN104867165B CN104867165B CN201510257376.5A CN201510257376A CN104867165B CN 104867165 B CN104867165 B CN 104867165B CN 201510257376 A CN201510257376 A CN 201510257376A CN 104867165 B CN104867165 B CN 104867165B
- Authority
- CN
- China
- Prior art keywords
- matrix
- image
- index
- designated
- row
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 155
- 238000005070 sampling Methods 0.000 title claims abstract description 14
- 238000005516 engineering process Methods 0.000 title claims abstract description 13
- 230000006835 compression Effects 0.000 claims abstract description 90
- 238000007906 compression Methods 0.000 claims abstract description 90
- 239000011159 matrix material Substances 0.000 claims description 396
- 239000013598 vector Substances 0.000 claims description 130
- 230000009466 transformation Effects 0.000 claims description 47
- 238000013139 quantization Methods 0.000 claims description 18
- 238000004364 calculation method Methods 0.000 claims description 16
- 238000013461 design Methods 0.000 claims description 3
- 238000011002 quantification Methods 0.000 claims description 3
- 238000010561 standard procedure Methods 0.000 claims description 3
- 210000003462 vein Anatomy 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 13
- 230000008859 change Effects 0.000 description 7
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
Landscapes
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明提供了一种基于变换域下采样技术的图像压缩方法,它是通过对于内部比较平滑的图像区域,采用基于变换域下采样的方法进行编码,再利用插值技术进行重建,大大降低编码的比特率;采用传统的基于JPEG图像压缩标准的编码方法对于内部纹理比较复杂的图像区域进行编码;将两种编码方法相结合,对不同类型的图像区域采用不同的编码策略,实现对整个图像信号的高效压缩。与传统的JPEG图像压缩方法相比,本发明具有灵活高效的特点,能够克服传统JPEG图像压缩方法中编码模式单一,导致整体编码效率低下的缺点。
Description
技术领域
本发明属于图像压缩领域,主要涉及数字图像的编码技术。
背景技术
图像作为人们获取和传播知识的信息载体,已经成为人们日常生活中不可缺少的一部分。随着多媒体技术的迅速发展,图像处理和传输技术已经成为数字视频广播、游戏动漫、影视制作、内容检索、媒体存储、媒体娱乐,以及多媒体通讯等数字媒体产业的共性关键技术。由于图像数据本身具有数据量大的特点,为了节约传输带宽和存储空间,人们常利用图像压缩技术减少图像的数据量。减少图像数据量的本质就是去除图像像素点之间存在的冗余,即像素点之间的相关性。而对图像的各种编码方法就是为了降低这种相关性,从而达到消除冗余的目的,实现图像数据的压缩。
图像内部的不同区域具有不同的特征,比如有些区域比较平滑,有些区域纹理比较复杂,这种不同的特征也导致不同区域内像素点之间的相关性各不相同,如果能针对具有不同特征的图像区域采用相应的有效编码策略,那么就可以提高图像的压缩编码效率。现有的基于图像块的压缩方法,在编码策略选择上存在一定的局限性,即图像块的编码模式比较单一,无法根据图像局部区域的具体内容选择合理的编码模式,从而造成整体编码效率低下,参见参考文献“JPEG(Joint Photographic Experts Group):ISO/IEC IS10918–1/ITU-T Recommendation T.81,Digital Compression and Coding ofContinuous-Tone Still Image,1993”。
发明内容
本发明的目的是提供一种基于变换域下采样技术的图像压缩方法,它是通过对图像平滑区域采用变换域的下采样技术进行压缩,对纹理比较复杂的区域采用传统的编码模式进行压缩,通过这两种不同编码模式的选择,有针对性地提高图像块的编码效率,从而实现对整个图像信号的高效压缩。与传统的JPEG图像压缩方法相比,本发明具有灵活高效的特点,能够克服传统JPEG图像压缩方法中由于编码模式单一而导致整体编码效率低下的缺点。
为了方便描述本发明的内容,首先做以下术语定义:
定义1,传统的JPEG图像压缩标准中图像分块的方法
传统的图像分块方法按照JPEG标准中对图像进行分块的方法,将原始图像划分为多个互不重叠的等尺寸图像块,具体描述过程参见“JPEG(Joint Photographic ExpertsGroup):ISO/IEC IS 10918–1/ITU-T Recommendation T.81,Digital Compression andCoding of Continuous-Tone Still Image,1993”;
定义2,传统的计算离散余弦变换矩阵的方法
传统的计算离散余弦变换矩阵的方法是根据离散余弦变换矩阵的定义,计算变换矩阵中的每一个元素,从而根据需要产生任意大小的离散余弦变换矩阵,具体描述过程参见文献“数字视频编码技术原理”,高文、赵德斌、马思伟著,科学出版社;
定义3,传统的矩阵Kronecker乘法
传统的矩阵Kronecker乘法表示为其中,表示Kronecker乘法算子,A是大小为m×n的矩阵,并且
B是大小为p×q的矩阵,C是大小为mp×nq的矩阵,
具体描述过程参见文献“矩阵分析与应用(第2版)”,张贤达著,清华大学出版社;
定义4,传统的基于离散余弦变换的向量填充算法
传统的基于离散余弦变换的向量填充算法利用离散余弦变换矩阵和原始输入向量的一部分分量,通过计算相应的填充值,对另一部分分量进行数据替换;具体步骤参见文献“Arbitrarily-shaped transform coding based on a new padding technique”;
定义5,传统的一维离散余弦变换方法
传统的一维离散余弦变换方法利用离散余弦变换矩阵左乘输入行向量,从而得到变换后的系数向量,具体描述过程参见文献“数字视频编码技术原理”,高文、赵德斌、马思伟著,科学出版社;
定义6,传统的JPEG图像压缩标准中的量化方法
传统的JPEG图像压缩标准中的量化方法将变换编码后系数矩阵中的每个元素与量化表格中的每个元素对应相除,然后对得到的每个结果进行四舍五入的取整操作,从而得到量化的系数矩阵;具体描述过程参见“JPEG(Joint Photographic Experts Group):ISO/IEC IS 10918–1/ITU-T Recommendation T.81,Digital Compression and Codingof Continuous-Tone Still Image,1993”;
定义7,传统的JPEG图像压缩标准中的反量化方法
传统的JPEG图像压缩标准中的反量化方法将量化后系数矩阵中的每个元素与量化表格中的每个元素对应相乘,从而得到反量化的系数矩阵;具体描述过程参见“JPEG(Joint Photographic Experts Group):ISO/IEC IS 10918–1/ITU-T RecommendationT.81,Digital Compression and Coding of Continuous-Tone Still Image,1993”;
定义8,传统的JPEG图像压缩标准中计算编码比特数的方法
传统的JPEG图像压缩标准中计算编码比特数的方法主要是计算图像块系数矩阵编码所消耗的比特数,具体描述过程参见“JPEG(Joint Photographic Experts Group):ISO/IEC IS10918–1/ITU-T Recommendation T.81,Digital Compression and Coding ofContinuous-Tone Still Image,1993”;
定义9,传统的JPEG图像压缩标准中的编码方法
传统的JPEG图像压缩标准中的编码方法主要包括对每个图像块进行变换编码、量化和熵编码以及计算编码比特数;具体描述过程参见“JPEG(Joint Photographic ExpertsGroup):ISO/IEC IS 10918–1/ITU-T Recommendation T.81,Digital Compression andCoding of Continuous-Tone Still Image,1993”;
定义10,传统的JPEG图像压缩标准中的解码方法
传统的JPEG图像压缩标准中的解码方法主要包括对每个图像块进行反变换和反量化;具体描述过程参见“JPEG(Joint Photographic Experts Group):ISO/IEC IS10918–1/ITU-T Recommendation T.81,Digital Compression and Coding ofContinuous-Tone Still Image,1993”;
定义11,传统的二维离散余弦反变换方法
传统的二维离散余弦反变换方法分两步完成,第一步,利用离散余弦变换矩阵的逆矩阵左乘输入矩阵,得到一个矩阵;第二步,用离散余弦变换矩阵转置矩阵的逆矩阵再右乘第一步得到的矩阵,从而得到反变换后的矩阵;具体描述过程参见文献“数字视频编码技术原理”,高文、赵德斌、马思伟著,科学出版社;
定义12,传统的双三次插值方法
传统的双三次插值方法是二维空间中最常用的插值方法,在这种插值方法中,点(u,v)处的值可以通过它周围矩形网格中最近的十六个点的加权平均得到;具体描述过程参见文献“Cubic convolution interpolation for digital image processing”;
定义13,传统的计算均方误差的方法
传统的计算均方误差的方法针对两个大小均为m×n的二维输入信号X和按照下式计算它们之间的均方误差:
定义14,传统的JPEG图像压缩标准中图像块合成图像的方法
传统的图像块合成图像的方法是按照JPEG图像压缩标准中用图像块进行相互不重叠组合以合成完整图像的方法,具体描述过程参见“JPEG(Joint Photographic ExpertsGroup):ISO/IEC IS 10918–1/ITU-T Recommendation T.81,Digital Compression andCoding of Continuous-Tone Still Image,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的行向量,即 是一个1×192的行向量, 即 其中,I是步骤2中产生的索引矩阵,x代表索引矩阵I内元素的横坐标,y代表索引矩阵I内元素的纵坐标,x和y都是自然数;
然后,将和按照从左到右的顺序组成一个1×256的列索引向量,记为 这里,I是步骤2中产生的索引矩阵;
步骤4,行索引向量的产生
首先,定义3个行索引子向量,分别记为这里,是一个大小为1×64的行向量,即 是一个大小为1×64的行向量,即 是一个大小为1×128的行向量,即 其中,I是步骤2中产生的索引矩阵,x代表索引矩阵I内元素的横坐标,y代表索引矩阵I内元素的纵坐标,x和y都是自然数;
然后,将按照从左到右的顺序组成一个大小为1×256的行索引向量,记为 这里,I是步骤2中产生的索引矩阵;
步骤5,变换矩阵的产生
首先,按照传统的计算离散余弦变换矩阵的方法,产生两个大小为16×16的离散余弦变换矩阵,记为C1和C2;
其次,将离散余弦变换矩阵C1和C2带入传统的矩阵Kronecker乘法中,产生一个大小为256×256的变换矩阵,记为D,并且这里,符号代表传统的矩阵Kronecker乘法中的Kronecker乘法算子;
步骤6,调整变换矩阵的列
将步骤5中产生的变换矩阵D中的每个列向量记为
即
这里,k为矩阵D的列向量下标索引, 为步骤3中产生的列索引向量。用矩阵D中的所有列向量组成一个新的大小为256×256的变换矩阵,记为E,步骤如下:
第1次,取矩阵D的第个列向量生成矩阵E的第1列,
第2次,取矩阵D的第个列向量生成矩阵E的第2列,
同理,第256次,取矩阵D的第个列向量生成矩阵E的第256列,
即
这里,em,n代表矩阵E中的元素,m代表索引矩阵E内元素的横坐标,n代表索引矩阵E内元素的纵坐标,m和n都是自然数,1≤m≤256,1≤n≤256;
步骤7,调整变换矩阵的行
将步骤6产生的变换矩阵E中的每个行向量记为
即
这里,l为矩阵E的行向量下标索引, 为步骤4中产生的行索引向量,用矩阵E中的所有行向量组成一个新的变换矩阵,记为F,步骤如下:
第1次,用矩阵E的第个行向量生成矩阵F的第1行,
第2次,用矩阵E的第个行向量生成矩阵F的第2行,
同理,第256次,用矩阵E的第个行向量生成矩阵F的第256行,
即这里,代表矩阵F中的元素,代表索引矩阵F内元素的横坐标,代表索引矩阵F内元素的纵坐标,和都是自然数,
步骤8,将每个图像块转化为列向量
首先,将步骤1产生的图像块Bi中的每一个元素,按照从上到下,从左到右的顺序,依次取出,并按照从上到下的摆放顺序组成一个大小为256×1的列向量,记为
即
这里,xj代表列向量中的元素,j是中元素的下标索引,j是自然数,1≤j≤256;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
接着,将Xi中的元素依次取出,按照从上到下的顺序生成一个大小为64×1的列向量,记为
即
这里,是步骤3中产生的列索引向量,x'j1代表列向量中的元素,j1是中元素的下标索引,j1是自然数,1≤j1≤64;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
步骤9,填充向量的产生
将步骤7中产生的变换矩阵F和步骤8中产生的列向量代入传统的基于离散余弦变换的向量填充算法中,产生一个大小为192×1的填充列向量,记为
即
这里,x″j2代表列向量中的元素,j2是中元素的下标索引,j2是自然数,1≤j2≤192;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
步骤10,中间向量的产生
用步骤8中产生的列向量和步骤9中产生的列向量按照从上到下的顺序组成一个大小为256×1的列向量,记为
即
这里,yl代表列向量中的元素,l是中元素的下标索引,l是自然数,1≤l≤256;x'j1代表步骤8中产生的列向量中的元素,j1是中元素的下标索引,j1是自然数,1≤j1≤64;x″j2代表步骤9中产生的列向量中的元素,j2是中元素的下标索引,j2是自然数,1≤j2≤192;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
步骤11,系数向量的产生
用传统的一维离散余弦变换方法对步骤10中产生的中间向量进行离散余弦变换,得到系数向量
即
这里,zj3代表列向量中的元素,j3是中元素的下标索引,j3是自然数,1≤j3≤256;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
步骤12,系数矩阵的产生
定义大小为8×8的系数矩阵为B'i,用的第1至8个元素按照从上到下的顺序生成B'i的第1列;用的第9至16个元素按照从上到下的顺序生成B'i的第2列;用的第17至24个元素按照从上到下的顺序生成B'i的第3列;用的第25至32个元素按照从上到下的顺序生成B'i的第4列;用的第33至40个元素按照从上到下的顺序生成B'i的第5列;用的第41至48个元素按照从上到下的顺序生成B'i的第6列;用的第49至56个元素按照从上到下的顺序生成B'i的第7列;用的第57至64个元素按照从上到下的顺序生成B'i的第8列;
即
这里,βu1,v1是B'i中的元素,u1代表矩阵B'i内元素的横坐标,v1代表矩阵B'i内元素的纵坐标,u1和v1是自然数,1≤u1≤8,1≤v1≤8;z1,z2,…,z64代表步骤11中产生的列向量中的64个元素;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
步骤13,对系数矩阵进行编码
用传统的JPEG图像压缩标准中的量化方法对步骤12中产生的系数矩阵B'i进行量化,将量化后得到的系数矩阵,记为
这里,是中的元素,u2代表矩阵内元素的横坐标,v2代表矩阵内元素的纵坐标,u2和v2是自然数,1≤u2≤8,1≤v2≤8;用传统的JPEG图像压缩标准中的反量化方法对进行反量化,得到反量化后的系数矩阵B"i,
这里,β″u3,v3是B"i中的元素,u3代表矩阵B"i内元素的横坐标,v3代表矩阵B"i内元素的纵坐标,u3和v3是自然数,1≤u3≤8,1≤v3≤8;用传统的JPEG图像压缩标准中计算编码比特数的方法计算系数矩阵B'i的编码比特数,记为这里,i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
步骤14,对系数矩阵进行解码
首先,定义一个大小为16×16的全零矩阵,记为
其次,将步骤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行;将修改后的矩阵记为
这里,是中的元素,代表矩阵内元素的横坐标,代表矩阵内元素的纵坐标,和是自然数,β″u3,v3是B"i中的元素,u3代表矩阵B"i内元素的横坐标,v3代表矩阵B"i内元素的纵坐标,u3和v3是自然数,1≤u3≤8,1≤v3≤8;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
最后,用传统的二维离散余弦反变换方法对矩阵进行二维离散余弦反变换,得到大小为16×16的像素矩阵,记为bi:
这里,αu4,v4是bi中的元素,u4代表矩阵bi内元素的横坐标,v4代表矩阵bi内元素的纵坐标,u4和v4是自然数,1≤u4≤16,1≤v4≤16;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
步骤15,解码像素矩阵的修正
对步骤14中产生的像素矩阵bi,用传统的双三次插值方法对位于(u,v)位置上的像素点进行插值,得到插值后的像素矩阵,记为b'i:
这里,α′u5,v5是b'i中的元素,u5代表矩阵b'i内元素的横坐标,v5代表矩阵b'i内元素的纵坐标,u5和v5是自然数,1≤u5≤16,1≤v5≤16;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
步骤16,计算解码像素矩阵的均方误差
用传统的计算均方误差的方法计算步骤15中得到的像素矩阵b'i与步骤1中产生的图像块Bi之间的均方误差,记为这里,i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
步骤17,用传统的编码方法编码原始图像块
首先,将步骤1中所产生的大小为16×16的图像块Bi,按照传统的JPEG图像压缩标准中图像分块的方法分为4个互不重叠,大小为8×8的图像块,记为
其中,
这里,是中的元素,m1代表矩阵内元素的横坐标,n1代表矩阵内元素的纵坐标,m1和n1是自然数,1≤m1≤8,1≤n1≤8;是中的元素,m2代表矩阵内元素的横坐标,n2代表矩阵内元素的纵坐标,m2和n2是自然数,1≤m2≤8,1≤n2≤8;是中的元素,m3代表矩阵内元素的横坐标,n3代表矩阵内元素的纵坐标,m3和n3是自然数,1≤m3≤8,1≤n3≤8;是中的元素,m4代表矩阵内元素的横坐标,n4代表矩阵内元素的纵坐标,m4和n4是自然数,1≤m4≤8,1≤n4≤8;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
其次,对图像块使用传统的JPEG图像压缩标准中的编码方法进行编码,得到编码后的图像块,记为
这里,是中的元素,m1代表矩阵内元素的横坐标,n1代表矩阵内元素的纵坐标,m1和n1是自然数,1≤m1≤8,1≤n1≤8;
对图像块使用传统的JPEG图像压缩标准中计算编码比特数的方法计算编码比特数,记为
对图像块使用传统的JPEG图像压缩标准中的编码方法进行编码,得到编码后的图像块,记为
这里,是中的元素,m2代表矩阵内元素的横坐标,n2代表矩阵内元素的纵坐标,m2和n2是自然数,1≤m2≤8,1≤n2≤8;
对图像块使用传统的JPEG图像压缩标准中计算编码比特数的方法计算编码比特数,记为
对图像块使用传统的JPEG图像压缩标准中的编码方法进行编码,得到编码后的图像块,记为
这里,是中的元素,m3代表矩阵内元素的横坐标,n3代表矩阵内元素的纵坐标,m3和n3是自然数,1≤m3≤8,1≤n3≤8;
对图像块使用传统的JPEG图像压缩标准中计算编码比特数的方法计算编码比特数,记为
对图像块使用传统的JPEG图像压缩标准中的编码方法进行编码,得到编码后的图像块,记为
这里,是中的元素,m4代表矩阵内元素的横坐标,n4代表矩阵内元素的纵坐标,m4和n4是自然数,1≤m4≤8,1≤n4≤8;
对图像块使用传统的JPEG图像压缩标准中计算编码比特数的方法计算编码比特数,记为
将相加得到图像块Bi的编码比特数,记为 这里,i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
接着,对图像块使用传统的JPEG图像压缩标准中的解码方法进行解码,得到编码后的图像块,记为
这里,是中的元素,p1代表矩阵内元素的横坐标,q1代表矩阵内元素的纵坐标,p1和q1是自然数,1≤p1≤8,1≤q1≤8;
对图像块使用传统的JPEG图像压缩标准中的解码方法进行解码,得到编码后的图像块,记为
这里,是中的元素,p2代表矩阵内元素的横坐标,q2代表矩阵内元素的纵坐标,p2和q2是自然数,1≤p2≤8,1≤q2≤8;
对图像块使用传统的JPEG图像压缩标准中的解码方法进行解码,得到编码后的图像块,记为
这里,是中的元素,p3代表矩阵内元素的横坐标,q3代表矩阵内元素的纵坐标,p3和q3是自然数,1≤p3≤8,1≤q3≤8;
对图像块使用传统的JPEG图像压缩标准中的解码方法进行解码,得到编码后的图像块,记为
这里,是中的元素,p4代表矩阵内元素的横坐标,q4代表矩阵内元素的纵坐标,p4和q4是自然数,1≤p4≤8,1≤q4≤8;
其中,i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
然后,将图像块按照从上到下,从左到右的顺序,组成一个大小为16×16的图像块,记为b"i,
这里,
其中,α″u6,v6是b"i中的元素,u6代表矩阵b"i内元素的横坐标,v6代表矩阵b"i内元素的纵坐标,u6和v6是自然数,1≤u6≤16,1≤v6≤16;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
最后,用传统的计算均方误差的方法计算图像块b"i与步骤1中产生的图像块Bi之间的均方误差,记为这里,i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
步骤18,最优编码和解码模式的选择
首先,对步骤1产生的图像块Bi,用步骤13得到的比特数和步骤16得到均方误差相乘,将相乘的结果记为 用步骤17得到的和相乘,将相乘的结果记为 比较和的大小,如果那么选择步骤8~步骤15的编码和解码方法对步骤1中产生的图像块Bi进行编码和解码;如果那么选择步骤17的编码和解码方法对步骤1中产生的图像块Bi进行编码和解码;将解码后得到图像块,记为
这里,是中的元素,u7代表矩阵内元素的横坐标,v7代表矩阵内元素的纵坐标,u7和v7是自然数,1≤u7≤16,1≤v7≤16;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
然后,将对图像块Bi进行编码后得到的编码比特数记为Biti,如果 如果这里,i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
步骤19,重建图像
对于步骤18中产生的重建图像块采用传统的JPEG图像压缩标准中图像块合成图像的方法,产生重建图像,记为这里,i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数。
本发明的基本原理:变换域的向量填充技术可以实现变换域图像的下采样,从而有效降低图像的编码比特率,这为实现高效图像编码打下了基础。对于内部比较平滑的图像区域,利用基于变换域下采样的方法进行编码,再利用插值技术进行重建,所引起的编码失真不是特别严重,但可以大大降低编码的比特率,因此,用基于变换域下采样的方法可以实现对这类图像区域的高效编码。同时,对于内部纹理比较复杂的图像区域,传统的基于JPEG图像压缩标准的编码方法可以实现对其的高效编码。将两种编码方法相结合,对不同类型的图像区域采用不同的编码策略,可以实现对整个图像的高效编码。
本发明的实质是:为了克服传统方法中对所有图像内部区域均采用同一种编码策略的缺点,本发明通过对不同图像区域自适应地选择不同的编码模式,以提高图像内部局部区域的编码效率,从而实现整个图像的高效编码。
本发明的创新点:针对现有基于JPEG图像压缩标准的编码方法编码效率较低的问题,本发明提供了一种基于变换域下采样技术的新型编码方法以实现高效图像压缩,每个图像编码块通过自适应地选择编码模式,实现局部的最优编码,并且最终达到提高整个图像压缩效率的目的。
本发明的优点:基于变换域下采样的方法可以有效降低图像块的编码码率,同时,基于编码码率和均方误差的模式选择准则可以保证每个图像块得到最优的编码模式,最终可以提高图像的压缩效率。
附图说明
图1为本发明的实现流程;
图2为应用不同图像编码方法在相同编码码率下得到的PSNR值。
具体实施方式
本发明主要采用仿真实验的方式验证该系统模型的可行性,所有步骤都经过实验验证,为实现基于变换域下采样技术的图像压缩,具体实施步骤如下:
步骤1,图像的预处理
设定图像的宽度W=16m,图像的高度H=16n,这里m和n都是自然数,按照传统的JPEG图像压缩标准中图像分块的方法划分为N=(W×H)/162个互不重叠的,大小为16×16的正方形图像块,记为B1,B2,…,Bi,…,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的行向量,即 是一个1×192的行向量, 即 其中,I是步骤2中产生的索引矩阵,x代表索引矩阵I内元素的横坐标,y代表索引矩阵I内元素的纵坐标,x和y都是自然数;
然后,将和按照从左到右的顺序组成一个1×256的列索引向量,记为 这里,I是步骤2中产生的索引矩阵;
步骤4,行索引向量的产生
首先,定义3个行索引子向量,分别记为这里,是一个大小为1×64的行向量,即 是一个大小为1×64的行向量,即 是一个大小为1×128的行向量,即 其中,I是步骤2中产生的索引矩阵,x代表索引矩阵I内元素的横坐标,y代表索引矩阵I内元素的纵坐标,x和y都是自然数;
然后,将按照从左到右的顺序组成一个大小为1×256的行索引向量,记为 这里,I是步骤2中产生的索引矩阵;
步骤5,变换矩阵的产生
首先,按照传统的计算离散余弦变换矩阵的方法,产生两个大小为16×16的离散余弦变换矩阵,记为C1和C2;
其次,将离散余弦变换矩阵C1和C2带入传统的矩阵Kronecker乘法中,产生一个大小为256×256的变换矩阵,记为D,并且这里,符号代表传统的矩阵Kronecker乘法中的Kronecker乘法算子;
步骤6,调整变换矩阵的列
将步骤5中产生的变换矩阵D中的每个列向量记为
即
这里,k为矩阵D的列向量下标索引, 为步骤3中产生的列索引向量。用矩阵D中的所有列向量组成一个新的大小为256×256的变换矩阵,记为E,步骤如下:
第1次,取矩阵D的第个列向量生成矩阵E的第1列,
第2次,取矩阵D的第个列向量生成矩阵E的第2列,
同理,第256次,取矩阵D的第个列向量生成矩阵E的第256列,即
这里,em,n代表矩阵E中的元素,m代表索引矩阵E内元素的横坐标,n代表索引矩阵E内元素的纵坐标,m和n都是自然数,1≤m≤256,1≤n≤256;
步骤7,调整变换矩阵的行
将步骤6产生的变换矩阵E中的每个行向量记为
即
这里,l为矩阵E的行向量下标索引, 为步骤4中产生的行索引向量,用矩阵E中的所有行向量组成一个新的变换矩阵,记为F,步骤如下:
第1次,用矩阵E的第个行向量生成矩阵F的第1行,
第2次,用矩阵E的第个行向量生成矩阵F的第2行,
同理,第256次,用矩阵E的第个行向量生成矩阵F的第256行,
即这里,代表矩阵F中的元素,代表索引矩阵F内元素的横坐标,代表索引矩阵F内元素的纵坐标,和都是自然数,
步骤8,将每个图像块转化为列向量
首先,将步骤1产生的图像块Bi中的每一个元素,按照从上到下,从左到右的顺序,依次取出,并按照从上到下的摆放顺序组成一个大小为256×1的列向量,记为
即
这里,xj代表列向量中的元素,j是中元素的下标索引,j是自然数,1≤j≤256;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
接着,将Xi中的元素依次取出,按照从上到下的顺序生成一个大小为64×1的列向量,记为
即
这里,是步骤3中产生的列索引向量,x'j1代表列向量中的元素,j1是中元素的下标索引,j1是自然数,1≤j1≤64;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
步骤9,填充向量的产生
将步骤7中产生的变换矩阵F和步骤8中产生的列向量代入传统的基于离散余弦变换的向量填充算法中,产生一个大小为192×1的填充列向量,记为
即
这里,x″j2代表列向量中的元素,j2是中元素的下标索引,j2是自然数,1≤j2≤192;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
步骤10,中间向量的产生
用步骤8中产生的列向量和步骤9中产生的列向量按照从上到下的顺序组成一个大小为256×1的列向量,记为
即
这里,yl代表列向量中的元素,l是中元素的下标索引,l是自然数,1≤l≤256;x'j1代表步骤8中产生的列向量中的元素,j1是中元素的下标索引,j1是自然数,1≤j1≤64;x″j2代表步骤9中产生的列向量中的元素,j2是中元素的下标索引,j2是自然数,1≤j2≤192;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
步骤11,系数向量的产生
用传统的一维离散余弦变换方法对步骤10中产生的中间向量进行离散余弦变换,得到系数向量
即
这里,zj3代表列向量中的元素,j3是中元素的下标索引,j3是自然数,1≤j3≤256;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
步骤12,系数矩阵的产生
定义大小为8×8的系数矩阵为B'i,用的第1至8个元素按照从上到下的顺序生成B'i的第1列;用的第9至16个元素按照从上到下的顺序生成B'i的第2列;用的第17至24个元素按照从上到下的顺序生成B'i的第3列;用的第25至32个元素按照从上到下的顺序生成B'i的第4列;用的第33至40个元素按照从上到下的顺序生成B'i的第5列;用的第41至48个元素按照从上到下的顺序生成B'i的第6列;用的第49至56个元素按照从上到下的顺序生成B'i的第7列;用的第57至64个元素按照从上到下的顺序生成B'i的第8列;
即
这里,βu1,v1是B'i中的元素,u1代表矩阵B'i内元素的横坐标,v1代表矩阵B'i内元素的纵坐标,u1和v1是自然数,1≤u1≤8,1≤v1≤8;z1,z2,…,z64代表步骤11中产生的列向量中的64个元素;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
步骤13,对系数矩阵进行编码
用传统的JPEG图像压缩标准中的量化方法对步骤12中产生的系数矩阵B'i进行量化,将量化后得到的系数矩阵,记为
这里,是中的元素,u2代表矩阵内元素的横坐标,v2代表矩阵内元素的纵坐标,u2和v2是自然数,1≤u2≤8,1≤v2≤8;用传统的JPEG图像压缩标准中的反量化方法对进行反量化,得到反量化后的系数矩阵B"i,
这里,β″u3,v3是B"i中的元素,u3代表矩阵B"i内元素的横坐标,v3代表矩阵B"i内元素的纵坐标,u3和v3是自然数,1≤u3≤8,1≤v3≤8;用传统的JPEG图像压缩标准中计算编码比特数的方法计算系数矩阵B'i的编码比特数,记为这里,i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
步骤14,对系数矩阵进行解码
首先,定义一个大小为16×16的全零矩阵,记为
其次,将步骤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行;将修改后的矩阵记为
这里,是中的元素,代表矩阵内元素的横坐标,代表矩阵内元素的纵坐标,和是自然数,β″u3,v3是B"i中的元素,u3代表矩阵B"i内元素的横坐标,v3代表矩阵B"i内元素的纵坐标,u3和v3是自然数,1≤u3≤8,1≤v3≤8;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
最后,用传统的二维离散余弦反变换方法对矩阵进行二维离散余弦反变换,得到大小为16×16的像素矩阵,记为bi:
这里,αu4,v4是bi中的元素,u4代表矩阵bi内元素的横坐标,v4代表矩阵bi内元素的纵坐标,u4和v4是自然数,1≤u4≤16,1≤v4≤16;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
步骤15,解码像素矩阵的修正
对步骤14中产生的像素矩阵bi,用传统的双三次插值方法对位于(u,v)位置上的像素点进行插值,得到插值后的像素矩阵,记为b'i:
这里,α′u5,v5是b'i中的元素,u5代表矩阵b'i内元素的横坐标,v5代表矩阵b'i内元素的纵坐标,u5和v5是自然数,1≤u5≤16,1≤v5≤16;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
步骤16,计算解码像素矩阵的均方误差
用传统的计算均方误差的方法计算步骤15中得到的像素矩阵b'i与步骤1中产生的图像块Bi之间的均方误差,记为这里,i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
步骤17,用传统的编码方法编码原始图像块
首先,将步骤1中所产生的大小为16×16的图像块Bi,按照传统的JPEG图像压缩标准中图像分块的方法分为4个互不重叠,大小为8×8的图像块,记为
其中,
这里,是中的元素,m1代表矩阵内元素的横坐标,n1代表矩阵内元素的纵坐标,m1和n1是自然数,1≤m1≤8,1≤n1≤8;是中的元素,m2代表矩阵内元素的横坐标,n2代表矩阵内元素的纵坐标,m2和n2是自然数,1≤m2≤8,1≤n2≤8;是中的元素,m3代表矩阵内元素的横坐标,n3代表矩阵内元素的纵坐标,m3和n3是自然数,1≤m3≤8,1≤n3≤8;是中的元素,m4代表矩阵内元素的横坐标,n4代表矩阵内元素的纵坐标,m4和n4是自然数,1≤m4≤8,1≤n4≤8;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
其次,对图像块使用传统的JPEG图像压缩标准中的编码方法进行编码,得到编码后的图像块,记为
这里,是中的元素,m1代表矩阵内元素的横坐标,n1代表矩阵内元素的纵坐标,m1和n1是自然数,1≤m1≤8,1≤n1≤8;
对图像块使用传统的JPEG图像压缩标准中计算编码比特数的方法计算编码比特数,记为
对图像块使用传统的JPEG图像压缩标准中的编码方法进行编码,得到编码后的图像块,记为
这里,是中的元素,m2代表矩阵内元素的横坐标,n2代表矩阵内元素的纵坐标,m2和n2是自然数,1≤m2≤8,1≤n2≤8;
对图像块使用传统的JPEG图像压缩标准中计算编码比特数的方法计算编码比特数,记为
对图像块使用传统的JPEG图像压缩标准中的编码方法进行编码,得到编码后的图像块,记为
这里,是中的元素,m3代表矩阵内元素的横坐标,n3代表矩阵内元素的纵坐标,m3和n3是自然数,1≤m3≤8,1≤n3≤8;
对图像块使用传统的JPEG图像压缩标准中计算编码比特数的方法计算编码比特数,记为
对图像块使用传统的JPEG图像压缩标准中的编码方法进行编码,得到编码后的图像块,记为
这里,是中的元素,m4代表矩阵内元素的横坐标,n4代表矩阵内元素的纵坐标,m4和n4是自然数,1≤m4≤8,1≤n4≤8;
对图像块使用传统的JPEG图像压缩标准中计算编码比特数的方法计算编码比特数,记为
将相加得到图像块Bi的编码比特数,记为 这里,i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
接着,对图像块使用传统的JPEG图像压缩标准中的解码方法进行解码,得到编码后的图像块,记为
这里,是中的元素,p1代表矩阵内元素的横坐标,q1代表矩阵内元素的纵坐标,p1和q1是自然数,1≤p1≤8,1≤q1≤8;
对图像块使用传统的JPEG图像压缩标准中的解码方法进行解码,得到编码后的图像块,记为
这里,是中的元素,p2代表矩阵内元素的横坐标,q2代表矩阵内元素的纵坐标,p2和q2是自然数,1≤p2≤8,1≤q2≤8;
对图像块使用传统的JPEG图像压缩标准中的解码方法进行解码,得到编码后的图像块,记为
这里,是中的元素,p3代表矩阵内元素的横坐标,q3代表矩阵内元素的纵坐标,p3和q3是自然数,1≤p3≤8,1≤q3≤8;
对图像块使用传统的JPEG图像压缩标准中的解码方法进行解码,得到编码后的图像块,记为
这里,是中的元素,p4代表矩阵内元素的横坐标,q4代表矩阵内元素的纵坐标,p4和q4是自然数,1≤p4≤8,1≤q4≤8;
其中,i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
然后,将图像块按照从上到下,从左到右的顺序,组成一个大小为16×16的图像块,记为b"i,
这里,
其中,α″u6,v6是b"i中的元素,u6代表矩阵b"i内元素的横坐标,v6代表矩阵b"i内元素的纵坐标,u6和v6是自然数,1≤u6≤16,1≤v6≤16;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
最后,用传统的计算均方误差的方法计算图像块b"i与步骤1中产生的图像块Bi之间的均方误差,记为这里,i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
步骤18,最优编码和解码模式的选择
首先,对步骤1产生的图像块Bi,用步骤13得到的比特数和步骤16得到均方误差相乘,将相乘的结果记为 用步骤17得到的和相乘,将相乘的结果记为 比较和的大小,如果那么选择步骤8~步骤15的编码和解码方法对步骤1中产生的图像块Bi进行编码和解码;如果那么选择步骤17的编码和解码方法对步骤1中产生的图像块Bi进行编码和解码;将解码后得到图像块,记为
这里,是中的元素,u7代表矩阵内元素的横坐标,v7代表矩阵内元素的纵坐标,u7和v7是自然数,1≤u7≤16,1≤v7≤16;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
然后,将对图像块Bi进行编码后得到的编码比特数记为Biti,如果 如果这里,i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
步骤19,重建图像
对于步骤18中产生的重建图像块采用传统的JPEG图像压缩标准中图像块合成图像的方法,产生重建图像,记为这里,i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数。
将实施例应用于Lena和Barbara两幅分辨率为512×512的经典图例中,附图2是在不同的编码码率下,对不同图像应用不同的图像压缩方法进行编码和解码后得到的峰值信噪比(peak signal to noise ratio,PSNR)。很明显,本发明中的方法较现有方法有明显的性能提升。
Claims (1)
1.一种基于变换域下采样技术的图像压缩方法,其特征是它包括以下步骤:
步骤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的行向量,为奇数,y为奇数,并且1≤x≤16,1≤y≤16},即 是一个1×192的行向量,和y不同时为奇数,并且1≤x≤16,1≤y≤16},即 其中,I是步骤2中产生的索引矩阵,x代表索引矩阵I内元素的横坐标,y代表索引矩阵I内元素的纵坐标,x和y都是自然数;
然后,将和按照从左到右的顺序组成一个1×256的列索引向量,记为 这里,I是步骤2中产生的索引矩阵;
步骤4,行索引向量的产生
首先,定义3个行索引子向量,分别记为这里,是一个大小为1×64的行向量,即 是一个大小为1×64的行向量,即 是一个大小为1×128的行向量,即 其中,I是步骤2中产生的索引矩阵,x代表索引矩阵I内元素的横坐标,y代表索引矩阵I内元素的纵坐标,x和y都是自然数;
然后,将按照从左到右的顺序组成一个大小为1×256的行索引向量,记为 这里,I是步骤2中产生的索引矩阵;
步骤5,变换矩阵的产生
首先,按照传统的计算离散余弦变换矩阵的方法,产生两个大小为16×16的离散余弦变换矩阵,记为C1和C2;
其次,将离散余弦变换矩阵C1和C2带入传统的矩阵Kronecker乘法中,产生一个大小为256×256的变换矩阵,记为D,并且这里,符号代表传统的矩阵Kronecker乘法中的Kronecker乘法算子;
步骤6,调整变换矩阵的列
将步骤5中产生的变换矩阵D中的每个列向量记为
即
这里,k为矩阵D的列向量下标索引, 为步骤3中产生的列索引向量。用矩阵D中的所有列向量组成一个新的大小为256×256的变换矩阵,记为E,步骤如下:
第1次,取矩阵D的第个列向量生成矩阵E的第1列,
第2次,取矩阵D的第个列向量生成矩阵E的第2列,
同理,第256次,取矩阵D的第个列向量生成矩阵E的第256列,
即
这里,em,n代表矩阵E中的元素,m代表索引矩阵E内元素的横坐标,n代表索引矩阵E内元素的纵坐标,m和n都是自然数,1≤m≤256,1≤n≤256;
步骤7,调整变换矩阵的行
将步骤6产生的变换矩阵E中的每个行向量记为
即
这里,l为矩阵E的行向量下标索引, 为步骤4中产生的行索引向量,用矩阵E中的所有行向量组成一个新的变换矩阵,记为F,步骤如下:
第1次,用矩阵E的第个行向量生成矩阵F的第1行,
第2次,用矩阵E的第个行向量生成矩阵F的第2行,
同理,第256次,用矩阵E的第个行向量生成矩阵F的第256行,
即这里,代表矩阵F中的元素,代表索引矩阵F内元素的横坐标,代表索引矩阵F内元素的纵坐标,和都是自然数,
步骤8,将每个图像块转化为列向量
首先,将步骤1产生的图像块Bi中的每一个元素,按照从上到下,从左到右的顺序,依次取出,并按照从上到下的摆放顺序组成一个大小为256×1的列向量,记为
即
这里,xj代表列向量中的元素,j是中元素的下标索引,j是自然数,1≤j≤256;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
接着,将Xi中的元素 依次取出,按照从上到下的顺序生成一个大小为64×1的列向量,记为
即
这里,是步骤3中产生的列索引向量,x'j1代表列向量中的元素,j1是中元素的下标索引,j1是自然数,1≤j1≤64;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
步骤9,填充向量的产生
将步骤7中产生的变换矩阵F和步骤8中产生的列向量代入传统的基于离散余弦变换的向量填充算法中,产生一个大小为192×1的填充列向量,记为
即
这里,x″j2代表列向量中的元素,j2是中元素的下标索引,j2是自然数,1≤j2≤192;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
步骤10,中间向量的产生
用步骤8中产生的列向量和步骤9中产生的列向量按照从上到下的顺序组成一个大小为256×1的列向量,记为
即
这里,yl代表列向量中的元素,l是中元素的下标索引,l是自然数,1≤l≤256;x'j1代表步骤8中产生的列向量中的元素,j1是中元素的下标索引,j1是自然数,1≤j1≤64;x″j2代表步骤9中产生的列向量中的元素,j2是中元素的下标索引,j2是自然数,1≤j2≤192;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
步骤11,系数向量的产生
用传统的一维离散余弦变换方法对步骤10中产生的中间向量进行离散余弦变换,得到系数向量
即
这里,zj3代表列向量中的元素,j3是中元素的下标索引,j3是自然数,1≤j3≤256;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
步骤12,系数矩阵的产生
定义大小为8×8的系数矩阵为B'i,用的第1至8个元素按照从上到下的顺序生成B'i的第1列;用的第9至16个元素按照从上到下的顺序生成B'i的第2列;用的第17至24个元素按照从上到下的顺序生成B'i的第3列;用的第25至32个元素按照从上到下的顺序生成B'i的第4列;用的第33至40个元素按照从上到下的顺序生成B'i的第5列;用的第41至48个元素按照从上到下的顺序生成B'i的第6列;用的第49至56个元素按照从上到下的顺序生成B'i的第7列;用的第57至64个元素按照从上到下的顺序生成B'i的第8列;
即
这里,βu1,v1是B'i中的元素,u1代表矩阵B'i内元素的横坐标,v1代表矩阵B'i内元素的纵坐标,u1和v1是自然数,1≤u1≤8,1≤v1≤8;z1,z2,…,z64代表步骤11中产生的列向量中的64个元素;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
步骤13,对系数矩阵进行编码
用传统的JPEG图像压缩标准中的量化方法对步骤12中产生的系数矩阵B'i进行量化,将量化后得到的系数矩阵,记为
这里,是中的元素,u2代表矩阵内元素的横坐标,v2代表矩阵内元素的纵坐标,u2和v2是自然数,1≤u2≤8,1≤v2≤8;用传统的JPEG图像压缩标准中的反量化方法对进行反量化,得到反量化后的系数矩阵B"i,
这里,β″u3,v3是B"i中的元素,u3代表矩阵B"i内元素的横坐标,v3代表矩阵B"i内元素的纵坐标,u3和v3是自然数,1≤u3≤8,1≤v3≤8;用传统的JPEG图像压缩标准中计算编码比特数的方法计算系数矩阵B'i的编码比特数,记为这里,i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
步骤14,对系数矩阵进行解码
首先,定义一个大小为16×16的全零矩阵,记为
<mrow>
<msub>
<mover>
<mi>B</mi>
<mo>^</mo>
</mover>
<mi>i</mi>
</msub>
<mo>=</mo>
<mfenced open = "[" close = "]">
<mtable>
<mtr>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>...</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
</mtr>
<mtr>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>...</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
</mtr>
<mtr>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
</mtr>
<mtr>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
</mtr>
<mtr>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
</mtr>
<mtr>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
<mtd>
<mn>...</mn>
</mtd>
<mtd>
<mn>0</mn>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>;</mo>
</mrow>
5
其次,将步骤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行;将修改后的矩阵记为
这里,是中的元素,代表矩阵内元素的横坐标,代表矩阵内元素的纵坐标,和是自然数,β″u3,v3是B"i中的元素,u3代表矩阵B"i内元素的横坐标,v3代表矩阵B"i内元素的纵坐标,u3和v3是自然数,1≤u3≤8,1≤v3≤8;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
最后,用传统的二维离散余弦反变换方法对矩阵进行二维离散余弦反变换,得到大小为16×16的像素矩阵,记为bi:
这里,αu4,v4是bi中的元素,u4代表矩阵bi内元素的横坐标,v4代表矩阵bi内元素的纵坐标,u4和v4是自然数,1≤u4≤16,1≤v4≤16;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
步骤15,解码像素矩阵的修正
对步骤14中产生的像素矩阵bi,用传统的双三次插值方法对位于(u,v)位置上的像素点进行插值,得到插值后的像素矩阵,记为b'i:
这里,αu′5,v5是b'i中的元素,u5代表矩阵b'i内元素的横坐标,v5代表矩阵b'i内元素的纵坐标,u5和v5是自然数,1≤u5≤16,1≤v5≤16;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
步骤16,计算解码像素矩阵的均方误差
用传统的计算均方误差的方法计算步骤15中得到的像素矩阵b'i与步骤1中产生的图像块Bi之间的均方误差,记为这里,i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
步骤17,用传统的编码方法编码原始图像块
首先,将步骤1中所产生的大小为16×16的图像块Bi,按照传统的JPEG图像压缩标准中图像分块的方法分为4个互不重叠,大小为8×8的图像块,记为
其中,
这里,是中的元素,m1代表矩阵内元素的横坐标,n1代表矩阵内元素的纵坐标,m1和n1是自然数,1≤m1≤8,1≤n1≤8;是中的元素,m2代表矩阵内元素的横坐标,n2代表矩阵内元素的纵坐标,m2和n2是自然数,1≤m2≤8,1≤n2≤8;是中的元素,m3代表矩阵内元素的横坐标,n3代表矩阵内元素的纵坐标,m3和n3是自然数,1≤m3≤8,1≤n3≤8;是中的元素,m4代表矩阵内元素的横坐标,n4代表矩阵内元素的纵坐标,m4和n4是自然数,1≤m4≤8,1≤n4≤8;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
其次,对图像块使用传统的JPEG图像压缩标准中的编码方法进行编码,得到编码后的图像块,记为
这里,是中的元素,m1代表矩阵内元素的横坐标,n1代表矩阵内元素的纵坐标,m1和n1是自然数,1≤m1≤8,1≤n1≤8;
对图像块使用传统的JPEG图像压缩标准中计算编码比特数的方法计算编码比特数,记为
对图像块使用传统的JPEG图像压缩标准中的编码方法进行编码,得到编码后的图像块,记为
这里,是中的元素,m2代表矩阵内元素的横坐标,n2代表矩阵内元素的纵坐标,m2和n2是自然数,1≤m2≤8,1≤n2≤8;
对图像块使用传统的JPEG图像压缩标准中计算编码比特数的方法计算编码比特数,记为
对图像块使用传统的JPEG图像压缩标准中的编码方法进行编码,得到编码后的图像块,记为
这里,是中的元素,m3代表矩阵内元素的横坐标,n3代表矩阵内元素的纵坐标,m3和n3是自然数,1≤m3≤8,1≤n3≤8;
对图像块使用传统的JPEG图像压缩标准中计算编码比特数的方法计算编码比特数,记为
对图像块使用传统的JPEG图像压缩标准中的编码方法进行编码,得到编码后的图像块,记为
这里,是中的元素,m4代表矩阵内元素的横坐标,n4代表矩阵内元素的纵坐标,m4和n4是自然数,1≤m4≤8,1≤n4≤8;
对图像块使用传统的JPEG图像压缩标准中计算编码比特数的方法计算编码比特数,记为
将相加得到图像块Bi的编码比特数,记为 这里,i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
接着,对图像块使用传统的JPEG图像压缩标准中的解码方法进行解码,得到编码后的图像块,记为
这里,是中的元素,p1代表矩阵内元素的横坐标,q1代表矩阵内元素的纵坐标,p1和q1是自然数,1≤p1≤8,1≤q1≤8;
对图像块使用传统的JPEG图像压缩标准中的解码方法进行解码,得到编码后的图像块,记为
这里,是中的元素,p2代表矩阵内元素的横坐标,q2代表矩阵内元素的纵坐标,p2和q2是自然数,1≤p2≤8,1≤q2≤8;
对图像块使用传统的JPEG图像压缩标准中的解码方法进行解码,得到编码后的图像块,记为
这里,是中的元素,p3代表矩阵内元素的横坐标,q3代表矩阵内元素的纵坐标,p3和q3是自然数,1≤p3≤8,1≤q3≤8;
对图像块使用传统的JPEG图像压缩标准中的解码方法进行解码,得到编码后的图像块,记为
这里,是中的元素,p4代表矩阵内元素的横坐标,q4代表矩阵内元素的纵坐标,p4和q4是自然数,1≤p4≤8,1≤q4≤8;
其中,i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
然后,将图像块按照从上到下,从左到右的顺序,组成一个大小为16×16的图像块,记为b"i,
这里,
其中,α″u6,v6是b"i中的元素,u6代表矩阵b"i内元素的横坐标,v6代表矩阵b"i内元素的纵坐标,u6和v6是自然数,1≤u6≤16,1≤v6≤16;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
最后,用传统的计算均方误差的方法计算图像块b"i与步骤1中产生的图像块Bi之间的均方误差,记为这里,i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
步骤18,最优编码和解码模式的选择
首先,对步骤1产生的图像块Bi,用步骤13得到的比特数和步骤16得到均方误差相乘,将相乘的结果记为 用步骤17得到的和相乘,将相乘的结果记为 比较和的大小,如果那么选择步骤8~步骤15的编码和解码方法对步骤1中产生的图像块Bi进行编码和解码;如果那么选择步骤17的编码和解码方法对步骤1中产生的图像块Bi进行编码和解码;将解码后得到图像块,记为
这里,是中的元素,u7代表矩阵内元素的横坐标,v7代表矩阵内元素的纵坐标,u7和v7是自然数,1≤u7≤16,1≤v7≤16;i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
然后,将对图像块Bi进行编码后得到的编码比特数记为Biti,如果 如果这里,i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数;
步骤19,重建图像
对于步骤18中产生的重建图像块采用传统的JPEG图像压缩标准中图像块合成图像的方法,产生重建图像,记为这里,i代表图像块的索引,i∈{1,2,…,N},N代表步骤1中图像划分后图像块的总个数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510257376.5A CN104867165B (zh) | 2015-05-19 | 2015-05-19 | 一种基于变换域下采样技术的图像压缩方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510257376.5A CN104867165B (zh) | 2015-05-19 | 2015-05-19 | 一种基于变换域下采样技术的图像压缩方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104867165A CN104867165A (zh) | 2015-08-26 |
CN104867165B true CN104867165B (zh) | 2017-10-17 |
Family
ID=53912980
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510257376.5A Expired - Fee Related CN104867165B (zh) | 2015-05-19 | 2015-05-19 | 一种基于变换域下采样技术的图像压缩方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104867165B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105551066A (zh) * | 2015-12-28 | 2016-05-04 | 电子科技大学 | 一种基于变换域下采样技术的低分辨率图像压缩方法 |
CN105611288B (zh) * | 2015-12-28 | 2018-08-21 | 电子科技大学 | 一种基于有约束插值技术的低码率图像编码方法 |
CN105611289B (zh) * | 2015-12-28 | 2018-07-27 | 电子科技大学 | 基于智能量化技术的低分辨率图像编码方法 |
CN106204670B (zh) * | 2016-07-18 | 2019-04-05 | 电子科技大学 | 一种基于优化下采样算法和压缩感知理论的图像压缩方法 |
CN106485760B (zh) * | 2016-09-30 | 2019-05-14 | 电子科技大学 | 一种基于最小插值误差平方和的彩色图像下采样方法 |
CN110766644B (zh) * | 2018-07-27 | 2023-03-24 | 杭州海康威视数字技术股份有限公司 | 一种图像降采样方法及装置 |
CN116600145B (zh) * | 2023-07-19 | 2023-09-15 | 南通二进制软件科技有限公司 | 一种基于数据交换的生产管理方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101583032A (zh) * | 2009-06-26 | 2009-11-18 | 西安电子科技大学 | 基于自适应下采样和交叠变换的图像压缩方法 |
CN101990057A (zh) * | 2010-11-19 | 2011-03-23 | 清华大学 | 基于小波变换和块搜索的视频去噪方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8687913B2 (en) * | 2012-07-17 | 2014-04-01 | Adobe Systems Incorporated | Methods and apparatus for image deblurring and sharpening using local patch self-similarity |
-
2015
- 2015-05-19 CN CN201510257376.5A patent/CN104867165B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101583032A (zh) * | 2009-06-26 | 2009-11-18 | 西安电子科技大学 | 基于自适应下采样和交叠变换的图像压缩方法 |
CN101990057A (zh) * | 2010-11-19 | 2011-03-23 | 清华大学 | 基于小波变换和块搜索的视频去噪方法和装置 |
Non-Patent Citations (1)
Title |
---|
基于网格模型的运动估计技术;吴枫等;《电子学报》;20000531;第28卷(第5期);第47-51页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104867165A (zh) | 2015-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104867165B (zh) | 一种基于变换域下采样技术的图像压缩方法 | |
CN110350958A (zh) | 一种基于神经网络的大规模mimo的csi多倍率压缩反馈方法 | |
CN102611888B (zh) | 一种对屏幕内容的编码方法 | |
US6456744B1 (en) | Method and apparatus for video compression using sequential frame cellular automata transforms | |
CN103686177B (zh) | 一种图像压缩、解压的方法、装置及图像系统 | |
CN105103192B (zh) | 用于顶点误差校正的方法和装置 | |
CN104935928B (zh) | 一种基于空域下采样模式的高效图像压缩方法 | |
CN100409693C (zh) | 用于图像和视频压缩的正交变换方法 | |
CN106559668B (zh) | 一种基于智能量化技术的低码率图像压缩方法 | |
US6330283B1 (en) | Method and apparatus for video compression using multi-state dynamical predictive systems | |
CN107105245B (zh) | 基于tms320c6678芯片的高速jpeg图像压缩方法 | |
CN104869426A (zh) | 在低压缩码率下降低图像方块效应的jpeg编码方法 | |
CN105872536B (zh) | 一种基于双编码模式的图像压缩方法 | |
CN100518323C (zh) | 一种使用旋转压缩码书对图像进行匹配压缩的方法 | |
CN105611288B (zh) | 一种基于有约束插值技术的低码率图像编码方法 | |
CN100477796C (zh) | 用于视频转换的变换系数块的转换方法 | |
CN103647969B (zh) | 一种基于对象的快速分形视频压缩与解压缩方法 | |
CN101267557B (zh) | 一种用复合矢量量化进行图像压缩和解码的方法 | |
CN101193285A (zh) | 影像压缩编码及解码的方法和装置 | |
CN206962992U (zh) | 用于数字视频编解码的3乘3整数dct变换量化器 | |
Li et al. | A video coding algorithm using vector-based techniques | |
Amin et al. | Vector quantization based lossy image compression using wavelets–a review | |
Zhu et al. | Interpolation-directed transform domain downward conversion for block-based image compression | |
CN110365990A (zh) | 一种窄带准无损视频编码系统 | |
CN105611289B (zh) | 基于智能量化技术的低分辨率图像编码方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20171017 |