H264(1)

H264的压缩比?

条件:

1、YUV格式为YUV420

2、分辨率为640x480

3、帧率为15

 

码率为 640 * 480 * 1.5 * 15 = 6912000字节

由于网络传输的是bit 所以bit率= 6912000 * 8 = 55296000 bit = 55M

H264建议的码率是500k

我们可以得到压缩比约1/100

 

H264建议的码率500K不是算出来的,而是经验总结

我们可以查看声网的说明

https://docs.agora.io/cn

https://docs.agora.io/cn/Video/video_profile_apple?platform=iOS 我们在这里可以看到建议码流

 

什么是GOP

  • GOP 中帧与帧之间的差别很小
  • GOP和GOP之间的差别很大

GOP就是将一些帧,按照相关性进行分组进行存储,由于GOP中图像相近,就可以通过算法来进行压缩。

I/P/B帧

  • I帧(intraframe frame),关键帧,关键帧采用帧内压缩技术,IDR帧属于I帧(GOP帧中的第一帧就是IDR帧,I帧包含IDR帧),I帧不依赖任何帧
  • P帧(forward predicated frame),向前参考帧。压缩时,只参考前面已经处理的帧,采用帧间压缩技术,它占I帧的一半大小
  • B帧(Bidirectionally predicted frame),双向参考帧。压缩时,即参考前面已经处理好的帧,也参考后面的帧。帧间压缩技术。它占I帧的1/4大小

 

B 帧因为是即参考参考前面的帧又参考后面的帧,cpu处理速度就慢,所以不可以都是B帧。

现实中音视频会议(实时通讯),看重的是速度,所以使用I 、P 帧

音视频转码的服务中会大量使用B帧(目的是为了减少存储空间)

 

什么是IDR帧

IDR(Instantaneous Decoder Refresh)解码器立即刷新

一组帧中,按照相关性分成若干GOP,GOP的第一帧是IDR。当到达一个新的GOP时,就会刷新清空缓冲区,再解析新的IDR帧。

每个GOP中的第一帧IDR帧

IDR帧包含于I帧

GOP的编码顺序与播放顺序

 

解码顺序是IPBBBPBBBIBBBPBBB

播放顺IBBBPBBBPBBBIBBBP

 

SPS与PPS

不能称为帧,属于I帧的一部分

SPS----Sequence Parameter Set 序列参数集

作用于一串连续的视频图像。如seq_parameter_set_id,帧数及POC(picture order count)的约束,参考帧数目,解码图像尺寸和帧场编码模式选择标识等。

 

PPS-----picture parameter set

图像参数集,作用视频序列中的图像。如pic_parameter_set_id,熵编码模式选择标识、片组数目、初始量化参数和去方块滤波系数调整标识。

 

H264压缩技术

  • 帧内压缩,解决的是空域数据冗余问题(空域-一张图片占用一定的空间,比如一张图片的背景是一个颜色,那么就可以用很少的数据量来进行标识,而无需一个一个点的标识)
  • 帧间压缩,解决的是时域数据的冗余问题(一段时间内,后面的帧参考前面的帧,只需要对变化的部分进行压缩就可以了)
  • 整数离散余弦变换(DCT),将空间上的相关性变为频域上无关的数据然后进行量化(真正有数据的进行压缩,其余变为0)
  • CABAC压缩

前两点是有损压缩

后两点是无损压缩

 

宏块

  • 宏块是视频压缩操作的基本单元
  • 无论是帧内压缩还是帧间压缩,他们都是以宏块为单位的

宏块划分越细,越容易控制

常见的宏块划分

16 * 16    8 * 16  16*8  8 * 8  

8 * 8  4 * 4   4  * 8  8 *  4 

 

 

 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值