stb_image似乎支持idct和ycbcr-> rgb转换操作的插件SIMD实现,这些操作在加载jpeg文件时占用大部分时间.看看STBI_SIMD背后的代码,很明显这个代码实际上已在某处使用过.
但是,要么实现是专有的,要么我的google-fu失败了,因为我还没有找到任何使用此接口的公共代码.
我的需求只适用于x86平台(此时).
是否有任何开源使用此接口?
_mm_load_ps() SSE 内在函数被定义为对齐的,如果地址未对齐则抛出异常。然而,视觉工作室似乎生成了未对齐的读取。
由于并非所有编译器都是相同的,这隐藏了错误。如果能够打开实际的对齐操作,那就太好了,尽管以前的性能影响似乎不再存在了。
换句话说,编写代码:
__m128 p1 = _mm_load_ps(data);
Run Code Online (Sandbox Code Playgroud)
目前生产:
movups xmm0,xmmword ptr [eax]
Run Code Online (Sandbox Code Playgroud)
预期结果:
movaps xmm0,xmmword ptr [eax]
Run Code Online (Sandbox Code Playgroud)
(我是被微软要求来这里问的)