发明内容
本发明实施例提供了一种获得最优预测模式的方法及装置,通过减少候选模式实现降低计算复杂度,能够快速的获取最优预测模式。
本发明实施例提供了一种获得最优预测模式的方法,包括:
获取待编码图像,将所述图像划分为n×n块,求取每个n×n块的边缘强度;
根据所述求取的边缘强度,确定所述n×n块候选预测模式;
根据所述n×n块的左边块和上边块获得所述n×n块的最可能预测模式;
根据所述候选预测模式以及最可能预测模式,利用率失真优化代价函数求取最优预测模式。
其中,当对所述图像进行亮度分量计算时,所述n×n块为4×4块或16×16块;所述方法还包括:
当应用4×4块和16×16块分别计算出两个最优预测模式时,取代价函数值最小的最优预测模式作为亮度分量的最优预测模式。
其中,当对所述图像进行色度分量计算时,所述n×n块为8×8块。
其中,所述求取每个n×n块的边缘强度的步骤包括:
将所述n×n块再划分为2×2子块;
令P0为所述再划分的2×2子块左上角子块的像素平均值,P1为所述再划分的2×2子块右上角子块的像素平均值、P2为所述再划分的2×2子块左下角子块的像素平均值、P3为所述再划分的2×2子块右下角子块的像素平均值,P4为所述再划分的2×2子块的中间子块的像素平均值,则所述n ×n块的边缘强度为:
d0°=|P1-P0|+|P3-P2|
d90°=|P2-P0|+|P3-P1|
d45°=|P4-P1|+|P2-P4|
d135°=|P4-P0|+|P3-P4|
dnd=(|P0-P4|+|P1-P4|+|P2-P4|+|P3-P4|)>>1
其中,d0°,d90°,d45°,d135°,dnd分别代表0°边缘、90°边缘、45°边缘、135°边缘和无方向边缘的边缘强度值。
其中,根据所述求取的边缘强度,确定所述n×n块候选预测模式的步骤包括:
预先设定候选模式选择列表,该列表中包括d0°,d90°,d45°,d135°,dnd分别对应的候选预测模式;
获取所述d0°,d90°,d45°,d135°,dnd中值最小的作为所述n×n块的主要方向边缘强度,根据所述候选模式选择列表,将所述主要方向边缘强度所对应的候选预测模式确定为所述n×n块候选预测模式。
其中,根据所述n×n块的左边块和上边块获得所述n×n块的最可能预测模式的步骤包括:
预先设定每种预测模式对应的模式编号;其中,所述模式编号从0开始;
获取所述n×n块的左边相邻块和上边相邻块的最佳预测模式所对应的编号;
选择编号值较小的预测模式作为所述n×n块的最可能预测模式;
其中,如果所述n×n块的左边相邻块或上边相邻块不可用,则确定所述n×n块的最可能预测模式为直流预测模式。
本发明实施例还提供了一种获得最优预测模式的装置,包括:
边缘强度计算模块,用于获取待编码图像,将所述图像划分为n×n块,求取每个n×n块的边缘强度;
候选预测模式确定模块,用于根据所述求取的边缘强度,确定所述n×n块候选预测模式;
最可能预测模式确定模块,用于根据所述n ×n块的左边块和上边块获得所述n×n块的最可能预测模式;
最优预测模式确定模块,用于根据所述候选预测模式以及最可能预测模式,利用率失真优化代价函数求取最优预测模式。
其中,当对所述图像进行亮度分量计算时,所述n×n块为4×4块或16×16块;所述装置还包括:
亮度分量最优预测模式选择模块,用于当应用4×4块和16×16块分别计算出两个最优预测模式时,取代价函数值最小的最优预测模式作为亮度分量的最优预测模式。
其中,当对所述图像进行色度分量计算时,所述n×n块为8×8块。
其中,所述边缘强度计算模块包括:
图像获取划分子模块,用于获取待编码图像,将所述图像划分为n×n块;
边缘强度值计算子模块,用于将所述n×n块再划分为2×2子块;令P0为所述再划分的2×2子块左上角子块的像素平均值,P1为所述再划分的2×2子块右上角子块的像素平均值、P2为所述再划分的2×2子块左下角子块的像素平均值、P3为所述再划分的2×2子块右下角子块的像素平均值,P4为所述再划分的2×2子块的中间子块的像素平均值,则所述n ×n块的边缘强度为:
d0°=|P1-P0|+|P3-P2|
d90°=|P2-P0|+|P3-P1|
d45°=|P4-P1|+|P2-P4|
d135°=|P4-P0|+|P3-P4|
dnd=(|P0-P4|+|P1-P4|+|P2-P4|+|P3-P4|)>>1
其中,d0°,d90°,d45°,d135°,dnd分别代表0°边缘、90°边缘、45°边缘、135°边缘和无方向边缘的边缘强度值。
其中,所述候选预测模式确定模块包括:
列表设定子模块,用于预先设定候选模式选择列表,该列表中包括d0°,d90°,d45°,d135°,dnd分别对应的候选预测模式;
候选预测模式选择子模块,用于获取所述d0°,d90°,d45°,d135°,dnd中值最小的作为所述n×n块的主要方向边缘强度,根据所述候选模式选择列表,将所述主要方向边缘强度所对应的候选预测模式确定为所述n×n块候选预测模式。
其中,所述最可能预测模式确定模块包括:
模式编号设定子模块,用于预先设定每种预测模式对应的模式编号;其中,所述模式编号从0开始;
确定子模块,用于获取所述n×n块的左边相邻块和上边相邻块的最佳预测模式所对应的编号;
选择子模块,用于选择编号值较小的预测模式作为所述n×n块的最可能预测模式;
其中,如果所述n×n块的左边相邻块或上边相邻块不可用,则确定所述n×n块的最可能预测模式为直流预测模式。
应用本发明实施例提供的获得最优预测模式的方法及装置,通过减少候选模式实现降低计算复杂度,快速的获取了最优预测模式。再有,本发明实施例所采用的计算边缘强度的算法规则非常简单,进一步降低了计算的复杂度,提高了获取最优预测模式的速度,对用大规模集成电路(VLSI)设计和实现H.264编码器非常有利。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图4,其是根据本发明实施例的一种获得最优预测模式的方法流程图,具体包括:
步骤401,获取待编码图像,将所述图像划分为n×n块,求取每个n×n块的边缘强度;
其中,求取每个n×n块的边缘强度的步骤可以具体包括:
将所述n×n块再划分为2×2子块,如图5所示;
令P0为所述再划分的2×2子块左上角子块的像素平均值,P1为所述再划分的2×2子块右上角子块的像素平均值、P2为所述再划分的2×2子块左下角子块的像素平均值、P3为所述再划分的2×2子块右下角子块的像素平均值,P4为所述再划分的2×2子块的中间子块的像素平均值,则所述n ×n块的边缘强度为:
d0°=|P1-P0|+|P3-P2| (1)
d90°=|P2-P0|+|P3-P1| (2)
d45°=|P4-P1|+|P2-P4| (3)
d135°=|P4-P0|+|P3-P4| (4)
dnd=(|P0-P4|+|P1-P4|+|P2-P4|+|P3-P4|)>>1(5)
其中,d0°,d90°,d45°,d135°,dnd分别代表0°边缘、90°边缘、45°边缘、135°边缘和无方向边缘的边缘强度值。
步骤402,根据所述求取的边缘强度,确定所述n×n块候选预测模式;
一种可能实施例的具体步骤如下:
预先设定候选模式选择列表,该列表中包括d0°,d90°,d45°,d135°,dnd分别对应的候选预测模式;
获取所述d0°,d90°,d45°,d135°,dnd中值最小的作为所述n×n块的主要方向边缘强度,根据所述候选模式选择列表,将所述主要方向边缘强度所对应的候选预测模式确定为所述n×n块候选预测模式。
步骤403,根据所述n×n块的左边块和上边块获得所述n×n块的最可能预测模式;
一种可能实施例的具体步骤如下:
预先设定每种预测模式对应的模式编号;其中,所述模式编号从0开始;
获取所述n×n块的左边相邻块和上边相邻块的最佳预测模式所对应的编号;
选择编号值较小的预测模式作为所述n×n块的最可能预测模式;
其中,如果所述n×n块的左边相邻块或上边相邻块不可用,则确定所述n×n块的最可能预测模式为直流预测模式。
步骤404,根据所述候选预测模式以及最可能预测模式,利用率失真优化代价函数求取最优预测模式。
本步骤的具体计算过程与现有的利用代价函数求取最优预测模式的计算方式相同,不再赘述。
需要说明的是,图4所示方法既可以适用于亮度分量,也可以适用于色度分量,当对所述图像进行色度分量计算时,所述n×n块为8×8块;当对待编码图像进行亮度分量计算时,上述n×n块为4×4块或16×16块;此时,上述方法还包括:
当应用4×4块和16×16块分别计算出两个最优预测模式时,取代价函数值最小的最优预测模式作为亮度分量的最优预测模式。
可见,应用本发明实施例提供的获得最优预测模式的方法,通过减少候选模式实现降低计算复杂度,快速的获取了最优预测模式。再有,本发明实施例所采用的计算边缘强度的算法规则非常简单,进一步降低了计算的复杂度,提高了获取最优预测模式的速度,对用大规模集成电路(VLSI)设计和实现H.264编码器非常有利。
由于本发明实施例针对图像的亮度分量、色度分量获取最优预测模式都适用,且对于4×4块、16×16块或8×8块的块都适用,因此,下面仅以获取亮度分量4×4块的最优预测模式为例,对本发明实施例再做详细说明,其他的都类似,不再分别说明。
首先,获取待编码图像,将所述图像划分为4×4块,将该4×4块均分成四个子块,计算每个子块的像素平均值,形成一个2×2的矩阵块。参见图6,其是将4×4亮度块均值化处理过程示意图。
之后,采用公式(1)~(5)求取每个4×4块的边缘强度;其中,P0、P1、P2、P3、P4分别为图5中所对应2×2子块中四个像素的平均值。可见,P0、P1、P2、P3与图6中的m0、m1、m2、m3是相同的。
定义式(1)-式(5)中最小值为主要方向边缘强度(DES,Dominant EdgeStrength),如式(6)所示:
DES=MIN{d0°,d90°,d45°,d135°,dnd} (6)
其次,根据所述求取的边缘强度,确定4×4块的候选预测模式,具体包括:
i)预先设定候选模式选择列表,该列表中包括d0°,d90°,d45°,d135°,dnd分别对应的候选预测模式;其中,4×4亮度块候选模式选择列表如表4所示:
表4
DES |
4×4亮度块 |
DES=ESv |
模式7,0,5和模式2 |
DES=ESh |
模式8,1,6和模式2 |
DES=ES45° |
模式3,7,8和模式2 |
DES=ES135° |
模式5,4,6和模式2 |
DES=ESnd° |
模式2 |
需要说明的是,对于16×16亮度块或8×8色度块,均只有垂直、水平、平面和直流四种预测模式,对于垂直边缘、水平边缘、45°边缘、135°边缘和无方向边缘五种边缘类型而言,只需根据上述边缘强度公式(1)、(2)和(3)计算即可,方法与4×4亮度块的处理类似。考虑到图像的均匀部分而言,直流预测模式即DC预测模式通常是最佳预测,故DC预测也应是候选模式之一。这样,对于16×16亮度块与8×8色度块而言,候选模式选择列表如表5所示:
表5
DES |
16×16亮度块 |
8×8色度块 |
DES=ESv |
模式0和DC |
模式2和DC |
DES=ESh |
模式1和DC |
模式1和DC |
DES=ES45° |
模式3和DC |
模式3和DC |
ii)根据公式(6)获取所述d0°,d90°,d45°,d135°,dnd中值最小的作为4×4块的主要方向边缘强度,根据表4所示候选模式选择列表,将所述主要方向边缘强度所对应的候选预测模式确定为4×4块候选预测模式。也就是说,与DES对应的边缘方向及其相邻的方向被确定为候选模式,例如,结合表4、表1和图2,当选定垂直方向即模式0为DES对应的边缘方向时,模式5和模式7就是DES对应的边缘方向的相邻方式,同时再加上模式2即DC方向为垂直方向的候选预测模式,这样可以提高预测的准确性。
再次,根据4×4块的左边块和上边块获得4×4块的最可能预测模式;具体包括:
i)预先设定每种预测模式对应的模式编号,例如本文中对于4×4块的预测模式编号为0~8;
ii)获取当前4×4块的左边相邻块和上边相邻块的最佳预测模式所对应的编号;
由于当前4×4块的左边相邻块和上边相邻块的最佳预测模式在之间已计算出,所以此处直接获取即可。至于具体的计算方法,可以采用本发明实施例提供的计算方法也可以采用现有的计算方法,本发明实施例对此不做限定。
iii)选择编号值较小的预测模式作为当前4×4块的最可能预测模式;
例如,如果该4×4块的左边相邻块的最佳预测模式的编号为3,该4×4块的上边相邻块的最佳预测模式的编号为5,则选择编号为3的预测模式作为当前的最可能预测模式;
其中,如果4×4块的左边相邻块或上边相邻块不可用,则确定该4×4块的最可能预测模式为直流预测模式即DC预测模式。
最后,根据前述候选预测模式以及最可能预测模式,利用率失真化代价函数求取最优预测模式。
本步骤的具体计算过程与现有的利用代价函数求取最优预测模式的计算方式相同,不再赘述。
至此,快速的获得了最优预测模式。
为了测试本发明实施例提出的快速算法的性能,对本文中提出的快速搜索算法进行了仿真实验。具体测试参数如下:使用哈达玛变换和率失真优化;使用全I帧编码;对于QCIF(4:2:0)序列,编码长度均为200帧。为了验证算法的有效性,将本文的求取最优预测模式方案、和全搜索算法在峰值信噪比(PSNR)、输出比特率(BIT_RATE)和编码时间(代价函数计算次数)三个方面进行了比较。表6-9分别给出了所提出的快速算法、与全搜索算法在量化系数(QP,quantisation parameter)分别为30、23、15、8等条件下的比较结果。
在QP=30时,实验测试结果如表6所示:
表6
在QP=23时,实验测试结果如表7所示:
表7
在QP=15时,实验测试结果如表8所示:
表8
在QP=8时,实验测试结果如表9所示:
表9
分析实验数据可知:与全搜索算法相比,本文所提出的算法在比特率略有增加而峰值信噪比维持基本不变的情况下,计算复杂度明显降低。此外主要边缘强度(DES)的计算十分简单规则,适于VLSI设计。
本发明实施例还提供了一种获得最优预测模式的装置,参见图7,具体包括:
边缘强度计算模块701,用于获取待编码图像,将所述图像划分为n×n块,求取每个n×n块的边缘强度;
候选预测模式确定模块702,用于根据所述求取的边缘强度,确定所述n×n块候选预测模式;
最可能预测模式确定模块703,用于根据所述n×n块的左边块和上边块获得所述n×n块的最可能预测模式;
最优预测模式确定模块704,用于根据所述候选预测模式以及最可能预测模式,利用率失真化代价函数求取最优预测模式。
当对所述图像进行亮度分量计算时,所述n×n块为4×4块或16×16块;所述装置还包括:
亮度分量最优预测模式选择模块,用于当应用4×4块和16×16块分别计算出两个最优预测模式时,取代价函数值最小的最优预测模式作为亮度分量的最优预测模式。
当对所述图像进行色度分量计算时,所述n×n块为8×8块。
上述边缘强度计算模块701还可以包括:
图像获取划分子模块,用于获取待编码图像,将所述图像划分为n×n块;
边缘强度值计算子模块,用于将所述n×n块再划分为2×2子块;令P0为所述再划分的2×2子块左上角子块的像素平均值,P1为所述再划分的2×2子块右上角子块的像素平均值、P2为所述再划分的2×2子块左下角子块的像素平均值、P3为所述再划分的2×2子块右下角子块的像素平均值,P4为所述再划分的2×2子块的中间子块的像素平均值,则所述n×n块的边缘强度为:
d0°=|P1-P0|+|P3-P2|
d90°=|P2-P0|+|P3-P1|
d45°=|P4-P1|+|P2-P4|
d135°=|P4-P0|+|P3-P4|
dnd=(|P0-P4|+|P1-P4|+|P2-P4|+|P3-P4|)>>1
其中,d0°,d90°,d45°,d135°,dnd分别代表0°边缘、90°边缘、45°边缘、135°边缘和无方向边缘的边缘强度值。
上述候选预测模式确定模块702还可以包括:
列表设定子模块,用于预先设定候选模式选择列表,该列表中包括d0°,d90°,d45°,d135°,dnd分别对应的候选预测模式;
候选预测模式选择子模块,用于获取所述d0°,d90°,d45°,d135°,dnd中值最小的作为所述n×n块的主要方向边缘强度,根据所述候选模式选择列表,将所述主要方向边缘强度所对应的候选预测模式确定为所述n×n块候选预测模式。
上述最可能预测模式确定模块703还可以包括:
模式编号设定子模块,用于预先设定每种预测模式对应的模式编号;其中,所述模式编号从0开始;
确定子模块,用于获取所述n×n块的左边相邻块和上边相邻块的最佳预测模式所对应的编号;
选择子模块,用于选择编号值较小的预测模式作为所述n×n块的最可能预测模式;
其中,如果所述n×n块的左边相邻块或上边相邻块不可用,则确定所述n×n块的最可能预测模式为直流预测模式。
可见,应用本发明实施例提供的获得最优预测模式的装置,通过减少候选模式实现降低计算复杂度,快速的获取了最优预测模式。再有,本发明实施例所采用的计算边缘强度的算法规则非常简单,进一步降低了计算的复杂度,提高了获取最优预测模式的速度,对用大规模集成电路(VLSI)设计和实现H.264编码器非常有利。
对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。