C语言是否具备量化处理复杂数据集的能力?
- 内容介绍
- 文章标签
- 相关推荐
本文共计294个文字,预计阅读时间需要2分钟。
我有一个缓冲区,包含许多正16位值(存储为双精度数),我想将其量化为8位(0-255个值)。根据Wikipedia,过程将是:
1. 标准化16位值。
2.找到最大值与当前值的差。
3.使用公式 \( Q(x)=M + \frac{x - x_{\text{min}}}{x_{\text{max}} - x_{\text{min}}} \times 255 \),其中 \( M=8 \)。
4.得到量化后的8位值。
根据Wikipedia,过程将是:
>标准化16位值.即找到最大的并与此分开.
>使用Q(x)公式,M = 8.
所以我想知道,如果C有一个可以进行量化的函数,或者有人知道我可以使用的C实现吗?
满满的爱,
路易丝
unsigned char quantize(double d, double max) { return (unsigned char)((d / max) * 255.0); }
我不确定你的意思是“16位值;”在使用IEEE-754的任何系统上,双精度值均为64位.但是,如果您具有其他数字类型的值,则该过程实际上是相同的.
本文共计294个文字,预计阅读时间需要2分钟。
我有一个缓冲区,包含许多正16位值(存储为双精度数),我想将其量化为8位(0-255个值)。根据Wikipedia,过程将是:
1. 标准化16位值。
2.找到最大值与当前值的差。
3.使用公式 \( Q(x)=M + \frac{x - x_{\text{min}}}{x_{\text{max}} - x_{\text{min}}} \times 255 \),其中 \( M=8 \)。
4.得到量化后的8位值。
根据Wikipedia,过程将是:
>标准化16位值.即找到最大的并与此分开.
>使用Q(x)公式,M = 8.
所以我想知道,如果C有一个可以进行量化的函数,或者有人知道我可以使用的C实现吗?
满满的爱,
路易丝
unsigned char quantize(double d, double max) { return (unsigned char)((d / max) * 255.0); }
我不确定你的意思是“16位值;”在使用IEEE-754的任何系统上,双精度值均为64位.但是,如果您具有其他数字类型的值,则该过程实际上是相同的.

