一、VUI参数概览
参数名称 | 参数类型 | 参数含义 | 参数配置 |
i_width | int | 视频图像的宽 | |
i_height | int | 视频图像的高 | |
i_csp | int | 视频图像数据格式 | 参见X264_CSP_XX定义 |
i_bitdepth | int | 位元深度 | 默认是8bit。X264编码器支持10bit编码,但是需要解码器也配套支持,才可用。 |
i_level_idc | int | 指明编码器所使用的编码复杂度水平。参见x264_levels。 | 参数具体含义,请参见Recommendation H.264协议标准中Table A-1 – Level limits介绍 |
i_frame_total | int | 编码总帧数(调试时使用??) | 默认0 |
i_nal_hrd | int | hypothetical reference decoder (HRD) 假想参考解码器:一个假设的解码器模型,规定了对于编码过程中可能处理的符合标准的NAL单元流或字节流的可变性的约束。 用来检验编码器产生的符合该标准的NAL单元流或字节流的偏差值。蓝光视频、电视广播及其它特殊领域有此要求。 |
#define X264_NAL_HRD_NONE 0 #define X264_NAL_HRD_VBR 1 #define X264_NAL_HRD_CBR 2 |
i_sar_height | int | 样本宽高比的高度 | Sample Aspect Ratio,强制改变视频的宽高比。 实现原理是将SAR信息通过SPS带到解码端,由解码端做变行操作。 |
i_sar_width | int | 样本宽高比的宽度 | SAR计算公式:PAR x SAR = DAR PAR(Pixel Aspect Ratio)像素纵横比 |
i_overscan | int | 图像在放大的时候边缘容易变形,overscan可以将变形的边界显示到窗口外面,让观看的人看起来是画面放大后是正常的。 走读ffmpeg、VLC解码器,对该字段都忽略,没有做特殊处理。 |
undef:未定义 show:指示要显示整个影像。 理论上如果设了show解码器必须遵守。 crop:指示此影像适合在有溢出扫描功能的装置上播放。 解码器不一定遵守。 |
i_vidformat | int | 写到sps中,告诉解码器画面扫描方式。 走读ffmpeg、VLC解码器,对该字段都忽略,没有做特殊处理。 |
表明此视频在编码前是什么格式。比如:component、pal、ntsc、secam、mac、undef |
b_fullrange | int | 画面颜色值范围 | 默认为off 16-255;on 表示0-255。色域范围更大 |
i_colorprim | int | 原始色度格式 | 默认"undef",可选项:undef、bt709、bt470m、bt470bg、smpte170m、 smpte240m、film、bt2020、smpte428、 smpte431、smpte432 不影响编码相关,仅仅是存储到sps。 |
i_transfer | int | 设置光电传输特性(设置伽马曲线用于校正) | 默认:undef 可选参数:undef、bt709、bt470m、bt470bg、linear、log100、log316、smpte170m、smpte240m |
i_colmatrix | int | 设置从RGB转换时亮度和色度的矩阵系数。 | GBR,bt709,undef,fcc,bt470bg,smpte170m, smpte240m,YCgCo,bt2020nc,bt2020c, smpte2085,chroma-derived-nc,chroma-derived-c,ICtCp |
i_chroma_loc | int | 设置色度取样位置。 | 值从0到5。 如果正确的从 MPEG1(比如 VCD)的 4:2:0 格式二次采样转码,且不做任何色彩空间转换,应该设为1。 |
二、备注
VUI(Video Usability Information Guide)视频可用性信息,编码器在SPS里面将VUI信息带给解码器,建议解码器做的一些矫正处理。但是查看ffmpeg、VLC的264解码器,只有SAR解码器有做变性处理,其他的没有看到有特殊处理。并且SAR也不是解码器处理的,是ffmpeg外挂一个setsar filter处理的。
详细信息,请参考《T-REC-H.264-201906-I!!PDF-E》的Annex E Video usability information