YUV、RGB、RAW DATA 3种Sensor输出格式 详解
簡單來講,
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。
大概區分如下:
1 YUV一個像素占2B,若是像素過高在高時鐘下基帶芯片處理不過來,JPEG數據量就要小的多,因此不是YUV對基帶芯片有要求,而是基帶芯片對輸出數據速率有要求。
2 RGB565通常用在很低端的基帶芯片上,直接往屏上刷。YUV輸出亮度信號沒有任何損失,而色偏信號人眼并非特別敏感,RGB565輸出格式是R5G3G3B5會丟掉不少原始信息,因此YUV圖像質量和穩定性要比RGB565好的多
3 RAW數據每一個像素就1B,數據量要少不少,通常5M以上sensor就只輸出RAW數據以保證比較快的輸出速度,后端掛一個DSP來處理輸出的數據。
下面分別具體介紹3種方式的區別
rawRGB? ? ?
? ? ? ? 圖像采集的過程為:光照在成像物體被反射 -> 鏡頭匯聚 -> Sensor光電轉換-> ADC轉換為rawRGB
因為sensor上每個像素只采集特定顏色的光的強度,因此sensor每個像素只能為R或G或B,形成的數據就成為了rawRGB數據。
???????? rawRGB數據是sensor的經過光電轉換后通過ADC采樣后直接輸出數據,是未經處理過的數據,表示sensor接受到的各種光的強度。
???????? 對于不同的sensor,在其內部形成的rawRGB數據格式也是有區別的。rawRGB數據排列格式有四種如下表(這里的格式是對于2*2像素矩陣而言的):
假設一個sensor的像素是8*8(分辨率為8*8),那么這個sensor就有8*8個感光點,每個感光點就是一個晶體管。那么對于上表中四種排列格式的rawRGB數據如下圖所示:
?由上圖可以看出,每一種格式的rawRGB數據的G分量都是B、R分量的兩倍,是因為人眼對于綠色的更加敏感,所以加重了其在感光點的權重,增加了對綠色信息的采樣。
????????對于sensor輸出的rawRGB數據,需要送到ISP(圖像信號處理)中處理,得到RGB數據,一般采用插值處理。在進行ISP處理時,ISP需要知道sensor輸出的rawRGB數據的順序與大小,其中順序一般通過配置ISP的pattern寄存器來實現,大小一般配置在ISP的輸入格式控制寄存器中。
????????之所以有個rawRGB這種格式的數據,這樣做的目的一般是為了降低感光器件的物理工藝難度,然后通過ISP處理還原出更真實的圖像信息。
RGB
? ? ? ? 在數字化的時代,需要一種標準來量化自然界的各種顏色。RGB就是一種在數字化領域表示顏色的標準,也稱作一種色彩空間,通過用三原色R、G、B的不同的亮度值組合來表示某一種具體的顏色。注意,RGB里面存的是顏色的亮度值,而不是色度值。
? ? ? ? 在實際應用中,RGB存在著許多的格式,之所以存在著這些格式,是因為隨著技術的進步,系統的更迭,不同的應用場景和設備環境,對顏色表達的需求是不同的。
常用的RGB格式如下表所示:
YUV
? ? ? ? YUV是一種色彩編碼方法,Y表示亮度,U和V表示色度。只有Y就是黑白圖像,再加上UV就是彩色圖像了。YUV的一個好處就是讓彩色系統和傳統黑白系統很好的兼容,同時利用了人類視覺系統對亮度的敏感度比對色度高。
? ? ? ? 在一般應用中,人們所說的YUV就是YCbCr,這我認為是從狹義的角度理解(畢竟現在是數字信號的天下,YCbCr恰好是描述數字信號的)。廣義上說,YUV是一種色彩空間分類,一種顏色模型,具體的類型有Y'UV, YUV, YCbCr,YPbPr等,目前市場上常用數字的視頻信號和視頻/圖片文件中的編碼格式,用YCbCr來描述,于是人們口中的YUV就代指的是YCbCr,常見應用如H.264/H.265碼流、MPEG、JPEG等。
? ? ? ? YCbCr中的Cb指藍色色度分量,而Cr指紅色色度分量。
? ? ? ? YUV和RGB的相同點:都是用來表達顏色的數學方法;
? ? ? ? YUV和RGB的相同點:對顏色的描述思路和方法不同。RGB將一個顏色拆解為3個純色的亮度組合,YUV將一個顏色分解為一個亮度和2個色度的組合。
? ? ? ? 那引入YUV這種色彩空間的好處具體有啥呢?
?1. ? YUV提取Y亮度信號,可以直接給黑白電視使用,兼容黑白電視
?2. ?人眼對UV的敏感性小于亮度,這樣我們適當減少uv的量,而不影響人的感官。所以才會有多種格式的 YUV描述,如420、422、444。
3. ?伴隨顯示設備分辨率的提升,bt組織也針對yuv2rgb設定了不同的系數,來最好的從YUV轉換到RGB。
4.? YUV格式可以比RGB格式儲存空間小。
? ? ? ? 那RGB存在的作用是什么呢?
? ? ? ? 目前人類發明的所有彩色的輸入輸出設備,本質上都只支持RGB數據。哪怕設備允許YUV的輸入輸出,那也是經過內部的數據轉換而間接支持。
YUV采樣
??????? 主流采樣方式有如下三種:
?????????????????? YUV 4:4:4 采樣
?????????????????? YUV 4:2:2 采樣
?????????????????? YUV 4:2:0 采樣
??????? 1.YUV 444 采樣
??????? 全采樣,對每個像素點的的YUV分量都進行采樣,這樣的三個分量信息量完整。
??????? 2. YUV 422 采樣
??????? 部分采樣,可節省1/3存儲空間和1/3的數據傳輸量。UV分量是Y分量采樣的一半,Y分量和UV 分量按照2 : 1的比例采樣。如果水平方向有10個像素點,那么采樣了10個Y分量,而只采樣了5個UV分量。其中,每采樣過一個像素點,都會采樣其Y分量,而U、V分量就會間隔一個采集一個。
??????? 3.YUV 420 采樣
??????? 部分采樣,可節省1/2存儲空間和1/2的數據傳輸量。YUV 420采樣,并不是指只采樣U分量而不采樣V分量。而是指,在每一行掃描時,只掃描一種色度分量(U或者V),和Y分量按照2 : 1的方式采樣。比如,第一行掃描時,YU 按照 2 : 1的方式采樣,那么第二行掃描時,YV分量按照 2:1的方式采樣。對于每個色度分量來說,它的水平方向和豎直方向的采樣和Y分量相比都是2:1 。
YUV存儲格式
? ? ? ? YUV存儲格式通常有兩大類:打包(packed)格式和平面(planar)格式。前者將YUV分量存放在同一個數組中,通常是幾個相鄰的像素組成一個宏像素(macro-pixel);而后者使用三個數組分開放 YUV 三個分量,就像是一個三維平面一樣。
YUV422 Planar (YUV422P,也稱為I422格式)
? ? ? ? 這里,Y\U\V數據是分開存放的,每兩個水平Y采樣點,有一個U和一個V采樣點,如下圖:
? ? ? ? 也就是說,U0V0由Y0、Y1共用,這樣整幅圖像較RGB就減少了1/3的存儲空間。
? ? ? ? YUV 422P 格式,又叫做 I422格式,采用的是平面格式進行存儲,先存儲所有的 Y 分量,再存儲所有的 U 分量,再存儲所有的 V 分量。
? ? ? ? 假如一個8*2像素的圖像的該格式的存儲分布如下圖:
YUV422 packed
? ? ? ? 此格式有兩種情況:分為YUYV格式和UYVY格式。
? ? ? ? YUYV格式
? ? ? ? ? ? ? ?YUYV 格式是采用打包格式進行存儲的,指每個像素點都采用 Y 分量,但是每隔一個像素采樣它的UV分量。
? ? ? ? ? ? ? ?假如一個8*2像素的圖像的該格式的存儲分布如下圖:
? ? ? ? UYVY格式
? ? ? ? ? ? ? ? UYVY 格式也是采用打包格式進行存儲,它的順序和YUYV相反,先采用U分量再采樣Y分量。
? ? ? ? ? ? ? ? 假如一個8*2像素的圖像的該格式的存儲分布如下圖:
YUV420 Planar (YUV420P)
? ? ? ? 這個格式跟YUV422 Planar 類似,但對于U和V的采樣在水平和垂直方向都減少為2:1,根據采樣規則如下圖:
? ? ? ? 也就是說,U0V0由Y0、Y1、YW、YW+1共用,這樣整幅圖像較RGB就減少了1/2的存儲空間。
? ? ? ? YU12和YV12格式都屬于YUV 420P類型,即先存儲Y分量,再存儲U、V 分量,區別在于:YU12是先Y再U后V,而YV12是先Y再V后U 。
? ? ? ? YU12格式(也稱為I420格式)
? ? ? ? ? ? ? ? YU12是先Y再U后V。
? ? ? ? ? ? ? ? 假如一個8*2像素的圖像的該格式的存儲分布如下圖:
? ? ? ? YV12格式
? ? ? ? ? ? ? ? YV12是先Y再V后U
? ? ? ? ? ? ? ? 假如一個8*2像素的圖像的該格式的存儲分布如下圖:
YUV422 Semi-Planar (YUV422SP)
? ? ? ? Semi 是“半”的意思,個人理解這個是半平面模式,這個格式的數據量跟YUV422 Planar的一樣,但是U、V是交叉存放的。?????????????????? ?????????????????? ????????
? ? ? ? 假如一個8*2像素的圖像的該格式的存儲分布如下圖:
YUV420 Semi-Planar (YUV420SP)
? ? ? ? 這個格式的數據量跟YUV420 Planar的一樣,但是U、V是交叉存放的。
? ? ? ? NV12和NV21格式都屬于 YUV420SP 類型。它也是先存儲了Y分量,但接下來并不是再存儲所有的U或者V分量,而是把UV分量交替連續存儲。
? ? ? ? NV12
? ? ? ? ? ? ? ? NV12是IOS中有的模式,它的存儲順序是先存Y分量,再UV進行交替存儲。
? ? ? ? ? ? ? ? 假如一個8*2像素的圖像的該格式的存儲分布如下圖:
? ? ? ? NV21
? ? ? ? ? ? ? ? NV21是安卓中有的模式,它的存儲順序是先存Y分量,在VU交替存儲。
? ? ? ? ? ? ? ? 假如一個8*2像素的圖像的該格式的存儲分布如下圖:
總結
以上是生活随笔為你收集整理的YUV、RGB、RAW DATA 3种Sensor输出格式 详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Fluent 三种初始化使用方法
- 下一篇: Sensor信号输出YUV、RGB、RA