33、X86-AVX编程:从整数处理到新指令应用

X86-AVX编程:从整数处理到新指令应用

1. 像素裁剪与阈值处理

1.1 像素裁剪

在像素裁剪过程中, vpmovmskb eax,ymm1 指令会创建裁剪像素的掩码,并将该掩码保存到寄存器 EAX 中。具体操作对应于 eax[i] = ymm1[i*8+7] (其中 i = 0,1,2, ... 31 )。随后, popcnt eax,eax 指令会统计并将当前像素块中裁剪像素的数量保存到 EAX 中。接着, add edx,eax 指令会更新 EDX 中维护的裁剪像素总数。主处理循环完成后,寄存器 EDX 的值会保存到 PcData 结构的 NumClippedPixels 成员中。

以下是不同CPU下像素裁剪算法的C++和汇编语言版本的平均执行时间(单位:微秒):
| CPU | AvxPiPixelClipCpp (C++) | AvxPiPixelClip_ (x86 - AVX) |
| — | — | — |
| Intel Core i7 - 4770 | 8866 | 1075 |
| Intel Core i7 - 4600U | 10235 | 1201 |

1.2 图像阈值处理

之前使用x86 - SSE指令集的 SsePack

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值