在公司一直在做视频播放器的开发,项目做出来了,但是感觉自己很多基础的原理不知其所以然,所以决定好好回归基础和理论。
在网上看了一些资料,也看了些书籍,现在梳理一下。
一、视频基础知识
1、视频的色度空间
三基色原理:任何颜色均由红(R)、绿(G)、蓝(B)三种颜色分量组成;
在电视领域,用亮度(Y)、蓝色差(U),红色差(V)三个分量表示
两种方法相互之间的转换:
Y = 0.3R + 0.59G + 0.11B
U = B - Y
V = R - Y
2、视频信号的数字化
标清标准:ITU-R BT.601
Y、U、V三分量的抽样频率分别为13.5MHZ、6.75MHz、6.75MHz。
每个样点的量化比特数用于演播室为10bit,用于传输为8bit。
Y、U、V三分量样点之间的比例为4:2:2
高清标准:ITU-R BT.709
720P及1080i的Y、U、V三分量的抽样频率分别为74.25、37.125、37.125MHz。
1080P 50/60高达148、74.25、74.25MHz
3、视频播放流程
封装格式数据(FLV,MKV、MP4)
街封装格式(音频压缩数据、视频压缩数据)
音频压缩数据(AAC、MP3) 音频解码 音频采样数据(PCM...)
视频压缩数据(H.264,MPEG2...) 视频解码 视频像素数据(YUV)
视音频同步
播放
封装格式(容器)的作用(avi,MP4,TS,FLV,RMVB、MKV)
视频码流和音频码流按照一定的格式存储在一个文件中。
分析工具:Elecard Format Analyzer
MPEG2、TS 这一类格式不包含文件头。数据大小固定(188Byte)的TS Packet
FLV格式这一类包含文件头,数据由大小不固定的Tag构成。
视频解码数据
视频编码的作用
将视频像素数据(RGB,YUV等)压缩成为视频码流,从而降低视频的数据量
视频编码分析工具:Elecard Stream Eye
HEVC(H.265) 研发中
H.264 主流
H.264简介
数据大小不固定的NALU构成,1个NALU存储了1帧画面的压缩编码后的数据