屏幕内容编码的哈希块匹配的制作方法

文档序号:15359257发布日期:2018-09-05 00:26阅读:371来源:国知局
本申请由北方工业大学与北京交通大学信息所联合研究,并得到以下基金资助:国家自然科学基金(no.61103113,no.60903066),北京市属高等学校人才强教深化计划项目(phr201008187);江苏省自然科学基金(bk2011455),北京市自然科学基金(no.4102049),教育部新教师基金(no.20090009120006);国家973计划(2012cb316400),中央高校基础研究基金(no.2011jbm214)。本发明涉及图像与视频处理领域,更具体而言,涉及在高效视频编码(hevc)用于使用哈希块匹配来帧间预测和帧内块拷贝。
背景技术
::2010年4月,两大国际视频编码标准组织vceg和mpeg成立视频压缩联合小组jct-vc(jointcollaborativeteamonvideocoding),一同开发高效视频编码hevc(highefficiencyvideocoding)标准,其也称为h.265。hevc标准主要目标是与上一代标准h.264/avc实现大幅度的编码效率的提高,尤其是针对高分辨率视频序列。其目标是在相同视频质量(psnr)下码率降为h.264标准的50%。就目前阶段,hevc依然沿用h.264就开始采用的混合编码框架。帧间和帧内预测编码:消除时间域和空间域的相关性。变换编码:对残差进行变换编码以消除空间相关性。熵编码:消除统计上的冗余度。hevc将在混合编码框架内,着力研究新的编码工具或技术,提高视频压缩效率。目前,jct-vc组织的讨论中已经提出的许多编码的新特性,有可能会加入hevc标准中,各次讨论的具体文献可以从http://wftp3.itu.int获得。hevc标准的第一版已经在2013年的一月份完成。并于2013年4月、2014年10月和2015年4月相继发布的3个版本,这些版本能够很容易地从网络上获得,并且本申请将上述hevc标准的三个版本并入本说明书中作为本发明的
背景技术
:。屏幕内容编码是高效视频编码的一个重要扩展,它针对网络会议、远程桌面共享以及远程教学表现了重要的作用。所谓的屏幕内容有两部分组成,一部分是由摄像机捕获的内容,另一部分是由电脑自身产生的内容,如表格、文档等。因为高频内容的存在使得屏幕内容编码与自然图像相比更加困难。一些基于hevc的改进使得视频编码的效率的编码和解码效率都大大提高。帧内块拷贝模式、调色板模式等作为新技术被引进。技术实现要素:在本发明中,提出一种在高效视频编码(hevc)用于对屏幕内容图像进行编码的方法,所述方法包括将哈希块匹配模块用于帧间预测和帧内块拷贝,其中,所述哈希块匹配模块执行如下操作:建立哈希表,包括:针对当前帧,按照从左到右、从上到下的顺序,每个整数像素位按照如下方式计算一次哈希值:根据原始像素值计算2×2大小块的哈希值;根据4个2×2大小的子块的哈希值计算4×4大小块的哈希值;根据2个4×4大小的子块的哈希值分别计算8×4大小块的哈希值和4×8大小块的哈希值;根据4个4×4大小的子块的哈希值计算8×8大小块的哈希值;根据4个8×8大小的子块的哈希值计算16×16大小块的哈希值;根据4个16×16大小的子块的哈希值计算32×32大小块的哈希值;根据4个32×32大小的子块的哈希值计算64×64大小块的哈希值;如果当前块不是简单块,则将当前块添加到哈希表中,其中,对于4×4、8×8、16×16、32×32、64×64大小的块,通过确定每行像素值或每列像素值是否都相同,来判断当前块是否是简单块;对于8×4大小块,通过判断水平方向上整数像素位上的3个4×4的块是否都是简单块,来判断当前块是否是简单块;对于4×8大小块,通过判断垂直方向上整数像素位上的3个4×4的块是否都是简单块,来判断当前块是否是简单块,基于所述哈希表,对当前预测块进行基于哈希的运动估计,包括:计算当前预测块的哈希值,并在哈希表中搜索匹配块;若当前预测块深度为0,如果找到匹配块且匹配块的重建图像质量不比期望值差,则跳过之后的率失真优化过程;如果当前预测块深度不为0并且匹配块被找到,则整像素运动估计和半像素运动估计过程被跳过;若找不到到匹配块,则跳过基于哈希的运动估计。根据另一方面,提出了一种在高效视频编码(hevc)用于对屏幕内容图像进行编码的装置,所述装置使用上述哈希块匹配模块来进行帧间预测和帧内块拷贝。根据另一方面,本发明提出了采用上述方法或装置的视频编解码器。根据另一个方面,本发明提出了一种计算机程序产品,其包含指令,所述指令当由处理器执行时,执行上述方法。附图说明图1示出了hevc的编码器框图的一个实施例。图2示出了根据本发明的一个实施例的建立哈希表的示意图。图3示出了根据本发明的一个实施例的4×4和8×4块的哈希值计算的示意图。图4示出了根据本发明的一个实施例的4×8和8×4块的简单块判断方法的示意图。图5示出了根据本发明的一个实施例的用于执行帧内块拷贝的方法的流程图。图5a示出了根据本发明的一个实施例的用于执行帧内块拷贝的装置的方框图。具体实施方式现在参考附图来描述各种方案。在以下描述中,为了进行解释,阐述了多个具体细节以便提供对一个或多个方案的透彻理解。然而,显然,在没有这些具体细节的情况下也能够实现这些方案。如在本申请中所使用的,术语“组件”、“模块”、“系统”等等旨在指代与计算机相关的实体,例如但不限于,硬件、固件、硬件和软件的组合、软件,或者是执行中的软件。例如,组件可以是但不限于:在处理器上运行的进程、处理器、对象、可执行体(executable)、执行线程、程序、和/或计算机。举例而言,运行在计算设备上的应用程序和该计算设备都可以是组件。一个或多个组件可以位于执行进程和/或者执行线程内,并且组件可以位于一台计算机上和/或者分布在两台或更多台计算机上。另外,这些组件可以从具有存储在其上的各种数据结构的各种计算机可读介质执行。组件可以借助于本地和/或远程进程进行通信,例如根据具有一个或多个数据分组的信号,例如,来自于借助于信号与本地系统、分布式系统中的另一组件交互和/或者与在诸如因特网之类的网络上借助于信号与其他系统交互的一个组件的数据。图1示出了高效视频编码(hevc)所实现的视频编码器的大致结构图。hevc的编码器架构与h.264所使用的编码器架构大致相同,主要是针对各个模块中所使用的算法进行了进一步的研究、改进,尤其是针对高分辨率视频序列,其改进的目标是在相同视频质量(psnr)下码率降为h.264标准的50%。由于hevc的编码器架构与h.264所使用的编码器架构大致相同,因此不混淆本发明,本申请中不对图1中的整体架构进行描述。更具体而言,本发明主要关注于针对屏幕内容编码的哈希块匹配算法。i.算法概述哈希块匹配运动估计是在二维方向上进行的全帧搜索。这是由于哈希表中包含了一帧中所有8×8,16×16,32×32,和64×64大小哈希块的信息。在早期的测试代码中,哈希值得计算都是直接基于像素值的。在目前的版本中,哈希值的计算采用了一种自下而上的方式。对于一个2n×2n的当前块,先检测是都有哈希匹配块,若有匹配块,则跳过之后的整像素运动估计和半像素运动估计。1.哈希表的建立哈希匹配过程的第一步是哈希表的建立。图像的尺寸以及图像中简单块的数量决定了哈希表的大小。如图2所示,按照从左至右、从上到下的顺序,每个整像素位上计算一次哈希值,若当前块不是简单块,则当前块就会被添加至哈希表。对于每个哈希块,需要计算4个哈希值。第一个哈希值(hashvalue1)需要消耗19比特,作为哈希表的索引值。其中前3个比特代表了哈希块的大小,之后的16个比特是根据当前哈希块原始像素值计算得到的。在一个实施例中,前3个比特,000,001,010,011,10和101分别代表了8×8,16×16,32×32,64×64,8×4,和4×8大小的块。第二个哈希值(hashvalue2)也是根据原始像素值计算而来,被用来排除哈希冲突,达到精确匹配的目的。哈希值的计算过程如下:根据原始像素值计算2×2大小块的哈希值。根据4个2×2大小的子块计算4×4大小块的哈希值。重复这个过程,计算8×8、16×16、32×32、和64×64大小块的哈希值。另外,根据本发明的一个实施例,还计算8×4和4×8大小的块的哈希值。以8×4块的计算为例,图3显示了这一过程。对于一个8×4块,其哈希值的计算基于其两个子4×4块的哈希值,一个4×4块哈希值的计算基于其四个子2×2块的哈希值,2×2块哈希值的计算直接由原始像素值来决定。同时,在整个计算过程中,会检测当前块是否是简单块。这些简单块具有以下特征:每行像素值都相同或者每列的像素值相同。由于这些简单块能在帧内预测过程中得到很精确的重构值,所以把这些简单块从哈希表中排除不但不会影响预测的精度,还会在很大程度上节省哈希搜索的时间,减低编码复杂度。8×4和4×8大小的简单块同样不会被添加到哈希表内。其简单块的判断如图4所示,如果标号为1、2、3的子4×4块全为简单块,这该8×4或4×8块为简单块。换言之,例如对于8×4块,是对其所包含的所有3个4×4的子块(水平方向上)进行判断,例如对于4×8块,是对其所包含的所有3个4×4的子块(垂直方向上)进行判断。根据这种方法,所有2n×n和n×2n块的哈希值和可用性(是否为简单块)就能意义计算和判断出来。2.基于哈希的运动估计基于哈希的运动估计过程如下:a)计算当前块的哈希值,并在哈希表中搜索匹配块。b)若当前块深度为0,如果找到匹配块且匹配块的重建图像质量不比期望值差,则跳过之后的率失真优化过程。如果当前块深度不为0并且匹配块被找到,则整像素运动估计和半像素运动估计过程被跳过。若找不到到匹配块,则执行跳过基于哈希的运动估计过程而执行原始的运动估计过程。图5示出了根据本发明的一个实施例的用于执行帧内块拷贝的方法的流程图。在方框501中,针对当前帧建立哈希表。具体而言,如上所述地并且,如图2所示地,针对当前帧,按照从左到右、从上到下的顺序,每个整数像素位按照如下方式计算一次哈希值:根据原始像素值计算2×2大小块的哈希值;根据4个2×2大小的子块的哈希值计算4×4大小块的哈希值,如图3所示地;根据2个4×4大小的子块的哈希值分别计算8×4大小块的哈希值和4×8大小块的哈希值,如图3所示地;根据4个4×4大小的子块的哈希值计算8×8大小块的哈希值;根据4个8×8大小的子块的哈希值计算16×16大小块的哈希值;根据4个16×16大小的子块的哈希值计算32×32大小块的哈希值;根据4个32×32大小的子块的哈希值计算64×64大小块的哈希值;如果当前块不是简单块,则将当前块添加到哈希表中,其中,对于4×4、8×8、16×16、32×32、64×64大小的块,通过确定每行像素值或每列像素值是否都相同,来判断当前块是否是简单块;对于8×4大小块,通过判断水平方向上整数像素位上的3个4×4的块是否都是简单块,来判断当前块是否是简单块;对于4×8大小块,通过判断垂直方向上整数像素位上的3个4×4的块是否都是简单块,来判断当前块是否是简单块,如图4所示地。在方框503中,基于所述哈希表,对当前预测块进行基于哈希的运动估计。具体包括:计算当前预测块的哈希值,并在哈希表中搜索匹配块;若当前预测块深度为0,如果找到匹配块且匹配块的重建图像质量不比期望值差,则跳过之后的率失真优化过程;如果当前预测块深度不为0并且匹配块被找到,则整像素运动估计和半像素运动估计过程被跳过;若找不到到匹配块,则跳过基于哈希的运动估计。本领域技术人员容易理解,上述过程经过适当修改后还可应用于帧间预测。图5a示出了根据本发明的一个实施例的用于执行帧内块拷贝的装置的方框图。在方框501a中,该装置包括用于针对当前帧建立哈希表的单元。该单元可用于执行如下操作:针对当前帧,按照从左到右、从上到下的顺序,每个整数像素位按照如下方式计算一次哈希值:根据原始像素值计算2×2大小块的哈希值;根据4个2×2大小的子块的哈希值计算4×4大小块的哈希值,如图3所示地;根据2个4×4大小的子块的哈希值分别计算8×4大小块的哈希值和4×8大小块的哈希值,如图3所示地;根据4个4×4大小的子块的哈希值计算8×8大小块的哈希值;根据4个8×8大小的子块的哈希值计算16×16大小块的哈希值;根据4个16×16大小的子块的哈希值计算32×32大小块的哈希值;根据4个32×32大小的子块的哈希值计算64×64大小块的哈希值;如果当前块不是简单块,则将当前块添加到哈希表中,其中,对于4×4、8×8、16×16、32×32、64×64大小的块,通过确定每行像素值或每列像素值是否都相同,来判断当前块是否是简单块;对于8×4大小块,通过判断水平方向上整数像素位上的3个4×4的块是否都是简单块,来判断当前块是否是简单块;对于4×8大小块,通过判断垂直方向上整数像素位上的3个4×4的块是否都是简单块,来判断当前块是否是简单块,如图4所示地。在方框503a中,该装置还包括用于基于所述哈希表,对当前预测块进行基于哈希的运动估计的单元。该单元被配置为执行如下操作:计算当前预测块的哈希值,并在哈希表中搜索匹配块;若当前预测块深度为0,如果找到匹配块且匹配块的重建图像质量不比期望值差,则跳过之后的率失真优化过程;如果当前预测块深度不为0并且匹配块被找到,则整像素运动估计和半像素运动估计过程被跳过;若找不到到匹配块,则跳过基于哈希的运动估计。本发明的上述实施例皆可实现为基于hevc的编码器。该基于hevc的编码器的内部结构可以如图1所示。本领域技术人员应该理解,该解码器可以实现为软件、硬件和/或固件。当用硬件实现时,视频编码器可以用通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其它可编程逻辑器件、分立门或晶体管逻辑器件、分立硬件组件或者设计为执行本文所述功能的其任意组合,来实现或执行。通用处理器可以是微处理器,但是可替换地,该处理器也可以是任何常规的处理器、控制器、微控制器或者状态机。处理器也可以实现为计算设备的组合,例如,dsp和微处理器的组合、多个微处理器的组合、一个或多个微处理器与dsp内核的组合或者任何其它此种结构。另外,至少一个处理器可以包括可操作以执行上述的一个或多个步骤和/或操作的一个或多个模块。当用asic、fpga等硬件电路来实现视频编码器时,其可以包括被配置为执行各种功能的各种电路块。本领域技术人员可以根据施加在整个系统上的各种约束条件来以各种方式设计和实现这些电路,来实现本发明所公开的各种功能。尽管前述公开文件论述了示例性方案和/或实施例,但应注意,在不背离由权利要求书定义的描述的方案和/或实施例的范围的情况下,可以在此做出许多变化和修改。而且,尽管以单数形式描述或要求的所述方案和/或实施例的要素,但也可以设想复数的情况,除非明确表示了限于单数。另外,任意方案和/或实施例的全部或部分都可以与任意其它方案和/或实施例的全部或部分结合使用,除非表明了有所不同。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1