原文首發(fā):http://coderzhang.xyz
AV Foundation其設(shè)計(jì)過(guò)程高度依賴(lài)多線程機(jī)制.充分利用了多核硬件的優(yōu)勢(shì)并大量使用block和GCD機(jī)制將復(fù)雜的計(jì)算進(jìn)程放在后臺(tái)線程運(yùn)行.會(huì)自動(dòng)提供硬件加速.此外,從一開(kāi)始該框架就是針對(duì)64位處理器設(shè)計(jì)的,能充分發(fā)揮64位處理器的優(yōu)勢(shì).
了解數(shù)字媒體
現(xiàn)實(shí)生活中的信號(hào)是連續(xù)的,但是數(shù)字世界的信號(hào)是離散的,由1和0兩個(gè)狀態(tài)表示.要將模擬信號(hào)轉(zhuǎn)換成我們能夠存儲(chǔ)并傳輸?shù)臄?shù)字信號(hào),要經(jīng)過(guò)模擬-數(shù)字轉(zhuǎn)換過(guò)程,這個(gè)過(guò)程稱(chēng)為采樣(Sampling).
數(shù)字媒體采樣
對(duì)媒體內(nèi)容進(jìn)行數(shù)字化主要有兩種方式.第一種稱(chēng)為時(shí)間采樣,這種方法捕捉一個(gè)信號(hào)周期的變化(比如音頻錄制).第二種稱(chēng)為空間采樣,包含對(duì)一副圖片在一定分辨率之下捕捉其亮度和色度,進(jìn)而創(chuàng)建由該圖片的像素點(diǎn)數(shù)據(jù)所構(gòu)成的數(shù)字化結(jié)果.當(dāng)對(duì)一段視頻進(jìn)行數(shù)字化時(shí),這兩種方式可以同時(shí)使用.
音頻采樣介紹
音頻數(shù)字化的過(guò)程包含一個(gè)編碼方法:線性脈沖編碼調(diào)制(PCM或LPCM).即對(duì)連續(xù)變化的模擬信號(hào)進(jìn)行抽樣娇豫、量化和編碼產(chǎn)生數(shù)字信號(hào).一個(gè)周期內(nèi)的采樣次數(shù)稱(chēng)為采樣率.顯然,低采樣率的數(shù)字信號(hào)版本無(wú)法很好的還原原始數(shù)據(jù).
一般來(lái)說(shuō),采樣率需要達(dá)到采樣對(duì)象最高頻率的兩倍,能得到比較好的還原效果(Nyquist rate).除采樣率外,數(shù)字音頻采樣的另一個(gè)重要方面是能夠捕捉到什么精度的音頻樣本.保存樣本值的字節(jié)數(shù)定義了在線性維度上可以的離散度,同時(shí)這個(gè)信息也被稱(chēng)為音頻的位元深度.
數(shù)字媒體壓縮
對(duì)信號(hào)進(jìn)行數(shù)字化時(shí),如果要保留原始未壓縮的數(shù)字呈現(xiàn)效果,就需要大量的存儲(chǔ)空間.所以網(wǎng)絡(luò)傳輸中還需要進(jìn)行數(shù)字媒體壓縮.對(duì)數(shù)字媒體進(jìn)行壓縮可以大幅縮小文件體積,但是會(huì)衰減資源質(zhì)量.
色彩二次抽樣
人體眼睛對(duì)亮度的敏感度要高于顏色,我們可以大幅減少存儲(chǔ)在每個(gè)像素中的顏色信息,而不至于圖片的質(zhì)量嚴(yán)重受損,這個(gè)過(guò)程稱(chēng)為色彩二次抽樣.
編解碼器壓縮
大部分音頻和視頻都是使用編解碼器來(lái)壓縮的.編解碼器使用高級(jí)壓縮算法對(duì)需要保存或發(fā)送的音視頻數(shù)據(jù)進(jìn)行壓縮和編碼.
壓縮可分為有損壓縮和無(wú)損壓縮.比如zip和gzip就是無(wú)損壓縮的一種.而有損壓縮可能會(huì)損失部分?jǐn)?shù)據(jù),通過(guò)消除人類(lèi)不太敏感的特定頻率來(lái)減少冗余數(shù)據(jù),同時(shí)將文件質(zhì)量損耗控制到最小.
視頻編解碼器
對(duì)于視頻編解碼而言,AV Foundation提供了有限的幾種媒體類(lèi)型支持.主要可以歸結(jié)為H.264和Apple ProRes.
音頻編解碼器
只要是Core Audio框架支持的音頻編解碼,AV Foundation都可以支持.
容器格式
像.mov,.m4v,.mpg和.m4a等各種擴(kuò)展名結(jié)尾的文件,雖然我們通常將這些類(lèi)型認(rèn)為是文件格式,但其正確定義應(yīng)該是文件的容器格式.
容器格式也被稱(chēng)為元文件格式.每種格式都有一個(gè)規(guī)范用于確定文件結(jié)構(gòu).所謂的結(jié)構(gòu)并不僅僅是其包含的媒體資源(比如媒體周期,編碼和時(shí)間信息),一般還定義了描述性的原數(shù)據(jù),比如標(biāo)題和坐著信息等.