一熊榛、I腕巡、P绘沉、B 幀
I 幀(Intracoded frames):I 幀圖像采用幀內(nèi)編碼方式,即只利用了單幀圖像內(nèi)的空間相關(guān)性择懂,而沒(méi)有利用時(shí)間相關(guān)性困曙。I 幀使用幀內(nèi)壓縮,不使用運(yùn)動(dòng)補(bǔ)償蹦哼,由于I 幀不依賴其它幀纲熏,所以是隨機(jī)存取的入點(diǎn)锄俄,同時(shí)是解碼的基準(zhǔn)幀奶赠。I 幀主要用于接收機(jī)的初始化和信道的獲取车柠,以及節(jié)目的切換和插入,I 幀圖像的壓縮倍數(shù)相對(duì)較低谈跛。I 幀圖像是周期性出現(xiàn)在圖像序列中的感憾,出現(xiàn)頻率可由編碼器選擇令花。
P 幀(Predictedframes):P 幀和 B 幀圖像采用幀間編碼方式兼都,即同時(shí)利用了空間和時(shí)間上的相關(guān)性扮碧。P 幀圖像只采用前向時(shí)間預(yù)測(cè),可以提高壓縮效率和圖像質(zhì)量蚓土。P 幀圖像中可以包含幀內(nèi)編碼的部分,即 P 幀中的每一個(gè)宏塊可以是前向預(yù)測(cè)确丢,也可以是幀內(nèi)編碼。
B 幀(Bi-directionalpredicted frames):B 幀圖像采用雙向時(shí)間預(yù)測(cè)锨天,可以大大提高壓縮倍數(shù)病袄。值得注意的是赘阀,由于 B 幀圖像采用了未來(lái)幀作為參考基公,因此 MPEG-2 編碼碼流中圖像幀的傳輸順序和顯示順序是不同的轰豆。
一個(gè) I 幀可以不依賴其他幀就解碼出一幅完整的圖像,而 P 幀骂租、B 幀不行渗饮。P 幀需要依賴視頻流中排在它前面的幀才能解碼出圖像宿刮。B 幀則需要依賴視頻流中排在它前面或后面的幀才能解碼出圖像僵缺。
三種幀的說(shuō)明
1磕潮、I幀
I幀:幀內(nèi)編碼幀 揉抵,I幀表示關(guān)鍵幀嗤疯,你可以理解為這一幀畫面的完整保留茂缚;解碼時(shí)只需要本幀數(shù)據(jù)就可以完成(因?yàn)榘暾嬅妫?
I幀特點(diǎn):
<3 它是一個(gè)全幀壓縮編碼幀。它將全幀圖像信息進(jìn)行JPEG壓縮編碼及傳輸;
<3 解碼時(shí)僅用I幀的數(shù)據(jù)就可重構(gòu)完整圖像;
<3 I幀描述了圖像背景和運(yùn)動(dòng)主體的詳情;
<3 I幀不需要參考其他畫面而生成;
<3 I幀是P幀和B幀的參考幀(其質(zhì)量直接影響到同組中以后各幀的質(zhì)量);
<3 I幀是幀組GOP的基礎(chǔ)幀(第一幀),在一組中只有一個(gè)I幀;
<3 I幀不需要考慮運(yùn)動(dòng)矢量;
<3 I幀所占數(shù)據(jù)的信息量比較大桐磁。
2讲岁、P幀
P幀:前向預(yù)測(cè)編碼幀缓艳。==P幀表示的是這一幀跟之前的一個(gè)關(guān)鍵幀(或P幀)的差別阶淘,解碼時(shí)需要用之前緩存的畫面疊加上本幀定義的差別,生成最終畫面==坤塞。(也就是差別幀摹芙,P幀沒(méi)有完整畫面數(shù)據(jù)惜浅,只有與前一幀的畫面差別的數(shù)據(jù))
P幀的預(yù)測(cè)與重構(gòu):P幀是以I幀為參考幀,在I幀中找出P幀“某點(diǎn)”的預(yù)測(cè)值和運(yùn)動(dòng)矢量,取預(yù)測(cè)差值和運(yùn)動(dòng)矢量一起傳送坛悉。在接收端根據(jù)運(yùn)動(dòng)矢量從I幀中找出P幀“某點(diǎn)”的預(yù)測(cè)值并與差值相加以得到P幀“某點(diǎn)”樣值,從而可得到完整的P幀裸影。
P幀特點(diǎn):
<3 P幀是I幀后面相隔1~2幀的編碼幀;
<3 P幀采用運(yùn)動(dòng)補(bǔ)償?shù)姆椒▊魉退c前面的I或P幀的差值及運(yùn)動(dòng)矢量(預(yù)測(cè)誤差);
<3 解碼時(shí)必須將I幀中的預(yù)測(cè)值與預(yù)測(cè)誤差求和后才能重構(gòu)完整的P幀圖像;
<3 P幀屬于前向預(yù)測(cè)的幀間編碼轩猩。它只參考前面最靠近它的I幀或P幀;
<3 P幀可以是其后面P幀的參考幀,也可以是其前后的B幀的參考幀;
<3 由于P幀是參考幀,它可能造成解碼錯(cuò)誤的擴(kuò)散;
<3 由于是差值傳送,P幀的壓縮比較高均践。
3、B幀
B幀:雙向預(yù)測(cè)內(nèi)插編碼幀鞭铆。B幀是雙向差別幀车遂,也就是B幀記錄的是本幀與前后幀的差別,換言之封断,要解碼B幀,不僅要取得之前的緩存畫面舶担,還要解碼之后的畫面坡疼,通過(guò)前后畫面的與本幀數(shù)據(jù)的疊加取得最終的畫面。B幀壓縮率高衣陶,但是解碼時(shí)CPU會(huì)比較累柄瑰。
B幀的預(yù)測(cè)與重構(gòu)
B幀以==前面的I或P幀==和==后面的P幀==為參考幀,“找出”B幀“某點(diǎn)”的預(yù)測(cè)值和兩個(gè)運(yùn)動(dòng)矢量,并取預(yù)測(cè)差值和運(yùn)動(dòng)矢量傳送祖搓。接收端根據(jù)運(yùn)動(dòng)矢量在兩個(gè)參考幀中“找出(算出)”預(yù)測(cè)值并與差值求和,得到B幀“某點(diǎn)”樣值,從而可得到完整的B幀狱意。
B幀特點(diǎn)
1)B幀是由前面的I或P幀和后面的P幀來(lái)進(jìn)行預(yù)測(cè)的;
2)B幀傳送的是它與前面的I或P幀和后面的P幀之間的預(yù)測(cè)誤差及運(yùn)動(dòng)矢量;
3)B幀是雙向預(yù)測(cè)編碼幀;
4)B幀壓縮比最高,因?yàn)樗环从潮麉⒖紟g運(yùn)動(dòng)主體的變化情況,預(yù)測(cè)比較準(zhǔn)確;
5)B幀不是參考幀,不會(huì)造成解碼錯(cuò)誤的擴(kuò)散。
二拯欧、GOP(Group of picture)
GOP即Group of picture(圖像組)详囤,==指兩個(gè)I幀之間的距離==,==Reference(參考周期)指兩個(gè)P幀之間的距離==镐作。一個(gè)I幀所占用的字節(jié)數(shù)大于一個(gè)P幀藏姐,一個(gè)P幀所占用的字節(jié)數(shù)大于一個(gè)B幀。所以在碼率不變的前提下该贾,GOP值越大羔杨,P、B幀的數(shù)量會(huì)越多杨蛋,平均每個(gè)I兜材、P、B幀所占用的字節(jié)數(shù)就越多逞力,也就更容易獲取較好的圖像質(zhì)量曙寡;Reference越大,B幀的數(shù)量越多寇荧,同理也更容易獲得較好的圖像質(zhì)量举庶。
需要說(shuō)明的是,通過(guò)提高GOP值來(lái)提高圖像質(zhì)量是有限度的揩抡,在遇到場(chǎng)景切換的情況時(shí)户侥,H.264編碼器會(huì)自動(dòng)強(qiáng)制插入一個(gè)I幀,此時(shí)實(shí)際的GOP值被縮短了峦嗤。另一方面蕊唐,在一個(gè)GOP中,P烁设、B幀是由I幀預(yù)測(cè)得到的刃泌,當(dāng)I幀的圖像質(zhì)量比較差時(shí),會(huì)影響到一個(gè)GOP中后續(xù)P、B幀的圖像質(zhì)量耙替,直到下一個(gè)GOP開始才有可能得以恢復(fù),所以GOP值也不宜設(shè)置過(guò)大曹体。
同時(shí)俗扇,由于P、B幀的復(fù)雜度大于I幀箕别,所以過(guò)多的P铜幽、B幀會(huì)影響編碼效率,使編碼效率降低串稀。另外除抛,過(guò)長(zhǎng)的GOP還會(huì)影響Seek操作的響應(yīng)速度,由于P母截、B幀是由前面的I或P幀預(yù)測(cè)得到的到忽,所以Seek操作需要直接定位,解碼某一個(gè)P或B幀時(shí)清寇,需要先解碼得到本GOP內(nèi)的I幀及之前的N個(gè)預(yù)測(cè)幀才可以喘漏,GOP值越長(zhǎng),需要解碼的預(yù)測(cè)幀就越多华烟,seek響應(yīng)的時(shí)間也越長(zhǎng)翩迈。
關(guān)鍵幀的周期,也就是兩個(gè)IDR幀之間的距離盔夜,一個(gè)幀組的最大幀數(shù)负饲,一般而言,每一秒視頻至少需要使用 1 個(gè)關(guān)鍵幀喂链。增加關(guān)鍵幀個(gè)數(shù)可改善質(zhì)量返十,但是同時(shí)增加帶寬和網(wǎng)絡(luò)負(fù)載。
三衩藤、CABAC/CAVLC
H.264/AVC標(biāo)準(zhǔn)中兩種熵編碼方法吧慢,CABAC叫自適應(yīng)二進(jìn)制算數(shù)編碼,CAVLC叫前后自適應(yīng)可變長(zhǎng)度編碼赏表。
1.CABAC
是一種無(wú)損編碼方式检诗,畫質(zhì)好,X264就會(huì)舍棄一些較小的DCT系數(shù)瓢剿,碼率降低逢慌,可以將碼率再降低10-15%(特別是在高碼率情況下),會(huì)降低編碼和解碼的速速间狂。
2. CAVLC
將占用更少的CPU資源攻泼,但會(huì)影響壓縮性能。
幀:當(dāng)采樣視頻信號(hào)時(shí),如果是==通過(guò)逐行掃描==忙菠,那么得到的信號(hào)就是一幀圖像何鸡,通常幀頻為25幀每秒(PAL制)、30幀每秒(NTSC制)牛欢;
場(chǎng):當(dāng)采樣視頻信號(hào)時(shí)骡男,如果是==通過(guò)隔行掃描==(奇、偶數(shù)行)傍睹,那么==一幀圖像就被分成了兩場(chǎng)==隔盛,通常場(chǎng)頻為50Hz(PAL制)、60Hz(NTSC制)拾稳;
幀頻吮炕、場(chǎng)頻的由來(lái):最早由于抗干擾和濾波技術(shù)的限制,電視圖像的場(chǎng)頻通常與電網(wǎng)頻率(交流電)相一致访得,于是根據(jù)各地交流電頻率不同就有了歐洲和中國(guó)等PAL制的50Hz和北美等NTSC制的60Hz龙亲,但是現(xiàn)在并沒(méi)有這樣的限制了,幀頻可以和場(chǎng)頻一樣震鹉,或者場(chǎng)頻可以更高俱笛。
幀編碼、場(chǎng)編碼方式
逐行視頻==幀內(nèi)鄰近行空間相關(guān)性較強(qiáng)==传趾,因此當(dāng)==活動(dòng)量非常小或者靜止==的圖像比較適宜采用==幀編碼==方式迎膜;
==場(chǎng)內(nèi)相鄰行之間的時(shí)間相關(guān)性較強(qiáng)==,對(duì)==運(yùn)動(dòng)量較大==的運(yùn)動(dòng)圖像則適宜采用==場(chǎng)編碼==方式浆兰。
四磕仅、DTS、PTS 的概念
DTS簸呈、PTS 的概念如下所述:
DTS(Decoding Time Stamp):即解碼時(shí)間戳榕订,這個(gè)時(shí)間戳的意義在于告訴播放器該在什么時(shí)候解碼這一幀的數(shù)據(jù)。
PTS(Presentation Time Stamp):即顯示時(shí)間戳蜕便,這個(gè)時(shí)間戳用來(lái)告訴播放器該在什么時(shí)候顯示這一幀的數(shù)據(jù)劫恒。
需要注意的是:雖然 DTS、PTS 是用于指導(dǎo)播放端的行為轿腺,但它們是在編碼的時(shí)候由編碼器生成的两嘴。
當(dāng)視頻流中沒(méi)有 B 幀時(shí),通常 DTS 和 PTS 的順序是一致的族壳。但如果有 B 幀時(shí)憔辫,就回到了我們前面說(shuō)的問(wèn)題:解碼順序和播放順序不一致了。
比如一個(gè)視頻中仿荆,幀的顯示順序是:I B B P贰您,現(xiàn)在我們需要在解碼 B 幀時(shí)知道 P 幀中信息坏平,因此這幾幀在視頻流中的順序可能是:I P B B,這時(shí)候就體現(xiàn)出每幀都有 DTS 和 PTS 的作用了锦亦。DTS 告訴我們?cè)摪词裁错樞蚪獯a這幾幀圖像舶替,PTS 告訴我們?cè)摪词裁错樞蝻@示這幾幀圖像。順序大概如下:
PTS: 1 4 2 3
DTS: 1 2 3 4
Stream: I P B B
五孽亲、碼流(碼率)
定義
碼流(Data Rate)是指視頻文件在單位時(shí)間內(nèi)使用的數(shù)據(jù)流量坎穿,也叫碼率,是視頻編碼中畫面質(zhì)量控制中最重要的部分返劲。同樣分辨率下,視頻文件的碼流越大栖茉,壓縮比就越小篮绿,畫面質(zhì)量就越好。-
原理
一般情況下吕漂,DVD格式歌曲的碼流為6~8M亲配;VCD歌曲的碼流約為1.5M。相同配置和同樣網(wǎng)絡(luò)環(huán)境下惶凝,DVD歌曲和VCD歌曲的并發(fā)流是不一樣的吼虎。視頻比特率與碼流只是同一個(gè)問(wèn)題兩種叫法,比如一個(gè)MPEG2視頻文件苍鲜,一般不但包含視頻信息還有音頻信息思灰,音頻也有自己的比特率,這是音視信息復(fù)合在一起的文件混滔,這個(gè)文件的碼流是其音視碼流的總和洒疚。
當(dāng)然,==碼流越大坯屿,文件體積也越大==油湖,其計(jì)算公式是==文件體積=時(shí)間X碼率/8==。例如领跛,網(wǎng)絡(luò)上常見(jiàn)的一部90分鐘1Mbps碼流的720P RMVB文件乏德,其體積就=5400秒×1Mb/8=675MB。
通常來(lái)說(shuō)吠昭,一個(gè)視頻文件包括了畫面及聲音喊括,例如一個(gè)RMVB的視頻文件,里面包含了視頻信息和音頻信息怎诫,音頻及視頻都有各自不同的采樣方式和比特率瘾晃,也就是說(shuō),同一個(gè)視頻文件音頻和視頻的比特率并不是一樣的幻妓。而我們所說(shuō)的一個(gè)視頻文件碼流率大小蹦误,一般是指視頻文件中音頻及視頻信息碼流率的總和劫拢。
以國(guó)內(nèi)最流行,大家最熟悉的RMVB視頻文件為例强胰,RMVB中的VB舱沧,指的是VBR,即Variable Bit Rate的縮寫偶洋,中文含義是可變比特率熟吏,它表示RMVB采用的是動(dòng)態(tài)編碼的方式,把較高的采樣率用于復(fù)雜的動(dòng)態(tài)畫面(歌舞玄窝、飛車牵寺、戰(zhàn)爭(zhēng)、動(dòng)作等)恩脂,而把較低的采樣率用于靜態(tài)畫面帽氓,合理利用資源,達(dá)到畫質(zhì)與體積可兼得的效果俩块。 -
多碼流編輯
多碼流技術(shù)是通過(guò)在編碼過(guò)程中同時(shí)產(chǎn)生多種不同碼流及分辨率的流媒體數(shù)據(jù)黎休,根據(jù)用戶實(shí)際網(wǎng)絡(luò)帶寬條件為之自動(dòng)分配相對(duì)最佳解碼畫質(zhì)的解決方案。在實(shí)際網(wǎng)絡(luò)直播應(yīng)用中玉凯,由于位于不同網(wǎng)絡(luò)位置的訪問(wèn)者所在網(wǎng)絡(luò)環(huán)境存在差異势腮,而僅以某種固定碼流分辨率進(jìn)行網(wǎng)絡(luò)直播流媒體傳送往往會(huì)導(dǎo)致網(wǎng)速較高的用戶看到的畫質(zhì)仍不夠清晰,網(wǎng)速較低的用戶解碼時(shí)間過(guò)長(zhǎng)而使得畫面不夠流暢漫仆,為解決二者的矛盾使訪問(wèn)者瀏覽到盡可能看到兼顧清晰和流暢的直播內(nèi)容捎拯,采用多碼流技術(shù)成為了一個(gè)最簡(jiǎn)單最有效的辦法例如:以500Kbps來(lái)編碼音視頻。
其中 1KB/秒=1024*8bps歹啼,
b就是比特位(bit)
s就是秒(second)
p就是每(per)
所以玄渗,以500kbps來(lái)編碼表示經(jīng)過(guò)編碼后的音視頻數(shù)據(jù)每秒鐘需要用500K的比特來(lái)表示具體的,==對(duì)于音頻來(lái)說(shuō)狸眼,碼流=采樣率×比特?cái)?shù)×聲道==藤树,因此,對(duì)于常見(jiàn)的CD格式音頻拓萌,它的碼流就是:44100×16×2=1.41Mbit/sec岁钓,即一秒鐘的文件大小是0.17625M,而常見(jiàn)的160Kbps的Mp3文件每秒就需160K/1024/8=0.01953125M微王,相差近10倍屡限。
六、采樣率
采樣率(也稱為采樣速度或者采樣頻率)定義了每秒從連續(xù)信號(hào)中提取并組成離散信號(hào)的采樣個(gè)數(shù)炕倘,它用赫茲(Hz)來(lái)表示钧大。采樣率是指將模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)時(shí)的采樣頻率,也就是單位時(shí)間內(nèi)采樣多少點(diǎn)罩旋。一個(gè)采樣點(diǎn)數(shù)據(jù)有多少個(gè)比特啊央。比特率是指每秒傳送的比特(bit)數(shù)眶诈。單位為 bps(Bit Per Second),比特率越高瓜饥,傳送的數(shù)據(jù)越大逝撬,音質(zhì)越好.比特率 =采樣率 x 采用位數(shù) x聲道數(shù)
采樣率類似于動(dòng)態(tài)影像的幀數(shù),比如電影的采樣率是24赫茲乓土,PAL制式的采樣率是25赫茲宪潮,NTSC制式的采樣率是30赫茲。當(dāng)我們把采樣到的一個(gè)個(gè)靜止畫面再以采樣率同樣的速度回放時(shí)趣苏,看到的就是連續(xù)的畫面狡相。同樣的道理,把以44.1kHZ采樣率記錄的CD以同樣的速率播放時(shí)食磕,就能聽到連續(xù)的聲音谣光。顯然,這個(gè)采樣率越高芬为,聽到的聲音和看到的圖像就越連貫涂屁。當(dāng)然飒泻,人的聽覺(jué)和視覺(jué)器官能分辨的采樣率是有限的,基本上高于44.1kHZ采樣的聲音侯嘀,絕大部分人已經(jīng)覺(jué)察不到其中的分別了日戈。
而聲音的位數(shù)就相當(dāng)于畫面的顏色數(shù)询张,表示每個(gè)取樣的數(shù)據(jù)量,當(dāng)然數(shù)據(jù)量越大浙炼,回放的聲音越準(zhǔn)確份氧,不至于把開水壺的叫聲和火車的鳴笛混淆。同樣的道理弯屈,對(duì)于畫面來(lái)說(shuō)就是更清晰和準(zhǔn)確蜗帜,不至于把血和西紅柿醬混淆。不過(guò)受人的器官的機(jī)能限制资厉,16位的聲音和24位的畫面基本已經(jīng)是普通人類的極限了厅缺,更高位數(shù)就只能靠?jī)x器才能分辨出來(lái)了。比如電話就是3kHZ取樣的7位聲音宴偿,而CD是44.1kHZ取樣的16位聲音湘捎,所以CD就比電話更清楚。
當(dāng)你理解了以上這兩個(gè)概念窄刘,比特率就很容易理解了窥妇。==以電話為例,每秒3000次取樣娩践,每個(gè)取樣是7比特活翩,那么電話的比特率是21000==烹骨。 而CD是每秒 44100次取樣,兩個(gè)聲道纱新,每個(gè)取樣是13位PCM編碼展氓,所以CD的比特率是44100213=1146600,也就是說(shuō)CD每秒的數(shù)據(jù)量大約是 144KB脸爱,而一張CD的容量是74分等于4440秒遇汞,就是639360KB=640MB。
==碼率和取樣率最根本的差別就是碼率是針對(duì)源文件==來(lái)講的簿废。
七空入、音頻采樣率
定義
音頻采樣率是指錄音設(shè)備在一秒鐘內(nèi)對(duì)聲音信號(hào)的采樣次數(shù)。
采樣頻率越高聲音的還原就越真實(shí)越自然族檬。在當(dāng)今的主流采集卡上歪赢,采樣頻率一般共分為22.05KHz、44.1KHz单料、48KHz三個(gè)等級(jí)埋凯,22.05KHz只能達(dá)到FM廣播的聲音品質(zhì),44.1KHz則是理論上的CD音質(zhì)界限扫尖,48KHz則更加精確一些白对。常用的采樣率編輯
在數(shù)字音頻領(lǐng)域,常用的采樣率有:
8,000 Hz - 電話所用采樣率, 對(duì)于人的說(shuō)話已經(jīng)足夠
22,050 Hz - 無(wú)線電廣播所用采樣率
32,000 Hz - miniDV 數(shù)碼視頻 camcorder换怖、DAT (LP mode)所用采樣率
44,100 Hz - 音頻 CD, 也常用于 MPEG-1 音頻(VCD, SVCD, MP3)所用采樣率
47,250 Hz - 商用 PCM 錄音機(jī)所用采樣率
48,000 Hz - miniDV甩恼、數(shù)字電視、DVD沉颂、DAT条摸、電影和專業(yè)音頻所用的數(shù)字聲音所用采樣率
50,000 Hz - 商用數(shù)字錄音機(jī)所用采樣率
96,000 或者 192,000 Hz - DVD-Audio、一些 LPCM DVD 音軌铸屉、BD-ROM(藍(lán)光盤)音軌钉蒲、和 HD-DVD (高清晰度 DVD)音軌所用所用采樣率
2.8224 MHz - Direct Stream Digital 的 1 位 sigma-delta modulation 過(guò)程所用采樣率。-
用例編輯
聲音其實(shí)是一種能量波抬探,因此也有頻率和振幅的特征子巾,頻率對(duì)應(yīng)于時(shí)間軸線,振幅對(duì)應(yīng)于電平軸線小压。波是無(wú)限光滑的线梗,弦線可以看成由無(wú)數(shù)點(diǎn)組成,由于存儲(chǔ)空間是相對(duì)有限的怠益,數(shù)字編碼過(guò)程中仪搔,必須對(duì)弦線的點(diǎn)進(jìn)行采樣。采樣的過(guò)程就是抽取某點(diǎn)的頻率值蜻牢,很顯然烤咧,在一秒中內(nèi)抽取的點(diǎn)越多偏陪,獲取得頻率信息更豐富,為了復(fù)原波形煮嫌,一次振動(dòng)中笛谦,必須有2個(gè)點(diǎn)的采樣,人耳能夠感覺(jué)到的最高頻率為20kHz昌阿,因此要滿足人耳的聽覺(jué)要求饥脑,則需要至少每秒進(jìn)行40k次采樣,用40kHz表達(dá)懦冰,這個(gè)40kHz就是采樣率灶轰。我們常見(jiàn)的CD,采樣率為44.1kHz刷钢。采集過(guò)程中視頻和音頻同步是非常重要的笋颤,光有頻率信息是不夠的,我們還必須獲得該頻率的能量值并量化内地,用于表示信號(hào)強(qiáng)度伴澄。量化電平數(shù)為2的整數(shù)次冪,我們常見(jiàn)的CD位16級(jí)的采樣大小阱缓,即2的4次方秉版。采樣大小相對(duì)采樣率更難理解,因?yàn)橐@得抽象點(diǎn)茬祷,舉個(gè)簡(jiǎn)單例子:假設(shè)對(duì)一個(gè)波進(jìn)行8次采樣,采樣點(diǎn)分別對(duì)應(yīng)的能量值分別為A1-A8并蝗,但我們只使用2bit的采樣大小祭犯,結(jié)果我們只能保留A1-A8中4個(gè)點(diǎn)的值而舍棄另外4個(gè)。如果我們進(jìn)行3bit的采樣大小滚停,則剛好記錄下8個(gè)點(diǎn)的所有信息沃粗。采樣率和采樣大小的值越大,記錄的波形更接近原始信號(hào)键畴。
八最盅、比特率
數(shù)字信道傳送數(shù)字信號(hào)的速率稱為數(shù)據(jù)傳輸速率或比特率.
比特率是指每秒傳送的比特(bit)數(shù)。單位為bps(Bit Per Second)起惕,比特率越高涡贱,傳送的數(shù)據(jù)越大。在視頻領(lǐng)域,比特率常翻譯為碼率
==比特率表示經(jīng)過(guò)編碼(壓縮)后的音惹想、視頻數(shù)據(jù)每秒鐘需要用多少個(gè)比特來(lái)表示==问词,而比特就是二進(jìn)制里面最小的單位,要么是0嘀粱,要么是1激挪。比特率與音辰狡、視頻壓縮的關(guān)系,簡(jiǎn)單的說(shuō)就是==比特率越高垄分,音宛篇、視頻的質(zhì)量就越好,但編碼后的文件就越大==薄湿;如果比特率越少則情況剛好相反叫倍。
==比特率是指將數(shù)字聲音、視頻由模擬格式轉(zhuǎn)化成數(shù)字格式的采樣率嘿般,采樣率越高段标,還原后的音質(zhì)、畫質(zhì)就越好==炉奴。
常見(jiàn)編碼模式
VBR(Variable Bitrate)動(dòng)態(tài)比特率
也就是沒(méi)有固定的比特率逼庞,壓縮軟件在壓縮時(shí)根據(jù)音頻數(shù)據(jù)即時(shí)確定使用什么比特率,這是以質(zhì)量為前提兼顧文件大小的方式瞻赶,推薦編碼模式赛糟;
ABR(Average Bitrate)平均比特率
是VBR的一種插值參數(shù)。LAME針對(duì)CBR不佳的文件體積比和VBR生成文件大小不定的特點(diǎn)獨(dú)創(chuàng)了這種編碼模式砸逊。ABR在指定的文件大小內(nèi)璧南,以每50幀(30幀約1秒)為一段,低頻和不敏感頻率使用相對(duì)低的流量师逸,高頻和大動(dòng)態(tài)表現(xiàn)時(shí)使用高流量司倚,可以做為VBR和CBR的一種折衷選擇。
CBR(Constant Bitrate)常數(shù)比特率
指文件從頭到尾都是一種位速率篓像。相對(duì)于VBR和ABR來(lái)講动知,它壓縮出來(lái)的文件體積很大,而且音質(zhì)相對(duì)于VBR和ABR不會(huì)有明顯的提高员辩。
九盒粮、幀速率
幀速率也稱為FPS(Frames PerSecond)的縮寫——幀/秒。是指每秒鐘刷新的圖片的幀數(shù)奠滑,也可以理解為圖形處理器每秒鐘能夠刷新幾次丹皱。越高的幀速率可以得到更流暢、更逼真的動(dòng)畫宋税。每秒鐘幀數(shù)(FPS)越多摊崭,所顯示的動(dòng)作就會(huì)越流暢。
十杰赛、 分辨率
分辨率主要是指顯示器所能顯示的像素的多少爽室,可以從顯示分辨率與圖像分辨率兩個(gè)方向來(lái)分類。
1、顯示分辨率
(屏幕分辨率)是屏幕圖像的精密度阔墩,是指顯示器所能顯示的像素的多少嘿架。由于屏幕上的點(diǎn)、線和面都是由像素組成的啸箫,顯示器可顯示的像素越多耸彪,畫面就越精細(xì),同樣的屏幕區(qū)域內(nèi)能顯示的信息也越多忘苛,所以分辨率是個(gè)非常重要的性能指標(biāo)之一蝉娜。可以把整個(gè)圖像想象成是一個(gè)大型的棋盤扎唾,而分辨率的表示方式就是所有經(jīng)線和緯線交叉點(diǎn)的數(shù)目召川。顯示分辨率一定的情況下,顯示屏越小圖像越清晰胸遇,反之荧呐,顯示屏大小固定時(shí),顯示分辨率越高圖像越清晰纸镊。
2倍阐、圖像分辨率
則是單位英寸中所包含的像素點(diǎn)數(shù),其定義更趨近于分辨率本身的定義逗威。象素?cái)?shù)越多峰搪,其分辨率就越高,因此凯旭,分辨率通常是以象素?cái)?shù)來(lái)計(jì)量的.
640*480分辨率的視頻概耻,建議視頻的碼速率設(shè)置在700以上,音頻采樣率44100就行了.
一個(gè)音頻編碼率為128Kbps罐呼,視頻編碼率為800Kbps的文件咐蚯,其總編碼率為928Kbps,意思是經(jīng)過(guò)編碼后的數(shù)據(jù)每秒鐘需要用928K比特來(lái)表示弄贿。
計(jì)算輸出文件大小公式:
==(音頻編碼率(KBit為單位)/8 +視頻編碼率(KBit為單位)/8)×影片總長(zhǎng)度(秒為單位)=文件大小(MB為單位)==
十一矫膨、高清視頻
高清差凹,英文為“High Definition”,==即指“高分辨率”==侧馅。 高清電視(HDTV)危尿,是由美國(guó)電影電視工程師協(xié)會(huì)確定的高清晰度電視標(biāo)準(zhǔn)格式。現(xiàn)在的大屏幕液晶電視機(jī)馁痴,一般都支持1080i和720P谊娇,而一些俗稱的“全高清”(Full HD),則是指支持1080P輸出的電視機(jī)罗晕。
目前的720P以及1080P采用了很多種編碼济欢,例如主流的MPEG2赠堵,VC-1以及H.264,還有Divx以及Xvid法褥,至于封裝格式更多到令人發(fā)指茫叭,ts、mkv半等、wmv以及藍(lán)光專用等等揍愁。
720和1080代表視頻流的分辨率,前者1280*720杀饵,后者1920*1080莽囤,不同的編碼需要不同的系統(tǒng)資源,大概可以認(rèn)為是H.264>VC-1>MPEG2切距。
==VC-1是最后被認(rèn)可的高清編碼格式==朽缎,不過(guò)因?yàn)橛形④浀暮笈_(tái),所以這種編碼格式不能小窺蔚舀。相對(duì)于MPEG2饵沧,VC-1的壓縮比更高,但相對(duì)于H.264而言赌躺,編碼解碼的計(jì)算則要稍小一些狼牺,目前來(lái)看,==VC-1可能是一個(gè)比較好的平衡==礼患,輔以微軟的支持是钥,應(yīng)該是一只不可忽視的力量。一般來(lái)說(shuō)缅叠,==VC-1多為 “.wmv”后綴悄泥,但這都不是絕對(duì)的==,具體的編碼格式還是要通過(guò)軟件來(lái)查詢肤粱。
總的來(lái)說(shuō)弹囚,==從壓縮比上來(lái)看,H.264的壓縮比率更高一些==领曼,也就是同樣的視頻鸥鹉,通過(guò)H.264編碼算法壓出來(lái)的視頻容量要比VC-1的更小,但是VC-1 格式的視頻在解碼計(jì)算方面則更小一些庶骄,一般通過(guò)高性能的CPU就可以很流暢的觀看高清視頻毁渗。相信這也是目前NVIDIA Geforce 8系列顯卡不能完全解碼VC-1視頻的主要原因。
==PS&TS是兩種視頻或影片封裝格式单刁,常用于高清片==灸异。擴(kuò)展名分別為VOB/EVO和TS等;其文件編碼一般用MPEG2/VC-1/H.264
目前的高清視頻編碼格式主要有H.264、VC-1肺樟、MPEG-2檐春、MPEG-4、DivX儡嘶、XviD喇聊、WMA-HD以及X264。事實(shí)上蹦狂,現(xiàn)在網(wǎng)絡(luò)上流傳的高清視頻主要以兩類文件的方式存在:一類是經(jīng)過(guò)MPEG-2標(biāo)準(zhǔn)壓縮誓篱,以tp和ts為后綴的視頻流文件;一類是經(jīng)過(guò)WMV-HD(Windows Media Video HighDefinition)標(biāo)準(zhǔn)壓縮過(guò)的wmv文件,還有少數(shù)文件后綴為avi或mpg凯楔,其性質(zhì)與wmv是一樣的窜骄。==真正效果好的高清視頻更多地以H.264與VC-1這兩種主流的編碼格式流傳==。
一般來(lái)說(shuō)摆屯,H.264格式以“.avi”邻遏、“.mkv”以及“.ts”封裝比較常見(jiàn)。
十二虐骑、 位率
位率又稱為“碼率”准验。指單位時(shí)間內(nèi),單個(gè)錄像通道所產(chǎn)生的數(shù)據(jù)量廷没,其單位通常是bps糊饱、Kbps或Mbps。可以根據(jù)錄像的時(shí)間與位率估算出一定時(shí)間內(nèi)的錄像文件大小颠黎。
1另锋、位率
是一個(gè)可調(diào)參數(shù),不同的分辨率模式下和監(jiān)控場(chǎng)景下狭归,合適的位率大小是不同的夭坪。在設(shè)置時(shí),要綜合考慮三個(gè)因素:
1过椎、分辨率
分辨率是決定位率(碼率)的主要因素室梅,==不同的分辨率要采用不同的位率==【斡睿總體而言亡鼠,錄像的分辨率越高,所要求的位率(碼率)也越大灰嫉,但并不總是如此.所謂“合理的范圍”指的是,如果低于這個(gè)范圍嗓奢,圖像質(zhì)量看起來(lái)會(huì)變得不可接受讼撒;如果高于這個(gè)范圍,則顯得沒(méi)有必要,對(duì)于網(wǎng)絡(luò)資源以及存儲(chǔ)資源來(lái)說(shuō)是一種浪費(fèi)根盒。
2钳幅、場(chǎng)景
監(jiān)控的場(chǎng)景是設(shè)置碼率時(shí)要考慮的第二個(gè)因素。在視頻監(jiān)控中炎滞,==圖像的運(yùn)動(dòng)劇烈程度還與位率有一定的關(guān)系敢艰,運(yùn)動(dòng)越劇烈,編碼所要求的碼率就越高==册赛。反之則越低钠导。因此在同樣的圖像分辨率條件下,監(jiān)控人多的場(chǎng)景和人少的場(chǎng)景森瘪,所要求的位率也是不同的牡属。
3、存儲(chǔ)空間
最后需要考量的因素是存儲(chǔ)空間扼睬,這個(gè)因素主要是決定了錄像系統(tǒng)的成本逮栅。==位率設(shè)置得越高,畫質(zhì)相對(duì)會(huì)越好窗宇,但所要求的存儲(chǔ)空間就越大==措伐。所以在工程實(shí)施中,設(shè)置合適的位率即可以保證良好的回放圖像質(zhì)量军俊,又可以避免不必要的資源浪費(fèi)侥加。
2、位率類型
位率類型又稱為碼率類型蝇完,共有兩種——?jiǎng)討B(tài)碼率(VBR)和固定碼率(CBR)官硝。
動(dòng)態(tài)碼率是指編碼器在對(duì)圖像進(jìn)行壓縮編碼的過(guò)程中,根據(jù)圖像的狀況實(shí)時(shí)調(diào)整碼率高低的過(guò)程短蜕,例如當(dāng)圖像中沒(méi)有物體在移動(dòng)時(shí)氢架,編碼器自動(dòng)將碼率調(diào)整到一個(gè)較低的值。但當(dāng)圖像中開始有物體移動(dòng)時(shí)朋魔,編碼器又自動(dòng)將碼率調(diào)整到一個(gè)較高的值岖研,并且實(shí)時(shí)根據(jù)運(yùn)動(dòng)的劇烈程度進(jìn)行調(diào)整。這種方式是一種==圖像質(zhì)量不變警检,數(shù)據(jù)量變化的編碼模式==孙援。在動(dòng)態(tài)碼率模式下,我們?cè)谟脖P錄像機(jī)上設(shè)置的位率值稱為“位率上限”扇雕。意思是我們?nèi)藶樵O(shè)定一個(gè)編碼碼率變化的上限拓售,可以低于,但不能高于镶奉。根據(jù)這個(gè)位率值础淤,我們可以估算出一定時(shí)間內(nèi)的存儲(chǔ)容量的上限值崭放。
固定碼率是指編碼器在對(duì)圖像進(jìn)行編碼的過(guò)程中,自始至終采用一個(gè)固定的碼率值鸽凶,不論圖像情況如何變化币砂。這種方式是==碼率量不變,而圖像質(zhì)量變化的編碼模式==玻侥。在固定碼率模式下决摧,在硬盤錄像機(jī)上設(shè)置的位率值就是編碼時(shí)所使用的位率值,根據(jù)這個(gè)數(shù)值凑兰,我們可以精確地估算出一定時(shí)間內(nèi)的存儲(chǔ)容量掌桩。
量化參數(shù):QP(quantizer parameter)
介于0~31之間,值越小票摇,量化越精細(xì)拘鞋,圖像質(zhì)量就越高,而產(chǎn)生的碼流也越長(zhǎng)矢门。
峰值信噪比:PSNR(Peak signal-to-noise ratio)
允許計(jì)算峰值信噪比盆色,編碼結(jié)束后在屏幕上顯示PSNR計(jì)算結(jié)果。開啟與否與輸出的視頻質(zhì)量無(wú)關(guān)祟剔,關(guān)閉后會(huì)帶來(lái)微小的速度提升隔躲。
profile level
分別是BP、EP物延、MP宣旱、HP:
1、==BP-Baseline Profile==:基本畫質(zhì)叛薯。支持I/P 幀浑吟,只支持無(wú)交錯(cuò)(Progressive)和CAVLC;
2耗溜、==EP-Extended profile==:進(jìn)階畫質(zhì)组力。支持I/P/B/SP/SI 幀,只支持無(wú)交錯(cuò)(Progressive)和CAVLC抖拴;
3燎字、==MP-Main profile==:主流畫質(zhì)。提供I/P/B 幀阿宅,支持無(wú)交錯(cuò)(Progressive)和交錯(cuò)(Interlaced)候衍,也支持CAVLC 和CABAC 的支持;
4洒放、==HP-High profile==:高級(jí)畫質(zhì)蛉鹿。在main Profile 的基礎(chǔ)上增加了8x8內(nèi)部預(yù)測(cè)、自定義量化往湿、無(wú)損視頻編碼和更多的YUV 格式妖异;
詳細(xì)點(diǎn)擊:profile level
H.264三種檔次
每個(gè)檔次支持一組特定的編碼功能惨好,并支持一類特定的應(yīng)用。
1)==基本檔次==:利用I片和P片支持幀內(nèi)和幀間編碼随闺,支持利用基于上下文的自適應(yīng)的變長(zhǎng)編碼進(jìn)行的熵編碼(CAVLC)。主要用于可視電話蔓腐、會(huì)議電視矩乐、無(wú)線通信等實(shí)時(shí)視頻通信;
2)==主要檔次==:支持隔行視頻回论,采用B片的幀間編碼和采用加權(quán)預(yù)測(cè)的幀內(nèi)編碼散罕;支持利用基于上下文的自適應(yīng)的算術(shù)編碼(CABAC)。主要用于數(shù)字廣播電視與數(shù)字視頻存儲(chǔ)傀蓉;
3)==擴(kuò)展檔次==:支持碼流之間有效的切換(SP和SI片)欧漱、改進(jìn)誤碼性能(數(shù)據(jù)分割),但不支持隔行視頻和CABAC葬燎。主要用于網(wǎng)絡(luò)的視頻流误甚,如視頻點(diǎn)播。
主碼流/副碼流
主碼流位率高谱净,圖像質(zhì)量高窑邦,便于本地存儲(chǔ);副碼流位率低壕探,圖像質(zhì)量低冈钦,便于網(wǎng)絡(luò)傳輸。
十三李请、音視頻的同步
上面說(shuō)了視頻幀瞧筛、DTS、PTS 相關(guān)的概念导盅。我們都知道在一個(gè)媒體流中较幌,除了視頻以外,通常還包括音頻认轨。音頻的播放绅络,也有 DTS、PTS 的概念嘁字,==但是音頻沒(méi)有類似視頻中 B 幀恩急,不需要雙向預(yù)測(cè),所以音頻幀的 DTS纪蜒、PTS 順序是一致的==衷恭。
音頻視頻混合在一起播放,就呈現(xiàn)了我們常炒啃看到的廣義的視頻随珠。在音視頻一起播放的時(shí)候灭袁,我們通常需要面臨一個(gè)問(wèn)題:怎么去同步它們,以免出現(xiàn)畫不對(duì)聲的情況窗看。
**要實(shí)現(xiàn)音視頻同步茸歧,通常需要選擇一個(gè)==參考時(shí)鐘==,參考時(shí)鐘上的時(shí)間是線性遞增的显沈,編碼音視頻流時(shí)依據(jù)參考時(shí)鐘上的時(shí)間給每幀數(shù)據(jù)打上時(shí)間戳软瞎。在播放時(shí),讀取數(shù)據(jù)幀上的時(shí)間戳拉讯,同時(shí)參考當(dāng)前參考時(shí)鐘上的時(shí)間來(lái)安排播放涤浇。這里的說(shuō)的時(shí)間戳就是我們前面說(shuō)的 PTS。實(shí)踐中魔慷,我們可以選擇:同步視頻到音頻只锭、同步音頻到視頻、同步音頻和視頻到外部時(shí)鐘院尔。