如何使用 SSE 将 _m128i 转换为无符号整数?

2024-01-01

我制作了一个用于图像分离的功能。

// =(
#define ARGB_COLOR(a, r, g, b) (((a) << 24) | ((r) << 16) | ((g) << 8) | (b))

inline UINT PosterizeColor(const UINT &color, const float &nColors)
{
    __m128 clr = _mm_cvtepi32_ps(  _mm_cvtepu8_epi32((__m128i&)color)  );

    clr = _mm_mul_ps(clr,  _mm_set_ps1(nColors / 255.0f)  );
    clr = _mm_round_ps(clr, _MM_FROUND_TO_NEAREST_INT);
    clr = _mm_mul_ps(clr, _mm_set_ps1(255.0f / nColors)  );

    __m128i iClr = _mm_cvttps_epi32(clr);

    return ARGB_COLOR(iClr.m128i_u8[12],
                      iClr.m128i_u8[8],
                      iClr.m128i_u8[4],
                      iClr.m128i_u8[0]);
}

在第一行中,我将颜色解压缩为 4 个浮点数,但我找不到执行相反操作的正确方法。

我搜索了 SSE 文档,但找不到相反的内容_mm_cvtepu8_epi32

有吗?


的组合_mm_shuffle_epi8 and _mm_cvtsi128_si32是你所需要的:

static const __m128i shuffleMask = _mm_setr_epi8(0,  4,  8, 12, -1, -1, -1, -1,
                                               -1, -1, -1, -1, -1, -1, -1, -1);
UINT color = _mm_cvtsi128_si32(_mm_shuffle_epi8(iClr, shuffleMask));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 SSE 将 _m128i 转换为无符号整数? 的相关文章

  • 查找哪些页面不再与写入时复制共享

    假设我在 Linux 中有一个进程 我从中fork 另一个相同的过程 后forking 因为原始进程将开始写入内存 Linux写时复制机制将为进程提供与分叉进程使用的不同的唯一物理内存页 在执行的某个时刻 我如何知道原始进程的哪些页面已被写
  • 使用具有现有访问令牌的 Google API .NET 客户端

    用例如下 移动应用程序正在通过 Google 对用户进行身份验证 并且在某些时候 我们需要将用户的视频发布到他的 YouTube 帐户 出于实际原因 实际发布应该由后端完成 已经存储在那里的大文件 由于用户已经通过应用程序的身份验证 因此应
  • 以编程方式检查页面是否需要基于 web.config 设置进行身份验证

    我想知道是否有一种方法可以检查页面是否需要基于 web config 设置进行身份验证 基本上如果有这样的节点
  • 如何创建可以像 UserControl 一样编辑的 TabPage 子类?

    我想创建一个包含一些控件的 TabPage 子类 并且我想通过设计器来控制这些控件的布局和属性 但是 如果我在设计器中打开子类 我将无法像在 UserControl 上那样定位它们 我不想创建一个带有 UserControl 实例的 Tab
  • 32 位应用程序的特征最大矩阵大小

    所以 我正在寻找Eigen http eigen tuxfamily org index php title Main Page当我尝试声明大于 10000x10000 的矩阵时 包崩溃 我需要声明一个像这样的矩阵 可靠地大约有 13000
  • 使用post方法将多个参数发送到asp.net core 3 mvc操作

    使用 http post 方法向 asp net mvc core 3 操作发送具有多个参数的 ajax 请求时存在问题 参数不绑定 在 dot net 框架 asp net web api 中存在类似的限制 但在 asp net mvc
  • 显示异常时的自定义错误消息:从客户端检测到潜在危险的 Request.Form 值

    我在我的 Web 应用程序中使用 ASP NET 的登录控件 当发生此异常时 我想在标签上显示一种有趣的错误类型System Web HttpRequestValidationException A potentially dangerou
  • 如何使用recv()检测客户端是否仍然连接(并且没有挂起)?

    我写了一个多客户端服务器程序C on SuSE Linux 企业服务器 12 3 x86 64 我为每个客户端使用一个线程来接收数据 我的问题是 我使用一个终端来运行服务器 并使用其他几个终端来运行服务器telnet到我的服务器 作为客户端
  • POCO HTTPSClientSession 发送请求时遇到问题 - 证书验证失败

    我正在尝试使用 POCO 库编写一个向服务器发出 HTTPS 请求的程序 出于测试目的 我正在连接到具有自签名证书的服务器 并且我希望允许客户端进行连接 为了允许这种情况发生 我尝试安装InvalidCertificateHandler这是
  • ASP MVC:服务应该返回 IQueryable 的吗?

    你怎么认为 你的 DAO 应该返回一个 IQueryable 以便在你的控制器中使用它吗 不 您的控制器根本不应该处理任何复杂的逻辑 保持苗条身材 模型 而不是 DAO 应该将控制器返回给视图所需的所有内容 我认为在控制器类中看到查询 甚至
  • 如何识别 WPF 文本框中的 ValidationError 工具提示位置

    我添加了一个箭头来指示工具提示中的文本框 当文本框远离屏幕边缘时 这非常有效 但是当它靠近屏幕边缘时 工具提示位置发生变化 箭头显示在左侧 Here is the Image Correct as expected since TextBo
  • 将数据打印到文件

    我已经超载了 lt lt 运算符 使其写入文件并写入控制台 我已经为同一个函数创建了 8 个线程 并且我想输出 hello hi 如果我在无限循环中运行这个线程例程 文件中的o p是 hello hi hello hi hello hi e
  • 基于xsd模式生成xml(使用.NET)

    我想根据我的 xsd 架构 cap xsd 生成 xml 文件 我找到了这篇文章并按照说明进行操作 使用 XSD 文件生成 XML 文件 https stackoverflow com questions 6530424 generatin
  • 通过 NHibernate 进行查询,无需 N+1 - 包含示例

    我有一个 N 1 问题 我不知道如何解决它 可以在这个问题的底部找到完全可重复的样本 因此 如果您愿意 请创建数据库 设置 NUnit 测试和所有附带的类 并尝试在本地消除 N 1 这是我遇到的真实问题的匿名版本 众所周知 这段代码对于帮助
  • 在 C 中使用 GNU automake 中的解析器

    我是 GNU autotools 的新手 在我的项目中使用了 lex 和 yacc 解析器 将它们作为 makefile am 中的源代码会产生以下错误 配置 in AC CHECK PROGS YACC bison yacc none i
  • 结构体指针的动态数组

    我必须使用以下代码块来完成学校作业 严格不进行任何修改 typedef struct char firstName char lastName int id float mark pStudentRecord pStudentRecord
  • 什么是 __declspec 以及何时需要使用它?

    我见过这样的例子 declspec在我正在阅读的代码中 它是什么 我什么时候需要使用这个构造 这是 Microsoft 对 C 语言的特定扩展 它允许您使用存储类信息来赋予类型或函数属性 文档 declspec C https learn
  • 使用 C# 从 DateTime 获取日期

    愚蠢的问题 给定日期时间中的日期 我知道它是星期二 例如我如何知道它的 tue 2 和 mon 1 等 Thanks 您正在寻找星期几 http msdn microsoft com en us library system datetim
  • 使用 Crypto++ 获取 ECDSA 签名

    我必须使用 Crypto 在变量中获取 ECDSA 签名 我在启动 SignMessage 后尝试获取它 但签名为空 我怎样才能得到它 你看过 Crypto wiki 吗 上面有很多东西椭圆曲线数字签名算法 http www cryptop
  • 是否可以在 C# 中强制接口实现为虚拟?

    我今天遇到了一个问题 试图重写尚未声明为虚拟的接口方法的实现 在这种情况下 我无法更改接口或基本实现 而必须尝试其他方法 但我想知道是否有一种方法可以强制类使用虚拟方法实现接口 Example interface IBuilder

随机推荐

  • 如何在对象类中调用 .render 和 .animate 函数?

    这是我寻找答案的第七天 我想写一个简单的游戏 我想调用一个对象 我的想法是我想要一个模块化游戏 所以我以通常的方式调用场景和所有这些 main js var scene controls camera renderer var SCREEN
  • msysgit sh.exe 参数

    我正在尝试找到一些有关 msysgit sh exe 命令的文档 例如我知道 login标记启动 git bash 会话 但我想知道其他可能性 我浏览过互联网 但找不到任何列出所有可能参数的地方 gt sh exe help GNU bas
  • 如何从 Linux 内核中的 struct dentry 获取完整路径名

    我正在编写自己的内核模块来捕获vfs mkdir struct inode struct dentry int 内核函数调用并尝试记录发生此调用的磁盘路径名 我想使用dentry path转换的核函数struct dentry 到一个路径名
  • Next.js 以线性渐变为背景的图像组件

    在开发我的登陆页面 使用 next js 时 我决定使用这行代码作为一个部分的背景 background image linear gradient to bottom rgb 123 8 255 0 9 rgb 123 8 255 0 8
  • 如何在 AngularJS 1.x 组件中验证表单

    我有一个表单 其字段位于组件内部 现在我想验证这些字段 问题是 我的消息没有显示 该模式也没有任何效果 我试图在这个的帮助下修复它post https stackoverflow com questions 36981037 passing
  • 如何使用 io-ts 验证数组长度?

    我正在研究一个io ts https github com gcanti io ts验证我想验证列表长度 它必须在最小值和最大值之间 我想知道是否有办法实现这种行为 因为它在运行时进行 API 端点验证时非常方便 到目前为止我所拥有的是 i
  • 免费 XML 格式化工具 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 查询返回错误值?

    感谢 zamboni 给我的帮助编写适用于整个数据库而不是表的查询 https stackoverflow com questions 46086616 write a query that applies to an entire db
  • 为什么 redisTemplate.opsForValue().get() 总是不为 null?

    I use Autowired private RedisTemplate redisTemplate and redisTemplate opsForValue get key IDE 给我一个警告 告诉我结果始终不为空 但我看到方法 V
  • 如何暂时禁用 Visual Studio 自动生成的事件?

    All 我已经完成了 GUI 设计阶段 现在我开始为应用程序中的所有控件添加有意义的名称 每次我单击控件更改其名称时 Visual Studio 都会让我发疯 自动生成事件 好吧 只有当我搞砸并双击时才会发生这种情况 但仍然很烦人 有没有办
  • 如何在 SQL 中使用多个 LEFT JOIN?

    sql查询中是否可以使用多个左连接 LEFT JOIN ab ON ab sht cd sht 我想添加一个这样的查询 会起作用吗 LEFT JOIN ab AND aa ON ab sht cd sht AND aa sht cc sht
  • 改变轴样式python

    我正在用 python 绘制一个简单的指数衰减 cos 曲线图 代码如下 代码实际运行没有问题 我只是想知道是否有办法改变python显示图形的方式 而不是像这样被轴包围this https i stack imgur com KBtt4
  • Angularjs 和 Angular 之间的区别[重复]

    这个问题在这里已经有答案了 Angularjs 和 Angular 例如 cli 和版本 之间有什么区别 我想使用 Angular 但我不知道选择其中之一有何区别 我用谷歌搜索但没有明确提及它们之间的差异 AngularJS是第一个版本An
  • 不支持 Last 和 LastOrDefault

    我正在尝试获取列表中的第一个和最后一个值 查询运算符First 受支持 但是Last and LastOrDefault 给出一个错误 我使用的是Last 操作员错误 var purchaseBills db PurchaseBills O
  • 从长度超过 N 个字符的文本中提取单词 - RegEx/Java/Android [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我的第一个要求是使用 Java 中的正则表达式从某些文本中提取所有单词 以下代码对我来说非常完美 String words text sp
  • 从android webview中的base64 url​​下载文件

    我正在编写一个 webview 应用程序 在其中我可以从 html 标签 url 下载文件到设备 我可以下载 png jpg pdf 等文件 但是当 url 是 base64 字符串值时我不知道如何下载它 有人可以帮助我实现这一目标吗 例如
  • AS3 setChildIndex 到前面

    有没有办法将特定的 movieClip 发送到舞台上所有其他 movieClip 的前面 我知道 setChildIndex 但我无法找到动态计算顶部位置的方法 您可以使用setChildIndex with numChildren set
  • Google Places API:“place_id”或“id”对于世界上的任何城市来说都是唯一的吗?

    当对某个位置执行自动完成 API 调用时 我请求来自 google 的 JSON 响应 id 和 place id 字符串有什么区别 这两个ID是世界上任何一个城市所独有的吗 谷歌地点是否为世界上的每个城市分配一个ID 例如 Somers
  • Spark 中 IF then ELSE 的等价物

    我早些时候在这里看到过这个问题 并从中吸取了教训 但是 我不确定为什么当我认为它应该起作用时会出现错误 我想在现有 Spark 中创建一个新列DataFrame通过一些规则 这是我写的 iris spark 是具有分类变量 iris spa
  • 如何使用 SSE 将 _m128i 转换为无符号整数?

    我制作了一个用于图像分离的功能 define ARGB COLOR a r g b a lt lt 24 r lt lt 16 g lt lt 8 b inline UINT PosterizeColor const UINT color