详解各种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阅读 179,701评论 5赞 435

  • 死咒

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

    沈念sama阅读 75,645评论 2赞 341

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

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

    开封第一讲书人阅读 128,145评论 0赞 296

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

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

    开封第一讲书人阅读 48,640评论 1赞 254

  • 港岛之恋(遗憾婚礼)

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

    茶点故事阅读 57,389评论 3赞 336

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

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

    开封第一讲书人阅读 43,515评论 1赞 250

  • 城市分裂传说

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

    沈念sama阅读 34,503评论 3赞 364

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

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

    开封第一讲书人阅读 33,044评论 0赞 236

  • 万荣杀人案实录

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

    沈念sama阅读 37,183评论 1赞 276

  • 护林员之死

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

    茶点故事阅读 32,751评论 2赞 285

  • 白月光启示录

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

    茶点故事阅读 34,410评论 1赞 300

  • 活死人

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

    沈念sama阅读 30,446评论 3赞 294

  • 日本核电站爆炸内幕

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

    茶点故事阅读 35,723评论 3赞 287

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

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

    开封第一讲书人阅读 27,484评论 0赞 17

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

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

    开封第一讲书人阅读 28,690评论 1赞 239

  • 情欲美人皮

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

    沈念sama阅读 38,941评论 2赞 315

  • 代替公主和亲

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

    茶点故事阅读 38,518评论 2赞 318

详解各种RGB与YUV(YCbCr)互转公式 (2024)
Top Articles
The Spiritual Significance of Zion: Unveiling its Mysteries
Hebrews 12:1-4,12-15,18-19,22-24 Therefore, since we have so great a cloud of witnesses surrounding us, let us also lay aside every encumbrance and the sin which so easily entangles us, and let us run with endurance the race that is ,Therefore, strengthen
Basketball Stars Unblocked 911
T Mobile Rival Crossword Clue
Forum Phun Extra
Humidity Yesterday At My Location
O'Quinn Peebles Phillips Funeral Home
Everything We Know About Wenwen Han and Her Rise To Stardom
The biggest intelligence leaks in US history
Hudson River Regional Conference Inc. · 112-14 107th ave., South Richmond Hill, NY 11419
Okc Farm And Garden Craigslist
Myzmanim Edison Nj
Jennifer Lenzini Leaving Ktiv
Free Cities Mopoga
Ironman Kona Tracker
8042872020
Journeys Employee Discount Limit
Usccb 1 John 4
Craigslist Ct Pets
Mynorthwoodtech
Elemental Showtimes Near Sedaliamovies
Craigslist Goats For Sale By Owner Near Me
Python Regex Space
Kawasaki Ninja® 500 | Motorcycle | Approachable Power
Dtm Urban Dictionary
Espn Masters Leaderboard
Kbh Client Portal
Squeezequeens
Aunt Nettes Menu
02080797947
Rainbird Wiring Diagram
How Much Does Hasa Pay For Rent 2022
Paris 2024: The first Games to achieve full gender parity
Encore Atlanta Cheer Competition
Black Myth Wukong All Secrets in Chapter 6
Ma Scratch Tickets Codes
123Movies Iron Man 2
Skip The Games Albany
4225 Eckersley Way Roseville Ca
How Old Is Ted Williams Fox News Contributor
Mekala - Jatland Wiki
Busted Newspaper Mcpherson Kansas
Trực tiếp bóng đá Hà Nội vs Bình Định VLeague 2024 hôm nay
Ukg Dimensions Urmc
Rida Asfahani Leaked Video
Joy Ride 2023 Showtimes Near Mjr Chesterfield
Ktbs Payroll Login
Chirp One Medical Seniors
CareLink™ Personal Software | Medtronic
Neuer Extraction-Shooter auf Steam will Escape from Tarkov Konkurrenz machen, wird von echten Militär-Veteranen entwickelt
Local artist makes award-winning reflection of his home, Duluth
Latest Posts
Article information

Author: Barbera Armstrong

Last Updated:

Views: 5713

Rating: 4.9 / 5 (59 voted)

Reviews: 82% 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.