本文是一篇視頻通話的基礎(chǔ)知識文章。 我們先來看看視頻編碼的基本原理:視頻圖像數(shù)據(jù)有極強(qiáng)的相關(guān)性,也就是說有大量的冗余信息。其中冗余信息可分為空域冗余信息和時(shí)域冗余信息。壓縮技術(shù)就是將數(shù)據(jù)中的冗余信息去掉(去除數(shù)據(jù)之間的相關(guān)性),壓縮技術(shù)包含幀內(nèi)圖像數(shù)據(jù)壓縮技術(shù)、幀間圖像數(shù)據(jù)壓縮技術(shù)和熵編碼壓縮技術(shù)。視頻文件一般涉及到三個(gè)參數(shù):幀率、分辨率和碼率。 每秒顯示的圖片數(shù)。影響畫面流暢度。幀率越大,畫面越流暢;幀率越小,畫面越有跳動感。 由于人類眼睛的特殊生理結(jié)構(gòu),如果所看畫面之幀率高于24的時(shí)候,就會認(rèn)為是連貫的,此現(xiàn)象稱之為視覺暫留。而對游戲,一般來說,第一人稱射擊游戲比較注重FPS的高低,如果FPS<> 高的幀率可以得到更流暢、更逼真的動畫。一般來說30fps就是可以接受的,提升至60fps則可以明顯提升交互感和逼真感,但是一般來說超過75fps一般就不容易察覺到有明顯的流暢度提升了。 在顯示“分辨率”不變的情況下,F(xiàn)PS越高,對顯卡的處理能力要求越高。電腦中所顯示的畫面,都是由顯卡來進(jìn)行輸出的,因此屏幕上每個(gè)像素的填充都得由顯卡來進(jìn)行計(jì)算、輸出。 當(dāng)畫面的分辨率是1024×768時(shí),畫面的刷新率要達(dá)到24幀/秒,那么顯卡在一秒鐘內(nèi)需要處理的像素量就達(dá)到了: 1024×768×24=18874368 如果要求畫面的刷新率達(dá)到50幀/秒,則數(shù)據(jù)量一下子提升到了: 1024×768×50=39321600 FPS與分辨率、顯卡處理能力的關(guān)系如下: 處理能力=分辨率×刷新率 這也就是為什么在玩游戲時(shí),分辨率設(shè)置得越大,畫面就越不流暢的原因了。 單位英寸中所包含的像素點(diǎn)數(shù),決定了位圖圖像細(xì)節(jié)的精細(xì)程度。 分辨率和圖像的像素有直接關(guān)系。舉個(gè)例子,一張分辨率為640 x 480的圖片,那它的分辨率就達(dá)到了307200像素,也就是我們常說的30萬像素,而一張分辨率為1600 x 1200的圖片,它的像素就是200萬。 這是一張圖片分辨率分別在1280×800和440x275下,大小差異。 調(diào)整到同樣大小,視覺可見兩者清晰度的差異。 碼率就是數(shù)據(jù)傳輸時(shí)單位時(shí)間傳送的數(shù)據(jù)位數(shù),一般我們用的單位是kbps即千位每秒。通俗一點(diǎn)的理解就是取樣率或者比特率。單位時(shí)間內(nèi)取樣率越大,精度就越高,處理出來的文件就越接近原始文件。但是文件體積與取樣率是成正比的,所以幾乎所有的編碼格式重視的都是如何用最低的碼率達(dá)到最少的失真。 聲網(wǎng)Agora.io的視頻通話SDK,采用的是自有專利視頻編解碼器EVP(增強(qiáng)型VPx)。EVP支持可適性視頻編碼、并且有低碼率高清晰度的特點(diǎn)。這使得聲網(wǎng)Agora.io的視頻通話能夠做到低延時(shí)、高清晰度。 這是部分聲網(wǎng)Agora.io的碼率:
所謂“清晰”,是指畫面細(xì)膩,沒有馬賽克,并不是分辨率越高圖像就越清晰。 在碼率一定的情況下,分辨率與清晰度成反比關(guān)系:分辨率越高,圖像越不清晰;分辨率越低,圖像越清晰。 在分辨率一定的情況下,碼率與清晰度成正比關(guān)系,碼率越高,圖像越清晰;碼率越低,圖像越不清晰?! ?/p> 這是聲網(wǎng)Agora.io的視頻通話與競品的對比。從下圖可以看出,同樣的傳輸、分辨率條件下,視頻清晰度有明顯差異。 在視頻壓縮的過程中, I幀是幀內(nèi)圖像數(shù)據(jù)壓縮,是獨(dú)立幀,視頻序列中的第一個(gè)幀始終都是I幀。 在視頻會議系統(tǒng)中,并不是每次都把完整的一幅幅圖片發(fā)送到遠(yuǎn)端,而只是發(fā)送后一幅畫面在前一幅畫面基礎(chǔ)上發(fā)生變化的部分。如果在網(wǎng)絡(luò)狀況不好的情況下,終端的接收遠(yuǎn)端或者發(fā)送給遠(yuǎn)程的畫面就會有丟包而出現(xiàn)圖像花屏、圖像卡頓的現(xiàn)象。 在視頻畫面播放過程中,若I幀丟失了,則后面的P幀也就隨著解不出來,就會出現(xiàn)視頻畫面黑屏的現(xiàn)象;若P幀丟失了,則視頻畫面會出現(xiàn)花屏、馬賽克等現(xiàn)象。 聲網(wǎng)Agora.io對于丟包的解決辦法是:全球虛擬通信網(wǎng)和丟包對抗技術(shù)。這能夠保證在網(wǎng)絡(luò)不好的情況下,高丟包率也能正常視頻通話。 下圖是在丟包50%的情況下,聲網(wǎng)Agora.io與競品的對比??梢钥吹?,有的畫面在高丟包情況下,已經(jīng)模糊。 |
|