H264编码原理

H264压缩比

条件:1.YUV格式为YUV420 2.分辨率为640×480 3.帧率为15
建议码流500kbps,通过计算可以得到H264压缩比约为1:100。

GOP

GOP中帧与帧之间的差别小

I/P/B帧

I帧:关键帧,采用帧内压缩技术。IDR帧属于I帧。
P帧:向前参考帧,压缩时,只参考前面已经处理的帧,采用帧间压缩技术。它占I帧的一半大小。
B帧:双向参考帧,压缩时,既参考前面已经处理的帧,也参考后面的帧,采用帧间压缩技术。它占I帧1/4大小。
B帧的解码要参考I帧(也可以是前面的P帧)与P帧,B帧与B帧之间是没有任何参考的。
解码之后播放不分I帧,B帧,P帧,因为解码之后都是一幅幅图像。
IDR帧与I帧的区别与联系:IDR解码器立即刷新,每当遇到IDR帧时,解码器就会清空解码器参考buffer中的内容,每个GOP中的第一帧就是IDR帧。

SPS与PPS

SPS
序列参数集,作用于一串连续的视频图像。
PPS
图像参数集,作用于视频序列中的图像。

H264压缩技术

有损压缩包括帧内压缩和帧间压缩,帧内压缩解决的是空域数据冗余问题,帧间压缩解决的是时域数据冗余的问题。
无损压缩包括DCT,CABAC压缩,其中DCT就是指离散余弦变换,将空间上的相关性变为频域上无关的数据然后进行量化。

宏块

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

帧内压缩的理论

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

帧间压缩原理

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

宏块查找算法

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

视频花屏原因

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

视频卡顿原因

为了避免花屏问题的发生,当发现有帧丢失时,就会丢弃GOP内所有帧,直到下一个IDR帧重新刷新图像。I帧是按照帧周期来的,需要一个比较长的时间周期,如果在下一个I帧来之前不显示后来的图像,那么视频就静止不动了,这就是出现了所谓的卡顿现象。

无损压缩

DCT变换(数据从分散到集中)
VLC压缩(MPEG2)
CABAC压缩(H.264)

H264码流分层

NAL层 视频数据网络抽象层
VCL层 视频数据编码层

码流基本概念

SODB:原始数据比特流,长度不一定是8的倍数,故需要补齐。它是由VCL层产生。
RBSP:SODB+trailing bits 算法是如果SODB最后一个字节不对齐,则补1和多个0。
NALU:NAL Header+RBSP

profile与level

H264 profile是对视频压缩特性的描述,profile越高,就说明采用了越高级的压缩特性。
H264 level是对视频的描述,level越高,视频的码率,分辨率,fps越高。

帧相关

帧数 log2_max_frame_num_minus4
参考帧数 max_num_ref_frames
显示帧序号 pic_order_cnt_type

Slice Header

帧类型
GOP中解码帧序号
预测权重
滤波

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值