美文网首页ios视频缓存
音视频基础概念合集:148 个问题带你快速上车音视频

音视频基础概念合集:148 个问题带你快速上车音视频

作者: 关键帧Keyframe | 来源:发表于2022-02-08 23:32 被阅读0次

    vx搜索『gjzkeyframe』 关注『关键帧Keyframe』来及时获得最新的音视频技术文章。

    对于刚开始接触音视频开发的同学,最头疼的问题应该是音视频纷繁庞杂的概念,如果删繁就简,音视频生产及消费的核心环节其实只有:采集(声音和图像的数字化) → 编码(压缩数据便于存储和传输) → 封装(按格式封装便于控制音视频的展现) → 传输(用于网络) → 解封装(封装的逆过程) → 解码(编码的逆过程) → 渲染(声音和图像的展现)

    因此,在前面的文章中,我们按照『声音和图像基础 → 音视频编码 → 音视频格式 → 音视频协议』路线图介绍了很多基础的音视频知识。这里面内容较多,其中大部分细节在日常开发中不见得会立即用到,所以暂时不深入了解也问题不大。但是,对很多音视频基础的概念最好还是留个印象,这样在遇到的时候就能快速知道大概的意思,理清思路。如果还想进一步了解其中的细节,则可以回过头来深入查看我们前面发的文章。

    这篇文章就是为这些基础概念建一个索引,方便记忆和查阅。如果你是对音视频方向感兴趣的开发者,强烈建议点赞收藏分享

    1、声音和图像基础

    1. 为什么要声音和图像进行数字化?
      • 将物理世界的模拟信号转换为数字世界的数字信号,用于后续的数字处理。
    2. 声音三要素是什么?
    3. 波形图是什么?
    4. 频谱图是什么?
    5. 反应声音大小的物理量有哪些?
    6. 日常所说的声音大小的分贝是指哪个物理量?
    7. 音调和频率是什么关系?
    8. 音调的计量单位是什么?
    9. 乐音的音调由什么决定?
    10. 科学音调记号法是什么?
    11. 十二平均律是什么?
    12. 声音的复杂波形可以分解成什么?
    13. 音色由什么决定?
    14. 音频数字化包括哪些步骤?
    15. 数字音频三要素是什么?
    16. 奈奎斯特采样定理是什么?
    17. 44100 Hz 这个奇葩数字从何而来?
      • 最早的数字录音由一台 PAL 制式的录像机加上一部 PCM 编码器制作的,场频 50 Hz,可用扫描线数 294 条,一条视频扫描线的磁迹中记录 3 个音频数据块,把它们相乘,就得到了 44100。
      • 参见:《声音的表示(3)》第 4 节
    18. 常见的声道类型有哪些?
    19. 最常见的数字音频数据是什么?
    20. 人眼是如何感知到颜色的?
    21. 人眼对颜色的感受可以分为哪些特征?
      • 色调(hue)、亮度(brightness)、饱和度(saturation)。还有一个色度(chromaticity)通常是说明『饱和度』和『色调』这两种特征的综合表现。
      • 参见:《图像的表示(1)》第 2.2 节
    22. 日常音视频开发处理的视频数据对应的颜色模型是什么?
    23. YCbCr 颜色模型是如何发展而来?
    24. 什么是 CIE RGB 颜色模型?
    25. 什么是 CIE XYZ 颜色模型?
      • 为了解决 RGB 模型中与负光混合所带来的种种问题,CIE 从数学上定义了三种标准基色 XYZ,形成了 CIE XYZ 颜色模型。
      • 参见:《图像的表示(2)》开篇简介
    26. 什么是 NTSC YIQ 颜色模型?
      • 在模拟电视时代,RGB 工业显示器要求一幅彩色图像由分开的 R、G、B 信号组成,而电视显示器则需要混合信号输入,为了实现对这两种标准的兼容,NTSC 基于 XYZ 模型制定了 YIQ 颜色模型,实现了彩色电视和黑白电视的信号兼容。
      • 参见:《图像的表示(2)》开篇简介
    27. 什么是 PAL YUV 颜色模型?
      • 为了解决 NTSC YIQ 的组合模拟视频信号中分配给色度信息的带宽较低而影响了图像颜色质量的问题,PAL 引入了 YUV 颜色模型,支持用不同的采样格式来调整传输的色度信息量。
      • 参见:《图像的表示(2)》开篇简介
    28. 什么是 ITU-R YCbCr 颜色模型?
    29. 什么是加色模式?
      • 当光由两个或多个具有不同主频率的光源混合而成时,改变各个光源的强度来构造一系列其他颜色的光的方法。如:RGB。
      • 参见:《图像的表示(2)》第 3.2 节
    30. 什么是减色模式?
    31. 什么是色域、基色、互补色?
      • 通过基色可以产生的所有颜色的集合称为该颜色模型的色域(颜色范围);
      • 其中用来生成其他颜色光源的色彩称为基色;
      • 如果两种基色混合则生成白色光,就称它们为互补色。如:红色和青色、绿色和品红、蓝色和黄色都是互补色。
      • 参见:《图像的表示(2)》第 3.2 节
    32. 什么是色度图?
      • 忽略颜色的亮度(brightness)特征,只关注色度(chromaticity)时,使用二维的颜色坐标系来表示颜色模型平面图示法。
      • 参见:《图像的表示(2)》第 3.2 节
    33. 色度图的基准是什么?
    34. 色度图的作用是什么?
    35. 三基色的色域如何确定?
    36. ITU-R BT.601、BT.709、BT.2020 是什么?
      • ITU-R(国际电信联盟无线电通信部门)制定的彩色视频转换成数字图像时使用的系列标准,分别面向标清电视(SDTV)、高清电视(HDTV)、超清电视(UDTV)应用场景。
      • 参见:《图像的表示(2)》第 3.6 节
    37. YCbCr 有哪些采样格式?
    38. YCbCr 有哪些存储格式?
    39. 什么是显示伽马?
    40. 什么是伽马校正?
      • 由于显示伽马的存在,为使最终显示出来的图像亮度与真实场景亮度成线性比例关系,而在将图像输入到显示器之前进行的校正过程。
      • 参见:《图像的表示(2)》第 3.7 节
    41. 什么是编码伽马?
    42. 图像数字化包括哪些步骤?
    43. 数字图像包括哪些基本属性?
    44. 最常见的数字图像数据是什么?

    2、音视频编码

    1. 为什么要对音视频数据进行编码?
    2. 对信息进行压缩的理论基础是什么?
      • 信源包含的符号出现概率的非均匀性、信源的相关性、人的感知对不同信源的敏感度不一样,使得信源是可以被压缩的。
      • 参见:《音频编码》开篇简介
    3. 对音频数据进行压缩的理论基础是什么?
      • 时域冗余:幅度分布的非均匀性、样值之间的相关性、信号周期之间的相关性、静止系数、长时自相关性;
      • 频域冗余:长时功率谱密度的非均匀性、语音特有的短时功率谱密度;
      • 听觉冗余:最小可闻阈值、频率掩蔽效应、时域掩蔽效应等。
      • 参见:《音频编码》开篇简介
    4. 什么是频率掩蔽效应?
    5. 什么是时域掩蔽效应?
      • 当强音信号和弱音信号同时出现时,可能会发生前掩蔽、同时掩蔽、后掩蔽,被掩蔽的信号人耳听不到。
      • 参见:《音频编码》开篇简介
    6. 常见的音频编码格式有哪些?
    7. MPEG-2 AAC 编码工具有哪些?
      • 码流解析模块、无噪编解码模块、量化和反量化模块、缩放因子处理模块、Mid/Side 立体声编解码模块、预测模块、强度立体声编解码模块、非独立交换耦合模块、瞬时噪音整形模块(TNS)、滤波器组/块切换模块、增益控制模块、独立交换耦合模块。
      • 参见:《音频编码》第 2.2 节
    8. MPEG-4 AAC 相对 MPEG-2 AAC 增加了哪些编码工具?
      • 长时预测模块(LTP)、知觉噪声替换模块(PNS)、频段复制技术(SBR)、参数立体声技术(PS)。
      • 参见:《音频编码》第 2.2 节
    9. MPEG-2 AAC 有哪些编码规格?
    10. MPEG-4 AAC 相对 MPEG-2 AAC 增加了哪些编码规格?
    11. HE AAC、HE AAC v2 是指什么?
    12. ASC 是什么?
    13. MPEG-2 AAC 的音频编码数据格式哪些?
    14. MPEG-4 AAC 相对 MPEG-2 AAC 增加了哪些编码数据格式?
    15. 对视频数据进行压缩的理论基础是什么?
    16. 常见的视频编码格式有哪些?
      • ISO-MPEG/ITU-T 系列:H.264(AVC)、H.265(HEVC)、H.266(VVC);
      • AOM 系列:VP8、VP9、AV1;
      • AVS 系列:AVS2、AVS3。
      • 参见:《视频编码(1)》开篇简介
    17. H.264 的句法元素有哪些?
    18. I 帧、B 帧与 P 帧有什么区别?
      • I 帧,即帧内编码帧,不参考其他图像帧,只利用本帧的信息进行编码。
      • P 帧,即预测编码帧,参考之前的 I 帧或 P 帧,采用运动预测的方式进行帧间预测编码。
      • B 帧,即双向预测编码帧,提供最高的压缩比,它既参考之前的图像帧(I 帧或 P 帧)和后来的图像帧(P 帧),采用运动预测的方式进行帧间双向预测编码。
      • 参见:《视频编码(1)》第 1.1.4 节
    19. 什么是率失真?
    20. 视频编码怎么进行率失真优化?
      • 遍历所有的参数候选模式对视频进行编码,满足码率限制的失真最小的一组参数集作为最优的视频编码参数。
      • 参见:《视频编码(1)》第 1.1.4 节
    21. 什么是 DTS 和 PTS?
    22. 什么是 GOP?
    23. 什么是 IDR 帧?
      • IDR 帧全称叫做 Instantaneous Decoder Refresh,是 I 帧的一种。IDR 帧的作用是立刻刷新,重新算一个新的序列开始编码,使错误不致传播。
      • 参见:《视频编码(1)》第 1.1.7 节
    24. H.264 有哪些压缩方式?
    25. H.264 编码框架是如何分层的?
    26. 视频编码层(VCL)是什么?
      • 对视频编码核心算法过程、子宏块、宏块、片等概念的定义。这层主要是为了尽可能的独立于网络来高效的对视频内容进行编码。
      • 参见:《视频编码(1)》第 1.2 节
    27. 网络适配层(NAL)是什么?
      • 对图像序列、图像等片级别以上的概念的定义。这层负责将 VCL 产生的比特字符串适配到各种各样的网络和多元环境中。
      • 参见:《视频编码(1)》第 1.2 节
    28. 什么是 SODB、RBSP、NAL?
      • SODB(String Of Data Bits)是 VCL 层编码后输出的原始数据;
      • RBSP(Raw Byte Sequence Payload)是 NAL 层在 SODB 数据后面添加了结尾比特进行字节对齐后的数据;
      • NAL 是在 RBSP 头部加上 NAL Header 来组成一个一个的 NAL 数据单元。
      • 参见:《视频编码(1)》第 1.2 节
    29. H.264 的编码工具有哪些?
      • 帧内预测、帧间预测、离散余弦变换(DCT)、量化、上下文自适应的变长编码(CAVLC)、上下文自适应的二进制算术编码(CABAC)。
      • 参见:《视频编码(1)》第 1.3 节
    30. H.264 的编码流程是怎样的?
    31. 什么是 Annex-b 码流格式?
    32. Annex-b 码流格式如何防止竞争?
    33. 什么是 SPS、PPS?
      • SPS 是序列参数集,保存了一组编码后的图像序列的依赖的全局参数。
      • PPS 是图像参数集,保存了每一帧编码后的图像所依赖的参数。
      • 参见:《视频编码(1)》第 1.4.4 节
    34. 什么是 SEI?
    35. 什么是 Slice?
      • 一帧图像可编码成一个或者多个片,每片包含整数个宏块,分片的目的是为了限制错误码的扩散和传输,使编码片相互间保持独立。
      • 参见:《视频编码(1)》第 1.4.4 节
    36. H.265 有哪些编码工具?
    37. H.265 相比 H.264 有特色编码技术?
      • 新的编码单元划分方式、改进的帧内预测技术、先进的帧间预测技术、RQT 技术、ACS 技术、SAO 技术、IBDI 技术。
      • 参见:《视频编码(2)》开篇简介
    38. 什么是 RQT 技术?
    39. 什么是 ACS 技术?
    40. 什么是去方块滤波(DBF)技术?
    41. 什么是 SAO 技术?
    42. 什么是 IBDI 技术?
      • 在编码器的输入端将未压缩图像像素深度由 P 比特增加到 Q 比特(Q > P),在解码器的输出端又将解压缩图像像素深度从 Q 比特恢复到 P 比特,从而提高了编码器编码精度,降低了帧内/帧间预测误差。
      • 参见:《视频编码(2)》第 2.2.7 节
    43. H.266 有哪些编码工具?
      • 块划分、帧内预测、帧间预测、变换和量化、熵编码、环路滤波、屏幕内容编码、360 度视频编码。
      • 参见:《视频编码(3)》第 3 节
    44. 从 H.264 到 H.265 再到 H.266,编码单元划分技术有什么改进?
    45. 从 H.264 到 H.265 再到 H.266,帧内预测技术有什么改进?
    46. 从 H.264 到 H.265 再到 H.266,帧间预测技术有什么改进?
      • H.264 帧间预测是利用已编码视频帧/场和基于块的运动补偿的预测模式。
      • H.265 引入了新的帧间预测技术,包括运动信息融合技术(Merge)、先进的运动矢量预测技术(AMVP)以及基于 Merge 的 Skip 模式。
      • H.266 继承了 H.265 AMVP 和 Skip/Merge 模式并进行了扩展、引入了基于子块的时域运动推导模式(SbTMVP)、引进一个仿射运动模型、引入多个新的帧间预测编码工具、引入解码端运动细化和双向光流工具。
      • 参见:《视频编码(2)》第 2.2.3 节《视频编码(3)》第 3.1.3 节
    47. H.266 在变换和量化上有什么改进?
      • 变换:最大变换维度从 H.265 的 32x32 提高到了 64×64;引入了非正方形变换、多变换(主变换)选择、低频不可分变换、子块变换。
      • 量化:引入了自适应色度量化参数偏差、依赖量化、量化残差联合编码。
      • 参见:《视频编码(3)》第 3.1.4 节
    48. H.266 在熵编码上有什么改进?
      • 在 CABAC 引擎方面,使用多重假设概率更新模型和上下文模型绑定的自适应率(即概率更新速度依赖于上下文模型);
      • 在变换系数编码方面,H.266 还允许更多类型的系数组、增加了一个标志位用于依赖量化的状态过渡、一个改进的概率模型选择机制用于和变换系数绝对值相关的语法元素的编码。
      • 参见:《视频编码(3)》第 3.1.5 节
    49. H.266 在环路滤波上有什么改进?
      • 除了继续支持优化后的去方块滤波(DBF)和样点自适应补偿滤波(SAO)外,新增了带色度缩放的亮度映射(LMCS)和自适应环路滤波器(ALF)。
      • 参见:《视频编码(3)》第 3.1.6 节
    50. 什么是屏幕内容编码?
      • 屏幕内容图像是直接从各类计算机或移动终端设备的图像显示单元捕获的图像,如:计算机图形和文本图像、自然视频与图形、文字混合的图像以及计算机生成的动画图像等。对这种内容进行编码称为屏幕内容编码。
      • 参见:《视频编码(3)》第 3.1.7 节
    51. 屏幕内容图像与自然图像有什么差别?
      • 屏幕内容图像通常没有噪声、色调离散、线条细腻、边缘锐利;自然图像通常有噪声、色调连续、纹理比较复杂。
      • 参见:《视频编码(3)》第 3.1.7 节
    52. 什么是 360 度视频编码?
    53. H.266 针对 360 度视频有什么编码工具?
    54. H.266 在高层语法(HLS)层有哪些改进?
      • 矩形条带(Slice)和子图像(Subpicture)、自适应图像分辨率更新、自适应参数集(APS)、图像头、逐渐解码刷新(GDR)、参考图像列表(RPL)的直接编码、多层可伸缩编码设计大大简化。
      • 参见:《视频编码(3)》第 3.2 节

    3、音视频格式

    1. 为什么要对音视频编码数据进行封装?
      • 便于对音视频的展现做控制,提高对音视频数据处理的效率。比如进行音视频同步、seek 等操作。
    2. 什么是 MP4?
    3. 什么是 moov Box?
    4. 为什么 moov Box 要前置?
      • 播放器从网络读取和播放 MP4 文件时,要获取到 moov 的数据后才能初始化解码器并开始播放。
      • 参见:《MP4 格式》第 3 节
    5. 什么是 mdat Box?
    6. MP4 视频最少加载多少数据可以渲染出首帧?
      • 结合 Sync Sample Box(moov/trak/mdia/minf/stbl/stss)、Sample To Chunk Box(moov/trak/mdia/minf/stbl/stsc)、Sample Size Box(moov/trak/mdia/minf/stbl/stsz)、Chunk Offset Box(moov/trak/mdia/minf/stbl/stco(co64)) 这几个 Box 的信息可以计算出读到第一个关键帧需要的字节数。
      • 参见:《MP4 格式》第 5.2 节
    7. 什么是 FLV?
      • Adobe 公司推出的一种封装规范简单、封装后文件较小、适合网络传输的流媒体格式。
      • 参见:《FLV 格式》开篇简介
    8. 为什么直播首选 FLV 作为封装格式?
      • 基于 RTMP 推流、HTTP-FLV 播放的整套方案延时较低;服务端普遍提供 HTTP Web 服务,能更广泛的兼容 HTTP-FLV。
      • 参见:《FLV 格式》开篇简介
    9. FLV 中有哪些类型的 Tag?
    10. 什么是 FLV 中的 AAC 音频同步包?
      • 在 FLV 的文件中,一般会用第一个 Audio Tag 来封装 AudioSpecificConfig。如果音频使用 AAC 编码格式,那么这个 Tag 就是 AAC sequence header,即 AAC 音频同步包。
      • 参见:《FLV 格式》第 2 节
    11. 用 FLV 封装 AAC 并传输音频流时,要如何处理 ADTS 头?
      • 发送数据包时,去掉 AAC 数据的 ADTS 头;接收和解析数据包,在 AAC 裸数据前加上 ADTS 头再给解码器。
      • 参见:《FLV 格式》第 2 节
    12. 什么是 FLV 中的 AVC(H.264) 视频同步包?
      • 在 FLV 的文件中,一般会用第一个 Video Tag 来封装 AVCDecoderConfigurationRecord。如果视频使用 AVC 编码格式,那么这个 Tag 就是 AVC sequence header,即 AVC 视频同步包。
      • 参见:《FLV 格式》第 3 节
    13. 什么是 M3U8?
      • 一种指定一个或多个多媒体文件位置的播放列表纯文本文件格式,是 HLS 协议的基础。
      • 参见:《M3U8 格式》开篇简介
    14. 为什么实时直播一般不选择 M3U8 格式?
    15. 为什么直播回放一般选择 M3U8 格式?
    16. 什么是 M3U8 媒体播放列表?
    17. 什么是 M3U8 主播放列表?
    18. EXT-X-DISCONTINUITY 标签表示什么?
      • 表示其前一个切片和下一个切片之间存在中断。在媒体文件格式、媒体轨道的数量和类型、时间戳序列、编码参数、编码序列的内容发生变化时,需要使用该标签。
      • 参见:《M3U8 格式》第 2.3.2 节
    19. 什么是 TS?
    20. 为什么直播回放的切片一般用 TS 格式?
      • TS 任一切片开始都可以独立解码,非常适合按切片的方式存储直播内容。
      • 参见:《TS 格式》开篇简介
    21. TS 格式支持 seek 吗?
    22. 如何实现对 TS 传输流的 seek?
    23. TS 流结构整体分为哪几层?
    24. TS 传输流层是什么数据?
    25. PES 分组化基本流层是什么数据?
    26. ES 基本流层是什么数据?
      • 主要包含实际的音视频数据,一般视频为 H.264 编码数据,音频为 AAC 编码数据。
      • 参见:《TS 格式》第 1 节
    27. TS 层的数据包大小是多少?

    4、音视频协议

    1. 为什么设计音视频传输协议?
      • 在网络中高效传输音视频数据。
    2. 什么是 RTMP?
      • Real Time Message Protocol,由 Adobe 公司提出的一种应用层的实时信息传输协议。
      • 参见:《RTMP 协议》第 1 节
    3. 为什么直播推流首选 RTMP 协议?
    4. RTMP 设计的目标是解决什么问题?
    5. 什么是 RTMP 中的消息和块?
      • 消息,服务于数据封装,是 RTMP 协议中的基本数据单元;块,服务于网络传输,是对消息的分片。
      • 参见:《RTMP 协议》第 1.2 节
    6. RTMP 的核心设计思想是什么?
    7. RTMP 分包的设计有什么好处?
      • 可以将大的消息数据分包成小的块通过网络来进行传输,是降低延时的关键。
      • 参见:《RTMP 协议》第 1.2 节
    8. RTMP 多路复用的设计有什么好处?
      • 音频、视频数据就能够合到一个传输流(块流)中进行同步传输,是音视频同步的关键。
      • 参见:《RTMP 协议》第 1.2 节
    9. RTMP 消息分优先级的设计有什么好处?
      • 优先级:控制消息 > 音频消息 > 视频消息。当网络传输能力受限时,优先传输高优先级消息的数据。
      • 要使优先级能够有效执行,分块也很关键:将大消息切割成小块,可以避免大的低优先级的消息(如视频消息)堵塞了发送缓冲从而阻塞了小的高优先级的消息(如音频消息或控制消息)。
      • 参见:《RTMP 协议》第 1.2 节
    10. RTMP 块大小协商的设计有什么好处?
      • 充分考虑流媒体服务器、带宽、客户端的情况,通过块大小协商动态的适应环境。
      • 参见:《RTMP 协议》第 1.2 节
    11. RTMP 块 Header 压缩优化的设计有什么好处?
    12. 什么是 KCP?
      • 一个开源的快速可靠的传输协议。能以比 TCP 浪费 10%-20% 带宽的代价,换取平均延迟降低 30%-40%,最大延迟降低 3 倍的传输速度。
      • 参见:《KCP 协议》开篇简介
    13. KCP 的核心设计思想是什么?
      • 为流速和低延时设计:RTO 不翻倍、选择性重传、快速重传、ACK + UNA、非退让流控。
      • 参见:《KCP 协议》第 2 节
    14. KCP RTO 不翻倍的设计有什么好处?
      • RTO 是重传超时时间,KCP 启动快速模式后不像 TCP 那样 x2,只是 x1.5,相对提高了传输速度。
      • 参见:《KCP 协议》第 2.1 节
    15. KCP 选择重传的设计有什么好处?
    16. KCP 快速重传的设计有什么好处?
      • 当一个包被跳过的次数超过阈值,不用等待超时,直接重传,大大改善了丢包时的传输速度。
      • 参见:《KCP 协议》第 2.3 节
    17. KCP ACK + UNA 的设计有什么好处?
      • ARQ(自动重传请求)模型响应有两种:UNA,表示此编号之前的所有包已收到;ACK:表示此编号包已收到。KCP 除了单独的 ACK 包外,其他所有包都有 UNA 信息,降低全部重传的概率。
      • 参见:《KCP 协议》第 2.4 节
    18. KCP 非退让流控的设计有什么好处?
    19. 什么是 HLS?
      • HTTP Live Streaming,由苹果公司提出的一种流媒体传输协议,可支持流媒体的直播和点播。
      • 参见:《HLS 协议》第 1 节
    20. HLS 的核心设计思想是什么?
    21. HLS 有什么优点?
      • 数据通过 HTTP 协议传输,不用考虑防火墙或者代理的问题;切片文件的时长很短,客户端可以很快的选择和切换码率,以适应不同带宽条件下的播放。
      • 参见:《HLS 协议》第 1 节
    22. HLS 有什么缺点?
    23. 典型的 HLS 选择什么封装格式?

    音视频基础文章列表

    相关文章

      网友评论

        本文标题:音视频基础概念合集:148 个问题带你快速上车音视频

        本文链接:https://www.haomeiwen.com/subject/iowikrtx.html