公开/公告号CN108540798A
专利类型发明专利
公开/公告日2018-09-14
原文格式PDF
申请/专利权人 西安电子科技大学;
申请/专利号CN201810315318.7
申请日2018-04-10
分类号H04N19/124(20140101);H04N19/13(20140101);H04N19/147(20140101);H04N19/154(20140101);H04N19/63(20140101);H04N19/85(20140101);
代理机构61205 陕西电子工业专利中心;
代理人陈宏社;王品华
地址 710071 陕西省西安市雁塔区太白南路2号
入库时间 2023-06-19 06:31:19
法律状态公告日
法律状态信息
法律状态
2022-10-14
专利权的转移 IPC(主分类):H04N19/124 专利号:ZL2018103153187 登记生效日:20220929 变更事项:专利权人 变更前权利人:西安电子科技大学 变更后权利人:湖南融创微电子有限公司 变更事项:地址 变更前权利人:710071 陕西省西安市雁塔区太白南路2号 变更后权利人:410205 湖南省长沙市高新区尖山路18号中电软件园A5栋
专利申请权、专利权的转移
2020-06-05
授权
授权
2018-10-16
实质审查的生效 IPC(主分类):H04N19/124 申请日:20180410
实质审查的生效
2018-09-14
公开
公开
技术领域
本发明属于图像处理技术领域,具体涉及一种JPEG2000图像编码的实现系统及方法,可用于各种数字设备的图像压缩编码。
背景技术
随着多媒体和网络技术的发展和应用,传统的图像压缩算法已不能满足当前市场和实际应用的要求,为此国际标准组织于2000年11月制定了静止图像压缩的新标准JPEG2000。该新标准采用基于小波变换技术的率失真优化截取内嵌码块编码算法(EBCOT),取得了较好的图像压缩效果。标准JPEG2000的编码系统如图1所示,其中EBCOT分为Tier1编码器和Tier2编码器两部分。Tier1由内嵌比特平面编码和MQ编码组成,完成上下文形成和MQ编码;Tier2由斜率计算、码流截取和码流组织组成。EBCOT编码时,各小波子带被划分为码块,以码块为单位独立作Tier1编码。不同的码块以通道为单位产生长度不等的码流,鉴于其对恢复图像质量的重要性不同,Tier2采用率失真优化技术进行后压缩处理,完成码流的率控制和组织。
标准JPEG2000中的率失真优化是一种后处理方法,完成图像编码的码率控制,使得压缩码流不但具有最优的总体码率性能,而且具有最优的任意截断点码率性能。
标准JPEG2000采用PCRD算法来进行率失真优化,该算法根据内嵌编码码流可以任意截断并解码出具有一定质量图像的特点,以码块为单位进行截取,能够在给定目标码率的条件下使压缩图像质量最好。但PCRD算法是在整幅图像上的全局优化过程,它需要对整幅图像的所有码块每个通道进行截取点搜索,因此,必须先由Tier1编码器对所有码块每个通道进行编码,并存储所有通道的码率和失真,再由Tier2编码器根据所有通道的码率和失真计算所有通道的斜率,并进行多次截取完成码率控制。显然,率失真优化需要消耗大量的计算时间和存储资源,这是JPEG2000实现的瓶颈。
为了减小率失真优化的计算时间和存储资源,现有技术主要是通过各类码率预估计的方法,在Tier1处进行一次预截取,使得Tier1编码器只对一部分通道进行编码,减少了Tier1处的计算量和存储量,比如,授权公告号为CN103118259B,名称为“一种JPEG2000图像编码方法”的中国专利,公开了一种JPEG2000编码方法,该方法在JPEG2000标准基础上,对Tier1编码进行改进,根据第一个编码块的最小率失真斜率作为门限的初始值和循环判断这两个特点,对设置为“1”状态的编码通道进行编码,而设置为“0”状态的编码通道丢弃。通过循环判断,可截断大量Tier1的冗余编码通道,同时也缩小了Tier2搜索最优率失真斜率门限值和最优截断点的范围,因此可显著地减少JPEG2000图像编码的计算时间和存储资源。但存在的缺陷是,通过码率预估计和预截取减少Tier1需要编码的通道数目的多寡与码率(bpp)有关,在低码率时,大量通道在Tier1的预截取过程中被舍弃,从而显著减少了存储量和计算时间,但在高码率时,只有少量通道在Tier1的预截取过程中被舍弃,因此减少的资源和时间十分有限,此外,在Tier1处通过预截取舍弃的通道和PCRD算法在Tier2截取过程中舍弃的通道并不是完全包含的关系,导致损失了一部分的有用码流,因此会影响图像压缩编码性能。
发明内容
本发明的目的在于克服上述现有技术存在的不足,提出了一种JPEG2000图像编码的实现系统及方法,旨在不影响图像压缩编码性能的前提下,实现在任意码率下有效降低率失真优化存储资源的消耗,并减少计算时间。
为实现上述目的,本发明采取的技术方案为:
一种JPEG2000图像编码的实现系统,包括预处理模块、离散小波变换模块、量化模块和EBCOT模块,其中:
预处理模块,用于通过对输入图像进行分块、电平移位和分量变换的预处理,以获取预处理图像;
离散小波变换模块,用于通过对预处理图像进行离散小波变换,以获取小波子带系数;
量化模块,用于通过对小波子带系数进行量化,以获取量化码块;
EBCOT模块,包括Tier1模块和Tier2模块,用于对量化码块进行率失真优化截取内嵌码块编码;
所述Tier1模块,包括比特平面编码模块、MQ编码模块和斜率计算模块,其中:
比特平面编码模块,用于通过对量化码块进行比特平面编码,以获取所有码块每个通道的二进制符号和上下文,同时计算所有码块每个通道的失真;
MQ编码模块,用于通过对所有码块每个通道的二进制符号和上下文进行MQ编码,以获取所有码块每个通道的压缩码流,并通过统计以获取所有码块每个通道的码率;
斜率计算模块,用于根据所有码块每个通道的失真和码率,计算所有码块每个通道的斜率,并通过剔除所有通道中的奇异点,以获取所有码块每个有效通道;
所述Tier2模块,包括码流截取模块和码流组织模块,其中:
码流截取模块,用于根据所有码块每个有效通道的码率和斜率以及本次图像编码的目标码率Rtarget,通过对所有码块每个有效通道的压缩码流进行并行截取,以获取截取码流;
码流组织模块,用于通过对截取码流进行码流组织,以获取输出图像。
上述一种JPEG2000图像编码的实现系统,所述Tier1模块,其中的比特平面编码模块和MQ编码模块每完成一个通道编码,即将该通道的失真与码率输入至斜率计算模块,实现通道编码与通道斜率计算的同时进行。
一种JPEG2000图像编码的实现方法,包括如下步骤:
(1)预处理模块对输入图像进行预处理:
预处理模块对输入图像进行分割,得到一个或多个图像块,并对图像块的像素点进行电平移位,得到“0”对称的图像块,再对“0”对称的图像块进行颜色分量变换,得到预处理图像;
(2)离散小波变换模块对预处理图像进行离散小波变换,得到小波子带系数;
(3)量化模块对小波子带系数进行量化,得到量化码块;
(4)Tier1模块获取所有码块每个有效通道的压缩码流、码率和斜率:对量化码块进行比特平面编码、MQ编码和斜率计算,具体包括以下步骤:
(4a)比特平面编码模块对量化码块进行比特平面编码,并将得到的所有码块每个通道的二进制符号与上下文输入MQ编码模块;同时计算第n个码块第i个通道的失真
(4b)MQ编码模块对所有码块每个通道的二进制符号与上下文进行MQ编码,得到所有码块每个通道的压缩码流,并将统计出的第n个码块第i个通道的码率
(4c)斜率计算模块接收第n个码块第i个通道的失真
(5)码流截取模块根据所有码块每个有效通道的码率和斜率以及本次图像编码的目标码率Rtarget,对所有码块每个有效通道的压缩码流进行并行截取,得到截取码流:
(5a)初始化所有有效通道斜率集合的上下限,令斜率下限Smin为0,斜率上限Smax为所有有效通道斜率集合中的最大值;
(5b)计算当前次截取的斜率门限Sthrs=(Smin+Smax)/2,以及下一次截取可能的两个斜率门限Snext1=(Smin+Sthrs)/2和Snext2=(Sthrs+Smax)/2;
(5c)用三个斜率门限Sthrs、Snext1和Snext2对所有有效通道进行并行截取,得到三个截取出的有效通道集合和三个对应的截取码率:
(i)用斜率门限Sthrs截取所有有效通道,即将第n个码块第i个有效通道的斜率
(ii)用斜率门限Snext1截取所有有效通道,即将第n个码块第i个有效通道的斜率
(iii)用斜率门限Snext2截取所有有效通道,即将第n个码块第i个有效通道的斜率
(5d)将步骤(5c)中斜率门限Sthrs对应的截取码率Rthrs与目标码率Rtarget进行比较,若Rthrs=Rtarget,则令目标斜率门限为Sthrs,转到步骤(5g);否则,若Rthrs<Rtarget,则转到步骤(5e),若Rthrs>Rtarget,则转到步骤(5f);
(5e)若下一次截取可能的两个斜率门限的差值满足Snext2-Snext1≤1,则令目标斜率门限为Snext1,转到步骤(5g);若不然,将步骤(5c)中斜率门限Snext1对应的截取码率Rnext1与目标码率Rtarget进行比较,若Rnext1=Rtarget,则令目标斜率门限为Snext1,转到步骤(5g);否则,若Rnext1<Rtarget,则令Smin为0、Smax为Snext1,转到步骤(5b),若Rnext1>Rtarget,则令Smin为Snext1、Smax为Sthrs,转到步骤(5b);
(5f)若下一次截取可能的两个斜率门限的差值满足Snext2-Snext1≤1,则令目标斜率门限为Snext2,转到步骤(5g);若不然,将步骤(5c)中斜率门限Snext2对应的截取码率Rnext2与目标码率Rtarget进行比较,若Rnext2=Rtarget,则令目标斜率门限为Snext2,转到步骤(5g);否则,若Rnext2<Rtarget,则令Smin为Sthrs、Smax为Snext2,转到步骤(5b),若Rnext2>Rtarget,则令Smin为Snext2、Smax不变,转到步骤(5b);
(5g)将目标斜率门限截取出的有效通道的压缩码流合并,得到截取码流;
(6)码流组织模块对截取码流进行码流组织,得到输出图像。
本发明与现有技术相比,具有如下优点:
第一,本发明将斜率计算模块从Tier2提前至Tier1,在通道编码的同时进行通道斜率计算,从而减少了通道编码和斜率计算的时间消耗,并且避免了Tier1存储所有通道失真的需求,从而减少了Tier1存储资源的消耗,与现有技术相比,实现了任意码率下率失真优化时间和资源消耗的有效降低,提高了编码效率。
第二,本发明在Tier 2码流截取时采取并行截取的方式,将截取次数减少了一半,提高了近一倍的截取速度,进一步减少了率失真优化的时间消耗。
第三,本发明实现率失真优化的原理和PCRD算法完全一致,保证了图像编码的性能与标准JPEG2000相当。
附图说明
图1是标准JPEG2000的系统框图;
图2是本发明实现系统的结构示意图;
图3是本发明实现方法的流程图。
具体实施方式
以下结合附图和具体实施例,对本发明作进一步详细描述。
参照图2,一种JPEG2000图像编码的实现系统,包括预处理模块、离散小波变换模块、量化模块和EBCOT模块,其中:
预处理模块,用于通过对输入图像进行分块、电平移位和分量变换的预处理,以获取预处理图像;
离散小波变换模块,用于通过对预处理图像进行离散小波变换,以获取小波子带系数;
量化模块,用于通过对小波子带系数进行量化,以获取量化码块;
EBCOT模块,包括Tier1模块和Tier2模块,用于对量化码块进行率失真优化截取内嵌码块编码;
所述Tier1模块,包括比特平面编码模块、MQ编码模块和斜率计算模块,其中:
比特平面编码模块,用于通过对量化码块进行比特平面编码,以获取所有码块每个通道的二进制符号和上下文,同时计算所有码块每个通道的失真;每得到一个通道的二进制符号和上下文,就将该通道的二进制符号和上下文输入MQ编码模块,同时计算出该通道的失真输入斜率计算模块;
MQ编码模块,用于通过对所有码块每个通道的二进制符号和上下文进行MQ编码,以获取所有码块每个通道的压缩码流,并通过统计以获取所有码块每个通道的码率;每收到一个通道的二进制符号和上下文,就启动一次MQ编码,得到该通道的压缩码流并存储,再统计该通道压缩码流中的字节数,得到该通道的码率输入斜率计算模块;
斜率计算模块,用于根据所有码块每个通道的失真和码率,计算所有码块每个通道的斜率,并通过剔除所有通道中的奇异点,以获取所有码块每个有效通道;每收到一个通道的失真和码率,就计算一次斜率,得到该通道斜率,将该通道斜率与该通道之前三个通道的斜率比较,不满足斜率单调递减的通道为奇异点,剔除奇异点,所有保留下的通道均为有效通道;
上述Tier1模块中,比特平面编码模块和MQ编码模块每完成一个通道编码,即将该通道的失真与码率输入至斜率计算模块,实现通道编码与通道斜率计算的同步进行;斜率计算模块在标准JPEG2000中位于Tier2模块,将斜率计算模块转移至Tier1模块后,在比特平面编码和MQ编码的同时可以进行斜率计算,一方面缩短了三者总的工作时间,另一面在Tier1结束后不再需要存储通道失真;
所述Tier2模块,包括码流截取模块和码流组织模块,其中:
码流截取模块,用于根据所有码块每个有效通道的码率和斜率以及本次图像编码的目标码率Rtarget,通过对所有码块每个有效通道的压缩码流进行并行截取,以获取截取码流;并行截取就是同时进行两次截取,将标准JPEG2000中截取的迭代次数减少一半;
码流组织模块,用于通过对截取码流进行码流组织,以获取输出图像。
参考图3,一种JPEG2000图像编码的实现方法,包括如下步骤:
(1)预处理模块对输入图像进行预处理:
预处理模块对输入图像进行分割,得到一个或多个图像块,并对图像块的像素点进行电平移位,得到“0”对称的图像块,再对“0”对称的图像块进行颜色分量变换,得到预处理图像;
本实施例的输入图像为512*512的8比特深度的RGB彩图,预处理模块将输入图像分割为一个图像块,即输入图像本身,并将所有像素点减去27的偏移量,使像素点关于“0”对称,再通过可逆分量变换把输入图像从RGB空间变换到YUV空间,得到预处理图像,可逆分量变换公式如下:
(2)离散小波变换模块对预处理图像进行离散小波变换,得到小波子带系数;
离散小波变换是将预处理图像分解为低频带系数LL和多个高频带系数LH、HL和HH,其中LL表示为水平和垂直方向都是平滑的子带系数,LH表示为水平方向是平滑、垂直方向是细节的子带系数,HL表示为水平方向是细节、垂直方向是平滑的子带系数,HH表示为水平和垂直方向都是细节的子带系数;因此低频带系数LL是图像能量集中的频带,高频带系数HL、LH、HH主要是边缘、纹理和轮廓,小波系数都很小;
(3)量化模块对小波子带系数进行量化,得到量化码块;
量化是将离散小波变换后得到的小波子带系数的精度进行调整,即通过调整量化步长的大小来改变表示一个小波子带系数所需的比特数,量化小波子带系数的公式如下:
其中,qb[m,n]为子带b量化后的小波系数,sb[m,n]为子带b的小波系数,Δb为子带b的量化步长,本实施例取Δb=10,sign(sb[m,n])表示小波子带系数sb[m,n]的正负符号;
(4)Tier1模块获取所有码块每个有效通道的压缩码流、码率和斜率:对量化的码块进行比特平面编码、MQ编码和斜率计算,具体包括以下步骤:
(4a)比特平面编码模块对量化码块进行比特平面编码,并将得到的所有码块每个通道的二进制符号与上下文输入MQ编码模块;同时计算第n个码块第i个通道的失真
(4b)MQ编码模块对所有码块每个通道的二进制符号与上下文进行MQ编码,得到所有码块每个通道的压缩码流,并将统计出的第n个码块第i个通道的码率
(4c)斜率计算模块接收第n个码块第i个通道的失真
斜率计算模块先收到第n个码块第i个通道的失真
由于通道斜率在截取时只用于比较运算,本实施例为避免浮点除法运算以及浮点表示,使用上式取代了标准JPEG2000中
斜率计算模块计算得到
(4c1)将第n个码块的第i个通道的斜率
(4c2)将第n个码块的第i个通道的斜率
(4c3)将第n个码块的第i个通道的斜率
所有未被剔除的通道均为有效通道,而对于被剔除的奇异点,其通道失真和码率均已累加到有效通道之上,显然,奇异点的压缩码流也就归入有效通道,最终Tier1模块将所有有效通道的压缩码流、码率和斜率输入到码流截取模块进行码流截取;
(5)码流截取模块根据所有码块每个有效通道的码率和斜率以及本次图像编码的目标码率Rtarget,对所有码块每个有效通道的压缩码流进行并行截取,得到截取码流;
截取过程需要遍历所有有效通道的斜率,从中寻找出目标斜率门限,用目标斜率门限截取到的压缩码流的码率与目标码率一致,从而实现码率控制;
为了能够快速遍历,采用二分法寻找目标门限斜率,初始时,取斜率下限Smin为0、斜率上限Smax为所有有效通道斜率集合中的最大值,取区间中值Sthrs=(Smin+Smax)/2为初始斜率门限进行第一次截取,所有大于等于斜率门限的有效通道会被保留,当第一次截取完成后,累加所有保留下的有效通道的码率,得到截取码率Rthrs,比较Rthrs与目标码率Rtarget,若Rthrs=Rtarget,则Sthrs为目标斜率门限,若Rthrs<Rtarget,则说明所设的斜率门限偏大,令下一次截取的斜率门限为(Smin+Sthrs)/2,若Rthrs>Rtarget,则说明所设的斜率门限偏小了,令下一次截取的斜率门限为(Sthrs+Smax)/2;如此循环迭代,经过多次截取后,截取码率达到目标码率或者已遍历完所有有效通道的斜率集合,截取结束;
由于在当前次截取的斜率门限的基础上,下一次截取的斜率门限只有两个可能值,因此,本实施例同时用当前次截取的斜率门限和下一次截取的两个可能的斜率门限进行截取,通过一次截取的操作可以得到当前次截取和下一次截取两次截取的结果,实现并行截取;本实施例在一次并行截取后得到一个当前次截取的截取码率,和两个下一次截取的可能截取码率,先根据当前次截取码率与目标码率的比较结果,确定下一次的两个可能截取码率中哪一个是真正的下一次截取码率,再根据下一次截取码率与目标码率的比较结果,更新斜率上下限,具体步骤如下:
(5a)初始化所有有效通道斜率集合的上下限,令斜率下限Smin为0,斜率上限Smax为所有有效通道斜率集合中的最大值;
(5b)计算当前次截取的斜率门限Sthrs=(Smin+Smax)/2,以及下一次截取可能的两个斜率门限Snext1=(Smin+Sthrs)/2和Snext2=(Sthrs+Smax)/2;
(5c)用三个斜率门限Sthrs、Snext1和Snext2对所有有效通道进行并行截取,得到三个截取出的有效通道集合和三个对应的截取码率:
(i)用斜率门限Sthrs截取所有有效通道,即将第n个码块第i个有效通道的斜率
(ii)用斜率门限Snext1截取所有有效通道,即将第n个码块第i个有效通道的斜率
(iii)用斜率门限Snext2截取所有有效通道,即将第n个码块第i个有效通道的斜率
(5d)将步骤(5c)中斜率门限Sthrs对应的截取码率Rthrs与目标码率Rtarget进行比较,若Rthrs=Rtarget,则令目标斜率门限为Sthrs,转到步骤(5g);否则,若Rthrs<Rtarget,则转到步骤(5e),若Rthrs>Rtarget,则转到步骤(5f);
(5e)若下一次截取可能的两个斜率门限的差值满足Snext2-Snext1≤1,则令目标斜率门限为Snext1,转到步骤(5g);若不然,将步骤(5c)中斜率门限Snext1对应的截取码率Rnext1与目标码率Rtarget进行比较,若Rnext1=Rtarget,则令目标斜率门限为Snext1,转到步骤(5g);否则,若Rnext1<Rtarget,则令Smin为0、Smax为Snext1,转到步骤(5b),若Rnext1>Rtarget,则令Smin为Snext1、Smax为Sthrs,转到步骤(5b);
Snext2-Snext1≤1表明下一次并行截取的斜率门限将与本次并行截取的斜率门限相同,说明所有有效通道的斜率均已遍历完,本次并行截取为最后一次截取;
(5f)若下一次截取可能的两个斜率门限的差值满足Snext2-Snext1≤1,则令目标斜率门限为Snext2,转到步骤(5g);若不然,将步骤(5c)中斜率门限Snext2对应的截取码率Rnext2与目标码率Rtarget进行比较,若Rnext2=Rtarget,则令目标斜率门限为Snext2,转到步骤(5g);否则,若Rnext2<Rtarget,则令Smin为Sthrs、Smax为Snext2,转到步骤(5b),若Rnext2>Rtarget,则令Smin为Snext2、Smax不变,转到步骤(5b);
(5g)将目标斜率门限截取出的有效通道的压缩码流合并,得到截取码流;
(6)码流组织模块对截取码流进行码流组织,得到输出图像;
码流组织模块按标准JPEG2000规定的码流压缩格式,完成码流组织和打包,输出最终编码码流,实现图像压缩编码。
本发明未详细说明部分属于本领域技术人员公知常识。
以上描述仅是本发明的一个具体事例,不构成对本发明的任何限制。显然对于本领域的专业人员来说,在了解了本发明内容和原理后,都可能在不背离本发明原理、结构的情况下,进行形式和细节上的任何修正和改变,但是这些基于本发明思想的修正和改变仍在本发明的权利要求保护范围之内。
机译: 一种用于实现至少一种害虫监测和控制的系统,包括具有内置摄像机的容器,在内部准备的至少一种害虫监测材料和害虫诱饵,以及一种用于实现至少一种监测的方法。和害虫防治。
机译: QTG QTG一种用于控制飞行系统的系统,以及一种用于综合飞行训练机的自动实现QTG的控制系统的实现方法
机译: 由计算机实现的用于在机器执行一类或多类方法的过程中管理可伸缩异常的过程,一种使程序运行时电池在操作时间内所需的时间最小化的方法,以及一种由每台计算机实现以管理的系统在一台或多台计算机上执行方法时启动的异常