什么是色域
HDR转SDR过程中使用YUV转RGB矩阵 转成RGB后还需处理视频的色域问题,HDR视频是BT2020色域,SDR视频是BT709色域,本篇文章讲的就是如何实现BT2020转BT709色域转换,也讲到了RGB转灰度公式G r a y = R ∗ 0.299 + G ∗ 0.587 + B ∗ 0.114 Gray=R*0.299 + G*0.587 + B*0.114 G r a y = R ∗ 0.299 + G ∗ 0.587 + B ∗ 0.114 的参数是怎么算出来的。如果你觉得有所收获,来给HDR转SDR开源代码 点个赞吧,你的鼓励是我前进最大的动力。
色域是指计算机设备能表达所有颜色的区域范围,如下图所示CIE1931色度图中的BT709 和BT2020 色域。
注意:
BT709、BT2020指的是视频常见的两种色域,他们是ITU-R(ITU表示国际电联,R表示无线电部门)针对高清视频和超高清视频分别制定的BT标准,BT表示Broadcasting Service Television广播电视业务,2020不是年份只是文件代号,BT2020其实是在2012制定的,它和版本号一样越大越新。
色域由三个点构成的三角形表示,三个点表示了该色域下的红绿蓝,也叫色域三原色 ,三角形的体积越大能表现的颜色越多,BT709占了所有颜色的35.9%、BT2020占了所有颜色的75.8%。
色域三角形中心有个白点 ,这个白点表示了该色域下的白色,移动白点会导致整个色域相对偏蓝或者偏红,BT709和BT2020的D65白点指的是绝对黑体在6500K温度下发出的颜色(D代表日光光源),黑体温度变高,颜色从红色变成黄色再变成蓝色(与生活中的经验不一样,生活中感觉红色黄色较暖,蓝色较冷)。
色域所在的马蹄形区域是CIE1931色度图,它代表了人类能看到的所有颜色,最外面的马蹄形线条代表所有单色光,马蹄围成的区域是人类能看到的所有颜色,外面的数字表示所有波长为380-700nm的可见光,x轴简单理解代表红色分量,y轴简单理解代表绿色分量(实际是数学公式转换而来不是简单代表了某种颜色)
CIE1931色度图 是1931年CIE(国际照明组织)发明的CIE1931XYZ色彩空间 的二维表示,CIE用三种特定波长的红绿蓝光去模拟所有单色光的颜色,不同的颜色需要红绿蓝光的量不一样(也叫刺激值),根据刺激值的比例关系建立了CIE-1931XYZ色彩空间(XYZ就是刺激值,Y代表亮度,XZ代表色度),在XYZ色彩空间中不仅可以看到所有单色光的颜色,还利用线形插值找到了所有可见光的颜色。上述文字描述可能没讲明白,可以观看B站UP主橙与青的色彩空间为什么那么空 。
搞懂XYZ色彩空间就明白色域转换就是经过XYZ色彩空间中转把颜色从一个色域转换到另外一个色域。
色域转换过程
色域由三原色和白点构成
下图是色域的三维化,色域立方体是由三原色和白点决定的。
注意:
二维图色域是个三角形,三维图色域是个立方体,立方体中的三个点就是三原色,其他5个点是白点和三原色延长线的交点。
灰色线条就是xyz坐标系,彩色线条就是rgb坐标系,三原色和白点确立了RGB坐标系在XYZ坐标系的基向量,根据基向量就可以得到RGB和XYZ互相转换矩阵。
色域不同就是位于XYZ色彩空间里RGB立方体不一样,那么色域转换流程就是通过XYZ色彩空间转换立方体。
色域转换推导
色域转换公式推导略枯燥,但是为了浅显易懂整个推导过程所有公式都是手打的,搞懂色域转换还是很有必要的,它是视频开发的第一步基础,大楼盖的牢不牢就看基础打的好不好,推导过程中如果搞糊涂的不要怕,评论区欢迎你,记住色域转换的核心思想就是用XYZ色彩空间做中转。
色域转换 就是根据三原色和白点 算出RGB转XYZ矩阵,根据RGB转XYZ矩阵 就能得到XYZ转RGB矩阵 ,得到两个矩阵也就能实现两个色域RGB之间的转换了。
RGB转XYZ流程
RGB转XYZ就是已知三原色和白点的xyz坐标 计算得到RGB转XYZ矩阵 。
注意:
xyz是XYZ的归一化,xyz就是二维图中的坐标也叫色度坐标,XYZ就是三维图的坐标也叫刺激值坐标。
xyz是XYZ的归一化说明xyz和XYZ的比例一样。RGB三原色加在一起是白色说明了白点的XYZ坐标是三原色坐标的和(刺激值一样)。利用这两个关系从三原色和白点的xyz坐标算出白点的XYZ坐标,白点的XYZ坐标是RGB在XYZ的基向量,用基向量表示成矩阵也就得到了RGB转XYZ矩阵。
RGB转XYZ矩阵推导
{ x = X X + Y + Z y = Y X + Y + Z z = Z X + Y + Z \left\{
\begin{aligned}
x & = & \frac{X}{X+Y+Z}\\
y & = & \frac{Y}{X+Y+Z}\\
z & = & \frac{Z}{X+Y+Z}\\
\end{aligned}
\right. ⎩ ⎨ ⎧ x y z = = = X + Y + Z X X + Y + Z Y X + Y + Z Z
注意: xyz是XYZ归一化而成的,xyz是色度坐标,XYZ是刺激值坐标,x+y+z=1,xyz和XYZ的比例相同
xyz和XYZ的比例相同可推导出下方公式,这个公式表明了三原色和白点的xyz和XYZ比例相同,RGB表示三原色,W表示白点,R G B W x y z RGBW_{xyz} RGB W x yz 就是我们已知的三原色和白点xyz坐标,R G B W X Y Z RGBW_{XYZ} RGB W X Y Z 就是最终要求的白点XYZ坐标。
{ R X = R x R y ∗ R Y R Y = R Y R Z = R z R y ∗ R Y { G X = G x G y ∗ G Y G Y = G Y G Z = G z G y ∗ G Y { B X = B x B y ∗ B Y B Y = B Y B Z = B z B y ∗ B Y { W X = W x W y ∗ W Y W Y = W Y W Z = W z W y ∗ W Y \left\{
\begin{aligned}
&R_X = \frac{R_x }{R_y}*R_Y\\
&R_Y = R_Y\\
&R_Z = \frac{R_z }{R_y}*R_Y\\
\end{aligned}
\right.
\
\left\{
\begin{aligned}
&G_X = \frac{G_x }{G_y}*G_Y\\
&G_Y = G_Y\\
&G_Z = \frac{G_z }{G_y}*G_Y\\
\end{aligned}
\right.
\
\left\{
\begin{aligned}
&B_X = \frac{B_x }{B_y}*B_Y\\
&B_Y = B_Y\\
&B_Z = \frac{B_z }{B_y}*B_Y\\
\end{aligned}
\right.
\
\left\{
\begin{aligned}
&W_X = \frac{W_x }{W_y}*W_Y\\
&W_Y = W_Y\\
&W_Z = \frac{W_z }{W_y}*W_Y\\
\end{aligned}
\right. ⎩ ⎨ ⎧ R X = R y R x ∗ R Y R Y = R Y R Z = R y R z ∗ R Y ⎩ ⎨ ⎧ G X = G y G x ∗ G Y G Y = G Y G Z = G y G z ∗ G Y ⎩ ⎨ ⎧ B X = B y B x ∗ B Y B Y = B Y B Z = B y B z ∗ B Y ⎩ ⎨ ⎧ W X = W y W x ∗ W Y W Y = W Y W Z = W y W z ∗ W Y
RGB三原色加在一起是白色,这个简单的事实说明了三原色的XYZ刺激值加在一起就是白点的XYZ值刺激值,那么推出以下公式,W X Y Z W_{XYZ} W X Y Z 表示白点的刺激值,R G B X Y Z RGB_{XYZ} RG B X Y Z 表示三原色的刺激值。
{ W X = R X + G X + B X W Y = R Y + G Y + B Y W Z = R Z + G Z + B Z \left\{
\begin{aligned}
&W_X = R_X+G_X+B_X\\
&W_Y = R_Y+G_Y+B_Y\\
&W_Z = R_Z+G_Z+B_Z\\
\end{aligned}
\right. ⎩ ⎨ ⎧ W X = R X + G X + B X W Y = R Y + G Y + B Y W Z = R Z + G Z + B Z
用R G B W x y z RGBW_{xyz} RGB W x yz 表示R G B W X Y Z RGBW_{XYZ} RGB W X Y Z ,推导出求解方程
{ W x W y ∗ W Y = R x R y ∗ R Y + G x G y ∗ G Y + B x B y ∗ B Y W Y = R Y + G Y + B Y = 1 W z W y ∗ W Y = R z R y ∗ R Y + G z G y ∗ G Y + B z B y ∗ B Y \left\{
\begin{aligned}
&\frac{W_x }{W_y}*W_Y = \frac{R_x }{R_y}*R_Y+\frac{G_x }{G_y}*G_Y+\frac{B_x }{B_y}*B_Y\\
&W_Y = R_Y+G_Y+B_Y = 1\\
&\frac{W_z }{W_y}*W_Y = \frac{R_z }{R_y}*R_Y+\frac{G_z }{G_y}*G_Y+\frac{B_z }{B_y}*B_Y\\
\end{aligned}
\right. ⎩ ⎨ ⎧ W y W x ∗ W Y = R y R x ∗ R Y + G y G x ∗ G Y + B y B x ∗ B Y W Y = R Y + G Y + B Y = 1 W y W z ∗ W Y = R y R z ∗ R Y + G y G z ∗ G Y + B y B z ∗ B Y
已知R G B W x y z RGBW_{xyz} RGB W x yz 和W Y {W_Y} W Y =1(白点的亮度是1)代入上述公式就能求出R Y R_Y R Y 、G Y G_Y G Y 、G Y G_Y G Y ,再代入R G B x y z RGB_{xyz} RG B x yz 和R G B X Y Z RGB_{XYZ} RG B X Y Z 比例公式就能求出所有R G B X Y Z RGB_{XYZ} RG B X Y Z ,最终我们得到了RGB转XYZ的矩阵
BT2020RGB转XYZ矩阵
根据BT2020的定义 可知BT2020三原色和白点的xyz坐标是
{ R x = 0.708 R y = 0.292 R z = 0.000 { G x = 0.170 G y = 0.797 G z = 0.033 { B x = 0.131 B y = 0.046 B z = 0.823 { W x = 0.3127 W y = 0.3290 W z = 0.3583 \left\{
\begin{aligned}
&R_x = 0.708\\
&R_y = 0.292\\
&R_z = 0.000\\
\end{aligned}
\right.
\
\left\{
\begin{aligned}
&G_x = 0.170\\
&G_y = 0.797\\
&G_z = 0.033\\
\end{aligned}
\right.
\
\left\{
\begin{aligned}
&B_x = 0.131\\
&B_y = 0.046\\
&B_z = 0.823\\
\end{aligned}
\right.
\
\left\{
\begin{aligned}
&W_x = 0.3127\\
&W_y = 0.3290\\
&W_z = 0.3583\\
\end{aligned}
\right. ⎩ ⎨ ⎧ R x = 0.708 R y = 0.292 R z = 0.000 ⎩ ⎨ ⎧ G x = 0.170 G y = 0.797 G z = 0.033 ⎩ ⎨ ⎧ B x = 0.131 B y = 0.046 B z = 0.823 ⎩ ⎨ ⎧ W x = 0.3127 W y = 0.3290 W z = 0.3583
那么代入求解方程可得以下方程,对比上方的值很容易发现规律其实就是第二行为中心上下除一下
{ 0.3127 0.3290 ∗ W Y = 0.708 0.292 ∗ R Y + 0.170 0.797 ∗ G Y + 0.131 0.046 ∗ B Y W Y = R Y + G Y + B Y = 1 0.3583 0.3290 ∗ W Y = 0.000 0.292 ∗ R Y + 0.033 0.797 ∗ G Y + 0.823 0.046 ∗ B Y \left\{
\begin{aligned}
&\frac{0.3127 }{0.3290}*W_Y = \frac{0.708 }{0.292}*R_Y+\frac{0.170 }{0.797}*G_Y+\frac{ 0.131 }{0.046}*B_Y\\
&W_Y = R_Y+G_Y+B_Y = 1\\
&\frac{0.3583 }{0.3290}*W_Y = \frac{0.000 }{0.292}*R_Y+\frac{0.033 }{0.797}*G_Y+\frac{0.823 }{0.046}*B_Y\\
\end{aligned}
\right. ⎩ ⎨ ⎧ 0.3290 0.3127 ∗ W Y = 0.292 0.708 ∗ R Y + 0.797 0.170 ∗ G Y + 0.046 0.131 ∗ B Y W Y = R Y + G Y + B Y = 1 0.3290 0.3583 ∗ W Y = 0.292 0.000 ∗ R Y + 0.797 0.033 ∗ G Y + 0.046 0.823 ∗ B Y
算出
{ R Y = 0.262700 G Y = 0.677998 G Y = 0.059302 \left\{
\begin{aligned}
&R_Y = 0.262700\\
&G_Y = 0.677998\\
&G_Y = 0.059302\\
\end{aligned}
\right. ⎩ ⎨ ⎧ R Y = 0.262700 G Y = 0.677998 G Y = 0.059302
上述参数的值和RGB转灰度公式的参数是不是很像,不要怀疑RGB转灰度公式的参数就是这么来的,只是常用的灰度公式是BT601 色域的,这也说明了灰度公式不能乱用,不同色域要使用不同的灰度公式。
再根据xyz坐标和XYZ坐标比例关系
{ R X = 0.708 0.292 ∗ R Y R Y = R Y R Z = 0.000 0.292 ∗ R Y { G X = 0.170 0.797 ∗ G Y G Y = G Y G Z = 0.033 0.797 ∗ G Y { B X = 0.131 0.046 ∗ B Y B Y = B Y B Z = 0.823 0.046 ∗ B Y \left\{
\begin{aligned}
&R_X = \frac{0.708 }{0.292}*R_Y\\
&R_Y = R_Y\\
&R_Z = \frac{0.000 }{0.292}*R_Y\\
\end{aligned}
\right.
\
\left\{
\begin{aligned}
&G_X = \frac{0.170 }{0.797}*G_Y\\
&G_Y = G_Y\\
&G_Z = \frac{0.033 }{0.797}*G_Y\\
\end{aligned}
\right.
\
\left\{
\begin{aligned}
&B_X = \frac{0.131 }{0.046}*B_Y\\
&B_Y = B_Y\\
&B_Z = \frac{0.823 }{0.046}*B_Y\\
\end{aligned}
\right. ⎩ ⎨ ⎧ R X = 0.292 0.708 ∗ R Y R Y = R Y R Z = 0.292 0.000 ∗ R Y ⎩ ⎨ ⎧ G X = 0.797 0.170 ∗ G Y G Y = G Y G Z = 0.797 0.033 ∗ G Y ⎩ ⎨ ⎧ B X = 0.046 0.131 ∗ B Y B Y = B Y B Z = 0.046 0.823 ∗ B Y
算出所有R G B X Y Z RGB_{XYZ} RG B X Y Z
{ R X = 0.636958 R Y = 0.262700 R Z = 0.000000 { G X = 0.144617 G Y = 0.677998 G Z = 0.028073 { B X = 0.168881 B Y = 0.059302 B Z = 1.060985 \left\{
\begin{aligned}
&R_X = 0.636958\\
&R_Y = 0.262700\\
&R_Z = 0.000000\\
\end{aligned}
\right.
\
\left\{
\begin{aligned}
&G_X = 0.144617\\
&G_Y = 0.677998\\
&G_Z = 0.028073\\
\end{aligned}
\right.
\
\left\{
\begin{aligned}
&B_X = 0.168881\\
&B_Y = 0.059302\\
&B_Z = 1.060985\\
\end{aligned}
\right. ⎩ ⎨ ⎧ R X = 0.636958 R Y = 0.262700 R Z = 0.000000 ⎩ ⎨ ⎧ G X = 0.144617 G Y = 0.677998 G Z = 0.028073 ⎩ ⎨ ⎧ B X = 0.168881 B Y = 0.059302 B Z = 1.060985
那么BT2020RGB转XYZ矩阵 就是上方值的矩阵格式书写
[ X Y Z ] = [ 0.636958 0.144617 0.168881 0.262700 0.677998 0.059302 0.000000 0.028073 1.060985 ] ∗ [ R G B ] \begin{bmatrix}
X\\
Y\\
Z\\
\end{bmatrix}
=
\begin{bmatrix}
0.636958 & 0.144617 & 0.168881\\
0.262700 & 0.677998 & 0.059302\\
0.000000 & 0.028073 & 1.060985\\
\end{bmatrix}
*
\begin{bmatrix}
R\\
G\\
B\\
\end{bmatrix} ⎣ ⎡ X Y Z ⎦ ⎤ = ⎣ ⎡ 0.636958 0.262700 0.000000 0.144617 0.677998 0.028073 0.168881 0.059302 1.060985 ⎦ ⎤ ∗ ⎣ ⎡ R G B ⎦ ⎤
XYZ转BT709RGB矩阵
根据BT709的定义 可知BT709三原色和白点的xyz坐标是
{ R x = 0.640 R y = 0.330 R z = 0.030 { G x = 0.300 G y = 0.600 G z = 0.100 { B x = 0.150 B y = 0.060 B z = 0.790 { W x = 0.3127 W y = 0.3290 W z = 0.3583 \left\{
\begin{aligned}
&R_x = 0.640\\
&R_y = 0.330\\
&R_z = 0.030\\
\end{aligned}
\right.
\
\left\{
\begin{aligned}
&G_x = 0.300\\
&G_y = 0.600\\
&G_z = 0.100\\
\end{aligned}
\right.
\
\left\{
\begin{aligned}
&B_x = 0.150\\
&B_y = 0.060\\
&B_z = 0.790\\
\end{aligned}
\right.
\
\left\{
\begin{aligned}
&W_x = 0.3127\\
&W_y = 0.3290\\
&W_z = 0.3583\\
\end{aligned}
\right. ⎩ ⎨ ⎧ R x = 0.640 R y = 0.330 R z = 0.030 ⎩ ⎨ ⎧ G x = 0.300 G y = 0.600 G z = 0.100 ⎩ ⎨ ⎧ B x = 0.150 B y = 0.060 B z = 0.790 ⎩ ⎨ ⎧ W x = 0.3127 W y = 0.3290 W z = 0.3583
那么代入求解方程就变成了
{ 0.3127 0.3290 ∗ W Y = 0.640 0.330 ∗ R Y + 0.300 0.600 ∗ G Y + 0.150 0.060 ∗ B Y W Y = R Y + G Y + B Y = 1 0.3583 0.3290 ∗ W Y = 0.030 0.330 ∗ R Y + 0.100 0.600 ∗ G Y + 0.790 0.060 ∗ B Y \left\{
\begin{aligned}
&\frac{0.3127 }{0.3290}*W_Y = \frac{0.640 }{0.330}*R_Y+\frac{0.300 }{0.600}*G_Y+\frac{ 0.150 }{0.060}*B_Y\\
&W_Y = R_Y+G_Y+B_Y = 1\\
&\frac{0.3583 }{0.3290}*W_Y = \frac{0.030 }{0.330}*R_Y+\frac{0.100 }{0.600}*G_Y+\frac{0.790 }{0.060}*B_Y\\
\end{aligned}
\right. ⎩ ⎨ ⎧ 0.3290 0.3127 ∗ W Y = 0.330 0.640 ∗ R Y + 0.600 0.300 ∗ G Y + 0.060 0.150 ∗ B Y W Y = R Y + G Y + B Y = 1 0.3290 0.3583 ∗ W Y = 0.330 0.030 ∗ R Y + 0.600 0.100 ∗ G Y + 0.060 0.790 ∗ B Y
算出
{ R Y = 0.212639 G Y = 0.715169 G Y = 0.072192 \left\{
\begin{aligned}
&R_Y = 0.212639\\
&G_Y = 0.715169\\
&G_Y = 0.072192\\
\end{aligned}
\right. ⎩ ⎨ ⎧ R Y = 0.212639 G Y = 0.715169 G Y = 0.072192
再根据xyz坐标和XYZ坐标比例关系
{ R X = 0.640 0.330 ∗ R Y R Y = R Y R Z = 0.030 0.330 ∗ R Y { G X = 0.300 0.600 ∗ G Y G Y = G Y G Z = 0.100 0.600 ∗ G Y { B X = 0.150 0.060 ∗ B Y B Y = B Y B Z = 0.790 0.060 ∗ B Y \left\{
\begin{aligned}
&R_X = \frac{0.640 }{0.330}*R_Y\\
&R_Y = R_Y\\
&R_Z = \frac{0.030 }{0.330}*R_Y\\
\end{aligned}
\right.
\
\left\{
\begin{aligned}
&G_X = \frac{0.300 }{0.600}*G_Y\\
&G_Y = G_Y\\
&G_Z = \frac{0.100 }{0.600}*G_Y\\
\end{aligned}
\right.
\
\left\{
\begin{aligned}
&B_X = \frac{0.150 }{0.060}*B_Y\\
&B_Y = B_Y\\
&B_Z = \frac{0.790 }{0.060}*B_Y\\
\end{aligned}
\right. ⎩ ⎨ ⎧ R X = 0.330 0.640 ∗ R Y R Y = R Y R Z = 0.330 0.030 ∗ R Y ⎩ ⎨ ⎧ G X = 0.600 0.300 ∗ G Y G Y = G Y G Z = 0.600 0.100 ∗ G Y ⎩ ⎨ ⎧ B X = 0.060 0.150 ∗ B Y B Y = B Y B Z = 0.060 0.790 ∗ B Y
算出所有R G B X Y Z RGB_{XYZ} RG B X Y Z
{ R X = 0.412391 R Y = 0.212639 R Z = 0.019331 { G X = 0.357584 G Y = 0.715169 G Z = 0.119195 { B X = 0.180481 B Y = 0.072192 B Z = 0.950532 \left\{
\begin{aligned}
&R_X = 0.412391\\
&R_Y = 0.212639\\
&R_Z = 0.019331\\
\end{aligned}
\right.
\
\left\{
\begin{aligned}
&G_X = 0.357584\\
&G_Y = 0.715169\\
&G_Z = 0.119195\\
\end{aligned}
\right.
\
\left\{
\begin{aligned}
&B_X = 0.180481\\
&B_Y = 0.072192\\
&B_Z = 0.950532\\
\end{aligned}
\right. ⎩ ⎨ ⎧ R X = 0.412391 R Y = 0.212639 R Z = 0.019331 ⎩ ⎨ ⎧ G X = 0.357584 G Y = 0.715169 G Z = 0.119195 ⎩ ⎨ ⎧ B X = 0.180481 B Y = 0.072192 B Z = 0.950532
那么BT709RGB转XYZ矩阵 就是上方值的矩阵格式书写
[ X Y Z ] = [ 0.412391 0.357584 0.180481 0.212639 0.715169 0.072192 0.019331 0.119195 0.950532 ] ∗ [ R G B ] \begin{bmatrix}
X\\
Y\\
Z\\
\end{bmatrix}
=
\begin{bmatrix}
0.412391 & 0.357584 & 0.180481\\
0.212639 & 0.715169 & 0.072192\\
0.019331 & 0.119195 & 0.950532\\
\end{bmatrix}
*
\begin{bmatrix}
R\\
G\\
B\\
\end{bmatrix} ⎣ ⎡ X Y Z ⎦ ⎤ = ⎣ ⎡ 0.412391 0.212639 0.019331 0.357584 0.715169 0.119195 0.180481 0.072192 0.950532 ⎦ ⎤ ∗ ⎣ ⎡ R G B ⎦ ⎤
求XYZ转BT709RGB矩阵 就是求BT709RGB转XYZ矩阵 的逆矩阵
[ R G B ] = [ 3.240970 − 1.537383 − 0.498611 − 0.969244 1.875968 0.041555 0.055630 − 0.203977 1.056972 ] ∗ [ X Y Z ] \begin{bmatrix}
R\\
G\\
B\\
\end{bmatrix}
=
\begin{bmatrix}
3.240970 & -1.537383 & -0.498611\\
-0.969244 & 1.875968 & 0.041555\\
0.055630 & -0.203977 &1.056972\\
\end{bmatrix}
*
\begin{bmatrix}
X\\
Y\\
Z\\
\end{bmatrix} ⎣ ⎡ R G B ⎦ ⎤ = ⎣ ⎡ 3.240970 − 0.969244 0.055630 − 1.537383 1.875968 − 0.203977 − 0.498611 0.041555 1.056972 ⎦ ⎤ ∗ ⎣ ⎡ X Y Z ⎦ ⎤
BT2020转BT709矩阵
BT2020转BT709只要用BT2020RGB转XYZ矩阵转成XYZ,再用XYZ转BT709RGB矩阵就可以了,代入前面两个矩阵的值可得以下公式
M B T 2020 _ B T 709 = [ 3.240970 − 1.537383 − 0.498611 − 0.969244 1.875968 0.041555 0.055630 − 0.203977 1.056972 ] ∗ [ 0.636958 0.144617 0.168881 0.262700 0.677998 0.059302 0.000000 0.028073 1.060985 ] M_{BT2020\_BT709}
=
\begin{bmatrix}
3.240970 & -1.537383 & -0.498611\\
-0.969244 & 1.875968 & 0.041555\\
0.055630 & -0.203977 &1.056972\\
\end{bmatrix}
*
\begin{bmatrix}
0.636958 & 0.144617 & 0.168881\\
0.262700 & 0.677998 & 0.059302\\
0.000000 & 0.028073 & 1.060985\\
\end{bmatrix} M BT 2020_ BT 709 = ⎣ ⎡ 3.240970 − 0.969244 0.055630 − 1.537383 1.875968 − 0.203977 − 0.498611 0.041555 1.056972 ⎦ ⎤ ∗ ⎣ ⎡ 0.636958 0.262700 0.000000 0.144617 0.677998 0.028073 0.168881 0.059302 1.060985 ⎦ ⎤
最终BT2020转BT709矩阵 就是
M B T 2020 _ B T 709 = [ 1.660491 − 0.587641 − 0.072850 − 0.124550 1.132900 − 0.008349 − 0.018151 − 0.100579 1.118730 ] M_{BT2020\_BT709}
=
\begin{bmatrix}
1.660491 & -0.587641 & -0.072850\\
-0.124550 & 1.132900 & -0.008349\\
-0.018151 & -0.100579 &1.118730\\
\end{bmatrix}
M BT 2020_ BT 709 = ⎣ ⎡ 1.660491 − 0.124550 − 0.018151 − 0.587641 1.132900 − 0.100579 − 0.072850 − 0.008349 1.118730 ⎦ ⎤
资源分享
色域转换计算器
不同的色域转换矩阵是不一样,总不能每次都手推一遍吧,可以用colorspacecalculator 和matrixCalculator 直接输入色域三原色和白点直接计算。
图片色域查看器
每张图片的色域不一样,可以用rainbowspace 可视化查看一张图的色域。
XYZ色彩空间可视化
xyz可视化 可以用来看XYZ色彩空间和色度图的关系。
问题思考
下面4个问题留给大家思考
色彩空间和色域有什么区别?
为什么说XYZ色彩空间的Y代表亮度,XZ代表色度?
为什么黑体温度最高温度是蓝色,而生活经验红色比蓝色温度高,或者换个问题问蜡烛燃烧时看到红色和蓝色,哪个温度高?
CIE-1931XYZ色彩空间均匀性问题指的是什么,均匀性和连续性有什么不同?
系列文章