世界上最大的大佛:h264流、帧结构

来源:百度文库 编辑:偶看新闻 时间:2024/04/28 12:01:26

 H264码流结构1. H264分层结构H.263定义的码流结构是分级结构,共四层。自上而下分别为:图像层(picturelayer)、块组层(GOB layer)、宏块层(macroblock layer)和块层(block layer)。而与H.263相比,H.264的码流结构和H.263的有很大的区别,它采用的不再是严格的分级结构。H.264的功能分为两层,视频编码层(VCL)和网络提取层(NAL)VCL数据即被压缩编码后的视频数据序列。在VCL数据要封装到NAL单元中之后,才可以用来传输或存储。NAL单元格式[2] 表1所示: 表1 NAL单元格式     NAL头 RBSP NAL头 RBSP RBSP:封装于网络抽象单元的数据称之为原始字节序列载荷RBSP,它是NAL的基本传输单元。其中,RBSP又分为视频编码数据和控制数据。其基本结构是:在原始编码数据的后面填加了结尾比特。一个bit“1”若干比特“0”,以便字节对齐。2. H.264码流结构图通过相关知识的查阅,概括出H.264的码流结构图[2]如图1所示:

图1 H.264的码流结构
 3 H.264码流分析的应用在有些时候,需要从H.264码流中直接取得相关信息(如:图像的宽度和图像的高度等等信息)。下面介绍下取得相关信息的方法:图像的相关信息存储在网络提取层(NAL)的RBSP结构中,要取得图像的相关信息,既要获得图像的相关位。需依据RBSP结构,获得pic_width_in_mbs_minus1和pic_height_in_map_units_minus1两个值,那么宽度为(pic_width_in_mbs_minus1+1)*16,高度为(pic_height_in_map_units_minus1+1)*16,但是有些情况还得考虑nNum_Ref_Frames的值,一般为1。3.1获得试验数据设备:SUNNIC (IP Cam)名字:ST100factoryFirmware版本:p8b8视频格式:H.264(1) 将设备分辨率设成176*144,使用Ethereal等抓包工具抓得一组数据,并去掉相应的RTP头后,该数据为0x00,0x00,0x00,0x01,0x67,0x42,0x00,0x1E,0x99,0xA0,0xB1,0x31。(2) 将设备分辨率设成720*240,使用Ethereal等抓包工具抓得一组数据,并去掉相应的RTP头后,该数据为0x00,0x00,0x00,0x01,0x67,0x42,0xE0,0x1E,0xDA,0x82,0xD1,0xF1。(3) 将设备分辨率设成720*480,使用Ethereal等抓包工具抓得一组数据,并去掉相应的RTP头后,该数据为0x00,0x00,0x00,0x01,0x67,0x42,0xE0,0x1E,0xDB,0x82,0xD1,0xF1。