数字音视频存储揭秘:如何计算PCM音频与YUV/RGB视频的原始文件大小

PCM音频文件大小计算

让我们先来计算一下PCM(脉冲编码调制)音频文件的大小。

给定参数:

  • 采样率:44,100 Hz (即每秒44,100个样本)
  • 位深度:16 bit (每个样本占16位,即2字节)
  • 声道数:2 (立体声)
  • 时长:假设为1分钟(60秒)

计算公式:

复制代码
文件大小 = 采样率 × 位深度 × 声道数 × 时长

具体计算:

复制代码
44,100 samples/s × 16 bits/sample × 2 channels × 60 s
= 44,100 × 16 × 2 × 60 bits
= 84,672,000 bits

// 这里算出来的是bits,我们要先换算成字节,然后kb,再到mb
// 已知每8bit就是一个字节,故:
84,672,000 ÷ 8 ÷ 1024 ÷ 1024 ≈ 10.09 MB

所以,1分钟的44.1kHz、16bit、立体声PCM音频大约为10.09MB。


RGB和YUV视频文件大小计算

在视频处理中,与音频一样,色深指每个颜色通道(R/G/B)用多少比特(bit)来表示。视频默认是8bit色深,也就是1个字节。当然也有每个分量从8bit增加到10bit(但通常存储为16bit对齐,实际占用2字节)。要计算RGB视频的文件大小,还需要涉及到颜色通道的概念:

1. 像素与颜色通道的关系

  • 一个像素的颜色 由三种基本分量混合而成:红(R)、绿(G)、蓝(B)
  • 在标准的 RGB 表示中,每个通道(R/G/B)通常用 **1 字节(8 比特)**存储,因此一个像素需要占用:
    1 像素 = R(1字节) + G(1字节) + B(1字节) = 3 字节

2. 计算一帧 1080P 视频的原始大小

  • 分辨率 1920×1080 :表示一帧有 1920 × 1080 = 2,073,600 个像素
  • 每个像素 3 字节 :因此一帧的原始数据量为:
    2,073,600 像素 × 3 字节/像素 = 6,220,800 字节 ≈ 6.22 MB

3. 为什么需要分开存储 R、G、B?

  • 颜色深度:每个通道的 1 字节(256 级)可以表示颜色的强度(如 R=255 表示红色最亮,G=0 表示无绿色)。通过组合三个通道的值,才能得到最终颜色(例如黄色是 R=255, G=255, B=0)。
  • 灵活性:分开存储允许单独处理某个颜色通道(如调色时只增强红色)。

下面说说YUV格式的视频文件大小怎么计算:

YUV444、YUV422、YUV420 是视频编码中常用的 色彩子采样(Chroma Subsampling) 格式,目的是通过减少色度(UV)信息的数据量来压缩视频(人眼对亮度更敏感,对色度不敏感)。下面用直观的方式解释它们的区别:


1. YUV 是什么?

YUV 是一种颜色编码系统,将颜色信息分为:

  • Y(Luma):亮度分量(黑白信息,最重要)。
  • U/V(Chroma):色度分量(颜色信息,可压缩)。

类比:黑白照片(Y) + 彩色滤镜(UV)。


2. 数字的含义(4:4:4、4:2:2、4:2:0)

这些数字表示 色度分量(UV)相对于亮度分量(Y)的采样比例 ,格式为 Y:U:V

4×2 像素块 一共8个像素为例(每行4像素,共2行):

(1) YUV444(无压缩)
  • Y:每个像素独立采样,也就是每个像素都采集一次Y的数据(共 8 个 Y)。
  • U/V:每个像素独立采样,也就是每个像素都采集一次UV的数据(共 8 个 U 和 8 个 V)。
  • 数据量Y:U:V = 8:8:8无子采样,等同于 RGB 的原始数据量。
(2) YUV422(横向压缩)
  • Y:每个像素独立采样(8 个 Y)。
  • U/V :每 横向2像素共用1个UV,也就是2个Y共享一个UV(每行 4 像素 → 2 个 U/V,共 4 个 U 和 4 个 V)。
  • 数据量Y:U:V = 8:4:4 → 色度数据减少一半(相比 444)。
(3) YUV420(横向+纵向压缩)
  • Y:每个像素独立采样(8 个 Y)。
  • U/V :每 2×2 像素块共用1个UV也就是4个Y共享一个UV(4 像素 → 1 个 U/V,共 2 个 U 和 2 个 V)。
  • 数据量Y:U:V = 8:2:2 → 色度数据减少到 1/4(相比 444)。

3. 直观对比图

格式 亮度(Y) 色度(UV) 数据量(比例)
YUV444 ![Y全采样] ![UV全采样] 8:8:8(100%)
YUV422 ![Y全采样] ![UV横向2像素共用1个] 8:4:4(66%)
YUV420 ![Y全采样] ![UV2x2像素块共用1个] 8:2:2(50%)

4. 为什么需要 YUV 子采样?

  • 人眼特性:对亮度(Y)敏感,对色度(UV)不敏感。
  • 节省带宽 :YUV420 的数据量仅为 RGB 或 YUV444 的 一半,但视觉损失较小。
  • 应用场景
    • YUV444:专业视频编辑、医疗影像(需要无损色度)。
    • YUV422:广播电视、高清摄像(平衡质量与带宽)。
    • YUV420:流媒体(H.264/H.265)、网络视频(高效压缩)。

5. 计算数据量(以 1080P 为例)

假设每像素的 Y 占用 1 字节,UV 根据子采样变化:

  • YUV444
    1920×1080 × (1 + 1 + 1) = 6,220,800 字节(同 RGB)。
  • YUV422
    1920×1080 × (1 + 0.5 + 0.5) = 4,147,200 字节(减少 33%)。
  • YUV420
    1920×1080 × (1 + 0.25 + 0.25) = 3,110,400 字节(减少 50%)。

6. 扩展知识

  • YUV 的其他变种:如 YUV411(更激进压缩)、YUV410(极少用)。
  • 与 RGB 的转换:YUV 和 RGB 可以互相转换,但子采样会导致色度信息丢失(不可逆)。
  • 现代编码器:H.264/H.265 默认使用 YUV420,进一步通过 DCT、运动补偿等技术压缩。

附:快速记忆口诀

"Y全有,U和V,看数字怎么分"

  • 4:2:0 → 四像素 共用一个UV
  • 4:2:2 → 两像素 横向分一个UV
  • 4:4:4 → 像素 谁也不共享,全保留
相关推荐
REDcker4 天前
WebCodecs VideoDecoder 的 hardwareAcceleration 使用
前端·音视频·实时音视频·直播·webcodecs·videodecoder
gihigo19984 天前
基于TCP协议实现视频采集与通信
网络协议·tcp/ip·音视频
山河君4 天前
四麦克风声源定位实战:基于 GCC-PHAT + 最小二乘法实现 DOA
算法·音视频·语音识别·信号处理·最小二乘法·tdoa
音视频牛哥5 天前
Android平台RTMP/RTSP超低延迟直播播放器开发详解——基于SmartMediaKit深度实践
android·人工智能·计算机视觉·音视频·rtmp播放器·安卓rtmp播放器·rtmp直播播放器
qq_416276425 天前
通用音频表征的对比学习
学习·音视频
美狐美颜sdk5 天前
Android全局美颜sdk实现方案详解
人工智能·音视频·美颜sdk·视频美颜sdk·美狐美颜sdk
EasyDSS5 天前
私有化部署EasyDSS视频点播能力:全链路视频技术赋能,打造企业级视听新体验
音视频·hls·m3u8·点播技术·智能转码
qq_416276425 天前
DeLoRes——一种通用的音频表征学习新方法(DeLoRes(基于 Barlow Twins 的冗余最小化方法)
学习·音视频
Q_4582838685 天前
从定位到视频:808 + 1078 在各行业的落地实践
音视频
山顶望月川5 天前
实测MiniMax-Hailuo-02:当“开工大吉“变成“无字天书“,国产AI视频模型的能与之不能
人工智能·音视频