有理数与定点换算Rational and fixed-point rescaling
以整数分子、分母表示比例,在整数域完成换算并按指定规则舍入。
- 核心约束
- 输入输出单位、比例及舍入规则必须一致;中间运算需避免溢出。
- 适用问题
- 音视频时间基、采样率、时钟刻度和避免浮点累计误差的比例换算。
- 边界与取舍
- 最终结果仍可能需要舍入;负数、无效分母、范围溢出和边界值应按接口契约处理。
时间与空间#
b 为整数位数;以 a × p / q 的时间基换算为例。
- 时间复杂度
- 固定机器字宽下有限步换算 ;多精度成本随 b 增长
- 辅助空间
- 固定字宽 ;多精度存储与 b 有关
必须指定舍入方式、溢出行为和约分规则。整数换算可避免浮点舍入累积,但不能消除离散目标时间基的量化误差。不能把机器整数操作的常数界推广到任意精度整数。
工程中的应用#
1 个案例 · 附源码FFmpeg 将时间戳按源、目标时间基换算为整数,并在乘除过程中处理舍入与溢出。
附源码片段 · 音视频处理
基础原理参考资料
FFmpeg 7.1 · Mathematicsav_rescale、av_rescale_q、舍入及防溢出的 API 语义。