可见光是波长在 380nm~780nm 之间的电磁波,我们看到的大多数光不是一种波长的光,而是由许多不同波长的光组合成的。如果光源由单波长组成,就称为单色光源。该光源具有能量,也称强度。实际中,只有极少数光源是单色的,大多数光源是由不同波长组成,每个波长的光具有自身的强度。这称为光源的光谱分析。
颜色是视觉系统对可见光的感知结果。研究表明,人的视网膜有对红、绿、蓝颜色敏感程度不同的三种锥体细胞。红、绿和蓝三种锥体细胞对不同频率的光的感知程度不同,对不同亮度的感知程度也不同。
自然界中的任何一种颜色都可以由 R,G,B 这3 种颜色值之和来确定,以这三种颜色为基色构成一个 RGB 颜色空间,基色的波长分别为 700nm(红色)、546.1nm(绿色)和 435.8nm(蓝色)。颜色=R(红色的百分比)+G(绿色的百分比)+B(蓝色的百分比)。可以选择不同的三基色构造不同的颜色空间,只要其中一种不是由其它两种颜色生成。例如Y(Yellow,黄色),C(Cyan,青色),M(Magenta,品红)。
图像的数字化首选要考虑到如何用数字来描述颜色。国际照明委员会CIE(International Commission on Illumination) 对颜色的描述作了一个通用的定义,用颜色的三个特性来区分颜色。这些特性是色调,饱和度和明度,它们是颜色所固有的并且是截然不同的特性。
色调(hue)又称为色相,指颜色的外观,用于区别颜色的名称或颜色的种类。色调用红、橙、黄、绿、青、蓝、靛、紫等术语来刻画。用于描述感知色调的一个术语是色彩(colorfulness)。
饱和度(saturation)是相对于明度的一个区域的色彩,是指颜色的纯洁性,它可用来区别颜色明暗的程度。完全饱和的颜色是指没有渗入白光所呈现的颜色,例如仅由单一波长组成的光谱色就是完全饱和的颜色。
明度(brightness)是视觉系统对可见物体辐射或者发光多少的感知属性。它和人的感知有关。由于明度很难度量,因此国际照明委员会定义了一个比较容易度量的物理量,称为亮度(luminance)来度量明度,亮度(luminance)即辐射的能量。明度的一个极端是黑色(没有光),另一个极端是白色,在这两个极端之间是灰色。
光亮度(lightness)是人的视觉系统对亮度(luminance)的感知响应值,光亮度可用作颜色空间的一个维,而明度(brightness)则仅限用于发光体,该术语用来描述反射表面或者透射表面。
顾名思义,色温的意思就是“色彩的温度”,这其实是从热力学的角度来定义光线的颜色的。
现在,我们想象有这样一个绝对黑体(其实这是科学家们想出来的),这个物体的性质是可以将能量无损的转换为电磁波。接着,我们从绝对零度开始持续加温这个黑体,在这个过程中它所呈现出来的颜色就叫做“色温”。
举个例子,随着温度的增加,电磁波的波长越来越短,最终波长到达人眼可以感知的长度,这时候,它发光了,最初始应该是红色。
继续加热黑体,发现它在1800K温度的时候发出和烛光一样颜色的光。那么,我们就定义:烛光的色温大概是1800K。
继续加热黑体,这时候,它在3200K的时候发出了和家用白炽灯同样颜色的光。那么我们定义:家用白炽灯的色温大概是3200K。
继续加热,它会发出和晴天正午阳光一样颜色的光,很耀眼的白色。再次测量其温度,大概是5600K。那么我们再次定义:晴天正午阳光色温大概是5600K。
从图中我们知道:色温值越高,色调越冷,也就是越蓝。反之则越暖。
OK,既然理解了色温的概念,我们就可以说白平衡了。下面为光线样图。
通过刚才的讲述,我们知道了光线的颜色是不同的。平时我们用眼睛去观看不同光源下的白色物体时,我们没有异样的感觉,认为这就是白色的,即使看起来是黄色,但我们也明白是光源的干扰,实际上这个东西依旧是白色。
这是因为大脑自动的纠正了光线的偏差。但是相机不行,相机分辨不出当前是什么光源,相机认识的只有一个东西——“色温”。当你给出具体的色温值,相机就会认为光源的颜色和色温一致,进而根据这个色温为基准,计算出照片的色彩。因为相机中色彩的还原是以白色为基色,所以设置色温这个操作被称作设置“白平衡”。
人眼中的白色总是R = G = B,那么白平衡所做的事情就是在任意环境下,就是找到图像中的白块,然后调整R、G、B的比例。也就是将sensor响应的RGB分别乘上一个系数,使得"白色成为白色"。
R' = R x R_Gain
G' = G x G_Gain
B' = B x B_Gain
# 使得R' = G' = B'
好的,让我们来看一组白平衡对比图:
细心的小伙伴肯定发现了,随着K值增大,白平衡之后反而越黄了?而随着K值减小,白平衡之后反而越蓝了?
如果你认真看上面的原理解释,你会发现:其实,在相机中,色彩的还原是以白色为基色,白平衡是使得"白色成为白色"。
所以,当相机看到你设置了一个比较高的K值,以为这地方色温高,会很努力往画面中添加黄(红)来中和,结果……更黄(红)了。
当相机看到你设置了一个比较低的K值,以为这地方色温低,会很努力往画面中添加蓝色来中和,结果……更蓝了。
这就是白平衡啦。
本文仅供学习交流,若有疑问,欢迎批评指正。更详细的介绍请参考本文引用链接:
1. https://www.zhihu.com/question/20599592/answer/15603452
2. https://www.zhihu.com/question/20599592/answer/15607541
3. https://blog.csdn.net/htjacky/article/details/78804816
颜色空间是表示颜色的一种数学方法,人们用它来指定和产生颜色,使颜色形象化。颜色空间中的颜色通常使用代表三个参数的三维坐标来指定,这些参数描述的是颜色在颜色空间中的位置,但并没有告诉我们是什么颜色,其颜色要取决于我们使用的坐标。
使用色调、饱和度和明度构造的一种颜色空间,叫做HSB(hue,saturation and brightness)颜色空间。RGB(red,green and blue)和CMY(cyan,magenta and yellow)是最流行的颜色空间,它们都是与设备相关的颜色空间,前者用在显示器上,后者用在打印设备上。
从技术上角度区分,颜色空间可考虑分成如下三类:
RGB 型颜色空间/计算机图形颜色空间:这类模型主要用于电视机和计算机的颜色显示系统。例如,RGB,HSI, HSL 和HSV 等颜色空间。
XYZ 型颜色空间/CIE 颜色空间:这类颜色空间是由国际照明委员会定义的颜色空间,通常作为国际性的颜色空间标准,用作颜色的基本度量方法。例如,CIE 1931 XYZ,Lab,Luv 和LCH 等颜色空间就可作为过渡性的转换空间。
YUV 型颜色空间/电视系统颜色空间:由广播电视需求的推动而开发的颜色空间,主要目的是通过压缩色度信息以有效地播送彩色电视图像。例如,YUV,YIQ,ITU-R BT.601 Y’CbCr, ITU-R BT.709 Y’CbCr 和SMPTE-240M Y’PbPr 等颜色空间。
YUV,分为三个分量,“Y”表示明亮度(Luminance或Luma),也就是灰度值;而“U”和“V” 表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。与我们熟知的RGB类似,YUV也是一种颜色编码方法,主要用于电视系统以及模拟视频领域,它将亮度信息(Y)与色彩信息(UV)分离,没有UV信息一样可以显示完整的图像,只不过是黑白的,这样的设计很好地解决了彩色电视机与黑白电视的兼容问题。并且,YUV不像RGB那样要求三个独立的视频信号同时传输,所以用YUV方式传送占用极少的频宽。
RGB,计算机彩色显示器显示色彩的原理与彩色电视机一样,都是采用R(Red)、G(Green)、B(Blue)相加混色的原理:通过发射出三种不同强度的电子束,使屏幕内侧覆盖的红、绿、蓝磷光材料发光而产生色彩。这种色彩的表示方法称为RGB色彩空间表示(它也是多媒体计算机技术中用得最多的一种色彩空间表示方法)。根据色度学的介绍,不同波长的单色光会引起不同的彩色感觉,但相同的彩色感觉却可以来源于不同的光谱成分组合。自然界中几乎所有的颜色都能用三种基本彩色混合配出,在彩色电视技术中选择红色、绿色、和蓝色作为三基色。其他的颜色都可以用红色、绿色和蓝色按照不同的比例混合而成。所选取的红色、绿色和蓝色三基色空间。简称为RGB颜色空间。
DIY行业随着灯效的升级,从主流的RGB往ARGB过度,ARGB 是一种色彩模式,也就是RGB色彩模式附加上Alpha(透明度)通道,ARGB可以通过编程实现实现流水灯、拼接显示文字图案等效果,RGB只能实现单色切换。
不同颜色可以通过一定的数学关系相互转换:
有些颜色空间之间可以直接变换。例如,RGB 和 HSL,RGB 和 HSB,RGB 和 R’G’B’, R’G’B’ 和 Y’CrCb,CIE XYZ 和CIE Lab等。
有些颜色空间之间不能直接变换。例如,RGB 和CIE Lab*, CIE XYZ和HSL,HSL 和Y’CbCr 等,它们之间的变换需要借助其他颜色空间进行过渡。
R’G’B’和Y’CbCr 两个彩色空间之间的转换关系用下式表示:
Y = 0.299R + 0.587G + 0.114B
Cr = (0.500R - 0.4187G - 0.0813B) + 128
Cb = (-0.1687R - 0.3313G + 0.500B) + 128
图像都是由像素点组成的,而将像素点显示到屏幕上,就是看到的屏幕图像显示内容。一般情况下,图像的横向和纵向包含的像素点的个数是一定的,而一般情况下所说的图片大小就是指图像的横向和纵向的像素点个数的乘积。
显示分辨率(屏幕分辨率)是屏幕图像的精密度,是指显示器所能显示的像素有多少。由于屏幕上的点、线和面都是由像素组成的,显示器可显示的像素越多,画面就越精细,同样的屏幕区域内能显示的信息也越多,所以分辨率是个非常重要的性能指标之一。可以把整个图像想象成是一个大型的棋盘,而分辨率的表示方式就是所有经线和纬线交叉点的数目。显示分辨率一定的情况下,显示屏越小图像越清晰,反之,显示屏大小固定时,显示分辨率越高图像越清晰。
二值图像(binary image):即图像上的每一个像素只有两种可能的取值或灰度等级状态,人们经常用黑白、B&W、单色图像表示二值图像。
灰度图:只包含一个通道的信息,而彩色图通常包含三个通道的信息,单一通道的理解可以理解为单一波长的电磁波,所以,红外遥感,X断层成像等单一通道电磁波产生的图像都为灰度图,而且在实际中灰度图易于采集和传输等性质的存在导致基于灰度图像开发的算法非常丰富。灰度图像经常是在单个电磁波频谱如可见光内测量每个像素的亮度得到的,用于显示的灰度图像通常用每个采样像素8位的非线性尺度来保存,这样可以有256级灰度(如果用16位,则有65536级)。
彩色图像:每个像素通常是由红®、绿(G)、蓝(B)三个分量来表示的,分量介于(0,255)。
图片是由一个个像素点构成的,所有不同颜色的像素点构成了一副完整的图像,计算机存储每个像素点占用的位数:
1 bit:用一位来存储,那么这个像素点的取值范围就是0或者1,那么我们看来这幅图片是有黑白构成;
4 bit:这个像素点的取值范围为 0 到 2 的4次方;
8 bit:来存储像素点的取值范围为 0 到 2 的8次方;
以此类推,我们把计算机存储单个像素点所用到的bit为称之为图像的深度。
24位图片的取值范围为0到2的24次方,这个取值范围是相当的庞大的,那怎么根据图片某像素的深度值来确定那一像素点的颜色呢?
我们都知道颜色的三元素 Red, Green, Blue. 如果是深度为24=3*8,我们刚好就可以用第一个8位存储Red值,第二个存储Green值,第三个存储Blue值, 2的8次方刚好是255,所以我们一般看到的RGB值都是(0-255,0-255,0-255)这样的值。如果用rgb来表示图片的颜色值,我们称这样的图片通道为三。
单通道:一个像素点只需一个数值表示,只能表示灰度;
三通道:RGB模式,把图像分为红绿蓝三个通道,可以表示彩色,全0表示黑色
四通道:在RGB基础上加上alpha通道,表示透明度,alpha=0表示全透明
分辨率(Resolution)是指图像的大小或尺寸,它的表达式为:“水平像素数*垂直像素数”。摄像机成像的最大分辨率是由CCD或CMOS感光器件决定的。现在有些摄像机支持修改分辨率,是通过摄像机自带软件裁剪原始图像生成的。
本节内容来自这里。
在图像数据传输和显示的过程中有一个不常用的参数:间距。
1 间距的名称
它有很多的别名,在使用d3d显示的时候,它叫pitch;在用ffmpeg解码的时候,它叫linesize;在用ffmpeg转换格式的时候,它叫stride。这篇文章中统一以间距来表示。
2 间距为什么出现
这个参数看起来似乎没什么用,因为它的值和图像的宽度一样。但是那是大多数情况下,一旦遇到它和宽度不一样的时候,如果你不了解它的含义,那么程序肯定要出问题。可是为什么有时候它等于宽度,有时候又不等于呢?这就和它的含义有关了。
我们都知道现在计算机的cpu都是32位或者64位的cpu,他们一次最少读取4、8个字节,如果少于这些,反而要做一些额外的工作,会花更长的时间。所有会有一个概念叫做内存对齐,将结构体的长度设为4、8的倍数。
间距也是因为同样的理由出现的。因为图像的操作通常按行操作的,如果图像的所有数据都紧密排列,那么会发生非常多次的读取非对齐内存。会影响效率。而图像的处理本就是一个分秒必争的操作,所以为了性能的提高就引入了间距这个概念。
3 间距的含义
间距就是指图像中的一行图像数据所占的存储空间的长度,它是一个大于等于图像宽度的内存对齐的长度。这样每次以行为基准读取数据的时候就能内存对齐,虽然可能会有一点内存浪费,但是在内存充裕的今天已经无所谓了。
4 间距的值
所以如果图像的宽度如果是内存对齐长度的整数倍,那么间距就会等于宽度,而现在的cpu通常一次读取都是4个字节,而我们通常见到的分辨率都是4的整数倍,所以我们通常发现间距和图像的宽度一样(这里通常指rgb32格式或者以通道表示的yuv420p格式的y通道)。但是如果遇到一些少见的分辨率时间距和图像的宽度就不一样。
还有一种情况是显卡,因为显卡是独立工作的,所以显卡可能和cpu的内存对齐位数是不同的,此时间距就可能和cpu上的有很大差别,例如NVIDA显卡(它的内存对齐位数超大),通常在用d3d显示的时候会用到间距。所以如果你的d3d显示程序在Intel的显卡上显示正常,而在NVIDA显卡上显示不正常,先不要怀疑显卡驱动,先看看你有没有正确处理间距的问题(亲生经历)。
5 间距的处理
那么对于间距和宽度不同的时候要如何处理呢?在不同的情况下,处理不同,但是只要把握一个核心—内存对齐,就能理解。
帧(fram):是影像中最小单位的单幅影像画面,相当于电影胶片上的每一格镜头。一帧就是一副静止的画面,连续的帧就形成动画,如电视图象等。
我们通常说帧数,简单地说,就是在1秒钟时间里传输的图片的帧数,也可以理解为图形处理器每秒钟能够刷新几次,通常用fps(Frames Per Second)表示。每一帧都是静止的图像,快速连续地显示帧便形成了运动的假象,还原了物体当时的状态。高帧率可以得到更流畅动画。每秒钟帧数(fps)愈多,所显示的动作就会愈流畅。一般来说,帧率设置为25fps、30fps已经足够。帧率使用“赫兹”( Hz)为单位。
什么是视频编码?编解码器和压缩技术:https://www.jianshu.com/p/d06f0ee82d7f
H.264再学习 – 目前主流的几种数字视频压缩编解码标准(转载):https://blog.csdn.net/qq_29350001/article/details/78225725
MJPEG是24-bit的"true-color"影像标准,MJPEG的工作是将RGB格式的影像转换成YCrCB格式,目的是为了减少档案大小,一般约可减少1/3~1/2左右;M-JPEG是一种基于静态图像压缩技术JPEG发展起来的动态图像压缩技术,可以生成序列化的运动图像。其主要特点是基本不考虑视频流中不同帧之间的变化,只单独对 某一帧进行压缩,其压缩倍数为20~80倍,适合静态画面的压缩,分辨率可从352×288到704×576;M-JPEG的主要缺点是压缩效率低,MJPEG算法是根据每一帧图像的内容进行压缩,而不是根据相邻帧图像之间的差异来进行压缩,因此造成了大量冗余信息被重复存储,存储占用的空间大到每帧8~15K字节,最好也只能做到每帧3K字节,但如果因此而采用高压缩比则视频质量会严重降低。
JPEG 是Joint Photographic Experts Group(联合图像专家小组)的缩写,是第一个国际图像压缩标准。JPEG图像压缩算法能够在提供良好的压缩性能的同时,具有比较好的重建质量,被广泛应用于图像、视频处理领域。
优点:摄影作品或写实作品支持高级压缩;利用可变的压缩比可以控制文件大小;支持交错(对于渐近式JPEG文件);广泛支持Internet标准。
缺点:有损耗压缩会使原始图片数据质量下降;当您编辑和重新保存JPEG文件时,JPEG会混合原始图片数据的质量下降。这种下降是累积性的;JPEG不适用于所含颜色很少、具有大块颜色相近的区域或亮度差异十分明显的较简单的图片。
MPEG全称是Moving Pictures Experts Group(动态图象专家组),是国际标准化组织(ISO)成立的专责制定有关运动图像压缩编码标准的工作组,所制定的标准是国际通用标准,叫MPEG标准。
MPEG4之优势在于其压缩比(最大可达4000:1),低位元速率,较少之核心程式空间,加强运算功能,及强大之通讯应用整合能力,己成为影音数位视讯产业,最重要之功能及标准格式。
视频信号可分为模拟视频信号和数字视频信号两大类:模拟视频信号和数字视频信号。
模拟视频是指每一帧图像是实时获取的自然景物的真实图像信号。我们在日常生活中看到的电视、电影都属于模拟视频的范畴。模拟视频信号具有成本低和还原性好等优点,视频画面往往会给人一种身临其境的感觉。但它的最大缺点是不论被记录的图像信号有多好,经过长时间的存放之后,信号和画面的质量将大大的降低;或者经过多次复制之后,画面的失真就会很明显。
数字视频信号是基于数字技术以及其他更为拓展的图像显示标准的视频信息,数字视频与模拟视频相比有以下特点:(1)数字视频可以可以不失真的进行无数次复制,而模拟视频信号每转录一次,就会有一次误差积累,产生信号失真。(2)模拟视频长时间存放后视频质量会降低,而数字视频便于长时间的存放。(3)可以对数字视频进行非线性编辑,并可增加特技效果等。(4)数字视频数据量大,在存储与传输的过程中必须进行压缩编码。随着数字视频应用范围不断发展,它的功效也越来越明显。
模拟摄像机所输出的信号形式为标准的模拟量视频信号,需要配专用的图像采集卡才能转化为计算机可以处理的数字信息。模拟摄像机一般用于电视摄像和监控领域,具有通用性好、成本低的特点,但一般分辨率较低、采集速度慢,而且在图像传输中容易受到噪声干扰,导致图像质量下降,所以只能用于对图像质量要求不高的机器视觉系统。常用的摄像机输出信号格式有:
pal(黑白为 ccir),中国电视标准,625 行,50 场;ntsc(黑白为 eia),日本电视标准,525 行,60 场;secam,s-video;分量传输。
1、前端
模拟:只有模拟摄象机即可,视频没有经过压缩,图象质量好,但占用资源极多,存储和检索不方便,反复查看录像会造成录像效果越来越差;
数字:需要视频服务器 + 模拟摄象机,图象经过压缩(m-jpeg,mpeg1、2、4,h.263、h.264…),图象会有不同程度的损失,画面质量也根据不同的压缩方式各不相同。
2、传输
模拟:直接通过同轴电缆传到监控中心的监视器上,最远距离在 1200 米左右 (理论值),光端机除外。模拟视频信号的传输对距离十分敏感,当传输距离大于 1000 米时,信号容易产生衰耗、畸变、群延时,并且易受干扰,使图像质量下降;其次,有线模拟视频监控无法联网,只能以点对点的方式监视现场,并且使布线工程量大;
数字:通过网线与局域网连接,使处在整个网络的电脑主机都可以访问,当然局域网如果能连接到互联网,那整个互联网都可以访问到,这就大大扩展了监控的范围,可以世界的每一个角落都成了监控中心。
3、监控主机
模拟:是通过监视器直接接收视频信号,图象质量好;
数字:通过电脑主机来显示监控画面,图象经过硬件压缩,有的还要经过软压缩,图象连贯性以及画面质量相对模拟都要差一些,查询取证时十分方便。
彩色电视视频信号是一种模拟信号,由视频模拟数据和视频同步数据构成,用于接收端正确地显示图像。信号的细节取决于应用的视频标准或者“制式”,目前世界上现行的彩色电视制式有三种:NTSC 制、PAL 制和SECAM 制。这里不包括高清晰度彩色电视HDTV (High-Definition television)。
NTSC(National Television Systems Committee)彩色电视制是1952 年美国国家电视标准委员会定义的彩色电视广播标准,称为正交平衡调幅制。美国、加拿大等大部分西半球国家,以及日本、韩国、菲律宾等国和中国的台湾采用这种制式。NTSC 彩色电视制的主要特性是:(1)525 行/帧, 30 帧/秒(29.97 fps, 33.37 ms/frame);(2)高宽比:电视画面的长宽比(电视为4:3;电影为3:2;高清晰度电视为16:9);(3)隔行扫描,一帧分成2 场(field),262.5 线/场;(4)在每场的开始部分保留20 扫描线作为控制信息,因此只有485 条线的可视数据。Laser disc 约~420 线,S-VHS 约~320 线;(5)每行63.5 微秒,水平回扫时间10 微秒(包含5 微秒的水平同步脉冲),所以显示时间是 53.5 微秒;(6)颜色模型:YIQ。
一帧图像的总行数为525 行,分两场扫描。行扫描频率为15 750 Hz,周期为63.5μs;场扫描频率是60 Hz,周期为16.67 ms;帧频是30 Hz,周期33.33ms。每一场的扫描行数为525/2=262.5 行。除了两场的场回扫外,实际传送图像的行数为480 行。
由于NTSC 制存在相位敏感造成彩色失真的缺点,因此德国(当时的西德)于1962 年制定了PAL(Phase-Alternative Line)制彩色电视广播标准,称为逐行倒相正交平衡调幅制。德国、英国等一些西欧国家,以及中国、朝鲜等国家采用这种制式。PAL 电视制的主要扫描特性是:(1)625 行(扫描线)/帧,25 帧/秒(40 ms/帧);(2)长宽比(aspect ratio):4:3;(3)隔行扫描,2 场/帧,312.5 行/场;(4)颜色模型:YUV。
法国制定了SECAM (法文:Sequential Coleur Avec Memoire)彩色电视广播标准,称为顺序传送彩色与存储制。法国、苏联及东欧国家采用这种制式。世界上约有65 个地区和国家试验这种制式。这种制式与PAL 制类似,其差别是SECAM 中的色度信号是频率调制(FM),而且它的两个色差信号:红色差(R’-Y’)和蓝色差(B’-Y’)信号是按行的顺序传输的。法国、俄罗斯、东欧和中东等约有65 个地区和国家使用这种制式,图像格式为4:3,625 线,50 Hz,6 MHz 电视信号带宽,总带宽8 MHz。
在彩色电视中,用Y、C1, C2 彩色表示法分别表示亮度信号和两个色差信号,C1,C2 的含义与具体的应用有关。在NTSC 彩色电视制中,C1,C2 分别表示I、Q 两个色差信号;在PAL 彩色电视制中,C1,C2 分别表示U、V 两个色差信号;在CCIR 601 数字电视标准中,C1,C2 分别表示Cr,Cb 两个色差信号。所谓色差是指基色信号中的三个分量信号(即R、G、B)与亮度信号之差。
NTSC 的YIQ 颜色空间与RGB 颜色空间的转换关系如下:
Y=0.30R+0.59G+0.11B
I=0.74(R-Y)-0.27(B-Y) = 0.60R+0.28G+0.32B
Q=0.48(R-Y)-0.27(B-Y) = 0.21R+0.52G+0.31B
PAL 的YUV 颜色空间与RGB 颜色空间的转换关系如下:
Y=0.30R+0.59G+0.11B
U=0.493(B-Y) = -0.15R-0.29G+0.44B
Q=0.877(R-Y) = 0.62R-0.52G-0.10B
模拟视频的数字化包括不少技术问题,如电视信号具有不同的制式而且采用复合的YUV 信号方式,而计算机工作在RGB 空间;电视机是隔行扫描,计算机显示器大多逐行扫描;电视图像的分辨率与显示器的分辨率也不尽相同等等。因此,模拟视频的数字化主要包括色彩空间的转换、光栅扫描的转换以及分辨率的统一。
模拟视频一般采用分量数字化方式,先把复合视频信号中的亮度和色度分离,得到 YUV 或 YIQ 分量,然后用三个模/数转换器对三个分量分别采样并进行数字化,最后再转换成RGB 空间。
对彩色电视图像进行采样时,可以采用两种采样方法。一种是使用相同的采样频率对图像的亮度信号(Y)和色差信号(Cr,Cb)进行采样,另一种是对亮度信号和色差信号分别采用不同的采样频率进行采样。如果对色差信号使用的采样频率比对亮度信号使用的采样频率低,这种采样就称为图像子采样(subsampling)。由于人的视觉对亮度信号的敏感度高于对色差的敏感度,这样做利用人的视觉特性来节省信号的带宽和功率,通过选择合适的颜色模型,可以使两个色差信号所占的带宽明显低于Y 的带宽,而又不明显影响重显彩色图像的观看。
目前使用的子采样格式有如下几种:
(1)4:4:4 这种采样格式不是子采样格式,它是指在每条扫描线上每4 个连续的采样点取4 个亮度Y 样本、4 个红色差Cr 样本和4 个蓝色差Cb 样本,这就相当于每个像素用3 个样本表示。
(2)4:2:2 这种子采样格式是指在每条扫描线上每4 个连续的采样点取4个亮度Y 样本、2 个红色差Cr 样本和2 个蓝色差Cb 样本,平均每个像素用2 个样本表示。
(3)4:1:1 这种子采样格式是指在每条扫描线上每4 个连续的采样点取4个亮度Y 样本、1 个红色差Cr 样本和1 个蓝色差Cb 样本,平均每个像素用1.5个样本表示。
(4)4:2:0 这种子采样格式是指在水平和垂直方向上每2 个连续的采样点上取2 个亮度Y 样本、1 个红色差Cr 样本和1 个蓝色差Cb 样本,平均每个像素用1.5 个样本表示。
为了既可用625 行的电视图像又可用525 行的电视图像,CCITT 规定了称为公用中分辨率格式CIF(Common Intermediate Format),1/4 公用中分辨率格式 QCIF(Quarter-CIF)和SQCIF(Sub-Quarter Common Intermediate Format)格式对电视图像进行采样。
CIF 格式具有如下特性:
(1)电视图像的空间分辨率为家用录像系统(Video Home System,VHS)的分辨率,即352×288。
(2)使用非隔行扫描(non-interlaced scan)。
(3)使用NTSC 帧速率,电视图像的最大帧速率为30000/1001≈29.97 幅/秒。
(4)使用1/2 的PAL 水平分辨率,即288 线。
(5)对亮度和两个色差信号(Y、Cb 和Cr)分量分别进行编码,它们的取值范围同ITU-R BT.601。即黑色=16,白色=235,色差的最大值等于240,最小值等于16。
下面为5 种 CIF 图像格式的参数说明。参数次序为“图象格式 亮度取样的像素个数(dx)亮度取样的行数 (dy)色度取样的象素个数(dx/2)色度取样的行数(dy/2)”。
sub-QCIF | 128 | 96 | 64 | 48 |
---|---|---|---|---|
QCIF | 176 | 144 | 88 | 72 |
CIF | 352 | 288 | 176 | 144 |
4CIF | 704 | 576 | 352 | 288 |
16CIF | 1408 | 1152 | 704 | 576 |
D1 是数字电视系统显示格式的标准,共分为以下5种规格:
D1:480i格式(525i):720×480(水平480线,隔行扫描),和NTSC模拟电视清晰度相同,行频为15.25kHz,相当于我们所说的4CIF(720×576)。
D2:480P格式(525p):720×480(水平480线,逐行扫描),较D1隔行扫描要清晰不少,和逐行扫描DVD规格相同,行频为31.5kHz。
D3:1080i格式(1125i):1920×1080(水平1080线,隔行扫描),高清放松采用最多的一种分辨率,分辨率为1920×1080i/60Hz,行频为33.75kHz。
D4:720p格式(750p):1280×720(水平720线,逐行扫描),虽然分辨率较D3要低,但是因为逐行扫描,市面上更多人感觉相对于1080I(实际逐次540线)视觉效果更加清晰。不过个人感觉来说,在最大分辨率达到1920×1080的情况下,D3要比D4感觉更加清晰,尤其是文字表现力上,分辨率为1280×720p/60Hz,行频为45kHz。
D5:1080p格式(1125p):1920×1080(水平1080线,逐行扫描),目前民用高清视频的最高标准,分辨率为1920×1080P/60Hz,行频为67.5KHZ。
其中D1 和D2标准是我们一般模拟电视的最高标准,并不能称的上高清晰,D3的1080i标准是高清晰电视的基本标准,它可以兼容720p格式,而D5的1080P只是专业上的标准,并不是民用级别的,上面所给出的60HZ只是理想状态下的场频,而它的行频为67.5KHZ,目前还没有如此高行频的电视问世,实际在专业领域里1080P的场频只有24HZ,25HZ和30HZ。
需要指出的一点是,D端子是日本独有的特殊接口,国内电视几乎没有带这种接口的,最多的是色差接口,而色差接口最多支持到D4,理论上肯定没有HDMI(纯数字信号,支持到1080P)的最高清晰度高,但在1920:1080以下分辨率的电视机上,一般也没有很大差别。
H.264是国际标准化组织(ISO)和国际电信联盟(ITU)共同提出的继MPEG4之后的新一代数字视频压缩格式。
简单理解就是H264有多个版本,版本越高编码效率和压缩率就越高,对应的版本是Profile。从低到高分别为:Baseline、Main、High;在相同配置情况下,High profile(HP)可以比Main profile(MP)节省10%的码流量,比MPEG-2 MP节省60%的码流量,具有更好的编码性能。(这是个普遍认可的一组数据)。
每个level都规定了一组对标准中语法成员(syntax element)所采用的各种参数值的限制。在给定的profile下,level通常与解码器的处理能力和内存容量相对应。每一个档次设置不同的参数(如取样速率、图像尺寸、编码比特率等),得到对应的编解码器性能的不同level。
H.264有四种画质级别,分别是BP、EP、MP、HP:
1、BP-Baseline Profile:基本画质。支持I/P 帧,只支持无交错(Progressive)和CAVLC;
2、EP-Extended profile:进阶画质。支持I/P/B/SP/SI 帧,只支持无交错(Progressive)和CAVLC;
3、MP-Main profile:主流画质。提供I/P/B 帧,支持无交错(Progressive)和交错(Interlaced),也支持CAVLC 和CABAC 的支持;
4、HP-High profile:高级画质。在main Profile 的基础上增加了8x8内部预测、自定义量化、无损视频编码和更多的YUV 格式;
想要说明H.264 HP与H.264 MP的区别就要讲到H.264的技术发展了。JVT 于2003年完成H.264基本部分标准制定工作,包含Baseline profile、Extended profile和Main profile,分别包括不同的编码工具。之后JVT又完成了H.264 FRExt(即:Fidelity Range Extensions)扩展部分(Amendment)的制定工作,包括High profile(HP)、High 10 profile(Hi10P)、High 4:2:2 profile(Hi422P)、High 4:4:4 profile(Hi444P)4个profile。
H.264 Baseline profile、Extended profile和Main profile都是针对8位样本数据、4:2:0格式的视频序列,FRExt将其扩展到8~12位样本数据,视频格式可以为4:2:0、4:2:2、4:4:4,设立了High profile(HP)、High 10 profile(Hi10P)、High 4:2:2 profile(Hi422P)、High 4:4:4 profile(Hi444P)4个profile,这4个profile都以Main profile为基础。
在相同配置情况下,High profile(HP)可以比Main profile(MP)节省10%的码流量,比MPEG-2 MP节省60%的码流量,具有更好的编码性能。根据应用领域的不同,Baseline profile多应用于实时通信领域,Main profile多应用于流媒体领域,High profile则多应用于广电和存储领域。
视频码率就是数据传输时单位时间传送的数据位数,一般我们用的单位是kbps即千位每秒。通俗一点的理解就是取样率,单位时间内取样率越大,精度就越高,处理出来的文件就越接近原始文件。对于场景变化的真实场景,图像质量稳定,编码码率会波动;编码码率稳定,图像质量会波动。以 H.264 编码为例,通常图像 Qp 越低,图像的质量越好,码率越高;图像 Qp 越高,图像质量越差,码率越低。
但是文件体积与取样率是成正比的,所以几乎所有的编码格式重视的都是如何用最低的码率达到最少的失真,围绕这个核心衍生出来的cbr(固定码率)与vbr(可变码率),都是在这方面做的文章,不过事情总不是绝对的,举例来看,对于一个音频,其码率越高,被压缩的比例越小,音质损失越小,与音源的音质越接近。
CBR(Constant Bit Rate)以恒定比特率方式进行编码,有Motion发生时,由于码率恒定,只能通过增大QP来减少码字大小,图像质量变差,当场景静止时,图像质量又变好,因此图像质量不稳定。这种算法优先考虑码率(带宽)。
这个算法也算是码率控制最难的算法了,因为无法确定何时有motion发生,假设在码率统计窗口的最后一帧发生motion,就会导致该帧size变大,从而导致统计的码率大于预设的码率,也就是说每秒统计一次码率是不合理的,应该是统计一段时间内的平均码率,这样会更合理一些。
在流式播放方案中使用CBR编码最为有效。使用CBR编码时,比特率在流的进行过程中基本保持恒定并且接近目标比特率,始终处于由缓冲区大小确定的时间窗内。CBR编码的缺点在于编码内容的质量不稳定。因为内容的某些片段要比其他片段更难压缩,所以CBR流的某些部分质量就比其他部分差。此外,CBR编码会导致相邻流的质量不同。通常在较低比特率下,质量的变化会更加明显。
当计划提供内容供用户下载、将内容在本地播放或者在读取速度有限的设备(如CD或DVD播放机)上播放时,请使用VBR编码。(计划流式播放内容时也可以采用峰值VBR编码模式)当 编码内容中混有简单数据和复杂数据(例如,在快动作和慢动作间切换的视频)时,VBR 编码是很有优势的。使用VBR编码时,系统将自动为内容的简单部分分配较少的比特,从而留出足量的比特用于生成高质量的复杂部分。这意味着复杂性恒定的内 容(例如新闻播音)不会受益于VBR编码。对混合内容使用 VBR 编码时,在文件大小相同的条件下,VBR编码的输出结果要比CBR编码的输出结果质量好得多。在某些情况下,与CBR编码文件质量相同的VBR编码文件,其大小可能只有前者的一半。
VBR(Variable Bit Rate)动态比特率,其码率可以随着图像的复杂程度的不同而变化,因此其编码效率比较高,Motion发生时,马赛克很少。码率控制算法根据图像内容确定使用的比特率,图像内容比较简单则分配较少的码率(似乎码字更合适),图像内容复杂则分配较多的码字,这样既保证了质量,又兼顾带宽限制。这种算法优先考虑图像质量。
CVBR(Constrained VariableBit Rate),这样翻译成中文就比较难听了,它是VBR的一种改进方法。但是Constrained又体现在什么地方呢?这种算法对应的Maximum bitRate恒定或者Average BitRate恒定。这种方法的兼顾了以上两种方法的优点:在图像内容静止时,节省带宽,有Motion发生时,利用前期节省的带宽来尽可能的提高图像质量,达到同时兼顾带宽和图像质量的目的。这种方法通常会让用户输入最大码率和最小码率,静止时,码率稳定在最小码率,运动时,码率大于最小码率,但是又不超过最大码率。
一般情况下,合成相同质量的节目时,采用CBR编码方式时节目合成时间会短一些,但文件的长度会大一些(即相同时长的节目会占用更多的空间或者相同的空间只能容纳更短的节目)。
一台Intel双核805D(2.66GHz)、1.5GB内存、ATI X550独立256MB显示卡、300GB并口硬盘、不超频的情况下,在Premiere Pro 2.0中合成一段54分钟的DVD节目,采用CBA编码方式,耗时约90分钟,生成的文件约3.7GB;采用VBA二次编码方式,耗时约150分钟,生成 的文件约2.7GB。
H264 Profile对比分析:https://blog.csdn.net/matrix_laboratory/article/details/72764621
HEVC/H.265理论知识(2)——profile、level、tier:https://blog.csdn.net/NB_vol_1/article/details/53288587
数字视频编解码基础知识大全:https://blog.csdn.net/sunnylgz/article/details/7749136
视频图像传输与显示(2)——彩色模拟电视广播制式NTSC、PAL和SECAM:https://blog.csdn.net/hit_wzj/article/details/50360306
视频监控行业常用的几种分辨率(CIF/QCIF/DCIF/D1/HALF D1)对比解释:https://blog.csdn.net/LEON1741/article/details/79195769
RGB、HSV和HSL颜色空间:https://zhuanlan.zhihu.com/p/67930839