一种音视频数据DMA传输方法及装置与流程

文档序号:12498879阅读:493来源:国知局
一种音视频数据DMA传输方法及装置与流程

本发明涉及数据处理技术领域,尤其涉及一种音视频数据DMA传输方法及装置。



背景技术:

DMA(Direct Memory Access,直接内存存取)是所有现代电脑的重要特色,它允许不同速度的硬件装置来沟通,而不需要依赖于CPU的大量中断负载。否则,CPU需要从来源把每一片段的资料复制到暂存器,然后把它们再次写回到新的地方。在这个时间中,CPU对于其他的工作来说就无法使用。

传统的音视频数据传输方式有将音频数据编码到视频数据中,或传输当将部分音频数据与一帧视频数据进行合并传输。这两种方式当面临音频数据与视频数据在不同的存储空间时和处理音视频同步时会产生问题。实际应用中,由于视频数据要经过多级帧率变换,例如源端为1080P,60Hz,但输出需要1080P,30Hz。这就需要将视频数据帧率降低一倍。但音频数据要保持其连续性,不能丢音频帧,且要求与视频数据同步,这就需要对音频视频数据进行特殊处理,保证视听效果。

上述提及的面临音频数据与视频数据在不同的存储空间时和处理音视频同步时会产生的同步出错的技术问题成为了本领域技术人员亟待解决的技术问题。



技术实现要素:

本发明实施例提供的一种音视频数据DMA传输方法及装置,解决了目前面临音频数据与视频数据在不同的存储空间时和处理音视频同步时会产生的同步出错的技术问题。

本发明实施例提供的一种音视频数据DMA传输方法,包括:

获取音视频数据;

将视频数据和音频数据分别存入对应的指定存储空间;

根据响应的DMA请求对所述视频数据根据帧大小进行DMA处理,对所述音频数据根据存储的数据个数数量进行DMA处理;

将DMA处理后的DMA视频数据通过显卡显示,将DMA音频数据根据所述DMA视频数据进行对应播放。

优选地,获取音视频数据具体包括:

获取所述视频数据和所述音频数据;

将所述视频数据转换成DDR存储格式,并将所述音频数据转换成FIFO存储格式。

优选地,将视频数据和音频数据分别存入对应的指定存储空间具体包括:

将所述视频数据进行多帧缓存处理,并存入外部DDR存储空间;

将所述音频数据存入内部FIFO存储空间;

同时,根据所述视频数据的视频帧号与所述音频数据的音频帧号插入到音频帧号状态寄存器和视频帧号状态寄存器中。

优选地,根据响应的DMA请求对所述视频数据根据帧大小进行DMA处理,对所述音频数据根据存储的数据个数数量进行DMA处理具体包括:

接收并响应处理器发出的所述DMA请求;

当请求所述视频数据时,同时读取所述视频帧号状态寄存器;

当请求音频数据时,同时读取音频长度与所述音频帧号状态寄存器;

对所述视频数据根据帧大小进行DMA处理,对所述音频数据根据存储的数据个数数量进行DMA处理。

优选地,将DMA处理后的DMA视频数据通过显卡显示,将DMA音频数据根据所述DMA视频数据进行对应播放具体包括:

将所述DMA视频数据DMA到显存中通过显卡显示;

将所述DMA音频数据DMA到内存中,并将所述音频帧号状态寄存器和所述视频帧号状态寄存器中的帧号信息一一对应;

当获取同步指令时,根据所述视频帧号搜索对应相同的所述音频帧号。

本发明实施例提供的一种音视频数据DMA传输装置,包括:

获取单元,用于获取音视频数据;

存储处理单元,用于将视频数据和音频数据分别存入对应的指定存储空间;

DMA响应单元,用于根据响应的DMA请求对所述视频数据根据帧大小进行DMA处理,对所述音频数据根据存储的数据个数数量进行DMA处理;

DMA传输单元,用于将DMA处理后的DMA视频数据通过显卡显示,将DMA音频数据根据所述DMA视频数据进行对应播放。

优选地,获取单元具体包括:

获取子单元,用于获取所述视频数据和所述音频数据;

转换子单元,用于将所述视频数据转换成DDR存储格式,并将所述音频数据转换成FIFO存储格式。

优选地,存储处理单元具体包括:

第一存储子单元,用于将所述视频数据进行多帧缓存处理,并存入外部DDR存储空间;

第二存储子单元,用于将所述音频数据存入内部FIFO存储空间;

加入同步标志子单元,用于根据所述视频数据的视频帧号与所述音频数据的音频帧号插入到音频帧号状态寄存器和视频帧号状态寄存器中。

优选地,DMA响应单元具体包括:

DMA响应子单元,接收并响应处理器发出的所述DMA请求;

第一读取子单元,用于当请求所述视频数据时,同时读取所述视频帧号状态寄存器;

第二读取子单元,用于当请求音频数据时,同时读取音频长度与所述音频帧号状态寄存器;

DMA处理子单元,用于对所述视频数据根据帧大小进行DMA处理,对所述音频数据根据存储的数据个数数量进行DMA处理。

优选地,DMA传输单元具体包括:

第一DMA传输子单元,用于将所述DMA视频数据DMA到显存中通过显卡显示;

第二DMA传输子单元,用于将所述DMA音频数据DMA到内存中,并将所述音频帧号状态寄存器和所述视频帧号状态寄存器中的帧号信息一一对应;

DMA同步传输子单元,用于当获取同步指令时,根据所述视频帧号搜索对应相同的所述音频帧号。

从以上技术方案可以看出,本发明实施例具有以下优点:

本发明实施例提供的一种音视频数据DMA传输方法及装置,其中,音视频数据DMA传输方法包括:获取音视频数据;将视频数据和音频数据分别存入对应的指定存储空间;根据响应的DMA请求对视频数据根据帧大小进行DMA处理,对音频数据根据存储的数据个数数量进行DMA处理;将DMA处理后的DMA视频数据通过显卡显示,将DMA音频数据根据DMA视频数据进行对应播放。本实施例中,通过将视频数据和音频数据分别存入对应的指定存储空间;根据响应的DMA请求对视频数据根据帧大小进行DMA处理,对音频数据根据存储的数据个数数量进行DMA处理;将DMA处理后的DMA视频数据通过显卡显示,将DMA音频数据根据DMA视频数据进行对应播放,解决了目前面临音频数据与视频数据在不同的存储空间时和处理音视频同步时会产生的同步出错的技术问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。

图1为本发明实施例提供的一种音视频数据DMA传输方法的一个实施例的流程示意图;

图2为本发明实施例提供的一种音视频数据DMA传输方法的另一个实施例的流程示意图;

图3为本发明实施例提供的一种音视频数据DMA传输装置的一个实施例的结构示意图;

图4为本发明实施例提供的一种音视频数据DMA传输装置的另一个实施例的结构示意图;

图5和图6为图2的应用例示意图。

具体实施方式

本发明实施例提供的一种音视频数据DMA传输方法及装置,解决了目前面临音频数据与视频数据在不同的存储空间时和处理音视频同步时会产生的同步出错的技术问题。

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

请参阅图1,本发明实施例提供的一种音视频数据DMA传输方法的一个实施例包括:

101、获取音视频数据;

本实施例中,当需要传输音视频数据时,首先需要获取音视频数据。

102、将视频数据和音频数据分别存入对应的指定存储空间;

当获取音视频数据之后,需要将视频数据和音频数据分别存入对应的指定存储空间。

103、根据响应的DMA请求对视频数据根据帧大小进行DMA处理,对音频数据根据存储的数据个数数量进行DMA处理;

当将视频数据和音频数据分别存入对应的指定存储空间之后,需要根据响应的DMA请求对视频数据根据帧大小进行DMA处理,对音频数据根据存储的数据个数数量进行DMA处理。

104、将DMA处理后的DMA视频数据通过显卡显示,将DMA音频数据根据DMA视频数据进行对应播放。

当根据响应的DMA请求对视频数据根据帧大小进行DMA处理,对音频数据根据存储的数据个数数量进行DMA处理之后,需要将DMA处理后的DMA视频数据通过显卡显示,将DMA音频数据根据DMA视频数据进行对应播放。

本实施例中,通过将视频数据和音频数据分别存入对应的指定存储空间;根据响应的DMA请求对视频数据根据帧大小进行DMA处理,对音频数据根据存储的数据个数数量进行DMA处理;将DMA处理后的DMA视频数据通过显卡显示,将DMA音频数据根据DMA视频数据进行对应播放,解决了目前面临音频数据与视频数据在不同的存储空间时和处理音视频同步时会产生的同步出错的技术问题。

上面是对音视频数据DMA传输方法的过程进行的描述,下面将对详细的过程进行详细的描述,请参阅图2,本发明实施例提供的一种音视频数据DMA传输方法的另一个实施例包括:

201、获取视频数据和音频数据;

本实施例中,当需要传输音视频数据时,首先需要获取视频数据和音频数据。

202、将视频数据转换成DDR存储格式,并将音频数据转换成FIFO存储格式;

当获取视频数据和音频数据之后,需要将视频数据转换成DDR存储格式,并将音频数据转换成FIFO存储格式。

203、将视频数据进行多帧缓存处理,并存入外部DDR存储空间;

当将视频数据转换成DDR存储格式,并将音频数据转换成FIFO存储格式之后,需要将视频数据进行多帧缓存处理,并存入外部DDR存储空间。

204、将音频数据存入内部FIFO存储空间;

当将视频数据进行多帧缓存处理,并存入外部DDR存储空间的同时,需要将音频数据存入内部FIFO存储空间。

205、根据视频数据的视频帧号与音频数据的音频帧号插入到音频帧号状态寄存器和视频帧号状态寄存器中;

当步骤203和204的同时,需要根据视频数据的视频帧号与音频数据的音频帧号插入到音频帧号状态寄存器和视频帧号状态寄存器中。

206、接收并响应处理器发出的DMA请求;

当步骤203至205之后,需要接收并响应处理器发出的DMA请求。

207、当请求视频数据时,同时读取视频帧号状态寄存器,当请求音频数据时,同时读取音频长度与音频帧号状态寄存器;

当接收并响应处理器发出的DMA请求之后,需要当请求视频数据时,同时读取视频帧号状态寄存器,当请求音频数据时,同时读取音频长度与音频帧号状态寄存器。

208、对视频数据根据帧大小进行DMA处理,对音频数据根据存储的数据个数数量进行DMA处理;

当请求视频数据时,同时读取视频帧号状态寄存器,当请求音频数据时,同时读取音频长度与音频帧号状态寄存器之后,需要对视频数据根据帧大小进行DMA处理,对音频数据根据存储的数据个数数量进行DMA处理。

209、将DMA视频数据DMA到显存中通过显卡显示;

当对视频数据根据帧大小进行DMA处理,对音频数据根据存储的数据个数数量进行DMA处理之后,需要将DMA视频数据DMA到显存中通过显卡显示。

210、将DMA音频数据DMA到内存中,并将音频帧号状态寄存器和视频帧号状态寄存器中的帧号信息一一对应;

当将DMA视频数据DMA到显存中通过显卡显示的同时,需要将DMA音频数据DMA到内存中,并将音频帧号状态寄存器和视频帧号状态寄存器中的帧号信息一一对应。

211、当获取同步指令时,根据视频帧号搜索对应相同的音频帧号。

当步骤209和210之后,需要当获取同步指令时,根据视频帧号搜索对应相同的音频帧号。

下面以一具体应用场景进行描述,如图5和图6所示,应用例包括:

传输过程可分为如图6:

1接收音视频数据

2将音视频数据存入指定存储空间

3接收并响应DMA请求

4DMA音视频数据到处理器端

具体过程中还包括:

过程1中包括:视频数据接收,检测视频分辨率,并转换成DDR存储所需格式(vs+hs+data_valid+data)。音频数据接收,检测音频格式(采样率,声道信息等),并转换成FIFO存储所需格式(data+data_valid)。音频与视频接收独立进行。

过程2中包括:将过程1中的音视数据存入到指定空间。由于视频,数据庞大,同时由于按帧传输的特殊性,同步性要求读写帧不能重叠,且需要进行帧率变换,所以视频多帧缓存,存入外部DDR存储空间。但音频数据数据量小,要求保持其连续性,不可间断,所以存入内部FIFO空间。在存储音视频数据的过程中,同时加入同步标志,具体方法是,在视频的帧开始,产生一个帧号,用两个字节表示,将这个帧号,插入到音频帧号状态和视频帧号状态寄存器中。

过程3中包括:接收并响应处理器发出的DMA请求。当请求视频数据时,同时读取视频帧号状态寄存器。当请求音频数据时,同时读取音频长度与音频帧号状态寄存器。视频数据按帧大小进行DMA,音频数据按FIFO存储的数据个数数量进行DMA。

过程4中包括:DMA音视频数据到处理器端,视频数据需要用显卡显示,固将视频数据DMA到显存中,直接显示。音频数据DMA到内存中,且根据音频帧号状态和视频帧号状态寄存器中帧号信息一一对应,当需要校准对齐时,根据视频帧号去搜索对应相同的音频帧号。对齐方式可手动也可定时自动。

本实施例中,通过将视频数据和音频数据分别存入对应的指定存储空间;根据响应的DMA请求对视频数据根据帧大小进行DMA处理,对音频数据根据存储的数据个数数量进行DMA处理;将DMA处理后的DMA视频数据通过显卡显示,将DMA音频数据根据DMA视频数据进行对应播放,解决了目前面临音频数据与视频数据在不同的存储空间时和处理音视频同步时会产生的同步出错的技术问题。

实现了通过PCI-E接口传到处理器的存储空间,对音频数据与视频数据区别对待,可以响应各自处理要求,如接受不同的帧率变换请求,DMA到不同的存储空间显存或内存。同时加入精确对齐机制,使音视频间的延迟小于1帧。

请参阅图3,本发明实施例提供的一种音视频数据DMA传输装置的一个实施例包括:

获取单元301,用于获取音视频数据;

存储处理单元302,用于将视频数据和音频数据分别存入对应的指定存储空间;

DMA响应单元303,用于根据响应的DMA请求对视频数据根据帧大小进行DMA处理,对音频数据根据存储的数据个数数量进行DMA处理;

DMA传输单元304,用于将DMA处理后的DMA视频数据通过显卡显示,将DMA音频数据根据DMA视频数据进行对应播放。

本实施例中,通过将视频数据和音频数据分别存入对应的指定存储空间;根据响应的DMA请求对视频数据根据帧大小进行DMA处理,对音频数据根据存储的数据个数数量进行DMA处理;将DMA处理后的DMA视频数据通过显卡显示,将DMA音频数据根据DMA视频数据进行对应播放,解决了目前面临音频数据与视频数据在不同的存储空间时和处理音视频同步时会产生的同步出错的技术问题。

上面是对音视频数据DMA传输装置的各单元进行的描述,下面将对子单元进行面试,请参阅图4,本发明实施例提供的一种音视频数据DMA传输装置的另一个实施例包括:

获取单元401,用于获取音视频数据;

获取单元401具体包括:

获取子单元4011,用于获取视频数据和音频数据;

转换子单元4012,用于将视频数据转换成DDR存储格式,并将音频数据转换成FIFO存储格式。

存储处理单元402,用于将视频数据和音频数据分别存入对应的指定存储空间;

存储处理单元402具体包括:

第一存储子单元4021,用于将视频数据进行多帧缓存处理,并存入外部DDR存储空间;

第二存储子单元4022,用于将音频数据存入内部FIFO存储空间;

加入同步标志子单元4023,用于根据视频数据的视频帧号与音频数据的音频帧号插入到音频帧号状态寄存器和视频帧号状态寄存器中。

DMA响应单元403,用于根据响应的DMA请求对视频数据根据帧大小进行DMA处理,对音频数据根据存储的数据个数数量进行DMA处理;

DMA响应单元403具体包括:

DMA响应子单元4031,接收并响应处理器发出的DMA请求;

第一读取子单元4032,用于当请求视频数据时,同时读取视频帧号状态寄存器;

第二读取子单元4033,用于当请求音频数据时,同时读取音频长度与音频帧号状态寄存器;

DMA处理子单元4034,用于对视频数据根据帧大小进行DMA处理,对音频数据根据存储的数据个数数量进行DMA处理。

DMA传输单元404,用于将DMA处理后的DMA视频数据通过显卡显示,将DMA音频数据根据DMA视频数据进行对应播放。

DMA传输单元404具体包括:

第一DMA传输子单元4041,用于将DMA视频数据DMA到显存中通过显卡显示;

第二DMA传输子单元4042,用于将DMA音频数据DMA到内存中,并将音频帧号状态寄存器和视频帧号状态寄存器中的帧号信息一一对应;

DMA同步传输子单元4043,用于当获取同步指令时,根据视频帧号搜索对应相同的音频帧号。

本实施例中,通过将视频数据和音频数据分别存入对应的指定存储空间;根据响应的DMA请求对视频数据根据帧大小进行DMA处理,对音频数据根据存储的数据个数数量进行DMA处理;将DMA处理后的DMA视频数据通过显卡显示,将DMA音频数据根据DMA视频数据进行对应播放,解决了目前面临音频数据与视频数据在不同的存储空间时和处理音视频同步时会产生的同步出错的技术问题。

实现了通过PCI-E接口传到处理器的存储空间,对音频数据与视频数据区别对待,可以响应各自处理要求,如接受不同的帧率变换请求,DMA到不同的存储空间显存或内存。同时加入精确对齐机制,使音视频间的延迟小于1帧。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1