我想知道是否有人有一个数据压缩算法列表.我基本上都不知道数据压缩,我希望能够了解更多关于不同算法的知识,看看哪些是最新的,还有很多ASIC尚未开发.
我希望实现一个数据压缩ASIC,它独立于进入的数据类型(音频,视频,图像等).
如果我的问题太开放,请告诉我,我会修改.谢谢
关于IEEE-754单精度浮点,你如何执行舍入到最近,在所需位置(默认和最常见的模式)中最接近偶数的四舍五入?
基本上我有保护位,圆位和粘滞位.因此,如果我们将它们组成一个向量并将其称为GRS,则以下规则适用:
G = 0,向下舍入(什么都不做)G = 1,和,RS == 10或RS == 01向上舍入(向尾数添加一个)GSR = 111,圆到均匀所以我不知道如何进行最接近的回合.任何帮助是极大的赞赏.
我正在尝试实现三角学的范围缩减操作.但相反,我认为对输入数据执行模数pi/2操作可能会更好.我想知道什么算法存在并且对于32位IEEE 754浮点的这种操作有效?
我必须在汇编中实现它,所以只用一条指令就不能使用fmod,除法,乘法等.我的处理器使用16位字,我实现了32位浮点加法,减法,乘法,除法,平方根,余弦和正弦.我只需要范围缩减(模数)来输入余弦和正弦值.
我正在尝试将范围缩减作为实现正弦函数的第一步.
当使用0到20000的输入范围时,我得到的误差大到0.002339146.我的错误显然不应该那么大,我不知道如何减少它.我注意到误差幅度与输入θ幅度与余弦/正弦相关.
我能够获得本文提到的nearpi.c代码,但我不确定如何将代码用于单精度浮点.如果有人有兴趣,可以在以下链接找到nearpi.c文件:nearpi.c
这是我的MATLAB代码:
x = 0:0.1:20000;
% Perform range reduction
% Store constant 2/pi
twooverpi = single(2/pi);
% Compute y
y = (x.*twooverpi);
% Compute k (round to nearest integer
k = round(y);
% Solve for f
f = single(y-k);
% Solve for r
r = single(f*single(pi/2));
% Find last two bits of k
n = bitand(fi(k,1,32,0),fi(3,1,32,0));
n = single(n);
% Preallocate for speed
z(length(x)) = 0;
for i = 1:length(x)
switch(n(i)) …Run Code Online (Sandbox Code Playgroud) 如果我想声明所有1的128位向量,这些方法中的哪一个始终是正确的?
wire [127:0] mywire;
assign mywire = 128'b1;
assign mywire = {128{1'b1}};
assign mywire = 128'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
Run Code Online (Sandbox Code Playgroud) 我试图在硬件中实现一个32位浮点硬件分频器,我想知道我是否可以得到任何关于不同算法之间的权衡的建议?
我的浮点单元目前支持乘法和加法/减法,但我不打算将其切换到融合乘法 - 加法(FMA)浮点架构,因为这是一个嵌入式平台,我试图最小化区域使用.
如何确定浮点数的平方根?Newton-Raphson方法是一种好方法吗?我也没有硬件平方根.我也没有硬件鸿沟(但我实现了浮点除法).
如果可能的话,我宁愿尽可能减少分歧的数量,因为它们太贵了.
另外,应该是初始猜测减少迭代总数???
非常感谢!
我正在研究一种不采用浮点硬件但只有16位ALU和40位MAC的架构.
我已经在这个架构的软件中实现了32位单精度浮点加法/减法,乘法,余弦,正弦,除法,平方根和范围缩减.
为了实现余弦和正弦,我首先使用KC NG的文章"ARGUMENT REDUCTION FOR HUGE ARGUMENTS"中描述的方法使用范围缩减, 然后实现了余弦和正弦函数,它们是范围-pi上的余弦和正弦函数的多项式近似./4到+ pi/4.我提到了"计算机近似"一书,Hart等人.对于多项式.
我也听说过我应该考虑CORDIC算法.但是,我想知道是否有人知道它是否会比我已经使用的方法更高效或更低效(在吞吐量,内存开销和所需指令数方面)?我已经在多核架构上实现了我的软件功能,其中每个核心仅具有128个字的指令存储器和128个字的16位数据存储器.我也尝试过搜索如何为余弦和正弦实现CORDIC算法,但我找不到任何用于32位浮点实现的好资源.有人有建议吗?
谢谢!
我正在使用excel,我想显示一定数量的有效数字的值.
我尝试使用以下等式
=ROUND(value,sigfigs-1-INT(LOG10(ABS(value))))
Run Code Online (Sandbox Code Playgroud)
价值被我使用的数字所取代,sigfigs被我想要的有效数字所取代.
这个公式有时会起作用,但有时却没有.
例如,值18.036将变为18,其中有2位有效数字.解决这个问题的方法是更改源格式以保留1个小数位.但这可以引入一个更重要的数字.例如,如果结果为182,然后小数位将其更改为182.0,那么现在我将有4个sig figs而不是3.
我如何获得excel为我设置sig figs的数量,所以我不必手动弄清楚?
我在Verilog中设计了一个32位单精度浮点乘法器和一个单独的加/减单元.
我在MATLAB中编写了一个脚本,它生成了一堆随机浮点数,并在Verilog中生成了一个测试平台.
我比较从ncverilog模拟那些从MATLAB的结果,并证实了我的倍增器工作正常,我的加/减正常工作为好.
但是,我想知道一个测试用例的列表,它会对我的浮点单元进行压力测试.有这样的清单吗?我知道像Softfloat一些节目,但测试的计算机的浮点运算,而不是能够合并与一个Verilog的测试平台.
我还应该提到我的单元不支持溢出,下溢等异常,并且不支持非规范化值.舍入模式是舍入到最近的.
谢谢!
algorithm ×5
c ×4
math ×3
assembly ×2
binary ×2
c++ ×2
rounding ×2
verilog ×2
compression ×1
excel ×1
hardware ×1
matlab ×1
modulo ×1
spreadsheet ×1
verification ×1