[发明专利]HEVC/H.265的亚像素插值的SIMD快速实现方法有效
申请号: | 201410647903.9 | 申请日: | 2014-11-14 |
公开(公告)号: | CN104378641B | 公开(公告)日: | 2018-05-01 |
发明(设计)人: | 张小云;黎凌宇;高志勇;陈立 | 申请(专利权)人: | 上海交通大学 |
主分类号: | H04N19/51 | 分类号: | H04N19/51;H04N19/56 |
代理公司: | 上海汉声知识产权代理有限公司31236 | 代理人: | 徐红银,郭国中 |
地址: | 200240 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明提供了一种HEVC/H.265的亚像素插值的SIMD快速实现方法,首先在运动搜索过程中,采用简化的SIMD实现的四阶亚像素插值模块,获取亚像素运动矢量,利用微弱的性能损失换取明显的速度提升;然后在运动补偿计算当前像素块和参考像素块的残差时,采用原始八阶亚像素插值得到参考像素块,保证编码端和解码端一致,避免解码像素出现漂移。 | ||
搜索关键词: | hevc 265 像素 simd 快速 实现 方法 | ||
【主权项】:
一种HEVC/H.265的亚像素插值的单指令多数据技术(SIMD)快速实现方法,其特征在于,包括如下步骤:步骤1:将亚像素插值所需要的整像素数据从内存装载进寄存器,并将装载进寄存器的所述整像素数据视为矢量数据;步骤2:如果是水平方向亚像素插值直接跳到步骤4;步骤3:如果是竖直方向亚像素插值,将一组矢量数据两两逐级交织,实现数据转置;步骤4:根据当前亚像素插值点所需要的整像素数据,对矢量数据重新排列组合;步骤5:将矢量数据和对应的系数执行点乘计算,完成相邻整像素数据和对应系数乘积求和,其中亚像素插值阶数为四阶或八阶;步骤6:将点乘结果重新排列组合,并行执行右移舍入运算,转载进输出内存,跳至步骤2,直至完成当前像素块中所有的水平和竖直方向亚像素插值;步骤7:对于非水平竖直方向的亚像素插值,先执行水平方向的亚像素插值,对插值中间结果执行竖直方向的亚像素插值;以上步骤1‑7得到四阶亚像素插值函数或八阶亚像素插值函数;步骤8:在运动搜索中调用四阶亚像素插值函数,在运动补偿过程中调用八阶亚像素插值函数;所述步骤1中,将当前亚像素插值所依赖的整像素数据从内存装载进寄存器,为了从一个非对齐的内存地址装载一个64比特的寄存器数据,先用非对齐装载指令从当前非对齐的内存地址临近的两个对齐的内存地址中装载两个64比特的寄存器数据,然后利用一条对齐指令根据当前非对齐地址重新组合这两个寄存器数据,得到从非对齐内存地址中装载的寄存器数据;设亚像素插值块的大小为m行n列,这样得到m行n/8列矢量数据,每个矢量数据由8个水平方向相邻的整像素数据组成;所述步骤3中,为了将竖直方向的整像素数据装载成矢量数据,利用步骤1得到的由8个水平方向相邻的整像素数据组成的各矢量数据,将同一列的每八个矢量数据视为一组,对每组矢量数据进行转置,将矢量数据逐级两两交织,最后8个八元矢量的第k个元素组成第k个新的八元矢量,k=1,2…8,这样第k个新的矢量数据则装载了第k列的8行数据。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海交通大学,未经上海交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410647903.9/,转载请声明来源钻瓜专利网。
- 上一篇:一种开槽机
- 下一篇:用于拆分多段式钻杆的固定装置