科普系列(5)数据编码

下面继续普及图片、声音、视频的储存。

图片最简单的就是位图。假如把屏幕分成1920*1080个点(现在大部分显示器和手机都这个分辨率,也有2160*1080,加宽的标准,就是所谓2k屏),每个点用3个字节来表示颜色,你可以算算三个字节能表示多少种颜色,是一千六百万还多。这对于人的眼睛基本够了(当然还有更强大的32位颜色,如果需要,64位也不是不能编,解码程序一个约定而已)。如果年纪大点可能还记得10年前某手机的广告:1600万真彩色屏。因为当时的手机多半是65k色的,也就是2个字节表示一个点。当时手机屏一般只有320*240个点,高端的才640*480个点。点也可以分得更密,比如3840*2160,这就是某些电视机和手机吹嘘的4K屏了。这也就是数码相机的相素。所谓1200万相素,也就是能拍出4000*3000个点的照片。如果你手头有计算器的话,你可以算一下,4000*3000再乘以3个字节,这就是一张千万级别的位图的大小。你是不是很惊奇?看起来太大了一点,大概有38MB之多,事实上这就是BMP格式的图片真实大小。但实际上数据是可以压缩的。最简单的来说,比如连续100个1,你完全可以写成“100个1”,而不用把100个1全写出来。只要在显示时把它还原出来就行了。当然,一个真正压缩算法要复杂很多,显然不是本文讨论范围。你只要知道,JPG的有损压缩,可以把千万相素级照片的压缩在3MB左右。而无损压缩要大很多,比如单反相机,你把格式换成无损的,一张照片一般十几兆。

后来人们又发明了矢量图。简单来说,矢量图就是一组方程来定义图片。比如你要画一条抛物线,只需要一个二次方程就行了,要显示的时候计算出来。一个方程只占用几个字节就行了,而如果是点阵的话,你起码需要几百个点才能画出一条线,并且矢量图随意放大都不会失真,而点阵图你放大之后就会看见明显的色块,不信你随便找张照片,用软件放大100倍试试。当然,很多东西无法用矢量图完成,比如照片。但字库、设计图之类的都可以用矢量图。

再说声音,也是一种编码,把声音的波型分成一段一段的编上号就行了。这里的术语叫采样率,简单来说指把每秒分成多少份,每份用几个字节来表示频率和强度。显然,分得越多就越接近真实,比如44khz采样率,就是每秒分成44100份。当然也有压缩的算法,MP3就是一种有损压缩算法,更高级的要听无损。无损文件一般比MP3大得多。当然,有些超级爱好者,认为无论你分得多细,它总是有数码味的,这就进入玄学的领域了,本文不讨论。

最后是视频。视频实质上就是一幅幅图片连续快速的放给你看,再配上声音而已。什么高清视频啊,超高清视频啊,就是这个照片的分辨率。4K视频就是4K的照片,这里要加上一个帧率,就是每秒给你放多少张图。一般电影大概每秒30帧,人的眼睛已经会觉得很流畅了,游戏一般需要60帧以上。当然以后还会有更高的要求,甚至达到每秒120帧。最高速的摄影机每秒能拍几千帧,但按30帧给你播放,就是慢动作了。你可以算算,一张1920*1080的压缩图片大概500KB,1秒钟需要30张图,加上声音,一分钟电影就要几百MB。当然也有压缩算法,高清蓝光,一部电影几十GB就是这么来的。你知道DVD的分辨率是多少吗?很高兴的告诉你:640*480。不算高吧,但告诉你一个事,普通有线电视才352*288,VCD也是这个分辨率,所以VCD一张碟也就650MB能放大概1小时电影,而DVD碟是4.5GB。假如你在离电视50公分的地方看看电视,会看见很明显的粗大的点和线。

事实上目前的网络和电脑条件,1080线全高清是比较能用了。电信的网速全是坑爹的标示,他说是10mbit的网,实际上说的是字位(bit),而不是字节(byte),所以这个数要除以8,才是通常理解的MB(注意是大写!)。所以你会发现,10兆的网用迅雷下载最多显示每秒1兆多。而事实上1080P的视频每秒数据也要1MB了,所以4兆的网看1080P绝对会卡网络的。但目前很多视频网站上的1080P是假的,用720P经过一点加工改的,所以基本还是能看的。另外,压缩得越大的视频,在解压缩时就需要计算机越大的计算量。每秒要给你放几十张高清图,要把压缩的数据还原,这对电脑也是个考验。所以老电脑看高清视频也会卡,运算速度跟不上来。目前的电脑对付1080P基本没问题,但要是2160P呢?可以简单的发现,2160P的数据是1080P的4倍而不是2倍。是的,如果你在2160P的显示器上用原始分辨率放1080P的视频并不扩大的话,它将只占四分之一屏。4K呢?就是16倍的数据量。宽带要100兆才能勉强在线看。另外,如果把帧率提高到60,数据量还会翻倍,目前大部分家用电脑都会卡的。但这个和显卡也有一定关系,有些显卡自带了硬件解码,就不需要cpu实时运算了,但显卡上带的解码并不是支持所有压缩格式,某些格式还得用cpu。

我们发现,无论是照片还是录音视频,都比文字存储要浪费空间,为什么呢?因为我们的大脑完成了把文字变成声音和图象的工作,大脑里肯定有这么一个高效的压缩和解压缩程序,录下来要几十兆的一段话,被压缩得只有几十KB,但要解压缩这些东西,需要你先学会说话,再学会识字,想想你从出生到中学毕业要多少年才能学会这些吧。这还不包括专业的知识。

你可能感兴趣的:(科普系列(5)数据编码)