编码类型为H264。
允许使用8*8DCT。对画面质量和压缩效率都有好处。I4*4,P4*4,P8*8,B8*8:AVC标准允许使用多种DCT块划分方式,这里就能选择允许使用的DCT块划分方式。前面的字母代表对于的帧类型,后面的数字代表块大小。本选项对画面质量和压缩效率都有好处,推荐都选上。I8*8需要ADaptive DCT打开才有效。
每秒的帧数(fps)或者说帧率表示图形处理器处理场时每秒钟能够更新的次数。高的帧率可以得到更流畅、更逼真的动画。一般来说30fps就是可以接受的,但是将性能提升至60fps则可以明显提升交互感和逼真感,但是一般来说超过75fps一般就不容易察觉到有明显的流畅度提升了。如果帧率超过屏幕刷新率只会浪费图形处理的能力,因为监视器不能以这么快的速度更新,这样超过刷新率的帧率就浪费掉了。
关键帧的周期,也就是两个IDR帧之间的距离,一个帧组的最大帧数,一般而言,每一秒视频至少需要使用 1 个关键帧。增加关键帧个数可改善质量,但是同时增加带宽和网络负载。
需要说明的是,通过提高GOP值来提高图像质量是有限度的,在遇到场景切换的情况时,H.264编码器会自动强制插入一个I帧,此时实际的GOP值被缩短了。另一方面,在一个GOP中,P、B帧是由I帧预测得到的,当I帧的图像质量比较差时,会影响到一个GOP中后续P、B帧的图像质量,直到下一个GOP开始才有可能得以恢复,所以GOP值也不宜设置过大。
同时,由于P、B帧的复杂度大于I帧,所以过多的P、B帧会影响编码效率,使编码效率降低。另外,过长的GOP还会影响Seek操作的响应速度,由于P、B帧是由前面的I或P帧预测得到的,所以Seek操作需要直接定位,解码某一个P或B帧时,需要先解码得到本GOP内的I帧及之前的N个预测帧才可以,GOP值越长,需要解码的预测帧就越多,seek响应的时间也越长。
H.264/AVC标准中两种熵编码方法,CABAC叫自适应二进制算数编码,CAVLC叫前后自适应可变长度编码,
CABAC:是一种无损编码方式,画质好,X264就会舍弃一些较小的DCT系数,码率降低,可以将码率再降低10-15%(特别是在高码率情况下),会降低编码和解码的速速。
CAVLC将占用更少的CPU资源,但会影响压缩性能。
帧:当采样视频信号时,如果是通过逐行扫描,那么得到的信号就是一帧图像,通常帧频为25帧每秒(PAL制)、30帧每秒(NTSC制);
场:当采样视频信号时,如果是通过隔行扫描(奇、偶数行),那么一帧图像就被分成了两场,通常场频为50Hz(PAL制)、60Hz(NTSC制);
帧频、场频的由来:最早由于抗干扰和滤波技术的限制,电视图像的场频通常与电网频率(交流电)相一致,于是根据各地交流电频率不同就有了欧洲和中国等PAL制的50Hz和北美等NTSC制的60Hz,但是现在并没有这样的限制了,帧频可以和场频一样,或者场频可以更高。
帧编码、场编码方式:逐行视频帧内邻近行空间相关性较强,因此当活动量非常小或者静止的图像比较适宜采用帧编码方式;而场内相邻行之间的时间相关性较强,对运动量较大的运动图像则适宜采用场编码方式。
开启会减少块效应。
是否让每个I帧变成IDR帧,如果是IDR帧,支持随机访问。
--frame 将两场合并作为一帧进行编码,--tff Enable interlaced mode (开启隔行编码并设置上半场在前),--bff Enable interlaced mode。
PAFF 和MBAFF:当对隔行扫描图像进行编码时,每帧包括两个场,由于两个场之间存在较大的扫描间隔,这样,对运动图像来说,帧中相邻两行之间的空间相关性相对于逐行扫描时就会减小,因此这时对两个场分别进行编码会更节省码流。
对帧来说,存在三种可选的编码方式:将两场合并作为一帧进行编码(frame 方式)或将两场分别编码(field 方式)或将两场合并起来作为一帧,但不同的是将帧中垂直相邻的两个宏块合并为宏块对进行编码;前两种称为PAFF 编码,对运动区域进行编码时field 方式有效,对非运区域编码时,由于相邻两行有较大的相关性,因而frame 方式会更有效。当图像同时存在运动区域和非运动区域时,在MB 层次上,对运动区域采取field 方式,对非运动区域采取frame 方式会更加有效,这种方式就称为MBAFF,预测的单位是宏块对。
位率又称为“码率”。指单位时间内,单个录像通道所产生的数据量,其单位通常是bps、Kbps或Mbps。可以根据录像的时间与位率估算出一定时间内的录像文件大小。 位率是一个可调参数,不同的分辨率模式下和监控场景下,合适的位率大小是不同的。在设置时,要综合考虑三个因素:
1、分辨率
分辨率是决定位率(码率)的主要因素,不同的分辨率要采用不同的位率。总体而言,录像的分辨率越高,所要求的位率(码率)也越大,但并不总是如此,图1说明了不同分辨率的合理的码率选择范围。所谓“合理的范围”指的是,如果低于这个范围,图像质量看起来会变得不可接受;如果高于这个范围,则显得没有必要,对于网络资源以及存储资源来说是一种浪费。
2、场景
监控的场景是设置码率时要考虑的第二个因素。在视频监控中,图像的运动剧烈程度还与位率有一定的关系,运动越剧烈,编码所要求的码率就越高。反之则越低。因此在同样的图像分辨率条件下,监控人多的场景和人少的场景,所要求的位率也是不同的。
3、存储空间
最后需要考量的因素是存储空间,这个因素主要是决定了录像系统的成本。位率设置得越高,画质相对会越好,但所要求的存储空间就越大。所以在工程实施中,设置合适的位率即可以保证良好的回放图像质量,又可以避免不必要的资源浪费。
位率类型
位率类型又称为码率类型,共有两种——动态码率(VBR)和固定码率(CBR)。所谓动态码率是指编码器在对图像进行压缩编码的过程中,根据图像的状况实时调整码率高低的过程,例如当图像中没有物体在移动时,编码器自动将码率调整到一个较低的值。但当图像中开始有物体移动时,编码器又自动将码率调整到一个较高的值,并且实时根据运动的剧烈程度进行调整。这种方式是一种图像质量不变,数据量变化的编码模式。
固定码率是指编码器在对图像进行编码的过程中,自始至终采用一个固定的码率值,不论图像情况如何变化。这种方式是码率量不变,而图像质量变化的编码模式。在动态码率模式下,我们在硬盘录像机上设置的位率值称为“位率上限”。意思是我们人为设定一个编码码率变化的上限,可以低于,但不能高于。根据这个位率值,我们可以估算出一定时间内的存储容量的上限值。
在固定码率模式下,在硬盘录像机上设置的位率值就是编码时所使用的位率值,根据这个数值,我们可以精确地估算出一定时间内的存储容量。
介于0~31之间,值越小,量化越精细,图像质量就越高,而产生的码流也越长。
允许计算峰值信噪比(PSNR,Peak signal-to-noise ratio),编码结束后在屏幕上显示PSNR计算结果。开启与否与输出的视频质量无关,关闭后会带来微小的速度提升。
分别是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规定了三种档次,每个档次支持一组特定的编码功能,并支持一类特定的应用。
1)基本档次:利用I片和P片支持帧内和帧间编码,支持利用基于上下文的自适应的变长编码进行的熵编码(CAVLC)。主要用于可视电话、会议电视、无线通信等实时视频通信;
2)主要档次:支持隔行视频,采用B片的帧间编码和采用加权预测的帧内编码;支持利用基于上下文的自适应的算术编码(CABAC)。主要用于数字广播电视与数字视频存储;
3)扩展档次:支持码流之间有效的切换(SP和SI片)、改进误码性能(数据分割),但不支持隔行视频和CABAC。主要用于网络的视频流,如视频点播。
指两个P帧之间的距离。
主码流位率高,图像质量高,便于本地存储;副码流位率低,图像质量低,便于网络传输。
总结:
编码参数不能只知道帧率,码率,I帧间隔,QP因子,更要知道其他参数的作用。