[发明专利]一种与DMA相结合的ping-pong结构快速数据存取方法无效
申请号: | 201010138003.3 | 申请日: | 2010-03-30 |
公开(公告)号: | CN101820543A | 公开(公告)日: | 2010-09-01 |
发明(设计)人: | 贺才广;泮利;赵雄 | 申请(专利权)人: | 北京蓝色星河软件技术发展有限公司 |
主分类号: | H04N7/26 | 分类号: | H04N7/26;H04N7/32 |
代理公司: | 北京博圣通专利事务所 11238 | 代理人: | 杨非;黄薇 |
地址: | 100088 北京市海淀区北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 dma 相结合 ping pong 结构 快速 数据 存取 方法 | ||
技术领域
本发明涉及数字视频编解码技术,特别是指一种与DMA(图像处理芯片中的数据搬运方式)相结合的ping-pong(乒乓)结构快速数据存取方法。
背景技术
在视频监控领域中常用的数字录像设备DVR,通常由视频数据采集单元、图像处理单元、存储及显示设备构成。其中在图像处理单元通常采用可进行视频压缩标准软编程的DSP。
在视频编解码的过程中,一帧图像可以分为若干个大小一定的矩形区域,以矩形区域为处理单位,如在H.264标准中,每个矩形区域大小为16×16,称为一个宏块。对每一个宏块可以选择帧间或帧内编码算法。通过使用基于块的运动矢量,帧间编码可以充分利用不同图像之间的时域统计依赖性。帧内编码采用不同的空间预测模式,对一幅图像中的空间统计依赖性加以利用;对预测残差进行变换,去除变换块内部像素之间的空间相关性以获得进一步的压缩;对变换系数进行量化;最终形成了与源图像非常接近的近似图像,同时丢弃一些视觉上不重要的信息;最后,再将运动矢量或帧内预测模式与量化后的变换系数信息合并在一起,进行变长编码或算术编码。
在DSP芯片中,一般有片内内存和片外内存两种内存,片外内存容量大,但是存取速度慢;片内内存存取速度快,但是容量有限,需要合理利用。在编解码的每一个过程中,如帧间编码,在进行运动搜索时需要当前宏块的数据及参考帧数据,如果需要的数据在片外存储器上,对上述数据的读取就需要耗费大量的时间。这种访存密集型操作,占用编解码大部分时间,是编解码的主要瓶颈。
在DSP中一种常用的数据搬移方法是DMA,使用DMA进行数据搬移,可以不需要CPU的干预,启动后DMA自己在后台进行数据搬移。
传统方法流程,如图1所示:在传统方法中,在进行算法运算之前,需要等待数据搬运完成,在DSP中数据的存取过程是最耗时的操作,所以此等待耗费大量编解码时间,是编解码的瓶颈。
发明内容
本发明的目的在于提供一种与DMA相结合的ping-pong结构快速数据存取方法,以减少数据存取的次数,提高编解码效率。
本发明的技术方案是:
一种与DMA相结合的ping-pong结构快速数据存取方法,其特征在于:该方法应用于视频编码器和视频解码器中,利用DSP中片内外存储器及DMA数据搬移方法,在片内存储器中开辟两块较小的ping-pong区域,将需要处理的数据在处理之前使用DMA提前准备好放在ping-pong buffer中,以节省处理之前数据搬运的等待时间,提高编解码效率。
一种与DMA相结合的ping-pong结构快速数据存取方法,其方法步骤包括:
步骤一、在片内存储器上开辟ping-pong buffer区域:
A)、根据具体的算法,计算需要的ping-pong buffer的大小;
B)、在片内存储器开辟两块大小为M×N的内存区域,一个为pingbuffer,一个为pong buffer;
步骤二、往ping buffer中准备数据:
C)、首先,往ping buffer中使用DMA搬运第一个需要处理的宏块的数据;
D)、等待ping buffer中数据搬运完成;
步骤三、ping-pong buffer数据处理与准备并行过程:
E)、对ping buffer中的当前宏块数据进行处理,同时往pong buffer中使用DMA搬运下一个宏块需要的数据。由于DMA启动后可以不受CPU干预,自动在后台进行数据搬运,所以当前宏块的处理过程和下一个宏块数据的准备过程,这两个过程可以并行执行;
F)、等待ping buffer中数据处理完成和pong buffer中宏块需要的数据搬运完成,此等待过程并非两者的累加,而为两者中时间较长的一方;
G)、对下一个宏块进行处理,也即处理pong buffer中的数据;同时往ping buffer中准备再下一个宏块需要的数据;并且pong buffer中数据的处理过程和ping buffer的数据搬运过程两者并行执行;
H)、等待ping buffer中数据搬运完成和pong buffer中数据处理完成,此等待过程并非两者的累加,而为两者中时间较长的一方;
I)、对于一帧数据重复E~H的过程;
步骤四、处理最后一个ping buffer或pong buffer中的数据:
J)、等待最后一个ping buffer或pong buffer中数据准备完成;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京蓝色星河软件技术发展有限公司,未经北京蓝色星河软件技术发展有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010138003.3/2.html,转载请声明来源钻瓜专利网。