一、相機成像
1.1 光和電磁波譜
電磁波可視為以波長λ傳播的正弦波(圖1.1),或視為沒有質量的粒子流,每個粒子流以波的模式以光速運動。每個無質量的粒子包含着一定的能量,稱之為一個光子。粒子的能量與波的頻率成正比,頻率越高,能量越大。可用公式表示:λ = c / v,E = hv, λ 為波長、v為頻率、E為能量,c是光速,h是普蘭克常數。電磁波根據頻率不同可分為無線電波、紅外線、可可見光、紫外線、X射線、Y射線。
圖1.1一個正弦波
我們感受到的可見彩色光只是電磁波的一小部分,電池波的可見光范圍為0.43um(紫色)~0.79um(紅色)。在波譜的一端是無線電波,其波長是可見光波長的幾十億倍,另一端是伽瑪射線,其波長比可見光小幾百萬倍。電磁波的頻譜如圖1.2所示:
圖1.2 電磁波頻譜
人感受到物體顏色由物體反光性質決定。綠色物體反色綠光,紅色物體反色紅光。
1.2人眼成像
人眼睛中的錐狀細胞主要負責彩色視覺感知,錐狀細胞主要分為3個感知類別,分別對應紅色、藍色和綠色。約65%對紅色敏感、33%對綠色敏感、2%對藍色敏感。由於人眼的這些特性,最終看到的顏色是這三種顏色的混合。
1.3 相機成像
sensor是能將光信號轉換為電信號的傳感器,sensor能根據光的能量轉換為電量(電荷多少),然后再經過AD采集把電信號轉換為數字信號。從1.1中我們知道電池波的能量跟頻率成正比,從紫光到紅的的可見光的能量是不同的,相機的sensor可以將光的能量轉換為電量,如綠色物體反色的綠光的能量比紅色物體反色紅光的能量強,則sensor上被綠光照射堆積的電荷比被紅光照射堆積的電荷多。
相機的基本結構如下所示:
光進入到鏡頭聚光后到濾光片過濾出紅、黃、藍三種光,sensor將光信號轉換為電信號(電壓),電信號經過AD采樣后就生成一幅數字圖像。數字圖像經過isp后變成yuv圖像,yuv經過編碼后可以存儲,網絡傳輸等。由sensor的電信號經過AD轉換生成的第一幅數字圖像時RAW圖像,這是一幅原始的圖像,RAW圖像經過差值后變成RGB圖像,光進入到鏡頭聚光后到濾光片過濾出紅、黃、藍三種光,sensor將光信號轉換為電信號(電壓),電信號經過AD采樣后就生成一幅數字圖像
二、RGB顏色模型
RGB色彩就是常說的光學三原色,R代表Red(紅色),G代表Green(綠色),B代表Blue(藍色)。自然界中肉眼所能看到的任何色彩都可以由這三種色彩混合疊加而成,因此也稱為加色模式。 RGB色彩模型與人眼視覺系統聯系緊密,是最常用的色彩模型。電視攝像機及電視顯示器根據RGB模型工作。
三、YUV顏色模型
YUV顏色模型利用人類視覺對亮度的敏感度比對色度的敏感度高的特點獲得較RGB色彩模型的優勢,為彩色電視系統廣泛使用。YUV色彩模型將亮度信息從色度信息中分離了出來,並且對同一幀圖像的亮度和色度采用了不同的采樣率。在YUV色彩模型中,亮度信息Y與色度信息U\V相互獨立。Y信號分量為黑白灰度圖。U、V信號分量為單色彩色圖。黑白電視只利用Y分量,也解決了黑白電視和彩色電視的兼容問題。YUV與RGB的轉換公式如下:
3.1yuv三種采樣格式
yuv采樣分為YUV 4:4:4、YUV 4:2:2、YUV 4:2:0
- YUV 4:4:4采樣,每一個Y對應一組UV分量。這個格式和rgb888相同,每個像素=8bitY+8bitU+8bitV=24bit。
- YUV 4:2:2采樣,每兩個Y共用一組UV分量。 這種格式每兩個像素有兩個Y、一個U和一個V總共32bit,所以平均一個像素是16bit。
- YUV 4:2:0采樣,每四個Y共用一組UV分量。這種格式每四個像素有四個Y、一個U和一個V總共48bit,所以平均每個像素是12bit。
3.2yuv存儲格式
yuv存儲格式分為planar(平面)、半平面格式(Semi-planar)和packed (打包)格式。對於planar(平面)的YUV格式,先連續存儲所有像素點的Y,緊接着存儲所有像素點的U,隨后是所有像素點的V。 使用三個數組分開存放YUV三個分量,即Y,U,V分別存放在各自的數組中。半平面格式(Semi-planar),即Y單獨占一塊地方,但其后U、V又緊挨着排在一起。對於packed(打包)的YUV格式,將每個像素點的Y,U,V分量交叉排列並以像素點為單元連續的存放在同一數組中,通常幾個相鄰的像素組成一個宏像素(macro-pixel)。
planar(平面)存儲模式:yuv420的平面存儲模式又叫做YUV420P,根據UV的存先后順序不同可分為YV12和YU12。
YU12首先是所有Y值
,然后是所有U值
,最后是所有V值
。
YV12首先是所有Y值
,然后是所有V值
,最后是所有U值
半平面格式(Semi-planar):YUV420的半平面存格式又叫YUV420SP,
首先是所有Y值
,然后是UV
或者VU
交替存儲。根據UV交替順序的不同可分文NV12和NV21。
NV21,存儲順序是先存Y,再VU交替存儲,
NV12
存儲順序是先存Y值
,再UV
交替存儲
packed (打包)格式:對於yuv422,格式根據y、u、v排列的順序不同分為YUYV、YVYU、UYVY、VYUY,在內存中,Y、U、V都是挨着排序的。它們的名稱就表示了Y、U、V的順序。像YUYV,就是Y、U、Y、V、Y、U、Y、V。