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