一种降低JPEG图像方块效应的方法与流程

文档序号:14216492阅读:993来源:国知局

本发明涉及计算机信息技术领域,具体地涉及图像压缩领域。



背景技术:

jpeg编码技术采用基于8x8图像块的dct变换,变换后对dct系数进行量化操作,用于去除相邻像素的空间冗余信息。由于变换后所得的dct系数与变换前的每个像素点都相关,而8x8图像块边缘上原本相邻的两个像素点可能使用不同的量化值,量化过程降低了相邻两个块的相关性,特别是在图像平坦区域,量化导致原本平缓的低频系数发生跳变,并且量化将表征图像细节和纹理的高频系数量化为零,不可避免产生量化失真,使得强边缘在跨边界处出现锯齿状,从而出现方块效应。



技术实现要素:

针对现有技术的不足,本发明提供了一种降低jpeg图像方块效应的方法。

为实现本发明目的提供的一种降低jpeg图像方块效应的方法,包括如下步骤:

提取编码块特征信息,判断编码块是平滑块还是细节块;

对编码块进行dct变换,并对dct系数按块类型进行调整优化;

将优化后的dct系数按块类型选择对应的掩膜进行转换;

对转换后的dct系数进行量化,并按zigzag扫描顺序排列;

对细节块的量化系数进行调整。

在其中一个实施例中,所述提取编码块特征信息,判断编码块是平滑块还是细节块,包括如下步骤:

累加编码块中所有像素点的灰度值,并求平均,获取编码块的平均灰度值;

将编码块中所有像素点的灰度值与平均灰度值比较,将灰度值小于等于平均灰度值的像素点分为一组并记为a组,将灰度值大于平均灰度值的像素点分为一组并记为b组;

累和a组所包含的所有像素点的灰度值,计算该组平均灰度值并记为c;

累和b组所包含的所有像素点的灰度值,计算该组平均灰度值并记为d;

如果c与d之差的绝对值小于阈值t,则该编码块为平滑块;

如果c与d之差的绝对值大于或者等于阈值t,则该编码块为细节块。

在其中一个实施例中,所述阈值t通过对大量jpeg图像块进行统计而得到。

在其中一个实施例中,所述对编码块进行dct变换,并对dct系数按块类型进行调整优化,包括如下步骤:

对编码块进行dct变换;

对dct系数按块类型进行调整优化,优化过程如公式(1)所示:

coeff[k]=coeff[k]+sign(coeff[k])*q*level[k](1)

其中,k是dct系数索引号,coeff[k]是第k个dct系数,sign(coeff[k])是第k个dct系数的正负符号,q是优化权重,level[k]是第k个dct系数的优化步长;

如果编码块是平滑块,则选择平滑块对应的优化权重与优化步长计算dct优化系数;

如果编码块是细节块,则选择细节块对应的优化权重与优化步长计算dct优化系数。

在其中一个实施例中,所述优化权重和优化步长通过对大量jpeg图像块进行统计而得到。

在其中一个实施例中,所述将优化后的dct系数按块类型选择对应的掩膜进行转换,包括如下步骤:

如果编码块是平滑块,则选择平滑块对应的掩膜对优化后的dct系数进行转换;

如果编码块是细节块,则选择细节块对应的掩膜对优化后的dct系数进行转换。

在其中一个实施例中,所述对转换后的dct系数进行量化,并按zigzag扫描顺序排列,包括如下步骤:

判断编码块是属于亮度块还是色度块,选择对应的量化表进行量化;

将量化后的系数按照zigzag扫描顺序排列。

在其中一个实施例中,所述量化表通过对大量jpeg图像块进行统计而得到。

在其中一个实施例中,所述对细节块的量化系数进行调整,包括如下步骤:

对按zigzag扫描顺序排列的细节块的量化系数进行扫描,搜索其中非零量化系数;

判断如果该非零量化系数在设定范围内并且与前一个非零量化系数之间间隔的零的个数超过设定范围,则将该量化系数设置为零。

在其中一个实施例中,所述量化系数的设定范围和间隔零的个数的设定阈值通过对大量jpeg图像块进行统计而得到。

上述一种降低jpeg图像方块效应的方法的有益效果:

提取编码块特征信息,判断编码块是平滑块还是细节块;对编码块进行dct变换,并对dct系数按块类型进行调整优化;将优化后的dct系数按块类型选择对应的掩膜进行转换;对转换后的dct系数进行量化,并按zigzag扫描顺序排列;对细节块的量化系数进行调整。本发明对不同类型的编码块采用不同的优化策略,编码时能够尽可能保留平滑块的细节信息,同时去除细节块的冗余信息,从而提高图像质量,降低方块效应。

附图说明

图1是根据本发明方法的一具体实施例的流程图。

图2是平滑块掩膜的示意图。

图3是细节块掩膜的示意图。

图4是细节块非零系数置零的示意图。

图5是jpeg标准编码效果图。

图6是根据本发明方法的一具体实施例的效果图。

具体实施方式

图1是根据本发明方法的一具体实施例的流程图;

在步骤101,提取编码块特征信息,判断编码块是平滑块还是细节块;

在步骤102,对编码块进行dct变换,并对dct系数按块类型进行调整优化;

在步骤103,将优化后的dct系数按块类型选择对应的掩膜进行转换;

在步骤104,对转换后的dct系数进行量化,并按zigzag扫描顺序排列;

在步骤105,对细节块的量化系数进行调整。

下面,对根据本发明一个实施例的一种降低jpeg图像方块效应的方法作一个详细的描述。

将整幅jpeg图像按照8x8大小像素块划分,每个8x8大小像素块作为一个编码块。累加编码块中所有像素点的灰度值,并求平均,获取编码块的平均灰度值。

将编码块中所有像素点的灰度值与平均灰度值比较,将灰度值小于等于平均灰度值的像素点分为一组并记为a组,将灰度值大于平均灰度值的像素点分为一组并记为b组。

累和a组所包含的所有像素点的灰度值,计算其平均灰度值并记为c;累和b组所包含的所有像素点的灰度值,计算其平均灰度值并记为d。

如果c与d之差的绝对值小于阈值t,则该编码块记为平滑块;如果c与d之差的绝对值大于或者等于阈值t,则该编码块记为细节块。

阈值t通过对大量jpeg图像块进行统计而得到,也可以根据经验值直接设定。

对编码块按照jpeg编码标准进行dct变换。如果上述计算所得编码块类型是平滑块类型,则选择平滑块对应的优化权重与优化步长;如果上述计算所得编码块类型是细节块类型,则选择细节块对应的优化权重与优化步长,并按照公式(1)依次对dct系数进行优化调整。

coeff[k]=coeff[k]+sign(coeff[k])*q*level[k](1)

k是dct系数索引号,coeff[k]是第k个dct系数,sign(coeff[k])是第k个dct系数的正负符号,q是优化权重,level[k]是第k个dct系数的优化步长。

优化权重和优化步长通过对大量jpeg图像块进行统计而得到,也可以根据经验值直接设定。

将上述优化后的dct系数按照块类型选择对应的掩膜进行转换。如果编码块是平滑块,则选择平滑块对应的掩膜对优化后的dct系数进行转换,参见图2,所示为一个8x8大小的平滑块掩膜矩阵,掩膜矩阵中标记为1表示保留优化后的dct系数矩阵中相同位置的dct系数,掩膜矩阵中标记为0表示将优化后的dct系数矩阵中相同位置的dct系数置零;如果编码块是细节块,则选择细节块对应的掩膜对优化后的dct系数进行转换,参见图3,所示为一个8x8大小的细节块掩膜矩阵,掩膜矩阵中标记为1表示保留优化后的dct系数矩阵中相同位置的dct系数,掩膜矩阵中标记为0表示将优化后的dct系数矩阵中相同位置的dct系数置零。通过选择不同的掩膜可以保证去除空间空余信息时,尽可能保留平滑块和细节块重要的高频信息,在不明显增加码率前提下,尽可能提升图像质量。

判断编码块是属于亮度块还是色度块,选择对应的量化表,按照jpeg标准进行量化,并将量化后的系数按照zigzag扫描顺序排列。

量化表通过对大量jpeg图像块进行统计而得到,也可以根据经验值直接设定。

对细节块的量化系数进行调整。对zigzag扫描顺序排列的细节块的量化系数进行扫描,搜索其中非零量化系数。判断如果该非零量化系数在设定范围并且与前一个非零量化系数之间间隔的零的个数超过设定范围,则将该量化系数设置为零。

量化系数的设定范围和间隔零的个数的设定阈值通过对大量jpeg图像块进行统计而得到,也可以根据经验值直接设定。

参见图4,对按zigzag扫描顺序排列的细节块的量化系数进行扫描,搜索其中非零量化系数,在位置0、位置4、位置12、位置14、位置15五个位置有非零系数。根据经验值,量化系数的设定范围设置[-1,1],间隔零的个数的设定阈值为5。对位置0对应的非零系数值1,判断该值处在量化系数的设定范围内,并且前面没有非零量化系数,因此该非零量化系数与前一个非零量化系数之间间隔的零的个数为零,未超过间隔零的个数,故而该值不做调整;对位置4对应的非零系数值-1,判断该值处在量化系数的设定范围内,与前一个非零量化系数之间间隔的零的个数为3,未超过间隔零的个数,故而该值不做调整;对位置12对应的非零系数值1,判断该值处在量化系数的设定范围内,与前一个非零量化系数之间间隔的零的个数为7,超过间隔零的个数,故而将位置12对应的量化系数设置为0;对位置14对应的非零系数值-1,判断该值处在量化系数的设定范围内,由于位置12对应的量化系数已被置零,则该量化系数与前一个非零量化系数之间间隔的零的个数为9,超过间隔零的个数,故而将位置14对应的量化系数设置为0;对位置15对应的非零系数值7,判断该值超出量化系数的设定范围,故而该值不做调整。

综上所述,本发明对不同类型的编码块采用不同的优化策略,编码时能够尽可能保留平滑块的细节信息,同时去除细节块的冗余信息,从而提高图像质量,降低方块效应。分别按照jpeg标准编码和本发明方法进行编码,参见图5和图6,从编码效果上看,采用本发明方法可明显降低jpeg图像方块效应。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1