本文不定期更新,最新内容请访问:https://www.shuaiqi.me/2019/07/23/yigeqianfeihechengshideziwoxiuyangshipincanshuguanyufenbianshuaizhenshuaixiangsuchangkuanbi/
笔者接触影视行业是在本科一年级,刚开始如无头苍蝇,什么都学了一点,阴差阳错地习得了关于视频参数的一些知识。看似是无关紧要的东西,但对我后来学习合成起到了莫大的帮助,今天重新把它们梳理一遍,同样的,希望对你也能有所帮助。
格式与编解码器
常见的mp4、avi、mov、wmv都是(封装)格式。H.264、HEVC(H.265)、ProRes等都是编码器。
格式与编码器息息相关。一个比喻,格式可看作一个箱子,编码器是箱子中物品的排列方式,一个箱子里可以用不同的排列方式;排列方式也可以用于不同的箱子。比如在Mp4箱子中,可以用H.264编码,也可用HEVC,H.264编码可以用于mp4格式,也可以用于mov格式。
顺带提一句解码器,要想播放特定编码器的视频,必须要有相应的解码器,比如在PC上,已经预置了对H.264的解码,对ProRes则需安装Quicktime来获得解码器支持。
分辨率
影视领域的分辨率,通常表示水平方向和垂直方向的像素数,比如常见的1080P影像分辨率为1920×1080,即水平方向有1920个像素块,垂直方向有1080个像素块,他们相乘的积(像素总数)为2,073,600,也就是207万像素。
Tips:图像的“清晰程度”与多个因素相关,比如光学系统质量、传感器质量、采样率、压缩算法、色彩空间等等,像素总数是其中影响因素之一,但起不到决定作用。一些手机厂商热衷于宣传“像素”与“清晰程度”成正比,严格来说是错误的。
帧率
24帧为电影标准帧率,25/30一般应用于广播电视领域和网络视频平台。还有其它流行帧率,比如一些视频网站(如Bilibili和Youtube)流行的50、60帧,中高端摄像机高帧率拍摄的100、120甚至更高的帧率等等,不再赘述。
值得一提的是23.976和29.97,它属于模拟信号电视时代的历史遗留问题。在电视产生早期,NTSC制式黑白电视的帧率为完整的30帧,但是在彩色电视出现之后,电视台输出彩色信号还要兼容黑白电视,这时需要在有限的带宽中添加色彩信息,但这与原有的声音信息载波相互干扰,为了解决问题工程师采取放慢1%的办法,至于其中的原理笔者不甚了解,感兴趣可参考视频Why is TV 29.97 frames per second?与维基条目NTSC。23.976和29.97是特定技术条件下妥协的产物,HDTV等新的电视制式出现后,为了兼容之前NTSC标准,有些制式仍保留了对29.97的支持。另外,PAL制式传输色彩信息的技术参数与NTSC制式不同,没有出现这种问题。
像素长宽比
一个像素块的长度与宽度之比。 上图像素长宽比为x/y=0.5,当今主流视频像素长宽比为1,也就是一个像素块为正方形。有些NTSC/PAL的片源的长宽比不为1,还有一些低端摄像机,它们的感光元件为4:3,要拍摄16:9的影片,但又不舍得裁剪,会采用改变像素长宽比的方式。
扫描方式
扫描方式分为逐行扫描和隔行扫描,1080P(Progressive)和1080I(Interlace),P代表逐行扫描,I代表隔行扫描。
逐行扫描即要显示一幅图像,那么从图像的第一行开始显示,一直到最后一行,是现在的主流。
隔行扫描,还可分为上场优先和下场优先,比如上场优先,那么先扫描奇数行,比如1,3,5,7……再扫描2,4,6,8……,下场优先则是先扫描偶数行再扫描奇数行,这样组成一帧,这是模拟电视的主流扫描方式。
制式(电视标准)
在有些软件中,导出时会出现制式选项,一般有“NTSC”和“PAL”选项,NTSC和PAL是模拟信号电视的制式,NTSC制式的电视参数为29.97帧,隔行扫描,流行于北美,日本等地区。PAL制式为25帧,隔行扫描,流行于欧洲,中国等地区。电视帧数与该地区的市电频率息息相关,比如我国,市电为220V 50Hz,那么适应市电频率,每秒扫描50场,假如是上场优先,那么在1/50秒先扫描奇数行,2/50秒再扫描偶数行,2/50秒组成一帧,每秒50场也就是25帧。
隔行扫描可能会出现“画面割裂”的错误,仍以PAL上场优先为例,第2/50秒扫描的是第一帧的下场,在3/50秒时扫描的是第二帧的上场,即第一帧和第二帧的混合,势必会出现错误,画面运动越快,错误就越明显。
通常,如果不在广播电视领域使用,那么选择NTSC或PAL影响并不大,选择NTSC或PAL可能会影响帧率的选择,NTSC模式下,帧数选择可能为23.976,24,29.97,30,59.94,60等帧率选项,PAL可能会出现24,25,50等帧率选项。
位深
常见的位深有8-bit,16-bit,32-bit等,如8bit,即8位2进制所代表的 28=256个变化,在影视领域则代表每个像素的每个通道有256级灰度,RGB三通道则有 2563=16,777,216种色彩。
Nuke工作在32-bit浮点线性空间,合成中的32位指每个通道占有32-bit( 32位可能还有另一个解释,即RGBA每通道占用8-bit,四通道一共32-bit,此解释在合成领域不适用),每通道有232=4,294,967,296的灰度级,RGB三通道可表示有232·232·232=7.923 x 1028种色彩。
位深影响的主要是影像的色彩细腻程度,8-bit因为占用空间较小,并且也能够较好地表现色彩,所以广泛应用于网络视频图片及广播电视领域,但是在表现一些细腻的渐变色时,很可能会出现色带(如图)。
10-bit一般用于数字电影放映,16-bit及以上用于调色、合成等后期制作。
采样
如图,采样一般是相对于Y'CbCr(YUV的一种,由RGB转化而来)颜色编码来说的,在这里,Y代表亮度,Cb和Cr可理解为颜色信息。采样方式一般有4:4:4,4:2:2,4:2:0等,把它表示为X:Y:Z,X表示单元列数(一个处理单元的列数由X规定,行数一般为2行,在这里为8个像素为一个处理单元),Y表示第一行的颜色(CbCr)采样,Z表示第二行的颜色采样,像素的亮度信息则被全部保留。那么颜色没有被采样,只有亮度采样的像素,它们的颜色从哪里来?不同的编码器对此有不同的处理方式,一般为复制周边的颜色采样等,不再深究。
这样做的目的是什么呢? 因为人眼对亮度的敏感程度大于颜色,所以亮度全部保留,颜色则可以减少抽样。这样不会对影像造成太大的损坏,而且减小影像体积。
笔者对这些参数的理解有限,如有任何纰漏,敬请指出。