欢迎光临散文网 会员登陆 & 注册

说好的这次讲像素格式

2020-06-02 13:41 作者:暗切线  | 我要投稿

参考:https://ffmpeg.org/doxygen/4.0/pixfmt_8h.html#a9a8e335cf3be472042bc9f0cf80cd4c5

这回先把参考地址放出来。因为太多了,所以不一一赘述。只说一些关键点。具体的像素格式网上遍地是。可以自己查。

这次题目的由来 

B站二压标准

可以看到里面有色彩空间一项。然而色彩空间确实不是很准确。先看看色彩空间是个啥

维基百科色彩空间比对图

由于计算机是采样,所以存下来的数据并不能完全表示真正的色彩。色彩空间和像素格式有一定关系,像素格式+位深度可以表现的色彩区域,一般才被称之为色彩空间。但就yuv420并不能表示。

YUV420 其实就有很多子门类。但是真正影响色彩空间的是 420 还是 444 或者422 + 位深度

举几个YUV420的例子

AV_PIX_FMT_YUV420P 

AV_PIX_FMT_YUVJ420P 

AV_PIX_FMT_YUV420P16LE 

等等

然后讲个故事。

有个视频。有好多好多员工。每三员工都负责屏幕上的像素点。

此时。老板觉得,可以做人员优化。

就把员工从RGB三个部门 重新分成了三个部门 Y部门 U部门 V部门。

仍然是 Y部门一个人 U部门一个人 V部门一个人负责一个像素点。(YUV444)

比如四个像素点。他们就是这样的

然后老板发现,U和V的工作不那么关键。就把U和V进行裁员。裁员目标是这俩部门各裁员 50%

剩下UV 各负责两个像素点。

于是就变成了这样:

YUV422

后来老板又觉得 可以再砍一半。。于是UV部门一个人要负责4个像素点,于是变成这样:

YUV420

这是网上我认为采样讲的比较清楚的图。白圈是UV。黑圈是Y。可以看一下

图片来源于网络

那p又是咋回事??存储格式。

有一天公司开大会。老板要求同一部门的同事坐在一起。于是。重新排了一下这帮员工的座位:

YUV420P存储

然后他们的座次表如图所示。就变成了了最常用的yuv420p

那位深度又是咋回事

老板说:我们虽然减员了。但是我们要增效。。随后每个YUV员工。本来手头只有8个项目要搞(位深度 8) 变成了10个项目(位深度10)然后变成了16个(位深度16)

AV_PIX_FMT_YUV420P16LE  就诞生了

LE又是啥?

数据具体的格式 little-endian 或者 big-endian

这公司本来没那么多活儿的时候属于管理。活多了就引入了OKR或者KPI。也就是little-endian 或者 big-endian了。

不知道讲明白了没有。

至于解码和展现代码,可以参考我之前在字节写得WebGL代码:

https://github.com/bytedance/xgplayer/tree/live-mobile/packages/xgplayer-render/src/fmt

交流群:711929228

本期问题:yuv420p指的是啥?

答案:像素格式。

说好的这次讲像素格式的评论 (共 条)

分享到微博请遵守国家法律