一种采用FPGA实现的H264/AVC视频辅助增强信息封装电路制造技术

技术编号:20855912 阅读:21 留言:0更新日期:2019-04-13 10:55
本发明专利技术提供了一种采用FPGA实现的H.264/AVC视频辅助增强信息封装电路,包括视频解析单元、SEI产生单元、视频填充单元和视频输出单元,视频解析单元解析H.264视频码流,识别H.264码流中一帧的开始和结束,识别帧类型,SEI产生单元接收用户自定义信息,产生辅助增强信息并发送给视频输出单元,视频填充单元按照用户要求的视频帧对齐长度,将视频码流中的每帧填充至视频帧对齐长度的整数倍,并发送给视频输出单元,视频输出单元实现分时输出,本发明专利技术速度更快,稳定性好,可靠性高;可以保证后续视频传输环节中每帧数据都可以及时发送出去,不会因为单次传输长度的限制引起视频帧数据残留,有利于降低视频传输延时。

【技术实现步骤摘要】
一种采用FPGA实现的H264/AVC视频辅助增强信息封装电路
本专利技术涉及机载视频压缩
,尤其是一种视频辅助增强信息封装电路。
技术介绍
H.264/AVC(以下简称H.264)是国际标准化组织和国际电信联盟共同提出的视频编解码技术标准之一,具有高压缩比、低码率和较高的压缩视频质量。辅助增强信息(SupplementalEnhancementInformation,SEI)是H.264标准的一部分,用于辅助处理视频解码和显示环节等。随着视频编码技术和FPGA技术的快速发展,越来越多的H.264视频编码采用FPGA进行实现,具有很高的性能和灵活度。SEI是视频码流结构中的概念,提供了向视频码流中加入辅助信息的方法,是H.264视频压缩标准的特性之一。SEI集成在视频码流中,对视频解码过程(容错、纠错等)有帮助,但并不是视频解码过程的必须项。SEI的特点意味着视频编码器在输出视频码流的时候,可以不提供SEI信息。目前H.264视频压缩领域中,很多H.264编码器不产生SEI,或采用软件的方法产生SEI,然后插入到视频码流中。本文所述采用FPGA实现的SEI封装电路,由FPGA实现H.264视频码流解析、SEI的产生和封装,与软件产生SEI的方法相比,具有快捷、灵活、通用性强的特点。
技术实现思路
为了克服现有技术的不足,本专利技术提供一种快捷、灵活、通用性强的H.264视频辅助增强信息封装电路。本专利技术解决其技术问题所采用的技术方案是:本专利技术所述采用FPGA实现的H.264/AVC视频辅助增强信息封装电路包括视频解析单元、SEI产生单元、视频填充单元和视频输出单元。所述的视频解析单元的功能是解析H.264视频码流,识别H.264码流中一帧的开始和结束,识别帧类型,帧类型为I帧和P帧,并统计视频帧的实际长度;在解析视频码流的同时,将视频原始码流发送给视频输出单元,并将包含帧起始信号、帧结束信号、I帧类型信号、帧长度的视频解析结果发送给SEI产生单元、视频填充单元和视频输出单元,根据H.264标准中码流结构的定义,H.264码流的基本单元为网络抽象层单元(NetworkAbstractionLayerUnits,NALU),NALU包括NALU起始码、NALU类型以及NALU负载数据,其中NALU起始码为0x00000001,NALU类型为起始码后的一个字节,NALU类型共8位,第1位为禁止位,始终为0,为1则表示码流出错,第2~3位为参考级别,第4~8位是NALU单元类型,H.264码流中视频帧由访问单元分隔符(AccessUnitDelimiter,AUD)进行分割,AUD是一种NALU,其中NALU单元类型为0x09,视频解析单元接收到视频码流后,寻找NALU起始码,然后根据NALU类型判断该NALU是否为AUD,即可识别一帧的开始和结束,NALU类型表征该NALU是否为I帧数据,NALU单元类型为0x5,表示该NALU为I帧数据,视频解析单元接收到原始视频码流后,寻找NALU起始码,然后根据NALU类型即可识别NALU是否为I帧。所述的SEI产生单元的功能是接收用户自定义信息,产生符合H.264视频标准的辅助增强信息,并发送给视频输出单元,SEI是一种NALU,其中NALU单元类型为0x06,负载长度由用户定义;SEI产生单元收到视频解析单元的帧起始信号后,开始产生该帧的SEI,SEI包括起始码0x00000001、NALU单元类型0x06、SEI负载长度、I帧标志、用户自定义信息和结束码0x80,所述的SEI负载长度包含单位字节,该帧SEI总长度减去起始码、NALU单元类型和结束码长度,用户自定义信息包含时间、帧长度、特殊帧标志;所述视频填充单元按照用户要求的视频帧对齐长度,将H.264视频码流中的每帧填充至视频帧对齐长度的整数倍,并发送给视频输出单元,视频填充单元收到视频解析单元发送的帧结束信号后,根据用户要求的视频帧对齐长度、SEI长度和当前视频帧长度,计算需要填充的数据长度,如用户要求按A字节对齐,SEI长度为B字节,当前视频帧长度为C字节,则填充长度D=A-(B+C)%A,其中%表示取余数,并按照填充长度D输出填充数据至视频输出单元。所述的视频输出单元实现辅助增强信息、原始视频码流和填充内容的分时输出,视频输出单元收到帧起始信号后开始输出数据,首先接收当前帧SEI并输出,然后接收当前帧数据并输出,收到帧结束信号后,接收填充数据并输出。所述的SEI封装原始视频码流包含AUD、SPS(序列参数集,SequenceParameterSet)、PPS(图像参数集,PictureParameterSet)和CU(编码块,CodeSlice),其中SPS和PPS仅I帧;SEI封装时,在视频帧每个AUD前添加SEI;视频填充过程,在CU后进行数据填充,按用户定义的对齐长度进行数据填充,最终输出的视频码流结构为[Fn_block0,Fn_block1,…Fn_block(m-1),Fn_blockMwithPadding_data],其中Fn_block(m-1)表示第n帧视频的第m-1块,每块长度即对齐长度,Fn_blockMwithPadding_data表示第n帧的最后一块,最后一块中包含了填充数据。本专利技术的有益效果由于采用FPGA实现的H.264视频辅助增强信息封装电路,为H.264视频辅助增强信息封装提供了一种有效的解决方案,并具有如下优点:1)采用FPGA实现SEI封装和数据填充,相比软件实现的方法,速度更快,稳定性好,可靠性高;2)采用本专利技术所述SEI封装电路,将视频帧按照用户要求的长度对齐,可以保证后续视频传输环节中每帧数据都可以及时发送出去,不会因为单次传输长度的限制引起视频帧数据残留,有利于降低视频传输延时;3)本专利技术所述SEI封装电路中,SEI内容和填充长度均可由用户自定义,灵活性强:4)本专利技术所述SEI封装电路,采用通用verilogHDL语言实现,易于在不同FPGA之间移植,通用性强。附图说明图1为本专利技术H.264视频辅助增强信息封装电路示意图。图2为本专利技术SEI封装前后视频帧结构。图3为本专利技术SEI封装和视频填充状态流程图。具体实施方式下面结合附图和实施例对本专利技术进一步说明。本专利技术所述H.264视频辅助增强信息封装电路包括视频解析单元、SEI产生单元、视频填充单元和视频输出单元,如图1所示。所述的视频解析单元的功能是解析H.264视频码流,识别H.264码流中一帧的开始和结束,识别帧类型,帧类型为I帧和P帧,并统计视频帧的实际长度;在解析视频码流的同时,将视频原始码流发送给视频输出单元,并将包含帧起始信号、帧结束信号、I帧类型信号、帧长度的视频解析结果发送给SEI产生单元、视频填充单元和视频输出单元,根据H.264标准中码流结构的定义,H.264码流的基本单元为网络抽象层单元(NetworkAbstractionLayerUnits,NALU),NALU包括NALU起始码、NALU类型以及NALU负载数据,其中NALU起始码为0x00000001,NALU类型为起始码后的一个字节,NALU类型共8位,第1位为禁止位,始终为0,为1则表示码流出错,第2~3位为参考级别,第本文档来自技高网...

【技术保护点】
1.一种采用FPGA实现的H.264/AVC视频辅助增强信息封装电路,其特征在于:所述H.264视频辅助增强信息封装电路包括视频解析单元、SEI产生单元、视频填充单元和视频输出单元。所述的视频解析单元的功能是解析H.264视频码流,识别H.264码流中一帧的开始和结束,识别帧类型,帧类型为I帧和P帧,并统计视频帧的实际长度;在解析视频码流的同时,将视频原始码流发送给视频输出单元,并将包含帧起始信号、帧结束信号、I帧类型信号、帧长度的视频解析结果发送给SEI产生单元、视频填充单元和视频输出单元,根据H.264标准中码流结构的定义,H.264码流的基本单元为网络抽象层单元(Network Abstraction Layer Units,NALU),NALU包括NALU起始码、NALU类型以及NALU负载数据,其中NALU起始码为0x00000001,NALU类型为起始码后的一个字节,NALU类型共8位,第1位为禁止位,始终为0,为1则表示码流出错,第2~3位为参考级别,第4~8位是NALU单元类型,H.264码流中视频帧由访问单元分隔符(Access Unit Delimiter,AUD)进行分割,AUD是一种NALU,其中NALU单元类型为0x09,视频解析单元接收到视频码流后,寻找NALU起始码,然后根据NALU类型判断该NALU是否为AUD,即可识别一帧的开始和结束,NALU类型表征该NALU是否为I帧数据,NALU单元类型为0x5,表示该NALU为I帧数据,视频解析单元接收到原始视频码流后,寻找NALU起始码,然后根据NALU类型即可识别NALU是否为I帧;所述的SEI产生单元的功能是接收用户自定义信息,产生符合H.264视频标准的辅助增强信息,并发送给视频输出单元,SEI是一种NALU,其中NALU单元类型为0x06,负载长度由用户定义;SEI产生单元收到视频解析单元的帧起始信号后,开始产生该帧的SEI,SEI包括起始码0x00000001、NALU单元类型0x06、SEI负载长度、I帧标志、用户自定义信息和结束码0x80,所述的SEI负载长度包含单位字节,该帧SEI总长度减去起始码、NALU单元类型和结束码长度,用户自定义信息包含时间、帧长度、特殊帧标志;所述视频填充单元按照用户要求的视频帧对齐长度,将H.264视频码流中的每帧填充至视频帧对齐长度的整数倍,并发送给视频输出单元,视频填充单元收到视频解析单元发送的帧结束信号后,根据用户要求的视频帧对齐长度、SEI长度和当前视频帧长度,计算需要填充的数据长度,如用户要求按A字节对齐,SEI长度为B字节,当前视频帧长度为C字节,则填充长度D=A‑(B+C)%A,其中%表示取余数,并按照填充长度D输出填充数据至视频输出单元;所述的视频输出单元实现辅助增强信息、原始视频码流和填充内容的分时输出,视频输出单元收到帧起始信号后开始输出数据,首先接收当前帧SEI并输出,然后接收当前帧数据并输出,收到帧结束信号后,接收填充数据并输出。...

【技术特征摘要】
1.一种采用FPGA实现的H.264/AVC视频辅助增强信息封装电路,其特征在于:所述H.264视频辅助增强信息封装电路包括视频解析单元、SEI产生单元、视频填充单元和视频输出单元。所述的视频解析单元的功能是解析H.264视频码流,识别H.264码流中一帧的开始和结束,识别帧类型,帧类型为I帧和P帧,并统计视频帧的实际长度;在解析视频码流的同时,将视频原始码流发送给视频输出单元,并将包含帧起始信号、帧结束信号、I帧类型信号、帧长度的视频解析结果发送给SEI产生单元、视频填充单元和视频输出单元,根据H.264标准中码流结构的定义,H.264码流的基本单元为网络抽象层单元(NetworkAbstractionLayerUnits,NALU),NALU包括NALU起始码、NALU类型以及NALU负载数据,其中NALU起始码为0x00000001,NALU类型为起始码后的一个字节,NALU类型共8位,第1位为禁止位,始终为0,为1则表示码流出错,第2~3位为参考级别,第4~8位是NALU单元类型,H.264码流中视频帧由访问单元分隔符(AccessUnitDelimiter,AUD)进行分割,AUD是一种NALU,其中NALU单元类型为0x09,视频解析单元接收到视频码流后,寻找NALU起始码,然后根据NALU类型判断该NALU是否为AUD,即可识别一帧的开始和结束,NALU类型表征该NALU是否为I帧数据,NALU单元类型为0x5,表示该NALU为I帧数据,视频解析单元接收到原始视频码流后,寻找NALU起始码,然后根据NALU类型即可识别NALU是否为I帧;所述的SEI产生单元的功能是接收用户自定义信息,产生符合H.264视频标准的辅助增强信息,并发送给视频输出单元,SEI是一种NALU,其中NALU单元类型为0x06,负载长度由用户定义;SEI产...

【专利技术属性】
技术研发人员:蔚然徐恺
申请(专利权)人:中国航空工业集团公司洛阳电光设备研究所
类型:发明
国别省市:河南,41

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

1