将float转换为整数

用户名

如何缩放以及通过哪个因子缩放float的dctmtx系数以获得以下整数值:

浮动dctmtx:

( (0.3536    0.3536    0.3536    0.3536    0.3536    0.3536    0.3536    0.3536),
    (0.4904    0.4157    0.2778    0.0975   -0.0975   -0.2778   -0.4157   -0.4904),
    (0.4619    0.1913   -0.1913   -0.4619   -0.4619   -0.1913    0.1913    0.4619),
    (0.4157   -0.0975   -0.4904   -0.2778    0.2778    0.4904    0.0975   -0.4157),
    (0.3536   -0.3536   -0.3536    0.3536    0.3536   -0.3536   -0.3536    0.3536),
    (0.2778   -0.4904    0.0975    0.4157   -0.4157   -0.0975    0.4904   -0.2778),
    (0.1913   -0.4619    0.4619   -0.1913   -0.1913    0.4619   -0.4619    0.1913),
    (0.0975   -0.2778    0.4157   -0.4904    0.4904   -0.4157    0.2778   -0.0975)
)

整数dctmtx:

(( 125,   122,   115,    103,    88,     69,     47,      24  ),
        ( 125,   103,    47,    -24,   -88,   -122,   -115,     -69  ),
        ( 125,    69,   -47,   -122,   -88,     24,    115,     103  ),
        ( 125,    24,  -115,    -69,    88,    103,    -47,    -122  ),
        ( 125,   -24,  -115,     69,    88,   -103,    -47,     122  ),
        ( 125,   -69,   -47,    122,   -88,    -24,    115,    -103  ),
        ( 125,  -103,    47,     24,   -88,    122,   -115,      69  ),
        ( 125,  -122,   115,   -103,    88,    -69,     47,     -24  )
    );
鲁兹·莱曼(Lutz Lehmann)

如果您阅读离散余弦变换,将会发现基本系数为

cos(pi*i*(2*j+1)/16),  i,j=0..7

然后,第一个表由这些值按0.5缩放,第一行/列除以0.25 * sqrt(2)= 1 / sqrt(8)缩放外。这是获得正交矩阵的正确方法。第一列的平方和为8,其他列为4。

第二张表是将余弦值均匀乘以125时的舍入结果。在使用转置矩阵计算逆变换时,这里必须注意正确地重新缩放向量。


复制第一张表,但第一列除外:

> [[ Cos(pi*i*(2*j+1)/16)/2 : i in [0..7] ]: j in [0..7] ];        
[
    [ 0.5, 0.49039264, 0.46193977, 0.41573481, 0.35355339, 0.27778512, 0.19134172, 0.09754516 ],
    [ 0.5, 0.41573481, 0.19134172, -0.09754516, -0.35355339, -0.49039264, -0.46193977, -0.27778512 ],
    [ 0.5, 0.27778512, -0.19134172, -0.49039264, -0.35355339, 0.09754516, 0.46193977, 0.41573481 ],
    [ 0.5, 0.09754516, -0.46193977, -0.27778512, 0.35355339, 0.41573481, -0.19134172, -0.49039264 ],
    [ 0.5, -0.09754516, -0.46193977, 0.27778512, 0.35355339, -0.41573481, -0.19134172, 0.49039264 ],
    [ 0.5, -0.27778512, -0.19134172, 0.49039264, -0.35355339, -0.09754516, 0.46193977, -0.41573481 ],
    [ 0.5, -0.41573481, 0.19134172, 0.09754516, -0.35355339, 0.49039264, -0.46193977, 0.27778512 ],
    [ 0.5, -0.49039264, 0.46193977, -0.41573481, 0.35355339, -0.27778512, 0.19134172, -0.09754516 ]
]

第二个表,整数舍入之前

> [[ Cos( pi*i*(2*j+1)/16 ) *125 : i in [0..7] ]: j in [0..7] ];       
[
    [ 125, 122.5982, 115.4849, 103.9337, 88.3883, 69.4463, 47.8354, 24.3863 ],
    [ 125, 103.9337, 47.8354, -24.3863, -88.3883, -122.5982, -115.4849, -69.4463 ],
    [ 125, 69.4463, -47.8354, -122.5982, -88.3883, 24.3863, 115.4849, 103.9337 ],
    [ 125, 24.3863, -115.4849, -69.4463, 88.3883, 103.9337, -47.8354, -122.5982 ],
    [ 125, -24.3863, -115.4849, 69.4463, 88.3883, -103.9337, -47.8354, 122.5982 ],
    [ 125, -69.4463, -47.8354, 122.5982, -88.3883, -24.3863, 115.4849, -103.9337 ],
    [ 125, -103.9337, 47.8354, 24.3863, -88.3883, 122.5982, -115.4849, 69.4463 ],
    [ 125, -122.5982, 115.4849, -103.9337, 88.3883, -69.4463, 47.8354, -24.3863 ]
]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

解释将Float转换为整数时的输出?

来自分类Dev

将float系列转换为pandas中的整数系列

来自分类Dev

Haskell sqrt-将整数列表转换为Float

来自分类Dev

错误如下:ValueError:无法将float NaN转换为整数

来自分类Dev

将double或float转换为整数类型,哪种类型?

来自分类Dev

整数不能转换为Float

来自分类Dev

在将xcel转换为制表符分隔文件的过程中,将float转换为整数

来自分类Dev

将Float转换为Int

来自分类Dev

将PoolByteArray转换为float

来自分类Dev

将float转换为int

来自分类Dev

将float转换为sprintf

来自分类Dev

将字节转换为整数

来自分类Dev

将整数转换为天

来自分类Dev

将NSDate转换为整数

来自分类Dev

将指针转换为整数

来自分类Dev

将整数转换为字节

来自分类Dev

将NSDate转换为整数

来自分类Dev

在Rust中将float转换为整数

来自分类Dev

无法将“ float *”转换为“ float”

来自分类Dev

错误无法将“ float *”转换为“ float”

来自分类Dev

将长整数转换为短整数

来自分类Dev

将整数转换为char *并将char *转换为整数

来自分类Dev

将“ integer” float转换为int总是返回最接近的整数吗?

来自分类Dev

Python用于将float转换为整数的舍入规则是什么?

来自分类Dev

如何将随机整数转换为介于0和1之间的float

来自分类Dev

在DDBB上的float字段上记录时,MySql将浮点值转换为整数

来自分类Dev

如何将数字从float转换为最接近的整数php?

来自分类Dev

无法在初始化时将 float float 转换为 float

来自分类Dev

整数变量与将整数转换为整数之间的结果不同