一种帧间编码中子象素搜索方法、运动搜索方法及其模块的制作方法

文档序号:7768760阅读:191来源:国知局
专利名称:一种帧间编码中子象素搜索方法、运动搜索方法及其模块的制作方法
技术领域
本发明涉及视频编码压缩领域,尤其涉及子象素帧间搜索压缩算法。
背景技术
随着科技的飞速发展,多媒体、网络通信已经成为我们生活中的一部分,人们希望无论何时何地都能够方便、灵活地传输、使用、处理视频。视频压缩技术是传输、处理视频的前提。视频信号数字化后数据带宽很高,通常在20MB/秒以上,因此传输需要占用大量带宽,网络传输耗时长,且由于容量太大,计算机很难对之进行保存和处理。虽然数字化的视频图像信息量非常大,但视频图像数据间是高度相关的,一幅图像的内部或图像序列中相邻图像之间有大量冗余信息,这其中包括了时间冗余、空间冗余等形式。消除冗余是视频图像编码压缩的出发点,采用压缩技术后通常数据带宽可以降到 1-10MB/秒,这样就可以将视频信号保存在计算机中并作相应的处理,快速而有效的视频编码压缩技术同样是多媒体传输的关键技术之一。在目前被广泛应用的视频压缩协议中,大部分都采用帧内编码与帧间预测相结合的压缩技术。帧内编码主要用于去除空间冗余,即一幅图像中的冗余信息。帧内编码压缩率较低,但能够减小图像的失真率。实际应用中,为了节省传输带宽,多数编码帧都被采用帧间编码压缩。具体地说, 在视频序列中,由于临近的两帧图像的运动保持一定的相关性,因此,在编码当前帧图像时,可以以宏块为单位,在已编码完成的重构帧中、当前宏块对应位置附近搜索当前宏块的最佳匹配块(通过运动搜索算法),将最佳匹配块与当前宏块之间的距离记为运动矢量,并对两者之差进行变换、量化和编码,实现视频压缩,如图1所示。通常来说,进行帧间编码的编码器中占用资源最多的模块就是运动搜索模块。运动搜索算法,通常分为以下几个步骤步骤一运动矢量预测运动的序列中,相邻两帧图像的象素之间具有相似性,而在同一帧图像内部,相邻的宏块之间,运动趋势可能会保持一致。运动搜索算法依据上述两点,在对当前块进行运动搜索之前,首先根据当前帧中编码已完成的相邻宏块的运动矢量,预测当前宏块的运动矢量。不同的视频压缩协议,相邻宏块的指定方式、获取运动矢量预测值(MVP)的方式、相邻宏块可用性以及运动矢量默认值会有差别。步骤二 整象素运动搜索整象素搜索算法是在预测的运动矢量附近,对预测点为中心的一定矩形范围区域内所有点,都计算一次匹配结果,并从中选出最佳匹配点作为整象素搜索的结果。步骤三子象素运动搜索搜索到最佳匹配整象素点之后,依次在粗精度最佳匹配点周围(通过搜索算搜索细精度最佳匹配点(不同协议的最小搜索精度不同)。例如,首先在最佳整象素匹配点周围搜索最佳1/2精度匹配点,再在最佳1/2精度匹配点周围搜索1/4精度最佳匹配点。
5
全区域搜索算法是效果最好的算法,它能确保获得最佳的匹配点。但是其明显的缺点就是计算量太大,处理时必须将搜索区域内所有点遍历一次,这对硬件资源的消耗是难以接受的。不同协议中,待搜索区域的宏块数量、大小各不相同。以搜索16*16大小的宏块为例,每进行一次匹配,计算包括256次求差、256次绝对值和255次求和运算,然后再进行比较,找出其中的最佳匹配点。如果将待搜索区域内所有的点都进行一次匹配计算,以一般协议的搜索范围“16”为例,每个16*16大小的宏块需要查找1089次匹配点,这很难用软件进行实时处理。因此,在实际应用中,针对整象素的快速搜索算法通常需要缩小搜索范围、并删减搜索点,从而使搜索点大量减小,但是每个整象素点周围8个子象素点并不省略,仍然需要对其进行搜索,如果还需要搜索更细精度的子象素点,子象素搜索的运算量还需要增大。从上述描述可以看出,进行粗略搜索的整象素在整个运动搜索过程中,所占比例几乎与细精度的子象素搜索点相当,虽然减少了整象素的搜索点,但是仍会有子象素搜索占用过多资源。而上述运动搜索的效率直接影响编码效率,被搜索的匹配点数量与运动搜索效率直接相关,被搜索块与当前块之间的匹配程度又直接影响视频压缩率,因此快速、高效、准确的运动搜索算法是影响编码效率和质量的关键因素之一,选择合适的运动搜索算法对于压缩编码而言显得尤为重要。

发明内容
本发明主要解决的技术问题是提供一种帧间编码中子象素搜索方法、运动搜索方法及其模块,使得在不影响重构图像主观质量以及编码码流变化微小前提下,减少子象素搜索点,提升运动搜索效率。为了解决上述技术问题,本发明提供了一种视频帧间编码压缩中子象素搜索方法,包含以下步骤A确定当前宏块的预测运动矢量与整象素点的运动矢量之间的相对方位;B对该整象素点周围8个子象素点中该相对方位上的N个子象素点进行搜索,N为 3至5的整数;C依次对已搜索的子象素点进行匹配计算,确定子象素的最佳匹配点。作为上述技术方案的改进,步骤B之前还可以包含以下步骤计算当前宏块的预测运动矢量与整象素点的运动矢量之间的距离,如果距离大于一个象素点,则步骤B中,对该整象素点周围8个子象素点中该相对方位上的5个子象素点进行搜索;如果距离小于或等于一个象素点,则步骤B中,对该整象素点周围8个子象素点中该相对方位上的3个子象素点进行搜索。作为上述技术方案的改进,步骤C中依次对已搜索的子象素点进行匹配计算的过程中如果已搜索的一个子象素点的匹配计算结果大于预先设定的阈值,则对搜索的下一个子象素点进行匹配计算;反之如果该子象素点的匹配计算结果小于或等于该阈值,则确定该子象素点为最佳匹配点,步骤B中的搜索停止。本发明还提供了一种视频帧间编码压缩的运动搜索方法,包含以下步骤预测当前宏块的运动矢量;
进行整象素运动搜索,得到最匹配的整象素点;采用上述子象素搜索方法进行子象素搜索,得到子象素的最佳匹配点,将该子象素最佳匹配点的运动矢量作为运动搜索结果。本发明还提供了一种视频帧间编码压缩中子象素搜索模块,包含方向定位子模块,用于确定当前宏块的预测运动矢量与整象素点的运动矢量之间的相对方位;搜索子模块,用于对该整象素点周围8个子象素点中该相对方位上的N个子象素点进行搜索,N为3至5的整数;匹配计算子模块,用于依次对已搜索的子象素点进行匹配计算;最佳匹配点确认子模块,用于根据该匹配计算结果,确定子象素的最佳匹配点。作为上述技术方案的改进,搜索子模块还可以用于计算当前宏块的预测运动矢量与整象素点的运动矢量之间的距离;如果距离大于一个象素点,则搜索子模块对该整象素点周围8个子象素点中该相对方位上的5个子象素点进行搜索;如果距离小于或等于一个象素点,则搜索子模块对该整象素点周围8个子象素点中该相对方位上的3个子象素点进行搜索。作为上述技术方案的改进,最佳匹配点确认子模块还可以用于对匹配计算子模块输出的匹配计算结果进行判断,如果匹配计算结果大于预先设定的阈值,则指示匹配计算子模块对搜索子模块搜索的下一个子象素点进行匹配计算;反之如果匹配计算结果小于或等于该阈值,则确定该子象素点为最佳匹配点,指示搜索子模块停止搜索。本发明还提供了一种视频帧间编码压缩的运动搜索模块,包含预测当前宏块的运动矢量的模块;进行整象素运动搜索,得到最匹配的整象素点的模块;如上的子象素搜索模块;将子象素搜索模块搜索得到的子象素最佳匹配点的运动矢量作为运动搜索结果。本发明实施方式与现有技术相比,主要区别及其效果在于根据当前宏块的预测运动矢量与整象素点的运动矢量之间的相对方位,对该整象素点周围8个子象素点中该相对方位上的N个子象素点进行搜索,并依次对已搜索的子象素点进行匹配计算,确定子象素的最佳匹配点,其中N为3至5的整数,从而在不影响重构图像主观质量以及编码码流变化微小前提下,减少子象素搜索点,提升运动搜索效率。计算当前宏块的预测运动矢量与整象素点的运动矢量之间的距离,如果距离大于一个象素点,则搜索该整象素点周围5个子象素点;反之,则仅搜索该整象素点周围3个子象素点。进一步减少子象素搜索点,且不影响编码质量。设置提前退出条件,如果已搜索的一个子象素点的匹配计算结果大于预先设定的阈值,则对搜索的下一个子象素点进行匹配计算;反之如果该子象素点的匹配计算结果小于或等于该阈值,则确定该子象素点为最佳匹配点,停止搜索,进一步加快编码速度。采用本发明的运动搜索算法,与子象素全搜索算法相比,平均子象素搜索点数减少约为50%,但是图像的峰值信噪比(PSNR)值下降不到0. ldb,解码之后序列主观质量不受影响,编码速度明显增快。


下面结合附图和具体实施方式
对本发明作进一步详细说明。图1是现有技术中运动搜索示意图;图2是本发明第一实施方式的视频帧间编码压缩中子象素搜索方法流程图;图3是本发明第一实施方式中当前宏块的预测运动矢量与整象素点运动矢量的相对方位上待搜索的5个子象素点示意图;图4是本发明第一实施方式中当前宏块的预测运动矢量与整象素点运动矢量的相对方位上待搜索的3个子象素点示意图;图5是本发明第二实施方式的视频帧间编码压缩中子象素搜索模块结构图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。本发明第一实施方式涉及一种视频帧间编码压缩中子象素搜索方法,用于进行视频帧间编码压缩的运动搜索。运动搜索过程主要包括三个步骤首先预测当前宏块的运动矢量;其次进行整象素运动搜索,得到最匹配的整象素点;在完成整象素运动搜索之后,进行子象素运动搜索。本实施方式中运动矢量预测方法、和整象素搜索方法与现有技术相同,可以根据需要,采用不同的现有技术,在此不再赘述。本实施方式与现有技术的区别在于使用快速的子象素搜索算法代替全部子象素都被搜索的算法,具体流程如图2所示。步骤201中,确定当前宏块的预测运动矢量与整象素点的运动矢量之间的相对方位。步骤202中,计算当前宏块的预测运动矢量与整象素点的运动矢量之间的距离, 如果计算得到的距离大于一个象素点,则进入步骤203,对该整象素点周围8个子象素点中该相对方位上的5个子象素点依次进行搜索;如果计算得到的距离小于或等于一个象素点,则进入步骤204,对该整象素点周围8个子象素点中该相对方位上的3个子象素点依次进行搜索。步骤205中,依次对已搜索的子象素点进行匹配计算,具体的匹配算法可以根据需要采用不同的现有技术。步骤206中,判断匹配计算结果是否大于预先设定的阈值,如果大于,则在步骤 205中继续对搜索的下一个子象素点进行匹配计算,如果步骤205中已完成所有的子象素搜索点(5个或3个)的匹配操作则进入步骤208 ;如果步骤206中该匹配计算结果小于或等于该阈值(即匹配结果在阈值范围内),则确定该子象素点为最佳匹配点,该子象素最佳匹配点的运动矢量即为运动搜索的结果。接着进入步骤207,停止步骤203或步骤204中的搜索操作,提前退出子象素的搜索和匹配过程。步骤208中,根据已搜索的各子象素点的匹配结果,选择最佳匹配点,该子象素最佳匹配点的运动矢量即为运动搜索的结果。举例而言,假设整象素运动搜索中搜索到最佳匹配的整象素点“0”,判断当前宏块的预测运动矢量与整象素点运动矢量的距离和相对方位,如果距离相差一个象素以上,则按照全搜索的方法依次搜索该整象素点周围该相对方位上的5个子象素点,如图3所示;否则按照全搜索的方法依次搜索该整象素点周围该相对方位上的3个子象素点,如图4所示。具体地说,如图3所示,相对方位上5个子象素点分别为当前宏块的预测运动矢量在整象素点的运动矢量的右上方时,搜索点“1”,点 “2”,点 “3”,点 “5”,点 “8”;当前宏块的预测运动矢量在整象素点的运动矢量的右侧时,搜索点“2”,点“3”, 占 “5”,占 “7”,占 “8” .当前宏块的预测运动矢量在整象素点的运动矢量的右下方时,搜索点“3”,点 “5”,点 “6”,点 “7”,点 “8”;当前宏块的预测运动矢量在整象素点的运动矢量的正下方时,搜索点“4”,点 “5”,点 “6”,点 “7”,点 “8”;当前宏块的预测运动矢量在整象素点的运动矢量的左下方时,搜索点“1”,点 “4”,点 “6”,点 “7”,点 “8”;当前宏块的预测运动矢量在整象素点的运动矢量的左侧时,搜索点“1”,点“2”, 占 “4”,占 “6”,占 “7” .当前宏块的预测运动矢量在整象素点的运动矢量的左上方时,搜索点“1”,点 “2”,点 “3”,点 “4”,点 “6”;当前宏块的预测运动矢量在整象素点的运动矢量的正上方时,搜索点“1”,点 "?,,W 占"4,,占“5,,具体的搜索顺序和搜索方法可以参考现有技术,在此不进行限制。如图4所示,相对方位上3个子象素点分别为当前宏块的预测运动矢量在整象素点的运动矢量的右上方时,搜索点“2”,点 “3”,点 “5”;当前宏块的预测运动矢量在整象素点的运动矢量的右侧时,搜索点“3”,点“5”, 点 “8”;当前宏块的预测运动矢量在整象素点的运动矢量的右下方时,搜索点“5”,点 “7”,点 “8”;当前宏块的预测运动矢量在整象素点的运动矢量的正下方时,搜索点“6”,点 “7”,点 “8”;当前宏块的预测运动矢量在整象素点的运动矢量的左下方时,搜索点“4”,点 “6”,点 “7”;当前宏块的预测运动矢量在整象素点的运动矢量的左侧时,搜索点“1”,点“4”, 点 “6”;当前宏块的预测运动矢量在整象素点的运动矢量的左上方时,搜索点“1”,点 “2”,点 “4”;当前宏块的预测运动矢量在整象素点的运动矢量的正上方时,搜索点“1”,点
u r) yy 占 “ q,,
乙 9 ;1Vvn ο O每次搜索到一个子象素点时,对该子象素点进行匹配计算,并将计算结果与预先设定的阈值进行比较,如果在该阈值范围内,则认定当前子象素点为最佳匹配点,当前块的子象素点搜索和匹配过程提前结束。如果计算结果不在阈值范围内,则继续进行子象素点的搜索和匹配过程。在搜索和比较完所有(3个或5个)子象素点后,如果仍然没有一个子象素点的匹配计算结果在该阈值内,则根据这些子象素点的匹配结果,选择最佳匹配点,该子象素最佳匹配点的运动矢量即为运动搜索的结果。综上所述,本实施方式中,进行子象素搜索之前首先进行预判断,排除可能不是最佳匹配的子象素搜索点,从而减少需要搜索的子象素数量,加快子象素搜索速度。根据当前宏块的预测运动矢量与整象素点的运动矢量之间的相对方位,完成上述预判断,使得预判断的准确率得到保障,从而在不影响重构图像主观质量以及编码码流变化微小前提下,减少子象素搜索点,提升运动搜索效率。并且,计算当前宏块的预测运动矢量与整象素点的运动矢量之间的距离,不同的距离对应的搜索点数量不同。如果距离大于一个象素点,则搜索该整象素点周围5个子象素点;反之,则仅搜索该整象素点周围3个子象素点,在不影响重构图像主观质量以及编码码流变化微小前提下,进一步减少子象素搜索点。另外,设置提前退出条件,在完成每个子象素匹配点的计算之后,都对该提前退出条件进行判断,如果已搜索的一个子象素点的匹配计算结果大于预先设定的阈值,则对搜索的下一个子象素点进行匹配计算(直到预定的子象素点均完成匹配);反之如果该子象素点的匹配计算结果小于或等于该阈值,则确定该子象素点为最佳匹配点,停止搜索,提前退出子象素搜索和匹配流程,在不影响重构图像主观质量以及编码码流变化微小前提下, 进一步加快编码速度。采用本实施方式的运动搜索算法,与子象素全搜索算法相比,平均子象素搜索点数减少约为50%,但是图像的峰值信噪比(PSNR)值下降不到0. ldb,解码之后序列主观质量不受影响,编码速度明显增快。本发明第二实施方式涉及一种视频帧间编码压缩中子象素搜索模块,如图5所示,包含方向定位子模块,用于确定当前宏块的预测运动矢量与整象素点的运动矢量之间的相对方位;搜索子模块,用于对该整象素点周围8个子象素点中该相对方位上的N个子象素点进行搜索,N为3至5的整数;匹配计算子模块,用于依次对已搜索的子象素点进行匹配计算;最佳匹配点确认子模块,用于根据该匹配计算结果,确定子象素的最佳匹配点。由于在进行子象素搜索之前首先进行预判断,排除可能不是最佳匹配的子象素搜索点,从而减少需要搜索的子象素数量,加快子象素搜索速度。根据当前宏块的预测运动矢量与整象素点的运动矢量之间的相对方位,完成上述预判断,使得预判断的准确率得到保障,从而在不影响重构图像主观质量以及编码码流变化微小前提下,减少子象素搜索点,提升运动搜索效率。作为上述技术方案的改进,搜索子模块还可以用于计算当前宏块的预测运动矢量与整象素点的运动矢量之间的距离;如果距离大于一个象素点,则搜索子模块对该整象素点周围8个子象素点中该相对方位上的5个子象素点进行搜索;如果距离小于或等于一个象素点,则搜索子模块对该整象素点周围8个子象素点中该相对方位上的3个子象素点进行搜索。在不影响重构图像主观质量以及编码码流变化微小前提下,进一步减少子象素搜孛占。
^JS / “、0CN 102547258 A作为上述技术方案的改进,该最佳匹配点确认子模块还可以用于对匹配计算子模块输出的匹配计算结果进行判断,如果匹配计算结果大于预先设定的阈值,则指示匹配计算子模块对搜索子模块搜索的下一个子象素点进行匹配计算;反之如果匹配计算结果小于或等于该阈值,则确定该子象素点为最佳匹配点,指示搜索子模块停止搜索,提前退出子象素搜索和匹配流程,在不影响重构图像主观质量以及编码码流变化微小前提下,进一步加快编码速度。其中,整象素点周围8个子象素点中该相对方位上的3个子象素点为当前宏块的预测运动矢量在整象素点的运动矢量的右上方时,待搜索的3个子象素点分别为上方象素点、右上方象素点、右方象素点;当前宏块的预测运动矢量在整象素点的运动矢量的右侧时,待搜索的3个子象素点分别为右上方象素点、右方象素点、右下方象素点;当前宏块的预测运动矢量在整象素点的运动矢量的右下方时,待搜索的3个子象素点分别为右方象素点、右下方象素点、下方象素点;当前宏块的预测运动矢量在整象素点的运动矢量的正下方时,待搜索的3个子象素点分别为右下方象素点、下方象素点、左下方象素点;当前宏块的预测运动矢量在整象素点的运动矢量的左下方时,待搜索的3个子象素点分别为下方象素点、左下方象素点、左方象素点;当前宏块的预测运动矢量在整象素点的运动矢量的左侧时,待搜索的3个子象素点分别为左下方象素点、左方象素点、左上方象素点;当前宏块的预测运动矢量在整象素点的运动矢量的左上方时,待搜索的3个子象素点分别为左方象素点、左上方象素点、上方象素点;当前宏块的预测运动矢量在整象素点的运动矢量的正上方时,待搜索的3个子象素点分别为左上方象素点、上方象素点、右上方象素点。整象素点周围8个子象素点中该相对方位上的5个子象素点为当前宏块的预测运动矢量在整象素点的运动矢量的右上方时,待搜索的5个子象素点分别为左上方象素点、上方象素点、右上方象素点、右方象素点、右下方象素点;当前宏块的预测运动矢量在整象素点的运动矢量的右侧时,待搜索的5个子象素点分别为上方象素点、右上方象素点、右方象素点、右下方象素点、下方象素点;当前宏块的预测运动矢量在整象素点的运动矢量的右下方时,待搜索的5个子象素点分别为右上方象素点、右方象素点、右下方象素点、下方象素点、左下方象素点;当前宏块的预测运动矢量在整象素点的运动矢量的正下方时,待搜索的5个子象素点分别为右方象素点、右下方象素点、下方象素点、左下方象素点、左方象素点;当前宏块的预测运动矢量在整象素点的运动矢量的左下方时,待搜索的5个子象素点分别为右下方象素点、下方象素点、左下方象素点、左方象素点、左上方象素点;当前宏块的预测运动矢量在整象素点的运动矢量的左侧时,待搜索的5个子象素点分别为下方象素点、左下方象素点、左方象素点、左上方象素点、上方象素点;当前宏块的预测运动矢量在整象素点的运动矢量的左上方时,待搜索的5个子象素点分别为左下方象素点、左方象素点、左上方象素点、上方象素点、右上方象素点;当前宏块的预测运动矢量在整象素点的运动矢量的正上方时,待搜索的5个子象素点分别为左方象素点、左上方象素点、上方象素点、右上方象素点、右方象素点。采用本实施方式的运动搜索算法,与子象素全搜索算法相比,平均子象素搜索点数减少约为50%,但是图像的峰值信噪比(PSNR)值下降不到0. ldb,解码之后序列主观质量不受影响,编码速度明显增快。本发明第三实施方式涉及一种视频帧间编码压缩的运动搜索模块,包含预测当前宏块的运动矢量的模块;进行整象素运动搜索,得到最匹配的整象素点的模块;如上的子象素搜索模块;将子象素搜索模块搜索得到的子象素最佳匹配点的运动矢量作为运动搜索结果。虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
权利要求
1.一种视频帧间编码压缩中子象素搜索方法,其特征在于,包含以下步骤 A确定当前宏块的预测运动矢量与整象素点的运动矢量之间的相对方位;B对该整象素点周围8个子象素点中该相对方位上的N个子象素点进行搜索,所述N为 3至5的整数;C依次对已搜索的子象素点进行匹配计算,确定子象素的最佳匹配点。
2.根据权利要求1所述的视频帧间编码压缩中子象素搜索方法,其特征在于,所述步骤B之前还包含以下步骤计算当前宏块的预测运动矢量与整象素点的运动矢量之间的距离,如果所述距离大于一个象素点,则所述步骤B中,对该整象素点周围8个子象素点中该相对方位上的5个子象素点进行搜索;如果所述距离小于或等于一个象素点,则所述步骤B 中,对该整象素点周围8个子象素点中该相对方位上的3个子象素点进行搜索。
3.根据权利要求1所述的视频帧间编码压缩中子象素搜索方法,其特征在于,所述步骤C中依次对已搜索的子象素点进行匹配计算的过程中如果已搜索的一个子象素点的匹配计算结果大于预先设定的阈值,则对搜索的下一个子象素点进行匹配计算;反之如果该子象素点的匹配计算结果小于或等于所述阈值,则确定该子象素点为最佳匹配点,所述步骤B中的搜索停止。
4.根据权利要求2所述的视频帧间编码压缩中子象素搜索方法,其特征在于,所述整象素点周围8个子象素点中该相对方位上的3个子象素点为当前宏块的预测运动矢量在整象素点的运动矢量的右上方时,所述待搜索的3个子象素点分别为上方象素点、右上方象素点、右方象素点;当前宏块的预测运动矢量在整象素点的运动矢量的右侧时,所述待搜索的3个子象素点分别为右上方象素点、右方象素点、右下方象素点;当前宏块的预测运动矢量在整象素点的运动矢量的右下方时,所述待搜索的3个子象素点分别为右方象素点、右下方象素点、下方象素点;当前宏块的预测运动矢量在整象素点的运动矢量的正下方时,所述待搜索的3个子象素点分别为右下方象素点、下方象素点、左下方象素点;当前宏块的预测运动矢量在整象素点的运动矢量的左下方时,所述待搜索的3个子象素点分别为下方象素点、左下方象素点、左方象素点;当前宏块的预测运动矢量在整象素点的运动矢量的左侧时,所述待搜索的3个子象素点分别为左下方象素点、左方象素点、左上方象素点;当前宏块的预测运动矢量在整象素点的运动矢量的左上方时,所述待搜索的3个子象素点分别为左方象素点、左上方象素点、上方象素点;当前宏块的预测运动矢量在整象素点的运动矢量的正上方时,所述待搜索的3个子象素点分别为左上方象素点、上方象素点、右上方象素点。
5.根据权利要求2所述的视频帧间编码压缩中子象素搜索方法,其特征在于,所述整象素点周围8个子象素点中该相对方位上的5个子象素点为当前宏块的预测运动矢量在整象素点的运动矢量的右上方时,所述待搜索的5个子象素点分别为左上方象素点、上方象素点、右上方象素点、右方象素点、右下方象素点;当前宏块的预测运动矢量在整象素点的运动矢量的右侧时,所述待搜索的5个子象素点分别为上方象素点、右上方象素点、右方象素点、右下方象素点、下方象素点;当前宏块的预测运动矢量在整象素点的运动矢量的右下方时,所述待搜索的5个子象素点分别为右上方象素点、右方象素点、右下方象素点、下方象素点、左下方象素点;当前宏块的预测运动矢量在整象素点的运动矢量的正下方时,所述待搜索的5个子象素点分别为右方象素点、右下方象素点、下方象素点、左下方象素点、左方象素点;当前宏块的预测运动矢量在整象素点的运动矢量的左下方时,所述待搜索的5个子象素点分别为右下方象素点、下方象素点、左下方象素点、左方象素点、左上方象素点;当前宏块的预测运动矢量在整象素点的运动矢量的左侧时,所述待搜索的5个子象素点分别为下方象素点、左下方象素点、左方象素点、左上方象素点、上方象素点;当前宏块的预测运动矢量在整象素点的运动矢量的左上方时,所述待搜索的5个子象素点分别为左下方象素点、左方象素点、左上方象素点、上方象素点、右上方象素点;当前宏块的预测运动矢量在整象素点的运动矢量的正上方时,所述待搜索的5个子象素点分别为左方象素点、左上方象素点、上方象素点、右上方象素点、右方象素点。
6.一种视频帧间编码压缩的运动搜索方法,其特征在于,包含以下步骤 预测当前宏块的运动矢量;进行整象素运动搜索,得到最匹配的整象素点;采用权利要求1至5中任意一项所述的子象素搜索方法进行子象素搜索,得到子象素的最佳匹配点,将该子象素最佳匹配点的运动矢量作为运动搜索结果。
7.一种视频帧间编码压缩中子象素搜索模块,其特征在于,包含方向定位子模块,用于确定当前宏块的预测运动矢量与整象素点的运动矢量之间的相对方位;搜索子模块,用于对该整象素点周围8个子象素点中该相对方位上的N个子象素点进行搜索,所述N为3至5的整数;匹配计算子模块,用于依次对已搜索的子象素点进行匹配计算;最佳匹配点确认子模块,用于根据所述匹配计算结果,确定子象素的最佳匹配点。
8.根据权利要求7所述的视频帧间编码压缩中子象素搜索模块,其特征在于,所述搜索子模块还用于计算当前宏块的预测运动矢量与整象素点的运动矢量之间的距离;如果所述距离大于一个象素点,则所述搜索子模块对该整象素点周围8个子象素点中该相对方位上的5个子象素点进行搜索;如果所述距离小于或等于一个象素点,则所述搜索子模块对该整象素点周围8个子象素点中该相对方位上的3个子象素点进行搜索。
9.根据权利要求7所述的视频帧间编码压缩中子象素搜索模块,其特征在于,所述最佳匹配点确认子模块还用于对所述匹配计算子模块输出的匹配计算结果进行判断,如果所述匹配计算结果大于预先设定的阈值,则指示所述匹配计算子模块对所述搜索子模块搜索的下一个子象素点进行匹配计算;反之如果所述匹配计算结果小于或等于所述阈值,则确定该子象素点为最佳匹配点,指示所述搜索子模块停止搜索。
10.根据权利要求8所述的视频帧间编码压缩中子象素搜索模块,其特征在于,所述整象素点周围8个子象素点中该相对方位上的3个子象素点为当前宏块的预测运动矢量在整象素点的运动矢量的右上方时,所述待搜索的3个子象素点分别为上方象素点、右上方象素点、右方象素点;当前宏块的预测运动矢量在整象素点的运动矢量的右侧时,所述待搜索的3个子象素点分别为右上方象素点、右方象素点、右下方象素点;当前宏块的预测运动矢量在整象素点的运动矢量的右下方时,所述待搜索的3个子象素点分别为右方象素点、右下方象素点、下方象素点;当前宏块的预测运动矢量在整象素点的运动矢量的正下方时,所述待搜索的3个子象素点分别为右下方象素点、下方象素点、左下方象素点;当前宏块的预测运动矢量在整象素点的运动矢量的左下方时,所述待搜索的3个子象素点分别为下方象素点、左下方象素点、左方象素点;当前宏块的预测运动矢量在整象素点的运动矢量的左侧时,所述待搜索的3个子象素点分别为左下方象素点、左方象素点、左上方象素点;当前宏块的预测运动矢量在整象素点的运动矢量的左上方时,所述待搜索的3个子象素点分别为左方象素点、左上方象素点、上方象素点;当前宏块的预测运动矢量在整象素点的运动矢量的正上方时,所述待搜索的3个子象素点分别为左上方象素点、上方象素点、右上方象素点。
11.根据权利要求8所述的视频帧间编码压缩中子象素搜索模块,其特征在于,所述整象素点周围8个子象素点中该相对方位上的5个子象素点为当前宏块的预测运动矢量在整象素点的运动矢量的右上方时,所述待搜索的5个子象素点分别为左上方象素点、上方象素点、右上方象素点、右方象素点、右下方象素点;当前宏块的预测运动矢量在整象素点的运动矢量的右侧时,所述待搜索的5个子象素点分别为上方象素点、右上方象素点、右方象素点、右下方象素点、下方象素点;当前宏块的预测运动矢量在整象素点的运动矢量的右下方时,所述待搜索的5个子象素点分别为右上方象素点、右方象素点、右下方象素点、下方象素点、左下方象素点;当前宏块的预测运动矢量在整象素点的运动矢量的正下方时,所述待搜索的5个子象素点分别为右方象素点、右下方象素点、下方象素点、左下方象素点、左方象素点;当前宏块的预测运动矢量在整象素点的运动矢量的左下方时,所述待搜索的5个子象素点分别为右下方象素点、下方象素点、左下方象素点、左方象素点、左上方象素点;当前宏块的预测运动矢量在整象素点的运动矢量的左侧时,所述待搜索的5个子象素点分别为下方象素点、左下方象素点、左方象素点、左上方象素点、上方象素点;当前宏块的预测运动矢量在整象素点的运动矢量的左上方时,所述待搜索的5个子象素点分别为左下方象素点、左方象素点、左上方象素点、上方象素点、右上方象素点;当前宏块的预测运动矢量在整象素点的运动矢量的正上方时,所述待搜索的5个子象素点分别为左方象素点、左上方象素点、上方象素点、右上方象素点、右方象素点。
12.一种视频帧间编码压缩的运动搜索模块,其特征在于,包含 预测当前宏块的运动矢量的模块;进行整象素运动搜索,得到最匹配的整象素点的模块;根据权利要求7至11中任意一项所述的子象素搜索模块,将所述子象素搜索模块搜索得到的子象素最佳匹配点的运动矢量作为运动搜索结果。
全文摘要
本发明公开了一种帧间编码中子象素搜索方法、运动搜索方法及其模块,进行子象素搜索之前首先进行预判断,排除可能不是最佳匹配的子象素搜索点,从而减少需要搜索的子象素数量,加快子象素搜索速度。根据当前宏块的预测运动矢量与整象素点的运动矢量之间的相对方位,完成上述预判断,使得预判断的准确率得到保证,从而在不影响重构图像主观质量以及编码码流变化微小前提下,减少子象素搜索点,提升运动搜索效率。并且,计算当前宏块的预测运动矢量与整象素点的运动矢量之间的距离,如果距离大于一个象素点,则搜索该整象素点周围5个子象素点;反之,则仅搜索该整象素点周围3个子象素点,从而在不影响编码质量前提下,进一步减少子象素搜索点。
文档编号H04N7/32GK102547258SQ20101058841
公开日2012年7月4日 申请日期2010年12月14日 优先权日2010年12月14日
发明者于娜 申请人:联芯科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1