iOS數字媒體開發淺析

概述

自然界中的所有看到的聽到的都是模擬信號,模擬信號是隨時間連續變化,然而手機電腦等信息都屬於數字媒體,它們所呈現的內容就是把自然界中這些模擬信號轉換成數字信號然後再傳遞給我們。數字信號不是連續的是離散的,只有0與1兩種狀態,所以要把模擬信號轉化成數字信號即把這些信息數字化這一過程稱作A/D(模/數)轉化,要進行這一過程就要必須對模擬信號進行採樣,採樣率越高數字信號越接近真正的模擬信號。當然還有D/A(數/模)轉換的過程,不再本篇考慮的範圍內。


媒體數字化

對媒體數字化主要包括兩種方式:時間採樣與空間採樣

  • 時間採樣:捕捉信號在一段時間週期內變化,主要用於音頻信號數字化。
  • 空間採樣:對一幅圖片在一定分辨率之下捕捉取亮度和色度,進而創建由該圖片的像素點數據所構成的數字化結果,主要用於圖像信號數字化。
    :視頻是一段時間內由一幀幀圖像組成所以時間信號可以用這兩種採樣方式。

編解碼壓縮

通過採樣得到的數字媒體文件一半都很龐大,爲了方便存儲和傳輸文件我們需要對這些文件使用壓縮技術,一半我們再網上,電視上看到的視頻都是經過一定程度的壓縮,對數字媒體壓縮後通常會大幅度縮小文件的尺寸,例如一個1920*1080幀率是30FPS的視頻文件未經壓縮的大小大概是178MB/s,大部分的音頻與視頻是通過編解碼器來進行壓縮的。


音頻

音頻採樣

縱軸表示振幅即音量大小,橫軸表示時間,上圖對一個正弦信號進行採樣,每秒鐘採樣的次數稱作採樣率。採樣率越高越接近真實的模擬信號。在音頻數字化的過程中包含一個編碼的方法,稱爲脈衝編解碼(PCM)與線性脈衝編解碼(LPCM)。

脈衝編解碼(PCM)與線性脈衝編解碼(LPCM)

PCMLPCM都是模擬信號變換爲數字信號的編碼方式,是對連續變化的模擬信號進行抽樣、量化和編碼的過程。唯一不同的是LPCM是非壓縮音頻數字化過程。

iOS中音頻編解碼器

一般的音頻文件都是通過PCM音頻進行再一次的編碼與解碼,以mp3格式爲例,在PCM基礎上進行mp3格式編碼生成mp3格式的文件,如果把mp3格式轉換成wma那麼需要把需要這樣的一個過程:mp3解碼->pcm->wma編碼。
iOS中的Core Audio框架支持的音頻編解碼格式參考官方文檔
Core Audio提供對MP3數據的解碼支持,但是不支持對MP3數據編碼
在音頻媒體沒有使用線性PCM編碼時只能使用ACC格式編解碼。


視頻

視頻採樣

視頻數據顯示是使用YCbCr色彩模式,而對視頻採樣就是減少YCbCr色彩模式中的顏色數據,這個過程稱爲色彩二抽樣。

色彩二抽樣

關於YCbCr顏色模式的介紹引用百度百科:YCbCr或Y’CbCr有的時候會被寫作:YCBCR或是Y’CBCR,是色彩空間的一種,通常會用於影片中的影像連續處理,或是數字攝影系統中。Y’爲顏色的亮度(luma)成分、而CB和CR則爲藍色和紅色的濃度偏移量成份。Y’和Y是不同的,而Y就是所謂的流明(luminance),表示光的濃度且爲非線性,使用伽馬修正(gamma correction)編碼處理。
採樣格式包括YCbCr 4:1:1、YCbCr 4:2:0、YCbCr 4:2:2和 YCbCr 4:4:4


iOS中視頻編解碼器

iOSOS X中只提供蘋果公司認定的目前主流的幾種媒體類型支持。對於視頻文件來說主要有H.264Apple ProRes視頻格式標準。凡是符合這兩個視頻標準的文件蘋果都提供對其編解碼的支持。
ProRes編解碼器只能在OS X上使用。

  • H.264:H.264/MPEG-4第10部分(MPEG-4第10部分也稱爲AVC,即Advanced Video Coding,高級視頻編碼)是一種視頻壓縮標準,一種被廣泛使用的高精度視頻的錄製、壓縮和發佈格式。
  • Apple ProRes:ProRes是一個由蘋果公司開發壓縮技術,最大能支援5K分辨率。它於2007年隨Final Cut Studio 2繼承了Apple Intermediate Codec。
    ProRes被認爲是一箇中間件或中間層編解碼器,因爲它的目的是爲了專業編輯和生產工作流服務。
    因爲ProRes只能在OS X上使用,如果在iOS上進行開發只能使用H.264。然而蘋果公司提供了一種方法,當我們捕捉圖像對其編輯時,可以將目標變成通用的H.264編碼格式。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章