我有個氨基酸的SoC相機模塊,其輸出在以下範圍YCbCr數據: Y(0 - > 255) Cb和Cr(-127 - > 127)爲的libjpeg是否應CBCR值符號或無符號
現在我的問題是,libjpeg接受這些有符號值還是應該更改有符號值,使它們在0 - > 255的範圍內?
我使用ATMEL提供的libjpeg'bolt-on'jpeg壓縮器作爲SAM3s-EK的一部分。對於該ijg_compress_raw_no_padding功能栓接部分的代碼如下所示......據我可以看到這需要YCbCr數據的我漂亮整齊的陣列和操縱成的libjpeg形式喜歡;-)
static void _init_sarray_imcu_row(JSAMPIMAGE *image,JSAMPLE *src,uint32_t y_pos,uint32_t width,uint32_t rows)
{
JSAMPLE *r0;
JSAMPLE *r1;
JSAMPARRAY ay = (*image)[0];
JSAMPARRAY au = (*image)[1];
JSAMPARRAY av = (*image)[2];
JSAMPROW ry0,ru,rv,ry1;
int i,j;
for(i = 0; i < rows/2 ;i++)
{
r0 = & src[ (i * 2 + y_pos) * width * 2];
r1 = & src[ (i * 2 + y_pos + 1) * width * 2];
ry0 = ay[i*2];
ry1 = ay[i*2+1];
ru = au[i];
rv = av[i];
for(j = 0; j < width /2; j++)
{
ry0[j * 2] = r0[j*4];
ry1[j * 2] = r1[j*4];
ry0[j * 2 + 1] = r0[j*4+2];
ry1[j * 2 +1] = r1[j*4+2];
ru[j] = (r0[ j * 4 + 1] + r1[j*4+1])/2;
rv[j] = (r0[ j * 4 + 3] + r1[j*4+3])/2;
}
}
}
我也不完全確定這些值應該在我發送這個函數的原始數據數組中,例如: YCbCrY或YCbYCr等等,但是我可以玩,因爲當輸出圖像被查看時它變得明顯。
因爲它是我得到一些圖像,其中一些顏色似乎混在一起,紅色&藍色似乎被交換和黃色和綠色相同。
所以我重複我最初的問題,以防萬一有人在那裏失去:
,這種功能只有在區域0-> 255接受值或從相機Y並接受它的數據( 0-> 255)和Cb & Cr(-127-> 127)?
如果有人可以建議訂單數組應該打包,這也將有所幫助。
非常感謝 deBoogle