详解各种RGB与YUV(YCbCr)互转公式 (2024)

原创不易 转载请注明出处和作者

关于写这篇文章的原因:

  本人也是摸索了很长时间才弄懂其中的原理,里面涉及的知识点太多了,比如色彩空间,Gamma,什么的,里面还会涉及到很多的协议,比如BT601 BT709,BT2020,RP177等,一不小心就会写错,然后色彩可能就不准确了,可能偏白偏黑或者偏色

自己也踩过很多坑,然后把这些经验写出来,防止大家踩重复的坑,如果文章有不够严谨的地方,请及时指出。

YUV与RGB互转的公式有很多,不同的色彩空间的转换公式是不一样的,不同色彩空间的转换公式可以看我写的这篇文章:https://www.jianshu.com/p/db1caf7f2920

  除了色彩空间,还需要注意YUV的范围,YUV 有很多种表现形式,比如:

YUV: YUV是一种模拟型号, Y∈ [0,1] U,V∈[-0.5,0.5]

YCbCr:也叫YCC,YCbCr 是数字信号, 它包含两种形式, 分别为TV range 和 full range, TV range 主要是广播电视采用的标准, full range 主要是pc 端采用的标准, 所以full range 有时也叫 pc range

TV range的各个分量的范围为:YUVY~[16,235] Cb~[16-240] Cr~[16-240]

full range的各个分量的范围均为: 0-255

我们平时接触到的绝大多数都是YCbCr (tv range), ffmpeg 解码出来的数据绝大多数也是这个, 虽然ffmpeg里面将它的格式描述成YUV420P ,实际上它是YCbCrtvrange

YUV转tvrange: Y' = 219.0*Y + 16 ; Cb = U * 224.0 + 128;Cr = V * 224.0 + 128;

关于为什么要将YUV量化为tv range 16-235 ?

以下是维基百科摘抄的一段, 意思是tv range是为了解决滤波(模数转换)后的过冲现象,

Y′ values are conventionally shifted and scaled to the range [16, 235] (referred to as studio swing or "TV levels") rather than using the full range of [0, 255] (referred to as full swing or "PC levels"). This practice was standardized in SMPTE-125M in order to accommodate signal overshoots ("ringing") due to filtering. The value 235 accommodates a maximal black-to-white overshoot of 255 − 235 = 20, or 20 / (235 − 16) = 9.1%, which is slightly larger than the theoretical maximal overshoot (Gibbs phenomenon) of about 8.9% of the maximal step. The toe-room is smaller, allowing only 16 / 219 = 7.3% overshoot, which is less than the theoretical maximal overshoot of 8.9%. This is why 16 is added to Y′ and why the Y′ coefficients in the basic transform sum to 220 instead of 255.[9]U and V values, which may be positive or negative, are summed with 128 to make them always positive, giving a studio range of 16–240 for U and V. (These ranges are important in video editing and production, since using the wrong range will result either in an image with "clipped" blacks and whites, or a low-contrast image.)

关于如何判断像素格式是否为tvrange (16-235)?

  在完全黑画面的时候打印出图像的Y数据, 如果Y=16左右 说明YCbCr 为tv range ,如果Y=0左右 说明YCbCr为 full range

以下是我推导的BT601与BT2020的公式,包括各种形式,比如浮点整形 等等。

一、 公式:基于BT.601-6 (NTSC色域)

详解各种RGB与YUV(YCbCr)互转公式 (1)

BT601 UV(CbCr)的坐标图(量化后): (横坐标为u,纵坐标为v,左下角为原点)

通过坐标图我们可以看到UV(YUV六面体投影到UV坐标系)是一个旋转了一定角度的八边形,U越大蓝色越蓝,V越大,红色越红。

以下具体为各种转换公式(该转换公式基于BT601 ,NTSC色域 )

1.小数形式,YUV ( U∈[-0.5-0.5] , R,G,B∈[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. 量化为 tv range 后的公式( Y~(16,235) U/V ~(16,240) )

[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

4 tv range的公式写成整数的形式(减小计算量) ( 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量化 与 非量化 互转

tvrange 转fullrange

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

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

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

full range转tvrange U~(-128-127) -----> U~(16-240)

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

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

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

7. 矩阵形式(BT601):

YUV

[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

YCbCrtv range

[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

tvrange的公式写成整数形式

[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)>>8M =298, 0, 410, -57229,298, -101, -209, 34851, 298, 518, 0, -71175, 0, 0, 0, 256

二、.Rec2020 (BT2020) 下的YUV与RGB转换公式 (写成矩阵形式)

详解各种RGB与YUV(YCbCr)互转公式 (2)

  BT2020 UV 的坐标图(量化后为CbCr): (横坐标为Cb,纵坐标为Cr,左下角为原点)

1. BT2020 文档上的公式

详解各种RGB与YUV(YCbCr)互转公式 (3)

详解各种RGB与YUV(YCbCr)互转公式 (4)

即:

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;

矩阵形式

YUVRGB互转公式

[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

YCbCr(tv range) RGB互转公式

[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

tv range互转公式写成整数形式

[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

最后编辑于

©

著作权归作者所有,转载或内容合作请联系作者

  • 人面猴

    序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...

    沈念sama阅读 187,123评论 5赞 451

  • 死咒

    序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...

    沈念sama阅读 78,631评论 2赞 357

  • 救了他两次的神仙让他今天三更去死

    文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...

    开封第一讲书人阅读 134,663评论 0赞 308

  • 道士缉凶录:失踪的卖姜人

    文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...

    开封第一讲书人阅读 50,252评论 1赞 259

  • 港岛之恋(遗憾婚礼)

    正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...

    茶点故事阅读 59,203评论 4赞 349

  • 恶毒庶女顶嫁案:这布局不是一般人想出来的

    文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...

    开封第一讲书人阅读 44,614评论 1赞 262

  • 城市分裂传说

    那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...

    沈念sama阅读 35,419评论 3赞 375

  • 双鸳鸯连环套:你想象不到人心有多黑

    文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...

    开封第一讲书人阅读 33,968评论 0赞 243

  • 万荣杀人案实录

    序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...

    沈念sama阅读 38,260评论 1赞 283

  • 护林员之死

    正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...

    茶点故事阅读 33,587评论 2赞 299

  • 白月光启示录

    正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...

    茶点故事阅读 35,297评论 1赞 313

  • 活死人

    序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...

    沈念sama阅读 31,233评论 3赞 303

  • 日本核电站爆炸内幕

    正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...

    茶点故事阅读 36,549评论 3赞 293

  • 男人毒药:我在死后第九天来索命

    文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...

    开封第一讲书人阅读 28,086评论 0赞 17

  • 一桩弑父案,背后竟有这般阴谋

    文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...

    开封第一讲书人阅读 29,304评论 1赞 245

  • 情欲美人皮

    我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...

    沈念sama阅读 40,206评论 2赞 334

  • 代替公主和亲

    正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...

    茶点故事阅读 39,511评论 2赞 327

详解各种RGB与YUV(YCbCr)互转公式 (2024)

References

Top Articles
Who is Tiktok Star Anna Shumate? Her Age, Height & More
Eps & USA Cars in Kiel-windeweer Betrouwbaar en klantvriendelijke vakmannen
Hemispheres Dothan Al
Savory Dishes Made Simple: 6 Ingredients to Kick Up the Flavor - MSGdish
Academic Calendar Pbsc
Jak zgłosić awarię i brak energii elektrycznej w Twoim mieszkaniu lub domu? - ENERGA-OPERATOR SA
Duralast Battery H6-Dl Group Size 48 680 Cca
Tampa Lkq Price List
Rice explains personal reason for subdued goal celebration against Ireland
Barefoot Rentals Key Largo
Irissangel
Jordanbush Only Fans
Hessaire Mini Split Remote Control Manual
Plan the Ultimate Trip to Lexington, Kentucky
Craigslist Tools Las Cruces Nm
Army Dlc 1 Cheat
Party City Enfield Photos
Onlybaddiestv
Craigslist Hoosick Falls
Chrysler, Dodge, Jeep & Ram Vehicles in Houston, MS | Eaton CDJR
Gsa Elibary
Magicseaweed Bob Hall
What Does Spd2 Mean On Whirlpool Microwave
Union Supply Direct Wisconsin
Rooftop Snipers Unblocked Games Premium
Www.cvs/Otchs/Simply
Citymd West 146Th Urgent Care - Nyc Photos
Erfolgsfaktor Partnernetzwerk: 5 Gründe, die überzeugen | SoftwareOne Blog
Lily Spa Roanoke Rapids Reviews
Otter Bustr
Remembering the names of those who died on 9/11
Mannat Indian Grocers
Junees Cedarhurst
Magma Lozenge Location
Rs3 Bring Leela To The Tomb
Today's Wordle Mashable
Mygxo Gxo Com Employee Login
manhattan cars & trucks - by owner - craigslist
Star News Mugshots
Pressconnects Obituaries Recent
Heffalumps And Woozles Racist
Hypebeast Muckrack
John Deere Z355R Parts Diagram
Easy Homemade Eggnog is So Underrated
Busted Bell County
2024 USAF & USSF Almanac: DAF Personnel | Air & Space Forces Magazine
Lowlifesymptoms Twitter
University Of Michigan Paging System
Bitlife Tyrone's
Fapspace.site
Chase Bank Time Hours
XY6020L 6-70V CNC einstellbares stabilisiertes Spannungsnetzteil Konstantspannung Konstantstrom 20A/1200W Buck-Modul Bewertungen
Latest Posts
Article information

Author: Barbera Armstrong

Last Updated:

Views: 6298

Rating: 4.9 / 5 (79 voted)

Reviews: 94% of readers found this page helpful

Author information

Name: Barbera Armstrong

Birthday: 1992-09-12

Address: Suite 993 99852 Daugherty Causeway, Ritchiehaven, VT 49630

Phone: +5026838435397

Job: National Engineer

Hobby: Listening to music, Board games, Photography, Ice skating, LARPing, Kite flying, Rugby

Introduction: My name is Barbera Armstrong, I am a lovely, delightful, cooperative, funny, enchanting, vivacious, tender person who loves writing and wants to share my knowledge and understanding with you.