由于工作的需要,我在數字視頻處理方面做了幾年的開發,我所說的開發是指應用層的開發,而不是底層的研究。先后開發出了幾個產品,比如數字接口攝像頭、圖像采集卡、TV-VGA視頻轉換器、造紙行業用的在線斑點檢測儀、數字偽彩色處理儀等,在開發中也了解了一些關于CMOS面陣傳感器、CCD面陣傳感器、CCD線陣傳感器、高速攝像、高分辨率攝像、視頻編解碼、圖像壓縮等方面的知識,目前我還在繼續做類似的開發。前面說的產品都有一定的銷量,所以經常會收到用戶打來的電話,大多數是咨詢一些很基本的數字視頻知識。數字視頻無疑是復雜的,牽扯到很多方面,所以我有了寫這篇文章的想法,我希望用盡量通俗的方式來說明一些基本的問題,以期能對讀者的開發工作有一些幫助(說明一下:為了盡量地把問題說得簡單一點,敘述中我作了一些簡化,比如把U和Cb都說成U、V和Cr都說成V等。另外還需要說明的是,下面我所說的模擬視頻的各個參數都是針對我國的電視標準——PAL制式而言的,而其它的電視制式則略有差別。讀者在做進一步研究時請注意)。因為我的水平十分有限, 錯漏難以避免,有興趣的讀者可以寫信和我一起來探討。
視頻簡單地說就是活動圖像。電影也是活動圖像,電影把大量靜止圖像記錄在膠片上,一張一張地連續顯示出來,就成了我們看到的電影。對于電視視頻,每秒鐘包含幾十幀靜止圖像,每一幀靜止圖像由幾百個行組成,每一行又由幾百個像素點組成。1秒鐘包含的圖像幀數為幀頻,1秒鐘包含的總行數為行頻,1秒鐘包含的總像素數實際上就是相當于視頻帶寬。
首先來說說模擬視頻。
遙想起來,在當年有限的條件下,用電子管做出電視機的前輩們實在是令人佩服的,但是,用現在的眼光來看,當年的電視技術又實在是很簡陋的。我國的黑白視頻信號幀頻為25 Hz,就是說每秒顯示25幅圖像,之所以規定為25 Hz,而不是其它的某個值,主要是因為兩個原因。一個與人的視覺生理特點有關,當圖像的刷新速度達到5幀/秒的時候,人開始感覺圖像是活動的,而達到24幀/秒的時候,人感覺圖像是完全連續和流暢的(電影所使用的幀頻就是24 Hz),所以視頻信號幀頻應大于等于24 Hz。理論上來說幀頻越高越好,但是幀頻越高,對電路的要求也越高,技術越復雜,成本也越高(現在有的電腦彩顯幀頻已達到200Hz),在當時的條件下,只能選擇一個大于24的盡量小的值。另一個原因是因為我國的電網頻率是50Hz,當采用25 Hz幀頻時,隔行掃描時的場頻為50 Hz,正好與電網同頻,這樣,電源對圖像的干擾是固定的,人眼不容易感覺出來,或者換個角度說:電源就可以不必做得那么精密(那個時候開關電源還很少使用,整流電源缺乏穩壓措施,紋波很大)。所以選擇了25 Hz幀頻。說到這里,又要說說“場頻”。電視在顯示圖像的時候,把一幀分成了兩場來顯示,一個場由幀中的奇數行組成,叫做奇場,另一個場由幀中的偶數行組成,叫做偶場。之所以要這樣做,主要是因為在CRT顯象管上一秒鐘顯示25幀圖像時,人眼感覺到連續性還是不太好,而且還有明顯的閃爍,一幀分成兩場后,場頻為50 Hz,圖像更加連續一些。當然還有一些別的原因,與電路設計方面有關。
我國的黑白視頻信號規定每幀圖像共625行,每場為312.5行,行頻15625 Hz,視頻帶寬6MHz。在每場的312.5行中,有一些行要用作場消隱,是不包含視頻信號的,按照CCIR656標準規定的行編號方法,奇場的行號為第1至312.5行,偶場的行號為第312.5至625行,其中,奇場的第23.5至310行包含有效的視頻信號,共287.5行,偶場的第336至622.5行包含有效的視頻信號,共287.5行。所以一幀中有效的總行數為576行,由最上面的半行加上中間的574行加上最下面的半行組成。(說到這里又要順便說個問題,有經驗的讀者在PC機上用視頻捕捉卡捕捉圖像的時候,如果分辨率設定為720點*576行,會發現最上面的行左邊半邊是黑色的,或者最下面的行右邊半邊是黑色的,就是因為一場中包含有半行的無效行的原因。)
上面說的是黑白視頻信號,那么彩色視頻信號又是怎么回事呢?當科學家們開始研究彩色電視的時候,黑白電視已經大量使用了,所以最好彩色電視信號能夠與黑白電視信號保持兼容,以便彩色電視信號在黑白電視機上能播放出黑白的圖像。這個問題是很困難的,因為色度信號也要占用較大的帶寬,而在電視射頻頻帶上,一個頻道挨著一個頻道,亮度信號(實際上還有調頻的伴音信號)已經把頻帶給塞滿了,幸運
上面說的是彩色視頻信號怎么加到原來的黑白視頻信號中。那么彩色圖像是怎么還原和顯示出來的呢?我們知道,黑白圖像的像素只能用亮度(灰度)來描述。而彩色圖像的像素的描述要復雜一些,有很多不同的方法,比如在印刷行業中用的是CMYK(青、品紅、黃、黑)四色合成的方法,而在計算機或電視機的CRT顯象管中都是用的RGB(紅、綠、藍)三基色合成的方法,我也不明白為什么要選這三種顏色,而沒選別的顏色,我猜想可能是因為人眼包含RGB三種色感細胞,所以用這三種基色能合成比較多的人眼能識別的彩色出來,或者因為這三種基色的熒光粉比較容易制造。通過RGB三基色來合成某種彩色,或者某種彩色怎樣分解為三基色,這個是大家都熟悉的。用RGB三基色來表示彩色的確很直觀,但是如果把這種方法用作圖像傳輸則絕不是一個好的方法。第一個缺點是與黑白圖像不兼容,把RGB三基色轉換為灰度的方法是:灰度=R*0.3+G*0.59+B*0.11,這個轉換過程顯然是比較復雜的。對于電視機而言,就意味著必須解碼出RGB信號才有可能得到黑白圖像,而黑白電視機沒有解碼功能,所以不能實現兼容。第二個缺點是占用太多帶寬,用RGB三基色表示圖像,每個分量的帶寬是均等的,都約等于亮度信號的帶寬,所以對于每個分量,都要用較大的帶寬來描述。第三個缺點是抗干擾能力差。由于G分量占有亮度值的59%,所以當G受到干擾的時候,像素的亮度值會受到很大的影響,而人眼對亮度值的變化是十分敏感的,所以圖像主觀質量會明顯下降。基于這些原因,在視頻信號傳輸中采用的是YUV合成的方法。Y代表亮度信息,U代表藍色色差(就是藍色信號與亮度信號之間的差值),V代表紅色色差。我們來看看使用這種表示方法的優點。第一個優點是與黑白圖像兼容。假定一個像素是用YUV表示的,我們只要忽略UV分量,取出Y分量,就可以得到像素的亮度值,從而把彩色圖像轉換為黑白圖像。這樣很容易實現彩色電視信號與黑白電視信號的兼容。第二個優點是節省帶寬。說這個問題的時候要先說說大面積著色原理。實驗發現,人眼對亮度信息是敏感的,主要通過亮度差別來分辨物體形狀的細節,而對彩色信息是不敏感的,人眼區分不出物體顏色上的細小的變化,或者說人眼不容易覺察出來圖像的色彩的細節部分的變化。因此,可以對亮度信號用較高的采樣頻率采樣,而對色度信號用較低的采樣頻率采樣(或者用較低的量化深度),比如幾個相鄰的像素的亮度值不同,但是卻可以使用一個相同的色度值。這就是大面積著色原理。基于這個原理,在電視信號傳輸中,U或V信號的帶寬遠小于V信號的帶寬,這樣就節約了帶寬。換個方式來說,比如在計算機中,用RGB方式描述一個像素需要R、G、B共3個字節。而用YUV方式描述,則對于每2個像素,Y用2個字節,U取相同的值,用一個字節,V取相同的值,用一個字節,平均每個像素2個字節。或者每個像素Y用一個字節,U用半個字節,V用半個字節,共2個字節。第三個優點是抗干擾能力強。由于亮度信號是單獨表示的,所以如果色差信號受到干擾,不會影響到亮度,主觀感覺噪聲不會明顯增加。
在電視機中,彩色視頻信號首先分解為亮度信號Y和色度信號,色度信號再分解為U色差信號和V色差信號,最后由YUV三個分量經過矩陣運算變換為RGB信號,以便在顯像管上顯示。那么YUV具體是怎樣變換為RGB呢?這個問題又叫做“彩色空間變換”,我將在本文的后面詳細地討論這個問題。
通過前面的討論,我們已經知道:黑白視頻信號帶寬6 MHz,由幀、場、行、像素等組成,像素用亮度值Y來描述。彩色視頻信號在黑白視頻信號中插入了一個帶寬1.3 MHz的色度信號,由這個信號來得到UV色差信號,最后把YUV變換為RGB來描述像素。
現在我們來分析一下視頻信號的缺點。1、幀頻低。視頻信號的幀頻只有25 Hz,必然導致圖像閃爍。2、分辨率低。在一幀中有效的行只有576行。由于采用了隔行掃描,一幀圖像要由連續的兩場來拼合而成,而實際上很難保證兩場中的行準確地錯開(對準間隙),這進一步導致垂直方向的分辨能力損失。3、亮色串擾。亮度信號和色度信號混合在一起,解碼的時候不能很好地分開,導致亮度信號和色度信號互相干擾。4、缺乏改進余地。除非重新制定新的標準,否則前面提到的三個問題在現有基礎上都很難改進。視頻信號格式有這么多缺點,是因為受當年制定這個標準時的技術條件制約造成的,而近年來通過在電視中加入一些數字處理的手段,比如倍頻掃描(100 Hz場頻)、使用數字梳狀濾波器等方法,電視的圖像質量也得到一些提高。而現在正在研究的數字電視,是重新制定的全新的標準,用以獲得膠片質量的圖像,可能會徹底淘汰現在的視頻標準和電視設備,當然這是將來的事情,也不是我討論的主題。
我想討論的是“數字視頻”,而前面說的都是模擬視頻,這是因為我所說的數字視頻是現有的模擬視頻的數字表示,先搞清楚了模擬視頻,下面的討論就很簡單了。
視頻信號起初是以模擬信號的形式保存在錄像磁帶上的,而現在隨著數字技術的發展,可以變成數字信號保存在光盤或計算機硬盤中,當然這些離不開功能強大的計算機,實際上,在嵌入式領域,數字視頻也是可以應用的,比如用單片機或DSP來處理數字視頻數據。下面,我們就來討論數字視頻數據的格式、轉換、保存、顯示等方面的問題。
從哪個問題開始呢?我們先來討論一下模擬視頻信號解碼并量化成連續的數字視頻流后所包含的一些信號元素。前面我們已經討論了,模擬視頻信號每秒25幀,每幀周期40ms,而每幀又分為2場,每場20ms,先輸出的是奇場,然后是偶場,奇場的行號為第1至312.5行,偶場的行號為第312.5至625行,其中,奇場的第23.5至310行包含有效的視頻信號,偶場的第336至622.5行包含有效的視頻信號。把模擬視頻信號解碼為YUV分量后,分別進行A/D量化采樣,轉換為數字視頻流,時間上也應該是按上面的順序依次輸出。有幾個相關的國際標準對此作了一些約定。比如1994年國際無線電咨詢委員會出臺了CCIR601標準,這個標準主要是針對演播室的要求制定的,其中規定亮度信號的采樣頻率是13.5 MHz,色度信號的采樣頻率是6.75 MHz,采用8位PCM編碼。這樣,每行的Y采樣數為864個,其中有效的Y采樣數為720個。而每行的U或V采樣數為432個,有效的U或V采樣數為360個。平均描述每個像素的YUV的位數分別為8bit、4bit、4bit,又叫做YUV422編碼方案(當然還有很多別的方案,如YUV411等)。國際無線電咨詢委員會還出臺了CCIR656建議,其中規定視頻數據的量化值中的0和255保留不用,而量化數據串行輸出的順序是:U0、Y0、V0、Y1,U2,Y2,V2,Y3,U4,Y5,V4,Y6,如此循環。通過上面的討論,我們可以看出,數字視頻流應包含的元素有:奇偶場指示信號FI(有的稱為ODD)、場同步信號、行同步信號、像素時鐘、YUV數據輸出。在此我們順便計算一下數字視頻流的數據量,每秒的數據量=(720像素*576行*25幀)*2字節=20736000字節,數據率約165Mbps,由此可見數字視頻的數據量之大,數據率之高!
可以想象,保存和描述數字視頻流的最簡單辦法當然就是記錄和描述連續的一幀幀的靜止圖像。保存靜止圖像的最簡單格式是BMP格式,就是位圖。我們現在就來分析一下BMP文件格式。BMP文件記錄圖像的方式實際上有很多種,甚至可以直接在其中記錄YUV分量,但是我不準備討論那么多。BMP文件由文件頭、圖像特征描述、顏色表、圖像數據四部分構成。為了簡單起見,下面用的是VB的語法,下面用到的數字沒特別說明的都是十進制表示。
BMP文件頭數據結構如下:
Type BitMapFileHeader ‘共14字節
bfType As Integer ‘2個字節,填入字符”BM”,即 4D42(16進制)
bfSize As Long ‘4個字節,填入整個BMP文件的字節數大小
bfReserverd1 As Integer ‘2個字節,保留,填入0
bfReserverd2 As Integer ‘2個字節,保留,填入0
bfOffBits As Long ‘4個字節,表示圖像數據在整個BMP文件中的起始位置
End Type
圖像特征描述塊的數據結構如下:
Type BitMapInfoHeader ‘共40字節
biSize As Long ‘4個字節,表示本結構的字節數大小,填入固定的值40
biWidth As Long ‘4個字節,填入圖像水平方向像素數,其值必須是4的整數倍
biHeight As Long ‘4個字節,填入圖像垂直方向像素數
biPlanes As Integer ‘2個字節,填入固定的值1
biBitCount As Integer ‘2個字節,表示每個像素的位數,灰度圖填8,24位真彩圖填24
biCompression As Long ‘4個字節,填入0表示不壓縮
biXSizeImage As Long ‘4個字節,表示圖像的像素總數
biXPelsPerMeter As Long ‘4個字節,填入固定值3780
biYPelsPerMeter As Long ‘4個字節,填入固定值3780
biClrUsed As Long ‘4個字節,填入固定值0
biClrlmportant As Long ‘4個字節,填入固定值0
End Type
?在BMP中記錄的圖像數據不一定就是RGB或Y的值,可以只是一個”編號”,而這個”編號”對應的實際RGB顏色要從顏色表中查出來。24位真彩圖因為直接記錄了RGB值,所以是不需要顏色表的,因此在24位真彩BMP文件中沒有顏色表這部分,而其它的情況下就必須有一個顏色表。顏色表一共256項,每一項4個字節,前三個字節分別代表B、G、R值,最后一個字節為0。我們來以8位灰度圖舉例說明,8位灰度圖是黑白圖像,記錄的實際上就是亮度分量Y,根據RGB三基色原理,R=Y、B=Y、G=Y的時候合成的就是一個亮度為Y的灰色像素,極限的情況,當R=255、G=255、B=255時表示最白的像素,當R=0、G=0、B=0時表示最黑的像素。因此顏色表的值應為:0,0,0,0,1,1,1,0,2,2,2,0,3,3,3,0……..255,255,255,0。
BMP文件的最后部分記錄圖像數據,也是數據量最大的部分。一幀圖像的像素數據填入BMP文件的順序是:先填最下面的一行,從左到右依次一個個像素依次填入,這樣一行行一直到填完最上面的一行。對于8位灰度圖,對每個像素數據只需填入一個字節的Y值。對于24位真彩圖,要填3個字節,注意:先填B值,再填G值,最后是R值。
總結一下:灰度圖的BMP文件由“文件頭+圖像特征描述塊+顏色表+圖像數據Y”組成。24位真彩圖由“文件頭+圖像特征描述塊+圖像數據BGR”組成。如果讀者對于這些不熟悉,可以在WINDOWS的畫圖工具中畫一副圖,保存為上面的格式,然后用二進制編輯工具比如UltraEdit 來觀察和分析文件的內容。關于BMP文件的更多知識,讀者可以進一步查閱資料。
現在再回頭討論一下視頻保存為BMP圖像的格式。對于數字視頻流,由于一幀中有效的行數是固定的576行,所以如果把它轉換成576行的BMP圖像,當然最簡單,而且可以取得較好的效果。而如果取別的值,比如600行或者400行,那么就必須進行插值運算,依據現有的行計算出假想中的行,這樣的轉換其運算量很大,對圖像的質量也有一定損失,一般要用專門的硬件來實現(一般高檔的視頻捕捉卡帶有這樣的功能)。那么是不是說只能轉換成576行呢?當然也不是,比如可以轉換成288行,隔一行取一行,實際上就是只采集了一場。另外還可以丟棄一些行,比如只取中間的480行,而上下各丟掉48行,這樣得到的圖像雖然被裁剪了,但清晰度不會下降。再來看看一行中應該采多少個像素。由于模擬視頻信號幅值在一行中是連續變化的,因此采樣數沒有行數那樣的限制。比如我們可以采400個像素,當然也可以采401個像素,這取決于我們對水平分辨率的要求,一行中所采得的像素越多,則分辨率越高,但需要注意亮度信號的帶寬是有限的,采樣率高到一定程度后,再提高就沒有意義了。前面說了,CCIR601標準的規定是一行采720個有效像素。除了這個標準外,比較常用的另一種標準是一行采768個有效像素。說到這兒,順便說一下,在計算機上用視頻捕捉卡捕捉圖像時,驅動程序提供的圖像格式是固定的幾種,比如768*576、720*576、384*288、320*288等,為什么只提供這些格式,以前不明白的讀者現在知道了吧!
現在我們知道了模擬視頻變換為數字視頻流后的格式,也知道了怎樣創建和保存BMP文件,但是我們還不能把從數字視頻流中截取的圖像數據保存為BMP文件,因為數字視頻流是用YUV描述的,而BMP文件是用RGB描述的。它們之間怎么轉換呢?這就是色彩空間轉換的問題。
RGB和YUV的對應關系用代數方程式表示如下:
Y = 0.299R + 0.587G + 0.114B
U = - 0.147R- 0.289G + 0.436B
V = 0.615R - 0.515G - 0.100B
或者:
R=Y+1.14V
B=Y+2.03U
G=Y-0.58V-0.39U
CCIR601標準中定義的值與上面略有不同。在考慮了人的視覺系統和CRT顯示器的非線性特性之后,推薦的轉換方程如下:
R = Y + 1.371 V
G = Y - 0.698 *V - 0.336 U
B = Y + 1.732 U
不過讀者要注意,上面的方程中的UV值因為符號擴展的原因平移了128,實際應該使用下面的這個修正的方程:
R = Y + 1.371 * (V - 128)
G = Y - 0.698 * (V - 128) - 0.336 * (U - 128)
B = Y + 1.732 * (U - 128)
對于上面的方程有幾點說明:1、有一些采集卡會指定U、V為有符號數或無符號數,使用上面的方程時不要考慮這些,而認為Y、U、V是從采集卡得到的一個0到255之間的無符號的值。2、用上面的公式計算出的R、G、B值可能會超出0到255的范圍,應該在計算完后進行檢查,如果值小于0,則修正為0,如果值大于255,則修正為255。上面的轉換方法經過我的實際使用,證明其效果是良好的。
空談了這么多,來點更直觀的吧!我們來看看一幀實際的圖像。右邊這幀圖像是用武漢萬德數碼技術有限公司生產的VC302嵌入式圖像采集卡采得的,信號源是電視機的視頻輸出(為了減小文件大小,右邊的圖片被壓縮了10倍,原始圖像要比現在顯示的更清晰)。圖像的像素分辨率是320*240(采集了一場中的288行,每行360個像素,但只從中截取了240行,每行截取了320個像素),第一幅是Y分量描述出的黑白圖像,第二幅是U分量描述,第三幅是V分量描述,第四幅是YUV合成后的彩色圖像。黑白圖像與如此模糊的UV分量圖合成后竟然可以得到色彩這么真實的彩色圖像,你是不是有點難以相信?我也不敢相信,但這就是事實!從這些圖的比較中我們可以得出這樣的結論:1、Y分量基本上保留了彩色圖像的輪廓細節,其分辨率是較高的。2、UV分量主觀感覺十分模糊,分辨率低,只是大約地描述了整塊的色彩,這正是所謂的“大面積著色”。3、我們在觀察合成的彩色圖像的時候并沒有覺得圖像的色彩模糊,這說明人眼對色彩細節的分辨能力是多么差!
接著,我們來討論一下圖像的顯示問題。這個問題屬于軟件的范疇,大部分讀者都比較熟悉,我不準備說太多。一種方法是把得到的YUV數據轉換成RGB后來顯示。另一種辦法是直接用YUV數據來顯示,現在的顯卡都具備把YUV數據通過硬件直接轉換為RGB的能力,通過使用Direct Draw技術,把YUV數據直接提交給顯卡,這樣就省掉了軟件轉換所花費的CPU時間。在嵌入式領域,可以使用數字接口的液晶顯示器顯示,要根據其具體情況來處理。
最后,說一下視頻開發中常見的一些問題。1、首先要注意區分視頻信號的制式。我國的電視臺發送的信號是PAL制信號,所以電視機的視頻輸出是PAL制。但是電視機也可以接受其它制式的信號,比如VCD機的視頻輸出有很多是NTSC制的,在電視機上也可以播放。在我國市場上銷售的攝像機(我說的是工業攝像機,而不是家用的攝錄像機)大部分是PAL制的,但也有的是NTSC制,而且有的可以通過機身上的撥碼開關來設定制式。2、有些DVD機采用了一些特別的辦法來提高清晰度,比如所謂的“逐行掃描”,它們輸出的信號與標準信號相比有一些差別,在電視機上播放是不會有問題的,但是一些采集卡卻不能識別,導致采集的圖像紊亂,所以在調試過程中要慎用DVD作信號源。3、分辨率的問題。分辨率一般是指垂直方向能分辨的等間隔排列的黑白條紋的最大線數。我們先來看看模擬視頻,視頻信號行正程的時間是52μs,而視頻信號的帶寬最大6 MHz,假定1Hz可以描述2個像素點,這樣算來最多的線數=52μ*6M*2=624線。而實際上在編輯、存儲、傳輸、還原過程中會有很多損失,所以電視機上的圖像分辨率是遠低于這個值的,一般約在240-340線左右。對于攝像機的視頻輸出,有的黑白攝像機標稱分辨率高達600線,理論上這個分辨率是有可能達到的。而彩色攝像機標稱的分辨率有380線、420線、480線等規格。再來看看數字視頻流,數字視頻中一行采樣的像素數是固定的,CCIR601的規定是720個像素,如果用線來表示,極限值是720線,可見大于模擬視頻的分辨率。 在安防監控工程中,最常用的視頻源是420線或480線的彩色攝像機,扣除傳輸過程中的損失,最后能達到380線就不錯了,保存為圖像時每行取360像素比較恰當,再增加像素數,清晰度雖然仍有提高,但已不太明顯。在工業領域,有時對分辨率有特別苛刻的要求,這時采用標準視頻信號輸出的攝像機已經不可能滿足要求,需要采用非標準的攝像機,它們大多是逐行掃描的,采用專門的高分辨率CCD面陣傳感器,常見的分辨率如2048行*2048像素/幀,幀頻可以高達100Hz,當然這樣的視頻信號無法在電視機上顯示出來,一般是采用專用的采集卡采集,在計算機上處理。4、場采集與幀采集。這個問題比較特別,理論上講,攝像機首先應拍取一幀圖像,然后分解出兩場,還原的時候,兩場再拼合為一幀。但實際上,常不是這樣的,有的像機為了簡化設計,是一場一場單獨采集的,兩場之間有20ms的時間差,所以兩場拼合的時候,圖像上活動的部分會出現錯位。另外,一些視頻編輯設備也是對場單獨處理的,所以也存在這個問題。看電視的時候,因為圖像連續變化,所以我們只會感到圖像是活動的,但是如果把圖像截取一幀下來看,錯位就十分明顯。為了避免這個問題,在對分辨率要求不高的時候可以單場采集,即連續的兩場中只取一場,事實上很多采集卡也正是這樣處理的。另外可以在只采一場的同時在水平方向采集較多的像素,比如共采288行,但每行采720個像素,這樣至少在水平方向有較高的分辨率,可以改善模式識別的效果。而對分辨率要求更高的時候就只好使用非標準攝像機了。
評論
查看更多