C++ 音视频八股文(视频编解码基础)
1. H.264和H.265的主要区别是什么?压缩效率和编码复杂度如何对比?
H.265(HEVC)相比H.264(AVC)主要有以下区别:
- 压缩效率:H.265在相同画质下码率可降低约50%,或者在相同码率下画质更好
- 编码单元:H.265支持更大的编码单元(CTU最大64x64),H.264最大宏块16x16
- 预测模式:H.265帧内预测支持35种模式,H.264只有9种
- 变换单元:H.265支持4x4到32x32多种尺寸,H.264主要是4x4和8x8
- 编码复杂度:H.265编码复杂度是H.264的2-10倍,解码复杂度约1.5-2倍
实际应用中,H.265更适合4K/8K高分辨率视频和带宽受限场景,但需要更强的硬件支持。
2. 什么是I帧、P帧、B帧?它们在视频编码中的作用和压缩率有何不同?
- I帧(Intra Frame):关键帧,完全独立编码,不依赖其他帧。作为解码起点,压缩率最低,数据量最大
- P帧(Predicted Frame):前向预测帧,参考前面的I帧或P帧进行预测编码。压缩率中等,数据量约为I帧的1/3-1/2
- B帧(Bi-directional Frame):双向预测帧,同时参考前后帧进行预测。压缩率最高,数据量最小,约为I帧的1/6-1/8
压缩率对比:I帧 < P帧 < B帧随机访问能力:I帧 > P帧 > B帧
3. 解释GOP(Group of Pictures)的概念,GOP大小对视频质量和码率有什么影响?
GOP是两个I帧之间的帧序列,定义了视频编码的帧组结构。常见格式如"IBBPBBPBBPBBI"。
GOP大小的影响:
- GOP越大:压缩率越高,码率越低,但随机访问性能差,seek慢,错误传播影响范围大
- GOP越小:码率越高,随机访问快,错误恢复能力强,但压缩效率降低
典型设置:
- 直播场景:GOP=1-2秒(25-50帧),便于快速切入
- 点播场景:GOP=2-10秒,追求压缩效率
- 监控场景:GOP较小,便于回放定位
4. IDR帧和I帧有什么区别?
- I帧:帧内编码帧,不依赖其他帧,但后续P/B帧可能参考I帧之前的帧
- IDR帧(Instantaneous Decoder Refresh):特殊的I帧,强制刷新解码器状态,后续帧不能参考IDR之前的任何帧
关键区别:
- IDR帧会清空DPB(Decoded Picture Buffer)参考帧缓存
- IDR帧是随机访问点,可以独立解码
- 所有IDR帧都是I帧,但不是所有I帧都是IDR帧
- IDR帧用于场景切换、seek点、错误恢复
5. 什么是帧内预测和帧间预测?分别采用什么技术实现?
帧内预测(Intra Prediction):
- 利用当前帧内已编码的相邻像素预测当前块
- H.264支持9种预测模式(4x4亮度)和4种(16x16亮度)
- H.265支持35种角度预测模式
- 技术:方向预测、DC预测、Planar预测
帧间预测(Inter Prediction):
- 利用参考帧预测当前帧
- 技术包括: 运动估计(ME):搜索最佳匹配块运动补偿(MC):根据运动矢量重建预测块多参考帧预测亚像素插值(1/4或1/8像素精度)加权预测
6. 运动估计(Motion Estimation)的原理是什么?常用的运动估计算法有哪些?
原理:在参考帧中搜索与当前块最匹配的位置,计算运动矢量(MV),使预测残差最小。
常用算法:
- 全搜索(Full Search):遍历搜索窗口所有位置,最优但计算量大
- 三步搜索(TSS):粗到细的分层搜索
- 菱形搜索(DS):菱形模式搜索,效率高
- 六边形搜索(HEXBS):适合大运动
- EPZS(Enhanced Predictive Zonal Search):利用时空相关性预测
- UMH(Uneven Multi-Hexagon):x264使用的高效算法
评价标准:SAD(绝对差和)、MAD、SATD等。
7. 什么是运动补偿(Motion Compensation)?运动矢量在其中起什么作用?
运动补偿:根据运动矢量从参考帧中提取预测块,生成当前块的预测值,然后编码残差。
运动矢量(MV)的作用:
- 指示参考块在参考帧中的位置偏移
- 支持亚像素精度(1/4或1/8
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
本专栏系统梳理C++技术面试核心考点,涵盖语言基础、面向对象、内存管理、STL容器、模板编程及经典算法。从引用指针、虚函数表、智能指针等底层原理,到继承多态、运算符重载等OOP特性从const、static、inline等关键字辨析,到动态规划、KMP算法、并查集等手写实现。每个知识点以面试答题形式呈现,注重原理阐述而非冗长代码,帮助你快速构建完整知识体系,从容应对面试官提问,顺利拿下offer。
查看6道真题和解析