专利名称:基于Raptor码的图像编码方法
基于Raptor码的图像编码方法技术领域
本发明属于图像处理技术领域,特别是涉及图像压缩方法,可用于对复杂度和实时性要求严格的渐进式图像压缩传输。
背景技术:
图像,是当下最主要的信息记录方式之一,尤其是随着可视电话、高清电视、视频会议、遥感成像和远程监控等技术的广泛应用,图像已成为人们生活中信息交流的主要载体。然而,当图像通过无线信道传输时容易受到噪声的干扰,图像的通信质量会大大下降, 因此图像在无线信道中的可靠传输成为了当下研究的热点。
近年来,许多学者提出了联合信源信道编码方案,将无线通信系统的信源编码和信道编码联合考虑进行最优化设计,来充分保证信息传输的可靠性,在相同复杂度的情况下能获得良好的系统性能。在信道编码过程中,通过在原始信息基础之上添加冗余信息,来对原始信息进行保护。现有信道编码的方法有其固有的缺陷编码的码率是固定的,从而基于它们的联合信源信道编码也有着不足整个系统的码率是固定的,码的结构在信息传输之前已经确定,不能在线产生足够多的编码符号来译码原始信息。当接收端不能正确译码原始信息时,编码信息只能重新发送,这会增加信道的占用率,降低效率。发明内容
本发明的目的在于克服上述已有技术的缺点和不足,提出一种基于Raptor码的图像编码方法,以提高信道的利用效率。
为实现上述目的,本发明的实现步骤包括如下
(1)对原始图像进行五级9/7小波变换,产生不同频率的子带,并对子带内的系数进行交织,得到具有能容错的变换图像系数;
(2)对变换图像系数采用四舍五入的方法进行量化;
(3)按照从低频到高频的顺序,对每个子带逐一进行位平面编码,并将编码后的码流组成一个数据包,每个数据包对应一个子带;
(4)对每个数据包中的码流进行Raptor编码,得到具有纠错码信息的待发送码流;
(5)在发送端,将待发送码流通过二进制删除信道进行传输,在接收端接收传输后的码流信息;
(6)对接收端接收的码流信息进行Raptor译码,恢复步骤( 所述的数据包信息;
(7)对数据包信息进行位平面解码,恢复图像变换系数,并对该系数进行解交织;
(8)对解交织后的图像变换系数进行9/7小波逆变换,得到最终的解码图像。
本发明与现有技术相比具有如下优点
本发明由于采用具有无码率特性的Raptor码,不仅能弥补传统联合信源信道编码的码率固定方式的缺陷,而且能在线产生足够多的编码符号以对原始信息进行译码,提高了信道的利用效率;同时,由于采用了位平面编码方式以及对小波变换后的子带内的系数进行了交织,故可在道条件恶劣的情况下,仍能获得高质量的恢复图像;此外本发明具有复杂度低的优点,能进行实时性要求严格的渐进式图像压缩传输。
图1是本发明的总流程图2是本发明的子带系数交织图3是Raptor编码前数据包结构图4是Raptor编码后数据包结构图5是本发明的二进制删除信道模型图6是本发明编码时的生成矩阵示意图7是本发明仿真采用的图像。
具体实施方式
参照图1,本发明的具体步骤如下
步骤1,对原始图像进行五级9/7小波变换,产生不同频率的子带,并对子带内的系数进行交织,得到具有能容错的变换图像系数。
参照图2,子带内的系数交织步骤如下
la)将子带进行四分,产生四个相等的块M1, M2, M3, M4,如图2(a)所示;
lb)将M1块分成四个相等的块,并按照M1所在的位置,交叉放置该四个相等的块, 如图2(b)所示;
Ic)按照lb)所述的过程,将M2, M3, M4每个块分别分成四个相等的块,并按照它们的位置,交叉放置各自四个相等的块的位置。
步骤2,对变换图像系数采用四舍五入的方法进行量化,即变换图像系数的符号位不变,如果该系数的小数部分的值大于等于0. 5,则取该系数的整数部分的值加1作为量化后的值,否则直接取该系数的整数部分作为量化后的值。
步骤3,按照从低频到高频的顺序,对每个子带逐一进行位平面编码,并将编码后的码流组成一个数据包,每个数据包对应一个子带。
所述位平面编码的步骤如下
3a)根据子带内的系数的最大值M,确定最高位平面n,并且η = Llog2 Μ」;
3b)编码最高位平面n,并计算该最高位平面的阈值为2n,如果子带内的系数大于该阈值,则输出1,否则输出0 ;
3c)编码次高位平面,η值减1,更新阈值为211-1,如果子带内的系数大于该阈值,则输出1,否则输出0,重复此过程直到η值为0时,编码位平面0。
每个子带(Wavelet Band)位平面编码后的码流能组成一个数据包,它的结构如图3所示,由起始标记字节(BeginByte)、数据字节总数(DataNumber)和信源信息 (SourceData) 。
步骤4,对每个数据包中码流进行Raptor编码,得到具有纠错码信息的待发送码流。
Raptor编码是实现本发明目的的关键技术,它由两个环节组成预编码和LT编码,这里的预编码是由低密度校验编码LDPC编码和Half编码组成;在Raptor编码过程中, 需要先计算中间符号,该中间符号是进行LT编码的前提,LT编码正是对中间符号进行异或的过程;每个数据包中的码流进行Raptor编码之后,具有了纠错码信息,它的结构如图4所示,由起始标记字节(BeginByte)、数据字节总数(DataNumber)、信源信息(SourceData)和 Raptor 编码信息(RaptorData)组成。
Raptor编码的具体步骤如下
4a)根据信源符号长度K,分别计算LDPC编码符号个数S、Half编码符号个数H和中间符号长度L :
对于S,先求解满足XX (X-I)彡2XK的最小整数X,则S是满足 S彡ceil (0.01 XK)+X的最小的质数,其中ceil (χ)表示大于等于χ的最小整数;
对于H,它是满足choose (H,ceil (Η/2))彡K+S的最小整数,其中,choose (i,j)表示从i个元素中选出j个元素的组合数;
对于L,它是 K, S, H 之和,即 L = K+S+H。
4b)根据预编码关系,构造生成矩阵A
4bl)设定参数并明确预编码关系
设以0],...,C[L_1]表示L个中间符号,则以0],...,C[K_1]表示前K个中间符号,C[K],. . . C[K+S-1]表示 S 个 LDPC 编码符号,C[K+S],· · · C[L_1]表示 H 个 Half 编码符号。预编码关系是中间符号的前K个符号与后面的L-K个符号之间的关系,它包含两层含义,即前K个中间符号与S个LDPC编码符号的关系和前K+S个中间符号与H个Half编码符号的关系;
4b2)计算 LDPC 编码矩阵 G_LDPC
G_LDPC是一个SXK阶矩阵,它是预编码的第一层含义,表示LDPC编码过程,G_ LDPC能通过前K个中间符号与S个LDPC编码符号的关系来计算。
在文献 RFC5053 “Raptor Forward Error Correction Scheme for Object Delivery”中,给出前K个中间符号与S个LDPC编码符号满足如下关系
i从0开始到K-I,分别作如下处理
a = l+floor(i/S) % (S-I)
b = i% S
C[K+b] = C[K+b]"C[i]
b = (b+a) % S
C[K+b] = C[K+b]"C[i]
b = (b+a) % S
C[K+b] = C[K+b]"C[i]
其中,a,b,i表示整数,表示异或运算,floor (χ)表示小于等于χ的最小整数;
4b3)计算 Half 编码矩阵 G_Half
GJfalf是一个HX (K+S)阶矩阵,它是预编码的第二层含义,表示Half编码过程, GJfalf能通过前K+S个中间符号与H个Half编码符号的关系来计算,为表示前K+S个中间符号与H个Half编码符号的关系,首先作一个定义
g[i] = i"floor (i/2),Vi >0
这里的g[i]是一个格雷码序列,即序列中前后两个码字之间只有1个比特差异, 用m[H’]表示g[i]的子序列,该子序列的每个码字的二进制表示中有H’个比特的1,且H’ =⑶^仿/^,并用!!^·,!!,]表示m[H’]序列中的第j个元素,则前K+S个中间符号与H个 Half编码符号满足如下关系
设h从0开始到H-I,j从0开始到K+S-1,如果m[j,H’ ] 二进制表示的第h比特位等于1,则c[h+K+s] =c[h+K+src[j],反之不变,其中,h,j表示整数,表示异或运算;
4b4)计算LT编码矩阵G_LT,并构造生成矩阵A
G_LT是一个1(\1^介矩阵,它按照36 TS沈.346标准中的LT编码中给出的LT编码过程来计算。如图6所示,生成矩阵A是一个LXL阶方阵,它由LDPC编码矩阵G_LDPC、 Half编码矩阵GJfalf、LT编码矩阵G_LT、矩阵I_S、矩阵I_H和矩阵0_SXH构成,其中,矩阵I_S是一个S X S阶单位矩阵,矩阵I_H是一个HXH阶单位矩阵,矩阵0_S X H是一个S X H 阶零矩阵;
4c)计算生成矩阵A的逆矩阵,并计算中间符号C
C[L_1]
由于生成矩阵A是方阵,因此采用全选主元高斯消去法计算生成矩阵A的逆矩阵 A—1,得到逆矩阵A—1后,按照如下的关系计算中间符号C
C[L-1]
C = A-1XD1)
其中,C表示由L个中间符号CW],C [1],...,C[L-1]组成的列向量,D表示由L 个符号组成的列向量,且其前S+H个符号为0,后K个符号代表信源符号。根据关系式1), 将生成矩阵A的逆矩阵A—1与列向量D进行矩阵相乘,将列向量C计算出来,即可得到中间符号CW],C[1],…,C[L-1];
4d)利用计算出来的中间符号C
C[L_1],将其进行LT编码,得到Raptor编码后符号。
步骤5,在发送端,将待发送码流通过二进制删除信道进行传输,在接收端接收传输后的码流信息。
二进制删除信道的模型如图5所示,二进制信息0/1以1-p的概率正确传输到接收端,并以P的概率在信道中丢失,其中P表示信息丢失率,E代表信息丢失。
步骤6,对接收端接收的码流信息进行Raptor译码,恢复步骤3所述的数据包信肩、ο
6a)根据接收到的码流信息,分别计算接收到的符号长度N和译码长度M,M = S+H+N,其中S是LDPC编码符号个数,H是Half编码符号个数;
6b)按照编码生成矩阵A的构建过程,构造译码矩阵B
译码矩阵B是一个MXL阶矩阵,能按照编码生成矩阵A的构建过程来构造,即译码矩阵B的前S+H行和A矩阵相同,后N行按照3GPP TS沈.346标准中的LT编码过程来计算;
6c)构造译码方程
设(表示由1^个中间符号以0],([1],...,([1^-1]组成的列向量,G表示由M个符号组成的列向量,且其前S+H个符号为0,后N个符号为接收到的编码符号,将中间符号列向量C看作未知数列向量,则译码矩阵B、中间符号列向量C和列向量G构成译码方程为
BXC = G
2)
6d)计算中间符号C
C[L-1],再经译码得到信源信息
利用伽罗华域全选主元高斯消去法求解方程2、,计算出中间符号向量C,得到中间符号列向量C后,将在编码时产生的LT编码矩阵G_LT与中间符号列向量C进行矩阵相乘,即能译码得到信源信息。
步骤7,对数据包信息进行位平面解码,恢复图像变换系数,并对该系数进行解交幺口 /Ν ο
所述位平面解码具体步骤如下
7a)每个数据包对应一个子带,子带内的系数初始化为0,从最高位平面η开始解码,计算该最高位平面的阈值2η,如果输入为1,则子带内的系数与该阈值相加,否则子带内的系数不变;
7b)解码次高位平面,η值减1,更新阈值为2114,如果输入为1,则子带内的系数与该阈值相加,否则子带内的系数不变;
7c)重复7b)直到η值为0时,解码位平面0。
步骤8,对解交织后的图像变换系数进行9/7小波逆变换,得到最终的解码图像。
本发明的效果通过以下具体实验数据进一步说明。
1.实验条件
本发明的实验是取大小为512 X 512,灰度为8比特的Lena、Barbara、GoIdhi 11和 Munar等四幅自然图像,如图7所示,其中图7 (a)为Lena图,图7 (b)为Barbara图,图7 (c) 为 Goldhill 图,图 7(d)为 Munar 图。
2.实验内容
按照本发明所述的编码和解码的步骤对图7所示的四幅自然图像分别进行编码和解码。设信源符号长度为40,编码符号长度为60,每个符号的长度为3字节,二进制删除信道的丢失率为0. 001,在码率bpp为0. 125,0. 25、0. 5和1的条件下计算峰值信噪比PSNR, 并在同等情况下,对比传统的信道编码RS编码与本发明的方法的PSNR值,见表1。
2.实验比较结果
本发明采用峰值信噪比PSNR作为数字对比的指标,其定义如下
权利要求
1.一种基于Raptor码的图像编码方法,包括如下步骤(1)对原始图像进行五级9/7小波变换,产生不同频率的子带,并对子带内的系数进行交织,得到具有能容错的变换图像系数;(2)对变换图像系数采用四舍五入的方法进行量化;(3)按照从低频到高频的顺序,对每个子带逐一进行位平面编码,并将编码后的码流组成一个数据包,每个数据包对应一个子带;(4)对每个数据包中的码流进行Raptor编码,得到具有纠错码信息的待发送码流;(5)在发送端,将待发送码流通过二进制删除信道进行传输,在接收端接收传输后的码流信息;(6)对接收端接收的码流信息进行Raptor译码,恢复步骤( 所述的数据包信息;(7)对数据包信息进行位平面解码,恢复图像变换系数,并对该系数进行解交织;(8)对解交织后的图像变换系数进行9/7小波逆变换,得到最终的解码图像。
2.根据权利要求1所述的基于Raptor码的图像编码方法,其中步骤(1)所述的对子带内的系数进行交织,按如下步骤进行2a)将子带进行四分,产生四个相等的块M1, M2, M3, M4 ;2b)将M1块分成四个相等的块,并按照M1所在的位置,交叉放置该四个相等的块;2c)按照2b)所述的过程,将M2, M3, M4每个块分别分成四个相等的块,并按照它们的位置,交叉放置各自四个相等的块的位置。
3.根据权利要求1所述的基于Raptor码的图像编码方法,其中步骤( 所述的对每个子带逐一进行位平面编码,按照如下步骤进行3a)根据子带内的系数的最大值M,确定最高位平面n,并且η = [Iog2 Mj ;3b)编码最高位平面n,并计算该最高位平面的阈值为2n,如果子带内的系数大于该阈值,则输出1,否则输出0;3c)编码次高位平面,η值减1,更新阈值为2"-1,如果子带内的系数大于该阈值,则输出 1,否则输出0,重复此过程直到η值为O时,编码位平面O。
4.根据权利要求1所述的基于Raptor码的图像编码方法,其中步骤(4)所述的对每个数据包中的码流进行Raptor编码,按如下步骤进行4a)根据信源符号长度K,分别计算LDPC编码符号个数S、Half编码符号个数H和中间符号长度L ;4b)根据预编码关系,构造生成矩阵A ;4c)计算生成矩阵A的逆矩阵,并计算中间符号C
C[L-1];4d)利用计算出来的中间符号C
C[L-1],将其进行LT编码,得到Raptor编码后符号。
5.根据权利要求1所述的基于Raptor码的图像编码方法,其中步骤(6)所述的对接收端接收的码流信息进行Raptor译码,按如下步骤进行5a)根据接收到的码流信息,分别计算接收到的符号长度N和译码长度M,M = S+H+N, 其中S是LDPC编码符号个数,H是Half编码符号个数;5b)按照编码生成矩阵A的构建过程,构建译码矩阵B ;5c)构造译码方程;5d)计算中间符号C
C[L-1],再经译码得到信源信息。
6.根据权利要求1所述的基于Raptor码的图像编码方法,其中步骤(7)所述的对数据包信息进行位平面解码,按照如下步骤进行6a)每个数据包对应一个子带,子带内的系数初始化为0,从最高位平面η开始解码,计算该最高位平面的阈值2η,如果输入为1,则子带内的系数与该阈值相加,否则不变;6b)解码次高位平面,η值减1,更新阈值为211-1,如果输入为1,则子带内的系数与该阈值相加,否则子带内的系数不变;6c)重复6b)直到η值为0时,解码位平面0。
全文摘要
本发明提出了一种基于Raptor码的图像编码方法,主要解决传统联合信源信道编码的码率固定而导致信道利用率低的缺陷。其实现过程为1.对原始图像进行五级9/7小波变换,产生不同频率的子带,并对子带内的系数进行交织;2.按照从低频到高频的顺序,对每个子带逐一进行位平面编码,并将编码后的码流组成一个数据包,每个数据包对应一个子带;3.对每个数据包中的码流进行Raptor编码,得到具有纠错码信息的待发送码流;4.在发送端,将待发送码流通过二进制删除信道进行传输,在接收端接收传输后的码流信息;5.对接收到的码流信息按照与发送端完全相反的顺序进行解码,最后得到重构图像。本发明具有复杂度低的优点,能进行实时性要求严格的渐进式图像压缩传输。
文档编号H04N7/26GK102547287SQ201210006949
公开日2012年7月4日 申请日期2012年1月11日 优先权日2012年1月11日
发明者吴信红, 吴家骥, 方勇, 焦李成 申请人:西安电子科技大学