@gy-ban
2017-08-12T05:10:55.000000Z
字数 3256
阅读 522
视频
最近需要对一些视频进行压缩,由于找不到合适的人来做这件事,所以只能赶鸭子上架了。
在瞎忙了几个小时之后,发现得先了解其中的一些视频相关概念才能将工作开展下去
我们平时所看到的视频,理论上就是一帧帧的图片连续的播放,形成动画效果。那么完整的保存所有图片,一部电影可能就要上百G的空间。
这个时候,我们就需要对这些图片进行压缩以节省空间。具体的原理大概讲一下,比如一秒钟的视频通常有24帧,这24张图画大部分区域可能都比较相近,那么我们是不是可以找到一种方法,只保存一张完整图片(我们称为关键帧),不保存其他图片,只保存和这个完整图片的不同(通过某种数学建模表达),这样就会节省很多空间,在播放的时候,通过和关键帧与每一帧的不同逆向恢复成一张完整的图片,这样就得到了24张完整的图片。(这里只是举例,实际应用中并不一定是每24帧图像被设定一个关键帧)。这里用到的压缩算法对应一种编码格式。而这里压缩用到的码率
参数就是码率。
码率又称比特率(bit per second),是指每秒传送的比特数,所谓码率,简单来说就是指在压缩视频的时候给这个视频指定一个参数,用以告诉压缩软件期望的压缩后视频的大小
举个例子,我有一个1G的视频文件,时长是100分钟,那理论上该视频的码率为
1024X1024X1024X8bit/100X60s=1431655bit/s≈1.4Mbit/s
也就是说,该视频每秒传输数据量是1.4Mbit,如果想要在线观看该视频的话,我们得要有超过1.4M的带宽才能正常观察,如果小于该值,就会出现缓冲的情况。
从上面的例子可以得出,一个相同的视频,码率越高,视频体积越大,就越接近原始文件,就越清晰。
所以对于视频压缩来说,码率是最关键的一个值,码率就是失真度,码率越高越清晰,反之则画面粗糙甚至出现马赛克
帧率就是在1秒钟时间里传输的的帧数,也可以理解为图形处理器每秒钟能够刷新几次,通常用FPS(“每秒显示帧数”Frame per Second)表示
每一帧就是一副静止的画面,快速连续地显示帧便形成了运动的假象。高的帧率可以得到更流畅、更逼真的动画。每秒钟帧数 (fps) 愈多,所显示的动作就会愈流畅。由于人类眼睛的特殊生理结构,如果所看画面之帧率高于24的时候,就会认为是连贯的,此现象称之为视觉暂留。一般来说30fps就是可以接受的,但是将性能提升至60fps则可以明显提升交互感和逼真感,但是一般来说超过75fps一般就不容易察觉到有明显的流畅度提升了。
那是不是帧率越快越好?
答案是否定的,为什么了?
在显示分辨率不变的情况下,FPS越高,则对显卡的处理能力要求越高。电脑中所显示的画面,都是由显卡来进行输出的,因此屏幕上每个像素的填充都得由显卡来进行计算、输出。当画面的分辨率是1024X768时,画面的刷新率要达到24帧/秒,那么显卡在一秒钟内需要处理的像素量就达到了“1024X768X24=18874368”。如果要求画面的刷新率达到50 帧/秒,则数据量一下子提升到了“1024X768X50=39321600”。
FPS与分辨率、显卡处理能力的关系如下:处理能力=分辨率X刷新率。这也就是为什么在玩游戏时,分辨率设置得越大,画面就越不流畅的原因了(原来如此!知识解决困惑啊。。。)。
说到分辨率,我们就不得不提像素了,不然就很难解释的清楚,反正一开始我只了解分辨率,是越了解越糊涂。
分辨率是用于度量图像内数据量多少的一个参数,通常表示成ppi(每英寸像素Pixel per inch)那个视频的320X180是指它在横向和纵向上的有效像素,窗口小时ppi值较高,看起来清晰;窗口放大时,由于没有那么多有效像素填充窗口,有效像素ppi值下降,就模糊了。
对于像素和分辨率这两个词,主要见于图片和显示设备上。只要你用到手机里的照相功能,你都要接触到这两个概念。只是大多数人都是一知半解,而更多的人却根本就不知道,白白浪费了手机里500万、800万像素的摄影头,却不知道如何调节使用。
像素是组成图象的最基本单元要素:点。分辨率是指在长和宽的两个方向上各拥有的像素个数。一个像素有多大呢?主要取决于显示器的分辨率,相同面积不同分辨率的显示屏,其像素点大小就不相同。
大家都知道线是由无数个点组成的,而面是由无数条线组成,即一个平面是由无数个点所组成。但无论技术多先进发达,人类总是不可能做到一幅图象由无数个点来构成的境界,只能在长和宽的方向上由有限个点组成而已。
这些有限的点就叫做像素,每一个长度方向上的像素个数和每一个宽度方向上的像素个数的形式表示,就叫做图片的分辨率。
如一张640X480的图片,表示这张图片在每一个长度的方向上都有640个像素点,而每一个宽度方向上都480个像素点,总数就是640X480=307200(个像素),简称30万像素。
显然单位面积上像素点越多即像素点越小,这图片就越清晰细腻。
那这个像素点究竟有多大小呢?单纯从图片来说是不能确定这个点有多大的。这个大小和显示屏的分辨率息息相关。
显示屏的尺寸是指其对角线的长度,用英寸表示,1英寸=25.4毫米。
我们以一款手机为例来说明这个问题。其主屏尺寸:4寸,主屏分辨率:800x480像素,通过勾股定理计算可知其长宽为3.430寸X2.058寸(87.1毫米X52.3毫米)。800/3.430=233,即每英寸长度有233个像素,每一个像素有87.1/800=0.109毫米大。
就是说这个手机的显示屏共由800X480=384000个边长为0.109毫米大小相等的像素点所组成。任何一张图片在这个显示器里百分之百全屏显示时(图片作为墙纸或屏保时效果最好),其像素点都是这么大。如果图片大过显示屏,则要滑动滚动条才能看完全图,
如果小于显示屏,则会居中显示,无图显示处为黑框显示。对于640X480分辨率的图,在此显示屏中会居中显示,在长度方向上两端会有一截为黑框显示。这个图片的尺寸长为69.68毫米,宽为52.3毫米。如果是在光线不足的条件下照得的相片,你会看到一格格的马赛克,画面很是粗糙。
而对于4.3寸主屏,若其分辨率:1280x720像素,则长和宽3.746X2.108(95.2毫米X53.5毫米),1280/3.746=341,即每英寸长度有341个像素,每一个像素有95.2/1280=0.074毫米大。显而易见这个屏幕比前面那个屏显示的效果好得多了。640X480分辨率的图片在这里的长和宽分别为47.6毫米和35.7毫米。
对于4.5寸主屏,若其分辨率为:1280x720像素,则长和宽3.923X2.206(99.6毫米X56.0毫米),1280/3.923=326,即每英寸长度上有326个像素,每一个像素有99.6/1280=0.078毫米。和前面的4.3寸屏差不多。
17寸液晶显示器(5:4),其分辨率:1280X1024,每英寸长度上有96个像素点;每个边长为0.263毫米。
19寸普屏显示器(5:4),其分辨率:1280X1024,每英寸长度上有86个像素点;每个边长为0.294毫米。
19寸宽屏显示器(16:9),其分辨率:1366X768,每英寸长度上有82个像素点;每个边长为0.308毫米。
19寸宽屏显示器(16:10),其分辨率:1440X900,每英寸长度上有89个像素点;每个边长为0.284毫米。
这个每英寸长度上的像素数个数叫做影像分辨率,简称PPI(pixeleperinch英文缩写)。如每英寸长度上有82个像素点,即用82PPI来表示。
所以说同一张图片,在不同的PPI(影像分辨率)显示屏上其尺寸是不相同的, 像素点的大小就和这个影像分辨率有关。
如果大家还想了解更多关于视频技术的基础知识,可以看下这篇文章
http://blog.csdn.net/leixiaohua1020/article/details/18893769