视频基本知识  AD转换和YUV,cb cr基本知识

来源:互联网 发布:腾讯对战平台mac版 编辑:程序博客网 时间:2024/06/05 19:17

人眼观看图像 每秒显示25帧 最好 即帧频为25Hz 由于人眼具有视觉暂留效应
模拟电视信号转化为数字电视信号称为PCM调制,数字电视信号转换为模拟电视信号则称为PCM解调
视频信号A/D转换过程
这里写图片描述
采样:在时钟和同步信号控制下,每隔一段时间间隔T ,抽取模拟信号的一个瞬间幅度值,取样后所得出的一系列的在时间上的离散的抽样值(称为脉冲幅度调制信号)
量化:是将幅度连续的取样值在幅度上离散化的过程
在经过时空采样之后,每一幅图像的样本像素都会包含亮度和色彩信息 数字视频的质量会受到空间采样的样本点密度及时间采样的采样频率的影响 但是也需要更多的内存和处理时间 不同的视频会定义不同的分辨率 这里写图片描述

帧率越高,运动场景就会表现的越平滑,帧率在10-20帧时,低速运动的效果不错,但高速运动会有不连贯现象,因此可以用于低码率视频通信中,帧率在25-30帧时,运动感觉会很流畅,帧率在50-60,用在高质量视频中,但是写代码的时候这个帧率的值一般喜欢设置成25
另外!!!!在采样的帧率不变的情况下,采用隔行扫描的方式可以提高视频的运动效果,(就是采取以下扫描方式)这样不增加采样数据量的前提下,采样的时间间隔会缩短,所以视频的运动效果会提高,,缺点:::对于一些特定的运动形式和纹理,可能会带来视觉上的不舒服感
这里写图片描述

人眼的视觉对于亮度的敏感度比色度高 ,所以YUV比RGB更适合,但是在数字图像处理里面都是对RGB数据进行处理例如opencv 
所以,在得到每帧之后都喜欢把他转换成RCB方便以后做处理但是opencv接触不深,YUV转成RGB代码实现转化以后再详细写出来,,实现方法很简单,
YUV模型将亮度信息从色度信息中分离出来,并且对同一帧的亮度和色度采用不同的采样率 
Y信号为黑白灰度图,UV信号为单色彩图,所以说黑白电视就是一个Y分量
三种常用的YUV采样格式 
4:4:4 YUV三个分量具有相同的水平和垂直解析度 每一个Y对应一组UV分量
4 :2:2 YUV三个分量具有相同的垂直解析度,但在水平方向上,UV两个分量的解析度只有Y的一半 即每四个亮度分量样本值两个U和2个V的样本值 每两个Y公用一组UV分量
4:2:0  在水平和垂直方向上,UV两个分量的解析度是Y的一半 即4个亮度分量样本值,对应有一个U和一个V色度分量样本值
每四个Y共用一组UV分量

这里写图片描述
这里没有具体的效果展示图,去雷神的博客里面找,他里面有很明显分离出来的Y图U图V图

Y表示明亮度 ,UV表示色度 Cr Cb分别为色调和饱和度
Cr 反应了RGB输入信号红色部分与RGB信号亮度值之间的差异
Cb 反应了RGB输入信号蓝色部分与RGB信号亮度值之间的差异

一般来说,直接采样的视频数据是RGB24格式,RGB24 帧的大小size=width *height*3 byte
RGB32 size=width*height *4
YUV 420的数据量size=width*height*1.5 byte //看出来数据量明显小了吧
YV12 :亮度(行列)+v(行列/4)+U(行*列/4)
420 : 亮度(行列)+U(行列/4)+V(行*列/4)
FFMPEG 中的swscale提供了视频原始数据之间的转换分辨率变换等操作
另外 RGB到YUV4:4:4 转换只需要对应的转换公式即可 ,不会有信息的损失,但是如果是4:2:2和4:2:0格式,那么就需要按照样本的位置进行抽样,这样会损失一部分色差信息,但是对视觉效果影响不大 反之,就要进行插值方法进行补齐缺少的像素值
RGB->YUV 4:4:4
Y=0.299R+0.587G+0.114B
U=-0.147R-0.289G+0.436B
V=0.615R-0.515G-0.100B

·········YUV->RGB
R=1.000Y+0.000U+1.140V
G=1.000Y-0.395U-0.581V
B=1.000Y+2.032U+0.001V

原创粉丝点击