5.3.1 运动向量缩放
作者:chai51
出处:https://www.cnblogs.com/chai51
版权:本文版权归作者和博客园共有
转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任
引言
运动向量缩放是帧间预测生成过程的重要步骤,它将运动向量从参考帧坐标系转换到当前帧坐标系,考虑参考帧和当前帧的缩放关系。这对于处理不同分辨率的参考帧至关重要。
源码说明: 本文档基于作者自己编写的AV1解码器Python实现,所有代码示例和实现细节均来自实际可运行的源码。源码仓库:GitHub - av1_learning
运动向量缩放概述
位置: src/reconstruction/prediction.py - _motion_vector_scaling()
规范文档: 7.11.3.3 Motion vector scaling process
功能说明
将运动向量从参考帧坐标系转换到当前帧坐标系,考虑参考帧和当前帧的缩放关系。
输出
startX, startY: 起始位置(子像素精度)stepX, stepY: 步长(用于缩放)
计算过程
# 1. 获取参考帧和当前帧的缩放参数
refScale = get_ref_scale(refFrame)
curScale = get_cur_scale()
# 2. 计算缩放比例
scaleX = (refScale[0] << REF_SCALE_SHIFT) // curScale[0]
scaleY = (refScale[1] << REF_SCALE_SHIFT) // curScale[1]
# 3. 计算起始位置和步长
startX = (Mv[0] * scaleX) >> REF_SCALE_SHIFT
startY = (Mv[1] * scaleY) >> REF_SCALE_SHIFT
stepX = scaleX
stepY = scaleY
总结
运动向量缩放将运动向量从参考帧坐标系转换到当前帧坐标系,考虑参考帧和当前帧的缩放关系。这对于处理不同分辨率的参考帧至关重要,是帧间预测生成过程的重要步骤。
参考资源:
- AV1规范文档
- 源码实现: GitHub - av1_learning
- 预测实现:
src/reconstruction/prediction.py
- 预测实现:

浙公网安备 33010602011771号