连续的图像变化每秒超过 24 帧(frame,fps) 画面以上时,根据视觉暂留原理,人眼无法 辨别单幅的静态画面;看上去是平滑连续的视觉效果,这样连续的画面叫做视频。
帧,是视频的一个基本概念,表示一张画面,如上面的翻页动画书中的一页,就是一帧。 一个视频就是由许许多多帧组成的。
即单位时间内帧的数量,单位为:帧/秒 或 fps(frames per second)。如动画书中,一秒内包含多少张图片, 图片越多,画面越顺滑,过渡越自然。
帧率的一般以下几个典型值:29.97, 30000/1001
这里我们只讲常用到的两种色彩空间。
人眼对亮度敏感,对色度不敏感,比如,在晚上,一个物件是啥颜色,可能根本看不出来,因此减少部分 UV 的数据量,人眼却无法感知出来,这 样可以通过压缩 UV 的分辨率,在不影响观感的前提下,减小视频的体积。
音频数据的承载方式最常用的是脉冲编码调制,即 PCM。
在自然界中,声音是连续不断的,是一种模拟信号,那怎样才能把声音保存下来呢? 那就是把声音数字化,即转换为数字信号。
我们知道声音是一种波,有自己的振幅和频率,那么要保存声音,就要保存声音在各个 时间点上的振幅。
而数字信号并不能连续保存所有时间点的振幅,事实上,并不需要保存连续的信号, 就可以还原到人耳可接受的声音。
根据奈奎斯特采样定理:为了不失真地恢复模拟信号,采样频率应该不小于模拟信号频谱 中最高频率的 2 倍。
根据以上分析,PCM 的采集步骤分为以下步骤:
模拟信号 -> 采样 -> 量化 -> 编码 -> 数字信号
码率,是指一个数据流中每秒钟能通过的信息量,单位 bps(bit per second)。
码率 = 采样率 * 采样位数 * 声道数
这里的编码和上面音频中提到的编码不是同一个概念,而是指压缩编码。
我们知道,在计算机的世界中,一切都是 0 和 1 组成的,音频和视频数据也不例外。 由于音视频的数据量庞大,如果按照裸流数据存储的话,那将需要耗费非常大的存储空 间,也不利于传送。
而音视频中,其实包含了大量 0 和 1 的重复数据,因此可以通过一定的算法来压缩这些 0 和 1 的数据。
特别在视频中,由于画面是逐渐过渡的,因此整个视频中,包含了大量画面/像素的重复, 这正好提供了非常大的压缩空间。
因此,编码可以大大减小音视频数据的大小,让音视频更容易存储和传送。
那么,未经编码的原始音视频,数据量至底有多大?
以一个分辨率 1920×1280,帧率 30 的视频为例:
共:1920×1280=2,073,600(Pixels 像素),每个像素点是 24bit;
也就是:每幅图片 2073600×24=49766400 bit,8 bit(位)=1 byte(字节);
所以:49766400bit=6220800byte≈6.22MB。
这是一幅 1920×1280 图片的原始大小(6.22MB),再乘以帧率 30。
也就是说:每秒视频的大小是 186.6MB,每分钟大约是 11GB,一部 90 分钟的电影,约 是 1000GB。。。
视频编码格式有很多,比如 H26x 系列和 MPEG 系列的编码,这些编码格式都是为了适 应时代发展而出现的。
当然,他们也有联合制定的编码标准,那就是现在主流的编码格式 H264,当然还有下 一代更先进的压缩编码标准 H265。
所谓视频编码方式就是指能够对数字视频进行压缩或者解压缩(视频解码)的程序或者 设备。通常这种压缩属于有损数据压缩。也可以指通过过特定的压缩技术,将某个视频格式 转换成另一种视频格式。常见的编码方式有:
1,H.26X 系列 (由 ITU[国际电传视讯联盟]主导)包括 H.261、H.262、H.263、H.264、 H.265。
2,MPEG 系列(由 ISO[国际标准组织机构]下属的 MPEG[运动图象专家组]开发 )视频编 码方面主要有:
3,其他系列:
AMV · AVS · Bink · CineForm · Cinepak · Dirac · DV · Indeo · Video · Pixlet · RealVideo · RTVideo · SheerVideo · Smacker · SorensonVideo · Theora · VC-1 · VP3 · VP6 · VP7 · VP8 · VP9 · WMV。因为以上编码方式不常用, 不再介绍。
原始的 PCM 音频数据也是非常大的数据量,因此也需要对其进行压缩编码。
和视频编码一样,音频也有许多的编码格式,如:WAV、MP3、WMA、APE、FLAC 等 等,音乐发烧友应该对这些格式非常熟悉,特别是后两种无损压缩格式。
AAC 是新一代的音频有损压缩技术,一种高压缩比的音频压缩算法。
在 MP4 视频中的音频数据,大多数时候都是采用 AAC 压缩格式。
AAC 格式主要分为两种:ADIF、ADTS。
1)ADIF:Audio Data Interchange Format。音频数据交换格式。
这种格式的特征是可以确定的找到这个音频数据的开始,不需进行在音频数据流中间开 始的解码,即它的解码必须在明确定义的开始处进行。这种格式常用在磁盘文件中。
ADIF 只有一个统一的头,所以必须得到所有的数据后解码。
2)ADTS:Audio Data Transport Stream。音频数据传输流。
这种格式的特征是它是一个有同步字的比特流,解码可以在这个流中任何位置开始。 它的特征类似于 mp3 数据流格式。
ADTS 可以在任意帧解码,它每一帧都有头信息
区别:ADIF 只有一个统一的头,所以必须得到所有的数据后解码。
且这两种的 header 的格式也是不同的,目前一般编码后的都是 ADTS 格式的音频流。
header | raw_data