[发明专利]基于Linux系统的PCM流捕获的实现方法无效
申请号: | 200910119178.7 | 申请日: | 2009-03-06 |
公开(公告)号: | CN101826031A | 公开(公告)日: | 2010-09-08 |
发明(设计)人: | 王钟 | 申请(专利权)人: | 王钟 |
主分类号: | G06F9/46 | 分类号: | G06F9/46 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 110171 辽*** | 国省代码: | 辽宁;21 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 linux 系统 pcm 捕获 实现 方法 | ||
技术领域
本发明涉及Linux操作系统,具体涉及在Linux操作系统中捕获PCM流的实现方法。
背景技术
很多Linux下的音频通信软件支持多种音频编解码,这些音频数据在写入声卡之前会被解码成PCM格式。有的情况下,这些音频数据在被解码之前一直处于加密状态,所以只有通过提取声卡中的PCM数据才可以得到这些音频数据并进行处理。由于音频通信对延迟十分敏感,而且经常要求多路通信并发进行,于是这些写入声卡的PCM数据只有被尽可能及时的提取出来,才能将延迟减小到最小。同时,在Linux操作系统中,PCM数据是通过设备驱动程序写入硬件设备的,用户空间进程无法实现这个功能,于是本文提出了一种利用Linux可加载声卡驱动模块的设计方法,采用零拷贝技术,减少了内核空间与用户空间之间的数据拷贝,使得应用程序可以高效的捕获写入声卡设备中的PCM数据。
零拷贝是实现主机或路由器等设备高速网络接口的主要技术。零拷贝技术通过减少或消除关键通信路径影响速度的操作,降低数据传输的操作系统开销和协议处理开销,从而有效提高通信性能,实现高速数据传输。本文仅指降低数据传输的操作系统开销。
零拷贝(zero-copy)的基本思想是:数据从设备到用户程序空间传递的过程中,减少数据拷贝次数,减少系统调用,实现CPU的零参与,彻底消除CPU在这方面的负载。实现零拷贝用到的最主要技术是DMA数据传输技术和内存区域映射技术,本文使用内存映射技术。传统的数据处理,需要经过设备到内核空间,内核空间到用户空间这两次拷贝,同时还需要经历用户向系统发出的系统调用。而零拷贝技术则首先在用户空间建立一块缓存区域,并将其映射到内核空间,用户空间程序直接对这块内存进行访问,从而减少了系统内核向用户空间的内存拷贝,同时减少了系统调用的开销。
图1说明了普通拷贝与零拷贝的区别。应用零拷贝技术使每次读取数据减少了一次内核到用户空间的拷贝,拷贝次数减少了50%,如果读操作的频率很高,使用零拷贝技术可以极大的提高读取数据的效率。
发明内容
本发明提出了一种基于Linux操作系统的高效PCM数据捕获机制,即利用网络缓存中常用的零拷贝技术,提高PCM数据的捕获效率。
为了解决上述问题,本发明提供了一种基于Linux操作系统的PCM流捕获的方法,包括:
a目标机在调用用户进程时打开DSP设备文件,并将PCM流写入内核缓冲区;
b将内核缓冲区所在内存映射到用户空间;
c所述测试主机对用户空间特定区域进行读取操作。
进一步的,所述步骤b具体是指:通过将内核中PCM数据所在缓冲区映射到用户空间的方法,实现零
拷贝技术,减少数据拷贝的次数,并使用户空间可以访问内核中的PCM数据。
进一步的,所述步骤c具体是指:在内存映射空间的起始位置分配特定的数据结构,使内核与用户空间实现读写操作的同步,用户空间读取完毕之后通知内核,使内核中的环形缓冲区可以重新向次区域写入PCM数据。
进一步的,所述特定的数据结构包含如下两个信息:用于空间已读取PCM数据在内核缓冲区中的偏移、用户空间已读取PCM数据的字节数。
采用上述方案,本发明利用零拷贝技术结合非阻塞的数据读取,可以实现并优化PCM数据的捕获,在Linux系统上可用来破解和提取加密的音频数据。
附图说明
图1为现有技术的零拷贝示意图
图2为本发明的内存映射区域数据结构示意图
图3为本发明方法的流程图
具体实施方式
以下结合附图和具体实例,对本发明进行详细说明。
本发明通过在驱动程序中使用零拷贝技术来减少数据在内核空间和用户空间移动的次数,实现的方法是,在驱动程序中实现与mmap系统调用相关联的系统调用的回调函数,在这个函数中使用remap_pfn_range函数将内核空间中的缓存区域映射到用户空间,应用程序在捕获PCM数据之前使用mmap系统调用,就可以将映射区域中的PCM数据读取出来。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于王钟,未经王钟许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910119178.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:基于排序仿真技术的视频搜索引擎
- 下一篇:一种扩展服务器导轨使用范围的方法