在某個層面上,On2 科技有限公司 (On2 Technologies) 的 TrueMotion VP7 技術實現這一目標的方式與其它視頻編解碼器幾乎相同。不過,On2 的VP7技術卻包含了多項使其與眾不同、脫穎而出的創新性技術,而且這些技術目前正在申請專利。
黃金幀 (Golden Frame)
對 On2 TrueMotion 編解碼器的新用戶而言,最令人驚喜的功能之一是黃金幀。就象其它壓縮器一樣,TrueMotion 也保留一個最新解壓的幀作為當前幀的預測器。TrueMotion 編解碼器和 VP7 則特別改為保留過去任意一個解壓數據的幀。這種編解碼器能夠更新某個幀在未來任一點的任何部分。我們稱這種二級參考幀為黃金幀,并已發掘出它的眾多用途。
數據在網絡上是以很小的稱為幀(Frame)的單位傳輸的,幀由幾部分組成,不同的部分執行不同的功能。幀通過特定的稱為網絡驅動程序的軟件進行成型,然后通過網卡發送到網線上,通過網線到達它們的目的機器,在目的機器的一端執行相反的過程。接收端機器的以太網卡捕獲到這些幀,并告訴操作系統幀已到達,然后對其進行存儲。就是在這個傳輸和接收的過程中,嗅探器會帶來安全方面的問題 。
?
圖1:On2 VP7的幀類型
幀--就是影像動畫中最小單位的單幅影像畫面,相當于電影膠片上的每一格鏡頭。 一幀就是一副靜止的畫面,連續的幀就形成動畫,如電視圖象等。 我們通常說幀數,簡單地說,就是在1秒鐘時間里傳輸的圖片的幀數,也可以理解為圖形處理器每秒鐘能夠刷新幾次,通常用fps(Frames Per Second)表示。每一幀都是靜止的圖象,快速連續地顯示幀便形成了運動的假象。高的幀率可以得到更流暢、更逼真的動畫。每秒鐘幀數 (fps) 愈多,所顯示的動作就會愈流暢。 關鍵幀--任何動畫要表現運動或變化,至少前后要給出兩個不同的關鍵狀態,而中間狀態的變化和銜接電腦可以自動完成,在Flash中,表示關鍵狀態的幀叫做關鍵幀。
注:這些幀類型僅供參考。利用 VP7 入門開發工具包,用戶可以準確控制幀何時使用或更新黃金幀或最后的幀參考緩沖器。
前景影響大
我們發現黃金幀的第一個用途是前景和背景視頻的分割。例如,大多數視頻會議應用中,總是有一個人在靜態的背景前面講話。這個發言人遮蔽了背景,但隨著他在座位上的移動,會顯露出局部背景。TrueMotion編解碼器利用非移動的高質模塊來更新黃金幀,即使前景快速移動,也可以保持高質量的背景圖像。
丟包恢復
我們還可以在丟包情況下采用黃金幀。在一般的視頻會議系統中,接收器在發現丟包時,會用信號通知發送者。發送者一接收到這個信號,就會對一個獨立于前面各幀的幀 (即‘關鍵幀’) 進行編碼來恢復。該幀由于必須從頭開始編碼,故往往非常大,這會導致視頻的播放斷斷續續。另一種情況是,這是一個低質量的幀,看起來比周邊的幀要模糊,而且產生視覺干擾脈沖。
VP7恢復幀
幀0是關鍵幀
幀1到6都只根據前一個幀來構建預測器
幀7只以幀0為參考
即使幀1到6中的任一個丟失了,VP7仍然能夠對幀7進行解碼,因為它只以幀0為參考
圖2:利用恢復幀來處理丟包問題
視頻會議
電視會議是用電視和電話在兩個或多個地點的用戶之間舉行會議,實時傳送聲音、圖像的通信方式。它同時還可以附加靜止圖像、文件、傳真等信號的傳送。參加電視會議的人,可以通過電視發表意見,同時觀察對方的形象、動作、表情等,并能出示實物、圖紙、文件等實拍的電視圖像或者顯示在黑板、白板上寫的字和畫的圖,使在不財點參加會議的人感到如同和對方進行“面對面”的交談,在效果上可以代替現場舉行的會議。
多方視頻會議也可以采用黃金幀。在多方會議系統中,各個用戶的連接帶寬都不同。一般的解決方案是把帶寬減小到一個假定的最小公分母:所有用戶都以最慢的連接都能接收的速度來收取數據。
基于On2 VP7技術的系統則采用了一種新穎的替代方案。通過使用黃金幀、普通幀和可拋棄幀,VP7 可獲得四個級別的有限時間可調性。這意味著我們可以根據每一方的需要生成不同的比特流 (參見圖3)。這樣,會議中的高清方就不會受到較低速連接的影響。最重要的是,這種方案無需額外的CPU成本。
圖3:采樣時間可調性模式和On2 VP7
每一個比特流都需要較低的幀速率來解碼。因此,帶寬最低的用戶可以接收 5 fps 的比特流;而帶寬最大的用戶可接收全 30fps。
黃金質量
On2 VP7技術還利用黃金幀來提高質量。在極緩慢地移動的鏡頭或變焦中,一個周期性的高質量黃金幀會恢復在重復應用環路濾波器或亞像素運動 (sub-pixel motion) 時所丟失的細節,從而保持圖像的質量,而結果可以相當明顯 (見圖4)。在另一些情況下,黃金幀還可作為一個良好的預測器,預測屏幕上的某些圖像何時返回到先前的位置。
豎:平均峰值信噪比 (分貝) 橫:數據率 (每秒千比特)
圖4:采用與不采用黃金幀的移動及日歷的峰值信噪比 (PSNR) 之對比
實時質量
在最簡單的模式下,On2 VP7編碼器使用的周期數只比解碼器多 30%,但仍然保持出色的質量。當有大量可用周期時,實時 VP7 更能夠產生媲美最佳離線編碼的質量。而且,這是自動實現的:VP7 乘以每一個編碼幀,并自動調節其復雜性,以確保盡可能利用可用周期來獲得最佳質量。
能夠達到這樣,是因為 TrueMotion VP7 采用了一套自適應算法 (adaptive algorithms) 和探試性 (heuristics) 方法。這些算法決定哪些運動向量和模式最可能產生最佳結果。當VP7工作順利時,對模式的探試便更頻繁。
在VP7擁有多余時間的極端情況下,它會回復到最低和最佳模式,甚至回到允許完全搜索和速率失真優化的某一點。在相反的極端情況下,VP7 可能在整個幀上只進行5或6次運動搜索,而每個宏模塊 (macroblock) 只檢查2或3個不同模式,就會產生結果。
實時模式
為了確保靜態相機的視頻會議具有出色的實時模式,On2 VP7 充分利用了預測有時是接近完美的這項特點。如果VP7 (通過運動或模式搜索) 發現預測器與它將進行編碼的原始幀非常匹配,它會避免進行大量工作。在這種情況下,VP7放棄了正向變換、量化、令牌化(tokenization)、逆量化、逆向變換和重組代碼等操作。唯一需要保留的是在比特流中加入一套代表所有0的令牌 (token),并直接把預測器拷貝到幀緩沖器中。如果這種情況時常發生,編碼器實際上比解碼器運行得快,故無法縮短從比特流讀取令牌的時間。
這種技術可能對感知視頻流質量有重大的影響。它可通過忽略較小的變化 (由相機噪聲引起的波動) 來消除背景噪聲。另外,它讓編碼器把所有可用周期都集中用在包含顯著變化 (移動的部分) 的小部分視頻屏幕上。因此,觀者最關心的圖像部分,亦即發言者的面孔,將獲得最多的周期。
解碼器的復雜度
解碼器是一個重要前端控制設備。在主機的控制下,可使前端設備產生相應的動作。解碼器,國外稱其為接收器/驅動器(Receiver/Driver)或遙控設備(Telemetry),是為帶有云臺、變焦鏡頭等可控設備提供驅動電源并與控制設備如矩陣進解碼器(Decoder)行通訊的前端設備。通常,解碼器可以控制云臺的上、下、左、右旋轉,變焦鏡頭的變焦、聚焦、光圈以及對防護罩雨刷器、攝像機電源、燈光等設備的控制,還可以提供若干個輔助功能開關,以滿足不同用戶的實際需要。高檔次的解碼器還帶有預置位和巡游功能
為了確保解碼速度,On2 VP7比特流采用了一種創新性的簡單設計。
象其它編解碼器一樣,VP7也采用了一個環內去塊效應濾波器 (一般稱為環路濾波器),以解決模塊邊緣的方塊效應問題。這種方案在模塊邊界上運用了一個自適應的一維 (one-dimensional) 模糊/低通濾波器。VP7 的濾波器可在字符算法中單獨工作,任何可能溢出 (超出字符邊界0-255) 的中間操作都會被鉗位。這就確保了 SIMD 指令使用的最大寬度,并意味著,如果一個處理器能支持64位SIMD,則VP7的環路濾波器比相同的C操作快了將近8倍。
On2 VP7 的預測濾波器比許多其它編解碼器簡單。預測器總是由單一幀創建,而且在正向和后向參考幀之間絕沒有插補。如果使用了任何亞像素運動,則可在該單一幀上運用單階濾波器來完成。
簡化的熵邏輯
On2 VP7還采用了一種比其它先進編解碼器更簡單的熵 (entropy) 編碼技術。熵解碼包含了簡單的字符算法,可利用乘法或幾種查找算法進行計算。雖然VP7使用了精密的自適應內容建模技術,但若每一比特位都根據比特流進行解析,則不適合。
靈活的解碼實現方案
用特定方法把數碼還原成它所代表的內容或將電脈沖信號、光信號、無線電波等轉換成它所代表的信息、數據等的過程。解碼在無線電技術和通訊等方面廣泛應用。
On2 VP7的比特流劃分方法在構建快速解碼器時保留了許多選項。所有模式和運動向量信息都存儲在一個子流中;所有剩余信息則被存儲在另一個單獨的子流中。VP7 解碼器可采用較傳統的運行方法,一次處理一個宏模塊,從一個子流中取出單個模式和運動向量,然后從另一個子流的該宏模塊中取出剩余信息。兩個極端選擇之間可進行折衷,以確保低數據率和低指令緩存失效率。
總結
由于On2的VP7 專有壓縮技術具有種種優勢,因此獲得了市場的廣泛采納。黃金幀、出色的實時質量和解碼器的簡易性,都讓On2 VP7成為目前網絡視頻及未來可能應用的理想選擇。
?
評論
查看更多