本文共 2258 字,大约阅读时间需要 7 分钟。
为什么要有YUV这种数据出来?(YUV相比RGB的优点)
YUV是一种用于视频编码和处理的像素格式,主要用于描述图像的亮度(Y)和色彩信息(U和V)。YUV与RGB的主要区别在于:
存储空间优化:
- 除了YUV444外,其他格式(如YUV422、YUV420、YUV411)在存储空间上都比RGB格式占用更少。
- YUV444与RGB格式占用的存储空间相同,但其它YUV格式的存储需求远低于RGB。
色彩模型与编码效率:
- YUV的色彩模型基于YCbCr,Y表示亮度,U和V分别表示绿色和红色分量。
- 与RGB格式相比,YUV的色彩信息编码效率更高,能够在更少的数据量下传达高质量的图像信息。
H264与H265的主要区别
H264和H265(HEVC)是主流的视频编码标准,两者在压缩效率和技术特性上有显著差异:
分辨率和压缩能力:
- H264的压缩率相比H265理论上较低,H265的压缩率通常能达到H264的1.5倍至2倍。
宏块划分:
- H264宏块尺寸固定为16x16。
- H265宏块尺寸根据视频内容的变化幅度动态调整,支持从8x8到64x64的多种分辨率。
运动编码能力:
- H265支持更复杂的运动编码技术,能够在相同压缩率下实现更好的运动预测和补偿效果。
格式容容性:
- H265支持更宽广的色彩范围和更高的动态范围,适合高动态和广色域视频内容。
平常电视的帧率通常是多少?
- 标准电视:通常以25帧/秒(25Hz)为帧率,适用于黑白电视和早期彩色电视。
- 高清电视:帧率通常为60帧/秒(60Hz),以提升画面流畅度和清晰度。
- 游戏与动画:帧率通常为30帧/秒(30Hz),以支持较高的画面更新频率。
SPStm的作用
SPStm(Slice Parameter Set)在H264/H265视频编码中承担以下重要功能:
Profile和Level的解析:
- Profile决定了视频的压缩级别和支持的编码特性。
- Level决定了视频的最大分辨率和比特率。
视频尺寸的计算:
- Pic_width_in_mbs_minus1和Pic_height_in_mbs_minus1可用于计算视频的宽度和高度。
帧率控制:
- Frame_mbs_only_flag用于标识帧编码与场编码的区别。
- Log2_max_frame_num_minus4可用于计算最大GOP(Group of Pictures)数量。
- Max_num_ref_frames可用于确定参考帧的数量。
颜色平面和场编码信息:
- Separate_color_plane_flag和Color_plane_id用于标识颜色分量的分离和位置。
- Field_pic_flag和Bottom_field_flag用于场编码信息。
IDR帧检测:
- Idr_pic_id用于标识独立决断帧(Intra-Display Refresh),用于减少闪烁现象。
PPS的作用
PPStm(Picture Parameter Set)在H264/H265编码中主要负责以下功能:
熵编码控制:
- 确定是否启用权重预测(Weighted prediction),优化压缩效率。
分片处理:
纵向预测控制:
Slice Header用于定义解码顺序和分片信息,具体包括:
解码顺序:
- Slice Header中定义了当前分片的解码顺序和位置。
颜色分量信息:
- Separate_color_plane_flag用于标识颜色分量的分离。
- Color_plane_id用于指定当前分片的颜色分量。
场编码信息:
- Field_pic_flag和Bottom_field_flag用于标识场编码信息。
IDR帧信息:
H264的编解码框架
H264的编解码框架包括以下主要步骤:
编码流程
帧内预测(Intra prediction):
残差编码:
变换和量化:
熵编码:
NALU编码:
- 将编码数据组织为NALU(Network Abstraction Layer Unit)单元。
解码流程
熵解码:
逆量化:
变换反转换:
帧重构:
H264的码流结构
H264的码流结构基于NALU单元,主要包括以下组成部分:
NALU Header:
- 1字节的NALU Header,包含重要性标志位和NALU类型。
NALU Body:
- 包含RBSP数据。
- RBSP数据通过SODB(Sparse Transform of Bytes)存储,通常以1字节的填充位和多个0结尾形成RBSP。
Slice Header:
Slice Data:
PPI与DPI的定义
-
PPI(Pixels per Inch):表示屏幕每英寸上的像素数量。
-
DPI(Dots per Inch):表示屏幕每英寸上的点数,通常用于打印和显示设备。
-
300 PPI:表示屏幕像素密度达到视网膜水平,能够提供视觉舒适的显示效果。
转载地址:http://rucc.baihongyu.com/