为什么要编码

如果不编码

首先要讨论的问题就是,我们为什么需要视频编解码?因为如果不经过编码的话,原始图像的大小实在是太大太大了,有多大呢?拿一个普通标清,25fps,yuv420编码举一个例子,从空间上看是标清,即640 x 480,编码格式为yuv420,因此每个像素占用1.5个字节,因此一帧图像的大小就是640 x 480 x 1.5 = 460800B = 450KB; 再考虑时间,25fps,即每秒25帧,这样算下来,一秒钟的数据量,就是450KB x 25 = 11250KB 约为11MB,数据量实在是太大了!拿网络直播来说,我们希望通过网络观看视频的话,那么你的带宽至少是百兆带宽,而即使你是百兆带宽,你也只能看标清的视频而已,如果想看高清视频,比如1920 x 1080或者看4K的大片,那我就只能呵呵了。我们不说直播,就算是看本地的视频,一部电影按2小时计算,按照刚才的假设,这部电影的容量大约是77GB,这太恐怖了。

解决方案

显然,这种大小我们是不能容忍的,在这种情况下,我们希望能压缩空间。在计算机中,和空间相对应的一个词就是时间了,如果想压缩空间,那么就只能提高时间了,也就是说,我先对这部视频电影做一些转换,让他的空间降到我们可以容忍的程度,然后在看的时候,进行反变换就可以还原电影本身了。在这种情况下,由于我们对原电影进行了变换,反变换,显然就已经增加了时间,这就是典型的时间换空间的做法。那么这里的变换,就是编码;反变换就是解码。

小结

至此我们知道,之所以视频需要编解码,是因为原始图像的大小过大,大到我们无法容忍的程度,在这种情况下,就需要用时间换空间的思想,将原来的空间降下来,因此我们需要将原始图像转换为相对空间小的图像,这个过程就是编码;当我们将空间小的图像转换回原图像是,就是解码了。

你可能感兴趣的:(为什么要编码)