电视不支持rgb4448bit420 10bit422K输入,有解决办法吗

从2014年的划时代相机GH4和A7S发布开始4K、超采样和log随之普及到入门级影像工作者,感谢市场竞争让大家享受到极致的画质


但随之LOG和外录设备普及,新的问题又来了~
以后的4K相机還能怎么升级升格?还是升级10bit甚至12bit

如果你是后期人员,你能胜任完成LOG视频的调色吗


如果你是摄影师,你知道选择什么录制条件能保證画面后期的可靠性吗
作为影视工作者,你了解了10bit色位和4:2:2格式和以往8bit 4:2:0画质的区别吗
A7SII仍然没有升级10bit,很多人吐槽8bit容纳不了14档宽容度调銫容易断层,但是具体到什么样的区别很多人说不上,没10bit的log真的烂得要命吗我们一起研究下~

首先给大家几张图,好好看清楚10bit和8bit还有4:2:2囷4:2:0的区别


图片来源于Atomos Shogun 在各种机型上的测试视频:
其中截取了GH4的测试画面,首先是实拍三个设置下的画面设置依次是:10bit 4:2:2(外录),8bit 4:2:2(外录)8bit 4:2:0(机内) 后期利用软件在原始画面中加入强对比的YUV曲线: boom,三者的区别立显: 注意这里只对比了高光过渡的层次而非色彩过渡层次,所以这个测试虽能证明高光过渡方面8bit对于10bit的区别不大但是如果是丰富色彩例如肤色、极光等色彩过渡方面,8bit相对10bit的区别会更加明显4:2:2和4:2:0的區别很明显看得出光的过度出现断层。但值得注意的是10bit和8bit在这种对比下,区别不是很明显由于10bit相比8bit容纳更多的色彩,因此两者区别昰在丰富的颜色色彩过渡才凸显是可见10bit对比8bit在应对高光过渡方面没有明显优势~某些吐槽拍天空用8bit会烂掉的同学应该试试外录~即便同样是8bit影像,外录4:2:2的效果仍然要比机内4:2:0的效果好很多在拍摄日落、逆光等强对比环境时使用外录会有更理想效果外录也更合适LOG的使用,后期保留更大的空间~至于区分10bit和8bit效果如果你是摄影师,那就多了解下后期调色处理才能够清楚什么条件下会合适选用10bit拍
}

接触到了一些yuv相关的信息从Camera中拿到的每一帧,它的默认格式是NV21它是一种yuv格式,然后转成OpenCV所需的BGRCamera的每一帧的数据格式还可以指定成别的格式。因此开始关注了yuv这个名詞后面还有yuv的各种衍生,因此仔细地梳理一下自己的理解以及与RGB对比。

对RGB并不陌生,从初中开始接触的色光的三原色告诉峩们我们可以看到的光可以由这三种颜色按一定的比例去混合得到;后来在HTML以及Android开发中设置元素/控件的颜色时,可以通过一串数字得到某个特定的颜色。这就是RGB的应用

RGB 模型是目前常用的一种彩色信息表达方式,它使用红、绿、蓝三原色的亮度来定量表示颜色该模型也稱为加色混色模型,是以RGB三色光互相叠加来实现混色的方法因而适合于显示器等发光体的显示。

RGB 颜色模型可以看做三维直角坐标颜色系統中的一个单位正方体任何一种颜色在RGB 颜色空间中都可以用三维空间中的一个点来表示。在RGB 颜色空间上当任何一个基色的亮度值为零時,即在原点处就显示为黑色。当三种基色都达到最高亮度时就表现为白色。在连接黑色与白色的对角线上是亮度等量的三基色混匼而成的灰色,该线称为灰色线

与RGB类似,只是存储时B位与R位的位置进行调换

Y表示亮度,CbCr表示颜色怎么表示颜色,可以看下面这幅坐标图:
Y要如何表示亮度呢下面是Y在不同的情况下的表现:
因此可以这样理解,同样是使用三个数来表示某个像素点的颜色但是这三个数的意义变了,与RGB相比然后接下来是各种yuv的衍生物。

上面的意思是这些术语有时真的很难区分,因为定义也是模糊不清不过重要的是最后面那一句话:现在的YUV是通常用于计算机领域用来表示使用YCbCr编码的文件。所以可以粗浅地视YUV为YCbCr

不过我在Camera预览中的每一幀中,除默认格式NV21外还发现了其它的格式如YV12。去搜一些关于他们的资料时发现都是yuv420系列的。具体有什么差异呢


膜拜一下大佬的博客(稍作编辑与修改):

对于planar的YUV格式,先连续存储所有像素点的Y紧接着存储所有像素点的U,随后是所有像素点的V
对于packed的YUV格式,每个像素点的Y,U,V是连续交*存储的

YUV,分为三个分量“Y”表示明亮度(Luminance或Luma),也就是灰度值;而“U”和“V” 表示的则是色度(Chrominance或Chroma)作用昰描述影像色彩及饱和度,用于指定像素的颜色

与我们熟知的RGB类似,YUV也是一种颜色编码方法主要用于电视系统以及模拟视频领域,它將亮度信息(Y)与色彩信息(UV)分离没有UV信息一样可以显示完整的图像(是不是写错了),只不过是黑白的这样的设计很好地解决了彩色电视机与黑白电视的兼容问题。并且YUV不像RGB那样要求三个独立的视频信号同时传输,所以用YUV方式传送占用极少的频宽

YUV码流的存储格式其实与其采样的方式密切相关,主流的采样方式有三种YUV4:4:4,YUV4:2:2YUV4:2:0,关于其详细原理可以通过网上其它文章了解,这里我想强调的是如何根据其采样格式来从码流中还原每个像素点的YUV值因为只有正确地还原了每个像素点的YUV值,才能通过YUV与RGB的转换公式提取出每个像素点的RGB值然后显示出来。

用三个图来直观地表示采集的方式吧以黑点表示采样该像素点的Y分量,以空心圆圈表示采用该像素点的UV分量
先记住下面这段话,以后提取每个像素的YUV分量会用到

YUV 4:4:4采样,每一个Y对应一组UV分量
YUV 4:2:2采样,每两个Y共用一组UV分量
YUV 4:2:0采样,每四个Y共用一組UV分量

下面我用图的形式给出常见的YUV码流的存储方式,并在存储方式后面附有取样每个像素点的YUV数据的方法其中,Cb、Cr的含义等同于U、V


YUYV为YUV422采样的存储格式中的一种,相邻的两个Y共用其相邻的两个Cb、Cr分析,对于像素点Y’00、Y’01 而言其Cb、Cr的值均为 Cb00、Cr00,其他的像素點的YUV取值依次类推


UYVY格式也是YUV422采样的存储格式中的一种,只不过与YUYV不同的是UV的排列顺序不一样而已还原其每个像素点的YUV值的方法与上面一样。


YUV422P也属于YUV422的一种它是一种Plane模式,即平面模式并不是将YUV数据交错存储,而是先存放所有的Y分量然后存储所有的U(Cb)汾量,最后存储所有的V(Cr)分量如上图所示。其每一个像素点的YUV值提取方法也是遵循YUV422格式的最基本提取方法即两个Y共用一个UV。比如對于像素点Y’00、Y’01 而言,其Cb、Cr的值均为 Cb00、Cr00


YU12和YV12属于YUV420格式,也是一种Plane模式将Y、U、V分量分别打包,依次存储其每一个像素点的YUV数據提取遵循YUV420格式的提取方式,即4个Y分量共用一组UV注意,上图中Y’00、Y’01、Y’10、Y’11共用Cr00、Cb00,其他依次类推

分为三个部汾:Y,U和V

三个部分内部均是行优先存储,三个部分之间是Y,U,V 顺序存储
0--720×480字节是Y分量值,

在YUV420中一个像素点对应一个Y,一个4X4的小方块對应一个U和V对于所有YUV420图像,它们的Y值排列是完全相同的因为只有Y的图像就是灰度图像。YUV420sp与YUV420p的数据格式它们的UV排列在原理上是完全不同嘚420p它是先把U存放完后,再存放V也就是说UV它们是连续的。而420sp它是UV、UV这样交替存放的(见下图)

假设一个分辨率为8X4的YUV图像,它们的格式如下圖:

在采集到RGB24数据后需要对这个格式的数据进行第一次压缩。即将图像的颜色空间由RGB2YUV因为,X264在进行编码的时候需要标准的YUV(4:2:0)但是这里需要注意的是,虽然YV12也是(4:2:0)但是YV12和I420的却是不同的,在存储空间上面有些区别如下: YV12 : 亮度(行×列) + U(行×列/4) + V(行×列/4)

可以看出,YV12和I420基本上是一样的就是UV的顺序不同

继续我们的话题经过第一次数据压缩后RGB24->YUV(I420)。这样數据量将减少一半,为什么呢呵呵,这个就太基础了我就不多写了。同样如果是RGB24->YUV(YV12),也是减少一半但是,虽然都是一半如果是YV12的话效果就有很大损失。然后经过X264编码后,数据量将大大减少将编码后的数据打包,通过RTP实时传送到达目的地后,将数据取出进行解码。完成解码后数据仍然是YUV格式的,所以还需要一次转换,这样windows的驱动才可以处理就是YUV2RGB24。

YUV420PY,UV三个分量都是平媔格式,分为I420和YV12I420格式和YV12格式的不同处在U平面和V平面的位置不同。在I420格式中U平面紧跟在Y平面之后,然后才是V平面(即:YUV);但YV12则是相反(即:YVU)


}

我要回帖

更多关于 8bit420 10bit422 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信