关于摄像头的RAW数据与YUV数据
1. RAW与YUV
RAW数据:Sensor输出的原始数据,一般有RAW8、RAW10、RAW12等,分别表示一个像素点有8bit数据、10bit数据、12bit数据。这是Sensor输出的最原始的数据,不论视频最后转成什么格式,都首先需要从RAW格式转。
YUV数据:RAW数据经过转换之后的数据。摄像头中最常用的是YUV 422格式,及Y-U-Y-V格式。以YUV422 8bit为例,每个像素点都包含亮度分量(8bit)以及UV两个颜色分量中的某一个(8bit)。因此每个像素点需要16bit数据。如果使用YUV422 10bit,那每个像素点需要20bit来描述。
2. 数据格式导致的成像效果差异
市面上最常见的Sensor数据格式为RAW10。最常见的YUV格式为YUV422 8bit。将RAW10转成YUV 8bit时,虽然每个像素点的数据量由10bit变成了16bit,但实际上每个像素点反而会损失2个bit的精度。
根据SNR的计算公式(实际还需要考虑Sensor自身SNR性能,叠加之后才是整个系统的SNR):
将RAW10转成YUV422 8bit后,损失的2bit精度会导致12.04dB的SNR损失。
根据上述公式,在使用8bit的数据格式时,SNR=49.92dB。而一般Sensor的SNR大概为40dB。SNR的瓶颈在Sensor而不在数据位宽上,因此将RAW10格式转换为YUV422 8bit造成的实际成像损失只有在Sensor成像效果非常好的情况下才会有所体现。
综合上述讨论:
数据格式 | 每个像素点数据量 | 数据位宽的SNR性能 |
RAW10 | 10bit | 61.96dB |
YUV422 8bit | 16bit | 49.92dB |
理论上讲,如果用YUV422 10bit转成RAW10,是不是就不会有SNR损失了呢?
只要是存在四舍五入的情况就可能有SNR的损失。转成RAW10还是存在四舍五入的情况的。
师弟好,无意中搜到你的博客了,哈哈哈——by czl
蔡?好久不见了啊~
您好,有问题想和您请教一下,普通的sensor是RGGB列阵,那为什么YUV的UV只代表两种颜色分量呢
有了亮度之后,第三个颜色就可以解出来呀