1、几个基础概念
1)视频
根据人眼视觉暂留原理,每秒超过24帧的图像变化看上去是平滑连续的,这样的连续画面叫视频。
所谓视频其实就是由很多的静态图片组成的。由于人类眼睛的特殊结构,画面快速切换时,画面会有残留,所以静态图片快速切换的时候感觉起来就是连贯的动作。这就是视频的原理。
2)帧(Frame)
简单的理解帧就是视频或者动画中的每一张画面,而视频和动画特效就是由无数张画面组合而成,每一张画面都是一帧。
既然视频是由许多静态图片组成的,那么视频的每一张静态图片就叫一帧。
视频帧又分为I帧、B帧和P帧:
I帧:帧内编码帧,大多数情况下I帧就是关键帧,是一个完整帧,无需任何辅助就能独立完整显示的画面。
B帧:双向预测帧。参考前后图像帧编码生成。需要前面的I/P帧或者后面的P帧来协助形成一个画面。
P帧:前向预测编码帧。是一个非完整帧,通过参考前面的I帧或P帧生成画面。
3)帧数(Frames)
帧数其实就是帧生成数量的简称,可以解释为静止画面的数量。其定义为用于测量显示帧数的量度。单位为FPS(Frames per Second,每秒显示帧数)或者赫兹(HZ)。
帧率越高,画面越流畅、逼真,对显卡的处理能力要求越高,数据量越大。
前面提到每秒超过24帧的图像变化看上去是平滑连续的,这是针对电影等视频而言,对游戏来说24帧是不流畅的。
4)帧率(Frame Rate)
帧率 = 帧数/时间,单位为帧每秒(f/s,frames per second, fps)。
10-12fps:由于人类眼睛的特殊生理结构,如果看到画面的帧率高于每秒10-12帧的时候,就会认为是连贯的,此现象称之为视觉暂留。
24fps:一般电影的拍摄及播放帧数是每秒24帧。
60fps:这个帧率对人眼识别来说已经具备较高的平滑度。
85fps:人类大脑处理视频的极限,人眼无法分辨更高频率的差异。
在做页面性能优化时,常用60fps作为一个基准,所以需要尽量让每一帧的渲染控制在16ms内,这样才能达到一秒60帧的流畅度。
5)刷新率
屏幕每秒被刷新的次数,分为垂直刷新率和水平刷新率,一般我们提到的都是垂直刷新率,以赫兹(Hz)为单位,刷新率越高,图像就越稳定,图像显示就越自然清晰。
目前,大多数显示器根据其设定按30Hz、60Hz、120Hz或者144Hz的频率进行刷新。而其中最常见的刷新频率是60Hz。这样做是为了继承以前电视机刷新频率为60Hz的设定。
6)分辨率
视频、图片的画面大小或尺寸。分辨率是以横向和纵向的像素数量来衡量的,表示平面图像的精细程度。视频精细程度并不只取决于视频分辨率,还取决于屏幕分辨率。
1080P的P指Progressive scan(逐行扫描),即垂直方向像素点,也就是“高”,所以以1920X1080叫1080P,不叫1920P。当720P的视频在1080屏幕上播放时,需要将图像放大,放大操作也叫上采样。
7)码率/比特率
单位时间播放连续的媒体如压缩后的音频或视频的比特数量。比特率越高,带宽消耗越多。单位为bps(bits per second),每秒传输的数据量,常用单位有:kbps、mbps等。计算公式:码率(kbps)=文件大小(kb)/时长(s)。
比特率即码率,在不同领域有不同的含义,在多媒体领域,指单位时间内播放音频或视频的比特数,可以理解成吞吐量或带宽。
通俗一点理解就是取样率,取样率越大,精度就越高,图像质量越好,但数据量也越大,所以要找到一个平衡点,用最低的比特率达到最少的失真。
在一个视频中,不同时段画面的复杂程度是不同的,比如高速变化的场景和几乎静止的场景,所需的数据量也是不同的,若都使用同一种比特率是不太合理的,所以引入了动态比特率。
a、动态比特率
简称VBR(Varaiable Bit Rate),比特率可以随着图像复杂程度的不同而随之变化。图像内容简单的片段采用较小的码率,图像内容复杂的片段采用较大的码率,这样既保证了播放质量,又兼顾了数据量的限制。
比如RMVB视频文件,其中VB就是指VBR,表示采用动态比特率编码方式,达到播放质量与体积兼得的效果。
b、静态比特率
简称CBR(Constant Bit Rate),比特率恒定。图像内容复杂的片段质量不稳定,图像内容简单的片段质量较好。
除了VBR和CBR外,还有CVBR(Constrained Varaiable Bit Rate)、ABR(Average Bit Rate)等等。
2、颜色模式(颜色空间)
1)RGB
RGB是三原色,通过RGB三种基础颜色,可以混合出所有的颜色。该颜色模型的主要目的是在电子系统中检测,表示和显示图像,比如电视和计算机,但是在传统摄影中也有应用。
2)YUV
YUV的发明是位于彩色电视与黑白电视的过渡时期。黑白电视只有Y(Luma,Luminance)视频,也就是灰阶值。到了彩色电视规格的制定,是以YUV/YIQ的格式来处理彩色电视的图像,把UV视作表示彩度的C(Chrominance或Chroma),如果忽略C信号,那么剩下的Y(Luma)信号就跟之前的黑白电视视频相同,这样一来便解决了彩色电视机与黑白电视机的兼容问题。YUV最大的优点在于只需占用极少的带宽,因为人眼对亮度敏感,对色度不敏感,因此减少部分UV的数据量时,人眼可能感知不到。
YUV也称为YCbCr,对于每个分量如下:
-
Y:亮度,也就是灰度值。除了表示亮度信号外,还含有较多的绿色通道量;
-
U:Cb,蓝色通道与亮度的差值;
-
V:Cr,红色通道与亮度的差值。
3)HSV(Hue Saturation Value)
色调H:用角度度量,取值范围为0度-360度,从红色开始按逆时针方向计算,红色为0度,绿色为120度,蓝色为240度。它们的补色是:黄色为60度,青色为180度,品红为300度;
饱和度S:表示颜色接近光谱色的程度。一种颜色可以看成是某种光谱色与白色混合的结果。其中光谱色所占的比例越大,颜色接近光谱色的程度越高,颜色的饱和度就越高。饱和度越高,颜色则深而艳。光谱色的白光成分为0,饱和度达到最高。最高通常取值范围为0%-100%,值越大,颜色越饱和。
明度V:表示颜色明亮的程度,对于光源色,明度值与发光体的光亮度有关;对于物体色,此值和物体的透射比或反射比有关。通常取值范围为0%(黑)到100%(白)。
RGB和YUV颜色模型都是面向硬件的,而HSV颜色模型是面向用户的。
3、视频文件格式、封装格式以及编码方式
1)视频文件格式
简称文件格式,常见的视频格式如1.avi,2.mpg,这些都叫做视频的文件格式,它与你电脑上安装的视频播放器关联。
2)视频封装格式
简称视频格式。AVI、MPEG、VOB是一种视频封装格式,相当于一种储存视频信息的容器。它是由相应的公司开发出来的。
-
AVI格式(后缀为.avi):它的英文全称为Audio Video Interleaved,即音频视频交错格式。它于1992年被Microsoft公司推出。这种视频格式的优点是图像质量好。由于无损AVI可以保存alpha通道,所以应用广泛。但是缺点也很多,比如体积多余庞大,更糟糕的是压缩标准不统一。
-
DV-AVI格式(后缀为.avi):DV的英文全称是Digital Video Format,是由索尼、松下、JVC等多家厂商联合提出的一种家用数字视频格式。数字摄像机就是使用这种格式记录视频数据的。它可以通过电脑的IEEE 1394端口传输视频数据到电脑,也可以将电脑中编辑好的视频数据回录到数码摄像机中。电视台采用录像带记录模拟信号,通过EDIUS由IEEE 1394端口采集卡从录像带中采集出来视频就是这种格式。
-
QuickTime File Format格式(后缀为.mov):美国Apple公司开发的一种视频格式,默认的播放器就是苹果的QucikTime。具有较高的压缩比率和较完美的视频清晰度等特点,并可以保存alpha通道。
-
MPEG格式(文件后缀可以是.mpg、.mpeg、.mpe、.dat、.vob、.asf、.3gp、.mp4等):英文全称为Moving Picture Experts Group,即运动图像专家组格式,该专家组建于1998年,专门负责为CD建立视频和音频标准,而成员都是视频、音频及系统领域的技术专家。MPEG文件格式是运动图像压缩算法的国际标准,MPEG格式目前有三个压缩标准, 分别是MPEG-1/MPEG-2和MPEG-4,前两者目前使用较少。MPEG-4定制于1998 年,是为了播放流媒体的高质量视频而专门设计的,以求使用最少的数据获得最佳的图像质量。目前MPEG-4最优吸引力的地方在于它能够保存接近于DVD画质的小体积视 频文件。你可能注意到了,为什么没有MPEG-3编码,因为这个项目原本目标是为高分辨率电 视(HDTV)设计,随后发现MPEG-2已足够HDTV应用,故MPEG-3的研发中止。
-
WMV格式(后缀为.wmv、.asf):英文全称为Windows Media Video,也是微软推出的一种采用独立编码方式并且可以直接在网上实时观看视频节目的文件压缩格式。其主要优点包括:本地或网络回放,丰富的流间关系以及扩展性等。WMV如果在网站上播放,需要安装Windows Media Player(WMP),很不方便,现在已经几乎没有网站采用了。
-
Flash Video格式(后缀为.flv):由Adobe Flash延伸出来的一种流行网络视频封装格式。随着视频网站的丰富,这个格式已经非常普及。
-
Matroska格式(后缀为.mkv):是一种新的多媒体封装格式,这个封装格式可以把多种不同编码的视频及16条或以上不同格式的音频和语言不同的字幕封装在一个Matroska Media文档内。它也是其中一种开源代码的多媒体封装格式。同时还可以提供非常友好的交互功能,而且比MPEG更方便、强大。
3)视频编码方式
简称视频编码,所谓视频编码方式就是指能够对数字视频进行压缩或者解压缩的程序或者设备。通常这种压缩属于有损数据压缩。也可以指通过特定的压缩技术,将某个视频格式转换成另一种视频格式。常见的编码方式有:
a、H.26x系列(由ITU[国际电传视讯联盟]主导),包括H.261、H.262、H.263、H.264和H.265。
-
H.261:主要在老的视频会议和视频电话产品中使用;
-
H.263:主要用在视频会议、视频电话和网络视频中;
-
H.264:H.264/MPEG-4第十部分,或称为AVC(Advanced Video Coding,高级视频编码),是一种视频压缩标准,一种被广泛使用的高精度视频的录制、压缩和发布格式。
-
H.265:高效率视频编码(High Efficiency Video Coding,简称HEVC)是一种视频压缩标准,H264/MPEG-4 AVC的继任者。HEVC被认为不仅提升图像质量,同时也能达到H264/MPEG-4 AVC两倍的压缩率(等同于同样画面质量下比特率减少了50%),可支持4K分辨率甚至超高画质电视,最高分辨率可达8192x4320(8K分辨率),这是目前发展的趋势。
b、MPEG系列(有ISO[国际标准组织机构]下属的MPEG[运动图像专家组]开发),视频编码方面主要由:
-
MPEG-1第二部分:该部分的主要使用在VCD上,有些在线视频也使用这种格式。该编解码器的质量大致上和原有的VHS录像带相当。
-
MPEG-2第二部分:该部分等同于H.262,使用在DVD、SVCD和大多数数字视频广播系统和有线分布系统(cable distribution systems)中。
-
MPEG-4第二部分:该部分标准可以使用在网络传输、广播和媒体存储上。比起MPEG-2和第一版的H.263,它的压缩性能有所提高。
-
MPEG-4第十部分:该部分技术上和ITU-TH.264是相同的标准,有时候也被叫做AVC,最后这两个编码组织合作,诞生了H.264/AVC标准。ITU-T给这个标准命名为H.264,而ISO/IEC称它为MPEG-4高级视频编码(Advanced Video Coding, AVC)
视频的编码格式才是一个视频文件的本质所在,不要简单的通过文件格式和封装形式来区分视频。
4、CPU & GPU
CPU:中央处理器(Central Processing Unit),包括运算器(算术逻辑运算单元,ALU, Arithmetic Logic Unit)和高速缓冲处理器(Cache)及实现它们之间联系的数据(Data)、控制及状态的总线(Bus)。
GPU:图像处理器(Graphics Processing Unit),专为执行复杂的数学和几何计算而设计的,拥有2D或3D图形加速功能。
GPU相比于CPU,更强大的2D、3D图形计算能力,可以让CPU从图形处理的任务中解放出来,执行其他更多的系统任务,这样可以大大提高计算机的整体性能。
硬件加速(Hardware acceleration)就是利用硬件模块来替代软件算法以充分利用硬件所固有的快速特性。硬件加速通常比软件算法的效率要高。将2D、3D图形计算相关工作交给GPU处理,从而释放CPU的压力,也是属于硬件加速的一种。