JoJo的个人博客

记录精彩的程序人生

目录
音视频系统入门8之H264视频编码原理
/    

音视频系统入门8之H264视频编码原理

H264压缩码率与GOP

H264压缩比

条件:1. YUV格式为YUV420 2. 分辨率为 640x480 3. 帧率为15

码流 640x480x1.5x15x8 = 55m

建议码流:500kpbs

结果:约1/100

码流参考值

https://docs.agora.io/cn

GOP

强相关的一组帧,Group of Picture,存储差值

H264中的I帧P帧和B帧

帧的分类

  • I帧(intraframe frame),关键帧,采用镇内压缩技术。IDR帧输入I帧
  • P帧(forward Predicted frame),向前参考帧。压缩时,只参考前面已经处理的帧,采用帧间压缩技术。它约占I帧的一半大小
  • B帧(Bidirectionally predicted frame),双向参考帧。压缩时,既参考前面已经处理的帧,也参考后面的帧,帧间压缩技术。它约占I帧1/4大小

IDR帧与I帧的区别与联系

  • IDR(Instantaneous Decoder Refresh)解码器立即刷新
  • 每当遇到IDR帧时,解码器就会清空解码器参考buffer中的内容
  • 每个GOP中的第一帧就是IDR
  • IDR帧时一种特殊的I

帧与分组的关系

SPS与PPS

  • SPS(Sequence Parameter Set)

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

  • PPS(Picture Parameter Set)

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

H264中的宏块

H264压缩技术

  • 帧内压缩,解决的是空域数据冗余问题
  • 帧间压缩,解决的是时域数据冗余问题
  • 整数离散余弦变换(DCT),将空间上的相关性变为频域上无关的数据然后进行量化
  • CABAC压缩

宏块

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

宏块的尺寸

帧内压缩

帧内压缩的理论

  • 相邻像素差别不大,所以可以进行宏块预测
  • 人对亮度的敏感度超过色度
  • YUV很容易将亮度和色度分开

帧内预测残差值

帧内压缩的帧类型

  • I帧
  • IDR帧

帧间压缩

  • GOP
  • 参考帧
  • 运动估计(宏块匹配 + 运动矢量)
  • 运动补偿(解码)

宏块查找算法

  • 三步搜索
  • 二维对数搜索
  • 四步搜索
  • 钻石搜素

运动估计

运动矢量与补偿压缩

帧间压缩的帧类型

  • P帧
  • B帧

视频花屏原因

如果GOP分组中有帧丢失,会造成解码端的图像发生错误,这会出现马赛克(花屏)

视频卡顿原因

为了避免花屏问题的发生,当发现有帧丢失时,就丢弃GOP内的所有帧,直到下一个IDR帧重新刷新图像。

I帧是按照帧周期来的,需要一个比较长的时间周期,如果在下一个I帧来之前不显示后来的图像,那么视频就静止不动了,这就是出现了所谓的卡顿现象

H264无所压缩及编码处理流程

DCT变换

数据从分散的变为集中的

VLC压缩

MPEG2

CABAC压缩

H.264

H264参考资料

H264码流

H264码流分层

  • NAL层

    Network Abstraction Layer,视频数据网络抽象层

  • VCL层

    Video Coding Layer,视频数据编码层

码流基本概念

  • SODB(String Of Data Bits)

    原始数据比特流,长度不一定是8的倍数,故需要补齐。它是由VCL层产生的。

  • RBSP(Raw Byte Sequence Payload)

    SODB + trauling bits

    算法是如果SODB最后一个字节不对齐,则补1和多个0。

  • NALU

    NAL Header(1B) + RBSP

Macro Block:宏块

Mb_type: 宏块类型

Mb_pred/sub_mb_pred: 宏块预测值/子宏块预测值

Residual data: 残差值


标题:音视频系统入门8之H264视频编码原理
作者:SunnySky
地址:https://www.tianyang.pub/articles/2020/11/17/1605610931028.html

评论