我想知道是否有可能與霓虹燈向量降採樣圖像3? 我正在試圖爲紙上寫一個算法,但它似乎是不可能的。因爲當你得到例如8字節,你不能得到3 * 3像素,將沒有足夠的像素來完成下采樣操作。根據下降採樣2:Explaining ARM Neon Image Sampling 我想加載16bytes,然後從一行8bytes,然後將它們分配給一個32bytes的向量,然後處理該向量的24個字節?算法下采樣3使用霓虹燈的圖像
更新: 我寫根據答案的樣本代碼,但是我在vst1_u8得到一個分段錯誤...
inline void downsample3dOnePass(uint8_t* src, uint8_t *dst, int srcWidth)
{
// make sure rows/cols dividable by 8
int rows = ((srcWidth>>3)<<3);
// 8 pixels per row
rows=rows>>3;
for (int r = 0; r < rows; r++)
{
// load 24 pixels (grayscale)
uint8x8x3_t pixels = vld3_u8(src);
// first sum = d0 + d1
uint8x8_t firstSum = vadd_u8 (pixels.val[0], pixels.val[1]);
// second sum = d1+d2;
uint8x8_t secondSum = vadd_u8 (firstSum, pixels.val[2]);
// total sum = d0+d1+d2
uint8x8_t totalSum = vadd_u8(secondSum, firstSum);
// average = d0+d1+d2/8 ~9 for test
uint8x8_t totalAverage = vshr_n_u8(totalSum,3);
// store 8 bytes
vst1_u8(dst, totalAverage);
// move to next 3 rows
src+=24;
// move to next row
dst+=8;
}
}
我不知道你在問什麼。您提供的鏈接中的代碼每行處理8 *像素*,而不是8個字節。 – 2013-03-19 18:28:22
@CareyGregory我假設灰度圖像 – 2013-03-19 18:49:13