視音頻解碼基礎(chǔ)知識(shí)

1.音視頻的基本概念

1.1視頻基本概念

視頻:靜止的畫(huà)面叫圖像(picture)悼尾。連續(xù)的圖像變化每秒超過(guò)24幀(frame)畫(huà)面以上時(shí)蔫慧,根椐視覺(jué)暫留原理蟀架,人眼無(wú)法辨別每幅單獨(dú)的靜態(tài)畫(huà)面寝蹈,看上去是平滑連續(xù)的視覺(jué)效果。這樣的連續(xù)畫(huà)面叫視頻侄非。當(dāng)連續(xù)圖像變化每秒低于24幀畫(huà)面時(shí)蕉汪,人眼有不連續(xù)的感覺(jué)叫動(dòng)畫(huà)(cartoon)。
幀率:幀/秒(frames per second)的縮寫(xiě)逞怨,也稱為幀速率者疤,測(cè)量用于保存、顯示動(dòng)態(tài)視頻的信息數(shù)量叠赦。每一幀都是靜止的圖象驹马,快速連續(xù)地顯示幀便形成了運(yùn)動(dòng)的假象。每秒鐘幀數(shù) (fps) 愈多除秀,所顯示的動(dòng)作就會(huì)愈流暢糯累,可理解為秒鐘時(shí)間里刷新的圖片的幀數(shù),也可以理解為圖形處理器每秒鐘能夠刷新幾次册踩,也就是指每秒鐘能夠播放(或者錄制)多少格畫(huà)面泳姐。
分辨率:一個(gè)表示平面圖像精細(xì)程度的概念,通常它是以橫向和縱向點(diǎn)的數(shù)量來(lái)衡量的暂吉,表示成水平點(diǎn)數(shù)垂直點(diǎn)數(shù)的形式胖秒,在計(jì)算機(jī)顯示領(lǐng)域我們也表示成“每英寸像素”(ppi)。在一個(gè)固定的平面內(nèi)慕的,分辨率越高阎肝,意味著可使用的點(diǎn)數(shù)越多,圖像越細(xì)致肮街。

1.2音頻基本概念

聲音:由物體振動(dòng)產(chǎn)生的聲波风题。因此也有頻率和振幅的特征,頻率對(duì)應(yīng)于時(shí)間軸線低散,振幅對(duì)應(yīng)于電平軸線。
采樣:波是無(wú)限光滑的骡楼,采樣的過(guò)程就是從波中抽取某些點(diǎn)的頻率值熔号,即把模擬信號(hào)數(shù)字化。如下圖所示:

藍(lán)色代表模擬音頻信號(hào)鸟整,紅色的點(diǎn)代表采樣得到的量化數(shù)值
模擬信號(hào)->抽樣->量化->編碼->數(shù)字信號(hào)

采樣率:錄音設(shè)備在一秒鐘內(nèi)對(duì)聲音信號(hào)的采樣次數(shù)引镊,采樣頻率越高聲音的還原就越真實(shí)越自然。采樣頻率一般共分為22.05KHz、44.1KHz弟头、48KHz三個(gè)等級(jí)吩抓。8KHz - 電話所用采樣率, 對(duì)于人的說(shuō)話已經(jīng)足夠,22.05KHz只能達(dá)到FM廣播的聲音品質(zhì)赴恨,44.1KHz則是理論上的CD音質(zhì)界限疹娶,48KHz則更加精確一些。
采樣位數(shù):記錄每次采樣值數(shù)值大小的位數(shù)伦连。采樣位數(shù)通常有8bits或16bits兩種雨饺,采樣位數(shù)越大,所能記錄聲音的變化度就越細(xì)膩惑淳,相應(yīng)的數(shù)據(jù)量就越大额港。
聲道數(shù):聲道數(shù)是指支持能不同發(fā)聲的音響的個(gè)數(shù),它是衡量音響設(shè)備的重要指標(biāo)之一歧焦。
單聲道的聲道數(shù)為1個(gè)聲道移斩;雙聲道的聲道數(shù)為2個(gè)聲道;立體聲道的聲道數(shù)默認(rèn)為2個(gè)聲道绢馍;立體聲道(4聲道)的聲道數(shù)為4個(gè)聲道向瓷。
碼率:碼率 = 采樣率 * 采樣位數(shù) * 聲道數(shù)
如果是CD音質(zhì),采樣率44.1KHz痕貌,采樣位數(shù)16bit风罩,立體聲(雙聲道),碼率 = 44.1 * 16 * 2 = 1411.2Kbps = 176.4KBps舵稠,那么錄制一分鐘的音樂(lè)超升,大概10.34MB。
音頻幀:音頻數(shù)據(jù)是流式的哺徊,本身沒(méi)有明確的一幀幀的概念室琢,在實(shí)際的應(yīng)用中,為了音頻算法處理/傳輸?shù)姆奖懵渥罚话慵s定俗成取2.5ms~60ms為單位的數(shù)據(jù)量為一幀音頻盈滴。這個(gè)時(shí)間被稱之為“采樣時(shí)間”,其長(zhǎng)度沒(méi)有特別的標(biāo)準(zhǔn)轿钠,它是根據(jù)編解碼器和具體應(yīng)用的需求來(lái)決定的巢钓。

1.3流的基本概念

流特征:隨著網(wǎng)絡(luò)的發(fā)展,人們對(duì)在線收聽(tīng)音樂(lè)提出了要求疗垛,因此也要求音頻文件能夠一邊讀一邊播放症汹,而不需要把這個(gè)文件全部讀出后然后回放,這樣就可以做到不用下載就可以實(shí)現(xiàn)收聽(tīng)了贷腕。也可以做到一邊編碼一邊播放背镇,正是這種特征咬展,可以實(shí)現(xiàn)在線的直播,架設(shè)自己的數(shù)字廣播電臺(tái)成為了現(xiàn)實(shí)瞒斩。
流媒體:指采用流式傳輸?shù)姆绞皆贗nternet / Intranet播放的媒體格式.流媒體的數(shù)據(jù)流隨時(shí)傳送隨 時(shí)播放破婆,只是在開(kāi)始時(shí)有些延遲邊下載邊播入的流式傳輸方式不僅使啟動(dòng)延時(shí)大幅度地縮短,而且對(duì)系統(tǒng)緩存容量的需求也大大降低胸囱,極大地減少用戶用在等待的時(shí)間祷舀。

2.視頻播放基本流程

視頻播放基本流程

3.名詞解釋

3.1解協(xié)議

解協(xié)議:將流媒體協(xié)議的數(shù)據(jù)解析為標(biāo)準(zhǔn)的相應(yīng)的封裝格式數(shù)據(jù)。
常見(jiàn)的流媒體協(xié)議有HTTP旺矾,RTMP蔑鹦。
播放網(wǎng)絡(luò)視頻文件需要解協(xié)議,播放本地視頻文件不需要解協(xié)議箕宙。

3.2封裝與解封裝

封裝:將視頻流嚎朽、音頻流甚至是字幕流捆綁到一個(gè)單獨(dú)的文件中,作為一個(gè)信號(hào)進(jìn)行傳輸柬帕。
解封裝:將輸入的封裝格式的數(shù)據(jù)哟忍,分離成為音頻流壓縮編碼數(shù)據(jù)和視頻流壓縮編碼數(shù)據(jù)以及字幕數(shù)據(jù)。

封裝與解封裝整個(gè)過(guò)程陷寝,都不對(duì)原來(lái)的視頻锅很、音頻或字幕重新編碼》锱埽混流(封裝爆安、打包)后的文件,可以通過(guò)分離(分解仔引、解包)操作扔仓,獲得與原始素材一模一樣的獨(dú)立的視頻、音頻和字幕文件咖耘。

常見(jiàn)的封裝格式:AVI翘簇、MP4、TS儿倒、FLV版保、MKV、RMVB夫否。
FLV封裝格式是由一個(gè)FLV Header文件頭和一個(gè)一個(gè)的Tag組成的彻犁。Tag中包含了音頻數(shù)據(jù)以及視頻數(shù)據(jù)。FLV的結(jié)構(gòu)如下圖所示:

3.3編碼與解碼

編碼:通過(guò)一定協(xié)議或規(guī)則把一段聲音或圖像轉(zhuǎn)化成計(jì)算機(jī)數(shù)字文件的過(guò)程凰慈。
視頻編碼:將視頻像素?cái)?shù)據(jù)(RGB汞幢,YUV等)壓縮成為視頻碼流,從而降低視頻的數(shù)據(jù)量溉瓶。
當(dāng)前使用最多的視頻編碼方案是H.264急鳄。H.264原始碼流(又稱為“裸流”)是由一個(gè)一個(gè)的NALU組成的。他們的結(jié)構(gòu)如下圖所示:

其中每個(gè)NALU之間通過(guò)startcode(起始碼)進(jìn)行分隔堰酿,起始碼分成兩種:0x000001(3Byte)或者0x00000001(4Byte)疾宏。如果NALU對(duì)應(yīng)的Slice為一幀的開(kāi)始就用0x00000001,否則就用0x000001触创。
H.264碼流解析的步驟就是首先從碼流中搜索0x000001和0x00000001坎藐,分離出NALU;然后再分析NALU的各個(gè)字段哼绑。

音頻編碼:將音頻采樣數(shù)據(jù)(PCM等)壓縮成為音頻碼流岩馍,從而降低音頻的數(shù)據(jù)量。常見(jiàn)的音頻編碼方案有AAC抖韩、MP3蛀恩、WMA。
AAC原始碼流(又稱為“裸流”)是由一個(gè)一個(gè)的ADTS frame組成的茂浮。他們的結(jié)構(gòu)如下圖所示:

其中每個(gè)ADTS frame之間通過(guò)syncword(同步字)進(jìn)行分隔双谆。同步字為0xFFF(二進(jìn)制“111111111111”)。AAC碼流解析的步驟就是首先從碼流中搜索0x0FFF席揽,分離出ADTS frame顽馋;然后再分析ADTS frame的首部各個(gè)字段。
××ps: AAC存在兩種格式音頻格式:ADIF 和 ADTS幌羞。

直播服務(wù)普遍采用了RTMP作為流媒體協(xié)議寸谜,F(xiàn)LV作為封裝格式,H.264作為視頻編碼格式属桦,AAC作為音頻編碼格式熊痴。采用RTMP作為直播協(xié)議的好處在于其被Flash播放器支持。

解碼:編碼的逆過(guò)程地啰,把編碼過(guò)的媒體文件重新轉(zhuǎn)化成聲音或圖像愁拭。

用來(lái)執(zhí)行編碼工作的軟件叫“編碼器”(Coder 或 Encoder),
用來(lái)執(zhí)行解碼工作的軟件叫“解碼器”(Decoder)亏吝,
“編碼器”與“解碼器”合稱“編解碼器”(“Codec”)岭埠。

用來(lái)編碼音頻流的軟件叫作“音頻編碼器”(Audio Encoder)
用來(lái)編碼視頻流的軟件叫作“視頻編碼器”(Video Encoder)

用來(lái)解碼音頻流的軟件叫作“音頻解碼器”(Audio Decoder)
用來(lái)解碼視頻流的軟件叫作“視頻解碼器”(Video Decoder)

音頻流與視頻流的處理必須分別進(jìn)行,即:
“音頻編碼器”編碼出單個(gè)音頻文件蔚鸥,
“視頻編碼器”編碼出單個(gè)視頻文件惜论,
“音頻解碼器”單獨(dú)對(duì)音頻文件進(jìn)行解碼還原,
“視頻解碼器”單獨(dú)對(duì)視頻文件進(jìn)行解碼還原止喷。

3.4視音頻同步

視音頻同步:根據(jù)解封裝模塊處理過(guò)程中獲取到的參數(shù)信息馆类,同步解碼出來(lái)的視頻和音頻數(shù)據(jù),并將視頻音頻數(shù)據(jù)送至系統(tǒng)的顯卡和聲卡播放出來(lái)弹谁。

視頻和音頻的同步實(shí)際上是一個(gè)動(dòng)態(tài)的過(guò)程乾巧,同步是暫時(shí)的句喜,不同步則是常態(tài)。以選擇的播放速度量為標(biāo)準(zhǔn)沟于,快的等待慢的咳胃,慢的則加快速度,是一個(gè)你等我趕的過(guò)程旷太。

播放速度標(biāo)準(zhǔn)量的的選擇一般來(lái)說(shuō)有以下三種:
將視頻同步到音頻上:以音頻的播放速度為基準(zhǔn)來(lái)同步視頻展懈。視頻比音頻播放慢了,加快其播放速度供璧;快了存崖,則延遲播放(FFmpeg采用這種方式)。
將音頻同步到視頻上:以視頻的播放速度為基準(zhǔn)來(lái)同步音頻睡毒。
將視頻和音頻同步外部的時(shí)鐘上:選擇一個(gè)外部時(shí)鐘為基準(zhǔn)来惧,視頻和音頻的播放速度都以該時(shí)鐘為標(biāo)準(zhǔn)。

參考:
http://www.reibang.com/p/0627dd2eb272
http://www.codexiu.cn/android/blog/13575/
http://blog.csdn.net/haomcu/article/details/7072707
http://blog.csdn.net/leixiaohua1020/article/details/18893769

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末演顾,一起剝皮案震驚了整個(gè)濱河市违寞,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌偶房,老刑警劉巖趁曼,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異棕洋,居然都是意外死亡挡闰,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)掰盘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)摄悯,“玉大人,你說(shuō)我怎么就攤上這事愧捕∩菅保” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵次绘,是天一觀的道長(zhǎng)瘪阁。 經(jīng)常有香客問(wèn)我,道長(zhǎng)邮偎,這世上最難降的妖魔是什么管跺? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮禾进,結(jié)果婚禮上豁跑,老公的妹妹穿的比我還像新娘。我一直安慰自己泻云,他們只是感情好艇拍,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布狐蜕。 她就那樣靜靜地躺著,像睡著了一般卸夕。 火紅的嫁衣襯著肌膚如雪馏鹤。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,631評(píng)論 1 305
  • 那天娇哆,我揣著相機(jī)與錄音,去河邊找鬼勃救。 笑死碍讨,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蒙秒。 我是一名探鬼主播勃黍,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼晕讲!你這毒婦竟也來(lái)了覆获?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤瓢省,失蹤者是張志新(化名)和其女友劉穎弄息,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體勤婚,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡摹量,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了馒胆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片缨称。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖祝迂,靈堂內(nèi)的尸體忽然破棺而出睦尽,到底是詐尸還是另有隱情,我是刑警寧澤型雳,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布当凡,位于F島的核電站,受9級(jí)特大地震影響纠俭,放射性物質(zhì)發(fā)生泄漏宁玫。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一柑晒、第九天 我趴在偏房一處隱蔽的房頂上張望欧瘪。 院中可真熱鬧,春花似錦匙赞、人聲如沸佛掖。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)芥被。三九已至欧宜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間拴魄,已是汗流浹背冗茸。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留匹中,地道東北人夏漱。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像顶捷,于是被迫代替她去往敵國(guó)和親挂绰。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容