The invention discloses a method comprising the steps of estimation, can full search motion programming based on parallel processors in programmable parallel thread group processor, including thread thread group; N * N the current frame macro block is divided into a plurality of sub blocks of the current frame, each current frame sub block and thread mapping one by one the corresponding; the current frame macroblock can be loaded into the shared memory programming parallel processor; the current frame macroblock search, direct shared memory block of current frame data through the thread call; the N is a natural number. In the invention, each mapping macroblocks of the current frame to a GPU thread group, which can easily be shared memory of the macroblock data is loaded into the GPU chip, the current macroblock data sharing within the thread group. So, handling the entire process of the search area in the corresponding macroblock, no need to repeat from memory to load the data, thereby saving valuable on-chip memory bandwidth.
【技术实现步骤摘要】
一种基于可编程并行处理器的全搜索运动估计方法
本专利技术涉及图像压缩领域,更具体的说,涉及一种基于可编程并行处理器的全搜索运动估计方法。
技术介绍
在基于运动补偿的视频编码系统中,运动估计是计算量最大、访存带宽要求最高的环节。它往往通过在参考帧中寻找相对于当前宏块的最优匹配块,来降低视频数据的时间域相关性,从而达到压缩的目的。由于帧尺寸大、搜索范围大、参考帧数量多等原因,高质量视频编码系统中的运动搜索需要极大的访存带宽。图形处理器(GPU)是一种新兴的并行计算设备,相对于普通多核CPU计算的有限并行能力而言,其大规模数据并行的特点,有助于解决高质量视频编码算法,尤其是整像素运动估计的全搜索算法的巨大计算量问题。相对于CPU,其优势在于单位时间理论计算能力,而劣势在于其片外访存带宽的瓶颈。以H.264的整像素运动估计为例,对当前帧的每一个16x16大小的宏块(MB),在其参考帧内都有对应的运动估计搜索范围,每一个搜索位置都对应于宏块的一个运动向量(motionvector,以下简称MV)。而每一个宏块又可以分为16x8,8x16,8x8,8x4,4x8,4x4大小的子块。仅以一个4x4子块的整像素全搜索为例,假设参考帧数仅为1,对一幅长为width,宽为heigtht,搜索宽度为search_range的视频帧,需要搜索的位置N=width/4*height/4*search_range2。以1080P高清视频,搜索宽度为32的典型情况为例,一帧视频的全搜索量将达132710400之多!由于全搜索算法的本质是基于宏块的,因此非常适合GPU的并行实现。但是算法 ...
【技术保护点】
一种基于可编程并行处理器的全搜索运动估计方法,其特征在于,包括步骤:在可编程并行处理器中建立线程组,线程组包括线程;将N×N的当前帧宏块分割成多个当前帧子块,每个当前帧子块与线程建立一一对应的映射关系;每个线程将对应的当前帧子块加载到可编程并行处理器的共享内存;所述N为自然数;所述全搜索运动估计方法还包括参考帧的读取步骤:每个当前帧宏块在参考帧中都有一个对应的对位宏块,以对位宏块为中心,建立M×M的搜索块,所述M为大于N的自然数;将搜索块分割成多个搜索子块,搜索子块与线程建立一一对应的映射关系;每个线程将对应的搜索子块加载到可编程并行处理器的共享内存;相邻两个搜索块重叠,形成重叠区,非重叠部分形成增量区;对于每一行的当前帧宏块,每个线程组先从纹理内存读取第一个当前帧对应的搜索块数据;后续当前帧宏块仅从纹理内存读取搜索块的增量区数据;同时将该增量区对应的数据存储到共享内存,作为下一个当前帧宏块搜索的重叠区数据。
【技术特征摘要】
1.一种基于可编程并行处理器的全搜索运动估计方法,其特征在于,包括步骤:在可编程并行处理器中建立线程组,线程组包括线程;将N×N的当前帧宏块分割成多个当前帧子块,每个当前帧子块与线程建立一一对应的映射关系;每个线程将对应的当前帧子块加载到可编程并行处理器的共享内存;所述N为自然数;所述全搜索运动估计方法还包括参考帧的读取步骤:每个当前帧宏块在参考帧中都有一个对应的对位宏块,以对位宏块为中心,建立M×M的搜索块,所述M为大于N的自然数;将搜索块分割成多个搜索子块,搜索子块与线程建立一一对应的映射关系;每个线程将对应的搜索子块加载到可编程并行处理器的共享内存;相邻两个搜索块重叠,形成重叠区,非重叠部分形成增量区;对于每一行的当前帧宏块,每个线程组先从纹理内存读取第一个当前帧对应的搜索块数据;后续当前帧宏块仅从纹理内存读取搜索块的增量区数据;同时将该增量区对应的数据存储到共享内存,作为下一个当前帧宏块搜索的重叠区数据。2.如权利要求1所述的一种基于可编程并行处理器的全搜索运动估计方法,其特征在于,所述全搜索运动估计方法还包括宏块的全搜索运算步骤:所述对位宏块在搜索块中有多种二维位移量,每种位移量形成一个参考宏块,所有参考宏块的集合形成一个搜索范围;所述每个线程至少对一个参考宏块进行搜索运算,得出局部最优结果;其对应的参考宏块的集合构成一个搜索片区,汇总所有线程的局部最优结果,然后计算当前帧宏块在整个搜索块内的最优的搜索结果。3.如权利要求2所述的一种基于可编程并行处理器的全搜索运动估计方法,其特征在于,可编程并行处理器包括第一运算内核和第二运算内核,在...
【专利技术属性】
技术研发人员:隆刚,金明,史方,
申请(专利权)人:同观科技深圳有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。