數(shù)字視頻基本知識探討
數(shù)字視頻基本知識探討
由于工作的需要,我在數(shù)字視頻處理方面做了幾年的開發(fā),我所說的開發(fā)是指應用層的開發(fā),而不是底層的研究。先后開發(fā)出了幾個產(chǎn)品,比如數(shù)字接口攝像機、嵌入式視頻捕捉卡、Video-VGA視頻轉(zhuǎn)換卡、造紙行業(yè)用的在線斑點檢測儀、數(shù)字偽彩色處理儀等,在開發(fā)中也了解了一些關于CMOS面陣傳感器、CCD面陣傳感器、CCD線陣傳感器、高速攝像、高分辨率攝像、視頻編解碼、圖像壓縮等方面的知識,目前我還在繼續(xù)做類似的開發(fā)。前面說的產(chǎn)品都有一定的銷量,所以經(jīng)常會收到用戶打來的電話,大多數(shù)是咨詢一些很基本的數(shù)字視頻知識。數(shù)字視頻無疑是復雜的,牽扯到很多方面,所以我有了寫這篇文章的想法,我希望用盡量通俗的方式來說明一些基本的問題,以期能對讀者的開發(fā)工作有一些幫助(說明一下:為了盡量地把問題說得簡單一點,敘述中我作了一些簡化,比如把U和Cb都說成U、V和Cr都說成V等。另外還需要說明的是,下面我所說的模擬視頻的各個參數(shù)都是針對我國的電視標準——PAL制式而言的,而其它的電視制式則略有差別。讀者在做進一步研究時請注意)。因為我的水平十分有限,錯漏難以避免,有興趣的讀者可以寫信和我一起來探討。
視頻簡單地說就是活動圖像。電影也是活動圖像,電影把大量靜止圖像記錄在膠片上,一張一張地連續(xù)顯示出來,就成了我們看到的電影。對于電視視頻,每秒鐘包含幾十幀靜止圖像,每一幀靜止圖像由幾百個行組成,每一行又由幾百個像素點組成。1秒鐘包含的圖像幀數(shù)為幀頻,1秒鐘包含的總行數(shù)為行頻,1秒鐘包含的總像素數(shù)實際上就是相當于視頻帶寬。
首先來說說模擬視頻。
遙想起來,在當年有限的條件下,用電子管做出電視機的前輩們實在是令人佩服的,但是,用現(xiàn)在的眼光來看,當年的電視技術又實在是很簡陋的。我國的黑白視頻信號幀頻為25 Hz,就是說每秒顯示25幅圖像,之所以規(guī)定為25 Hz,而不是其它的某個值,主要是因為兩個原因。一個與人的視覺生理特點有關,當圖像的刷新速度達到5幀/秒的時候,人開始感覺圖像是活動的,而達到24幀/秒的時候,人感覺圖像是完全連續(xù)和流暢的(電影所使用的幀頻就是24 Hz),所以視頻信號幀頻應大于等于24 Hz。理論上來說幀頻越高越好,但是幀頻越高,對電路的要求也越高,技術越復雜,成本也越高(現(xiàn)在有的電腦彩顯幀頻已達到200Hz),在當時的條件下,只能選擇一個大于24的盡量小的值。另一個原因是因為我國的電網(wǎng)頻率是50Hz,當采用25 Hz幀頻時,隔行掃描時的場頻為50 Hz,正好與電網(wǎng)同頻,這樣,電源對圖像的干擾是固定的,人眼不容易感覺出來,或者換個角度說:電源就可以不必做得那么精密(那個時候開關電源還很少使用,整流電源缺乏穩(wěn)壓措施,紋波很大)。所以選擇了25 Hz幀頻。說到這里,又要說說“場頻”。電視在顯示圖像的時候,把一幀分成了兩場來顯示,一個場由幀中的奇數(shù)行組成,叫做奇場,另一個場由幀中的偶數(shù)行組成,叫做偶場。之所以要這樣做,主要是因為在CRT顯象管上一秒鐘顯示25幀圖像時,人眼感覺到連續(xù)性還是不太好,而且還有明顯的閃爍,一幀分成兩場后,場頻為50 Hz,圖像更加連續(xù)一些。當然還有一些別的原因,與電路設計方面有關。
我國的黑白視頻信號規(guī)定每幀圖像共625行,每場為312.5行,行頻15625 Hz,視頻帶寬6MHz。在每場的312.5行中,有一些行要用作場消隱,是不包含視頻信號的,按照CCIR656標準規(guī)定的行編號方法,奇場的行號為第1至312.5行,偶場的行號為第312.5至625行,其中,奇場的第23.5至310行包含有效的視頻信號,共287.5行,偶場的第336至622.5行包含有效的視頻信號,共287.5行。所以一幀中有效的總行數(shù)為576行,由最上面的半行加上中間的574行加上最下面的半行組成。(說到這里又要順便說個問題,有經(jīng)驗的讀者在PC機上用視頻捕捉卡捕捉圖像的時候,如果分辨率設定為720點*576行,會發(fā)現(xiàn)最上面的行左邊半邊是黑色的,或者最下面的行右邊半邊是黑色的,就是因為一場中包含有半行的無效行的原因。)
上面說的是黑白視頻信號,那么彩色視頻信號又是怎么回事呢?當科學家們開始研究彩色電視的時候,黑白電視已經(jīng)大量使用了,所以
最好彩色電視信號能夠與黑白電視信號保持兼容,以便彩色電視信號在黑白電視機上能播放出黑白的圖像。這個問題是很困難的,因為色度信號也要占用較大的帶寬,而在電視射頻頻帶上,一個頻道挨著一個頻道,亮度信號(實際上還有調(diào)頻的伴音信號)已經(jīng)把頻帶給塞滿了,幸運的是,后來終于運用壓縮亮度信號帶寬、大面積著色等技術解決了這個問題。從頻域的角度來看,色度信號(UV色差信號)是插在亮度信號的頻譜的間隙之中的,具體的位置是插在4.43MHz的地方,帶寬1.3MHz。在接收機中,簡單地說,把收到的信號中的4.43MHz處的帶寬1.3MHz的信號取出來就成了色度信號,而把收到的信號中的4.43MHz處的這個信號濾掉剩下的就是亮度信號。很多硬件工程師可能不容易理解這是什么意思,不過沒關系。下面我們從時域的角度來看看它們的一行的波形,如圖所示,黑白視頻的亮度信號采用了調(diào)幅制,一行的周期是64μs,其中顯示在屏幕上的信號占52μs,其余部分為行消隱、行同步頭。對于彩色信號,還在行同步頭上疊加了一小段4.43MHz的副載波信號,用作接收機中的4.43MHz信號的頻率和相位基準。
上面說的是彩色視頻信號怎么加到原來的黑白視頻信號中。那么彩色圖像是怎么還原和顯示出來的呢?我們知道,黑白圖像的像素只能用亮度(灰度)來描述。而彩色圖像的像素的描述要復雜一些,有很多不同的方法,比如在印刷行業(yè)中用的是CMYK(青、品紅、黃、黑)四色合成的方法,而在計算機或電視機的CRT顯象管中都是用的RGB(紅、綠、藍)三基色合成的方法,我也不明白為什么要選這三種顏色,而沒選別的顏色,我猜想可能是因為人眼包含RGB三種色感細胞,所以用這三種基色能合成比較多的人眼能識別的彩色出來,或者因為這三種基色的熒光粉比較容易制造。通過RGB三基色來合成某種彩色,或者某種彩色怎樣分解為三基色,這個是大家都熟悉的。用RGB三基色來表示彩色的確很直觀,但是如果把這種方法用作圖像傳輸則絕不是一個好的方法。第一個缺點是與黑白圖像不兼容,把RGB三基色轉(zhuǎn)換為灰度的方法是:灰度=R*0.3+G*0.59+B*0.11,這個轉(zhuǎn)換過程顯然是比較復雜的。對于電視機而言,就意味著必須解碼出RGB信號才有可能得到黑白圖像,而黑白電視機沒有解碼功能,所以不能實現(xiàn)兼容。第二個缺點是占用太多帶寬,用RGB三基色表示圖像,每個分量的帶寬是均等的,都約等于亮度信號的帶寬,所以對于每個分量,都要用較大的帶寬來描述。第三個缺點是抗干擾能力差。由于G分量占有亮度值的59%,所以當G受到干擾的時候,像素的亮度值會受到很大的影響,而人眼對亮度值的變化是十分敏感的,所以圖像主觀質(zhì)量會明顯下降。基于這些原因,在視頻信號傳輸中采用的是YUV合成的方法。Y代表亮度信息,U代表藍色色差(就是藍色信號與亮度信號之間的差值),V代表紅色色差。我們來看看使用這種表示方法的優(yōu)點。第一個優(yōu)點是與黑白圖像兼容。假定一個像素是用YUV表示的,我們只要忽略UV分量,取出Y分量,就可以得到像素的
評論