CN107293316A - 一种音频数据处理方法及装置 - Google Patents
一种音频数据处理方法及装置 Download PDFInfo
- Publication number
- CN107293316A CN107293316A CN201610230013.7A CN201610230013A CN107293316A CN 107293316 A CN107293316 A CN 107293316A CN 201610230013 A CN201610230013 A CN 201610230013A CN 107293316 A CN107293316 A CN 107293316A
- Authority
- CN
- China
- Prior art keywords
- buffering area
- rdma
- threshold value
- pointer
- read
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 15
- 230000003139 buffering effect Effects 0.000 claims abstract description 123
- 238000012545 processing Methods 0.000 claims abstract description 25
- 238000001514 detection method Methods 0.000 claims abstract description 16
- 230000004913 activation Effects 0.000 claims abstract description 14
- 238000000034 method Methods 0.000 claims description 16
- 230000008569 process Effects 0.000 claims description 5
- 230000010365 information processing Effects 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 241001269238 Data Species 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10527—Audio or video recording; Data buffering arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Information Transfer Systems (AREA)
- Circuits Of Receivers In General (AREA)
Abstract
本发明实施例提供了一种音频数据处理方法及装置,涉及信息处理技术领域,解决了终端在播放音频数据时出现卡顿现象的问题。该音频数据处理方法包括:将音频数据存储至直接内存写入WDMA的第一缓冲区中;检测第一缓冲区中的写指针与读指针的差值是否满足预定条件;若第一缓冲区中的写指针与读指针的差值满足预定条件,则触发阈值中断,根据阈值中断读取读指针和所述写指针之间的音频数据,将音频数据写入直接内存读取RDMA的第二缓冲区;当确定阈值中断的触发次数等于第一预定阈值时,启动RDMA,读取RDMA的第二缓冲区中的音频数据,第一预定阈值大于等于2。本发明用于音频数据的处理。
Description
技术领域
本发明涉及信息处理技术领域,尤其涉及一种音频数据处理方法及装置。
背景技术
随着电子技术的不断发展,现有的电视、电脑、移动终端(如手机、Pad等)都具有播放音频数据的功能,而为了实现对音频数据的实时播放,需要不断地捕获音频数据,并同时进行读取和播放。
在现有技术中,终端通过WDMA捕获音频数据,采用第一缓冲区对捕获的音频数据进行存储,该环形缓冲区包括写指针和读指针;终端采用第二缓冲区对捕获的音频数据进行管理,该第二缓冲区也包括写指针和读指针。终端通过RDMA读取第二缓冲区中的音频数据进而实现音频数据的播放。具体的过程参照图1所示,终端通过WDMA中的写指针将捕获的音频数据写入到第一缓冲区,然后读指针从起始位置开始读取数据(图中WDMA对应的数据1),当WDMA中的写指针和读指针之间有阈值时,则触发阈值中断,RDMA的写指针将WDMA的第一缓存区中的数据1对应的起始地址和数据长度写入到第二缓存区的item0(图中虚线箭头所指区域),RDMA的读指针读取item0进而实现音频数据的播放。
但是,当WDMA中的写指针和读指针都移动到图中位置(虚线箭头),这时,写指针与读指针之间有阈值但还未产生中断,如果此时有外界中断产生,虽然终端已通过WDMA获取数据2,但由于上述的阈值中断未产生,RDMA的写指针未将该数据对应的地址和数据长度写入到第二缓存区的item 1(item 1中无数据),因此RDMA的读指针无数据可读,从而造成音频数据播放出现卡顿的现象(例如在播放音乐时,出现的播放滞帧,也就是通常人们所说的“卡”)。
发明内容
本发明的实施例提供一种音频数据处理方法及装置,解决了终端在播放音频数据时出现卡顿现象的问题。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供一种音频数据处理方法,包括:
将音频数据存储至直接内存写入WDMA的第一缓冲区中;
检测所述第一缓冲区中的写指针与读指针的差值是否满足预定条件;
若所述第一缓冲区中的写指针与读指针的差值满足所述预定条件,则触发阈值中断,根据所述阈值中断读取所述读指针和所述写指针之间的音频数据,将所述音频数据写入直接内存读取RDMA的第二缓冲区;
当确定所述阈值中断的触发次数等于第一预定阈值时,启动RDMA,读取所述RDMA的第二缓冲区中的音频数据,所述第一预定阈值大于等于2。
第二方面,提供一种音频数据处理装置,所述装置包括:
存储模块,用于将音频数据存储至直接内存写入WDMA的第一缓冲区中;
检测模块,用于检测所述第一缓冲区中的写指针与读指针的差值是否满足预定条件;
处理模块,用于若所述检测模块检测到所述第一缓冲区中的写指针与读指针的差值满足所述预定条件,触发阈值中断,根据所述阈值中断读取所述读指针和所述写指针之间的音频数据,将所述音频数据写入直接内存读取RDMA的第二缓冲区;
启动模块,用于当确定所述阈值中断的触发次数等于第一预定阈值时,启动RDMA,读取所述RDMA的第二缓冲区中的音频数据,所述第一预定阈值大于等于2。
本发明实施例提供了一种音频数据处理方法及装置,通过检测第一缓冲区中的写指针与读指针的差值是否满足预定条件;若第一缓冲区中的写指针与读指针的差值满足所述预定条件,则触发阈值中断,根据阈值中断读取读指针和写指针之间的音频数据,将音频数据写入RDMA的第二缓冲区;当确定阈值中断的触发次数等于第一预定阈值时,启动RDMA,读取RDMA的第二缓冲区中的音频数据,第一预定阈值大于等于2。
相比于现有技术,本发明实施例中当确定阈值中断的触发次数等于第一预定阈值的情况下,启动RDMA,即RDMA中的读指针开始读取音频数据。由于在启动RDMA之前,写指针已将音频数据至少一次写入第二缓冲区,因此RDMA中的写指针与读指针之间有一定的音频数据间隔,可以保证读指针一直有音频数据可读,从而避免了现有技术中出现音频数据卡顿的现象。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的现有技术中存在音频数据播放卡顿的示意图;
图2为本发明实施例提供的一种音频数据处理方法的方法流程示意图;
图3为本发明实施例提供的WDMA的wpt、rpt及其维护的RingBuffer的逻辑关系示意图;
图4为本发明实施例提供的RDMA的wpt、rpt及其维护的RingBuffer的逻辑关系示意图;
图5为本发明实施例提供的初始化WDMA的示意图;
图6为本发明实施例提供的初始化RDMA的示意图;
图7为本发明实施例提供的一种音频数据处理装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的音频数据处理方法的执行主体可以为音频数据处理装置,或者用于执行上述音频数据处理方法的终端。具体的,该终端可以为智能电视、智能电视终端、高清机顶盒、平板电脑、笔记本电脑、超级移动个人计算机(英文:Ultra-mobile Personal Computer,简称:UMPC)、上网本、个人数字助理(英文:Personal Digital Assistant,简称:PDA)等终端。其中,音频数据处理装置可以为上述终端中的中央处理器(英文:Central Processing Unit,简称:CPU)或者可以为上述终端的中的控制单元或者功能模块。示例性的,该音频数据处理装置可以是高清终端中用于处理画质的后端画质处理芯片(例如,FRC(英文:Frame Rate Conversion,帧频转换)芯片),且相对于该高清终端中的主SOC(英文:System on Chip,片上系统)芯片,该音频数据处理装置可以称为该高清终端的从芯片。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
为了便于清楚描述本发明实施例的技术方案,在本发明的实施例中,采用了“第一”、“第二”等字样对功能或作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定。
本发明的实施例提供一种音频数据处理方法,如图2所示,该方法包括如下步骤:
101、音频数据处理装置将音频数据存储至直接内存写入WDMA的第一缓冲区中。
示例性的,在步骤101之前,还包括:音频数据处理装置获取音频数据。
本发明实施例以应用于电视系统领域为例,由于现有的电视通路包括模拟通路、数字通路和多媒体通路,模拟通路包括ATV Demod通路、AV通路、分量通路、VGA(英文全称:Video Graphics Array,中文:视频图形阵列)通路,数字通路包括HDMI(英文全称:High DefinitionMultimedia Interface,中文:高清晰度多媒体接口)通路等;多媒体通路包括DMP(英文全称:Digital Media Player,中文:数字媒体播放器)等,因此,该音频数据可以为来源于多个电视通路的脉冲编码调制(英文全称:Pulse Code Modulation,简称:PCM)的音频数据。
具体的,本发明实施例采用直接内存写入(英文全称:Write DirectMemory Access,简称:WDMA)来捕获音频数据,其中,WDMA会管理一段物理上连续的内存区域,该内存区域用于暂存WDMA实时捕获到的所在电视通路的音频数据。在电视系统领域中,音频数据会通过AXI(Advanced eXtensible Interface)总线存储在与WDMA对应的第一缓冲区中。其中,AXI是一种总线协议,是一种面向高性能、高宽带、低延迟的片内总线。
示例性的上述的第一缓冲区中包括写指针(英文:write pointer,简称:wpt)和读指针(英文:read pointer,简称:rpt),该第一缓冲区可以为第一环形缓冲区(简称:Ring Buffer)。其中,wpt表示捕获到的音频数据在Ring Buffer的存储位置,rpt表示读取的音频数据在RingBuffer的存储位置。因此,WDMA的音频捕获及处理工作主要是依靠其写指针和读指针来完成的。其中,wpt主要由WDMA自己维护,rpt主要由CPU控制。
具体的,参照图3所示,为WDMA的wpt、rpt及其维护的Ring Buffer的逻辑关系示意图。其中,st_addr(start address)表示Ring Buffer的起始地址(或首地址),end表示Ring Buffer的尾地址。初始化时,wpt和rpt均为0,即相当于对应Ring Buffer的起始地址。当WDMA捕获到音频数据时,捕获到的音频数据会从wpt的起始地址进行存储,另外,由于第一缓冲区为Ring Buffer,因此,当wpt到达该Ring Buffer的尾地址时,会自动跳转到Ring Buffer的首地址,继续从Ring Buffer的起始位置开始存储音频数据,如此以Ring Buffer式管理捕获到的音频数据的存储空间,可以有效解决用于捕获的内存空间浪费的问题,同时,也取消了音频捕获的时间限制,支持无限时间长度的音频捕获。
102、音频数据处理装置检测第一缓冲区中的写指针与读指针的差值是否满足预定条件。
示例性的,上述的预定条件为第一缓冲区中的写指针与读指针的差值大于等于第二预设阈值。其中,该第二预设阈值小于第一缓冲区的长度。可选的,第二预设阈值的大小可以根据第一缓冲区的长度进行设定。示例的,若第一缓冲区的长度为M,则可以将第二预设阈值设置为第一缓冲区的长度的1/M。
103、若第一缓冲区中的写指针与读指针的差值满足预定条件,则触发阈值中断;根据阈值中断读取读指针和所述写指针之间的音频数据,将音频数据写入RDMA的第二缓冲区。
示例性的,本发明实施例通过直接内存读取(英文:Read DirectMemory Access,简称:RDMA)来进行音频数据的播放,上述的RDMA的第二缓冲区中包括wpt和rpt,该第二缓冲区可以为Ring Buffer。其中,wpt表示将读取音频数据写入Ring Buffer的位置,rpt表示读取音频数据在Ring Buffer的存储位置。因此,RDMA的音频数据读取工作主要是依靠其wpt和rpt来完成的。其中,wpt主要由CPU(或软件)控制,rpt由RDMA自己维护。另外,Ring Buffer是一段可以存储音频数据的数据结构,该数据结构是由item控制节点组成的。
具体的,RDMA的item、wpt、rpt及其Ring Buffer的关系如图4所示。该item主要是用来控制RDMA读取音频数据的,其中,每个item由64bit组成,第一个32bit,即第一个字,为st_addr(start address),指向RDMA要读取的音频数据存储于内存的物理地址(上述WDMA的wpt所指向的第一缓冲区的存储音频数据位置的地址)。第二个32bit,即第二个字,主要包括length成员,该length表示该要读取的音频数据的长度(上述WDMA的wpt与rpt之间的音频数据)。另外,item的个数由CPU决定,每个item的start address以及lengh等信息,也由CPU实时更新。另外,由于第二缓冲区为Ring Buffer,因此,需要CPU进行一下判断:假设Ring Buffer中共20个item,则位置1对应第一个item(记为item0),位置2对应第二个item(记为item1),位置20对应第二十个item(记为item19)。若wpt之前所处的位置为item19所在的位置,那么,此时需要CPU配置RDMA的wpt为Ring Buffer的第一个item(item0)所在位置。如果wpt之前所处的位置并非item19所在的位置,则CPU只需简单的配置RDMA的wpt为其更新之前紧接着的下一个item所处的位置。
示例性的,当第一缓冲区中的写指针与读指针的差值大于等于第二预设阈值,则触发阈值中断,第一缓冲区的读指针读取第一缓冲区中的写指针写入的音频数据,同时RDMA中的写指针将该音频数据写入RDMA的第二缓冲区内,以使的当启动RDMA时,RDMA中的读指针可以读取该音频数据进而可以实现音频数据的播放。
104、当确定阈值中断的触发次数等于第一预定阈值时,启动RDMA,读取RDMA的第二缓冲区中的音频数据。
本实施例中的第一预定阈值大于等于2,当第一预定阈值大于2时,使得RDMA的写指针已经将音频数据写入一次到RDMA的第二缓冲区中,从而保证RDMA的读指针与写指针之间有一定的音频数据间隔。示例性的,上述阈值中断的触发次数的初始值设为0,每执行一次中断该阈值中断的触发次数加1。
示例性的,本实施例中的RDMA中包括启动标志位,该启动标志位为0,表示未启动RDMA;该启动标志位为1,表示启动RDMA。在初始化的过程中将该启动标志位设为0,当上述确定阈值中断的触发次数等于第一预定阈值,将RDMA中的启动标志位设为1。
示例性的,上述步骤103之后,还包括如下具体步骤:
103a、当确定阈值中断的触发次数不等于第一预定阈值时,重新检测第一缓冲区中的写指针与读指针的差值是否满足预定条件。
示例性的,当上述确定的阈值中断的触发次数不等于第一预定阈值时,可以根据阈值中断读取读指针和写指针之间的音频数据,通过RDMA的写指针将音频数据写入RDMA的第二缓冲区,重新检测第一缓冲区中的写指针与读指针的差值是否大于等于预设阈值,直到上述的阈值中断的触发次数等于第一预定阈值时,才可停止检测第一缓冲区中的写指针与读指针的差值是否大于等于第一预设阈值。
本发明实施例提供了一种音频数据处理方法,通过检测第一缓冲区中的写指针与读指针的差值是否满足预定条件;若第一缓冲区中的写指针与读指针的差值满足所述预定条件,则触发阈值中断,根据阈值中断读取读指针和写指针之间的音频数据,将音频数据写入RDMA的第二缓冲区;当确定阈值中断的触发次数等于第一预定阈值时,启动RDMA,读取RDMA的第二缓冲区中的音频数据,第一预定阈值大于等于2。
相比于现有技术,本发明实施例中当确定阈值中断的触发次数等于第一预定阈值的情况下,启动RDMA,即RDMA中的读指针开始读取音频数据。由于在启动RDMA之前,写指针已将音频数据至少一次写入第二缓冲区,因此RDMA中的写指针与读指针之间有一定的音频数据间隔,可以保证读指针一直有音频数据可读,从而避免了现有技术中出现音频数据卡顿的现象。
本实施例中音频数据处理装置依据WDMA实现对音频数据捕获,依据RDMA实现对捕获的音频数据进行读取,进而实现音频播放。因此,在使用WDMA和RDMA时,需要对二者进行初始化。具体的,在上述步骤101之前,还包括初始化WDMA和RDMA,其初始化的具体步骤如下:
如图5所示,初始化WDMA具体包括:
101a1、设定WDMA对应的第一缓冲区的起始地址。
其中,WDMA捕获到的音频数据将暂存于该第一缓冲区的起始地址的内存空间中。
101a2、设定第一缓冲区的长度。
通常,将第一缓冲区的长度配置为1152的倍数,待捕获的音频数据的单位大小设置为1152*2*2(即一帧MPEG2音频数据的大小)个字节。其中,1152为采样的点数,第一个2表示每个采样点2字节大小,第二个2表示每个音频采样点包括2个声道(左声道和右声道)。示例的,可以将第一缓冲区的长度设置为80*(1152*2*2)个字节。
101a3、设定WDMA的第二预设阈值。
当WDMA的wpt与rpt的差值为该第二预设阈值时,即触发阈值中断。CPU响应该中断后,可以实时地将该笔音频数据拷贝到文件中存储,也可以调用音频读取模块将该笔音频数据读取,进行一系列音频后处理动作后再调用音频播放模块,实现播放。通常,将第二预设阈值的大小设置为WDMA对应的第一缓冲区的N等分。根据步骤102中所示例的,可以将第二预设阈值设置为10*(1152*2*2)个字节,即第一缓冲区长度的八分之一。
101a4、设定第一缓冲区的读指针。
具体的,设置WDMA对应的第一缓冲区的rpt,初始化时,该rpt会自动关联到设定的第一缓冲区的起始地址。其中,wpt由WDMA自己维护,无需CPU配置,初始化从其起始地址开始捕获音频数据。
101a5、将WDMA的阈值中断次数重置为0。
101a6、启动WDMA。
最后,重置WDMA,启动WDMA,使WDMA开始工作
如图6所示,初始化RDMA具体包括:
101b1、关闭RDMA的阈值中断。
其中,上述阈值中断表示RDMA的读、写指针的差值为几个item时触发的中断,以提醒软件音频数据不够播了,需要软件及时的配置新的item以指向新的待播音频数据,以免出现由于暂时无数据可读而出现的声音卡顿,甚至无声等问题。
101b2、设定RDMA对应的第二缓冲区的起始地址。
其中,第二缓冲区的起始地址为将音频数据存储于内存中的位置。
101b3、设定RDMA的预设阈值。
具体的,若预设阈值为1,则表示开启中断;若预设阈值为0,则表示关闭中断。当将预设阈值设为1且RDMA的wpt与其rpt的差值大于等于1时,则会触发该阈值中断,执行该阈值中断的处理程序,比如及时配置新的item给RDMA。
101b4、设定第二缓冲区的写指针。
其中,该第二缓冲区的写指针为RDMA本身所在内存位置,同时,该位置也是item0的位置。
101b5、设定第二缓冲区的长度。
其中,该第二缓冲区的长度为item的个数,例如,可以将tem的个数设为20。
101b6、设置RDMA的启动标识为0。
将RDMA的启动标识设为0,表示在初始化的过程中不启动RDMA。
下面将基于上述的一种音频数据处理方法的相关描述对本发明实施例提供的一种音频数据处理装置进行介绍。以下实施例中与上述实施例相关的技术术语、概念等的说明可以参照上述的实施例,这里不再赘述。
本发明实施例提供一种音频数据处理装置,如图7所示,该音频数据处理装置2包括存储模块21、检测模块22、处理模块23以及启动模块24,其中:
存储模块21用于将音频数据存储至直接内存写入WDMA的第一缓冲区中;
检测模块22用于检测第一缓冲区中的写指针与读指针的差值是否满足预定条件;
处理模块23用于若检测模块22检测到第一缓冲区中的写指针与读指针的差值满足所述预定条件,则触发阈值中断,根据阈值中断读取读指针和写指针之间的音频数据,将音频数据写入RDMA的第二缓冲区;
启动模块24用于当确定阈值中断的触发次数等于第一预定阈值时,启动RDMA,读取RDMA的第二缓冲区中的音频数据,第一预定阈值大于等于2。
可选的,上述检测模块22还用于当确定阈值中断的触发次数不等于第一预定阈值时,重新检测第一缓冲区中的写指针与读指针的差值是否满足预定条件。
示例性的,上述检测模块22具体用于:
检测第一缓冲区中的写指针与读指针的差值大于等于第二预定阈值,第二预设阈值小于第一缓冲区的长度。
如图7所示,该音频数据处理装置2还包括:初始化模块25
初始化模块25用于初始化WDMA,初始化WDMA过程至少包括如下步骤:
设定WDMA对应的第一缓冲区的起始地址;
设定第一缓冲区的长度;
设定WDMA的第二预定阈值;
设定第一缓冲区的读指针;
将WDMA的阈值中断次数重置为0;
启动WDMA。
初始化模块25还用于初始化RDMA,初始化RDMA至少包括如下步骤:
关闭RDMA的阈值中断;
设定RDMA对应的第二缓冲区的起始地址;
设定RDMA的第二预定阈值;
设定第二缓冲区的写指针;
设定第二缓冲区的长度;
设置RDMA的启动标识为0。
本发明实施例提供了一种音频数据处理装置,通过检测第一缓冲区中的写指针与读指针的差值是否满足预定条件;若第一缓冲区中的写指针与读指针的差值满足所述预定条件,则触发阈值中断,根据阈值中断读取读指针和写指针之间的音频数据,将音频数据写入RDMA的第二缓冲区;当确定阈值中断的触发次数等于第一预定阈值时,启动RDMA,读取RDMA的第二缓冲区中的音频数据,第一预定阈值大于等于2。
相比于现有技术,本发明实施例中当确定阈值中断的触发次数等于第一预定阈值的情况下,启动RDMA,即RDMA中的读指针开始读取音频数据。由于在启动RDMA之前,写指针已将音频数据至少一次写入第二缓冲区,因此RDMA中的写指针与读指针之间有一定的音频数据间隔,可以保证读指针一直有音频数据可读,从而避免了现有技术中出现音频数据卡顿的现象。
在本申请所提供的几个实施例中,应该理解到,所揭露的终端和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理包括,也可以两个或两个以上模块集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种音频数据处理方法,其特征在于,包括:
将音频数据存储至直接内存写入WDMA的第一缓冲区中;
检测所述第一缓冲区中的写指针与读指针的差值是否满足预定条件;
若所述第一缓冲区中的写指针与读指针的差值满足所述预定条件,则触发阈值中断,根据所述阈值中断读取所述读指针和所述写指针之间的音频数据,将所述音频数据写入直接内存读取RDMA的第二缓冲区;
当确定所述阈值中断的触发次数等于第一预定阈值时,启动RDMA,读取所述RDMA的第二缓冲区中的音频数据,所述第一预定阈值大于等于2。
2.根据权利要求1所述的方法,其特征在于,所述若所述第一缓冲区中的写指针与读指针的差值满足所述预定条件,则触发阈值中断,根据所述阈值中断读取所述读指针和所述写指针之间的音频数据,将所述音频数据写入所述RDMA的第二缓冲区之后,所述方法还包括:
当确定所述阈值中断的触发次数不等于所述第一预定阈值时,重新检测所述第一缓冲区中的写指针与读指针的差值是否满足预定条件。
3.根据权利要求1或2所述的方法,其特征在于,所述检测所述第一缓冲区中的写指针与读指针的差值是否满足预定条件具体包括:
检测所述第一缓冲区中的写指针与读指针的差值大于等于第二预定阈值,所述第二预设阈值小于所述第一缓冲区的长度。
4.根据权利要求1所述的方法,其特征在于,所述将音频数据存储至直接内存写入WDMA的第一缓冲区中之前,所述方法还包括:
初始化所述WDMA,至少包括如下步骤:
设定所述WDMA对应的第一缓冲区的起始地址;
设定所述第一缓冲区的长度;
设定所述WDMA的第二预定阈值;
设定所述第一缓冲区的读指针;
将所述WDMA的阈值中断次数重置为0;
启动所述WDMA。
5.根据权利要求1所述的方法,其特征在于,所述将音频数据存储至直接内存写入WDMA的第一缓冲区中之前,所述方法还包括:
初始化所述RDMA,至少包括如下步骤:
关闭所述RDMA的阈值中断;
设定所述RDMA对应的第二缓冲区的起始地址;
设定所述RDMA的第二预定阈值;
设定所述第二缓冲区的写指针;
设定所述第二缓冲区的长度;
设置所述RDMA的启动标识为0。
6.一种音频数据处理装置,其特征在于,所述装置包括:
存储模块,用于将音频数据存储至直接内存写入WDMA的第一缓冲区中;
检测模块,用于检测所述第一缓冲区中的写指针与读指针的差值是否满足预定条件;
处理模块,用于若所述检测模块检测到所述第一缓冲区中的写指针与读指针的差值满足所述预定条件,触发阈值中断,根据所述阈值中断读取所述读指针和所述写指针之间的音频数据,将所述音频数据写入直接内存读取RDMA的第二缓冲区;
启动模块,用于当确定所述阈值中断的触发次数等于第一预定阈值时,启动RDMA,读取所述RDMA的第二缓冲区中的音频数据,所述第一预定阈值大于等于2且小于所述第二缓冲区的长度。
7.根据权利要求6所述的装置,其特征在于,
所述检测模块,还用于当确定所述阈值中断的触发次数不等于所述第一预定阈值时,重新检测所述第一缓冲区中的写指针与读指针的差值是否满足预定条件。
8.根据权利要求6或7所述的装置,其特征在于,所述检测模块具体用于:
检测所述第一缓冲区中的写指针与读指针的差值大于等于第二预定阈值,所述第二预设阈值小于所述第一缓冲区的长度。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
初始化模块,用于初始化所述WDMA,所述初始化所述WDMA过程至少包括如下步骤:
设定所述WDMA对应的第一缓冲区的起始地址;
设定所述第一缓冲区的长度;
设定所述WDMA的第二预定阈值;
设定所述第一缓冲区的读指针;
将所述WDMA的阈值中断次数重置为0;
启动所述WDMA。
10.根据权利要求6所述的装置,其特征在于,
初始化模块,用于初始化所述RDMA,所述初始化所述RDMA过程至少包括如下步骤:
关闭所述RDMA的阈值中断;
设定所述RDMA对应的第二缓冲区的起始地址;
设定所述RDMA的第二预定阈值;
设定所述第二缓冲区的写指针;
设定所述第二缓冲区的长度;
设置所述RDMA的启动标识为0。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610230013.7A CN107293316B (zh) | 2016-04-13 | 2016-04-13 | 一种音频数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610230013.7A CN107293316B (zh) | 2016-04-13 | 2016-04-13 | 一种音频数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107293316A true CN107293316A (zh) | 2017-10-24 |
CN107293316B CN107293316B (zh) | 2020-01-03 |
Family
ID=60093314
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610230013.7A Active CN107293316B (zh) | 2016-04-13 | 2016-04-13 | 一种音频数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107293316B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107957861A (zh) * | 2017-12-11 | 2018-04-24 | 中标软件有限公司 | 即时播放声卡信号输入通道中音频数据的方法及装置 |
CN108540448A (zh) * | 2018-03-05 | 2018-09-14 | 上海迪维欧电子设备有限公司 | 一种流媒体数据发送方法 |
CN109634809A (zh) * | 2018-12-05 | 2019-04-16 | 腾讯音乐娱乐科技(深圳)有限公司 | 一种音频播放监控方法及相关设备 |
WO2019090928A1 (zh) * | 2017-11-07 | 2019-05-16 | 歌尔科技有限公司 | 一种播放同步方法、装置和usb声卡 |
CN111475354A (zh) * | 2020-03-12 | 2020-07-31 | 苏州浪潮智能科技有限公司 | 一种存储系统超大容量卷的测试方法、设备、存储介质 |
CN111506512A (zh) * | 2020-04-24 | 2020-08-07 | 上海燧原智能科技有限公司 | 调试信息的处理方法、装置、电子设备、存储介质及系统 |
CN111736796A (zh) * | 2020-05-15 | 2020-10-02 | 深圳市战音科技有限公司 | 实时流数据处理方法、装置、设备和存储介质 |
CN112099970A (zh) * | 2020-09-04 | 2020-12-18 | 中国第一汽车股份有限公司 | 一种视频数据处理方法、装置、设备及存储介质 |
CN112711484A (zh) * | 2019-10-25 | 2021-04-27 | 百度在线网络技术(北京)有限公司 | 录音方法及装置 |
CN114793278A (zh) * | 2022-04-25 | 2022-07-26 | Oppo广东移动通信有限公司 | 卡顿检测方法及装置、设备、存储介质 |
CN115359810A (zh) * | 2022-08-11 | 2022-11-18 | 维沃移动通信有限公司 | 数据处理方法、设备及可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101404741A (zh) * | 2008-11-06 | 2009-04-08 | 北京创毅视讯科技有限公司 | 一种音频播放装置、方法及一种数字电视芯片 |
CN103176932A (zh) * | 2011-12-23 | 2013-06-26 | 重庆重邮信科通信技术有限公司 | 一种dma数据传输方法及系统 |
US20150186104A1 (en) * | 2004-06-25 | 2015-07-02 | Apple Inc. | Using a plurality of buffers to provide audio for synchronized playback to multiple audio devices having separate device clocks |
CN104899151A (zh) * | 2015-02-02 | 2015-09-09 | 上海小蚁科技有限公司 | 内存数据读写方法及装置 |
-
2016
- 2016-04-13 CN CN201610230013.7A patent/CN107293316B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150186104A1 (en) * | 2004-06-25 | 2015-07-02 | Apple Inc. | Using a plurality of buffers to provide audio for synchronized playback to multiple audio devices having separate device clocks |
CN101404741A (zh) * | 2008-11-06 | 2009-04-08 | 北京创毅视讯科技有限公司 | 一种音频播放装置、方法及一种数字电视芯片 |
CN103176932A (zh) * | 2011-12-23 | 2013-06-26 | 重庆重邮信科通信技术有限公司 | 一种dma数据传输方法及系统 |
CN104899151A (zh) * | 2015-02-02 | 2015-09-09 | 上海小蚁科技有限公司 | 内存数据读写方法及装置 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10963213B2 (en) | 2017-11-07 | 2021-03-30 | Goertek Technology Co., Ltd. | Playback synchronization method and device and USB sound card |
WO2019090928A1 (zh) * | 2017-11-07 | 2019-05-16 | 歌尔科技有限公司 | 一种播放同步方法、装置和usb声卡 |
CN107957861A (zh) * | 2017-12-11 | 2018-04-24 | 中标软件有限公司 | 即时播放声卡信号输入通道中音频数据的方法及装置 |
CN108540448A (zh) * | 2018-03-05 | 2018-09-14 | 上海迪维欧电子设备有限公司 | 一种流媒体数据发送方法 |
CN108540448B (zh) * | 2018-03-05 | 2021-08-13 | 上海迪维欧电子设备有限公司 | 一种流媒体数据发送方法 |
CN109634809A (zh) * | 2018-12-05 | 2019-04-16 | 腾讯音乐娱乐科技(深圳)有限公司 | 一种音频播放监控方法及相关设备 |
CN112711484A (zh) * | 2019-10-25 | 2021-04-27 | 百度在线网络技术(北京)有限公司 | 录音方法及装置 |
CN111475354A (zh) * | 2020-03-12 | 2020-07-31 | 苏州浪潮智能科技有限公司 | 一种存储系统超大容量卷的测试方法、设备、存储介质 |
CN111475354B (zh) * | 2020-03-12 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 一种存储系统超大容量卷的测试方法、设备、存储介质 |
CN111506512A (zh) * | 2020-04-24 | 2020-08-07 | 上海燧原智能科技有限公司 | 调试信息的处理方法、装置、电子设备、存储介质及系统 |
CN111736796A (zh) * | 2020-05-15 | 2020-10-02 | 深圳市战音科技有限公司 | 实时流数据处理方法、装置、设备和存储介质 |
CN112099970A (zh) * | 2020-09-04 | 2020-12-18 | 中国第一汽车股份有限公司 | 一种视频数据处理方法、装置、设备及存储介质 |
CN114793278A (zh) * | 2022-04-25 | 2022-07-26 | Oppo广东移动通信有限公司 | 卡顿检测方法及装置、设备、存储介质 |
CN115359810A (zh) * | 2022-08-11 | 2022-11-18 | 维沃移动通信有限公司 | 数据处理方法、设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107293316B (zh) | 2020-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107293316A (zh) | 一种音频数据处理方法及装置 | |
WO2019233354A1 (en) | Application preloading method and device, storage medium and terminal | |
US10193987B2 (en) | Activity continuation between electronic devices | |
CN112420069A (zh) | 一种语音处理方法、装置、机器可读介质及设备 | |
CN106507161A (zh) | 视频直播方法及直播装置 | |
WO2017054377A1 (zh) | 一种音频数据的处理方法、装置和系统 | |
CN104090855B (zh) | Usb接口的usb模式和mhl模式的兼容方法和装置 | |
CN110392232B (zh) | 实时数据监控平台 | |
US20240214618A1 (en) | Video stream playing control method and apparatus, and storage medium | |
WO2022017096A1 (zh) | 屏幕录制方法、电子设备及计算机可读存储介质 | |
CN108845840A (zh) | 应用程序声音的管理方法、装置、存储介质及智能终端 | |
US10171868B2 (en) | Method for processing audio data, terminal and television | |
WO2021134229A1 (zh) | 文字识别方法、装置、存储介质及电子设备 | |
CN111401206A (zh) | 一种全景图共享方法、系统、设备和介质 | |
CN103701854B (zh) | 基于应用虚拟化的网络实时音频传输方法 | |
CN102567081B (zh) | 基于多进程的全局设置方法及系统 | |
CN109684258A (zh) | 一种信号处理装置及方法 | |
CN101923454A (zh) | 一种屏幕显示方法和装置 | |
CN109286718A (zh) | 一种录屏方法、装置及电子设备 | |
CN107018557A (zh) | 一种终端控制方法及终端 | |
CN106534950A (zh) | 媒体扫描与播放的控制方法、装置 | |
US8498622B2 (en) | Data processing system with synchronization policy | |
US20190250963A1 (en) | Notification for unsaved data | |
CN105141993A (zh) | 一种信息定向投放的方法及系统 | |
CN109326290A (zh) | 语音识别方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 266100 Zhuzhou Road, Laoshan District, Shandong, No. 151, No. Patentee after: Hisense Visual Technology Co., Ltd. Address before: 266100 Zhuzhou Road, Laoshan District, Shandong, No. 151, No. Patentee before: QINGDAO HISENSE ELECTRONICS Co.,Ltd. |