32位8位比较形成32位汉明字符串

时间:2015-06-19 18:39:11

标签: c++ c sse simd avx

我正在对每个像素执行32次比较的图像执行人口普查变换。我可以有效地生成一个0x0100010100010100的256位向量...其中每个8位对应于0x00或0x01。该载体在下面标识为“比较”。我需要折叠这个256位向量来生成一个32位的汉明字符串。阵列'人口普查'是我存储8位比较的地方。请注意,此时我并不关心汉明距离,我只对尽快生成字符串感兴趣。我有AVX2可供我使用。我目前的代码:

myApp.controller('FollowController', ['$scope', '$http',
    function($scope, $http) {
        var status = "";
        var follow = this;
        $http.get('/Home/CheckFollower?idToFollow=' + profileId + '&followerId=' + currentUserId).
        success(function(data) {
          //check if it is a follower
          if (data) {
            // Not following - Show unfollow
            alert("1111");
            follow.statusMessage = data;
          } else {
            //Following - show Follow
            follow.statusMessage = data;
          }
        })
        .error(function(data, status) {
          console.log(data);
        });
    }
]);

1 个答案:

答案 0 :(得分:5)

这几乎就是_mm256_movemask_epi8的用途,除了它取字节的最高位而不是最低有效位。所以先左转7。

或者,改变你产生这些字节的方式,因为你可能分别将它们设为0x00或0xFF为false和true,对吧?至少,通常比较会导致这种情况。