System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() GPU多路HDMI音频同步输出方法、装置及存储介质制造方法及图纸_技高网

GPU多路HDMI音频同步输出方法、装置及存储介质制造方法及图纸

技术编号:40359164 阅读:7 留言:0更新日期:2024-02-09 14:45
本发明专利技术公开了GPU多路HDMI音频同步输出方法,方法包括:注册多个PCM设备分别单独关联一个对应的HDMI设备,注册一个虚拟PCM设备关联各HDMI设备;各PCM设备对音频数据处理后拷贝到对应的HDMI设备Buffer中;将HDMI设备Buffer起始地址设置到HDMI DMA,使HDMI设备的DMA传输完成中断,HDMI外接的设备开始音频的播放,并且DMA传输完成中断触发PCM设备进行下一次音频数据和拷贝;其中,利用虚拟PCM设备关联的其中一个HDMI设备的DMA传输完成中断来触发各路HDMI设备复用此中断处理程序,实现多路HDMI音频同步输出。本发明专利技术中断复用实现硬件同步,保证多路HMDI每一帧音频同时输出;同时利用双缓冲技术提高程序执行效率。

【技术实现步骤摘要】

本申请涉及gpu显示,特别是涉及一种gpu多路hdmi音频同步输出方法、装置及存储介质。


技术介绍

1、在gpu通过hdmi输出图像的过程中需要支持对音频数据的传输,从hdmi协议规范得知传输的数据包括控制数据(control)、辅助数据(data island)和显示数据(video),而音频数据传输的本质是hdmi混合器将音频数据打包在辅助数据中和其他数据一同传输到显示屏。随着市场的需求,部分gpu支持两路及以上的hdmi输出接口,但是一般同时只能从一路hdmi输出音频数据,想要多路hdmi同步输出需要额外的应用软件修改或者硬件实现,目前gpu多路hdmi同步输出音频的方式有:通过应用软件实现或者通过hdmi硬件转换器实现。

2、假设已知gpu有两路hdmi输出接口,两路hdmi输出接口分别为hdmi1、hdmi2。hdmi1和hdmi2要同步输出音频,则上述两种方法的原理如下:方法一为应用软件实现方法:gpu音频播放的数据流一般是通过应用程序选择一个pcm设备,然后设置音频参数,包括通道数、采样率等,然后将音频数据通过音频写数据接口写入pcm设备并使能播放,要在应用软件实现hdmi1和hdmi2音频同步播放,需要有两个线程,一个线程打开hdmi1对应的声卡,另一个线程打开hdmi2对应的声卡,写音频数据并播放的时候,两个线程用软件方式进行线程同步,底层驱动hdmi1和hdmi2分别设置dma,传输一帧数据后,分别触发hdmi1和hdmi2的传输完成中断,然后通知应用进行同步写入,应用同步后继续写音频数据并播放。方法一的优点:逻辑简单,hdmi1和hdmi2通路之间依赖性较小;缺点:效率低且不可靠,需要有两个程序实现软件同步,达到同时传输音频数据到hdmi1和hdmi2的目的,同时hdmi1和hdmi2需要分别获取和处理相同的音频数据,再分别配置中断,频繁发生中断以及中断里hdmi1和hdmi2会产生大量的重复操作,可能会导致系统响应慢从而出现音频卡顿现象。方法二为hdmi硬件转换器实现方法:hdmi硬件转换器原理不涉及软件,gpuhdmi1或者hdmi2接口用hdmi线连接到hdmi硬件转换器入口,通过电路将输入的信号复制为相同的多路,复制内容同时包含视频和音频。方法二的优点:同步效率高,可以将一路音频信号完整的信号同时复制为多路音频;缺点:hdmi信号是基于一路hdmi信号来复制,如果基于hdmi1复制信号,hdmi2还是不会输出音频,硬件资源利用率不高,同时该方法需要额外的硬件,会增加使用成本。


技术实现思路

1、本专利技术针对上述问题,提供了一种gpu多路hdmi音频同步输出方法、装置及存储介质,在注册pcm设备的时候多生成一个虚拟pcm设备,pcm设备连接所有的hdmi设备,利用其中一个hdmi中断来触发每一路hdmi音频相关的配置,来实现多路hdmi音频同步输出,同时利用双缓冲技术提高程序执行效率。

2、本专利技术的第一方面,一种gpu多路hdmi音频同步输出方法,所述方法包括:

3、注册多个pcm设备分别单独关联一个对应的hdmi设备,注册一个虚拟pcm设备关联各hdmi设备;

4、各pcm设备对音频数据处理后拷贝到对应的hdmi设备buffer中;

5、将hdmi设备buffer起始地址设置到hdmidma,使hdmi设备的dma传输完成中断,hdmi外接的设备开始音频的播放,并且dma传输完成中断触发pcm设备进行下一次音频数据和拷贝;

6、其中,利用虚拟pcm设备关联的其中一个hdmi设备的dma传输完成中断来触发各路hdmi设备复用此中断处理程序,实现多路hdmi音频同步输出。

7、在一实施例中,采用双buffer技术,在对双buffer其中一个buffer数据进行dma传输时,pcm设备同时对音频进行处理,并将处理后的数据拷贝在双buffer中的另一个buffer中,用于一次dma传输完成中断后直接继续下一次dma传输。

8、本专利技术的第二方面,提供了一种gpu多路hdmi音频同步输出装置,所述装置包括注册模块、数据处理和拷贝模块、dma传输模块以及中断复用模块,其中,所述注册模块用于注册多个pcm设备分别单独关联一个对应的hdmi设备,注册一个虚拟pcm设备关联各hdmi设备;所述数据处理和拷贝模块用于各pcm设备对音频数据处理后拷贝到对应的hdmi设备buffer中;所述dma传输模块用于将hdmi设备buffer起始地址设置到hdmidma,使hdmi设备的dma传输完成中断,hdmi外接的设备开始音频的播放,并且dma传输完成中断触发pcm设备进行下一次音频数据和拷贝;所述中断复用模块用于利用虚拟pcm设备关联的其中一个hdmi设备的dma传输完成中断来触发各路hdmi设备复用此中断处理程序,实现多路hdmi音频同步输出。

9、在一实施例中,所述数据处理和拷贝模块与所述dma传输模块采用双buffer技术,在对双buffer其中一个buffer数据进行dma传输时,pcm设备同时对音频进行处理,并将处理后的数据拷贝在双buffer中的另一个buffer中,用于一次dma传输完成中断后直接继续下一次dma传输。

10、根据本公开实施例的第三方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述gpu多路hdmi音频同步输出方法的步骤。

11、根据本公开实施例的第四方面,提供一种非临时计算机可读存储介质,所述存储介质上存储有计算机指令,所述指令被处理器执行时实现上述gpu多路hdmi音频同步输出方法的步骤。

12、本专利技术提供的一种gpu多路hdmi音频同步输出方法、装置及存储介质,从实现逻辑上,多个pcm设备以及虚拟pcm设备通路使用相同的逻辑,代码复用率高;从并行性上,以gpu单路hdmi音频传输流程为基础加以改进,使用双buffer机制,将音频格式转换和数据拷贝等耗时操作放在dma传输开始之后,dma传输一帧的时候将另一帧数据处理后并完成数据拷贝,使得dma传输中断触发后,直接配置dma,无需在中断中做额外耗时操作,以提高系统性能;从硬件实现上,本专利技术使用虚拟pcm设备实现,使用多个hdmi中的一个中断资源进行中断复用来对其它hdmi操作,无需额外硬件开销;从特性实现上,本专利技术在驱动上实现了gpu多路hdmi音频同步传输,同时支持gpu各路hdmi音频单独输出,系统中可以灵活更新驱动,无需修改应用程序,具有较大的应用价值。综上所述,本专利技术的有益效果为:并行性高,使用双buffer策略,在传输一帧音频数据的同时去配置参数和拷贝下一帧数据;可靠性高,中断复用实现硬件同步,保证多路hmdi每一帧音频同时输出;兼容性好,在原有流程上封装一层形成虚拟音频设备,同时支持多路hdmi同步音频输出与单路hdmi音频输出,同时无需外接hdmi转换硬件,降低了硬件实现成本。

本文档来自技高网...

【技术保护点】

1.一种GPU多路HDMI音频同步输出方法,其特征在于,所述方法包括:

2.根据权利要求1所述的GPU多路HDMI音频同步输出方法,其特征在于,采用双Buffer技术,在对双Buffer其中一个Buffer数据进行DMA传输时,PCM设备同时对音频进行处理,并将处理后的数据拷贝在双Buffer中的另一个Buffer中,用于一次DMA传输完成中断后直接继续下一次DMA传输。

3.一种GPU多路HDMI音频同步输出装置,其特征在于,所述装置包括注册模块、数据处理和拷贝模块、DMA传输模块以及中断复用模块,其中,所述注册模块用于注册多个PCM设备分别单独关联一个对应的HDMI设备,注册一个虚拟PCM设备关联各HDMI设备;所述数据处理和拷贝模块用于各PCM设备对音频数据处理后拷贝到对应的HDMI设备Buffer中;所述DMA传输模块用于将HDMI设备Buffer起始地址设置到HDMIDMA,使HDMI设备的DMA传输完成中断,HDMI外接的设备开始音频的播放,并且DMA传输完成中断触发PCM设备进行下一次音频数据和拷贝;所述中断复用模块用于利用虚拟PCM设备关联的其中一个HDMI设备的DMA传输完成中断来触发各路HDMI设备复用此中断处理程序,实现多路HDMI音频同步输出。

4.根据权利要求3所述的GPU多路HDMI音频同步输出装置,其特征在于,所述数据处理和拷贝模块与所述DMA传输模块采用双Buffer技术,在对双Buffer其中一个Buffer数据进行DMA传输时,PCM设备同时对音频进行处理,并将处理后的数据拷贝在双Buffer中的另一个Buffer中,用于一次DMA传输完成中断后直接继续下一次DMA传输。

5.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至2任一项所述GPU多路HDMI音频同步输出方法的步骤。

6.一种非临时计算机可读存储介质,所述存储介质上存储有计算机指令,其特征在于,所述指令被处理器执行时实现如权利要求1至2任一项所述GPU多路HDMI音频同步输出方法的步骤。

...

【技术特征摘要】

1.一种gpu多路hdmi音频同步输出方法,其特征在于,所述方法包括:

2.根据权利要求1所述的gpu多路hdmi音频同步输出方法,其特征在于,采用双buffer技术,在对双buffer其中一个buffer数据进行dma传输时,pcm设备同时对音频进行处理,并将处理后的数据拷贝在双buffer中的另一个buffer中,用于一次dma传输完成中断后直接继续下一次dma传输。

3.一种gpu多路hdmi音频同步输出装置,其特征在于,所述装置包括注册模块、数据处理和拷贝模块、dma传输模块以及中断复用模块,其中,所述注册模块用于注册多个pcm设备分别单独关联一个对应的hdmi设备,注册一个虚拟pcm设备关联各hdmi设备;所述数据处理和拷贝模块用于各pcm设备对音频数据处理后拷贝到对应的hdmi设备buffer中;所述dma传输模块用于将hdmi设备buffer起始地址设置到hdmidma,使hdmi设备的dma传输完成中断,hdmi外接的设备开始音频的播放,并且dma传输完成中断触发pcm设备进行...

【专利技术属性】
技术研发人员:徐锋李烨姗黎杰豪韩汝椿
申请(专利权)人:深圳中微电科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1