本发明专利技术涉及一种基于SRIO传输视频帧的数据传输方法,包括处理器A和处理器B,处理器A是发送方,按设定的频率采集高清视频图像,每采集完一帧高清图像,就将这帧图像的数据通过SRIO传送处理器B进行处理;处理器B是接收方,接收每帧高清图像数据进行其他的处理;处理器A和处理器B采用SRIO连接,SRIO配置成Direct I/O模式;处理器A通过SRIO访问处理器B所有外存,每次传送数据,将数据存储到处理器B的外存中,外存称为接口缓冲区。本发明专利技术的有益效果是:该基于SRIO传输视频帧的数据传输方法和装置,避免了高清视频数据的二次拷贝;接口中使用两个独立的长序号做传输头完整性校验,并且发送方和接收方独立维护各自的帧信息,不存在跨处理器的资源互斥访问问题。理器的资源互斥访问问题。理器的资源互斥访问问题。
【技术实现步骤摘要】
一种基于SRIO传输视频帧的数据传输方法和装置
[0001]本专利技术涉及数据传输
,具体为一种基于SRIO传输视频帧的数据传输方法和装置。
技术介绍
[0002]在处理器间的接口设计方法中,常用的方法之一是使用环形接口缓冲区,其读指针和写指针分别由接口两侧的处理器维护,数据计数器则由接口两侧处理器共同维护。为了保证公共数据计数器的访问操作唯一性,需要在接口两侧处理器对公共的数据计数器做互斥访问操作。这种互斥操作在处理器内部一般采用信号量等机制来实现,但是跨越处理器实现公共资源的互斥访问则比较困难或者过于复杂。
[0003]所以需要针对上述问题设计一种基于SRIO传输视频帧的数据传输方法和装置。
技术实现思路
[0004]本专利技术的目的在于提供一种基于SRIO传输视频帧的数据传输方法和装置,以解决上述
技术介绍
中提出的问题。
[0005]为实现上述目的,本专利技术提供如下技术方案:一种基于SRIO传输视频帧的数据传输方法,包括处理器A和处理器B,处理器A是发送方,按照设定的频率采集高清视频图像,每采集完一帧高清图像,就将这帧图像的数据通过SRIO传送处理器B进行处理;
[0006]处理器B是接收方,接收每帧高清图像数据进行其他的处理;
[0007]处理器A和处理器B采用SRIO连接,SRIO配置成Direct I/O模式;
[0008]处理器A通过SRIO访问处理器B所有外存,每次传送数据,将数据存储到处理器B的外存中,外存称为接口缓冲区;
[0009]所述数据传输方法具体步骤如下:
[0010]S11:接口初始化;SRIO以及处理器A、B设备上电初始化;
[0011]S12:高清视频数据写入;SRIO初始化完毕后,处理器A每采集完一帧高清视频数
[0012]据,立即通过SRIO接口写入到处理器B的外存DDR2接口缓冲区的第一个环形buffer中,写入地址由处理器A的帧信息缓冲区中的Image Address字段确定,视频帧数据连续存放和写入;
[0013]S13:帧信息写入;高清视频帧写入完成后,处理器A按照帧信息字段的先后顺序,
[0014]依次写入各个字段信息到处理器B的外存DDR2接口缓冲区的第二个环形buffer的写地址单元中;其中PTS取当前系统时间,Frame Length取本帧视频数据的实际长度,Image Address取本帧视频数据块起始地址,Frame No和Sequence No取各自的当前值,这两个值一定是完全相同;CRC依据前面四个字段的数据计算得出,Sequence No字段一定要最后写入;
[0015]S14:Doorbell中断消息发送;处理器A把帧信息写入完成后,发送Doorbell消息通
[0016]知处理器B本帧视频数据准备好;然后按照公式(1)更新处理器A的帧信息缓冲区
结构:
[0017]Frame No=Frame No+1,
[0018]Sequence No=Sequence No+1,
[0019]Image Address=Image Address+4Mbyte;
[0020]S15:高清视频帧接收;处理器B收到Doorbell中断消息后,立即到第二环形buffer
[0021]的读指针取出帧信息;根据处理器B内部保存的将要处理帧的Frame No进行接收检查,如果没有收到有效视频帧,则直接跳转到步骤S17;
[0022]S16:处理器B如果新接收到一帧视频图像,则把本帧视频传输头信息拷贝到本地
[0023]内存,留待后续处理,同时更新本地的Frame No=Frame No+1;
[0024]S17:重复执行步骤S11~S16,收发和处理多帧高清视频数据,直到该装置被停止
[0025]服务或者关闭电源。
[0026]进一步的,所述步骤S15中处理器B对帧信息进行检查的具体步骤如下:
[0027]S21:检查接收的Frame No和Sequence No是否相同,如果不相同则延时100us后进
[0028]入下一步;否则直接进入下一步;
[0029]S22:检查接收的传输消息头中的CRC是否正确,如果CRC正确则把本帧视频标记为
[0030]好帧,否则标记为坏帧;
[0031]S23:检查当前内部保存的将要处理帧的Frame No与接收到的帧信息头中的Frame
[0032]No是否相等:如果将要处理帧的Frame No小于等于帧信息传输头中的Frame No,则标识本帧为新接收到的视频帧;否则说明本次没有收到有效的新视频帧;
[0033]S24:如果新接收到的视频帧是坏帧,则插入最近一帧好帧作为补偿帧;否则直接
[0034]使用当前好帧进行后续处理。
[0035]进一步的,所述接口装置包括如下模块:
[0036]接口初始化模块;
[0037]高清视频数据写入模块;
[0038]用于处理器A每采集完一帧高清视频数据,将该帧视频数据写入到处理器B的外存DDR2接口缓冲区的第一个环形buffer中;帧信息写入模块;
[0039]按照帧信息字段的顺序,依次写入各个字段信息到处理器B的外存DDR2接口缓冲区的第二个环形buffer的写地址单元中;Doorbell中断消息发送模块,用于发送Doorbell消息通知处理器B,并更新本地传输头信息缓冲区结构;高清视频帧接收模块:响应Doorbell中断消息的接收,从第二环形buffer的读指针取出帧信息;对帧信息进行检查,如果没有收到有效视频帧,则执行循环处理模块:如果新接收到一帧视频图像,则把本帧视频传输头信息拷贝到B处理器本地内存,留待后续处理,同时更新本地的Frame No,Frame No表示将要接收的下一帧信息中的顺序号;循环处理模块:处理器A的用于重复执行高清视频数据写入模块。
[0040]进一步的,所述接口装置还包括传输头信息写入模块;Doorbell中断消息发送模块;处理器B的视频帧接收模块以及丢帧和补帧处理模块;进行收发和处理多帧高清视频数据,直到该接口装置被停止服务或者关闭电源。
[0041]进一步的,所述接口装置还包括高清视频数据写入模块的写入地址由处理器A的帧信息缓冲区中的Image Address字段确定,视频帧数据连续存放和写入;Image Address
Address字段记录的是这帧图像在第一个环形buffer中的存放起始地址,这样的双环形的缓冲区机制使得处理和维护都变得简单、灵活;处理器B只需要对第二个环形buffer中的每一个单元帧信息进行接收处理,当需要得到具体图像数据时,再根据帧信息中的Image Address和Frame Length到第一个环形buffer中的地址中读取数据即可。不必对第一环buffer进行维护。对于每帧图像数据,处理器A先往第一个环形buffer中写地址传送图像数据,再将本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种基于SRIO传输视频帧的数据传输方法,其特征在于,包括处理器A和处理器B,处理器A是发送方,按照设定的频率采集高清视频图像,每采集完一帧高清图像,就将这帧图像的数据通过SRIO传送处理器B进行处理;处理器B是接收方,接收每帧高清图像数据进行其他的处理;处理器A和处理器B采用SRIO连接,SRIO配置成Direct I/O模式;处理器A通过SRIO访问处理器B所有外存,每次传送数据,将数据存储到处理器B的外存中,外存称为接口缓冲区;所述数据传输方法具体步骤如下:S11:接口初始化;SRIO以及处理器A、B设备上电初始化;S12:高清视频数据写入;SRIO初始化完毕后,处理器A每采集完一帧高清视频数据,立即通过SRIO接口写入到处理器B的外存DDR2接口缓冲区的第一个环形buffer中,写入地址由处理器A的帧信息缓冲区中的Image Address字段确定,视频帧数据连续存放和写入;S13:帧信息写入;高清视频帧写入完成后,处理器A按照帧信息字段的先后顺序,依次写入各个字段信息到处理器B的外存DDR2接口缓冲区的第二个环形buffer的写地址单元中;其中PTS取当前系统时间,Frame Length取本帧视频数据的实际长度,Image Address取本帧视频数据块起始地址,Frame No和Sequence No取各自的当前值,这两个值一定是完全相同;CRC依据前面四个字段的数据计算得出,Sequence No字段一定要最后写入;S14:Doorbell中断消息发送;处理器A把帧信息写入完成后,发送Doorbell消息通知处理器B本帧视频数据准备好;然后按照公式(1)更新处理器A的帧信息缓冲区结构:Frame No=Frame No+1.Sequence No=Sequence No+1,Image Address=Image Address+4Mbyte;S15:高清视频帧接收;处理器B收到DoorbelI中断消息后,立即到第二环形buffer的读指针取出帧信息;根据处理器B内部保存的将要处理帧的Frame No进行接收检查,如果没有收到有效视频帧,则直接跳转到步骤S17;S16:处理器B如果新接收到一帧视频图像,则把本帧视频传输头信息拷贝到本地内存,留待后续处理,同时更新本地的Frame No=Frame No+1;S17:重复执行步骤S11~S16,收发和处理多帧高清视频数据,直到该装置被停止服务或者关闭电源。2.根据权利要求1所述的一种基于SRIO传输视频帧的数据传输方法,其特征在于,所述步骤S15中处理器B对帧信息进行检查的具体步骤如下:S21:检查接收的Frame No和Sequence No是否相同,如果不相同则延时100us后进入下一步;否则直接进入下一步;S22:检查接收的传输消息头中的CRC是否...
【专利技术属性】
技术研发人员:谢基钱,
申请(专利权)人:深圳比翼电子有限责任公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。