黃金幀編解碼器實(shí)現(xiàn)高質(zhì)量實(shí)時網(wǎng)絡(luò)視頻
豎:平均峰值信噪比 (分貝)橫:數(shù)據(jù)率 (每秒千比特)
圖4:采用與不采用黃金幀的移動及日歷的峰值信噪比 (PSNR) 之對比
實(shí)時質(zhì)量
在最簡單的模式下,On2 VP7編碼器使用的周期數(shù)只比解碼器多 30%,但仍然保持出色的質(zhì)量。當(dāng)有大量可用周期時,實(shí)時 VP7 更能夠產(chǎn)生媲美最佳離線編碼的質(zhì)量。而且,這是自動實(shí)現(xiàn)的:VP7 乘以每一個編碼幀,并自動調(diào)節(jié)其復(fù)雜性,以確保盡可能利用可用周期來獲得最佳質(zhì)量。
能夠達(dá)到這樣,是因?yàn)?TrueMotion VP7 采用了一套自適應(yīng)算法 (adaptive algorithms) 和探試性 (heuristics) 方法。這些算法決定哪些運(yùn)動向量和模式最可能產(chǎn)生最佳結(jié)果。工作良好的模式和運(yùn)動向量會被探試得更頻繁,而無法產(chǎn)生好結(jié)果的模式則被完全關(guān)閉、或被禁止到這個在所有模式下的誤差超過了一個自適應(yīng)閾值。這些閾值和兩次調(diào)節(jié)間的周期也都是自適應(yīng)的。當(dāng)VP7的壓縮速度足夠快時,閾值和探試周期增加。當(dāng)VP7工作順利時,對模式的探試便更頻繁。
在VP7擁有多余時間的極端情況下,它會回復(fù)到最低和最佳模式,甚至回到允許完全搜索和速率失真優(yōu)化的某一點(diǎn)。在相反的極端情況下,VP7 可能在整個幀上只進(jìn)行5或6次運(yùn)動搜索,而每個宏模塊 (macroblock) 只檢查2或3個不同模式,就會產(chǎn)生結(jié)果。
實(shí)時模式
為了確保靜態(tài)相機(jī)的視頻會議具有出色的實(shí)時模式,On2 VP7 充分利用了預(yù)測有時是接近完美的這項(xiàng)特點(diǎn)。如果VP7 (通過運(yùn)動或模式搜索) 發(fā)現(xiàn)預(yù)測器與它將進(jìn)行編碼的原始幀非常匹配,它會避免進(jìn)行大量工作。在這種情況下,VP7放棄了正向變換、量化、令牌化(tokenization)、逆量化、逆向變換和重組代碼等操作。唯一需要保留的是在比特流中加入一套代表所有0的令牌 (token),并直接把預(yù)測器拷貝到幀緩沖器中。如果這種情況時常發(fā)生,編碼器實(shí)際上比解碼器運(yùn)行得快,故無法縮短從比特流讀取令牌的時間。
這種技術(shù)可能對感知視頻流質(zhì)量有重大的影響。它可通過忽略較小的變化 (由相機(jī)噪聲引起的波動) 來消除背景噪聲。另外,它讓編碼器把所有可用周期都集中用在包含顯著變化 (移動的部分) 的小部分視頻屏幕上。因此,觀者最關(guān)心的圖像部分,亦即發(fā)言者的面孔,將獲得最多的周期。
解碼器的復(fù)雜度
為了確保解碼速度,On2 VP7比特流采用了一種創(chuàng)新性的簡單設(shè)計。
象其它編解碼器一樣,VP7也采用了一個環(huán)內(nèi)去塊效應(yīng)濾波器 (一般稱為環(huán)路濾波器),以解決模塊邊緣的方塊效應(yīng)問題。這種方案在模塊邊界上運(yùn)用了一個自適應(yīng)的一維 (one-dimensional) 模糊/低通濾波器。VP7 的濾波器可在字符算法中單獨(dú)工作,任何可能溢出 (超出字符邊界0-255) 的中間操作都會被鉗位。這就確保了 SIMD 指令使用的最大寬度,并意味著,如果一個處理器能支持64位SIMD,則VP7的環(huán)路濾波器比相同的C操作快了將近8倍。
On2 VP7 的預(yù)測濾波器比許多其它編解碼器簡單。預(yù)測器總是由單一幀創(chuàng)建,而且在正向和后向參考幀之間絕沒有插補(bǔ)。如果使用了任何亞像素運(yùn)動,則可在該單一幀上運(yùn)用單階濾波器來完成。
簡化的熵邏輯
On2 VP7還采用了一種比其它先進(jìn)編解碼器更簡單的熵 (entropy) 編碼技術(shù)。熵解碼包含了簡單的字符算法,可利用乘法或幾種查找算法進(jìn)行計算。雖然VP7使用了精密的自適應(yīng)內(nèi)容建模技術(shù),但若每一比特位都根據(jù)比特流進(jìn)行解析,則不適合。
靈活的解碼實(shí)現(xiàn)方案
On2 VP7的比特流劃分方法在構(gòu)建快速解碼器時保留了許多選項(xiàng)。所有模式和運(yùn)動向量信息都存儲在一個子流中;所有剩余信息則被存儲在另一個單獨(dú)的子流中。創(chuàng)建整個預(yù)測幀的工作可被分離出來,在處理器的一個單獨(dú)內(nèi)核上運(yùn)行,而該處理器會分析和產(chǎn)生剩余信息供稍后重組之用?;蛘?,VP7 解碼器可采用較傳統(tǒng)的運(yùn)行方法,一次處理一個宏模塊,從一個子流中取出單個模式和運(yùn)動向量,然后從另一個子流的該宏模塊中取出剩余信息。兩個極端選擇之間可進(jìn)行折衷,以確保低數(shù)據(jù)率和低指令緩存失效率。
總結(jié)
由于On2的VP7 專有壓縮技術(shù)具有種種優(yōu)勢,因此獲得了市場的廣泛采納。黃金幀、出色的實(shí)時質(zhì)量和解碼器的簡易性,都讓On2 VP7成為目前網(wǎng)絡(luò)視頻及未來可能應(yīng)用的理想選擇。
評論