再探网络流媒体传输

—— 就是影像动画中最小单位的单幅影像画面,相当于电影胶片上的每一格镜头。而在实际压缩时,会采取各种
算法减少数据的容量,其中 IPB 就是最常见的。
1 、基本概念
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流在什么时候开始送入解码器中进行解码。
ps: 在没有 B 帧存在的情况下 DTS 的顺序和 PTS 的顺序应该是一样的。
2 I B P 的特点
I 帧特点 :
1. 它是一个全帧压缩编码帧。它将全帧图像信息进行 JPEG 压缩编码及传输 ;
2. 解码时仅用 I 帧的数据就可重构完整图像 ;
3.I 帧描述了图像背景和运动主体的详情 ;
4.I 帧不需要参考其他画面而生成 ;
5.I 帧是 P 帧和 B 帧的参考帧 ( 其质量直接影响到同组中以后各帧的质量 );
6.I 帧是帧组 GOP 的基础帧 ( 第一帧 ), 在一组中只有一个 I ;
7.I 帧不需要考虑运动矢量 ;
8.I 帧所占数据的信息量比较大。
P : 前向预测编码帧。
P 帧的预测与重构 :P 帧是以 I 帧为参考帧 , I 帧中找出 P 某点 的预测值和运动矢量 ,
取预测差值和运动矢量一起传送。在接收端根据运动矢量从 I 帧中找出 P 某点 的预测 FFmpeg 基础库编程开发》 ----czc1009
29
值并与差值相加以得到 P 某点 样值 , 从而可得到完整的 P 帧。
P 帧特点 :
1.P 帧是 I 帧后面相隔 1~2 帧的编码帧 ;
2.P 帧采用运动补偿的方法传送它与前面的 I P 帧的差值及运动矢量 ( 预测误差 );
3. 解码时必须将 I 帧中的预测值与预测误差求和后才能重构完整的 P 帧图像 ;
4.P 帧属于前向预测的帧间编码。它只参考前面最靠近它的 I 帧或 P ;
5.P 帧可以是其后面 P 帧的参考帧 , 也可以是其前后的 B 帧的参考帧 ;
6. 由于 P 帧是参考帧 , 它可能造成解码错误的扩散 ;
7. 由于是差值传送 ,P 帧的压缩比较高。
B : 双向预测内插编码帧。
B 帧的预测与重构
B 帧以前面的 I P 帧和后面的 P 帧为参考帧 ,“ 找出 ”B 某点 的预测值和两个运动矢
, 并取预测差值和运动矢量传送。接收端根据运动矢量在两个参考帧中 找出 ( 算出 )” 预测
值并与差值求和 , 得到 B 某点 样值 , 从而可得到完整的 B 帧。
B 帧特点
1.B 帧是由前面的 I P 帧和后面的 P 帧来进行预测的 ;
2.B 帧传送的是它与前面的 I P 帧和后面的 P 帧之间的预测误差及运动矢量 ;
3.B 帧是双向预测编码帧 ;
4.B 帧压缩比最高 , 因为它只反映丙参考帧间运动主体的变化情况 , 预测比较准确 ;
5.B 帧不是参考帧 , 不会造成解码错误的扩散。
:I B P 各帧是根据压缩算法的需要 , 是人为定义的 , 它们都是实实在在的物理帧 , 至于图像
中的哪一帧是 I , 是随机的 , 一但确定了 I , 以后的各帧就严格按规定顺序排列
从上面的解释看,我们知道 I P 的解码算法比较简单,资源占用也比较少, I 只要自己完成就行了, P 呢,也
只需要解码器把前一个画面缓存一下,遇到 P 时就使用之前缓存的画面就好了,如果视频流只有 I P ,解码器可
以不管后面的数据,边读边解码,线性前进,大家很舒服。
但网络上的电影很多都采用了 B 帧,因为 B 帧记录的是前后帧的差别,比 P 帧能节约更多的空间,但这样一来,
文件小了,解码器就麻烦了,因为在解码时,不仅要用之前缓存的画面,还要知道下一个 I 或者 P 的画面(也就是
说要预读预解码),而且, B 帧不能简单地丢掉,因为 B 帧其实也包含了画面信息,如果简单丢掉,并用之前的画
面简单重复,就会造成画面卡(其实就是丢帧了),并且由于网络上的电影为了节约空间,往往使用相当多的 B 帧,
B 帧用的多,对不支持 B 帧的播放器就造成更大的困扰,画面也就越卡。
一般平均来说, I 的压缩率是 7 (跟 JPG 差不多), P 20 B 可以达到 50 ,可见使用 B 帧能节省大量空间,节
省出来的空间可以用来保存多一些 I 帧,这样在相同码率下,可以提供更好的画质。
3 GOP
GOP Group of Pictures 画面组
GOP Group of Pictures )策略影响编码质量:所谓 GOP ,意思是画面组,一个 GOP 就是一组连续的画面。 MPEG
编码将画面(即帧)分为 I P B 三种, I 是内部编码帧, P 是前向预测帧, B 是双向内插帧。简单地讲, I 帧是一
个完整的画面,而 P 帧和 B 帧记录的是相对于 I 帧的变化。没有 I 帧, P 帧和 B 帧就无法解码,这就是 MPEG 格式
难以精确剪辑的原因,也是我们之所以要微调头和尾的原因。 MPEG-2 帧结构
MPEG-2 压缩的帧结构有两个参数,一个是 GOP Group Of Picture )图像组的长度,一般可按编码方式从 1 15
另一个是 I 帧和 P 帧之间 B 帧的数量,一般是 1 2 个。前者在理论上记录为 N ,即多少帧里面出现一次 I 帧;后者
描述为多少帧里出现一次 P 帧,记录为 M
下面举例说明:
在如上图中, GOP (Group of Pictures) 长度为 13 S0~S7 表示 8 个视点, T0~T12 GOP 13 个时刻。每个 GOP
包含帧数为视点数 GOP 长度的乘积。在该图中一个 GOP 中,包含 94 B 帧。 B 帧占一个 GOP 总帧数的
90.38% GOP 越长,B 帧所占比例更高,编码的率失真性能越高。下图测试序列 Race1 在不同 GOP 下的率失真
性能对比。
1.7.4 分辨率
这里有 2 个概念, 分别是:
a. 物理分辨率 , 即手机屏幕能显示的像素数,用 W x H 个像素表示。常见的手机屏幕分辨率为 320x240(QVGA),
着大屏幕手机的普及, 更高的分辨率也开始出现 . 例如 : 480x320(iphone),640x360(nHD, 诺基亚触屏系列常
),640x480(VGA, 多普达系列常见 ), 甚至高达 852x480( 夏普高端手机常见 ).
b. 视频文件的分辨率, 这个是指视频画面的实际分辨率 , 如, 320x240, 480x272, 640x480 等等。
一般来说,大部分手机的解码芯片不支持超过其屏幕物理分辨率的视频 , 部分可以支持超过其屏幕物理分辨率的视
频, 例如 , 虽然 iphone 的屏幕物理分辨率为 480x320, 但它支持 640x480 的视频, 此时播放的画面实际是把原视
频缩小的 . FFmpeg 基础库编程开发》 ----czc1009
32
1.7.5 码率
一般用多少 kbps( 千比特 / ) 或者 mbps ( 兆比特 / ) 来表示。 手机解码芯片所支持的码率一般都在 1Mbps 以下 .
1.7.6 帧率
(FPS, / ), 就是视频画面刷新的速度, 作为参考 , 国内电视机一般是 25FPS, 电影标准为 24FPS. 手机芯片, 最
高支持 30FPS, 早期型号最大只能 15fps
1.7.7 RGB YUV
RGB 指的是红绿蓝,应用还是很广泛的,比如显示器显示, bmp 文件格式中的像素值等;而 yuv 主要指亮度和
两个色差信号,被称为 luminance chrominance 他们的转化关系可以自己去查一下,我们视频里面基本上都是用
yuv 格式。
YUV 文件格式又分很多种,如果算上存储格式,就更多了,比如 yuv444 yuv422 yuv411 yuv420 等等,视
频压缩用到的是 420 格式,这是 因为人眼对亮度更敏感些,对色度相对要差些。另外要注意几个英文单词的意思,
比如: packet planar interlace progressive 等。
 
 

一些远程桌面监控是通过编码成JPEG之后发送的,或者是其他的压缩方式,这样就会造成数据量太大的问题。但是使用H264直播就会需要缓存数据帧的问题。

提到M-JPEG和H264两个网络视频格式,就要谈及MPEG4H264MPEG4的一部分。
  JPEG/M-JPEG
  1、JPEG是一种静止图像的压缩标准,是一种标准的帧内压缩编码方式。当硬件处理速度足够快时,JPEG就能用于实时动图像的视频压缩。在画面变动较小时能提供不错的图像质量,传输速度快,缺点是数据量较大。
  2、M-JPEG源于JPEG压缩技术,是一种简单的帧内JPEG压缩,压缩图像质量较好,在画面变动情况下无马赛克,但由于压缩技术本身限制,压缩比例小(录像时每小时约1-2GB空间,网络传输时需要2M带宽)。不符合长时间连续录像,不适用视频图像的网络传输。
  MPEG-4
  MPEG-4是为移动通信设备在Internet上实时传输视音频信号而制定的低速率、高压缩比的视音频编码标准。MPEG-4面向对象的压缩方式,不像MPEG-1和MPEG-2简单将图像分为像块,而是根据图像的内容,把其中的对象(物体、人物、背景)分离出来,分别进行帧内、帧间编码,并允许在不同的对象之间灵活分配码率.,对重要的对象分配较多的字节,对次要的对象分配较少的字节,而提高压缩比,在较低的码率下获得较好的视频效果。
  MPEG-4的优势:
  1、具有很好的兼容性;
  2、MPEG-4比其他算法提供更好的压缩比,最高达 200:1;
  3、MPEG-4在提供高压缩比的同时,对数据的损失很小。
  综上,MPEG-4大幅度的降低录像存储容量,获得较高的录像清晰度,适用于长时间实时录像的需求,具备在低带宽网络上优良的传输能力。
  H.264
  H.264是 ITU-T的VCEG(视频编码专家组)和ISO/IEC的MPEG(活动图像编码专家组)的联合视频组(JVT:joint video team)开发的数字视频编码标准,既是ITU-T的H.264,又是ISO/IEC的MPEG-4的第10 部分。
  H.264和前几个H.26X的标准一样,也用DPCM加变换编码的混合编码模式。但采用“回归基本”的简洁设计,获得比H.263++好很多的压缩性能;加强了对各种信道的适应能力,采用“网络友好”的结构和语法,有利于对误码和丢包的处理;应用目标范围较宽,以满足不同速率、不同解析度以及不同传输(存储)场合的需求。
  如果从单个画面清晰度比较,MPEG4有优势;从动作连贯性上的清晰度,H.264有优势。H.264的优越性能代价是计算复杂度的增加
  所以,相比之下:
  M-JPEG优点是图像清晰度好,支持第三方工具打开,对图像计算处理要求低,缺点是数据量大,储存空间,网络带宽要求高;
  H264优点是数据量小,储存空间,网络要求低,缺点是图像稍差,专用格式很少第三方工具支持,对图像计算处理硬件要求高。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值