標籤:
轉載請把頭部出處連結和尾部二維碼一起轉載,本文出自:
http://blog.csdn.net/hejjunlin/article/details/52431887
上篇中介紹了MediaPlayer從prepare到playback的其他過程,但是很多的一些音視頻的基礎概念可能還不是很清楚,今天將介紹下對於多媒體開發時,常常有一些基本概念。看下今天的Agenda:
- 對雜而亂的概念進行歸類
- 視頻部分相關
- 音頻部分相關
先看一張圖,這樣常常在說的,是否真的瞭解它們真實含義:
對雜而亂的概念進行歸類
- 視頻解析度
- 標清、高清、720P…
- 標清:意思就是“標準清晰度”,是物理解析度在720p以下的視頻格式。所謂標清,英文為“Standard Definition”,是物理解析度在1280P*720P以下的一種視頻格式,是指視頻的垂直解析度為720線漸進式掃描。具體的說,是指解析度在400線左右的VCD、DVD、電視節目等“標清”視頻格式,即標準清晰度。
- 高清:而物理解析度達到720p以上的格式則稱作為高清,英文表述High Definition,簡稱HD。作為“高清”的入門級標準,720p是指視頻的垂直解析度為720線漸進式掃描,也就是說電視的螢幕必須能夠同時、完整地顯示720條橫線。如果用顯示器中常見的解析度A×B的形式來表示,則720p的解析度至少必須是1280×720,此外常見的1280×1024、1280×768、1280×800等解析度也都支援720p高清格式。反過來再看標清的解析度,我們經常接觸到的是640×480、720×576或者800×600這些解析度,它們在垂直解析度上都不到720線,因此不屬於“高清”範疇。那麼,是不是只要垂直解析度達到720線,就能稱為高清呢?答案是否定的。關於高清的標準,國際上公認的有兩條:視頻垂直解析度超過720p或1080i(p代表漸進式掃描,i代表隔行掃描,這個概念和CRT電視基本相同),同時視頻寬縱比為16:9。對於垂直解析度我們已經有了直觀的認識,而所謂寬縱比,其實就是視頻畫面的“長寬比”,如果用一個矩形來表示,那麼它的長和寬的比例必須符合16:9——也就是我們俗稱的“寬屏”或者“寬銀幕”。按照這個比例推算,則720p的解析度至少為1280×720,這樣才符合16:9的要求,因此這也就是720p的標準解析度。
- 看最後總結:其實“高清”和“標清”不能簡單的比較,它們只是二種不同的視頻格式,它們都可以裝載各種不同品質的視頻訊號,因此實際品質與所裝載的視頻訊號品質有很大的關係,這相當於用水缸和茶杯裝水,水缸可以裝一大缸水,也可以只裝一杯水,當只裝一杯水的時候就不能說它裝的水比茶杯中的一杯水要多了。
- 視頻編碼
- H.264、H.265…
- H.264: 是MPEG-4(MPEG-4是MPEG格式的一個壓縮標準)第十部分,是由ITU-T視頻編碼專家組(VCEG)和ISO/IEC生動影像專家組(MPEG)聯合組成的聯合視頻組(JVT,Joint Video Team)提出的高度壓縮數位視訊轉碼器標準。這個標準通常被稱之為H.264/AVC(或者AVC/H.264或者H.264/MPEG-4 AVC或MPEG-4/H.264 AVC)而明確的說明它兩方面的開發人員。
- H.264優點:
1.低碼率(Low Bit Rate):和MPEG2和MPEG4 ASP等壓縮技術相比,在同等映像品質下,採用H.264技術壓縮後的資料量只有MPEG2的1/8,MPEG4的1/3。
2.高品質的映像:H.264能提供連續、流暢的高品質映像(DVD品質)。
3.容錯能力強:H.264提供瞭解決在不穩定網路環境下容易發生的丟包等錯誤的必要工具。
4.網路適應性強:H.264提供了網路抽象層(Network Abstraction Layer),使得H.264的檔案能容易地在不同網路上傳輸(例如互連網,CDMA,GPRS,WCDMA,CDMA2000等)。
H.264最大的優勢是具有很高的資料壓縮比率,在同等映像品質的條件下,H.264的壓縮比是MPEG-2的2倍以上,是MPEG-4的1.5~2倍。舉個例子,原始檔案的大小如果為88GB,採用MPEG-2壓縮標準壓縮後變成3.5GB,壓縮比為25∶1,而採用H.264壓縮標準壓縮後變為879MB,從88GB到879MB,H.264的壓縮比達到驚人的102∶1。低碼率(Low Bit Rate)對H.264的高的壓縮比起到了重要的作用,和MPEG-2和MPEG-4 ASP等壓縮技術相比,H.264壓縮技術將大大節省使用者的下載時間和資料流量收費。尤其值得一提的是,H.264在具有高壓縮比的同時還擁有高品質流暢的映像,正因為如此,經過H.264壓縮的視頻資料,在網路傳輸過程中所需要的頻寬更少,也更加經濟。
- H.265: H.265是ITU-T VCEG 繼H.264之後所制定的新的視頻編碼通訊協定。H.265標準圍繞著現有的視頻編碼通訊協定H.264,保留原來的某些技術,同時對一些相關的技術加以改進。新技術使用先進的技術用以改善碼流、編碼品質、延時和演算法複雜度之間的關係,達到最佳化設定.
- H.265特點:H.265旨在在有限頻寬下傳輸更高品質的網路視頻,僅需原先的一半頻寬即可播放相同品質的視頻。這也意味著,我們的智能手機、平板機等行動裝置將能夠直接線上播放1080p的全高清視頻。H.265標準也同時支援4K(4096×2160)和8K(8192×4320)超高清視頻。
- 附一張視頻編碼發展時間圖:
-
- 音頻編碼
- AAC、MP3、AC3…
- AAC: 一種專為聲音資料設計的檔案壓縮格式,與MP3不同,它採用了全新的演算法進行編碼,更加高效,具有更高的“性價比”。利用AAC格式,可使人感覺聲音品質沒有明顯降低的前提下,更加小巧。蘋果ipod、諾基亞手機也支援AAC格式的音頻檔案。
AAC優點:相對於mp3,AAC格式的音質更佳,檔案更小。
AAC不足:AAC屬於有損壓縮的格式,與時下流行的APE、FLAC等無損格式相比音質存在“本質上”的差距。加之,傳輸速度更快的USB3.0和16G以上大容量MP3正在加速普及,也使得AAC頭上“小巧”的光環不複存在了。
- MP3: MP3是一種音頻壓縮技術,其全稱是動態影像專家壓縮標準音頻層面3(Moving Picture Experts Group Audio Layer III),簡稱為MP3。它被設計用來大幅度地降低音頻資料量。利用 MPEG Audio Layer 3 的技術,將音樂以1:10 甚至 1:12 的壓縮率,壓縮成容量較小的檔案,而對於大多數使用者來說重放的音質與最初的不壓縮音頻相比沒有明顯的下降。
- MP3特點:MP3是利用人耳對高頻聲音訊號不敏感的特性,將時域波形訊號轉換成頻域訊號,並劃分成多個頻段,對不同的頻段使用不同的壓縮率,對高頻加大壓縮比(甚至忽略訊號)對低頻訊號使用小壓縮比,保證訊號不失真。這樣一來就相當於拋棄人耳基本聽不到的高頻聲音,[1] 只保留能聽到的低頻部分,從而將聲音用1∶10甚至1∶12的壓縮率壓縮。由於這種壓縮方式的全稱叫MPEG Audio Player3,所以人們把它簡稱為MP3。
- 視頻封裝格式
- TS、m3u8…
經常說的TS流,或者說傳一個m3u8地址過來,指的都是視頻的封裝格式。如果放到瀏覽器中請求時,就會寫成一個流檔案,可以開啟看,裡面就是傳的播放視頻的幀。也可以把視頻封裝成TS檔案,然後用播放器進行播放。m3u8可以做多碼率的適配,根據網路頻寬,用戶端會選擇一個適合自己碼率的檔案進行播放,保證視頻流的流暢。
- 多媒體播放組件(Android)
- MediaPlayer、MediaCodec、OMX、Stagefright
- MediaPlayer:播放控制
- MediaCodec: 音視頻編解碼
- OMX:多媒體部分採用的編解碼標準
- Stagefright:一個架構,替代之前的opencore,主要是做了一個OMX層,僅僅是對 opencore的omx-component部分做了引用。stagefright是在MediaPlayerService這一層加入的,和opencore是並列的。Stagefright在 Android中是以shared library的形式存在(libstagefright.so),其中的module – AwesomePlayer可用來播放video/audio。 AwesomePlayer提供許多API,可以讓上層的應用程式(Java/JNI)來調用。(後面文章會詳細介紹這個架構)
- … …
視頻部分相關
- 解析度
- 一幀視頻的大小,表示長寬像素個數(720x576, 1280x720, 1920x1080 …)
- 螢幕映像的精密度,是指一幀視頻映像所能顯示的像素有多少。由於螢幕上的點、線和面都是由像素組成的,可顯示的像素越多,畫面就越精細,同樣的螢幕地區內能顯示的資訊也越多,所以解析度是個非常重要的效能指標之一。可以把整個映像想象成是一個大型的棋盤,而解析度的表示方式就是所有經線和緯線交叉點的數目。顯示解析度一定的情況下,顯示屏越小映像越清晰,反之,顯示屏大小固定時,顯示解析度越高映像越清晰。
- 幀率
- 每秒鐘視訊框架數(24/25/30/48/60 FPS)
- 由於人類眼睛的特殊生理結構,如果所看畫面之幀率高於24的時候,就會認為是連貫的,此現象稱之為視覺暫留。這也就是為什麼電影膠片是一格一格拍攝出來,然後快速播放的。
而對遊戲,一般來說,第一人稱射擊遊戲比較注重FPS的高低,如果FPS<30的話,遊戲會顯得不連貫。所以有一句有趣的話:“FPS(指FPS遊戲)重在FPS(指幀率)。
- 每秒的幀數(fps)或者說幀率表示圖形處理器處理場時每秒鐘能夠更新的次數。高的幀率可以得到更流暢、更逼真的動畫。一般來說30fps就是可以接受的,但是將效能提升至60fps則可以明顯提升互動感和逼真感,但是一般來說超過75fps一般就不容易察覺到有明顯的流暢度提升了。如果幀率超過螢幕重新整理率只會浪費圖形處理的能力,因為監視器不能以這麼快的速度更新,這樣超過重新整理率的幀率就浪費掉了。
- 重新整理率
- 重新整理頻率:即螢幕重新整理的速度。
- 重新整理頻率越低,映像閃爍、停頓和抖動的就越厲害,眼睛疲勞得就越快。
採用70Hz以上的重新整理頻率時才能基本消除閃爍,顯示器最好穩定工作在允許的最高頻率下,一般是85Hz。
- 編碼格式
- 編碼:目的是壓縮資料量,採用編碼演算法壓縮冗餘資料
- MPEG(MPEG-2, MPEG-4)
- H.26X(H.263, H.264/AVC, H.265/HEVC)
- 封裝格式
- 把編碼後的音、視頻資料以一定格式封裝到一個容器
- MKV/AVI/TS …
- 碼率
- 每秒鐘視頻資料的位元位元(bps)
- 檔案大小(b) = 碼率(b/s) * 時間長度(s)
- 畫質 vs 碼率
- 碼率越大,畫質越好,視頻越流暢嗎?(錯)
- 視頻品質和碼率、編碼演算法都有關係
本文出自逆流的魚yuiop:http://blog.csdn.net/hejjunlin/article/details/52431887
音頻部分相關
- 編碼格式
- 有損編碼: AAC/MP3/AMR/WMA
- 無損編碼: WAV/FLAC/APE/ALAC
- 補充:用無損編碼壓縮的資料是可以完全恢複的,解碼後的資料一未經處理資料完全一致,壓縮比較小;有損編碼在編碼過程中要丟失不易察覺的資訊,且丟失的資料不可恢複,壓縮比較大
- 量化精度
- 可以將類比訊號分成多少個等級,量化精度越高,音樂的聲壓振幅越接近原音樂.
- 量化精度的單位是Bit,CD標準的量化精度是16Bit,DVD標準的量化精度是24Bit。
- 也可理解為一個採樣點用多少bit表示(8/16/24/32bit)
- 採樣率
- 每秒鐘音頻採樣點個數(8000/44100Hz)
- 採樣率單位用Hz(赫茲)表示
- 聲道數目
- 立體聲,5.1,7.1聲道
- 立體聲:聲音在錄製過程中被分配到兩個獨立的聲道,從而達到了很好的聲音定位效果。這種技術在音樂欣賞中顯得尤為有用,聽眾可以清晰地分辨出各種樂器來自的方向,從而使音樂更富想象力,更加接近於臨場感受。立體聲技術廣泛運用於自Sound Blaster Pro以後的大量音效卡,成為了影響深遠的一個音頻標準。
- 5.1聲道:其實5.1聲音系統來源於4.1環繞,不同之處在於它增加了一個中置單元。這個中置單元負責傳送低於80Hz的聲音訊號,在欣賞影片時有利於加強人聲,把對話集中在整個聲場的中部,以增加整體效果。杜比AC-3(Dolby Digital)、DTS等都是以5.1聲音系統為技術藍本的。相信每一個真正體驗過Dolby AC-3音效的朋友都會為5.1聲道所折服。現在廣泛用於傳統影院和家庭影院。
- 音訊框架
- 一定數目的採樣點數的集合
- 編碼: 基本編碼單元
- 舉例: 音訊框架的播放時間 = 一個AAC幀對應的採樣樣本的個數 / 採樣頻率(單位為s)。
採樣率(samplerate)為 44100Hz,表示每秒 44100個採樣點,
所以,根據公式,
音訊框架的播放時間長度 = 一個AAC幀對應的採樣點個數 / 採樣頻率
則,當前一幀的播放時間 = 1024 * 1000000/44100= 22.32ms(單位為ms)
48kHz採樣率:
則,當前一幀的播放時間 = 1024 * 1000000/48000= 21.32ms(單位為ms)
22.05kHz採樣率:
則,當前一幀的播放時間 = 1024 * 1000000/22050= 46.43ms(單位為ms)
第一時間獲得部落格更新提醒,以及更多android乾貨,源碼分析,歡迎關注我的公眾號,掃一掃下方二維碼或者長按識別二維碼,即可關注。
如果你覺得好,隨手點贊,也是對筆者的肯定,也可以分享此公眾號給你更多的人,原創不易
Android Multimedia架構總結(五)多媒體基礎概念