视频解码基础
参考资料:
- Tang, Qiang《 Computationally efficient techniques for H.264/AVC transcoding applications》
1.视频解码简介
由于编码是将大型原始视频文件压缩的过程,那么解码(decoder)是对编码后的视频文件进行解码和解压缩的过程 。
视频解码器是一种硬件或软件,用于将编码的视频流信号转换为数字视频文件,包括音频、视频、字幕等,以便在电视、智能手机、平板电脑、计算机显示器或其他流媒体设备上播放。
视频解码器可以是硬件设备的一部分,例如视频捕获设备或机顶盒,也可以是软件或计算机的插件。它能够接收编码的数字视频信号,并显示电子节目指南(EPG)数据、隐藏字幕和字幕。
2.工作原理
在学习视频解码原理前,我们先回顾一下编码的原理:
那么编码的逆向步骤即为解码步骤:熵编码 -> 预测 -> 反量化处理+DCT变换 -> 环路过滤器。
H264解码器的原理步骤为:
- 接收压缩比特流:
- 解码器从网络或存储设备中接收压缩的比特流。
- 熵解码和重排序:
- 比特流经过熵解码(如CABAC或CAVLC),将压缩的数据转换为量化系数X。
- 重排序步骤将这些系数按照特定顺序排列,以便后续处理。
- 反量化:
- 量化系数X经过反量化,恢复到更接近原始值的系数。
- 反变换:
- 反变换(如逆离散余弦变换IDCT或逆整数变换)将反量化后的系数转换为残差数据。
- 预测数据生成:
- 解码器使用从码流中解码得到的头信息创建预测数据PRED。
- 预测数据PRED可以通过两种方式生成:
- 运动估计:利用参考图像进行运动补偿,生成预测数据。
- 帧内预测:利用当前帧的已解码部分进行预测。
- 重建图像块:
- 预测数据PRED与残差数据D相加,得到初步的图像块数据。
- 去方块滤波:
- 每个图像块uF经过去方块滤波,减少块效应,得到最终的解码块。