依靠視頻預或后處理實(shí)現高清多媒體設計
Steve Leibson 2010/01/19
消費類(lèi)視頻應用如今正在經(jīng)歷爆炸性的增長(cháng),可以提供逼真圖像并允許用戶(hù)根據不同顯示設備調整畫(huà)面的數字視頻壓縮技術(shù)正是這種增長(cháng)的幕后推手。數字視頻技術(shù)的流行使得沉寂多年的電視市場(chǎng)再度活躍起來(lái),視頻產(chǎn)品再次成為了消費電子領(lǐng)域的熱門(mén)商品。隨之而來(lái)的,如何借助視頻增強技術(shù)來(lái)進(jìn)行產(chǎn)品差異化就變得異常重要。視頻產(chǎn)品的差異化
高清數字視頻編解碼算法的標準化確保了不同產(chǎn)品之間的協(xié)同工作能力,標準編碼器的輸出必須能夠被所有標準解碼器解碼。因此在編解碼算法上沒(méi)有太多的差異化空間。這對于終端產(chǎn)品設計者來(lái)說(shuō)有好處,因為它利于芯片設計人員針對算法作出非常高效的設計;而對于那些希望自己的產(chǎn)品與眾不同的設計者來(lái)說(shuō),則是個(gè)缺點(diǎn)。好在用于提高圖像質(zhì)量和色彩還原能力的視頻預處理和后處理模塊提供了產(chǎn)品差異化的機會(huì ),同時(shí)也對產(chǎn)品的可編程性提出了要求。
視頻預處理算法
毫無(wú)疑問(wèn)的,視頻流不會(huì )以來(lái)自傳感器的初始狀態(tài)傳輸,在進(jìn)行編碼之前,會(huì )對原始碼流進(jìn)行一系列的變換處理。主要的預處理操作包括:
像素掃描/數據傳輸:這一步操作只是簡(jiǎn)單的從傳感器得到圖像。
拜爾格式解交織:現代視頻圖像技術(shù)用三色RGB拜爾濾波器替代了單色的圖像傳感器,因此來(lái)自傳感器的數據流包括了紅、綠、藍的顏色信息。這些信息被分離后,變換為YCbCr的亮度與色度信息來(lái)表示圖像。
噪聲濾波:電子世界中總是會(huì )有噪聲存在,而降低或消除噪聲的最佳階段是在進(jìn)行編碼之前。
抖動(dòng)檢測與補償:抖動(dòng)檢測與補償可以減小因相機抖動(dòng)造成的圖像質(zhì)量下降。
局部動(dòng)態(tài)范圍補償–在特定的模式下,圖像的動(dòng)態(tài)范圍可能會(huì )超出傳感器的極限。而照相機或攝像機應該具備智能調整曝光量從而擴展傳感器基本動(dòng)態(tài)范圍的功能。
對焦調整(銳化):圖像傳感器無(wú)法捕獲連續的圖像信息。它們將圖像分解為一個(gè)個(gè)像素,然后根據不同的分辨率在像素間進(jìn)行插值并重新組合成新的圖像。這種操作會(huì )導致圖像銳度的下降,但通過(guò)適當的預處理算法是可以糾正的。除此之外,銳化算法還可以使由于鏡頭原因輕微跑焦的圖像看起來(lái)更銳利。
顏色校正:不同色溫下的白光是有所不同的,這會(huì )影響到最終獲取的圖像。除此之外,不同的顯示設備處理顏色的方法也不一樣。視頻系統中的顏色校正補償功能可以糾正顏色偏移,特別是皮膚色調的偏移
人臉識別:在人物眾多的圖像中,拍攝者通常希望圖像聚焦在人物的面部。照相機和攝像機的一個(gè)重要功能就是能夠識別人臉并自動(dòng)對焦。
立體圖像:根據平面圖像的密度信息來(lái)構建立體圖像,這種預處理常用在融合了虛擬和真實(shí)圖像的混合現實(shí)系統中。
圖: 四種預處理算法示例:噪聲濾波、抖動(dòng)檢測與補償、動(dòng)態(tài)范圍補償和顏色校正。
視頻后處理算法
從標準視頻解碼器得到的圖像并非完美無(wú)缺,視頻后處理算法可以大大提高圖像的質(zhì)量,提高最終產(chǎn)品的附加值。視頻后處理算法包括:
解塊/解環(huán)路濾波器:在視頻壓縮和解壓縮過(guò)程中會(huì )把圖像分成小塊,分別進(jìn)行編碼,解碼時(shí)再把這些塊組合成完整的圖像。這種操作是有損的,而解塊/去振鈴濾波器可以降低其對圖像造成的影響。
邊界檢測:邊界檢測算法用于縮放,解交織以及其他一些視頻處理操作。除此之外,在安保,視頻監視,交通管理和醫學(xué)圖像處理領(lǐng)域也起著(zhù)重要作用。
圖像縮放:從掛在墻上的平板電視到拿在手中的移動(dòng)電話(huà),視頻設備的屏幕大小千差萬(wàn)別,這使得編碼后的視頻流尺寸和播放設備的屏幕尺寸多有不同。圖像縮放算法可以調整視頻流的尺寸以適應播放設備的屏幕。
解交織:視頻交織是為了在電視屏幕上顯示設計的,每一幅交織視頻圖像顯示為兩個(gè)連續的畫(huà)面,每個(gè)畫(huà)面包括了奇數或偶數條狀視頻線(xiàn),這樣交替的每個(gè)畫(huà)面包含了對應圖像的一半視頻線(xiàn)。但是在電腦屏幕或液晶電視上顯示時(shí),每個(gè)畫(huà)面都需要顯示對應圖像的所有視頻線(xiàn),這時(shí)交織視頻在顯示前就必須進(jìn)行解交織處理。
幀率轉換:在解碼后的各幀圖像間插值以提高視頻幀率的方法可以增強運動(dòng)圖像的平滑度。這種能力對于高端的120fps視頻和24fps電影視頻的轉換都非常重要。
噪聲濾波:噪聲會(huì )使視頻圖像的質(zhì)量下降。而各種噪聲濾波算法可以改善圖像質(zhì)量。
視頻覆蓋/透明效果:許多視頻系統都會(huì )在播放視頻的同時(shí)覆蓋顯示用戶(hù)界面。
色彩空間轉換/亮度/對比度/伽馬校正:不同的顯示設備有不同的動(dòng)態(tài)范圍,對顏色的處理也不相同(不同的顏色傳輸函數)。如果知道相應的參數,就可以選擇適當的視頻后處理算法。對于液晶顯示來(lái)說(shuō)伽馬校正非常重要因為每個(gè)液晶面板都有獨特的傳輸函數。
圖: 四種后處理算法示例:解塊和去振鈴、邊界檢測、圖像縮放和解交織。
視頻預處理和后處理算法的實(shí)現
與視頻編解碼算法不同,預處理和后處理算法并沒(méi)有統一的標準,各個(gè)產(chǎn)品采用的算法是不同的。此外,原有算法會(huì )不斷升級,新的算法也會(huì )不斷涌現,這些都要求預/后處理算法的硬件具有更高的可編程能力,因此專(zhuān)門(mén)針對這些算法優(yōu)化過(guò)的可配置處理器是一個(gè)不錯的解決方案。
你可能并不熟悉可配置處理器的概念,但你一定對固定指令集架構處理器有所了解,自片上系統誕生之日起就在使用它們。固定指令集架構處理器延續了自1971年Intel發(fā)明業(yè)界第一顆商用單片處理器4004以來(lái)一直使用標準處理器架構的傳統。SOC的出現(其實(shí)就是內置處理器的ASIC)在90年代中期改變了微處理器的傳統架構。既然用戶(hù)可以根據特定應用定制硅片,那么同樣也可以定制片上的處理器。但是過(guò)去由于缺乏專(zhuān)門(mén)的處理器設計人員和開(kāi)發(fā)維護軟件工具鏈的昂貴費用,定制處理器一直未能實(shí)現。
如今,自動(dòng)化工具已經(jīng)可以幫助邏輯設計和軟件開(kāi)發(fā)人員針對特定的任務(wù)來(lái)定制處理器,而不需要專(zhuān)門(mén)的處理器設計者參與了。由于增加了新的指令和寄存器以及將多條指令合并成單條指令,優(yōu)化后的定制處理器實(shí)現目標算法的性能比通用處理器和DSP要高得多。因此,開(kāi)發(fā)一個(gè)視頻專(zhuān)用處理器來(lái)加速各種視頻預/后處理算法就順理成章了。有很多方法來(lái)實(shí)現視頻算法,這里提到的辦法很簡(jiǎn)單:用C語(yǔ)言來(lái)描述算法,在處理器上編譯運行并進(jìn)行性能分析,接下來(lái)就可以看到在不同處理器架構上的性能差異了。
表1列出了采用上述方法針對5種不同的視頻算法分別在RISC處理器、DSP處理器、針對算法用自動(dòng)化工具定制的處理器和設計人員手工定制的處理器上運行的結果。這里的RISC處理器是一款基于Tensilica Xtensa架構的RISC核,DSP處理器同樣基于Tensilica Xtensa架構,但是增加了包括4路SIMD MAC和DSP專(zhuān)用ALU等一系列DSP擴展指令,能夠執行4路或8路SIMD向量操作,該處理器還支持超長(cháng)指令字功能,每個(gè)時(shí)鐘周期能夠發(fā)射3條獨立的指令,這套擴展指令集被稱(chēng)作Vectra LX指令集。
表1中所列視頻處理算法包括:
5x5像素2D濾波器:2維濾波器可用于包括圖像銳化,模糊化和增加抖動(dòng)等操作中。
5x5像素門(mén)限濾波器:門(mén)限濾波用黑白二值來(lái)表示圖像像素,從而使每個(gè)像素只占用1bit。濾波結果中不包括灰度信息,用于噪聲檢測等算法中
中值濾波:中值濾波經(jīng)常用于減小椒鹽噪聲和高斯噪聲的影響。
幀采樣:簡(jiǎn)單的圖像縮小功能
幀求和:該算法用于衡量視頻圖像不同部位的光強,在降噪、曝光補償中都有應用,也用于輔助視頻壓縮。
經(jīng)過(guò)了SIMD/DSP擴展的Xtensa處理器比未擴展版本快很多,大多數視頻處理算法的性能都得到了巨大提升,但增加的面積相對來(lái)說(shuō)很小(在TSMC 65LP制程下大約0.4mm2)。
表1中“XPRES”列所示為采用Tensilica自動(dòng)化工具XPRES定制的處理器執行5種算法的性能。
XPRES對C源代碼進(jìn)行性能分析并自動(dòng)生成針對相應代碼進(jìn)行優(yōu)化的處理器擴展指令。自動(dòng)生成的處理器比擴展了Vectra LX指令集的處理器面積稍小,但在大多數算法的性能上卻可以略勝一籌。
表1最后一列所示為手工定制擴展指令和IO接口來(lái)加速特定算法的處理器性能。我們可以看到5x5 2D濾波算法的性能比未定制處理器提高了170倍;5x5門(mén)限濾波算法的性能提高了225倍;幀求和算法的性能提高了44倍。
表1:視頻算法性能結果:RISC處理器、DSP處理器和Tensilica自動(dòng)化工具XPRES定制的處理器之間的性能比較。
電子工程專(zhuān)輯
看好視頻會(huì )議前景 多家企業(yè)醞釀上市 2010-01-18 |
互通難題成視頻會(huì )議最大限制 2010-01-18 |
無(wú)線(xiàn)視頻監控傳輸技術(shù)解析 2010-01-15 |
視頻監控如何與其他系統實(shí)現集成? 2010-01-15 |
判斷視頻監控系統好壞的10項準則 2010-01-14 |