音视频基础(图像的基础概念)
文章目录
- **1. 像素(Pixel)**
- **2. 分辨率(Resolution)**
- **3. 位深(Bit Depth)**
- **4. 帧率(Frame Rate, FPS)**
- **5. 码率(Bitrate)**
- **6. Stride(步长/行跨度)**
- **总结**
- **1. RGB 色彩空间**
- **概念**
- **RGB 的表示方式**
- **RGB 的特点**
- **2. YUV 色彩空间**
- **概念**
- **YUV 的表示方式**
- **YUV 的特点**
- **3. RGB vs. YUV 对比**
- **4. RGB 和 YUV 的转换**
- **RGB 转 YUV 公式**
- **YUV 转 RGB 公式**
- **5. 总结**
在图像和视频处理中,有几个重要的基础概念需要理解,包括像素、分辨率、位深、帧率、码率和 Stride。下面我们逐一讲解这些概念:
1. 像素(Pixel)
- 定义:像素(Pixel, Picture Element)是构成数字图像的最小单位,可以理解为图像中的一个点。
- 特点:
- 每个像素具有颜色信息,通常由 RGB(红绿蓝) 或 YUV 组成。
- 像素数量越多,图像的细节越丰富。
- 在 灰度图像(黑白图像)中,每个像素只有一个亮度值(0-255)。
- 在 彩色图像 中,每个像素通常由多个通道表示(如 8 位 RGB:每个像素用 3 个字节表示)。
2. 分辨率(Resolution)
- 定义:分辨率表示图像的像素数量,通常以宽 × 高的形式表示(例如 1920×1080)。
- 影响:
- 分辨率越高,图像越清晰,但存储和处理的计算量也更大。
- 常见分辨率:
- 标清(SD):720×480 (NTSC) 或 720×576 (PAL)
- 高清(HD):1280×720 (720p)
- 全高清(FHD):1920×1080 (1080p)
- 超高清(UHD/4K):3840×2160
- 8K:7680×4320
3. 位深(Bit Depth)
- 定义:位深(Bit Depth)表示每个像素存储的颜色信息的位数。
- 分类:
- 1 位(黑白图像):每个像素仅存储 0 或 1(黑或白)。
- 8 位(灰度图):每个像素存储 0-255 的亮度值。
- 24 位(RGB):8 位红 + 8 位绿 + 8 位蓝,共 16,777,216 种颜色。
- 32 位(RGB + Alpha):在 RGB 基础上加 8 位 Alpha 通道(透明度)。
- HDR 图像 通常使用 10 位或 12 位,能显示更丰富的色彩和动态范围。
4. 帧率(Frame Rate, FPS)
- 定义:帧率(Frame Per Second, FPS)表示每秒播放的帧数,是视频流的重要参数。
- 影响:
- 帧率越高,运动画面越流畅。
- 低帧率(如 15FPS)可能导致画面卡顿。
- 常见帧率:
- 24 FPS:电影标准,较自然的运动感。
- 30 FPS:常见于电视和网络视频。
- 60 FPS:用于高帧率视频和游戏,画面更加流畅。
- 120 FPS 及以上:用于高刷新率显示器,VR 头显等。
5. 码率(Bitrate)
- 定义:码率表示单位时间内视频或音频数据的传输量,通常以 Kbps(千比特每秒) 或 Mbps(兆比特每秒) 计量。
- 计算:
- 码率 = 帧率 × 分辨率 × 位深度
- 影响:
- 码率越高,画质越好,但占用存储空间更大,带宽需求更高。
- 恒定码率(CBR, Constant Bitrate):保持固定码率,适用于直播等对流畅度要求较高的场景。
- 可变码率(VBR, Variable Bitrate):根据画面复杂度调整码率,提高压缩效率,适用于录制存储。
6. Stride(步长/行跨度)
- 定义:Stride(步长)指的是图像每行像素数据所占的字节数,包括可能存在的填充字节。
- 为什么需要 Stride?
- 有些系统要求每行的像素数据对齐到某个字节边界(如 4 字节、8 字节对齐)。
- 有时为了内存对齐,存储时会在每行像素数据后添加额外的填充字节,保证高效读取。
- 计算方式:
- 假设一个 1920×1080 的 24 位 RGB 图像:
- 每个像素 3 字节(RGB)。
- 理想情况下:1920 × 3 = 5760 字节(即一行像素数据)。
- 若系统要求 4 字节对齐,则可能会填充到 5764 字节。
- 假设一个 1920×1080 的 24 位 RGB 图像:
总结
概念 | 定义 | 影响 | 常见值 |
---|---|---|---|
像素 | 图像的最小单位 | 决定图像细节 | |
分辨率 | 图像的像素数量(宽 × 高) | 越高图像越清晰 | 720p、1080p、4K |
位深 | 每个像素存储的比特数 | 越高颜色越丰富 | 8 位、24 位、32 位 |
帧率 | 每秒显示的帧数 | 影响流畅度 | 24FPS、30FPS、60FPS |
码率 | 每秒钟传输的数据量 | 影响画质和带宽需求 | 1Mbps、10Mbps |
Stride | 每行像素数据占用的字节数 | 影响存储布局和处理效率 | 可能存在额外填充 |
这些概念是图像与视频处理的基础,掌握它们有助于更深入理解图像渲染、视频编解码等技术。
在图像和视频处理中,RGB 和 YUV 是两种常见的颜色表示方式,它们各有优缺点,并在不同的场景下使用。下面我们详细讲解这两种色彩空间的概念、区别和应用场景。
1. RGB 色彩空间
概念
RGB(Red、Green、Blue)是一种基于**加色模型(Additive Color Model)**的色彩表示方式。
- 通过红(R)、绿(G)、蓝(B)三种颜色的不同强度组合,可以表示几乎所有可见颜色。
- 适用于显示设备(如显示器、LED 屏幕等),因为这些设备通过发光来呈现颜色。
RGB 的表示方式
- 8-bit RGB(24-bit color):
- 每个通道占 8 位(0-255),总计 24 位。
- 常见的存储格式:
RGB888
(每个像素 3 字节)。
- RGBA(带透明通道):
RGB888 + Alpha
(透明度),总共 32 位。- 常见格式:
RGBA8888
(每个像素 4 字节)。
RGB 的特点
✅ 适用于显示设备,如显示器、手机屏幕等。
✅ 颜色直观,容易理解和调整。
❌ 数据量大,不适合视频压缩和存储。
2. YUV 色彩空间
概念
YUV 是一种基于亮度-色度(Luminance-Chrominance)的色彩模型,广泛用于视频压缩和传输。
- Y(Luminance,亮度):决定画面的明暗程度。
- U、V(Chrominance,色度):决定颜色信息。
这种分离方式使得人眼感知亮度比色度更敏感,视频编码可以减少色度数据,从而大大降低存储和带宽需求。
YUV 的表示方式
常见的 YUV 采样格式有:
- YUV444:
- 每个像素都有完整的 Y、U、V 分量(无色度压缩)。
- 适用于高质量视频和图像处理,但数据量较大。
- YUV422:
- 水平方向上每 2 个像素共用 1 组 UV 色度信息(减少 1/3 色度数据)。
- 适用于高清电视(HDTV)、视频流等。
- YUV420:
- 每 4 个像素共用 1 组 UV(减少 50% 色度数据)。
- 是最常见的压缩格式(如 H.264、H.265)。
- YUV411:
- 水平方向每 4 个像素共用 1 组 UV。
- 适用于低码率视频应用,如视频通话。
YUV 的特点
✅ 更适合视频压缩和传输(因为色度数据可以被压缩)。
✅ Y(亮度)信号可以单独处理,使其兼容黑白电视。
❌ 不直观,不能直接用于显示,需要转换为 RGB。
3. RGB vs. YUV 对比
特性 | RGB | YUV |
---|---|---|
用途 | 适用于显示(显示器、手机屏幕等) | 适用于视频压缩、存储、传输 |
存储效率 | 数据量大 | 更节省存储空间 |
易理解性 | 直观(直接对应颜色) | 需要转换才能正确显示 |
颜色组成 | R(红)、G(绿)、B(蓝) | Y(亮度)、U(色差)、V(色差) |
压缩性 | 不能直接压缩 | 可以对色度分量采样,减少数据量 |
4. RGB 和 YUV 的转换
由于 RGB 适用于显示,而 YUV 适用于存储和传输,视频处理过程中经常需要RGB ↔ YUV 颜色空间转换。
RGB 转 YUV 公式
YUV 的标准转换(以 BT.601 颜色空间为例):
[
Y = 0.299R + 0.587G + 0.114B
]
[
U = 0.492 (B - Y) = (B - Y) \times 0.492
]
[
V = 0.877 (R - Y) = (R - Y) \times 0.877
]
YUV 转 RGB 公式
[
R = Y + 1.140V
]
[
G = Y - 0.395U - 0.581V
]
[
B = Y + 2.032U
]
这种转换在视频编码、解码过程中非常常见,例如:
- 视频播放时,YUV 数据必须转换成 RGB 才能在屏幕上显示。
- 视频编码时,RGB 图像通常会转换成 YUV 进行压缩。
5. 总结
- RGB 适用于显示,数据量大但颜色直观。
- YUV 适用于视频存储、压缩和传输,减少数据量,但需要转换为 RGB 才能显示。
- RGB 和 YUV 之间需要相互转换,在视频编解码、传输、播放中都会涉及。
- YUV 采用不同的采样格式(如 YUV420、YUV422),可以有效减少数据量,而不影响人眼视觉体验。
在实际应用中:
- RGB 常用于计算机图形学、图像处理、显示设备(如屏幕)。
- YUV 常用于视频存储、视频压缩、流媒体传输(如 H.264、H.265)。
理解这两种色彩模型对于图像处理、视频编码、硬件开发等领域至关重要。