PAL或者NTSC制式 BT.656(YUV 4:2:2) 转化为BMP格式图片(RGB)算法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PAL或者NTSC制式 BT.656(YUV 4:2:2) 转化为BMP格式图片(RGB)算法相关的知识,希望对你有一定的参考价值。
最好是VHDL语言,有适当的原理说明
答案能用,再追加200分
这个问题和http://zhidao.baidu.com/question/152128032.html 差不多,如果你能解决,两个问题的分都给你,一共900分,谢谢了
颜色空间是一个三维坐标系统,每一种颜色由一个点表示。在 RGB 颜色空间中,红,绿,蓝是基本元素。RGB 格式是显示器通常使用的格式。在 YUV 空间中,每一个颜色有一个亮度信号 Y,和两个色度信号 U 和 V。亮度信号是强度的感觉,它和色度信号断开,这样的话强度就可以在不影响颜色的情况下改变。YUV 格式通常用于 PAL制,即欧洲的电视传输标准,而且缺省情况下是图像和视频压缩的标准。
YUV 使用RGB的信息,但它从全彩色图像中产生一个黑白图像,然后提取出三个主要的颜色变成两个额外的信号来描述颜色。把这三个信号组合回来就可以产生一个全彩色图像。
YUV 使用红,绿,蓝的点阵组合来减少信号中的信息量。Y 通道描述 Luma 信号,它与亮度信号有一点点不同,值的范围介于亮和暗之间。 Luma 是黑白电视可以看到的信号。U (Cb) 和 V (Cr) 通道从红 (U) 和蓝 (V) 中提取亮度值来减少颜色信息量。这些值可以从新组合来决定红,绿和蓝的混合信号。
YUV和RGB的转换: ★这里是不是不是yuv而是Y Cb Cr???★
Y = 0.299 R + 0.587 G + 0.114 B
U = -0.1687 R - 0.3313 G + 0.5 B + 128
V = 0.5 R - 0.4187 G - 0.0813 B + 128
R = Y + 1.402 (V-128)
G = Y - 0.34414 (U-128) - 0.71414 (V-128)
B = Y + 1.772 (U-128)
以前,一直没明白yuv和YcbCr之间的差异,想必有些朋友也会有同样的疑惑。所以,我看完之后就记载下来了。
一、和rgb之间换算公式的差异
yuv<-->rgb
Y'= 0.299*R' + 0.587*G' + 0.114*B'
U'= -0.147*R' - 0.289*G' + 0.436*B' = 0.492*(B'- Y')
V'= 0.615*R' - 0.515*G' - 0.100*B' = 0.877*(R'- Y')
R' = Y' + 1.140*V'
G' = Y' - 0.394*U' - 0.581*V'
B' = Y' + 2.032*U'
yCbCr<-->rgb
Y’ = 0.257*R' + 0.504*G' + 0.098*B' + 16
Cb' = -0.148*R' - 0.291*G' + 0.439*B' + 128
Cr' = 0.439*R' - 0.368*G' - 0.071*B' + 128
R' = 1.164*(Y’-16) + 1.596*(Cr'-128)
G' = 1.164*(Y’-16) - 0.813*(Cr'-128) - 0.392*(Cb'-128)
B' = 1.164*(Y’-16) + 2.017*(Cb'-128)
Note: 上面各个符号都带了一撇,表示该符号在原值基础上进行了gamma correction
二、来源上的差异
yuv色彩模型来源于rgb模型,该模型的特点是将亮度和色度分离开,从而适合于图像处理领域。
应用:basic color model used in analogue color TV broadcasting.用在模拟彩色电视广播的基本颜色模型中
YCbCr模型来源于yuv模型。YCbCr is a scaled and offset version of the YUV color space.
应用:数字视频,ITU-R BT.601 recommendation
ps:
通过上面的比较可以确定,我们在h.264,mpeg等编码标准中用的yuv其实是YcbCr,大家不要被名称搞混淆了。
人类视觉系统(HVS)相比亮度来说对于颜色不是那么敏感的。在RGB颜色空间中,三种颜色被平等地看待,并用相同的分辨率
存放起来。但是通过把亮度与颜色信息分离,并对亮度值取更高的分辨率可以更有效地表示一个颜色图像。
YCbCr颜色空间和它的变换(通常写为YUV)是一种流行而高效的表示一个颜色图像的方法。Y是亮度值,由R,G,B的加权平均可以
得到: Y=krR + kgG + kbB
这里k是加权因子。
颜色信号可以由不同的颜色差别来表示:
Cb = B-Y
Cr = R-Y
Cg = G-Y
对于一个颜色图像的完整的描述由给定Y和三个色差:Cb,Cr,Cg来表示。
目前为止,我们的表示方法好像并不那么好,因为相比RGB表示来说,我们这次用了四个参数。然后Cb+Cr+Cg是一个常数,那么
我们只需要两个色度参数就可以了,第三个可以通过其他两个计算出来。在YCbCr空间中,只有Y和Cb,Cr值被传输和存储,而且
Cb和Cr的分辨率可以比Y低,因为人类视觉系统对于亮度更加敏感。这就减少了表示图像的数据量。通常的观察情况下,RGB和
YCbCr表示的图像看上去没有什么不同。对于色度采用比亮度低的分辨率进行采样是一种简单而有效的压缩办法。
一个RGB图像可以在捕捉之后转换为YCbCr格式用来减少存储和传输负担。在显示图象之前,再转回为RGB.注意没有必要去指明
分别的加权值kg(因为kb+kr+kg=1),而且G可以从YCbCr中解压出来,这说明不需要存储和传输Cg参数。
Y = kr R + (1-kb-kr)G + kb B
Cb = 0.5/(1-kb) * (B-Y)
Cr = 0.5/(1-kr) * (R-Y)
R = Y + (1-kr)/0.5 * Cr
G = Y - 2kb(1-kb)/(1-kb-kr) * Cb - 2kr(1-kr)/(1-kb-kr) * Cr
B = Y + (1-kb)/0.5 * Cb
ITU-R的BT.601决议定义了kb=0.114,kr=0.299,那么代换参数就有了如下等式:
Y = 0.299R + 0.587G + 0.114B
Cb = 0.564(B - Y )
Cr = 0.713(R - Y )
R = Y + 1.402Cr
G = Y - 0.344Cb - 0.714Cr
B = Y + 1.772Cb
2.4.3 YCbCr采样格式
4:4:4采样就是说三种元素Y,Cb,Cr有同样的分辨率,这样的话,在每一个像素点上都对这三种元素进行采样.数字4是指在水平方向
上对于各种元素的采样率,比如说,每四个亮度采样点就有四个Cb的Cr采样值.4:4:4采样完整地保留了所有的信息值.4:2:2采样中
(有时记为YUY2),色度元素在纵向与亮度值有同样的分辨率,而在横向则是亮度分辨率的一半(4:2:2表示每四个亮度值就有两个Cb
和Cr采样.)4:2:2视频用来构造高品质的视频彩色信号.
在流行的4:2:0采样格式中(常记为YV12)Cb和Cr在水平和垂直方向上有Y分辨率的一半.4:2:0有些不同,因为它并不是指在实际采样
中使用4:2:0,而是在编码史中定义这种编码方法是用来区别于4:4:4和4:2:2方法的).4:2:0采样被广泛地应用于消费应用中,比如
视频会议,数字电视和DVD存储中。因为每个颜色差别元素中包含了四分之一的Y采样元素量,那么4:2:0YCbCr视频需要刚好4:4:4
或RGB视频中采样量的一半。
4:2:0采样有时被描述是一个"每像素12位"的方法。这么说的原因可以从对四个像素的采样中看出.使用4:4:4采样,一共要进行12次
采样,对每一个Y,Cb和Cr,就需要12*8=96位,平均下来要96/4=24位。使用4:2:0就需要6*8=48位,平均每个像素48/4=12位。
在一个4:2:0隔行扫描的视频序列中,对应于一个完整的视频帧的Y,Cb,Cr采样分配到两个场中。可以得到,隔行扫描的总采样数跟
渐进式扫描中使用的采样数目是相同的。 参考技术A PAL采用YUV Color Model.
|Y| |0.299 0.587 0.114||R|
|U| = |-0.148 -0.289 0.437||G|
|V| |0.615 -0.515 -1.00||B|
|R| |1 0 1.140||Y|
|G|=|1 -0.395 -0.581||U|
|B| |1 2.032 0 ||V|
NTSC采用的就是CRT显示器的RGB颜色空间. 参考技术B 公式可以告诉你,但是具体写程序还要根据你自己的实际情况。
YUV to RGB
R = Y + 1.140V
G = Y - 0.395U - 0.581V
B = Y + 2.032U
RGB to YUV
Y = 0.299R + 0.587G + 0.114B
U = -0.147R - 0.289G + 0.436B=0.492 (B-Y)
V = 0.615R - 0.515G - 0.100B=0.877 (R-Y)
NTSC PAL 介绍
NTSC-J是日本地区的模拟 电视系统和视频显示标准,于2011年7月24日在全国47个县中的44个地区停止运营。模拟广播于2012年3月31日在2011年Tōhoku摧毁的三个县停止地震和海啸(岩手县,宫城县,福岛县)。
虽然NTSC-M是官方标准,但“J”更像是营销定义(下文)中使用的口语指标,但不是官方术语。
它基于“常规” NTSC,但略有不同。NTSC-J信号的黑电平和消隐电平是相同的(在0 IRE),因为它们是另一种视频标准PAL,而在美国NTSC中,黑电平比消隐电平略高(7.5 IRE)。由于它出现在波形中的方式,较高的黑电平也称为基座。由于差异很小,亮度设置的微小变化是在任何一组上享受NTSC的“其他”变体所需的全部。
NTSC-J还使用9300K的白色参考(色温),而不是6500K的通常NTSC标准。[1] [2] [3]
日本使用的无线射频频率与美国NTSC标准不符; FM收音机等其他业务的频率划分也存在国际差异。立体声子载波的编码在NTSC-M / MTS和日本广播标准之间也不同。
术语NTSC-J还用于区分使用电视的控制台视频游戏中的区域。NTSC-J被用作日本视频游戏区域(因此为“J”),东南亚(仅限一些国家),台湾,香港,澳门,菲律宾和韩国(现为NTSC-K)的名称(以前是东南亚的一部分,有香港,台湾,日本等)。
指定为该地区一部分的大多数游戏不会在NTSC-US,PAL(或PAL-E,“E”代表欧洲)或NTSC-C(中国)的一部分指定的硬件上运行,主要是由于地区差异PAL(SECAM也用于20世纪90年代早期)和NTSC标准。许多较旧的视频游戏系统不允许播放来自不同地区的游戏,但是更现代的游戏机,要么保护微软的Xbox 360等出版商的自由裁量权,要么完全像索尼的PlayStation 3一样停止使用。
由于担心大量涌入中国的非法拷贝涌入中国,中国因其猖獗的版权侵权而臭名昭着,因此中国获得了自己的称号。通过视频游戏系统和游戏本身内置的区域锁定也存在版权保护问题,因为同一产品可以由不同的出版商从一个大陆编辑到另一个大陆。
以上是关于PAL或者NTSC制式 BT.656(YUV 4:2:2) 转化为BMP格式图片(RGB)算法的主要内容,如果未能解决你的问题,请参考以下文章