iOS YUV与RGB&YUV算法

数字媒体压缩

????????为缩小数字媒体文件的大小,我们需要对其使用压缩技术,一般来说我们所欣赏的媒体内容都进行过一定程度的压缩,无论在电视上的视频,蓝光碟片,网页上的视频流还是冲iTunes Store购买的资源,我们其实都是和这些内容的原始文件的压缩格式在打交到,对数字媒体进行压缩可以大幅度缩小文件的尺寸,但是通常会在资源的质量上有小幅可见的衰减,

色彩的二次采样

????????视频数据是使用称之为YCbCr颜色模式,它也常称为YUV,虽然YUV术语并不准确,但是读起来比较方便,大部分的软件开发者都更熟悉RGB颜色模式,即每个像素点都由红,绿,蓝三个颜色组合而成,YCbCr或者是YUV则使用色彩(颜色)通道UV替换了像素的亮度通道.

此图来源于AVFoundation

????????从上图中我们可以看到图片的细节都保存在亮度的通道中,假设世界上没有阳光,我们的眼睛是看不到任何的东西,如果去除亮度,剩下的就是一副灰度图片,我们在看整合的色彩通道中关于图片的所有细节都丢失了,这是由于我们眼睛对亮度的敏感度要高于颜色,所以,在YUV中,我们可以通过大幅减少存储在每个像素点中的颜色信息,而不致于图片的质量严重受损,这个减少颜色数据的过程就称之为色彩的二次采样。

我们平时所说的4:4:4和4:2:2以及4:2:0到底指的是什么,以及它的由来?

????????色彩的二次采样一般发生在取样时,一些专业的相机以4:4:4的参数捕捉图像,但大部分情况下对于图片的拍摄使用4:2:2的方式进行的,面向消费者的摄像头装置,比如iPhone手机上的摄像头,通常是以4:2:0的方式进行拍摄,即使经过大量层级的二次抽样之后仍然可以捕捉到高质量的图片,iPhone手机上拍出来的高质量视频就是很好的例证,

1.RGB的颜色编码

????????RGB?三个字?分别代表了 红(Red)、绿(Green)、蓝(Blue),这三种颜?称为?三原?,将它们以不同的?例相加,可以产?多种多样的颜?。


一个像素点的RGB

????????在图像显示中,?张1280 * 720???的图?,就代表着它有1280 * 720?个像素点。其中每?个像素点的颜?显示都采?RGB?编码?法,将RGB?分别取不同的值,就会展示不同的颜?。

????????RGB?图像中,每个像素点都有红、绿、蓝三个原?,其中每种原?都占?8 bit,也就是?个字节,那么?个像素点也就占?24 bit,也就是三个字节。

? ? ? ? ?张1280 * 720???的图?,就占?1280 * 720 * 3 / 1024 / 1024 = 2.63 MB?存储空间

2.YUV的颜色编码

? ??????YUV?颜?编码采?的是?明亮度?和??度?来指定像素的颜?。其中,Y?表示明亮度(Luminance、Luma),?U?和V?表示?度(Chrominance、Chroma)。??度?定义了颜?的两个??:?调和饱和度


YUV表示一个像素点

????????和RGB?表示图像类似,每个像素点都包含Y、U、V?分量。但是它的Y?和UV?分量是可以分离的,如果没有UV?分量?样可以显示完整的图像,只不过是??的。对于YUV?图像来说,并不是每个像素点都需要包含了Y、U、V?三个分量,根据不同的采样格式,可以每个Y?分量都对应??的UV?分量,也可以?个Y?分量共?UV?分量

传说中的4:4:4

? ? ? ? 在4:4:4的模式下,色彩的全部信息被保全下来,如图:

相邻的四个像素点

????????相邻的四个像素点ABCD,每个像素点有自己的YUV,在色彩的二次采样的过程中,分别保留自己的YUV,称之为4:4:4;

传说中的4:2:2

四个相邻的像素点

????????如图ABCD四个相邻的像素点,A(Y0,U0,V0),B(Y1,U1,V1),C(Y2,U2,V2),D(Y3,U3,V3),当二次采样的时候,A采样的时候保留(Y0,U0),B保留(Y1,V1),C保留(Y2,U2),D保留(Y3,V3);也就是说,每个像素点的Y(明亮度)保留其本身的值,而U和V的值是每间隔一个采样,而最终就变成:

映射后的结果

? ??????也就是说A借B的V1,B借A的U0,C借D的V3,D借C的U2,这就是传说中的4:2:2,?张1280 * 720???的图?,在YUV 4:2:2?采样时的??为:

(1280 * 720 * 8 + 1280 * 720 * 0.5 * 8 * 2)/ 8 / 1024 / 1024 = 1.76 MB?。

? ??????可以看到YUV 4:2:2?采样的图像?RGB?模型图像节省了三分之?的存储空间,在传输时占?的带宽也会随之减少

传说中的4:2:0

? ? ? ? 在上面说到的4:2:2中我们可以看到相邻的两个像素点的UV是左右互相借的,那可不可以上下左右借了,答案当然是可以的,


4:2:0流程

????????YUV 4:2:0?采样,并不是指只采样U?分量?不采样V?分量。?是指,在每??扫描时,只扫描?种?度分量(U?或者V),和Y?分量按照2 : 1?的?式采样。?如,第??扫描时,YU?按照2 : 1?的?式采样,那么第??扫描时,YV?分量按照2:1?的?式采样。对于每个?度分量来说,它的?平?向和竖直?向的采样和Y?分量相?都是2:1?。假设第??扫描了U?分量,第??扫描了V?分量,那么需要扫描两?才能够组成完整的UV?分量

? ??????从映射出的像素点中可以看到,四个Y?分量是共?了?套UV?分量,?且是按照2*2?的??格的形式分布的,相?YUV 4:2:2?采样中两个Y?分量共??套UV?分量,这样更能够节省空间。?张1280 * 720???的图?,在YUV 4:2:0?采样时的??为:

(1280 * 720 * 8 + 1280 * 720 * 0.25 * 8 * 2)/ 8 / 1024 / 1024 = 1.32 MB 相对于2.63M节省了一半的空间

RGB — YUV?颜?编码转换

????????对于图像显示器来说,它是通过RGB?模型来显示图像的,?在传输图像数据时?是使?YUV?模型,这是因为YUV?模型可以节省带宽。因此就需要采集图像时将RGB?模型转换到YUV?模型,显示时再将YUV?模型转换为RGB?模型。

? ??????RGB?到YUV?的转换,就是将图像所有像素点的R、G、B?分量转换到Y、U、V?分量。

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

????????U = -0.147 * R - 0.289 * G + 0.436 * B?

????????V = 0.615 * R - 0.515 * G - 0.100 * B

????????R = Y + 1.14 * V?

????????G = Y - 0.39 * U - 0.58 * V?

????????B = Y + 2.03 * U

上面为固定的转换公式,不做死记硬背,如有错误,请大佬批评教育

?著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,029评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,238评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事?!?“怎么了?”我有些...
    开封第一讲书人阅读 159,576评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,214评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,324评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,392评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,416评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,196评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,631评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,919评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,090评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,767评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,410评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,090评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,328评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,952评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,979评论 2 351