a4纸是多少像素(a4纸的像素是多少px)
视频的知识,本身和计算机语言无关。但考虑到大量的视频开源软件用C/C 语言编写,因此将本讲归到C/C 语言系列。
对于视频,大家都不陌生,我们的手机,就带有摄像头,可以拍视频。下面介绍一些视频相关的基础知识。
1、关于像素(Pixel)
像素的英文是Pixel,是Picture Element两个单词的缩写,所以像素就是图片单元。
在数字技术中,所有数据,包括图像数据,都是用离散的二进制数字表示。因此,在计算机中,图像也由一些列离散的点组成。用通俗的语言说,像素就是组成图像的一个个带有颜色的点。
对于像素的概念,用过老式电脑或者游戏机的朋友体会比较深,当年一副图像就像一组马赛克点:
当然,我们用Windows自带的mspaint软件随便打开一幅高清jpg图片,不断放大,最后发现高清的jpg照片,其实也是类似于马赛克的照片。例如下面这张赵丽颖的漂亮照片:
用mspaint打开,然后将眼部放大到最大,会发现图像还是由一个个带有颜色的点组成,这就是像素:
2、像素的颜色
大家知道,我们可见的颜色,都可以用红、绿、蓝三种颜色组合得到。
红色Red用R表示,绿色Green用G表示,蓝色Blue用B表示,所以我们常常用RGB表示三种颜色的取值。
当我们对R、G、B三个值都用一个字节来存储时,共需要3个字节,也就是24bit来表示图像的RGB值。
使用24bit来表示颜色,可以表示1600万颜色,远远超出了我们肉眼对颜色的分辨程度,因此我们常常称24bit以上的RGB颜色为真彩色。
3、关于PPI
PPI用于表示物理设备上显示图像的清晰程度。
PPI是Pixels Per Inch的缩写,即“每英寸像素数”。
72 PPI指每英寸的物理长度,有72像素;300 PPI指每英寸物理长度,有300个像素。
72 PPI和300 PPI的差别挺大。举例:如果显示设备大小等于一张A4纸,在300 PPI下的像素尺寸为 3508px * 2480px,而在72 PPI下则只有 842px * 595px。
4、分辨率
分辨率,是显示设备可以显示的像素数量。
对于电脑显示器,早期的分辨率一般为320×240、640×480,现在的分辨率一般为1024×768、1280×1024。
对于手机设备,现在比较流行的是智能手机,分辨率一般用PPI和手机液晶尺寸两个指标来表示。
5、关于视频
很多人小时候可能都做过这样的游戏,在一本书的每页上都画一幅图像,每相邻两页图像变化很少,当我们快速切换当前被展示页面时,我们看到的图画就变成动画了:
其实真正的视频,原理也和这个游戏类似。
大量的图片连续起来,就是视频。
在视频中,一个帧(Frame)就是指一幅静止的画面。帧率,就是指视频每秒钟包括的画面数量(FPS,Frame Per Second)。
帧率越高,视频就越逼真、越流畅。
6、视频的尺寸
如果计算机或摄像设备不做任何处理,机械地生成视频,则视频的尺寸会相当巨大。
如果一个视频的分辨率为1920×1280,帧率为30,每个像素用3字节表示RGB颜色,则一秒的视频需要的字节量为:
1920×1280×3×30=211MB
如果一部电影放映100分钟,则需要的字节数为211×60×100=1236GB,超过了1TB。
这样巨大尺寸的视频,是没有办法存储和传输的,必须对视频进行编码处理。
7、视频编码
视频编码的主要目标就是为了压缩。
为了便于视频的压缩,首先需要将RGB颜色方案变为更容易压缩的YUV方案。YUV中的字母Y表示亮度,UV则表示色度。
视频编码的算法比较复杂,但是我们可以从逻辑上推测,最起码可以通过下面的方式去掉视频中的冗余信息:
(1)极端情况下,如果视频中某帧全部为黄色,实际上我们不用存储每个像素的值,我们只需要存储一个颜色值(黄色)和连续的像素数即可;
(2)如果视频中连续多个帧的图片都基本相同,实际上我们除了第一帧之外,其它各帧只需要存储图像的变动信息。
国际上视频编码的标准主要有两个系列,MPEG标准系列和H.26X系列。目前比较有名的H.265的压缩率达到了1:500,前面描述的原始视频1236G,使用H.265压缩后只有2.4G。
8、视频的封装
视频除了图像,还需要声音。
封装就是将已经编码压缩好的视频轨和音频轨按照一定的格式放到一个文件中。
我们常说的MPG、VOB、MP4、3GP、ASF、RMVB、WMV、MOV、Divx、MKV、FLV、TS/PS就是视频的封装格式。