图像数值表示
分辨率
分辨率的基础单位是像素。1280 * 720 P 的分辨率代表共有 1280 * 720 个像素点。
一台物理设备出厂时就已经定下了它所能拥有的最大像素点是多少。电脑显示屏调整分辨率是系统通过运算来给出模拟色彩块填充适配的。
下述像素排列方式内容为 expansion pack,可略过。
像素排列方式
标准 RGB 排列
LCD 屏幕上常采用标准 RGB 排列,会将一个像素分为 3 个子像素并排排列,通过红、绿、蓝滤色片将 LCD 背光模组的白光过滤后形成相应的 RGB 子像素排列。当需要显示不同颜色的时候,3 个子像素以不同的亮度发光,在视觉上会混合成所需要的颜色。
PenTile 排列
PenTile 排列多见于 OLED 屏幕上,因子像素呈现钻石排列而得名。PenTile 排列的每个像素由红、绿和蓝、绿子像素组合而成,绿色像素是完整的,而红蓝像素相比传统 RGB 排列各减少二分之一,子像素总数减少了约三分之一。
不像标准 RGB 排列每个像素更加独立,PenTile 排列在显示许多内容时需要借用相邻像素,显示精细内容时同分辨率下相较标准 RGB 排列的屏幕细腻度不足。
蓝色 OLED 的发光效率要比红色和绿色低,达到相同的发光强度必须使用更高的通过电流,因而蓝色像素衰减速度更快,也就会加速“烧屏”现象的产生。
YUV 表示方式
对于视频裸数据而言,更多使用 YUV 数据格式显示。
- Y 表示明亮度 (Luminance / Luma),即灰阶值
- U、V 表示色度 (Chrominance / Chroma),描述色调饱和度
亮度通过 RGB 输入信号来建立,方法是将 RGB 信号的特定部分叠加到一起。色度定义了颜色的色彩和饱和度,分别用 Cr 和 Cb 表示。Cr 表示 RGB 输入信号红色部分与 RGB 亮度值之间的差异,Cb 表示 RGB 输入信号蓝色部分与 RGB 信号亮度值之间的差异。
YUV 优点
-
与黑白电视机也能兼容
Y 和 UV 分量分离,只有 Y 分量就是黑白图像。
-
相较于 RGB,YUV 数据格式占用空间小
人眼对色度的敏感程度低于对亮度的敏感程度(因为识别亮度的视网膜杆细胞比识别色度的视网膜锥细胞多)。将色的信息减少,人眼也无法察觉。且并不是每个像素点都需要包含 YUV 三个分量,根据不同的采用格式,每个 Y 分量可以对应自己的 UV 分量。
YUV 采样格式
YUV 4:4:4 采样
每个像素三个分量信息完整。
举个例子,一张 1 * 4 的图片:
图像像素为:[Y0 U0 V0]、[Y1 U1 V1]、[Y2 U2 V2]、[Y3 U3 V3]
采样码流为:Y0 U0 V0 Y1 U1 V1 Y2 U2 V2 Y3 U3 V3
最后映射出的像素点依旧为 [Y0 U0 V0]、[Y1 U1 V1]、[Y2 U2 V2]、[Y3 U3 V3]
一张 1280 * 720P 的图片使用 YUV 4:4:4 采样,大小为:
1280 * 720 * 3 / 1024 / 1024 = 2.636 MB
YUV 4:2:2 采样
Y 分量和 UV 分量按 2:1 的比例采样。
举个例子,一张 1 * 4 的图片:
图像像素为:[Y0 U0 V0]、[Y1 U1 V1]、[Y2 U2 V2]、[Y3 U3 V3]
采样码流为:Y0 U0 Y1 V1 Y2 U2 Y3 V3
最后映射出的像素点依旧为 [Y0 U0 V1]、[Y1 U0 V1]、[Y2 U2 V3]、[Y3 U2 V3]
一张 1280 * 720 P 的图片使用 YUV 4:2:2 采样,大小为:
(1280 * 720 + 1280 * 720 * 0.5 * 2) / 1024 / 1024 = 1.759 MB
YUV 4:2:0 采样
不是指没有 Cb,而是意味着第一行 Y 分量和 U 分量按 2:1 的比例采样,第二行 Y 分量和 V 分量按 2:1 的比例采样。Y 分量和 UV 分量按 4:1 的比例采样。
举个例子,一张 2* 4 的图片:
图像像素为:[Y0 U0 V0]、[Y1 U1 V1]、[Y2 U2 V2]、[Y3 U3 V3]、[Y4 U4 V4]、[Y5 U5 V5]、[Y6 U6 V6]、[Y7 U7 V7]
采样码流为:Y0 U0 Y1 Y2 U2 Y3 Y4 V4 Y5 Y6 V6 Y7
最后映射出的像素点依旧为 [Y0 U0 V4]、[Y1 U0 V4]、[Y2 U2 V6]、[Y3 U2 V6]、[Y4 U0 V4]、[Y5 U0 V4]、[Y6 U2 V6]、[Y7 U2 V6]
一张 1280 * 720 P 的图片使用 YUV 4:2:0 采样,大小为:
(1280 * 720 + 1280 * 720 * 0.25 * 2) / 1024 / 1024 = 1.318 MB
YUV 存储格式
-
planar 平面格式
先连续存储所有像素点的 Y 分量,然后存储 UV 分量。
-
packed 打包模式
每个像素点的 YUV 分量连续交替存储。
RGB 和 YUV 转化
对于图像显示器来说,它是通过 RGB 模型显示图像的,而在传输图像数据时又是使用 YUV 模型的。因此两种模型需要互相转化。
有如下公式:
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
IBP 帧
-
I 帧 (intra picture)
内部编码帧(也称为关键帧),通常是每个 GOP 片段的第一帧,经过适度压缩,作为随机访问的参考点,可以当作静态图像。I 帧压缩可去掉视频的空间冗余信息。
-
P 帧 (predictive-frame)
前向预测编码帧(也称为预测帧),通过将图像序列中前面已编码帧的时间冗余信息去充分去除压缩传输数据量的编码图像,需要参考前面的一个 I 帧或者 P 帧才能解码成一张完整的图像。P 帧可以简单理解为当前帧画面与前一帧的差别。
-
B 帧 (bi-directional interpolated prediction frame)
双向预测内插编码帧(也称双向预测帧),需要参考前面的一个 I 帧或者 P 帧以及后面的一个 P 帧才能编码成一张完整的图像。
简单来说,I 帧是一个完整的画面,而 P 帧和 B 帧记录的是相对于 I 帧的变化。如果没有 I 帧,P 帧和 B 帧就无法解码。压缩比 I 帧 < P 帧 < B 帧。
GOP
编码器将多张图像进行编码后生产成一段一段的 GOP (Group of Pictures),解码器在播放时则是读取一段一段的 GOP 进行编码后读取画面再渲染显示。GOP 是一组连续的画面,由一张 I 帧和数张 B / P 帧组成,是视频图像编码器和解码器存取的基本单位。gop_size 描述的是两个 I 帧之间的帧数目。
码率和帧率
帧率 (Frame Rate)
表示每秒实践显示的帧数(Frames per Second,简称 FPS)。
对于人眼来说,如果所看画面的帧率高于 24,就会认为是连贯的,此现象称为视觉暂留。
码率(比特率)
码率指每秒传输的比特数,单位为 bps (Bits Per Second),通俗一点讲就是取样率,单位时间内取样率越大,精度就越高,处理出的文件就越接近原始文件。
文件体积与取样率成正比,所有的编码格式都很重视如何用最低的码率达到最少的失真。
码率简单来说是指再压缩视频时给这个视频指定一个参数,用以告诉压缩软件期望的压缩后视频的大小。
参考
-
视频基础知识扫盲
最后修改于 2021-03-29