<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 消費電子 > 設計應用 > 高質(zhì)量實(shí)時(shí)網(wǎng)絡(luò )視頻黃金幀編解碼器的實(shí)現

高質(zhì)量實(shí)時(shí)網(wǎng)絡(luò )視頻黃金幀編解碼器的實(shí)現

作者: 時(shí)間:2008-07-29 來(lái)源:網(wǎng)絡(luò ) 收藏

在某個(gè)層面上, 科技有限公司 ( Technologies) 的 TrueMotion VP7 技術(shù)實(shí)現這一目標的方式與其它編解碼器幾乎相同。它同樣采用運動(dòng)補償來(lái)消除時(shí)間冗余,采用基于頻率的模塊變換來(lái)消除空間冗余,采用一個(gè)環(huán)路濾波器來(lái)處理模塊變換的方塊效應,并采用熵編碼來(lái)消除統計相關(guān)性。不過(guò), 的VP7技術(shù)卻包含了多項使其與眾不同、脫穎而出的創(chuàng )新性技術(shù),而且這些技術(shù)目前正在申請專(zhuān)利。

(Golden Frame)

對 On2 TrueMotion 編解碼器的新用戶(hù)而言,最令人驚喜的功能之一是。就像其它壓縮器一樣,TrueMotion 也保留一個(gè)最新解壓的幀作為當前幀的預測器。目前的各種編解碼器中,有些保留最后幾個(gè)幀;有些則采用一個(gè)無(wú)序解壓的未來(lái)幀,然后用作預測器 (如在 B 幀之前傳輸 P 幀)。TrueMotion 編解碼器和 VP7 則特別改為保留過(guò)去任意一個(gè)解壓數據的幀。這種編解碼器能夠更新某個(gè)幀在未來(lái)任一點(diǎn)的任何部分。我們稱(chēng)這種二級參考幀為,并已發(fā)掘出它的眾多用途。



圖1:On2 VP7的幀類(lèi)型


注:這些幀類(lèi)型僅供參考。利用 VP7 入門(mén)開(kāi)發(fā)工具包,,用戶(hù)可以準確控制幀何時(shí)使用或更新黃金幀或最后的幀參考緩沖器。

前景影響大

我們發(fā)現黃金幀的第一個(gè)用途是前景和背景的分割。例如,大多數會(huì )議應用中,總是有一個(gè)人在靜態(tài)的背景前面講話(huà)。這個(gè)發(fā)言人遮蔽了背景,但隨著(zhù)他在座位上的移動(dòng),會(huì )顯露出局部背景。TrueMotion編解碼器利用非移動(dòng)的高質(zhì)模塊來(lái)更新黃金幀,即使前景快速移動(dòng),也可以保持高質(zhì)量的背景圖像。

丟包恢復

我們還可以在丟包情況下采用黃金幀。在一般的視頻會(huì )議系統中,接收器在發(fā)現丟包時(shí),會(huì )用信號通知發(fā)送者。發(fā)送者一接收到這個(gè)信號,就會(huì )對一個(gè)獨立于前面各幀的幀 (即‘關(guān)鍵幀’) 進(jìn)行編碼來(lái)恢復。該幀由于必須從頭開(kāi)始編碼,故往往非常大,這會(huì )導致視頻的播放斷斷續續。另一種情況是,這是一個(gè)低質(zhì)量的幀,看起來(lái)比周邊的幀要模糊,而且產(chǎn)生視覺(jué)干擾脈沖。

On2 的VP7視頻會(huì )議系統提供一個(gè)更好的選擇方案:發(fā)送者可以發(fā)送一個(gè)只涉及黃金幀的幀。我們稱(chēng)之為恢復幀。由于我們不必對幀從頭開(kāi)始編碼,因此可以獲得一個(gè)質(zhì)量更好而且更小的幀。

VP7恢復幀
幀0是關(guān)鍵幀
幀1到6都只根據前一個(gè)幀來(lái)構建預測器
幀7只以幀0為參考
即使幀1到6中的任何一個(gè)丟失了,VP7仍然能夠對幀7進(jìn)行解碼,因為它只以幀0為參考

圖2:利用恢復幀來(lái)處理丟包問(wèn)題

視頻會(huì )議

多方視頻會(huì )議也可以采用黃金幀。在多方會(huì )議系統中,各個(gè)用戶(hù)的連接帶寬都不同。一般的解決方案是把帶寬減小到一個(gè)假定的最小公分母:所有用戶(hù)都以最慢的連接都能接收的速度來(lái)收取數據。

基于On2 VP7技術(shù)的系統則采用了一種新穎的替代方案。通過(guò)使用黃金幀、普通幀和可拋棄幀,VP7 可獲得四個(gè)級別的有限時(shí)間可調性。這意味著(zhù)我們可以根據每一方的需要生成不同的比特流 (參見(jiàn)圖3)。這樣,會(huì )議中的高清方就不會(huì )受到較低速連接的影響。最重要的是,這種方案無(wú)需額外的CPU成本。



圖3:采樣時(shí)間可調性模式和On2 VP7

每一個(gè)比特流都需要較低的幀速率來(lái)解碼。因此,帶寬最低的用戶(hù)可以接收 5 fps 的比特流;而帶寬最大的用戶(hù)可接收全 30fps。

黃金質(zhì)量

On2 VP7技術(shù)還利用黃金幀來(lái)提高質(zhì)量。在極緩慢地移動(dòng)的鏡頭或變焦中,一個(gè)周期性的高質(zhì)量黃金幀會(huì )恢復在重復應用環(huán)路濾波器或亞像素運動(dòng) (sub-pixel motion) 時(shí)所丟失的細節,從而保持圖像的質(zhì)量,而結果可以相當明顯 (見(jiàn)圖4)。在另一些情況下,黃金幀還可作為一個(gè)良好的預測器,預測屏幕上的某些圖像何時(shí)返回到先前的位置。

豎:平均峰值信噪比 (分貝) 橫:數據率 (每秒千比特)

圖4:采用與不采用黃金幀的移動(dòng)及日歷的峰值信噪比 (PSNR) 之對比

實(shí)時(shí)質(zhì)量

在最簡(jiǎn)單的模式下,On2 VP7編碼器使用的周期數只比解碼器多 30%,但仍然保持出色的質(zhì)量。當有大量可用周期時(shí),實(shí)時(shí) VP7 更能夠產(chǎn)生媲美最佳離線(xiàn)編碼的質(zhì)量。而且,這是自動(dòng)實(shí)現的:VP7 乘以每一個(gè)編碼幀,并自動(dòng)調節其復雜性,以確保盡可能利用可用周期來(lái)獲得最佳質(zhì)量。

能夠達到這樣,是因為 TrueMotion VP7 采用了一套自適應算法 (adaptive algorithms) 和探試性 (heuristics) 方法。這些算法決定哪些運動(dòng)向量和模式最可能產(chǎn)生最佳結果。工作良好的模式和運動(dòng)向量會(huì )被探試得更頻繁,而無(wú)法產(chǎn)生好結果的模式則被完全關(guān)閉、或被禁止到這個(gè)在所有模式下的誤差超過(guò)了一個(gè)自適應閾值。這些閾值和兩次調節間的周期也都是自適應的。當VP7的壓縮速度足夠快時(shí),閾值和探試周期增加。當VP7工作順利時(shí),對模式的探試便更頻繁。

在VP7擁有多余時(shí)間的極端情況下,它會(huì )回復到最低和最佳模式,甚至回到允許完全搜索和速率失真優(yōu)化的某一點(diǎn)。在相反的極端情況下,VP7 可能在整個(gè)幀上只進(jìn)行5或6次運動(dòng)搜索,而每個(gè)宏模塊 (macroblock) 只檢查2或3個(gè)不同模式,就會(huì )產(chǎn)生結果。

實(shí)時(shí)模式

為了確保靜態(tài)相機的視頻會(huì )議具有出色的實(shí)時(shí)模式,On2 VP7 充分利用了預測有時(shí)是接近完美的這項特點(diǎn)。如果VP7 (通過(guò)運動(dòng)或模式搜索) 發(fā)現預測器與它將進(jìn)行編碼的原始幀非常匹配,它會(huì )避免進(jìn)行大量工作。在這種情況下,VP7放棄了正向變換、量化、令牌化(tokenization)、逆量化、逆向變換和重組代碼等操作。唯一需要保留的是在比特流中加入一套代表所有0的令牌 (token),并直接把預測器拷貝到幀緩沖器中。如果這種情況時(shí)常發(fā)生,編碼器實(shí)際上比解碼器運行得快,故無(wú)法縮短從比特流讀取令牌的時(shí)間。

這種技術(shù)可能對感知視頻流質(zhì)量有重大的影響。它可通過(guò)忽略較小的變化 (由相機噪聲引起的波動(dòng)) 來(lái)消除背景噪聲。另外,它讓編碼器把所有可用周期都集中用在包含顯著(zhù)變化 (移動(dòng)的部分) 的小部分視頻屏幕上。因此,觀(guān)者最關(guān)心的圖像部分,亦即發(fā)言者的面孔,將獲得最多的周期。

解碼器的復雜度

為了確保解碼速度,On2 VP7比特流采用了一種創(chuàng )新性的簡(jiǎn)單設計。

像其它編解碼器一樣,VP7也采用了一個(gè)環(huán)內去塊效應濾波器 (一般稱(chēng)為環(huán)路濾波器),以解決模塊邊緣的方塊效應問(wèn)題。這種方案在模塊邊界上運用了一個(gè)自適應的一維 (one-dimensional) 模糊/低通濾波器。VP7 的濾波器可在字符算法中單獨工作,任何可能溢出 (超出字符邊界0-255) 的中間操作都會(huì )被鉗位。這就確保了 SIMD 指令使用的最大寬度,并意味著(zhù),如果一個(gè)處理器能支持64位SIMD,則VP7的環(huán)路濾波器比相同的C操作快了將近8倍。

On2 VP7 的預測濾波器比許多其它編解碼器簡(jiǎn)單。預測器總是由單一幀創(chuàng )建,而且在正向和后向參考幀之間絕沒(méi)有插補。如果使用了任何亞像素運動(dòng),則可在該單一幀上運用單階濾波器來(lái)完成。

簡(jiǎn)化的熵邏輯

On2 VP7還采用了一種比其它先進(jìn)編解碼器更簡(jiǎn)單的熵 (entropy) 編碼技術(shù)。熵解碼包含了簡(jiǎn)單的字符算法,可利用乘法或幾種查找算法進(jìn)行計算。雖然VP7使用了精密的自適應內容建模技術(shù),但若每一比特位都根據比特流進(jìn)行解析,則不適合。

靈活的解碼實(shí)現方案

On2 VP7的比特流劃分方法在構建快速解碼器時(shí)保留了許多選項。所有模式和運動(dòng)向量信息都存儲在一個(gè)子流中;所有剩余信息則被存儲在另一個(gè)單獨的子流中。創(chuàng )建整個(gè)預測幀的工作可被分離出來(lái),在處理器的一個(gè)單獨內核上運行,而該處理器會(huì )分析和產(chǎn)生剩余信息供稍后重組之用?;蛘?,VP7 解碼器可采用較傳統的運行方法,一次處理一個(gè)宏模塊,從一個(gè)子流中取出單個(gè)模式和運動(dòng)向量,然后從另一個(gè)子流的該宏模塊中取出剩余信息。兩個(gè)極端選擇之間可進(jìn)行折衷,以確保低數據率和低指令緩存失效率。

總結

由于On2的VP7 專(zhuān)有壓縮技術(shù)具有種種優(yōu)勢,因此獲得了市場(chǎng)的廣泛采納。黃金幀、出色的實(shí)時(shí)質(zhì)量和解碼器的簡(jiǎn)易性,都讓On2 VP7成為目前網(wǎng)絡(luò )視頻及未來(lái)可能應用的理想選擇。




關(guān)鍵詞: On2 黃金幀 視頻

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>