slice_type=get_slice_type(slice_data) ifslice_type==0orslice_type==1orslice_type==3orslice_type==4: # slice类型为0、1、3或4时,表示为P帧 returnTrue returnFalse defis_B_frame(slice_data): """判断是否为B帧""" slice_type=get_slice_type(slice_data) ifslice_type==5orslice_type==...
intget_slice_type(unsignedchar*slice_data,intlength){ shortslice_header=((short)slice_data[0]<<8)|slice_data[1]; intslice_type=(slice_header>>9)&0x07; returnslice_type; } boolis_I_frame(unsignedchar*slice_data,intlength){ intslice_type=get_slice_type(slice_data,length); if(slice_...
包含的信息:SPS,PPS,访问单元分隔符,SEI,I帧包 首先我们来看下vedio tag 如果TAG包中的TagType==9时,就表示这个TAG是video. StreamID之后的数据就表示是VideoTagHeader,VideoTagHeader结构如下: Field
那么如果NLAU传输视频压缩数据时,编码器没有开启DP(数据分割)机制,则一个片就是一个NALU,一个 NALU 也就是一个片。否则,一个片由三个 NALU 组成,即DPA、DPB和DPC,对应的nal_unit_type 类型为 2、3和4。 通常情况我们看到的NLAU类型就是SPS、PPS、SEI、IDR的slice、非IDR这几种。 上面站在NALU的角度看...
NAL nal_unit_type中的1(非IDR图像的编码条带)、2(编码条带数据分割块A)、3(编码条带数据分割块B)、4(编码条带数据分割块C)、5(IDR图像的编码条带)种类型 与 Slice种的三种编码模式:I_slice、P_slice、B_slice 还有frame的3种类型:I frame、P frame、 B frame之间有什么映射关系么?
Slice是片的意思,264中把图像分成一帧(frame)或两场(field),而帧又可以分成一个或几个片(Slilce);片由宏块(MB)组成。宏块是编码处理的基本单元。 2、NAL nal_unit_type中的1(非IDR图像的编码条带)、2(编码条带数据分割块A)、3(编码条带数据分割块B)、4(编码条带数据分割块C)、5(IDR图像的编码条带)...
取值0~3,代表当前这个NALU的重要性,取值越大,代表当前NALU越重要,就需要优先被保护。尤其是当前NALU为图像参数集、序列参数集或IDR图像时,或者为参考图像条带(片/Slice),或者为参考图像的条带数据分割时,nal_ref_idc值肯定不为0。 而当NALU 类型,nal_unit_type为6、9、10、11、或12时,nal_ref_idc都为0。
Nalu Type的定义: enum NalUnitType { NAL_UNIT_CODED_SLICE_TRAIL_N = 0, // 0 NAL_UNIT_CODED_SLICE_TRAIL_R, // 1 NAL_UNIT_CODED_SLICE_TSA_N, // 2 NAL_UNIT_CODED_SLICE_TLA, // 3 NAL_UNIT_CODED_SLICE_STSA_N, // 4 NAL_UNIT_CODED_SLICE_STSA_R, // 5 ...
int nal_unit_type; char* data; }; enum NaluType{ NALU_TYPE_SLICE = 1, NALU_TYPE_DPA = 2, NALU_TYPE_DPB = 3, NALU_TYPE_DPC = 4, NALU_TYPE_IDR = 5, NALU_TYPE_SEI = 6, NALU_TYPE_SPS = 7, NALU_TYPE_PPS = 8,
H264除了对视频压缩处理之外,为了方便网络传输,提供了对应的视频编码和分片策略;类似网络数据封装成IP帧,在H264中将其称为组(GOP,gruop of pictures)、片(slice)、宏块(Macroblock)这些一起组成了H264的码流分层结构;H264将其组织成为序列(GOP)、图片(pictrue)、片(slice)、宏块(Macroblock)、子块(subblock)等...