原文首发:http://coderzhang.xyz
AV Foundation其设计过程高度依赖多线程机制.充分利用了多核硬件的优势并大量使用block和GCD机制将复杂的计算进程放在后台线程运行.会自动提供硬件加速.此外,从一开始该框架就是针对64位处理器设计的,能充分发挥64位处理器的优势.
了解数字媒体
现实生活中的信号是连续的,但是数字世界的信号是离散的,由1和0两个状态表示.要将模拟信号转换成我们能够存储并传输的数字信号,要经过模拟-数字转换过程,这个过程称为采样(Sampling).
数字媒体采样
对媒体内容进行数字化主要有两种方式.第一种称为时间采样,这种方法捕捉一个信号周期的变化(比如音频录制).第二种称为空间采样,包含对一副图片在一定分辨率之下捕捉其亮度和色度,进而创建由该图片的像素点数据所构成的数字化结果.当对一段视频进行数字化时,这两种方式可以同时使用.
音频采样介绍
音频数字化的过程包含一个编码方法:线性脉冲编码调制(PCM或LPCM).即对连续变化的模拟信号进行抽样、量化和编码产生数字信号.一个周期内的采样次数称为采样率.显然,低采样率的数字信号版本无法很好的还原原始数据.
一般来说,采样率需要达到采样对象最高频率的两倍,能得到比较好的还原效果(Nyquist rate).除采样率外,数字音频采样的另一个重要方面是能够捕捉到什么精度的音频样本.保存样本值的字节数定义了在线性维度上可以的离散度,同时这个信息也被称为音频的位元深度.
数字媒体压缩
对信号进行数字化时,如果要保留原始未压缩的数字呈现效果,就需要大量的存储空间.所以网络传输中还需要进行数字媒体压缩.对数字媒体进行压缩可以大幅缩小文件体积,但是会衰减资源质量.
色彩二次抽样
人体眼睛对亮度的敏感度要高于颜色,我们可以大幅减少存储在每个像素中的颜色信息,而不至于图片的质量严重受损,这个过程称为色彩二次抽样.
编解码器压缩
大部分音频和视频都是使用编解码器来压缩的.编解码器使用高级压缩算法对需要保存或发送的音视频数据进行压缩和编码.
压缩可分为有损压缩和无损压缩.比如zip和gzip就是无损压缩的一种.而有损压缩可能会损失部分数据,通过消除人类不太敏感的特定频率来减少冗余数据,同时将文件质量损耗控制到最小.
视频编解码器
对于视频编解码而言,AV Foundation提供了有限的几种媒体类型支持.主要可以归结为H.264和Apple ProRes.
音频编解码器
只要是Core Audio框架支持的音频编解码,AV Foundation都可以支持.
容器格式
像.mov,.m4v,.mpg和.m4a等各种扩展名结尾的文件,虽然我们通常将这些类型认为是文件格式,但其正确定义应该是文件的容器格式.
容器格式也被称为元文件格式.每种格式都有一个规范用于确定文件结构.所谓的结构并不仅仅是其包含的媒体资源(比如媒体周期,编码和时间信息),一般还定义了描述性的原数据,比如标题和坐着信息等.