Sensor信号输出YUV、RGB、RAW DATA、JPEG 4种方式区别---转
FROM:http://blog.chinaunix.net/uid-27134408-id-4145092.html
目錄[-]
- YUV、RGB、RAW DATA、JPEG 4種方式
- YUV、RGB、RAW DATA、JPEG 4種方式區別
- RAW和JPEG的區別?
- 為何要拍攝RAW?
- JPEG格式有什么優點?
- 我該拍攝RAW還是JPEG?
- 后記
- 攝像頭數據格式
- 數字視頻CCIR 601編碼標準
- CCIR601和CCIR656標準的區別
YUV、RGB、RAW DATA、JPEG 4種方式
簡單來說,
- YUV: luma (Y) + chroma (UV) 格式, 一般情況下sensor支持YUV422格式,即數據格式是按Y-U-Y-V次序輸出的
- RGB: 傳統的紅綠藍格式,比如RGB565,其16-bit數據格式為5-bit R + 6-bit G + 5-bit B。G多一位,原因是人眼對綠色比較敏感。
- RAW RGB: sensor的每一像素對應一個彩色濾光片,濾光片按Bayer pattern分布。將每一個像素的數據直接輸出,即RAW RGB data
- JPEG: 有些sensor,特別是低分辨率的,其自帶JPEG engine,可以直接輸出壓縮后的jpg格式的數據
對于這幾種輸出格式,幾個疑問:
- YUV一個像素占2B,如果像素太高在高時鐘下基帶芯片處理不過來,JPEG數據量就要小的多,所以不是YUV對基帶芯片有要求而是基帶芯片對輸出數據速率有要求。
- RGB565一般用在很低端的基帶芯片上,直接往屏上刷。YUV輸出亮度信號沒有任何損失,而色偏信號人眼并不是特別敏感,RGB565輸出格式是R5G3 G3B5會丟掉很多原始信息,所以YUV圖像質量和穩定性要比RGB565好的多
- RAW數據每個像素就1B,數據量要少很多,一般5M以上sensor就只輸出RAW數據以保證比較快的輸出速度,后端掛一個DSP來處理輸出的數據。
--------------------------------------------------------------------------------
YUV、RGB、RAW DATA、JPEG 4種方式區別
RAW和JPEG的區別?
RAW格式文件基本上是一個沒有經任何圖像處理的源文件, 它能原原本本地記錄相機拍攝到的信息,沒有因為圖像處理(如銳化、增加色彩對比)和壓縮而造成的信息丟失,但需要用特別的軟件來打開這些文件。 另一種常用的格式便是JPEG,相機會先根據使用者的設定來做一定的圖像處理,然后經過壓縮 (程度因相機內設定的照片質量而定)和保存照片。
為何要拍攝RAW??
RAW是一種專業攝影師常用的格式,因為它能原原本本地保存信息,讓用戶能大幅度對照片進行 后期制作,如調整白平衡、曝光程度、顏色對比等設定,也特別適合新手補救拍攝失敗的照片,而且無論在后期制作上有什么改動,相片也能無損地回復到最初狀態,不怕因意外儲存而損失照片。 RAW還有一個好處,例如佳能DPP軟件可以修正鏡頭失光、變形等。
JPEG格式有什么優點?
JPEG格式為一種非常普及的照片格式,差不多所有現代數碼相機都能使用這個格式,絕大部分的計算機上也能打開JPEG文件,使用者也可以隨意設定壓縮程度來保留畫質(最佳的JPEG畫質跟RAW 的非常接近),是一種十分方便的格式。
我該拍攝RAW還是JPEG??
在討論這個問題之前,讓我們看看RAW格式有什么缺點:
清楚RAW的缺點以后,我們便可以看看哪種情況應該選擇RAW或JPEG:
如果你需要拍攝大量的照片,應該考慮使用JPEG,因為其容量需求比較少和可以保留后制及把照片轉換為JPEG的時間;
如果你用作商業拍攝或喜歡后期制作,應該使用RAW,因為后制空間較大;
如果你正進行旅行攝影,可以考慮使用RAW或者RAW+JPEG,因為旅行的地方可能沒法常去,使用RAW讓你一旦拍攝失敗也有較大的機會補救。
后記
其實,現在Photoshop的功能很強大,對于JPEG文件也能通過level或curve來調較曝光、白平衡、 色彩對比等,當然如果需要做大幅度的調整還是RAW文件比較適合的。
攝像頭數據格式
攝像頭的數據輸出格式一般分為CCIR601、CCIR656、RAW RGB等格式,此處說的RGB格式應該就是CCIR601或CCIR656格式。而RAW RGB格式與一般的RGB格式是有區別的。
我們知道,Sensor的感光原理是通過一個一個的感光點對光進行采樣和量化,但在Sensor中,每一個感光點只能感光RGB中的一種顏色。所以,通常所說的30萬像素或130萬像素等,指的是有30萬或130萬個感光點。每一個感光點只能感光一種顏色。
但是,要還原一個真正圖像,需要每一個點都有RGB三種顏色,所以,對于CCIR601或656的格式,在Sensor模組的內部會有一個ISP模塊,會將Sensor采集到的數據進行插值和特效處理,例如:如果一個感光點感應的顏色是R,那么,ISP模塊就會根據這個感光點周圍的G、B感光點的數值來計算出此點的G、B值,那么,這一點的RGB值就被還原了,然后在編碼成601或656的格式傳送給Host。
而RAW RGB格式的Sensor則是將沒個感光點感應到的RGB數值直接傳送給Host,由Host來進行插值和特效處理。
- Raw RGB 每個像素只有一種顏色(R、G、B中的一種);?
- RGB 每個像素都有三種顏色,每一個的值在0~255之間;?
- 在手機攝像頭的測試過程中,由sensor輸出的數據就是Raw data(Raw RGB),經過彩色插值就變成RGB
?sensor輸出的數據格式,主要分兩種:YUV(比較流行),RGB,這就是sonsor的數據輸出;這其中的GRB就是Raw RGB,是sensor的bayer陣列獲取的數據(每種傳感器獲得對應的顏色亮度);?
但是輸出的數據不等于就是圖像的實際數據,模組測試時,就要寫一個軟件,完成數據采集(獲得Raw data)->彩色插值(目的是獲得RGB格式,便于圖像顯示)->圖像顯示;這樣就可以發現整個模組是否正常,有無壞點,臟點的等,檢測出不良品;(軟件的處理過程當中,為了獲得更好的圖像質量,還需要白平衡,gamma校正,彩色校正)?
而在手機的應用中,手機根據相機模組的數據格式,提供一個ISP(主要用于RGB格式的),配合軟件,使照相功能得到應用;
對于SENSOR來說,Bayer RGB和RGB Raw兩者的圖象結構都是BG/GR的(Bayer pattern說的是COLOR FILTER的結構,分為兩種:STD Bayer pattern 與Pair pattern,其中STD Bayer pattern的結構是BG/GR的,而Pair Pattern顧名思義是指BGBG/GRGR的結構,即以四行為一個單位,前兩行是BG的結構,后兩行是GR的結構,這種結構是美光專門為此申請了專利 的,主要是在輸出TV模式(NTSC/PAL制)時用到),由于后端應用時,對RAW DATA圖像的 解碼是按默認的結構來解碼的 ,如BG/GR,因此 Bayer RGB和RGB Raw兩者的圖象結構必須都是BG/GR的,而如果輸出圖像結構是BGBG/GRGR,則不可以直接顯示和解碼的。
Bayer RGB與RGB Raw的主要區別在于兩者輸出前經過的處理不同,Bayer RGB從ADC輸出,只經過了LENS SHADING CORRECTION,GAMMA等模塊處理而后就直接輸出,而RGB Raw則經過了整個ISP模塊的處理,最終是經過YUV422的數據轉化而來的。
??很多人對YUV數據格式不清楚,以至于在做視頻的時候出現了一些不可預知的錯誤(比如說圖像帶有點、顏色不對等)。今晚是周末放假,我就抽點時間來給大家介紹一下。
? ? ? ?提示: 讀下面的文字時,希望大家結合圖片看,這樣更易理解
? ? ? ?在YUV420中,一個像素點對應一個Y,一個2X2的小方塊對應一個U和V。對于所有YUV420圖像,它們的Y值排列是完全相同的,因為只有Y的圖像就是灰度圖像。YUV420sp與YUV420p的數據格式它們的UV排列在原理上是完全不同的。420p它是先把U存放完后,再存放V,也就是說UV它們是連續的。而420sp它是UV、UV這樣交替存放的。(見下圖)
有了上面的理論,我就可以準確的計算出一個YUV420在內存中存放的大小。
width * hight =Y(總和)
U = Y / 4 ?
V = Y / 4
所以YUV420 數據在內存中的長度是 width * hight * 3 / 2,
假設一個分辨率為8X4的YUV圖像,它們的格式如下圖:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?YUV420sp格式如下圖 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?YUV420p數據格式如下圖
? ? ? ??? ? ? ? ? ? ? ? ?
有了上邊的理論,我們可以對Android攝像頭采集的YUV420sp數據做很多的轉換,下面我寫一個旋轉90度的算法。
代碼如下:
結合上面的旋轉算法,我在Android平臺寫了一個測試項目。
運行結果效果如下:
上邊視頻是攝像頭的預覽數據(預覽數據的圖像截圖看不見,郁悶啊),所以我為了能讓大家看到效果,專門拍了一張照片。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
如需要Android平臺測試源碼的,請留下郵箱。
數字視頻CCIR 601編碼標準
一、采樣頻率:為了保證信號的同步,采樣頻率必須是電視信號行頻的倍數。CCIR為NTSC、PAL和SECAM制式制定的共同的電視圖像采樣標準:
fs=13.5MHz
這個采樣頻率正好是PAL、SECAM制行頻的864倍,NTSC制行頻的858倍,可以保證采樣時采樣時鐘與行同步信號同步。對于4:2:2的采樣格式,亮度信號用fs頻率采樣,兩個色差信號分別用fs/2=6.75MHz的頻率采樣。由此可推出色度分量的最小采樣率是3.375MHz。
二、分辨率:根據采樣頻率,可算出對于PAL和SECAM制式,每一掃描行采樣864個樣本點;對于NTSC制則是858個樣本點。由于電視信號中每一行 都包括一定的同步信號和回掃信號,故有效的圖像信號樣本點并沒有那么多,CCIR 601規定對所有的制式,其每一行的有效樣本點數為720點。由于不同的制式其每幀的有效行數不同(PAL和SECAM制為576行,NTSC制為484 行),CCIR定義720×484為高清晰度電視HDTV(High Definition TV)的基本標準。實際計算機顯示數字視頻時,通常采用下表的參數:
電視制式??? 分辨率???? ?幀 率
NTSC??????? 640×480??? ?30
PAL????????? ?768×576????? 25
三、數據量:CCIR 601規定,每個樣本點都按8位數字化,也即有256個等級。但實際上亮度信號占220級,色度信號占225級,其它位作同步、編碼等控制用。如果按fs的采樣率、4:2:2的格式采樣,則數字視頻的數據量為:
13.5(MHz)×8(bit)+2×6.75(MHz)×8(bit) = 27Mbyte / s
同樣可以算出,如果按4:4:4的方式采樣,數字視頻的數據量為每秒40兆字節!按每秒27兆字節的數據率計算,一段10秒鐘的數字視頻要占用270兆字 節的存儲空間。按此數據率,一張680兆字節容量的光盤只能記錄約25秒的數字視頻數據信息,而且即使目前高倍速的光驅,其數據傳輸率也遠遠達不到每秒 27兆字節的傳輸要求,視頻數據將無法實時回放。這種未壓縮的數字視頻數據量對于目前的計算機和網絡來說無論是存儲或傳輸都是不現實的,因此,在多媒體中應用數字視頻的關鍵問題是數字視頻的壓縮技術。
CCIR601和CCIR656標準的區別
關于這兩種信號的區別:
ITU-R BT 601:16位數據傳輸;21芯;Y、U、V信號同時傳輸。
ITU-R BT 656:9芯,不需要同步信號;8位數據傳輸;串行視頻傳輸;傳輸速率是601的2倍;先傳Y,后傳UV。
CCIR601要通過行、場同步兩根信號線來傳遞行、場同步信息;
CCIR656不需要這兩根信號線,它只通過8位數據線實現“軟”同步。CCIR656=CCIR601+HSYNC+VSYNC
656輸出的是串行數據,行場同步信號嵌入在數據流中;
601是傳輸的是并行數據,行場同步有單獨輸出;
656只是數據傳輸接口而已,可以說是作為601的一個傳輸方式。
簡單的說ITU-R BT.601是“演播室數字電視編碼參數” 標準,而ITU-R BT.656則是ITU-R BT.601附件A中的數字接口標準,用于主要數字視頻設備(包括芯片)之間采用27Mhz/s并口或243Mb/s串行接口的數字傳輸接口標準。
CCIR601號建議的制定,是向著數字電視廣播系統參數統一化、標準化邁出的第一步。在該建議中,規定了625和525行系統電視中心演播室數字編碼的基本參數值。
601號建議單獨規定了電視演播室的編碼標準。它對彩色電視信號的編碼方式、取樣頻率、取樣結構都作了明確的規定。它規定彩色電視信號采用分量編碼。所謂分量編碼就是彩色全電視信號在轉換成數字形式之前,先被分離成亮度信號和色差信號,然后對它們分別進行編碼。分量信號(Y、B -- Y、R -- Y)被分別編碼后,再合成數字信號。 它規定了取樣頻率與取樣結構。
例如:在4:2:2等級的編碼中,規定亮度信號和色差信號的取樣頻率分別為13.5MHZ和6.75MHZ,取樣結構為正交結構,即按行、場、幀重復,每 行中的R-Y和B-Y取樣與奇次(1,3,5……)Y的取樣同位置,即取樣結構是固定的,取樣點在電視屏幕上的相對位置不變。 它規定了編碼方式。對亮度信號和兩個色差信號進行線性PCM編碼,每個取樣點取8比特量化。同時,規定在數字編碼時,不使用A/D轉換的整個動態范圍,只 給亮度信號分配220個量化級,黑電平對應于量化級16,白電平對應于量化級235。為每個色差信號分配224個量化級,色差信號的零電平對應于量化級 128。
綜上所述,我們知道,分量信號的編碼數據流是很高的。以4:2:2編碼標準為例,其比特流為:13.5×8+6.75×8×2=216Mb/S。若采用4:4:4編碼方式,即對復合信號直接編碼,其抽樣頻率取為13.3×8=106.4 Mb/S。
PS:我們可以認為CCIR601即“ITU-R BT.601-5”,“ITU-R BT.656-4"即CCIR601。
656只有8位DATA+CLK,601有8位DATA+CLK+HSYNC+VSYNC,還有16位DATA+CLK+HSYNC+VSYNC。
656把HSYNC、VSYNC插到數據中,601的數據線只有數據
總結
以上是生活随笔為你收集整理的Sensor信号输出YUV、RGB、RAW DATA、JPEG 4种方式区别---转的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【君思智慧园区】智慧园区建设规划方案
- 下一篇: 贝叶斯网络分析kaggle泰坦尼克号数据