什么是Y4M
以YUV4Mpeg格式创建的视频文件;这个视频文件存储了一组未压缩的YCbCr图像,这些图像逐帧组成视频;在压缩成MPEG-2或Matroska等更流行的视频格式之前,用作原始的彩色视频格式
Y4M文件是一个纯文本格式的header开始,header有0或多个参数,每个参数以0x20分隔,在所有参数最后以0x0A结束,后面就是YUV原始数据。header后面是任意数量帧数据。每帧数据以固定字符串FRAME开始,我们以这个Y4M文件来一窥究竟。
- Y4M header中的各参数都以空格(ASCII码为0x20)分隔:
YUV4MPEG2 W384 H288 F25:1 Ip A0:0, 这段话的意思是:
YUV4MPEG2: 签名,这是固定的,在文件的最前面
Y4M文件以一段明文开始,前10字符是YUV4MPEG2+0x20
,0x20表示空格字符。紧随其后的是各种视频参数信息,各参数都以空格0x20分隔,写完各种参数后跟一个0x0A(0x0A表示换行字符)来表示Y4M文件头的结束。之后就是FRAME+0x0A+YUVDATE,每个YUV原始数据之前是都会有这样一个固定头部,紧随其后就是按照YCbCr存储的原始YUV数据。
现在我们看年Y4M文件头中的参数信息,这里参数信息特点是用一个字母表示参数类型,后面跟具体的值:
- 帧宽:W,如W384
- 帧高:H,如H288
- 帧率:F,如F25:1 ,25/1,即每秒25帧
- 隔行扫描interlacing:I,如
Ip 表示逐行扫描
It 表示顶场优先地隔行扫描
Ib表示底场优先地隔行扫描
Im:混合模式 - 像素的宽高比pixel aspect ratio:A,如
A0:0 表示未知
A1:1表示正方形像素
A4:3表示NTSC-SVCD,480x480拉伸到4:3显示
A4:5表示NTSC-DVD,720x480压缩到4:3显示
A32:27表示NTSC-DVD,720x480拉伸到16:9显示 - 色彩空间Color space:C,如
C420jpeg = 4:2:0
C420paldv = 4:2:0
C420 = 4:2:0
C422 = 4:2:2
C444 = 4:4:4 - 注释信息:X,会被YUV4MPEG2解析器忽略。