有理数与定点换算Rational and fixed-point rescaling

以整数分子、分母表示比例,在整数域完成换算并按指定规则舍入。

核心约束
输入输出单位、比例及舍入规则必须一致;中间运算需避免溢出。
适用问题
音视频时间基、采样率、时钟刻度和避免浮点累计误差的比例换算。
边界与取舍
最终结果仍可能需要舍入;负数、无效分母、范围溢出和边界值应按接口契约处理。

时间与空间#

b 为整数位数;以 a × p / q 的时间基换算为例。

时间复杂度
固定机器字宽下有限步换算 O(1)O(1);多精度成本随 b 增长
辅助空间
固定字宽 O(1)O(1);多精度存储与 b 有关

必须指定舍入方式、溢出行为和约分规则。整数换算可避免浮点舍入累积,但不能消除离散目标时间基的量化误差。不能把机器整数操作的常数界推广到任意精度整数。

工程中的应用#

1 个案例 · 附源码
基础原理参考资料

FFmpeg 7.1 · Mathematicsav_rescale、av_rescale_q、舍入及防溢出的 API 语义。

3 个概念