YUV􏱓􏱔􏲾􏱕颜色体系和NAUL详解

一:YUV的概念

YUV:(也称为YCbCr),是电视系统所采用的一种颜色编码方法
Y:表示亮度,也就是灰阶值,他是基础信号
UV:表示的则是色度,UV的作用是描述影像的色彩及饱和度,它们用于指定像素的颜色

二:YUV常见格式

YUV4:2:0 (YCbCr 4:2:0)--􏱠􏰎这比RGB少了二分之一􏲐􏲒􏲓􏰨
YUV4:2:2 (YCbCr 4:2:2)--YUV4:2:2就是比RGB小三分之一,RGB8:8:8
YUV4:4:4 (YCbCr 4:4:4)--理解为􏲞􏰒􏰢1:1:1,就是􏰳􏰀4个􏱗Y对应􏲟􏲠4个􏱗U和􏱻4个􏱗V

1:YUV4:2:0

YUV4:2:0并不意味着只有Y,Cb2个分量,而没有Cr分量,他实际指的是每行扫描线来说,只有一种色度分量,它以2:1的抽样率来存储的;

2:YUV存储格式

plannar(平面)

1:I420:YYYYYYYY UU VV -->YUV420P,是PC端用的
2:YV12: YYYYYYYY VV UU --> YUV420P

packed(打包)

1:NV12: YYYYYYYY UVUV --> YUV420SP
2:NV21: YYYYYYYY VUVU --> YUV420SP

有可能开发过程,比如iOS/安卓,在解码视频后发现图像出现倒置或者翻转,有可能是因为他们的YUV格式不一致,因为PC端一般常用与I420,安卓一般默认NV21,iOS一般默认NV12,如果想行为统一,就需要保证一致的存储格式;

三:NALU

NALU = NAL Header + NAL Body

H264码流在网络中传输时实际是以NALU的形式进行传输,每个NALU由一个字节Header和RBSP组成

NALU.png
NAL Header 解析
NAL Header 为一个字节,里面包含什么样的数据呢

第0位:F
第1~2位:NRI
第3~7位:type

Snip20190717_3.png

NAL Header.png

F:forbidden_zero_bit,在H264规范中规定了第一位必须为0,记住就行了
NRI:表示重要性,暂时无用处,000最无用,111最有用,用于表示当前NALU的重要性,值越大,越重要,解码器在解码处理不过来的时候丢掉重要性为0的NALU
type:表示这个NAL的类型,一下表示常见的几个
1:5:IDR图像的片(可以理解为I帧,I帧由多个I片组成)
2:7:序列参数集(sps)
3:8:序列参数集(pps)

NAL类型

单一类型:一个RTP包只包含NALU,就是说H264帧里只包含了一个片,例如P帧或者B帧都是单一类型
组合类型:一个RTP包含多个NALU,类型是24-27,像pps或者sps一般都放在一个包里,以为2个数据单元都非常小
分片类型:一个NALU单元分成多个RTP包,类型28-29

单一的NALU的RTP包.png
组合NALU的RTP包.png
分片NALU的RTP包.png

第1个字节:FU indicator分片单元指示符
第2个字节:FU Header 分片单元头,有多个片,就有FU Header组合起来

FU Header
FU Header.png

S:start bit用于指明分片的开始,在网络传输时,一个个包,我们知道他的分片的包,那么如何区分是开始还是末尾的包呢?如果为1就是分片的开始
E:end bit用于指明分片的结束
R:未使用,设置为0
Type:指明分片NAL类型,网络传输完成后,还是需要将分片组合成NALU单元,这个NAL
单元是关键帧还是非关键帧是sps还是pps,就需要根据Type来判断

在传输过程中将一个帧切割成多个片,如果在传输过程中顺序打乱,或者丢失了其中某个片,我们怎么判断NALU单元传输完整呢?

依据FU Header的S/E位,并借助于RTP包的包头,在RTP的包头包括了每个包的序列号,如果收到的包,收到了S包,也收到了E包,中间的包的序号是连续的,那就说明包是完整的,如果不是连续的就是丢包了,如果没有丢包就可以组合起来

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