共 47 篇文章 |
|
1) 单个NAL单元包:荷载中只包含一个NAL单元。当一个NAL单元被分片运送在分片单元(FUs)中时,被引用为分片NAL单元。E: 1 bit 当设置成1, 结束位指示分片NAL单元的结束,即, 荷载的最后字节也是分片NAL单元的最后一个字节。针对H264 做如下PS 封装:每个IDR NALU 前一般都会包含SPS、PPS 等NALU,因此将SPS、PPS、IDR 的NALU 封装为一个PS 包,... 阅3502 转5 评0 公众公开 16-01-15 09:12 |
1、宏块(Macro Block):一个编码图像首先要划分成多个块(4x4 像素)才能进行处理,显然宏块应该是整数个块组成,通常宏块大小为16x16个像素。2、片(Slice):一帧视频图像可编码成一个或者多个片,每片包含整数个宏块,即每片至少一个宏块,最多时包含整个图像的宏块。片共有5种类型:I片(只包含I宏块)、P片(P和I宏块)、B片(B和I宏块... 阅2167 转6 评0 公众公开 15-06-01 15:07 |
包头由PS包起始码、系统时钟基准(SCR-System Clock Reference)的基本部分、SCR的扩展部分和PS复用速率4部分组成。在编码的时候,PTS,DTS和SCR都是由STC(system time clock)生成的,在解码时,STC会再生,并通过锁相环路(PLL-phase lock loop),用本地SCR相位与输入的瞬时SCR相位锁相比较,以确定解码过程是否同步,若不同步,则用这个瞬... 阅2708 转9 评0 公众公开 15-05-28 09:24 |
关于ES、PES、PS以及TS码流。ES是只包含一种内容的数据流,如只含视频或只含音频等,打包之后的PES也是只含一种性质的ES,如只含视频ES的PES,只含音频ES的PES等。PES流是ES流经过PES打包器处理后形成的数据流,在这个过程中完成了将ES流分组、打包、加入包头信息等操作(对ES流的第一次打包)。TS--Transport Stream(传输流)由定长的TS包组成... 阅288 转5 评0 公众公开 15-05-28 09:23 |
H264 编码+打包+解码相关知识。如上图:I frame 的解码不依赖于任何的其它的帧.而p frame的解码则依赖于其前面的I frame或者P frame.B frame的解码则依赖于其前的最近的一个I frame或者P frame及其后的最近的一个P frame.因此,实际的计算公式应该是这样pts=1000*(i_frame_counter*2+pic_order_cnt_lsb)*(time_scale/num_units_in_tick)或者是p... 阅8522 转23 评0 公众公开 14-05-14 10:36 |
P frame:需要参考其前面的一个I frame 或者B frame来生成一张完整的图片。DTS主要用于视频的解码,在解码阶段使用.PTS主要用于视频的同步和输出.在display的时候使用.在没有B frame的情况下.DTS和PTS的输出顺序是一样的.如上图:I frame 的解码不依赖于任何的其它的帧.而p frame的解码则依赖于其前面的I frame或者P frame.B frame的解码则依赖... 阅110 转0 评0 公众公开 14-05-14 10:22 |
P frame:需要参考其前面的一个I frame 或者B frame来生成一张完整的图片。DTS主要用于视频的解码,在解码阶段使用.PTS主要用于视频的同步和输出.在display的时候使用.在没有B frame的情况下.DTS和PTS的输出顺序是一样的.如上图:I frame 的解码不依赖于任何的其它的帧.而p frame的解码则依赖于其前面的I frame或者P frame.B frame的解码则依赖... 阅199 转2 评0 公众公开 14-05-14 10:21 |
buf = buf + 4;int log2_max_frame_num_minus4=Ue(buf,nLen,StartBit);int pic_order_cnt_type=Ue(buf,nLen,StartBit);int log2_max_pic_order_cnt_lsb_minus4=Ue(buf,nLen,StartBit);int num_ref_frames_in_pic_order_cnt_cycle=Ue(buf,nLen,StartBit);int num_ref_frames=Ue(buf,nLen,StartBit);int pic_width_in_mbs_minus1=Ue(buf,nLen,Sta... 阅149 转2 评0 公众公开 14-01-03 15:05 |
if( profile_idc == 100 || profile_idc == 110 ||profile_idc == 122 || profile_idc == 144 ){int chroma_format_idc=Ue(buf,nLen,StartBit);if( pic_order_cnt_type == 0 )int log2_max_pic_order_cnt_lsb_minus4=Ue(buf,nLen,StartBit);int num_ref_frames_in_pic_order_cnt_cycle=Ue(buf,nLen,StartBit);int pic_width_in_mbs_minus1=Ue(b... 阅162 转3 评0 公众公开 14-01-03 15:05 |
JM代码阅读之一SODB RBSP EBSP NALU | JM Code Notes 1 – SODB RBSP EBSP NALU | lsharemy.填充规则见标准文档的7.4.1部分,大概为先填充一个1(rbsp_stop_one_bit),然后都填充0(rbsp_alignment_zero_bit),所以对于上面的SODB,填充一个1,3个0之后,便得到了01000010 00000000 00101000 11110011 00000101 10001001 11001000即42 00 28 ... 阅212 转3 评0 公众公开 13-12-31 18:03 |