大多數(shù)普通視頻信號(hào)在利用視頻壓縮編解碼器進(jìn)行編碼之前都必須進(jìn)行預(yù)處理,這要求數(shù)據(jù)采用420平面格式(planar format)以獲得更高的處理性能。例如,NTSC和PAL等廣播標(biāo)準(zhǔn)可能需要將隔行掃描(interlaced)格式轉(zhuǎn)換為逐行掃描(progressive),此外還常常需要對色度和亮度信息進(jìn)行格式重定。
特別的是,CCD相機(jī)的視頻是以4:2:2交錯(cuò)式隔行掃描格式被捕獲的。但視頻壓縮標(biāo)準(zhǔn)的特定規(guī)格只接受逐行掃描4:2:0格式的輸入。在這種情況下,必須去掉隔行掃描偽信號(hào),因?yàn)閷χ鹦袙呙?a href="http://www.wenjunhu.com/tags/編碼器/" target="_blank">編碼器而言,處理隔行掃描視頻內(nèi)容可能相當(dāng)困難。
有大量復(fù)雜的去隔行(de-interlacing)算法可供工程師選擇,但并非所有應(yīng)用都需要最高級(jí)別的視頻質(zhì)量。此外,復(fù)雜的算法往往需要大量的計(jì)算,而開發(fā)人員總是受到數(shù)字信號(hào)處理器(DSP)的MIPS預(yù)算限制。
當(dāng)應(yīng)用不需要最高級(jí)別的視頻質(zhì)量時(shí),可在硬件中采用縮放算法來實(shí)現(xiàn)去隔行。這種技術(shù)可以將4:2:2到4:2:0格式的轉(zhuǎn)換工作和去隔行操作卸載給其它硬件,這對于節(jié)省珍貴的DSP MIPS資源特別有幫助。令人驚訝的是,當(dāng)把視頻壓縮處理考慮進(jìn)來之后,縮放硬件有時(shí)能獲得可與高復(fù)雜度去隔行算法相媲美的去隔行質(zhì)量。
本文描述的簡單方法可用于視頻應(yīng)用的去隔行處理。當(dāng)視頻數(shù)據(jù)幀中存在大量動(dòng)作時(shí),這種技術(shù)最為有效,因?yàn)殪o態(tài)圖像往往會(huì)更加突出缺陷。
亮度和色度編碼
NTSC將標(biāo)準(zhǔn)清晰度(NTSC SD)的分辨率定義為每行720像素,每列480像素,每秒30幀。每個(gè)像素的信息包含三個(gè)分量:Y是亮度(luma)信息,Cb(U)是藍(lán)色信息,Cr(V)是紅色信息。
過去采用NTSC標(biāo)準(zhǔn)時(shí),工程師在視頻流編碼方面受到傳輸帶寬和計(jì)算能力的限制。由于人眼對于亮度信息更為敏感,而NTSC標(biāo)準(zhǔn)只要求色度信息進(jìn)行2:1的水平下采樣,從而減輕了這一負(fù)擔(dān)。
CCD相機(jī)捕獲到的每一幀都具有720×480的Y值、360×480的U值和360×480的V值。其中每一個(gè)值都是8位(1個(gè)字節(jié)),范圍在[0,255],這樣,每一個(gè)NTSC SD幀就是(720+360+360)×480=691,200字節(jié)。
被捕獲幀的Y/U/V分量一般進(jìn)行隔行掃描,通常采用YUV 4:2:2的格式。有兩種方法構(gòu)成這些數(shù)據(jù),但為了簡單起見,假設(shè)數(shù)據(jù)是以UYVY 4:2:2隔行掃描格式構(gòu)成的(圖1)。
如前所述,大多數(shù)編碼器都要求輸入視頻采用YUV 4:2:0格式。在4:2:2隔行掃描數(shù)據(jù)和4:2:0平面數(shù)據(jù)之間存在著兩大差異。
在4:2:0格式中,色度信息還需進(jìn)一步進(jìn)行2:1的垂直下采樣。也就是說,對每一個(gè)NTSC SD幀,每個(gè)U或V分量都包含360×240字節(jié)而不是360×480字節(jié)。這樣,每個(gè)4:2:0格式的NTSC SD幀為518,400字節(jié)[(720×480)+(360×240×2)]。為平衡實(shí)時(shí)性能和合格的圖像質(zhì)量,需要額外的色度下采樣。
視頻壓縮標(biāo)準(zhǔn)的有效實(shí)現(xiàn)還常常需要將亮度和色度分量分別存儲(chǔ),因?yàn)榫幋a算法可能采用不同的方法來處理它們。圖2所示為4:2:0平面格式的NTSC SD視頻幀。
隔行掃描偽像
隔行掃描包含對圖像的兩次掃描,一次掃描捕獲偶數(shù)行,另一次掃描捕獲奇數(shù)行。兩次捕獲以很小時(shí)差分隔開,然后再合在一起形成一個(gè)完整的幀。
在合并這兩部分時(shí),可能會(huì)形成隔行掃描偽信號(hào)。例如,矩形框的垂直邊緣將導(dǎo)致鋸齒效應(yīng)(見圖3的最后一幀)。在不同時(shí)間捕獲一個(gè)運(yùn)動(dòng)視頻目標(biāo)而產(chǎn)生的這種偽信號(hào)被稱為隔行偽像。
對于NTSC標(biāo)準(zhǔn),若以30幀/秒的速度捕獲視頻幀,兩個(gè)連續(xù)鏡頭(即頂場及其互補(bǔ)的底場)之間的啟動(dòng)時(shí)間是16.67ms。如果在這類幀中捕獲視頻場景中的快速運(yùn)動(dòng)行為,將會(huì)產(chǎn)生隔行掃描偽像。
由于這些偽信號(hào)被表示為高頻噪聲,它們有可能會(huì)導(dǎo)致逐行視頻編碼器出現(xiàn)嚴(yán)重問題,其主要原因在于人眼的敏感度以及壓縮標(biāo)準(zhǔn)的工作方式。實(shí)際上所有的視頻壓縮標(biāo)準(zhǔn)都是基于兩個(gè)非常重要的假設(shè):1. 人眼對低頻信息更為敏感,這意味著即使去掉原始幀中的部分高頻信息,仍然可以保持可接受的視覺質(zhì)量。2. 編碼過程基于像素塊進(jìn)行,這意味著對于視頻幀中的每個(gè)16×16或8×8的像素塊,在相鄰幀中都可能存在非常相似的模塊。因此,編碼的實(shí)現(xiàn)通常是在前面的編碼幀中尋找一個(gè)相似的像素塊,并僅對它們之間的delta進(jìn)行編碼。這樣可以獲得很高的壓縮比,而在大多數(shù)壓縮標(biāo)準(zhǔn)中,運(yùn)動(dòng)評(píng)估(ME)模塊就是專為該目的而定義的。
遺憾的是,幾乎所有像素塊中都可能出現(xiàn)隔行掃描偽像,這使得ME模塊很難在前面的編碼幀中找到相似的像素塊。結(jié)果使得delta更大,并且ME需使用更多的比特來對其進(jìn)行編碼。因此,最好的方法是在將被捕獲的幀饋入到逐行視頻編碼器之前,減少或去除其中的隔行掃描偽信號(hào)。
去隔行視頻處理
如前所述,可以通過采用大量計(jì)算的復(fù)雜算法來實(shí)現(xiàn)高質(zhì)量的去隔行處理。此外,還有一種更直接簡單的方法,即采用縮放硬件,例如德州儀器的TMS320DM6446數(shù)字媒體處理器。采用縮放硬件可完全去除全部場力線,它利用剩余場的信息來產(chǎn)生丟失數(shù)據(jù)。
去除480i60(480像素、隔行掃描、60幀/秒)視頻的所有底場數(shù)據(jù),將產(chǎn)生一個(gè)240p30(240像素、逐行掃描、30幀/秒)的視頻。該數(shù)據(jù)被垂直縮放,以產(chǎn)生一個(gè)480p30的去隔行結(jié)果。這種方法的優(yōu)點(diǎn)是可以100%地消除所有隔行掃描偽信號(hào),但垂直保真度會(huì)有明顯損失。
當(dāng)用作逐行壓縮之前的預(yù)處理步驟時(shí),這種方案能夠產(chǎn)生非常棒的效果。這是因?yàn)橛袚p視頻壓縮算法通常都去掉了高頻信號(hào)(尤其是在低比特率下)。
因此,根據(jù)數(shù)據(jù)源內(nèi)容的不同,在把壓縮處理考慮進(jìn)來之后,該方案可以達(dá)到和復(fù)雜算法一樣的效果。例如,可以利用復(fù)雜度較低的去隔行器來把隔行掃描廣播數(shù)據(jù)轉(zhuǎn)換成低比特率數(shù)據(jù)以供逐行掃描手機(jī)屏顯示。
設(shè)計(jì)實(shí)現(xiàn)
TMS320DM6446處理器中的縮放器(resizer)執(zhí)行和所有縮放器相同的常用功能,但有少許差別。需注意的兩個(gè)主要特性是,縮放器模塊在水平和垂直方向上都能支持1/4x到4x的縮放,且縮放因子與方向無關(guān)。
此外,所有濾波器系數(shù)都是可編程的。例如,如果使用4:2:2隔行掃描格式(由UYVY格式構(gòu)成)的輸入幀(圖1),分辨率為每幀720×480像素(NTSC SD)。
在去隔行處理中,縮放器首先被告知輸入幀的寬度為724像素,而非實(shí)際的720像素。這是由于為準(zhǔn)確實(shí)現(xiàn)1:1的縮放,DM6446處理器的水平輸入大小必須被調(diào)節(jié)為720+delta,delta由縮放器中的公式計(jì)算求得。
接著,縮放器獲知間距是實(shí)際間距的兩倍寬,這樣它就可以把第一組兩個(gè)水平掃描行當(dāng)作一個(gè)來接收。這使得縮放器可以在偶數(shù)行上實(shí)現(xiàn)1:1的水平縮放(見圖4中的左上角),并將奇數(shù)行丟棄(右上角)。輸入和輸出在垂直方向上尺寸分別被設(shè)定為244和480,因此縮放器執(zhí)行1:2的垂直放大以插入被丟棄的奇數(shù)行。
然后縮放器被告知輸出幀的寬度是720像素,輸出間距是1440[720+(360×2)]字節(jié),從而形成一個(gè)輸出幀(圖4)。
為實(shí)現(xiàn)從4:2:2到4:2:0的轉(zhuǎn)換,以便逐行編碼器能夠利用這些數(shù)據(jù),對于每個(gè)4:2:2隔行掃描格式的輸入幀,縮放器都被調(diào)用三次以生成去隔行的4:2:0幀。必須保持三組配置參數(shù)分別作為U、Y和V值。因此,需調(diào)用縮放器三次。
起始點(diǎn)是采用UYVY 4:2:2格式的輸入幀(NTSC SD分辨率)。輸出幀被定義用4CIF分辨率(704×480)代替NTSC SD分辨率(720×480)。由于縮放器的32字節(jié)輸出對齊限制,輸入幀的右邊16列必須被丟棄。一種替代方法可能是將右邊8列和左邊8列刪減掉。
首次調(diào)用是提取輸入幀中的Y分量,然后對其進(jìn)行去隔行處理。通過指示縮放器將輸入幀當(dāng)作一個(gè)4:2:0平面格式的圖像(圖5),去隔行操作應(yīng)該僅應(yīng)用于Y分量上。此外,縮放器還被指示執(zhí)行2:1的水平縮放,間隔提取輸入幀中的Y分量,并執(zhí)行1:2的垂直縮放以在奇數(shù)行中插入被丟棄的Y分量。
對縮放器的第二次調(diào)用是修改U分量,這需要以2:1的比例進(jìn)一步垂直下采樣。由于下采樣需丟棄所有的奇數(shù)行,這會(huì)自動(dòng)生成逐行U緩沖器,因此不再需要進(jìn)行去隔行操作。為實(shí)現(xiàn)垂直下調(diào)節(jié)(downscaling),垂直輸入大小被設(shè)為484,輸出大小被設(shè)為240。對V分量的操作類似于U分量。
對于在利用視頻壓縮編解碼器進(jìn)行編碼之前需要去隔行和YUV格式轉(zhuǎn)換的視頻,可通過一個(gè)縮放引擎來對其進(jìn)行預(yù)處理。由于某些因素(例如視頻編解碼器往往去除了高頻分量)的影響,需對壓縮后的視頻質(zhì)量進(jìn)行考慮。不過,這項(xiàng)技術(shù)并不適合于所有應(yīng)用,而且必須小心確保輸出質(zhì)量是應(yīng)用可以接受的。
-
解碼器
+關(guān)注
關(guān)注
9文章
1144瀏覽量
40839 -
噪聲
+關(guān)注
關(guān)注
13文章
1123瀏覽量
47459 -
視頻
+關(guān)注
關(guān)注
6文章
1953瀏覽量
73019
發(fā)布評(píng)論請先 登錄
相關(guān)推薦
評(píng)論