多媒体基础

在视频压缩的过程中, I帧是帧内图像数据压缩,是独立帧。而P帧则是参考I帧进行帧间图像数据压缩,不是独立帧。在压缩后的视频中绝大多数都是P帧,故视频质量主要由P帧表现出来。由于P帧不是独立帧,而只是保存了与邻近的I帧的差值,故实际上并不存在分辨率的概念,应该看成一个二进制差值序列。而该二进制序列在使用熵编码压缩技术时会使用量化参数进行有损压缩,视频的质量直接由量化参数决定,而量化参数会直接影响到压缩比和码率。 视频质量可以通过主观和客观方式来表现,主观方式就是通常人们提到的视频清晰度,而客观参数则是量化参数或者压缩比或者码率。在视频源一样,压缩算法也一样的前提下比较,量化参数,压缩比和码率之间是有直接的比例关系的。 分辨率的变化又称为重新采样。由高分辨率变成低分辨率称为下采样,由于采样前数据充足,只需要尽量保留更多的信息量,一般可以获得相对较好的结果。而由低分辨率变成高分辨率称为上采样,由于需要插值等方法来补充(猜测)缺少的像素点,故必然会带有失真, I frame :帧内编码帧 又称intra picture,I 帧通常是每个 GOP(MPEG 所使用的一种视频压缩技术)的第一个帧,经过适度地压缩,做为随机访问的参考点,可以当成图象。I帧可以看成是一个图像经过压缩后的产物。 P frame: 前向预测编码帧 又称predictive-frame,通过充分将低于图像序列中前面已编码帧的时间冗余信息来压缩传输数据量的编码图像,也叫预测帧; B frame: 双向预测内插编码帧 又称bi-directional interpolated prediction frame,既考虑与源图像序列前面已编码帧,也顾及源图像序列后面已编码帧之间的时间冗余信息来压缩传输数据量的编码图像,也叫双向预测帧; PTS:Presentation Time Stamp。PTS主要用于度量解码后的视频帧什么时候被显示出来 DTS:Decode Time Stamp。DTS主要是标识读入内存中的bit流在什么时候开始送入解码器中进行解码。 在没有B帧存在的情况下DTS的顺序和PTS的顺序应该是一样的。 IPB帧的不同: I frame:自身可以通过视频解压算法解压成一张单独的完整的图片。 P frame:需要参考其前面的一个I frame 或者B frame来生成一张完整的图片。 B frame:则要参考其前一个I或者P帧及其后面的一个P帧来生成一张完整的图片。 两个I frame之间形成一个GOP,在x264中同时可以通过参数来设定bf的大小,即:I 和p或者两个P之间B的数量。 通过上述基本可以说明如果有B frame 存在的情况下一个GOP的最后一个frame一定是P. DTS和PTS的不同: /sys/class/graphics/fb0 bits_pre_pixel 32 每个像素位數 BPP frame buffer 包含/dev/fb0 /fb1 /fb2 /fb3 一般字幕,广告等都是由frame的堆叠而成

Q:编解码是以什么为单位进行的? 
A:在看编码解码的框图的时候,如果你以帧为输入单位来看,可能你会看不懂,所以应该以宏块为输入单位来看,因为编码解码都是以宏块为单位,逐个宏块编解码,然后组合为一帧图像的。这样你就能看明白了。所以个人认为编解码应该是以宏块为单位进行的。

 I帧和P帧的概念比较好懂,B帧的概念有些模糊,只知道加了B帧图像质量会更好,请问对B帧该怎么理解? 
A: B 帧在 MPEG-4 中有四种参考模式,如果是同时参考前后的画面压缩,则记录的是 和 (前画面 pixel 值 + 后画面 pixel 值)/2 的差值,也就是 和 「前后画面的平均」的差值。所以记录的差值个数和 P 帧一样,只有一个,没有增加。而因为 B 帧位于前后画面的中间,以「前后画面的平均」,也就是「前后画面的中间值」来作为预测数值(预测 B 帧的 pixel 数值为多少?如果有误差,再记录差值),这样这个预测数值会比单独使用前一个画面来预测,更接近目前真正的 B 帧的数值,可想而知,如此所需要记录的差值就会很小甚至可以根本不用记录,所以便可以省下很多的 bits,提高压缩率。 
除了压缩率以外,B 帧对画质的影响也是有的,因为 B 帧这种参考前后画面的特性,等于有内插(interpolation)的效果,所以可以减少噪讯。 

片: 一个视频图像可编码成一个或多个片,每片包含整数个宏块(MB),即至少一个MB,最多时每片包含整幅图像的MB。(每片的MB不固定) 
设片的目的: 
限制误码的扩散和传播,编码片相互独立 
某片的预测不能以其他片中的MB做参考 
 
Q:rdp(user data packet protocol) 和 (rtp)real-time transport protocol有什么区别? 
A:
RTP是为了实时传输而在源数据上加了一些时间控制信息 
UDP只是为了传输数据,udp的包可以加上rtp的头,成为一个rtp的数据包 
rtp3984 拆分3种包: 
单一NALU包 
聚合包 
分割包 
经过测试发现,无线网络下,一包大小不能超过1400,只能传QCIF,QP35 

参数集 
在以往视频编解码标准中,GOB\GOP\图像头信息是至关重要的,包含这些信息的包的丢失将直接导致与这些信息相关的数据不可用,因此这些标准大都采用了冗余编码技术来保护这些头信息。为解决这些问题,H.264将这些很少变化并且对大量VCL NALU起作用的信息放在参数集中传送。参数集分为两种,即序列参数集sequence parameter set和图像参数集picture parameter set,前者对一系列连续编码图像起作用,后者对连续编码图像序列中的单独图像起作用。VCL NALU通过标识位来指定它所参考的参数集。为适应多种网络环境,参数集可以带内传送,也可以采用带外方式传送

你可能感兴趣的:(多媒体基础)