本发明涉及图像处理技术领域,具体涉及一种等分辨率cr图像的压缩方法及系统。
背景技术:
在医学信息通讯中,cr图像的压缩算法一般是以单幅图像为单位,采用通用的jpg2000压缩方法进行图像压缩。jpg2000压缩方法分为有损压缩与无损压缩两种,对于有损压缩,压缩率高但是会损坏部分数据,对于医学领域而言不可采取;而无损压缩因为其中小波变化的复杂性,多采用软件方法实现,压缩与解压缩的速度以及压缩率低。
技术实现要素:
本发明解决的技术问题是提供一种等分辨率cr图像的压缩方法及系统,解决cr图像采用传统压缩方法压缩率低的问题。
为解决上述技术问题,本发明提供一种等分辨率cr图像的压缩方法,包括以下步骤:
1.一种等分辨率cr图像的压缩方法,包括以下步骤:
s1、接收多张cr图像;
s2、随机选择两张连续的cr图像,设cr图像的像素点的二进制数据从高位到低位依次为dn、dn-1、dn-2···d0,先计算所述两张连续的图像中所有对应位置的像素点的二进制数据中di相同的像素点的总个数,然后计算所述总个数占图像的像素点的个数的第一概率p1,并与预先设定的第一阈值和第二阈值进行比较,所述第一阈值大于所述第二阈值,其中n表示位数,0≤i≤n,i和n为自然数;
若第一概率p1大于等于所述第一阈值,则将对应的二进制数据di记为疑似高位数据,并记录疑似高位数据的第一总位数h0;若第一概率p1小于所述第一阈值且大于等于所述第二阈值,则将对应的二进制数据di记为疑似中位数据,并记录疑似中位数据的第二总位数m0;其余的二进制数据di记为疑似低位数据;
依次计算所述两张连续的图像中相同位置的像素点的前j位相同的第二概率p2,若第二概率p2大于等于所述第一阈值,则将对应的二进制数据di记为高位数据,并记录高位数据的总位数;若第二概率p2小于所述第一阈值且大于等于所述第二阈值,则将对应的二进制数据di记为中位数据,并记录中位数据的总位数;其余的二进制数据di记为低位数据;计算时,j的取值从h0 m0开始依次减小,j为整数;
s3、将每张cr图像中所有像素点的高位、中位数据分别放在一起,每张cr图像重新形成数据块;
s4、以前一张cr图像的数据块为基准数据块,将所有后一张cr图像的数据块和前一基准数据块进行对比,并用标志位表示,若相同,则记为1,若否,则记为0,高位数据、中位数据采用不同的对比单元进行比对;比对完成后,与基准数据块比较的每张cr图像重新形成标志数据块;
s5、对标志数据块中的标志位数据进行游程编码;
s6、对进行游程编码后的标志数据块中的标志位数据进行算术编码。
进一步地,从高位到低位依次计算第一概率p1,若第一概率p1小于所述第二阈值,则停止计算两张连续的图像中相同位置的像素点的di相同的第一概率p1。
进一步地,所述第一阈值为90%,所述第二阈值为70%。
进一步地,若第二概率p2小于所述第二阈值,则停止计算两张连续的图像中相同位置的像素点的前j位相同的第二概率p2。
进一步地,以前一数据块为基准数据块,将所有后一数据块和前一数据块进行对比的步骤为:
s101、将第一张图像的数据块作为基准数据块;
s102、将下一数据块与基准数据块进行对比;
s103、将所述下一数据块作为新的基准数据块;
s104、重复执行步骤s102和s103,直至完成最后一块数据块的对比。
进一步地,对于高位数据,采用大的对比单元,对于中位数据,采用小的对比单元。
进一步地,所述大的对比单元为字、三字节或双字,所述小的对比单元为半字节或字节。
本发明还提供一种用于实现上述的等分辨率cr图像的压缩方法的等分辨率cr图像的压缩系统,包括:
图像接收模块:用于接收多张cr图像;
数据结构分析模块:用于随机选择两张连续的cr图像,设cr图像的像素点的二进制数据从高位到低位依次为dn、dn-1、dn-2···d0,先计算所述两张连续的图像中所有对应位置的像素点的二进制数据中di相同的像素点的总个数,然后计算所述总个数占图像的像素点的个数的第一概率p1,并与预先设定的第一阈值和第二阈值进行比较,所述第一阈值大于所述第二阈值,其中n表示位数,0≤i≤n,i和n为自然数;
若第一概率p1大于等于所述第一阈值,则将对应的二进制数据di记为疑似高位数据,并记录疑似高位数据的第一总位数h0;若第一概率p1小于所述第一阈值且大于等于所述第二阈值,则将对应的二进制数据di记为疑似中位数据,并记录疑似中位数据的第二总位数m0;其余的二进制数据di记为疑似低位数据;
依次计算所述两张连续的图像中相同位置的像素点的前j位相同的第二概率p2,若第二概率p2大于等于所述第一阈值,则将对应的二进制数据di记为高位数据,并记录高位数据的总位数;若第二概率p2小于所述第一阈值且大于等于所述第二阈值,则将对应的二进制数据di记为中位数据,并记录中位数据的总位数;其余的二进制数据di记为低位数据;计算时,j的取值从h0 m0开始依次减小,j为整数;
数据结构变换模块:用于将每张cr图像中所有像素点的高位、中位数据分别放在一起,每张cr图像重新形成数据块;
数据对比分析模块:用于以前一张cr图像的数据块为基准数据块,将所有后一张cr图像的数据块和前一基准数据块进行对比,并用标志位表示,若相同,则记为1,若否,则记为0,高位数据、中位数据采用不同的对比单元进行比对;比对完成后,与基准数据块比较的每张cr图像重新形成标志数据块;
游程编码模块:用于对标志数据块中的标志位数据进行游程编码;
算术编码模块:用于对进行游程编码后的标志数据块中的标志位数据进行算术编码。
进一步地,还包括数据封装模块,用于将数据块1和进行游程编码后的标志数据块封装输出。
进一步地,还包括数据缓存模块,用于存放基准数据块,供数据对比分析模块调用。
本发明的有益效果是:本发明首先通过计算相邻cr图像中相同位置的像素点的二进制数据从高位到低位相同的概率,通过设定第一阈值和第二阈值分别找出疑似高位数据和疑似中位数据的位数;然后依次计算前几位连续的数据相同的概率,确认高位和中位数据的位数,这样可以节省运算量;然后将高位和中位数据分别放在一起形成数据块,再用相邻的两个数据块对比分析,高位数据、中位数据采用不同的对比单元进行比对,用标志位数据替代原始数据,可以很大程度减少数据的总量;由于标志位数据连续的1和0很多,采用游程编码可以提高压缩率;经过游程编码的数据中1和0频繁交替出现,可以采用算术编码进行进一步的压缩,最后封装输出。本方法通过对图像的数据结构分析,调整数据结构分布位置,降低数据冗余度,间接提高压缩率,通过对相邻图像的数据的对比分析,用标志数据代替原始数据,起到高效压缩数据的目的。
进一步地,若概率p1小于所述第二阈值,则停止计算两张连续的图像中相同位置的像素点的di相同的概率p1;若概率p2小于所述第二阈值,则停止计算两张连续的图像中相同位置的像素点的前j位相同的概率p2,这样可以大大的节省计算量。
进一步地,以前一数据块为基准数据块,将所有后一数据块和前一数据块进行对比的步骤为:以数据块1为基准,将数据块2与数据块1进行比较;然后以数据块2为基准,将数据块3与数据块2进行比较,以此类推。利用流水线的方式处理,提高对比分析的效率。
本发明的一种等分辨率cr图像的压缩系统将各个处理过程分成相应的模块,所有处理模块以数据流形式,对输入数据块进行动态的对比分析,高效实现数据块的压缩;可以采用硬件实现,充分发挥硬件的并行处理优势,分多块进行处理,提高压缩速率。
附图说明
图1为本发明的方法的流程图;
图2为本发明的方法的数据结构变换示意图;
图3为本发明的方法的数据对比分析示意图;
图4为本发明的系统的结构框图;
图5为本发明压缩和jpg2000压缩的压缩率对比表。
具体实施方式
下面将结合附图对本发明的作进一步的说明:
本发明首先通过计算相邻cr图像中相同位置的像素点的二进制数据从高位到低位相同的概率,通过设定第一阈值和第二阈值分别找出疑似高位数据和疑似中位数据的位数;然后以这两个位数为基础,依次计算前几位连续的数据相同的概率,确认高位和中位数据的位数,这样可以节省运算量;然后将高位、中位和低位的数据分别放在一起形成新的数据块,再用相邻的两个数据块对比分析,对相同的概率很高的高位数据采用大的对比单元,对相同的概率较高的高位数据采用小的对比单元,用标志位数据替代原始数据,可以很大程度减少数据的总量;由于标志位数据连续的1和0很多,采用游程编码可以提高压缩率;经过游程编码的数据中1和0频繁交替出现,可以采用算术编码进行进一步的压缩,最后封装输出。本方法通过对图像的数据结构分析,调整数据结构分布位置,降低数据冗余度,间接提高压缩率,通过对相邻图像的数据的对比分析,用标志数据代替原始数据,起到高效压缩数据的目的。
本发明公开了一种等分辨率cr图像的压缩方法,如图1所示,包括以下步骤:
s1、接收k张cr图像。
s2、从接收的k张cr图像中随机选择两张连续的图像,设图像的像素点的二进制数据从高位到低位依次为dn、dn-1、dn-2···d0,i从n开始逐渐减小,计算所述两张连续的图像中所有对应位置的像素点的二进制数据中di相同的像素点的总个数,然后计算所述总个数占图像的像素点的个数的第一概率p1,并与预先设定的第一阈值和第二阈值进行比较,所述第一阈值大于所述第二阈值,其中n表示位数,0≤i≤n,i和n为自然数;其中,第一阈值可选90%,第二阈值可选70%。
该步在计算第一概率p1时,首先将图像的数据变换成二进制,二进制中相同的位用di表示,然后比较两张图像中相同位置的像素点的di是否相同,找出满足前述条件的像素点,计算满足条件的像素点的总个数,用该总个数除以每张图像的所有像素点的个数,即为第一概率p1。例如,首先计算第一位,计算两张图像所有相同位置的像素点的第一位是否相同,若相同则找出相同的像素点的数量,然后用该数量除以每张图像的像素点的个数,即为第一概率,依此类推。
若概率p1大于等于所述第一阈值,则将对应的di记为疑似高位数据,并记录疑似高位数据的总位数h0;若概率p1小于所述第一阈值且大于等于所述第二阈值,则将对应的di记为疑似中位数据,并记录疑似中位数据的总位数m0;其余的di记为疑似低位数据;
j从h0和h0 m0开始逐渐减小,依次计算所述两张连续的图像中相同位置的像素点的前j位相同的概率p2,若概率p2大于等于所述第一阈值,则将对应的di记为高位数据,并记录高位数据的总位数h;若概率p2小于所述第一阈值且大于等于所述第二阈值,则将对应的di记为中位数据,并记录中位数据的总位数m;其余的di记为低位数据;2≤j≤h0 m0,j为整数。
因为对于cr图像来说,其局部变化非常小,且图像相同位置的像素数据的变化也非常小。可以根据这种数据特性,将像素点的高位数据放在一起,该部分数据基本不变;中间数据放在一起,该部分数据变化适中;数据低位放在一起,该部分数据变化较大;由此可降低数据的冗余度,提高压缩率。本步骤通过对相邻两张图像的数据结构的分析,先找出像素点二进制数据中每一位相同的概率,初步确认高位、中位以及低位数据。由于一位数据di相同,不代表连续几位单比特数据放在一起也相同,所以需要进一步确认连续几位数据放在一起是否满足所设的阈值。
s3、将每张cr图像中所有像素点的高位、中位数据分别放在一起,形成新的数据块1、数据块2···数据块k;如图2所示,通过该步骤的数据结构变换,将高位、中位以及低位数据分别放在一起,供后面对比使用。
s4、以前一数据块为基准数据块,将所有后一数据块和前一基准数据块进行对比,对于高位数据,采用大的对比单元,对于中位数据,采用小的对比单元;若后一数据块和前一基准数据块的对比单元的数据相同,则用标志位1表示,若后一数据块和前一基准数据块的对比单元的数据不同,则用标志位0表示,形成数据块2、数据块3···数据块k的标志数据块1、标志数据块2···标志数据块k-1,所述标志数据块包括1和0表示的标志位数据、后一数据块中与前一基准数据块的对比单元的数据的不同的部分。
该步骤是对输入的k块数据块进行两两对比,此方法是基于数据块与数据块之间,即两张图像之间,因此该方法适应于在两张图像数据大小相等并且相似度高的场合,比如在医学领域,医生需要保持患者同一部位多角度的图片,并且角度变化非常小。这时需要存储的图像两两之间相似度非常高,但是第一张与最后一张相似度又非常低,故运用此方法可大大提高压缩率。此方法必须以k块数据块作为一个整体进行压缩,因其中第一块数据不能够得到等效的标志数据块,所以压缩率理论上无法达到最大,可通过增大k值,来降低第一块数据块在整个数据块中的占比,提高压缩率,故k值越大压缩率越接近熵值。
s5、对标志数据块中的标志位数据进行游程编码。因为cr图像的特殊性,相似度极高,所以标志数据块中连续的1与0非常多,而不同的数据则又是0与1频繁交替的,对于这种连续1与0的数据特征正是游程编码的强项,而0与1频繁交替的数据又刚好是游程编码的软肋,故游程编码仅对标志数据块中标志位数据进行深度压缩,可以提高压缩率。
s6、对进行游程编码后的标志数据块中的标志位数据进行算术编码。算术编码对游程编码输出的数据做进一步的压缩,因为经过游程编码之后的数据基本都是杂乱无章的数据,用算术编码可以更好的对该属性数据进行压缩,得到最终的压缩数据。
进一步地,为了减少计算量,若概率p1小于所述第二阈值,则停止计算两张连续的图像中相同位置的像素点的di相同的概率p1。
进一步地,为了减少计算量,若概率p2小于所述第二阈值,则停止计算两张连续的图像中相同位置的像素点的前j位相同的概率p2。
进一步地,以前一数据块为基准数据块,将所有后一数据块和前一数据块进行对比的步骤为:
s101、将数据块1作为基准数据块;
s102、将下一数据块与基准数据块进行对比;
s103、将所述下一数据块作为新的基准数据块;
s104、重复执行步骤s102和s103,直至完成最后一块数据块的对比。
以数据块1为基准,将数据块2与数据块1进行比较;然后以数据块2为基准,将数据块3与数据块2进行比较,以此类推,得到相应的标志数据块。对比分析的流程如图3所示,对输入的k块数据块,一块块数据按序输入,同时保留最近已处理完成的数据块,用来作为下一个数据块的对比对象,最终得到第一块数据块的原始数据及k-1块标志数据块,然后将该结果输出。
进一步地,所述大的对比单元为字、三字节或双字,所述小的对比单元为半字节或字节。由于高位数据相同的概率极高,故可用较大的对比单元,而中位数据相同的概率较大,采用较小的对比单元,低位数据可根据需要决定是否也进行对比分析。
本发明还公开了一种实现上述等分辨率cr图像的压缩方法的等分辨率cr图像的压缩系统,如图4所示,包括:
图像接收模块201:用于接收cr图像;
数据结构分析模块202:从接收的cr图像中随机选择两张连续的图像,设图像的像素点的二进制数据从高位到低位依次为dn、dn-1、dn-2···d0,i从n开始逐渐减小,依次计算所述两张连续的图像中相同位置的像素点的di相同的概率p1,并与预先设定的第一阈值和第二阈值进行比较,所述第一阈值大于所述第二阈值,其中n表示位数,0≤i≤n,i和n为自然数;
若概率p1大于等于所述第一阈值,则将对应的di记为疑似高位数据,并记录疑似高位数据的总位数h0;若概率p1小于所述第一阈值且大于等于所述第二阈值,则将对应的di记为疑似中位数据,并记录疑似中位数据的总位数m0;其余的di记为疑似低位数据;
j从h0和h0 m0开始逐渐减少,依次计算所述两张连续的图像中相同位置的像素点的前j位相同的概率p2,若概率p2大于等于所述第一阈值,则将对应的di记为高位数据,并记录高位数据的总位数h;若概率p2小于所述第一阈值且大于等于所述第二阈值,则将对应的di记为中位数据,并记录中位数据的总位数m;其余的di记为低位数据;
数据结构变换模块203:将每张cr图像中所有像素点的高位、中位、低位数据分别放在一起,形成新的数据块1、数据块2···数据块k;
数据对比分析模块204:用于以前一数据块为基准数据块,将所有后一数据块和前一基准数据块进行对比,对于高位数据,采用大的对比单元,对于中位数据,采用小的对比单元;若前后数据块的对比单元的数据相同,则用标志位1表示,若前后数据块的对比单元的数据不同,则用标志位0表示,形成标志数据块1、标志数据块2···标志数据块k-1,所述标志数据块包括1和0表示的标志位数据、前后数据块的对比单元的数据不同部分以及低位数据;
游程编码模块205:用于对数据块1的数据和标志数据块的标志位数据进行游程编码;
算术编码模块206:用于对进行游程编码后的数据块1和标志数据块进行算术编码。
进一步地,还包括数据封装模块207,用于将数据块1和进行游程编码后的标志数据块封装输出。为了将数据进行保密处理,该模块也可以使用专用的压缩协议封装,加入头信息和标志信息用以识别专用压缩协议类型、标志数据块的异同指示、及标志数据块大小等控制信息,由此,压缩数据只能用专用的压缩卡进行封装与解封装处理。
进一步地,还包括数据缓存模块208,采用ram存储,可反复读取,用于存放基准数据块,供数据对比分析模块调用。
本系统所有处理模块以数据流形式,对输入数据块进行动态的对比分析,高效实现数据块的压缩;由于采用硬件实现,可以充分发挥硬件的并行处理优势,分多块进行处理,提高压缩速率,充分显示了该方案的优势。
本发明还提供一种利用该方法进行图像压缩的实施例,如图5所示,以cr图像为例,采用jpg2000以及本发明的方法对100张cr图像进行压缩,其中本发明的第一阈值取90%,第二阈值取70%,由表可见,本发明的压缩方法的压缩率高于jpg2000。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
1.一种等分辨率cr图像的压缩方法,其特征在于,包括以下步骤:
s1、接收多张cr图像;
s2、随机选择两张连续的cr图像,设cr图像的像素点的二进制数据从高位到低位依次为dn、dn-1、dn-2···d0,计算所述两张连续的图像中所有对应位置的像素点的二进制数据中di相同的像素点的总个数,然后计算所述总个数占图像的像素点的个数的第一概率p1,并与预先设定的第一阈值和第二阈值进行比较,所述第一阈值大于所述第二阈值,其中n表示位数,0≤i≤n,i和n为自然数;
若第一概率p1大于等于所述第一阈值,则将对应的二进制数据di记为疑似高位数据,并记录疑似高位数据的第一总位数h0;若第一概率p1小于所述第一阈值且大于等于所述第二阈值,则将对应的二进制数据di记为疑似中位数据,并记录疑似中位数据的第二总位数m0;其余的二进制数据di记为疑似低位数据;
依次计算所述两张连续的图像中相同位置的像素点的前j位相同的第二概率p2,若第二概率p2大于等于所述第一阈值,则将对应的二进制数据di记为高位数据,并记录高位数据的总位数;若第二概率p2小于所述第一阈值且大于等于所述第二阈值,则将对应的二进制数据di记为中位数据,并记录中位数据的总位数;其余的二进制数据di记为低位数据;计算时,j的取值从h0 m0开始依次减小,j为整数;
s3、将每张cr图像中所有像素点的高位、中位数据分别放在一起,每张cr图像重新形成数据块;
s4、以前一张cr图像的数据块为基准数据块,将所有后一张cr图像的数据块和前一基准数据块进行对比,并用标志位表示,若相同,则记为1,若否,则记为0,高位数据、中位数据采用不同的对比单元进行比对;比对完成后,与基准数据块比较的每张cr图像重新形成标志数据块;
s5、对标志数据块中的标志位数据进行游程编码;
s6、对进行游程编码后的标志数据块中的标志位数据进行算术编码。
2.根据权利要求1所述的等分辨率cr图像的压缩方法,其特征在于,从高位到低位依次计算第一概率p1,若第一概率p1小于所述第二阈值,则停止计算两张连续的图像中相同位置的像素点的di相同的第一概率p1。
3.根据权利要求1所述的等分辨率cr图像的压缩方法,其特征在于,所述第一阈值为90%,所述第二阈值为70%。
4.根据权利要求1所述的等分辨率cr图像的压缩方法,其特征在于,若第二概率p2小于所述第二阈值,则停止计算两张连续的图像中相同位置的像素点的前j位相同的第二概率p2。
5.根据权利要求1所述的等分辨率cr图像的压缩方法,其特征在于,以前一数据块为基准数据块,将所有后一数据块和前一数据块进行对比的步骤为:
s101、将第一张图像的数据块作为基准数据块;
s102、将下一数据块与基准数据块进行对比;
s103、将所述下一数据块作为新的基准数据块;
s104、重复执行步骤s102和s103,直至完成最后一块数据块的对比。
6.根据权利要求1所述的等分辨率cr图像的压缩方法,其特征在于,对于高位数据,采用大的对比单元,对于中位数据,采用小的对比单元。
7.根据权利要求6所述的等分辨率cr图像的压缩方法,其特征在于,所述大的对比单元为字、三字节或双字,所述小的对比单元为半字节或字节。
8.一种用于实现权利要求1-7任一项所述的等分辨率cr图像的压缩方法的等分辨率cr图像的压缩系统,其特征在于,包括:
图像接收模块:用于接收多张cr图像;
数据结构分析模块:用于随机选择两张连续的cr图像,设cr图像的像素点的二进制数据从高位到低位依次为dn、dn-1、dn-2···d0,先计算所述两张连续的图像中所有对应位置的像素点的二进制数据中di相同的像素点的总个数,然后计算所述总个数占图像的像素点的个数的第一概率p1,并与预先设定的第一阈值和第二阈值进行比较,所述第一阈值大于所述第二阈值,其中n表示位数,0≤i≤n,i和n为自然数;
若第一概率p1大于等于所述第一阈值,则将对应的二进制数据di记为疑似高位数据,并记录疑似高位数据的第一总位数h0;若第一概率p1小于所述第一阈值且大于等于所述第二阈值,则将对应的二进制数据di记为疑似中位数据,并记录疑似中位数据的第二总位数m0;其余的二进制数据di记为疑似低位数据;
依次计算所述两张连续的图像中相同位置的像素点的前j位相同的第二概率p2,若第二概率p2大于等于所述第一阈值,则将对应的二进制数据di记为高位数据,并记录高位数据的总位数;若第二概率p2小于所述第一阈值且大于等于所述第二阈值,则将对应的二进制数据di记为中位数据,并记录中位数据的总位数;其余的二进制数据di记为低位数据;计算时,j的取值从h0 m0开始依次减小,j为整数;
数据结构变换模块:用于将每张cr图像中所有像素点的高位、中位数据分别放在一起,每张cr图像重新形成数据块;
数据对比分析模块:用于以前一张cr图像的数据块为基准数据块,将所有后一张cr图像的数据块和前一基准数据块进行对比,并用标志位表示,若相同,则记为1,若否,则记为0,高位数据、中位数据采用不同的对比单元进行比对;比对完成后,与基准数据块比较的每张cr图像重新形成标志数据块;
游程编码模块:用于对标志数据块中的标志位数据进行游程编码;
算术编码模块:用于对进行游程编码后的标志数据块中的标志位数据进行算术编码。
9.根据权利要求1所述的等分辨率cr图像的压缩系统,其特征在于,还包括数据封装模块,用于将数据块1和进行游程编码后的标志数据块封装输出。
10.根据权利要求1所述的等分辨率cr图像的压缩系统,其特征在于,还包括数据缓存模块,用于存放基准数据块,供数据对比分析模块调用。
技术总结