音視頻基礎(chǔ)概念

前言

早在之前就對(duì)音視頻開發(fā)這塊兒比較感興趣,但是一直沒有下定決心學(xué)習(xí),一個(gè)是覺得這塊兒很難,二是感覺自己沒有時(shí)間去學(xué)習(xí),但是現(xiàn)在一想,其實(shí)也不算事,有難度才有挑戰(zhàn),如果學(xué)好了也是很有成就感的事情,而時(shí)間這個(gè)問(wèn)題,就像一句話說(shuō)的那樣,時(shí)間嘛,擠一擠總會(huì)有的.所以近期,我準(zhǔn)備一些學(xué)習(xí)資料,準(zhǔn)備開始自學(xué)音視頻開發(fā)之路.創(chuàng)建這個(gè)文集,旨在記錄自己學(xué)習(xí)音視頻開發(fā)的點(diǎn)點(diǎn)滴滴,也是為了給想要學(xué)習(xí)這方面知識(shí)的同道們提供一些參考.好了,話不多說(shuō),進(jìn)入正文吧.

目錄:

  • 聲音的物理性質(zhì)
  • 數(shù)字音頻
  • 音頻編碼
  • 圖像的物理性質(zhì)
  • 圖像的數(shù)值表示
  • 視頻的編碼方式

聲音的物理性質(zhì)

自然界中,蟬鳴聲,鳥兒的啼叫聲,小溪潺潺的流水聲,這些都是聲音,那么聲音是如何產(chǎn)生的呢,回想一下中午物理課本上對(duì)于聲音的定義-----聲音是由物體振動(dòng)產(chǎn)生的.我們看下圖:


sound.jpg

如上圖所示,當(dāng)小球撞擊到音叉的時(shí)候,音叉會(huì)產(chǎn)生振動(dòng),對(duì)周圍的空氣產(chǎn)生擠壓,從而產(chǎn)生聲音.聲音是一種壓力波,當(dāng)演奏樂(lè)器,敲打桌面時(shí),他們的振動(dòng)會(huì)引起空氣有節(jié)奏的振動(dòng),從而產(chǎn)生聲波.

聲波的三要素是頻率,振幅和波形.頻率代表音階的高低,振幅代表響度,波形代表音色.
頻率越高,波長(zhǎng)就越短.低頻聲波的波長(zhǎng)較長(zhǎng),可以更容易繞過(guò)障礙物,能量衰減小,可以傳播更遠(yuǎn)的距離.
響度其實(shí)就是能量大小的反映,比如你打鼓的力度越大,聲音就越大,在生活中,人們用分貝描述聲音的響度.
音色也容易理解,在相同的音調(diào)(頻率)和響度(振幅)下,笛子和鋼琴的音色挺起來(lái)不同就是因?yàn)樗鼈兊慕橘|(zhì)產(chǎn)生的波形不同.
然而人類的耳朵的聽力有一個(gè)頻率范圍,大概是20Hz ~ 20kHz.

數(shù)字音頻

聲音是機(jī)械振動(dòng),振動(dòng)越強(qiáng),聲音越大,話筒把機(jī)械振動(dòng)轉(zhuǎn)換成電信號(hào),模擬音頻技術(shù)中以模擬電壓的幅度表示聲音強(qiáng)弱。

模擬聲音在時(shí)間上是連續(xù)的,而數(shù)字音頻是一個(gè)數(shù)據(jù)序列,在時(shí)間上是斷續(xù)的。為了將模擬信號(hào)數(shù)字化,首先要對(duì)模擬信號(hào)進(jìn)行采樣,所謂采樣就是在時(shí)間軸上對(duì)信號(hào)進(jìn)行數(shù)字化.根據(jù)奈奎斯特定(采樣定理),按比聲音最高頻率高2倍以上的頻率對(duì)聲音進(jìn)行采樣(這個(gè)過(guò)程稱為AD轉(zhuǎn)換),上面說(shuō)過(guò),對(duì)于高質(zhì)量的音頻信號(hào),其頻率范圍是20Hz ~ 20kHz ,所以采樣頻率一般是44.1kHz.這樣就能保證采樣聲音達(dá)到20kHz也能被數(shù)字化.所謂的44.1kHz就是每秒采樣44100次

那么具體的每個(gè)采樣怎么表示呢,這個(gè)就涉及到量化,量化是指在幅度軸上對(duì)信號(hào)進(jìn)行數(shù)字化.
既然每一個(gè)量化都是一個(gè)采樣,那么這么多的采樣如何存儲(chǔ)呢,這就涉及到編碼.所謂的編碼就是按照一定的格式記錄采樣和量化后的數(shù)字?jǐn)?shù)據(jù).
通常所說(shuō)的音頻的裸數(shù)據(jù)就是脈沖編碼調(diào)制(Pulse code Modulation , PCM)數(shù)據(jù).

音頻編碼

通常量化后的原始數(shù)字音頻數(shù)據(jù)所占存儲(chǔ)空間是很大的,如果在網(wǎng)絡(luò)中進(jìn)行實(shí)時(shí)在線傳播的話,那這個(gè)數(shù)據(jù)量就非常大了,所以必須對(duì)其進(jìn)行壓縮編碼.壓縮編碼的基本指標(biāo)之一就是壓縮比.壓縮比通常小于1.壓縮算法分為有損壓縮和無(wú)所壓縮,無(wú)所壓縮是指解壓后的數(shù)據(jù)可以完全復(fù)原,而有損壓縮解壓后的數(shù)據(jù)不能完全復(fù)原,會(huì)丟失一些信息,壓縮比越小,丟失的信息就越多.
下面介紹幾種常用的壓縮編碼格式:

  1. WAV編碼:WAV編碼嗎的一種實(shí)現(xiàn)(有多種實(shí)現(xiàn),但是都不會(huì)進(jìn)行壓縮操作),就是在PCM數(shù)據(jù)格式的前面加上44字節(jié),用來(lái)描述PCM的采樣率,聲道數(shù),數(shù)據(jù)格式等信息. 它的特點(diǎn)是 音質(zhì)非常好,兼容性好,可用于多媒體開發(fā)的中間文件,保存音樂(lè)和音效素材.
  2. MP3編碼
    mp3具有很好的壓縮比,使用LAME編碼(MP3編碼格式的一種實(shí)現(xiàn))的中高碼率的MP3文件,聽感上非常接近源WAV文件.在不同的應(yīng)用場(chǎng)景下,可以通過(guò)調(diào)整合適的參數(shù)以達(dá)到最好的效果.它的特點(diǎn)是 音質(zhì)在 128Kbit/s以上表現(xiàn)都還不錯(cuò),壓縮比比較高,兼容性非常好.
  3. AAC編碼
    AAC是新一代的音頻有損壓縮技術(shù).它通過(guò)一些附加的編碼技術(shù)衍生出了 LC-AAC , HE-AAC , HE-AAC v2三種主要的編碼格式,LC-AAC 主要應(yīng)用于中高碼率的編碼(>= 80Kbit/s), HE-AAC主要應(yīng)用于中低碼率的編碼(<=80Kbit/s),新近推出的 HE-AAC v2主要應(yīng)用于低碼率場(chǎng)景的編碼(<=48Kbit/s), AAC編碼在小于128Kbit/s的碼率下表現(xiàn)優(yōu)異,多用于視頻中音頻軌的編碼.
    4.Ogg編碼
    Ogg是一種非常有潛力的編碼,在各種碼率下都有比較優(yōu)秀的表現(xiàn),尤其是在中低碼率應(yīng)用場(chǎng)景下.它可以用比MP3更小的碼率實(shí)現(xiàn)比MP3更好的音質(zhì),高中低碼率下均有良好的表現(xiàn),但是它兼容性不夠好,流媒體特性不支持.

圖像的物理性質(zhì)

視頻是由一幅幅圖像組成的.在日常生活中,由于光的反射,我們能夠看到各種物體.但是手機(jī)屏幕上能夠顯示內(nèi)容,并不是由于光的反射.假設(shè)一個(gè)手機(jī)屏幕的分辨率是750 * 420,那么說(shuō)明水平方向上有420個(gè)像素點(diǎn),垂直方向有750個(gè)像素點(diǎn),整個(gè)手機(jī)屏幕就有750 * 420個(gè)像素點(diǎn),每個(gè)像素點(diǎn)由三個(gè)子像素點(diǎn)組成.當(dāng)屏幕要顯示某幅圖像時(shí),會(huì)把這個(gè)圖像的每一個(gè)像素點(diǎn)的RGB通道分別對(duì)應(yīng)的屏幕位置的子像素點(diǎn)繪制到屏幕上,從而顯示整個(gè)圖像.

圖像的數(shù)值表示

1.RGB表示方式
我們已經(jīng)知道任何一個(gè)圖像都可以由RGB組成, 那么像素里的子像素如何表示.通常有下面兩種表示方式:
1.浮點(diǎn)表示: 取值范圍為 0.0 ~ 1.0,
2.整數(shù)表示:取值范圍為: 0 ~ 255 或者0 ~ FF.

2.YUV表示方式
對(duì)于視頻幀的裸數(shù)據(jù)表示,其實(shí)更多的是YUV數(shù)據(jù)格式的表示.YUV主要應(yīng)用于優(yōu)化彩色視頻信號(hào)的傳輸.與RGB視頻信號(hào)傳輸相比,它最大的有點(diǎn)在于只需要占用極少的頻寬(RGB要求三個(gè)獨(dú)立的視頻信號(hào)同時(shí)傳輸),其中"Y"表示明亮度(Luma),也稱灰階值;而"U"和"V"表示的則是色度,它們的作用是描述影像的色彩及飽和度.

視頻的編碼方式

音頻壓縮主要是去除冗余信息,從而實(shí)現(xiàn)數(shù)據(jù)量的壓縮.那么對(duì)于視頻壓縮,又該從哪幾方面來(lái)對(duì)數(shù)據(jù)進(jìn)行壓縮呢.相較于音頻數(shù)據(jù),視頻數(shù)據(jù)具有極強(qiáng)的相關(guān)性,也就是說(shuō)有大量的冗余信息,包括空間上的冗余信息和時(shí)間上的冗余信息.使用幀間編碼的技術(shù)可以去除時(shí)間上的冗余信息,包括以下幾個(gè)部分:

  • 運(yùn)動(dòng)補(bǔ)償: 通過(guò)先前的局部圖像來(lái)預(yù)測(cè),補(bǔ)償當(dāng)前的局部圖像,它是減少幀序列冗余信息的有效方法.
  • 運(yùn)動(dòng)表示: 不同區(qū)域的圖像需要使用不同的運(yùn)動(dòng)矢量來(lái)描述運(yùn)動(dòng)信息.
  • 運(yùn)動(dòng)估計(jì): 是從視頻序列中抽取運(yùn)動(dòng)信息的一整套技術(shù).

上面大概就是有關(guān)音視頻的相關(guān)概念,參考了展曉凱 著的《音視頻開發(fā)進(jìn)階指南》一書,非常感謝這位作者,為我們提供了一本很好的書籍.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容