具体实施方式
本发明是依据帧的移动程度,定义多种移动类别以及适用在各种移动类别下的压缩参数值,并建立一个移动类别表格。在实际压缩影像数据时,则通过参考帧所属的移动类别,查询移动类别表格以提取目前帧压缩时所适用的压缩参数值,并将其导入压缩模式的决策过程,藉以达到加快压缩速度以及降低噪声干扰的目的。此外,本发明在压缩帧的过程中亦同时产出此帧的移动程度信息,而可用以判断帧所属的移动类别,并提供作为后续帧压缩时的参考。
第一实施例
图1是依照本发明第一实施例所绘示的适应性决定压缩模式的影像压缩装置方块图,图2则是依照本发明第一实施例所绘示的适应性决定压缩模式的影像压缩方法流程图。请同参照图1及图2,本实施例的影像压缩装置100包括移动程度分类模块110、压缩模式决定模块120及数据压缩模块130,用以决定一影像数据中各个帧的压缩模式,并利用所决定的压缩模式来压缩这些帧的数据。以下则搭配图式来说明上述影像压缩装置100中各个组件的功能以及上述影像压缩方法的详细步骤。
每当影像压缩装置100在对影像数据中的某一个帧进行压缩处理时,即先由移动程度分类模块110查询此目前帧的参考帧所属的移动类别(步骤S202),其中所述的移动类别例如是根据参考帧的移动信息来决定。详细地说,本实施例是以参考帧中移动宏块所占的比例或分布来作为此参考帧的移动信息。而实际在执行压缩时,移动程度分类模块110则可将此移动信息作为索引值来查询移动类别表格,藉以找出此参考帧所属的移动类别。
此外,移动程度分类模块110在查询参考帧的移动类别的同时,也查询此移动类别所对应的一个门坎值集合(步骤S204)。详细地说,本实施例针对上述的每一种移动类别分别设置一个相对应的门坎值集合,此门坎值集合中的门坎值都是依据所属移动类别所找出属于此移动类别下的最佳数值。这些门坎值集合建立在一个以移动类别作为索引值的表格之中,尔后仅须给定参考帧的移动类别,并以此移动类别的索引值来查表,便可得到该移动类别下相对应的门坎值集合,以使用于目前帧的压缩过程。
在确定参考帧的移动类别并取得此移动类别下最佳的门坎值集合之后,压缩模式决定模块120接着将此门坎值集合应用在压缩模式的决策过程,以决定压缩目前帧中每一个宏块的压缩模式(步骤S206)。
举例来说,压缩模式决定模块120针对目前帧中所要处理的目前宏块,计算其与参考帧中位置相对应的参考宏块之间的第一残差运算值,此第一残差运算值例如是指残差值总和(Sum of Absolute Difference,SAD)或残差值平方总和(Sum of Square Difference,SSD),本实施例不限制其范围。接着将此第一残差运算值与一个残差门坎值比较,以决定是否要将此第一残差运算值视为是由噪声所导致的结果。其中,若此第一残差运算值低于残差门坎值,则判断此第一残差运算值为噪声产生的结果,因此将此第一残差运算值消除为零,同时也以16×16帧间压缩模式来作为压缩目前宏块的压缩模式。此门坎机制可有效提升压缩率,并且可降低热噪声对压缩画面质量的不良影响。
回到步骤S230,在压缩模式决定模块120决定了目前帧中各个宏块的压缩模式之后,数据压缩模块130即可以这些压缩模式来压缩目前帧中对应的宏块(步骤S208)。
值得注意的是,在压缩目前帧的同时,压缩模式决定模块120例如还计算目前帧的移动信息,据以决定此目前帧所属的移动类别,并作为压缩下一个帧时的参考。详细地说,压缩模式决定模块120例如是通过一个移动宏块判断模块(未绘示)来判断目前帧中的各个宏块是否为移动宏块,然后再通过一个移动信息计算模块(未绘示)来计算此目前帧中的移动宏块数目或是移动宏块在目前帧中所占的比例,以作为移动信息。
举例来说,图3是依照本发明第一实施例所绘示的移动宏块的判断方法流程图。请参照图3,本实施例依据目前帧中的目前宏块与参考帧中位置相对应的参考宏块间的关联信息,而判断目前宏块是否为移动宏块。首先,计算目前宏块与参考宏块之间的残差运算值(SAD_Silent)(步骤S302)。然后,将此残差运算值与一个静止门坎值(Thresh_Silent)比较,以判断此残差运算值是否小于静止门坎值(步骤S304),并据以判断出目前宏块是否为移动宏块。所述的残差运算值可以是目前宏块与参考宏块之间的残差值总和或是残差值平方总和,而不限定其范围。其中,若第一残差运算值小于静止门坎值,即可判断目前宏块为静止宏块(步骤S306);反之,若第一残差运算值不小于静止门坎值,则可判断目前宏块为移动宏块(步骤S308)。
上述由压缩模式决定模块120计算所得的移动信息则输出至移动程度分类模块110,而由移动程度分类模块110据以决定目前帧所属的移动类别,以作为压缩下一个帧时的参考。
综上所述,在本实施例中,由于各个帧的压缩模式可以由其参考帧的移动程度推知,因此能够减少分别计算各个压缩模式所花费的时间及成本,结果可使得整体压缩过程的设计复杂度以及对于运算能力的需求降低。
第二实施例
本发明的第二实施例是将多种压缩门坎值应用于第一实施例的压缩模式决定方法,以进一步达到消除画面噪声、强化静态帧压缩以及调整帧间/帧内预测权重等目的。其中,针对上述目的,本发明分别找出各种移动类别下最佳的压缩门坎值,并通过将这些门坎值导入压缩模式的决策流程中,而能够达成消除噪声及简化压缩程序的目的。这些门坎值的定义如下:
1.残差门坎值Threshold_A:在压缩目前帧中的一个目前宏块时,即求取其与参考帧中对应相同位置的参考宏块的绝对差值总和(Sumof Absolute Difference,SAD)值;另一方面则执行帧间预测,而针对帧间预测所给定的搜寻窗口(Search Window)寻得的最佳参考宏块去求得的SAD值。若上述这两个SAD值的差值小于此残差门坎值Threshold_A,则将此目前宏块视为静止不动,并将其移动向量视为零来处理。此门坎机制可有效矫正因热噪声或摄影质量不良产生的移动向量误判。
2.移动向量门坎值Threshold_B:将目前宏块在执行帧间预测时的移动向量值与此移动向量门坎值Threshold_B比较,若移动向量值小于移动向量门坎值Threshold_B,则将此目前宏块压缩时所要的参考宏块强制转为参考帧中位置相对应于目前宏块的参考宏块(意即将移动向量视为零来处理)。此门坎机制可有效矫正因热噪声或摄影质量不良产生的移动向量误判。
3.残差门坎值Threshold_C:将执行帧间预测所求得最佳压缩模式下目前宏块与参考宏块间的SAD值与残差门坎值Threshold_C比较,若SAD值小于此残差门坎值Threshold_C,则视为该压缩模式已满足需求,不需再进行帧内预测。此门坎机制可在顾及不伤害压缩率及压缩画面质量下,有效加速压缩时间。
4.残差门坎值Threshold_D:用以调整帧间压缩模式与帧内压缩模式的选取优先顺位,选取对压缩率有利的压缩模式。
5.残差门坎值Threshold_E:针对目前帧中所要处理的目前宏块与参考帧中位置相对应的参考宏块,计算其残差运算值(即前述的第一残差运算值),并将此残差运算值与残差门坎值Threshold_E比较,以决定是否要将此残差运算值视为噪声所导致的结果,若此残差运算值低于残差门坎值Threshold_E,则判断此残差运算值为噪声产生的结果,因此将此残差运算值消除为零。此门坎机制可有效提升压缩率,并且可降低热噪声对压缩画面质量的不良影响。
通过将上述门坎值导入第一实施例的压缩模式决定模块120中,即可挑选出对于目前处理的宏块而言压缩率最佳的压缩模式,以下则举实例详细说明。
图4是依照本发明第二实施例所绘示的压缩模式决定模块的方块图,图5则是依照本发明第二实施例所绘示的压缩模式决定方法的流程图。请同参照图4及图5,本实施例的影像压缩装置400包括移动程度分类模块410、压缩模式决定模块420及数据压缩模块430。其中,压缩模式决定模块420的输入端主要接收目前要压缩的宏块以及要产生对应此宏块的预测宏块所需要的参考帧,另外还接收由移动程度分类模块410查表所获得的门坎值集合。而根据这三类输入数据,压缩模式决定模块420即可在画质可接受的考虑下,挑选出对压缩率最佳的压缩模式。而在某些条件满足下,甚至还可直接产生该宏块的残差值(residue)。
压缩模式决定模块420可再细分为帧间模式决定模块421、帧内模式决定模块422、模式判断模块423、移动宏块判断模块424及移动信息计算模块425。以下则搭配图式来说明上述压缩模式决定模块420中各个组件的功能以及上述压缩模式决定方法的详细步骤。
首先,由帧间模式决定模块421计算目前宏块与参考帧中位置相对应的参考宏块(未做切割的一个完整参考宏块)的第一残差运算值(SAD_Silent)(步骤S502)。
此外,帧间模式决定模块421也执行帧间预测,以从外部给予的参考帧的多个宏块中挑选出相对于目前帧中的目前宏块而言最佳的参考宏块及其相对应的帧间压缩模式(MbType_InterMD),并计算出目前宏块与参考宏块之间的移动向量值(MV_InterMD)与第二残差运算值(SAD_InterMD)(步骤S504)。
然后,模式判断模块423判断是否上述第一残差运算值与第二残差运算值之间的差值绝对值小于门坎值集合中的残差门坎值Thresh_A,或上述移动向量值小于门坎值集合中的移动向量门坎值Thresh_B(步骤S506)。其中,若模式判断模块423判断第一残差运算值与第二残差运算值的差值绝对值小于残差门坎值Thresh_A,或是移动向量值小于移动向量门坎值Thresh_B,则模式判断模块423强制以参考帧中位置相对应于目前宏块的参考宏块来作为压缩目前宏块的参考宏块,并将移动向量值设为零(步骤S508)。
之后,模式判断模块423判断第一残差运算值(SAD_Silent)是否小于门坎值集合中的残差门坎值Thresh_E(步骤S510)。其中,若第一残差运算值小于残差门坎值Thresh_E,则直接以16×16帧间压缩模式(Inter 16×16)作为压缩目前宏块的压缩模式,并直接输出全为零的宏块残差值(步骤S512),意即后续无需执行求残差的动作。
若第一残差运算值不小于残差门坎值Thresh_E,则模式判断模块423继续判断第一残差运算值是否小于门坎值集合中的残差门坎值Thresh_C(步骤S516)。其中,若第一残差运算值小于残差门坎值Thresh_C,则以执行帧间预测所求得的帧间压缩模式(MbType_InterMD)作为压缩目前宏块的压缩模式(步骤S518)。
若第一残差运算值不小于残差门坎值Thresh_C,则由帧内模式决定模块422执行帧内预测,以求取最佳的帧内压缩模式(MbType_IntraMD)及其相对应的第三残差运算值(SAD_IntraMD)(步骤S520)。
最后,模式判断模块423判断此第三残差运算值与第一残差运算值(SAD_Silent)之间的差值绝对值是否小于门坎值集合中的残差门坎值Thresh_D(步骤S522)。其中,若此差值绝对值小于残差门坎值Thresh_D,模式判断模块423即以帧间模式决定模块421执行帧间预测所求得的帧间压缩模式(MbType_InterMD)来作为压缩目前宏块的压缩模式(步骤S518);反之,模式判断模块423则以帧内模式决定模块422执行帧内预测所求得的帧内压缩模式(MbType_IntraMD)来作为压缩目前宏块的压缩模式(步骤S522)。
另一方面,在步骤S506中,若模式判断模块423判断第一残差运算值与第二残差运算值的差值绝对值不小于残差门坎值Thresh_A且移动向量值不小于移动向量门坎值Thresh_B,则以执行帧间预测所挑选的参考宏块来作为压缩目前宏块的参考宏块,并继续判断第二残差运算值(SAD_InterMD)是否小于门坎值集合中的残差门坎值Thresh_C(步骤S514)。其中,若第二残差运算值小于残差门坎值Thresh_C,则以执行帧间预测所求得的帧间压缩模式(MbType_InterMD)来作为压缩目前宏块的压缩模式(步骤S516)。
若第二残差运算值不小于残差门坎值Thresh_C,则由帧内模式决定模块422执行帧内预测,以求取最佳的帧内压缩模式(MbType_IntraMD)及其相对应的第三残差运算值(SAD_IntraMD)(步骤S518)。
最后,模式判断模块423将判断此第三残差运算值与第二残差运算值(SAD_InterMD)之间的差值绝对值是否小于门坎值集合中的残差门坎值Thresh_D(步骤S520)。其中,若此差值绝对值小于残差门坎值Thresh_D,模式判断模块423即以帧间模式决定模块421执行帧间预测所求得的帧间压缩模式(MbType_InterMD)作为压缩目前宏块的压缩模式(步骤S516);反之,模式判断模块423则以帧内模式决定模块422执行帧内预测所求得的帧内压缩模式(MbType_IntraMD)作为压缩目前宏块的压缩模式(步骤S522)。
值得一提的是,上述由帧间模式决定模块421计算所得的第一残差运算值(SAD_Silent)还可用以作为判断目前宏块是否为移动宏块的依据,并可进一步地用来判断目前帧的移动类别。详细地说,每当帧间模式决定模块421在步骤S510计算出目前宏块与参考帧中位置相对应的参考宏块的第一残差运算值(SAD_Silent)时,还包括将此第一残差运算值输出至移动宏块判断模块424,而由移动宏块判断模块424将此第一残差运算值与静止门坎值(Thresh_Silent)比较,藉以判断目前宏块是否为移动宏块。其中,若第一残差运算值小于静止门坎值,移动宏块判断模块424即可判断目前宏块为静止宏块;反之,若第一残差运算值不小于静止门坎值,移动宏块判断模块424则可判断目前宏块为移动宏块,此时可通过移动信息计算模块425对一个全域变量(Move_MB_Count)做累加的动作。此全域变量的值在影像压缩装置400处理每一个帧前都被重设为零,待整个帧中的宏块都压缩完毕之后,最后累加的全域变量值则输出至移动程度分类模块410,据以判断该帧的移动类别。
综上所述,本发明的影像压缩方法是将参考帧的移动分类结果作为目前处理的帧的移动类别,并找出对应此移动类别的门坎值。通过将门坎值导入压缩模式决策流程,来达到噪声消除以及强化静态帧压缩的目的,同时大量减少压缩时间,使整个压缩过程可实现较低的运算需求与设计复杂度,以及良好的压缩率。
虽然本发明已以实施例揭露如上,然其并非用以限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,当可作些许的变动与修饰,因此本发明的保护范围以本发明的权利要求书为准。