进行视频码流处理的设备及方法
【专利摘要】本发明公开了进行视频码流处理的设备及方法,其中,该设备包括Intel主控芯片、PCI-E桥接芯片和至少一块Netra从芯片;所述Intel主控芯片,读取来自外部设备的视频码流,配置从芯片映射空间,确定映射空间地址,将视频码流通过PCI-E桥接芯片发送给与映射空间地址对应的Netra从芯片共享内存;所述PCI-E桥接芯片,进行Intel主控芯片和Netra从芯片之间的信息交互;所述Netra从芯片,从共享内存读取视频码流,进行码流视频处理,将处理后的码流发送出去。本发明方案既能提高码流处理能力,又能解决视频码流处理受限的问题。
【专利说明】进行视频码流处理的设备及方法
【技术领域】
[0001]本发明涉及信息处理技术,尤其涉及进行视频码流处理的设备及方法。
【背景技术】
[0002]在视频数据处理领域,人们对设备进行视频码流处理的性能要求越来越高,单个芯片的设备性能已经不能满足市场需求,所以多核芯片方案近年来发展迅速,各种解决方案层出不穷。
[0003]设备进行视频码流的处理具体包括:芯片读取来自外部设备的视频码流,进行码流视频处理,将处理后的码流发送出去。
[0004]现在的多核芯片方案基本上是多个Intel芯片的组合或者是多个Netra芯片的组合,下面分别进行说明。
[0005]方案一,设备由多个Intel芯片组成:
[0006]由于Intel芯片处理能力有限的的特点,使此方案有着明显的缺陷,导致Intel芯片的视频码流处理能力不能满足用户对高集成度、高清视频日益增长的需求。
[0007]方案二,设备由多个Netra芯片组成:
[0008]Netra,是专门针对数字视频监控应用的强大数字媒体处理平台;Netra芯片集成了 ARM-A8和数字信号处理器(DSP,Digital Signal Processor)。Netra芯片在业界具有较佳的码流处理能力,将高清多通道码流的读取、压缩、显示以及控制功能整合于Netra芯片上,可满足高清视频的需求。但Nerta芯片运行在Linux系统下,Nerta芯片首先使用软件开发工具包(SDK, Software Development Kit)SDK读取视频码流,具体地,调用SDK取流函数读取来自外部设备的视频码流;然后Nerta芯片再进行视频码流处理。下面先对SDK进行说明。
[0009]SDK指用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合,本发明中指用于进行视频流读取的SDK。读取的视频码流来自外部设备,夕卜部设备具体如视频监控系统中的监控设备,监控设备采集视频码流后发送给码流处理设备进行码流处理,包括编码、解码、转码等。视频监控系统中往往包含多个不同厂商的监控设备,码流处理设备需要对多个不同厂商的监控设备进行码流处理。Linux是一种自由和开放源码的类Unix操作系统,而各个厂商提供的SDK大多是在windows系统下开发的,导致很多SDK无法在Netra芯片上运行,进而不能成功读取来自不同外部设备的视频码流,使视频码流处理受限。
[0010]由以上分析,采用方式一,Intel芯片运行在windows系统下,能够正常调用SDK取流函数,读取来自外部设备的视频码流,再进行码流视频处理;但由于Intel芯片处理能力有限,却不能满足需求。采用方式二,Netra芯片虽然有较佳的处理能力,却因运行在Linux系统,不能集成SDK,导致不能读取来自不同外部设备的视频码流,使视频码流处理受限。
[0011]综上,现有进行视频码流处理的方案要么存在处理能力不足的缺陷,要么存在因不能兼容SDK而引起的视频码流处理受限的缺陷。
【发明内容】
[0012]本发明提供了一种进行视频码流处理的设备,该设备既能提高码流处理能力,又能解决视频码流处理受限的问题。
[0013]本发明提供了一种进行视频码流处理的方法,该方法既能提高码流处理能力,又能解决视频码流处理受限的问题。
[0014]一种进行视频码流处理的设备,该方法设备包括Intel主控芯片、扩展外设部件互联标准PC1-E桥接芯片和至少一块Netra从芯片;
[0015]所述Intel主控芯片,读取来自外部设备的视频码流,配置从芯片映射空间,确定映射空间地址,将视频码流通过PC1-E桥接芯片发送给与映射空间地址对应的Netra从芯片共享内存;
[0016]所述PC1-E桥接芯片,进行Intel主控芯片和Netra从芯片之间的信息交互;
[0017]所述Netra从芯片,从共享内存读取视频码流,进行码流视频处理,将处理后的码流发送出去。
[0018]较佳地,所述Netra从芯片包括ARM-A8和数字信号处理器DSP ;
[0019]所述Intel主控芯片,在读取来自外部设备的视频码流之前,还通过所述PC1-E桥接芯片接收来自所述ARM-A8的映射空间地址信息,通过所述PC1-E桥接芯片向所述ARM-A8反馈响应消息;
[0020]所述ARM-A8,通过所述PC1-E桥接芯片将映射空间地址信息发送给所述Intel主控芯片,并通过所述PC1-E桥接芯片接收来自所述Intel主控芯片的反馈响应消息,启动所述 DSP ;
[0021]所述DSP,从共享内存中读取视频码流,对其进行码流视频处理,将处理后的码流发送出去。
[0022]较佳地,所述DSP,从共享内存中读取视频码流,对其进行解码、编码或转码处理,将处理后的码流发送出去。
[0023]较佳地,所述Intel主控芯片,在接收来自所述ARM-A8的映射空间地址信息之后,还将初始化参数赋值通过所述PC1-E桥接芯片发送给ARM-A8。
[0024]较佳地,所述Intel主控芯片,调用软件开发工具包SDK取流函数,读取来自外部设备视频码流。
[0025]一种进行视频码流处理的方法,该方法包括:
[0026]Intel主控芯片读取来自外部设备的视频码流;
[0027]Intel主控芯片配置从芯片映射空间,确定映射空间地址,将视频码流通过PC1-E桥接芯片发送给与映射空间地址对应的Netra从芯片共享内存;
[0028]Netra从芯片从共享内存读取视频码流,进行码流视频处理;
[0029]Netra从芯片将处理后的码流发送出去。
[0030]较佳地,所述Intel主控芯片读取来自外部设备的视频码流之前,该方法还包括:
[0031]Netra从芯片的ARM-A8通过PC1-E桥接芯片将映射空间地址信息发送给Intel主控芯片;
[0032]Intel主控芯片通过PC1-E桥接芯片接收来自Netra从芯片的ARM-A8的映射空间地址信息后,通过PC1-E桥接芯片向Netra从芯片的ARM-A8反馈响应消息;
[0033]Netra从芯片的ARM-A8接收反馈响应消息后启动DSP ;
[0034]Netra从芯片从共享内存读取视频码流,进行码流视频处理,将处理后的码流发送出去,具体包括:DSP从共享内存中读取视频码流,对其进行码流视频处理,将处理后的码流发送出去。
[0035]较佳地,所述DSP对读取的视频码流进行码流视频处理包括:
[0036]DSP对读取的视频码流进行解码、编码或转码处理。
[0037]较佳地,所述Netra从芯片的ARM-A8通过PC1-E桥接芯片将映射空间地址信息发送给Intel主控芯片之前,该方法包括:
[0038]Netra从芯片的ARM-A8读取类型参数中的索引值,判断索引值是否为从芯片标识,如果是,则执行所述通过PC1-E桥接芯片将映射空间地址信息发送给Intel主控芯片;
[0039]Intel主控芯片在接收来自ARM-A8的映射空间地址信息之后,还将初始化参数赋值通过PC1-E桥接芯片发送给Netra从芯片的ARM-A8。
[0040]较佳地,所述Intel主控芯片读取来自外部设备的视频码流,包括:
[0041]Intel主控芯片调用SDK取流函数,读取来自外部设备视频码流。
[0042]从上述方案可以看出,本发明中,进行视频码流处理的设备包括Intel主控芯片、PC1-E桥接芯片和至少一块Netra从芯片;Intel主控芯片读取来自外部设备的视频码流;Intel主控芯片配置从芯片映射空间,确定映射空间地址,将视频码流通过PC1-E桥接芯片发送给与映射空间地址对应的Netra从芯片共享内存;Netra从芯片从共享内存读取视频码流,进行码流视频处理;Netra从芯片将处理后的码流发送出去。本发明采用Intel主控芯片加Netra从芯片的方式实现视频码流处理设备,Intel主控芯片读取视频码流。这样,Intel主控芯片运行在windows系统下,当需要时能够正常运行SDK进行视频码流的读取;并且,充分应用Netra芯片极强的处理能力,对读取的视频码流进行处理。从而,既提高码了码流处理能力,又解决了视频码流处理受限的问题。
【专利附图】
【附图说明】
[0043]图1为本发明进行视频码流处理的设备结构示意图;
[0044]图2为本发明进行视频码流处理的方法示意性流程图;
[0045]图3为本发明主控芯片与从芯片之间进行启动通讯的流程图实例。
【具体实施方式】
[0046]为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明进一步详细说明。
[0047]本发明采用Intel主控芯片加Netra从芯片的方式实现视频码流处理设备,由Intel主控芯片读取视频码流,再运用Netra从芯片对读取的视频码流进行处理;这样,Intel主控芯片运行在windows系统下,当需要时能够正常运行SDK进行视频码流的读取;并且,充分应用Netra芯片极强的处理能力,对读取的视频码流进行处理。从而,既提高码了码流处理能力,又解决了视频码流处理受限的问题。
[0048]参见图1,为本发明进行视频码流处理的设备结构示意图,该设备包括Intel主控芯片、扩展外设部件互联标准(PC1-E, Peripheral Component Interconnect Express)桥接芯片和至少一块Netra从芯片,图1为4个Netra从芯片的实例;
[0049]所述Intel主控芯片,读取来自外部设备的视频码流,配置从芯片映射空间,确定映射空间地址,将视频码流通过PC1-E桥接芯片发送给与映射空间地址对应的Netra从芯片共享内存;
[0050]所述PC1-E桥接芯片,进行Intel主控芯片和Netra从芯片之间的信息交互;
[0051]所述Netra从芯片,从共享内存读取视频码流,进行码流视频处理,将处理后的码流发送出去。
[0052]外部设备为Intel主控芯片挂载的设备,例如,通过局域网(LAN, Local AreaNetwork)连接的挂载设备,或者,通过Inter集成电路(I2C, Inter-1ntegrated Circuit)总线连接的挂载设备。
[0053]Intel主控芯片对视频码流处理进行整体控制,Intel主控芯片内存储了各Netra从芯片的映射空间地址,映射空间地址对应Netra从芯片的共享空间;在需要时,确定出映射空间地址,将视频码流通过PC1-E桥接芯片发送到相应的共享空间,确定出的映射空间地址可能对应的是一个Netra从芯片的部分或全部共享空间,也可能对应两个以上Netra从芯片的部分或全部共享空间。
[0054]Intel主控芯片和Netra从芯片之间通过PC1-E桥接芯片进行信息交互,米用PC1-E总线进行信息传输;具体地,将来自Intel主控芯片的信息发送给Netra从芯片,将来自Netra从芯片的信息发送给Intel主控芯片。
[0055]较佳地,所述Netra从芯片具体包括ARM-A8和DSP ;
[0056]所述Intel主控芯片,在读取来自外部设备的视频码流之前,还通过所述PC1-E桥接芯片接收来自所述ARM-A8的映射空间地址信息,通过所述PC1-E桥接芯片向所述ARM-A8反馈响应消息;
[0057]所述ARM-A8,通过所述PC1-E桥接芯片将映射空间地址信息发送给所述Intel主控芯片,并通过所述PC1-E桥接芯片接收来自所述Intel主控芯片的反馈响应消息,启动所述 DSP ;
[0058]所述DSP,从共享内存中读取视频码流,对其进行码流视频处理,将处理后的码流发送出去。
[0059]所述DSP对视频码流的处理包括多种,例如解码、编码或转码处理等。
[0060]Intel主控芯片读取来自外部设备的视频码流之前,Intel主控芯片和Netra从芯片之间将进行启动通讯过程,该过程中,Netra从芯片的ARM-A8将各自的映射空间地址信息通知给Intel主控芯片。
[0061]较佳地,所述Intel主控芯片,在接收来自所述ARM-A8的映射空间地址信息之后,还将初始化参数赋值通过所述PC1-E桥接芯片发送给ARM-A8。所述初始化参数赋值为Intel主控芯片在启动过程中通知给Netra从芯片的初始化参数,可根据需要设定,例如包括视频码流处理设备的类型、设备包含的DSP总个数、视频制式等;其中视频制式为Netra从芯片进行视频码流处理后的制式。
[0062]Intel主控芯片读取来自外部设备视频码流时,对于需要运行SDK的情况,从自身存储空间中读取相应的SDK,运行SDK,调用SDK取流函数,读取来自外部设备视频码流。Intel主控芯片中存储的SDK,可以是预先从指定网站获取后保存在自身存储空间中的。当然,本发明方案不仅适用于需要运用SDK的情况,也适用于其他不调用SDK取流函数进行视频码流读取的情况,如采用私有协议或标准协议从外部设备读取视频码流的情况。
[0063]本发明中,进行视频码流处理的设备包括Intel主控芯片、PC1-E桥接芯片和至少一块Netra从芯片;Intel主控芯片读取来自外部设备的视频码流;Intel主控芯片配置从芯片映射空间,确定映射空间地址,将视频码流通过PC1-E桥接芯片发送给与映射空间地址对应的Netra从芯片共享内存;Netra从芯片从共享内存读取视频码流,进行码流视频处理;Netra从芯片将处理后的码流发送出去。本发明采用Intel主控芯片加Netra从芯片的方式实现视频码流处理设备,Intel主控芯片读取视频码流,Netra从芯片对读取的视频码流进行处理;这样,Intel主控芯片运行在windows系统下,当需要时能够正常运行SDK进行视频码流的读取;并且,充分应用Netra芯片极强的处理能力,对读取的视频码流进行处理。从而,既提高码了码流处理能力,又解决了视频码流处理受限的问题。
[0064]参见图2,为本发明进行视频码流处理的方法示意性流程图,其包括以下步骤:
[0065]步骤201, Intel主控芯片读取来自外部设备的视频码流。
[0066]本步骤之前,Intel主控芯片将进行驱动初始化,且Intel主控芯片和Netra从芯片之间将进行启动通讯过程,该过程中,Netra从芯片的ARM-A8将各自的映射空间地址信息通知给Intel主控芯片。
[0067]设备上电,Intel主控芯片运行主控程序,主控程序进行驱动初始化,进行DSP初始化的准备工作;Intel主控芯片的驱动初始化与一般的Intel芯片初始化过程类似,这里进行简要说明;其大致包括:设备上电,Intel主控芯片对设备进行复位,防止设备无法操作;Intel主控芯片映射设备的寄存器地址;下载uboot以及设备运行参数,启动uboot的运行,检测内存是否成功初始化;下载内核;下载文件系统;启动内核。进行驱动初始化之后,Intel主控芯片和Netra从芯片之间将进行启动通讯过程。
[0068]下面通过图3,对Intel主控芯片和Netra从芯片之间进行启动通讯进行实例说明,该流程中Intel主控芯片和Netra从芯片的信息交互通过经过PC1-E桥接芯片进行中转传输,这里为了便于叙述,不将PC1-E桥接芯片表述在流程中。图3的流程中,Intel主控芯片运行Windows系统,Netra从芯片的操作流程都由其中的ARM-A8执行,在ARM-A8中的应用程序为hicore,这里,只运行hicore的中DSP初始化和DSP命令处理线程,以实现启动 DSP。
[0069]图3的流程包括以下步骤:
[0070]步骤301, Intel主控芯片和Netra从芯片分别读取各自的DSP索引值(dspldx),如果dspldx为0,则执行步骤302,否则等待来自从芯片的启动中断。
[0071]Intel主控芯片和Netra从芯片中分别存储了各自的类型参数,以表明为主控芯片还是从芯片;类型参数用DSP索引值表示,本实例中,如果为0,则表明为主控芯片,否则为从芯片。设备上电后,Intel主控芯片和Netra从芯片将读取各自的dspldx,进行数值判断;具体地,Netra从芯片首先启动的是ARM-A8上,由ARM-A8进行数值判断。
[0072]对于需要运行SDK的情况,本步骤具体包括=Intel主控芯片调用SDK取流函数,读取来自外部设备视频码流。
[0073]步骤302, Netra从芯片向Intel主控芯片发送启动中断。
[0074]Intel主控芯片接收启动中断后,继续等待Netra从芯片发送映射空间地址信息。
[0075]这里进行Intel主控芯片和Netra从芯片之间的第一次时间同步:Netra从芯片向Intel主控芯片发送启动中断,表示从芯片已经进入hicore的DSP启动进程。
[0076]步骤303,Netra从芯片向Intel主控芯片发送映射空间地址信息。
[0077]具体地,ARM-A8映射DSP的空间地址,获取DSP的共享空间地址信息,这里将获取的共享空间地址信息称为映射空间地址信息。
[0078]步骤304,Intel主控芯片将初始化参数赋值发送给Netra从芯片。
[0079]Intel主控芯片为DSP进行初始化参数赋值。
[0080]步骤305, Intel主控芯片向Netra从芯片发送初始化中断。
[0081]这里进行Intel主控芯片和Netra从芯片之间的第二次时间同步:主芯片向从芯片发送关于初始化参数赋值完成的初始化中断,表示在主芯片上已经建立了 DSP状态映射地址且参数赋值成功。
[0082]Intel主控芯片向Netra从芯片发送初始化中断,以告知Netra从芯片启动DSP。
[0083]步骤306,Netra从芯片接收Intel主控芯片的初始化中断,启动DSP。
[0084]步骤307, Netra从芯片向Intel主控芯片发送初始化完成中断。
[0085]这里进行Intel主控芯片和Netra从芯片之间的第三次时间同步:从芯片DSP启动完成之后,发送关于DSP启动完成的初始化完成中断。
[0086]步骤202,Intel主控芯片配置从芯片映射空间,确定映射空间地址,将视频码流通过PC1-E桥接芯片发送给与映射空间地址对应的Netra从芯片共享内存。
[0087]Intel主控芯片内存储了各Netra从芯片的映射空间地址,映射空间地址对应Netra从芯片的共享空间;在需要时,确定出映射空间地址,将视频码流通过PC1-E桥接芯片发送到相应的共享空间,确定出的映射空间地址可能对应的是一个Netra从芯片的共享空间,也可能对应两个以上Netra从芯片的共享空间。
[0088]步骤203,Netra从芯片从共享内存读取视频码流,进行码流视频处理。
[0089]对视频码流的处理包括解码、编码或转码等。
[0090]步骤204,Netra从芯片将处理后的码流发送出去。
[0091]具体地,例如发送给显示墙进行显示。
[0092]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【权利要求】
1.一种进行视频码流处理的设备,其特征在于,该设备包括Intel主控芯片、扩展外设部件互联标准PC1-E桥接芯片和至少一块Netra从芯片; 所述Intel主控芯片,读取来自外部设备的视频码流,配置从芯片映射空间,确定映射空间地址,将视频码流通过PC1-E桥接芯片发送给与映射空间地址对应的Netra从芯片共享内存; 所述PC1-E桥接芯片,进行Intel主控芯片和Netra从芯片之间的信息交互; 所述Netra从芯片,从共享内存读取视频码流,进行码流视频处理,将处理后的码流发送出去。
2.如权利要求1所述的设备,其特征在于,所述Netra从芯片包括ARM-A8和数字信号处理器DSP ; 所述Intel主控芯片,在读取来自外部设备的视频码流之前,还通过所述PC1-E桥接芯片接收来自所述ARM-A8的映射空间地址信息,通过所述PC1-E桥接芯片向所述ARM-A8反馈响应消息; 所述ARM-A8,通过所述PC1-E桥接芯片将映射空间地址信息发送给所述Intel主控芯片,并通过所述PC1-E桥接芯片接收来自所述Intel主控芯片的反馈响应消息,启动所述DSP ; 所述DSP,从共享内存中读取视频码流,对其进行码流视频处理,将处理后的码流发送出去。
3.如权利要求2所述的设备,其特征在于,所述DSP,从共享内存中读取视频码流,对其进行解码、编码或转码处理,将处理后的码流发送出去。
4.如权利要求2所述的设备,其特征在于,所述Intel主控芯片,在接收来自所述ARM-A8的映射空间地址信息之后,还将初始化参数赋值通过所述PC1-E桥接芯片发送给ARM-A8。
5.如权利要求1至4中任一项所述的设备,其特征在于, 所述Intel主控芯片,调用软件开发工具包SDK取流函数,读取来自外部设备视频码流。
6.一种基于权利要求1所述设备进行视频码流处理的方法,其特征在于,该方法包括: Intel主控芯片读取来自外部设备的视频码流; Intel主控芯片配置从芯片映射空间,确定映射空间地址,将视频码流通过PC1-E桥接芯片发送给与映射空间地址对应的Netra从芯片共享内存; Netra从芯片从共享内存读取视频码流,进行码流视频处理; Netra从芯片将处理后的码流发送出去。
7.如权利要求6的方法,其特征在于,所述Intel主控芯片读取来自外部设备的视频码流之前,该方法还包括: Netra从芯片的ARM-A8通过PC1-E桥接芯片将映射空间地址信息发送给Intel主控芯片; Intel主控芯片通过PC1-E桥接芯片接收来自Netra从芯片的ARM-A8的映射空间地址信息后,通过PC1-E桥接芯片向Netra从芯片的ARM-A8反馈响应消息; Netra从芯片的ARM-A8接收反馈响应消息后启动DSP ; Netra从芯片从共享内存读取视频码流,进行码流视频处理,将处理后的码流发送出去,具体包括:DSP从共享内存中读取视频码流,对其进行码流视频处理,将处理后的码流发送出去。
8.如权利要求7的方法,其特征在于,所述DSP对读取的视频码流进行码流视频处理包括: DSP对读取的视频码流进行解码、编码或转码处理。
9.如权利要求7的方法,其特征在于,所述Netra从芯片的ARM-A8通过PC1-E桥接芯片将映射空间地址信息发送给Intel主控芯片之前,该方法包括: Netra从芯片的ARM-A8读取类型参数中的索引值,判断索引值是否为从芯片标识,如果是,则执行所述通过PC1-E桥接芯片将映射空间地址信息发送给Intel主控芯片; Intel主控芯片在接收来自ARM-A8的映射空间地址信息之后,还将初始化参数赋值通过PC1-E桥接芯片发送给Netra从芯片的ARM-A8。
10.如权利要求6至9中任一项所述的方法,其特征在于,所述Intel主控芯片读取来自外部设备的视频码流,包括: Intel主控芯片调用SDK取流函数,读取来自外部设备视频码流。
【文档编号】H04N19/42GK104519359SQ201310456600
【公开日】2015年4月15日 申请日期:2013年9月29日 优先权日:2013年9月29日
【发明者】宋义 申请人:杭州海康威视数字技术股份有限公司