Android 音視頻開發 一、音視頻基礎知識

視頻基礎知識

1.什么是視頻?

簡單來說,視頻可以看作是由一張張圖片快速進行切換,在人眼中產生一段連貫的動作,早期電影膠片是個很明顯的例子,通過記錄在每一格膠片上的圖像,進行快速切換,從而產生了視頻效果。

2.幀

幀——就是影像動畫中最小單位的單幅影像畫面,相當于電影膠片上的每一格鏡頭,每一張圖像就是一幀,一個視頻就是由許許多多幀組成的。

3.幀率

幀率是指幀連續出現在顯示器上的頻率(速率),玩游戲的童鞋肯定對著個不陌生,通常我們都會用FPS為單位,即每秒更新的幀數(幀/秒)。高的幀率可以得到更流暢、更逼真的動畫。一般來說30fps就是可以接受的,但是將性能提升至60fps則可以明顯提升交互感和逼真感,但是一般來說超過75fps人眼一般就不容易察覺到有明顯的流暢度提升了。

4.色彩空間

RGB:一種顏色標準,是通過對紅(R)、綠(G)、藍(B)三個顏色通道的變化以及它們相互之間的疊加來得到各式各樣的顏色。屏幕上的所有顏色,都由紅色綠色藍色三種色光按照不同的比例混合而成的,這三種顏色又被成為三原色光。

YUV:YUV是被歐洲電視系統所采用的一種顏色編碼方法,在現代彩色電視系統中,通常采用攝影機進行取像,然后把取得的彩色圖像信號經分色、分別放大校正后得到RGB,再經過矩陣變換電路得到亮度信號Y和兩個色差信號B-Y(即U)、R-Y(即V),最后發送端將亮度和色差三個信號分別進行編碼,用同一信道發送出去,這就是電視信號的傳輸過程。這種色彩的表示方法就是所謂的YUV色彩空間表示。采用YUV色彩空間的重要性是它的亮度信號Y和色度信號U、V是分離的。其中”Y”表示明亮度,也就是灰階值;而”U”和”V” 表示的則是色度,作用是描述影像色彩及飽和度,用于指定像素的顏色。

采用YUV的優勢:

一.彩色YUV圖像轉黑白YUV圖像轉換非常簡單,這一特性用在于電視信號上。

二.YUV的數據總尺寸小于RGB格式,這對縮小視頻體積提供了便利。

RGB與YUV之間的轉換方法:

Y = 0.299R + 0.587G + 0.114B
U = -0.147R - 0.289G + 0.436B
V = 0.615R - 0.515G - 0.100B

R = Y + 1.14V
G = Y - 0.39U - 0.58V
B = Y + 2.03U

音頻基礎知識

1.什么是音頻?

這里的音頻是指存儲聲音內容的介質,任何我們可以聽見的聲音經過音頻線或話筒的傳輸都會變成一系列的模擬信號。在CD時代,聲音被物理手段收集刻錄在磁帶介質中,這一過程全是模擬的,存在聲音失真的情況;而在數碼時代,聲音都被處理成數字信號存儲在存儲介質中,模擬信號是我們可以聽見的,而數字信號就是用一堆數字記號(二進制的1和0)來記錄聲音,數字信號可以實現對聲音的無損保存。

數碼錄音最關鍵的步驟就是把模擬信號轉成數字信號,這里不得不提一個名詞:脈沖編碼調制(PCM),是一種數字數據的處理機制,具體請看百科。

PCM的工作過程如下:

模擬信號->采樣->量化->編碼->數字信號

2.采樣率與采樣位數

采樣是通過周期性地以某一規定間隔截取音頻信號,從而將模擬音頻信號變換為數字信號的過程。每次采樣時均指定一個表示在采樣瞬間的音頻信號的幅度的數字。

采樣頻率指錄音設備在一秒鐘內對聲音信號的采樣次數,根據奈奎斯特采樣定理:為了不失真地恢復模擬信號,采樣頻率應該不小于模擬信號頻譜中最高頻率的2倍。也就是說我們對聲音進行收集處理時,要針對性地對每一段特定頻率的聲音進行選取。

人耳能聽到的最高頻率為20kHz,所以為了滿足人耳的聽覺要求,采樣率至少為40kHz,通常為44.1kHz,更高的通常為48kHz。

采樣位數即采樣值或取樣值,用來衡量聲音波動變化的參數,是指聲卡在采集和播放聲音文件時所使用數字聲音信號的二進制位數。采樣的位數和采樣的頻率決定了聲音采集的質量。

數字信號中,信號一般是不連續的,所以模擬信號量化以后,只能取一個近似的整數值,為了記錄這些振幅值,采樣器會采用一個固定的位數來記錄這些振幅值,通常有8位、16位、32位。8位代表2的8次方——256,16位則代表2的16次方——64K,32位代表2的32次方——2147483648,位數越高,聲音質量越好。

3.聲道

聲道是指聲音在錄制或播放時在不同空間位置采集或回放的相互獨立的音頻信號,所以聲道數也就是聲音錄制時的音源數量或回放時相應的揚聲器數量。通常我們說的立體聲一般有2個聲道,有些更高級的有4個聲道。

4.碼率

碼率是指每秒傳送的比特(bit)數,單位bps(bit per second),通常使用kbps(每秒鐘1000比特)。在音頻中指將模擬聲音信號轉換成數字聲音信號后,單位時間內的二進制數據量,是間接衡量音頻質量的一個指標。碼率高時文件大小變大,會占據很多的內存容量,音樂文件最常用的碼率是128kbps,MP3文件可以使用的一般是8-320kbps。

碼率(kbps) = 采樣率(kHz)× 采樣位數(bit/采樣點)× 聲道數量(一般為2)

視頻編碼

1.什么是視頻編碼?

就是指通過壓縮技術,將原始視頻格式的文件轉換成另一種視頻格式文件的方式。從信息論的觀點來看,數據=信息+數據冗余。視頻信號也存在數據冗余,視頻編碼的實質是減少視頻中的冗余數據。我們知道,視頻是由幀組成的,但是在實際使用中,視頻的數據并不是真正按照一幀一幀原始數據保存下來的,而是通過壓縮編碼后存儲。視頻編碼能有效減少視頻大小,方便傳輸和存儲。視頻和音頻通過壓縮編碼合并后就變成了我們常見的格式,如:avi、mp4、rmvb、mov等,這些稱為視頻封裝格式。

2.視頻編碼格式

視頻流傳輸中最為重要的編解碼標準有國際電聯的H.261、H.263、H.264,運動靜止圖像專家組的M-JPEG和國際標準化組織運動圖像專家組的MPEG系列標準等等。其中最主流的是H.264,當然現在已經推出H.265,這是一種更高效的編碼方式,比上一代的壓縮效率更高。

3.H.264編碼

因為H.264編碼太過龐大復雜,實際開發中,編碼部分工作一般由第三方框架完成,開發者其實并不太需要去涉獵,我這里就不詳細介紹了,具體請看百度百科。

也可參考入門理解H264編碼

音頻編碼

1.什么是音頻編碼?

參照視頻編碼,音頻編碼自然是對音頻數據進行壓縮處理的過程。

2.音頻編碼格式

PCM編碼:前面我們已經介紹過了,這種編碼最大的優點就是音質好,最大的缺點就是體積大。

和視頻編碼一樣,音頻也有許多的編碼格式,如:WAV、MP3、WMA、APE、FLAC等等。

我這里著重介紹AAC,AAC是新一代的音頻有損壓縮技術,一種高壓縮比的音頻壓縮算法。在MP4視頻中的音頻數據,大多數時候都是采用AAC壓縮格式。

3.AAC編碼

AAC是一種專為聲音數據設計的文件壓縮格式。與MP3不同,它采用了全新的算法進行編碼,更加高效,具有更高的“性價比”。利用AAC格式,可使人感覺聲音質量沒有明顯降低的前提下,占用存儲空間更小。

AAC格式主要分為兩種:ADIF、ADTS。

ADIF:Audio Data Interchange Format。 音頻數據交換格式。這種格式的特征是可以確定的找到這個音頻數據的開始,不需進行在音頻數據流中間開始的解碼,即它的解碼必須在明確定義的開始處進行。這種格式常用在磁盤文件中。

ADTS:Audio Data Transport Stream。 音頻數據傳輸流。這種格式的特征是它是一個有同步字的比特流,解碼可以在這個流中任何位置開始。它的特征類似于mp3數據流格式。

參考AAC文件解析及解碼流程

硬件加速

硬件加速(Hardware acceleration)就是利用硬件模塊來替代軟件算法以充分利用硬件所固有的快速特性。硬件加速通常比軟件算法的效率要高。

將2D、3D圖形計算相關工作交給GPU處理,從而釋放CPU的壓力,也是屬于硬件加速的一種。

硬解碼和軟解碼

1.區別

硬解碼和上面的硬件加速對應,即使用硬件模塊來解析視頻、音頻文件等,而軟解碼即是用CPU去計算解析。

硬解碼是將原來全部交由CPU來處理的視頻數據的一部分交由GPU來做,而GPU的并行運算能力要遠遠高于CPU,這樣可以大大的降低對CPU的負載,CPU的占用率較低了之后就可以同時運行一些其他的程序了。

軟解碼具有更好的適應性,軟件解碼主要是會占用CPU的運行,軟解不考慮設備的硬件解碼支持情況,有CPU就可以使用了,但是占用了更多的CPU那就意味著很耗費性能,很耗電,在設備電量充足的情況下,或者設備硬件解碼支持不足的情況下使用軟件解碼更加好。

一般的視頻播放器都會支持軟硬解碼,兩者相結合從而發揮最優性能。

2.Android平臺的解碼

安卓硬解碼可以直接使用MediaCodec(API 16之后引入) ,雖然MediaPlayer也是硬件解碼,但是被封裝得太死了,支持的協議很少。

對于軟解碼,有許多第三方框架支持,最出名的莫過于ffmpeg,這個在以后的學習中再深入了解。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,622評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,716評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 178,746評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,991評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,706評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,036評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,029評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,203評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,725評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,451評論 3 361
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,677評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,161評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,857評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,266評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,606評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,407評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,643評論 2 380

推薦閱讀更多精彩內容

  • 音視頻入門前,需要了解下一些基礎概念,不必死記硬背,可之后再補再翻閱。 一. 顏色模式 RGB[https://z...
    Benhero閱讀 16,295評論 0 25
  • 開篇 炙手可熱,望而生畏的音視頻開發 時至今日,短視頻App可謂是如日中天,一片興興向榮。隨著短視頻的興起,音視頻...
    開發的貓閱讀 19,289評論 16 138
  • 相關文檔 音視頻技術博客 什么是視頻? ??首先我們需要理解一個最基本的概念:視頻。從感性的角度來看,視頻就是一部...
    Mzone閱讀 3,257評論 0 10
  • 久違的晴天,家長會。 家長大會開好到教室時,離放學已經沒多少時間了。班主任說已經安排了三個家長分享經驗。 放學鈴聲...
    飄雪兒5閱讀 7,550評論 16 22
  • 創業是很多人的夢想,多少人為了理想和不甘選擇了創業來實現自我價值,我就是其中一個。 創業后,我由女人變成了超人,什...
    亦寶寶閱讀 1,846評論 4 1