一种h264帧中提取sps和pps的方法及装置的制造方法

文档序号:8475462阅读:990来源:国知局
一种h264帧中提取sps和pps的方法及装置的制造方法
【技术领域】
[0001] 本发明涉及视频技术领域,特别涉及一种H264帧中提取SPS和PPS的方法及装 置。
【背景技术】
[0002] 随着互联网技术的发展,互联网应用越来越多,形式也越来越多样化。由于远程教 学具有方便快捷、费用低廉等特点,越来越受到广大师生的喜爱,通过互联网,学生可以方 便的获取教学资料进行学习。为了提高远程教学互动性,目前师生间常采用视频和语音方 式在互联网上进行交流。如学生端与教师端建立连接后,学生端开启摄像头录制视频,并实 时上传给教师端。但是由于是直接传输视频流,而不是视频文件,所以没有文件头,也就没 有视频的描述信息。教师端在没有描述信息的情况下是无法对视频进行解码和播放的。故 为了使教师端能对视频进行解码和播放,必须在发送视频之前,将视频描述信息发送给教 师端,以使教师端更够根据该视频描述信息生成视频的文件头,从而达到正常播放视频的 目的。另外由于H264具有很高的数据压缩比,在网络传输过程中所要带宽更少,故广泛的 用于网络视频传输。
[0003] 综上所述,急需一种从H264帧中提取视频描述信息的方法,在发送视频之前,将 视频描述信息发送给远程教学对端,从而达到对端能正常播放视频的目的。

【发明内容】

[0004] 本发明提供一种H264帧中提取SPS和PPS的方法及装置,用以在发送视频之前, 将视频描述信息发送给远程教学对端,从而实现对端能正常播放视频的目的。
[0005] 本发明提供一种H264帧中提取SPS和PPS的方法,包括:
[0006] 从H264帧开始位置开始,根据同步码确定NAL单元的数目N及每个NAL单元开始 位置;
[0007] 根据每个NAL单元开始位置,遍历N个NAL单元的NAL头;
[0008] 根据NAL单元的NAL头信息,定位序列参数集SPS和图像参数集PPS的NAL单元 的位置;
[0009] 根据SPS和PPS的NAL单元的位置,将SPS和PPS数据分别保存在第一缓存、第二 缓存中。
[0010] 本发明实施例的一些有益效果可以包括:
[0011] 根据H264帧结构,从该帧中提取出视频的描述信息SPS和PPS数据,并在传输视 频流数据到远程教学的对端前,将该视频描述信息发送给对端,对端根据收到的视频描述 信息,从而可以正常的播放接收到的视频流数据。
[0012] 在一个实施例中,所述同步码为4字节的0x00 00 00 01。
[0013] 该实施例中,通过简单的查找H264帧中的同步码0x00 00 00 01,即可以定位到 每个NAL单元的位置信息,然后根据NAL单元的NAL头信息,获取SPS和PPS数据并保存, 待传输给远程教学的对端。
[0014] 在一个实施例中,所述根据NAL单元的NAL头信息,定位SPS的NAL单元的位置的 方法为:判断当前NAL头是否为0x67,是则该NAL单元为SPS的NAL单元,并记录该NAL单 元的位置为SPS的NAL单元的位置;否则不是SPS的NAL单元。
[0015] 该实施例中,因为SPS的NAL单元的NAL头为0x67,因此,若NAL单元的NAL头为 0x67,则该NAL单元为SPS的NAL单元。从而达到获取SPS数据的目的。
[0016] 在一个实施例中,所述根据NAL单元的NAL头信息,定位PPS的NAL单元的位置的 方法为:判断当前NAL头是否为0x68,是则该NAL单元为PPS的NAL单元,并记录该NAL单 元的位置为PPS的NAL单元的位置;否则不是PPS的NAL单元。
[0017] 该实施例中,因为PPS的NAL单元的NAL头为0x68,因此,若NAL单元的NAL头为 0x68,则该NAL单元为PPS的NAL单元。从而达到获取PPS数据的目的。
[0018] 本发明还提供一种H264帧中提取SPS和PPS的装置,包括:NAL单元信息获取模 块、NAL头获取模块、位置获取模块和保存模块;
[0019] 所述NAL单元信息获取模块,用于从H264帧开始位置开始,根据同步码确定NAL 单元的数目N及每个NAL单元开始位置,并将信息发送给所述NAL头获取模块;
[0020] 所述NAL头获取模块,用于接收所述NAL单元信息获取模块发来的NAL单元的数 目N及每个NAL单元开始位置,并根据每个NAL单元开始位置,遍历N个NAL单元的NAL头, 并将NAL头信息发送给所述位置获取模块;
[0021] 所述位置获取模块,用于接收所述NAL头获取模块发来的NAL头信息,定位SPS和 PPS的NAL单元的位置,并将该信息发送给所述保存模块;
[0022] 所述保存模块,用于根据SPS和PPS的NAL单元的位置,将SPS和PPS数据分别保 存在第一缓存、第二缓存中。
[0023] 在一个实施例中,所述位置获取模块包括SPS位置获取模块和PPS位置获取模 块;
[0024] 所述SPS位置获取模块,接收所述NAL头获取模块发来的NAL头信息,定位SPS的 NAL单元的位置,并将该位置发送给所述保存模块;
[0025] 所述PPS位置获取模块,接收所述NAL头获取模块发来的NAL头信息,定位PPS的 NAL单元的位置,并将该位置发送给所述保存模块。
[0026] 在一个实施例中,所述SPS位置获取模块包括SPS判定单元和SPS位置记录单元;
[0027] 所述SPS判定单元,用于判断当前NAL头是否为0x67,是则判定该NAL单元为SPS 的NAL单元,并向SPS位置记录单元发送第一通知消息,否则不是SPS的NAL单元;
[0028] 所述SPS位置记录单元,用于根据所述第一通知消息,将当前NAL单元的位置记录 为SPS的NAL单元的位置,并将SPS的NAL单元的位置发送给所述保存模块。
[0029] 在一个实施例中,所述PPS位置获取模块包括PPS判定单元和PPS位置记录单元;
[0030] 所述PPS判定单元,用于判断当前NAL头是否为0x68,是则判定该NAL单元为PPS 的NAL单元,并向SPS位置记录单元发送第二通知消息,否则不是PPS的NAL单元;
[0031] 所述PPS位置记录单元,用于根据所述第二通知消息,将当前NAL单元的位置记录 为PPS的NAL单元的位置,并将PPS的NAL单元的位置发送给所述保存模块。
[0032] 本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变 得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明 书、权利要求书、以及附图中所特别指出的结构来实现和获得。
[0033] 下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
【附图说明】
[0034] 附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实 施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
[0035] 图1为本发明实施例中一种H264帧中提取SPS和PPS的方法的流程图;
[0036] 图2为本发明实施例一中提供一种H264帧中提取SPS的方法的流程图;
[0037] 图3为本发明实施例二中提供一种H264帧中提取PPS的方法的流程图;
[0038] 图4为本发明实施例一中一种H264帧中提取SPS和PPS的装置的结构示意图;
[0039] 图5为本发明实施例中位置获取模块的结构示意图;
[0040] 图6为本发明实施例中SPS位置获取模块的结构示意图;
[0041] 图7为本发明实施例中PPS位置获取模块的结构示意图。
【具体实施方式】
[0042] 以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实 施例仅用于说明和解释本发明,并不用于限定本发明。
[0043] 图1为本发明实施例中一种H264帧中提取SPS和PPS的方法的流程图。如图1 所示,该方法包括以下步骤S101-S104 :
[0044] 步骤SlOl :从H264帧开始位置开始,根据同步码确定NAL单元的数目N及每个NAL 单元开始位置。
[0045] H264的功能分为两层:视频编码层(VCL,Video Coding Layer)和网络提取层 (NAL,Network Abstraction Layer)。VCL数据即编码处理的输出,它表示被压缩编码后的 视频数据序列。在VCL数据传输或存储之前,这些编码的VCL数据,先被映射或封装进NAL 单元中。
[0046] 每个NAL单元包括一个原始字节序列负荷(RBSP,Raw Byte Sequence Payload)、 一组对应于视频编码的NAL头信息。NAL头信息(一个字节)定义了 RBSP单元的类型,NAL 单元的其余部分为RBSP数据。H264的编码视频序列包括一系列的NAL单元。但是由于NAL 单元中没有给出其长度信息,实际的传输、存储系统需要增加额外的头(同步码)实现各个 NAL单元的定界。从而能根据同步码确定NAL单元的数目N及每个NAL单元开始位置。
[0047] 步骤S102 :根据每个NAL单元开始位置,遍历N个NAL单元的NAL头。
[0048] 其中,NAL头信息定义了 RBSP单元的类型,占用了一个字节的长度,按照比特自高 至低排列可以表示如下:〇AABBBBB。其中,AA用于表示该NAL是否可以丢弃(有无被其后 的NAL参考),OOb表示没有参考作用,可丢弃,如B slice、SEI等,非零--包括01b、10b、 lib--表示该NAL不可丢弃,如SPS、PPS、I Slice、P Slice等。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1