C++音视频八股文(音频编解码基础)

1. 常见的音频编码格式有哪些?AAC、MP3、Opus各有什么特点?

常见音频编码格式:

  • AAC(Advanced Audio Coding)
  • MP3(MPEG-1 Audio Layer 3)
  • Opus
  • AC-3/E-AC-3(杜比数字)
  • FLAC(无损)
  • PCM(未压缩)

AAC特点:

  • 压缩效率比MP3高约30%,相同码率下音质更好
  • 支持更多声道(最多48个)
  • 支持更高采样率(最高96kHz)
  • 广泛用于流媒体、移动设备、数字电视
  • 典型码率:128-256kbps

MP3特点:

  • 最流行的有损压缩格式,兼容性最好
  • 压缩效率较低,但解码简单
  • 支持CBR、VBR、ABR码率控制
  • 典型码率:128-320kbps
  • 专利已过期,完全免费

Opus特点:

  • 新一代开源音频编码,结合SILK和CELT
  • 低延迟(5-66.5ms),适合实时通信
  • 码率范围广(6-510kbps),自适应性强
  • 音质优于AAC和MP3
  • WebRTC、Discord等使用
  • 适合:VoIP、视频会议、音乐流媒体

2. 什么是PCM(脉冲编码调制)?采样率、位深度、声道数分别代表什么?

PCM(Pulse Code Modulation):

  • 未压缩的原始音频数据格式
  • 将模拟音频信号数字化的标准方法
  • 通过采样、量化、编码三个步骤实现

采样率(Sample Rate):

  • 每秒采样次数,单位Hz
  • 常见值:8kHz(电话)、16kHz(语音)、44.1kHz(CD)、48kHz(专业音频)、96kHz(高保真)
  • 根据奈奎斯特定理,采样率需≥2倍最高频率
  • 44.1kHz可覆盖人耳听觉范围(20Hz-20kHz)

位深度(Bit Depth):

  • 每个采样点的量化精度,单位bit
  • 常见值:8bit、16bit、24bit、32bit
  • 16bit提供96dB动态范围,CD标准
  • 位深度越高,音质越好,噪声越小,文件越大

声道数(Channels):

  • 音频轨道数量
  • 1:单声道,2:立体声,6:5.1环绕声

码率计算:

码率 = 采样率 × 位深度 × 声道数
例:44.1kHz × 16bit × 2 = 1411.2kbps(CD音质)

3. 音频采样格式有哪些?Planar和Packed格式有什么区别?

常见采样格式:

  • 整数格式:S8、S16、S32(有符号)、U8(无符号)
  • 浮点格式:FLT(32位浮点)、DBL(64位浮点)
  • Planar格式:S16P、FLTP等
  • Packed格式:S16、FLT等

Packed(交错)格式:

  • 多声道数据交错存储
  • 立体声存储顺序:L R L R L R...
  • 内存布局:[L0][R0][L1][R1][L2][R2]...
  • 优点:数据连续,便于传输和播放
  • FFmpeg表示:AV_SAMPLE_FMT_S16

Planar(平面)格式:

  • 每个声道独立存储
  • 立体声存储:[L0 L1 L2...] [R0 R1 R2...]
  • 内存布局:左声道数组 + 右声道数组
  • 优点:便于单独处理每个声道,编码器常用
  • FFmpeg表示:AV_SAMPLE_FMT_S16P

使用场景:

  • 音频播放、传输:Packe

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

C++八股文全集 文章被收录于专栏

本专栏系统梳理C++技术面试核心考点,涵盖语言基础、面向对象、内存管理、STL容器、模板编程及经典算法。从引用指针、虚函数表、智能指针等底层原理,到继承多态、运算符重载等OOP特性从const、static、inline等关键字辨析,到动态规划、KMP算法、并查集等手写实现。每个知识点以面试答题形式呈现,注重原理阐述而非冗长代码,帮助你快速构建完整知识体系,从容应对面试官提问,顺利拿下offer。

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务