日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

YUV与RGB互转各种公式 (YUV与RGB的转换公式有很多种,请注意区别!!!)

發布時間:2024/8/26 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 YUV与RGB互转各种公式 (YUV与RGB的转换公式有很多种,请注意区别!!!) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、 公式:基于BT.601-6??

?

  BT601 UV 的坐標圖(量化后): (橫坐標為u,縱坐標為v,左下角為原點)

?

? ? ? ? 通過坐標圖我們可以看到UV并不會包含整個坐標系,而是呈一個旋轉了一定角度的八邊形, ?U越大藍色越藍,V越大,紅色越紅。

?

名詞解釋:

量化后: ? Y~[16,235]? ?U ~[16-240]? ?V~[16-240]? ? ?量化就是讓通過線性變換讓Y 或 U 或V 處于一定的范圍內, 比如讓Y 【0,1】變到 Y' (16,235) ?就這樣來實行: ?Y' = Y* (235-16)/(1-0)? ?+ 16? ?即 Y' = 219*Y + 16? ?

未量化: Y~ [0,1]? ?U,V~[-0.5,0.5]? ??

YUV :即 YCbCr ?兩者是等價的

關于為什么要量化???

  1.眾所周知,RGB的范圍是【0,255】, 如果把R=0,G=0,B=255帶入公式 U = -0.169*R - 0.331*G + 0.5 ?*B ;,得到的U=127.5, 而char的范圍是【-128,127】 ,無法表示到127.5,

那么,我們就需要將Y U V數據進行量化;

  2. 量化后,我們進行RGB轉YUV的時候, 如果我們就要進行邊界判斷,類似于? Y=Y_int <0?0: (Y_int>255?255:Y_int);? 這個語句非常消耗CPU, 如果YUV進行量化之后,那么RGB轉YUV的時候就不需要進行邊界判斷;

  3. 進行量化后會節省一部分帶寬。

?

關于如何判斷圖像是否經過量化?

  在完全黑畫面的時候打印出圖像的Y數據, 如果Y=16左右? ? 說明Y經過量化 ,如果Y=0左右? ?說明Y未經過量化?

?

1.小數形式,未量化???(? U~[-0.5-0.5]? ,? ?R~[0,1]? )

R = Y + 1.4075 * V; ?
G = Y - 0.3455 * U - 0.7169*V; ?
B = Y + 1.779 * U; ?


Y = 0.299*R + 0.587*G + 0.114*B;

U = (B-Y)/1.772; ? ?

V = (R-Y)/1.402;? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
或寫為:
Y = ?0.299*R + 0.587*G + 0.114*B;

U = -0.169*R - 0.331*G + 0.5 ?*B ;

V = ?0.5 ?*R - 0.419*G - 0.081*B;

?

2.整數形式(減少計算量)未量化? ? ?R,G,B~[0,255]? ?U,V~[-128,128]

R= Y + ((360 * (V - 128))>>8) ;?
G= Y - (( ( 88 * (U - 128) ?+ 184 * (V - 128)) )>>8) ;?
B= Y +((455 * (U - 128))>>8) ;


Y = (77*R + 150*G + 29*B)>>8;

U = ((-44*R ?- 87*G ?+ 131*B)>>8) + 128;

V = ((131*R - 110*G - 21*B)>>8) + 128 ;


3. 量化后的公式( Y~(16,235) ?U/V ~(16,240) ?) ??量化? ?( I420 , YUV422 用改公司轉換即可 )

  [Y,U,V,1]T?= ?M[R,G,B,1]T?其中 M = ?

[ 0.2568, 0.5041, 0.0979, 16 ? ?

-0.1479, -0.2896, 0.4375, 128 ? ?

0.4375, -0.3666, -0.0709, 128, ?

0, 0, 0, 1 ]

  [R,G,B,1]T = M[Y,U,V,1]T? ? ? M = ?

1.1644 ??0 ??1.6019 ??-223.5521 ??

1.1644 ??-0.3928 ??-0.8163 ??136.1381 ??

1.1644 ??2.0253 ??0 ??-278.0291 ??

0.0000 ??0.0000 ??0.0000 ??1.0000? ?

?

由此可以得到紅色的YUV分量? ?YUV? = ( ?81,91,240 )


4 ?量化后的公式寫成整數的形式(減小計算量) ??( Y~(16,235) ?U/V ~(16,240) ?)

?yuv --> rgb

R = (298*Y + 411 * V - 57344)>>8
G?= (298*Y - 101* U?- 211* V+ 34739)>>8
B?= (298*Y + 519* U- 71117)>>8

?

rgb --> yuv?

Y= ( ?66*R + 129*G ?+ ?25*B)>>8 + 16?

U= (-38*R ?- ? ?74*G ?+ 112*B)>>8 +128

V= (112*R - ? ?94*G ?- ? 18*B)>>8 ? + 128

?

5. YUV量化 與 非量化 互轉

?

YUV 量化 轉 非量化

Y=(Y'-16 ? )*255/219 ;?

U=(U'-128)*128/112;

V=(V'-128)*128/112;

?

YUV 量化 轉 ?非量化 ?U~(-128-127) ?-----> ? U~(16-240)

Y' = ((219*Y)>>8) ? + ? 16;

U' = ((219*U)>>8) ? + 128;

V' =?((219*V)>>8) ? + 128;

?

6. YV12 轉RGB ? ?(這個有待考證。。!!

R = Y + 1.370705 * ( V - 128 ) ; // r分量值
G = Y - ?0.698001 * ( U - 128 ) ?- 0.703125 * (V - 128) // g分量值
B = Y + 1.732446 * ( U - 128 ); // b分量值

?

?

7. 矩陣形式(BT601):

?矩陣形式

量化前

? ? ? ?[Y,U,V]T?= ?M[R,G,B]T? ?其中 M =?0.299 ,?0.587,?0.114,??-0.169, ??- 0.331, ??0.5, ??? ? 0.5,??- 0.419 ???- 0.081

??   [R,G,B]T?= ?M[Y,U,V]T ?其中 M =?1 ? ?0 ??1.4017 ? ? ? 1 ? -0.3437 ??-0.7142 ? ? ? 1 ? 1.7722 ??0

量化后

  [Y,U,V,1]T?= ?M[R,G,B,1]T其中 M = ?[ 0.2568, 0.5041, 0.0979, 16 ? ?-0.1479, -0.2896, 0.4375, 128 ? ?0.4375, -0.3666, -0.0709, 128, ?0, 0, 0, 1 ]

  [R,G,B,1]T = M[Y,U,V,1]T ? ? ? ? ? ?M = ?1.1644 ??0 ??1.6019 ??-223.5521 ??1.1644 ??-0.3928 ??-0.8163 ??136.1381 ??1.1644 ??2.0253 ??0 ??-278.0291 ??0.0000 ??0.0000 ??0.0000 ??1.0000 ??

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

量化后的公式寫成整數形式

  [Y,U,V,1]T?= ?(M[R,G,B,1]T)>>8?其中 M = ?66, 129, 25, 4096, ? ?-38, -74, 112, 32768, ? ?112, -94, -18, 32768, ? ?0, 0, 0, 256

  [R,G,B,1]T = (M[Y,U,V,1]T)>>8 ? ? ? ? ? ?M = 298, 0, 410, -57229, ? ?298, ? ? -101, -209, 34851, ? ?298, 518, 0, -71175, ? ?0, 0, 0, 256



?

附 :bt601文檔上的截圖?

?

?

?

?

二、.?Rec2020 (BT2020) 下的YUV與RGB轉換公式 ?(我覺得還是寫成矩陣的形式更加統一協調)

BT2020 UV 的坐標圖(量化后): (橫坐標為u,縱坐標為v,左下角為原點)

通過坐標圖我們可以看到UV不同于BT601協議,該uv代表的顏色范圍更大,該顏色范圍呈一個不規則八邊形。

?

1.? BT2020 文檔上的公式

即:

Y = 0.2627*R + 0.6780*G + 0.0593*B;

U = -0.1396*R - 0.3604*G + 0.5*B;

V = 0.5*R - 0.4598*G -0.0402*B;

?

矩陣形式

量化前

? ? ? ?[Y,U,V]T?= ?M[R,G,B]T? ?其中 M =?0.2627 ??0.6780 ??0.0593 , ? ? -0.1396 ??-0.3604 ??0.5000, ? ?0.5000 ??-0.4598 ??-0.0402 ? ? ? ?

?     ?[R,G,B]T?= ?M[Y,U,V]T ?其中 M =?1.0000 ??-0.0000 ??1.4746 ??1.0000 ??-0.1645 ??-0.5713 ??1.0000 ??1.8814 ??-0.0001 ??

量化后

  [Y,U,V,1]T?= ?M[R,G,B,1]T ? 其中 M = 0.2256, 0.5823, 0.05093, 16, ? ? ??-0.1222, -0.3154, 0.4375, 128 ,?? ? ? ?0.4375, -0.4023, -0.0352, 128, ? ? ? 0,0,0,1

  [R,G,B,1]T =?M[Y,U,V,1]T ? ? ? ? ? ?M =1.1644, ? 0, ? 1.6853, ? -234.3559, ? ? ? 1.1644, ? -0.1881, ? -0.6529, ? 89.0206, ? ? ? 1.1646, ? 2.1501, ? 0.0000, ? -293.8542, ? ? ? 0.0000, ? 0.0000, ? 0.0000, ? 1.0000

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

量化后的公式寫成整數形式

  [Y,U,V,1]T?= ?(M[R,G,B,1]T)>>8?其中 M ?= ?58, 149, 13, 4096, ? ?-31, -81, 112, 32768, ? ?112, -103, -9, 32768, ??0, 0, 0, 256

  [R,G,B,1]T = (M[Y,U,V,1]T)>>8?? ? ? ? ? ?M = ?298, 0, 431, -59995, ? ?298, -48, -167, 22789, ? ?298, 550, 0, -75227, ? ?0, 0, 0, 256

?

2. BT601 轉 BT2020

_Y = (256*Y ?- 32*U -30*V+ 7826)>>8;
_U = (258*U +17*V - 2208)>>8;
_V = ?(22*U + 264*V - 3369)>>8;

?

3. bt2020 轉bt601

YUV_601 = M*[Y,U,V,1]T

M=[

1.0000 ??0.1157 ??0.1037 ??-28.0756 ??

0.0000? ?0.9951 ??-0.0602 ??8.3197?

-0.0000 ??-0.0835 ??0.9767 ??13.6686 ??

0.0000 ??0.0000 ??0.0000 ??1.0000?

?]




RGB與HSV互轉

1.RGB轉HSV

1: max=max(R,G,B) 2: min=min(R,G,B) 3: if R = max, H = (G-B)/(max-min) 4: if G = max, H = 2 + (B-R)/(max-min) 5: if B = max, H = 4 + (R-G)/(max-min) 6: 7: H = H * 60 8: if H < 0, H = H + 360 9: 10: V=max(R,G,B) 11: S=(max-min)/max



2. HSV轉RGB

1: if s = 0 2: R=G=B=V 3: else 4: H /= 60; 5: i = INTEGER(H) 6: 7: f = H - i 8: a = V * ( 1 - s ) 9: b = V * ( 1 - s * f ) 10: c = V * ( 1 - s * (1 - f ) ) 11: 12: switch(i) 13: case 0: R = V; G = c; B = a; 14: case 1: R = b; G = v; B = a; 15: case 2: R = a; G = v; B = c; 16: case 3: R = a; G = b; B = v; 17: case 4: R = c; G = a; B = v; 18: case 5: R = v; G = a; B = b;

轉載于:https://www.cnblogs.com/luoyinjie/p/7219319.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的YUV与RGB互转各种公式 (YUV与RGB的转换公式有很多种,请注意区别!!!)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美激情一区在线 | 欧美日韩视频在线观看免费 | 在线观看小视频 | 伊人论坛 | 天天摸天天摸 | 韩国裸体网站 | 欧洲美熟女乱又伦 | 国产对白自拍 | 亚洲日本中文字幕在线 | 午夜在线一区二区 | 日本在线www| 色网在线观看 | 欧美乱淫视频 | 337p亚洲精品色噜噜狠狠 | 精品一区二区三区在线视频 | 秘密基地动漫在线观看免费 | 91成年版| 嫩草视频91 | 午夜av免费| 中国黄色网页 | 成人漫画网站 | 午夜色片 | 97人人爽人人爽人人爽 | 中文字幕在线观看你懂的 | 妖精视频污 | 综合久久网 | 亚洲精品国产精品乱码不卡√香蕉 | 曰本无码人妻丰满熟妇啪啪 | 高潮av| 久久精品99久久久久久久久 | 大陆熟妇丰满多毛xxxⅹ | www.超碰在线| 2014亚洲天堂 | 亚洲欧美日韩国产一区二区 | 69av片| 羞羞的网站在线观看 | 中文字幕校园春色 | 潘金莲三级野外 | www.色哟哟 | 国产精品123区 | 亚洲欧美另类中文字幕 | 天堂色综合 | www亚洲视频 | 日本一区二区成人 | 在线观看免费黄色小视频 | 不用播放器的av网站 | 日韩福利视频一区 | 69av网站| 色狠狠av老熟女 | 日本一二三区不卡 | 韩国三级中文字幕 | 日韩中字在线 | 在线视频91| 亚洲男女视频在线观看 | 色妞视频 | 精品视频在线观看一区二区 | 国产美女作爱视频 | 有码视频在线观看 | 日本一区二区三区免费看 | 欧美日韩精品一区二区在线播放 | 免费麻豆国产一区二区三区四区 | 五月天看片 | www.色妞 | av噜噜 | 私人av | eeuss日韩 | 国产精品综合网 | 日韩激情视频在线 | 我爱av好色 | 欧美一区永久视频免费观看 | 亚洲综合在线五月 | 无码人妻一区二区三区精品视频 | 亚洲五月综合 | 国产免费黄色网址 | 中文字幕黄色片 | 亚洲国产精品成人综合色在线婷婷 | 亚洲最大av在线 | 国产动漫av | 狠狠人妻久久久久久 | 国产精品区二区三区日本 | 无码人妻精品一区二区三区99日韩 | 日本a级大片 | 日韩在线视频观看 | jizz日本少妇 | 亚洲影视在线观看 | 热久久亚洲 | 亲嘴扒胸摸屁股免费视频日本网站 | 中文字幕日本人妻久久久免费 | 国产精品天干天干 | 亚欧洲精品在线视频免费观看 | 日韩专区中文字幕 | 怡春院一区二区 | 久草网站| wwwxx国产 | 91福利在线播放 | 波多野结衣91 | 国产人伦精品一区二区三区 | 超碰免费公开在线 | 91精品专区 |