多媒体音视频核心概念

核心概念

封装格式 (Container format)

即容器 , 定义了编码器生成的多媒体内容 (视频 , 音频 , 字幕 , 章节信息等) 混合封装在一起的标准 。组合起来的多媒体能实现同步播放 (音视频字幕同步) , 也提供了内容索引 (可以拖动进度条调整播放进度) 。一个视频文件往往会包含图像和音频 , 还有一些配置信息 (如何关联图像和音频 , 如何解码它们等) 。

编解码 (Codec)

定义了原有媒体数据进行压缩 (编码) 或解压缩 (解码) 的标准 。 为了便于存储和传输 , 原始的音频和视频会通过编码压缩体积 , 然后在需要播放的时候再逆向解码还原 。 Codec 规定了编解码过程中的细节 (数字存储空间 、 帧速率 、 比特率 、 分辨率等) 标准 。

码率

即传输码率/比特率 (bps , Bit Per Second) , 每秒传输压缩后的数据的比特数 。 一般媒体的信号质量和体积取决于两个方面 : 采样率压缩比 , 其中采样率直接影响传输码率 。

通常来说 , 一个视频包含了画面和声音 。 例如一个RMVB的视频文件 , 里面包含了视频信息和音频信息 , 音频及视频都有各自不同的采样方式和比特率 , 也就是说 , 同一个视频文件音频和视频的比特率并不是一样的 。 而我们所说的一个视频文件码流率大小 , 一般是指视频文件中音频及视频信息码流率的总和 。例如 , 一个音频编码率为 128Kbps ,视频编码率为 800Kbps 的文件 ,其总编码率为 928Kbps ,意思是经过编码后的数据每秒钟需要用 928K比特来表示 。

另外 , 传输码率可按照以下三种进行分类 :

  • 常见码率 (CBR , Constant Bitrate) , 指文件从头到尾都是一种位速率。相对于 VBR 和 ABR 来讲,它压缩出来的文件体积很大,而且音质相对于 VBR 和 ABR 不会有明显的提高 。
  • 可变码率 (VBR , Variable Bitrate) , 压缩软件在压缩时根据音频数据即时确定使用什么比特率,这是以质量为前提兼顾文件大小的方式 。
  • 平均码率 (ABR , Average Bitrate) , LAME 针对 CBR 不佳的文件体积比和 VBR 生成文件大小不定的特点独创了这种编码模式 。 ABR 在指定的文件大小内 ,以每 50 帧 (30帧约1秒) 为一段 , 低频和不敏感频率使用相对低的流量 , 高频和大动态表现时使用高流量 , 可以做为VBR和CBR的一种折衷选择 。

采样率

即采样速度或采样频率 , 定义了每秒从连续信息好提取并组成离散信息的采样个数 , 单位赫兹 (Hz) 。

电影的采样率是 24HZ , 类似于动态影像的帧数 , 如果把采样到的一个个静止画面以采样的相同速度播放 , 看到的画面就是连续的 。 对于声音采样 , 一般以 44.1kHZ 的采样率几率的 CD 以相同的速率播放时 , 能听到连续的声音 。 人的听觉和视觉器官能分辨的采样率是有限的,基本上高于 44.1kHZ 采样的声音 ,绝大部分人已经觉察不到其中差异 。 声音的位数相当于画面的颜色数 , 表示每个取样的数据量 。 所采的数据量越大 , 声音越准确 , 画面更清晰 。 受人的器官的机能限制 ,16位 的声音和 24位 的画面基本已经是普通人类的极限了 , 更高位数就只能靠仪器才能分辨出来了 。 比如电话就是 3kHZ 取样的 7位 声音,而CD是 44.1kHZ 取样的 16位 声音 ,所以CD就比电话更清楚 。

分辨率

即屏幕每一帧图像的像素分布矩阵 , 同个屏幕上分辨率越高图像越大显示越细腻 , 反之越小越模糊 。

帧率

即帧速率 (FPS , Frames Per Second) , 即每秒显示的帧数 , 影响画面流畅 。

清晰度

即肉眼感知画面的清晰程度 。 受码率与分辨率的影响 。

概念之间的关系

  • 视频编解码流程

    采集样本 -> 编码压缩 -> 数据传输 -> 数据接收 -> 解压解码

  • 封装格式和编解码的关系

    假设有一个 MP4 电影文件 film.mp4 , 则 film.mp4 可视为一个 Container , .mp4是封装格式 。 其文件中盛放着视频、 音频、 字幕等信息 , 这些内容各自遵循着不同的 Codec 。所以封装格式与编解码无必然联系 , 但是封装格式状态的媒体内容决定了这些媒体内容应该如何 codec 。

  • 采样率和码率的关系

    假设存在一张 60 分钟的 CD , 其采样率为 44.1 kHZ , 两个声道且每个声道取样为 13位 PCM 编码 。 则这张 CD 的比特率计算为

    1
    44100 * 2 * 13 = 1146600 bps

    表示每秒采样 44100 次 , 每次采样数据 26 Bit 。

  • 帧率、 分辨率、 码率、清晰度的关系

    举个栗子 , 帧率 30fps , 分辨率为 1920 * 1080 , 每个像素点 2 字节 , 则压缩前每秒数据量为

    1
    30 * 1920 * 1080 * 2 * 8 / 1024 / 1024 = 1492992000 Bit ≈ 1423.8 Mbit

    这意味着每秒要传输大约 1424 Mb 的数据 , 这不压缩根本不可能在线播放 , 所以视频传输的时候必定需要压缩处理 。故存在

    1
    帧率 * 分辨率 = 压缩前每秒所需传输的数据量 (单位比特)

    而压缩视频之后经过进行传输 , 则存在

    1
    压缩比 = 压缩前每秒所需传输的数据量 / ( 码率 * 1s) * 100 %

    在码率一定的情况下 , 分辨率与清晰度是反比关系 。 这里的分辨率指的是传输前的媒体的分辨率 , 越高则意味着压缩前每秒所需传输的数据量越大 , 失真程度越大 。

    在分辨率一定的情况下 , 码率与清晰度是正比关系。 码率越高 , 意味着压缩比约接近 1 ,失真越不明显 , 图像越清晰 。

  • 如何理解采样导致清晰度变化

    采样会导致分辨率发生变化 。 如高分辨率变成低分辨率称为下采样 , 由于采样前数据充足 ,只需要尽量保留更多的信息量 , 一般可以获得相对较好的结果 。 而由低分辨率变成高分辨率称为上采样 , 由于需要插值等方法来补充缺少的像素点 , 故必然会带有失真 , 这就是一种视频质量(清晰度)的损失 。

  • 帧率是不是越高越好

    假定固定一个码率 800kbps , 则每秒传输接收的数据固定 , 若帧率越高 , 则每秒的图像越多 , 单张图像的压缩比则会变大 , 也就是通过降低画质来承载更多的帧数 。

  • 码率是不是越大越好

    假定码率不做大小限制 , 帧率固定分辨率越高 , 则码率变大画质会更细腻 ; 分辨率固定则帧率变大 , 则码率变大视频更流畅 。 这可能消耗更多的流量。

参考资料

视频格式那么多,MP4/RMVB/MKV/AVI 等,这些视频格式与编码压缩标准 mpeg4,H.264.H.265 等有什么关系?
I帧,P帧,B帧,视频码率,帧率和分辨率 区别和理解
论码流、码率、采样率、比特率、帧速率、分辨率、高清视频的概念