AVFoundation之前瞻

2017-05-05  本文已影响29人  丶丶夏天

最近在学习AVfoundation,把学习过程记录下来。本篇是学习AVfoundation前需要了解的一些基本概念

1. 数字媒体

我们处在一个数字化的时代,但我们听到的音乐是通过模拟信号传递给我们的,但是我们还是更习惯模拟信息的世界。我们看到 的信号标志和所听到的音乐都是通过模拟信号传递给我们的,我们的眼睛和耳朵的构造将这 些信息转换为我们大脑能够解析出的电信号。现实生活中的信号是连续的,信号的频率和强 度是在不断变化的;但是数字世界的信号是离散的,由1和0两个状态表示。要将模拟信号转 换成我们能够存储并传输的数字信号,要经过模拟-数字转换过程,我们将这个过程称为采样(这个过程硬件已经帮我们做完了)

2. 为什么要压缩

对模拟信号进行数字化时,如果能够保留原始、未压缩的数字呈现效果,就是该媒体资源最纯粹的数字形式,但这样做需要大量的存储空间。比如一个44.1kHz、16位LPCM的音频文件 每分钟可能要占用10MB的空间。要数字化一个含12首歌的唱片,每首歌曲时间大概为5分钟 的话,共需要近600MB的存储空间。即使在当今的海量存储和高带宽的情况下,这个文件体 积仍然很大。所以我们可以看到不经过压缩的数字音频资源会占用大量的存储空间,但是未压缩的视频文件的情况是不是这样呢?下面了解一下组成数字视频文件的元素来判断能否满 足其对存储空间的需求。
2.1 视频文件的构成
视频文件由一系列称为“帧”的图片组成,在视频文件的时间轴线上每一帧都表示一个 场景。要创建连续的运动画面,我们需要在短时间间隔内提供特定数量的帧。视频文件一秒钟内所能展现的帧数称为视频的帧率,并用FPS作为单位进行测量。常见的帧率是24FPS、25FPS和30FPS。要知道未压缩的视频内容所需的存储空间,我们首先需要确定每一个独立的帧有多
大。我们知道有许多通用的视频尺寸,但是目前视频资源最流行的宽高比为16:9,意思是 每16个水平像素对应9个垂直像素。在这一宽高比之下最常见的视频尺寸是1280×720和 1920×1080。那么各自的像素情况是什么样的呢?如果对每个像素点使用8位的RGB色彩 空间,这就意味着红色占8位,绿色占8位,蓝色占8位。所有的输入收集好后,我们执行 一些计算。表1-1展示了对于未压缩视频在30FPS帧率的情况下,上述两个分辨率的存储空 间需求。

总结:说白了就是未压缩的视频文件太大,如下图
1-1.png

3. 怎样压缩

3.1 色彩二次抽样

我们的眼睛对亮度的敏 感度要高于颜色,聪明的工程师们认识到,我们可以大幅减少存储在每个像素中的颜色信息进行压缩, 而不至于图片的质量严重受损。这个减少颜色数据的过程就称为色彩二次抽样。

3.2 编解码器压缩

大部分音频和视频都是使用编解码器(codec)来压缩的,编解码器这个术语是由编码器/ 解码器结合简写得来的(encoder/decoder)。编解码器使用高级压缩算法对需要保存或发送的音 频或视频数据进行压缩和编码,同时它还可以将压缩文件解码成适合播放和编辑的媒体资源 文件。编解码器既可以进行无损压缩也可以进行有损压缩,无损压缩编解码器比如我们最常用的zip和gzip。有损编解码器就是在压缩过程中会有部分数据损失掉。编解码器为这一形式的压缩使用基于人类可感知的高级压缩算法。比如即使人类可以理论上听见介于20Hz 和20kHz之间的声音,但我们可能真正敏感的频率区间是1kHz~5kHz。在了解这一原理后,我们知道在音频文件中可以利用过滤技 术来减少或消除特定频率。这只是众多方法中的一个,但有损压缩的目的是使用 psycho-acoustic或psycho-visual模式作为一种方法来减少媒体内容中的冗余数据,这样会使原 文件质量的损耗达到最小。
下面看一下由AV Foundation提供的编解码器支持。

3.3 视频编解码器

对于视频编解码而言,AV Foundation提供有限的编解码器集合,只提供苹果公司认定的 目前最主流的几种媒体类型的支持。具体对于视频文件来说,主要可以归结为H.264和Apple ProRes。下面开始学习H.264视频格式标准

3.4 音频编解码器

只要是Core Audio框架支持的音频编解码,AV Foundation都可以支持,这意味着AV Foundation能够支持大量不同格式的资源。然而在不用线性PCM音频的情况下,更多的只能 使用AAC
高级音频编码(AAC)是H.264标准相应的音频处理方式,目前已成为音频流和下载的音频 资源中最主流的编码方式。这种格式比MP3格式有着显著的提升,可以在低比特率的前提下 提供更高质量的音频,是在Web上发布和传播的音频格式中最为理想的。此外,AAC没有来 自证书和许可方面的限制,这一限制曾经在MP3格式上饱受诟病。

4. 容器格式

如果你和大家一样,喜欢在自己的电脑上查找不同类型的媒体文件,你可能会注意到以 各种扩展名结尾的文件,比如.mov、.m4v、.mpg和.m4a等。虽然我们通常将这些类型都认为 是文件格式,但其正确定义应该是这些类型都是文件的容器格式(container format)。
当开发者使用AV Foundation撰写代码时,将遇到两类主要的容器格式,它们分别是:QuickTime,MPEG-4

上一篇下一篇

猜你喜欢

热点阅读