📄 l1_preview.c
字号:
/*
captureWidth = K_SNAP_Resolution_Middle_Width;
captureHeight = K_SNAP_Resolution_Middle_Height;
L2_ScaleDownImage(G_RawImageBufAddr, G_Hsize , G_Vsize ,
G_RawImageBufAddr, K_SNAP_Resolution_Middle_Width, K_SNAP_Resolution_Middle_Height,
K_SDRAM_TemporaryBufAddr);
*/
captureWidth = K_SNAP_Resolution_Middle_Width;
captureHeight = K_SNAP_Resolution_Middle_Height;
L2_ScaleDownImage_H(
G_RawImageBufAddr
, G_Hsize , G_Vsize, //source
G_RawImageBufAddr
, captureWidth); //destination
L2_ScaleDownImage_V(
G_RawImageBufAddr
, captureWidth , G_Vsize, //source
G_RawImageBufAddr
, captureHeight); //destination
/*
L2_ScaleDownImage(G_RawImageBufAddr
, G_Hsize , G_Vsize / 4, //source
G_RawImageBufAddr
, captureWidth, captureHeight / 4, //destination
K_SDRAM_ImageCaptureGeneralBufAddr);
L2_ScaleDownImage(G_RawImageBufAddr + (((ULONG)G_Hsize * (ULONG)G_Vsize ) / 4) * 1
, G_Hsize , G_Vsize / 4, //source
G_RawImageBufAddr + (((ULONG)captureWidth * (ULONG)captureHeight ) / 4) * 1
, captureWidth, captureHeight / 4, //destination
K_SDRAM_ImageCaptureGeneralBufAddr);
L2_ScaleDownImage(G_RawImageBufAddr + (((ULONG)G_Hsize * (ULONG)G_Vsize ) / 4) * 2
, G_Hsize , G_Vsize / 4, //source
G_RawImageBufAddr + (((ULONG)captureWidth * (ULONG)captureHeight ) / 4) * 2
, captureWidth, captureHeight / 4, //destination
K_SDRAM_ImageCaptureGeneralBufAddr);
L2_ScaleDownImage(G_RawImageBufAddr + (((ULONG)G_Hsize * (ULONG)G_Vsize ) / 4) * 3
, G_Hsize , G_Vsize / 4, //source
G_RawImageBufAddr + (((ULONG)captureWidth * (ULONG)captureHeight ) / 4) * 3
, captureWidth, captureHeight / 4, //destination
K_SDRAM_ImageCaptureGeneralBufAddr);
*/
}
else if(G_CameraOptions.ImageSize == K_UIOPTION_IMGSIZE_LOW)
{
#if(ONE2TWO_OPTION == 1)
//////////////
captureWidth = K_SNAP_Resolution_Middle_Width;
captureHeight = K_SNAP_Resolution_Middle_Height;
L2_ScaleDownImage_H(
G_RawImageBufAddr
, G_Hsize , G_Vsize, //source
G_RawImageBufAddr
, captureWidth); //destination
L2_ScaleDownImage_V(
G_RawImageBufAddr
, captureWidth , G_Vsize, //source
G_RawImageBufAddr
, captureHeight); //destination
#else
/*
captureWidth = K_SNAP_Resolution_Low_Width;
captureHeight = K_SNAP_Resolution_Low_Height;
L2_ScaleDownImage(G_RawImageBufAddr, G_Hsize , G_Vsize ,
G_RawImageBufAddr, K_SNAP_Resolution_Low_Width, K_SNAP_Resolution_Low_Height,
K_SDRAM_TemporaryBufAddr);
*/
captureWidth = K_SNAP_Resolution_Low_Width;
captureHeight = K_SNAP_Resolution_Low_Height;
L2_ScaleDownImage_H(
G_RawImageBufAddr
, G_Hsize , G_Vsize, //source
G_RawImageBufAddr
, captureWidth); //destination
L2_ScaleDownImage_V(
G_RawImageBufAddr
, captureWidth , G_Vsize, //source
G_RawImageBufAddr
, captureHeight); //destination
/*
L2_ScaleDownImage(G_RawImageBufAddr
, G_Hsize , G_Vsize / 4, //source
G_RawImageBufAddr
, captureWidth, captureHeight / 4, //destination
K_SDRAM_ImageCaptureGeneralBufAddr);
L2_ScaleDownImage(G_RawImageBufAddr + (((ULONG)G_Hsize * (ULONG)G_Vsize ) / 4) * 1
, G_Hsize , G_Vsize / 4, //source
G_RawImageBufAddr + (((ULONG)captureWidth * (ULONG)captureHeight ) / 4) * 1
, captureWidth, captureHeight / 4, //destination
K_SDRAM_ImageCaptureGeneralBufAddr);
L2_ScaleDownImage(G_RawImageBufAddr + (((ULONG)G_Hsize * (ULONG)G_Vsize ) / 4) * 2
, G_Hsize , G_Vsize / 4, //source
G_RawImageBufAddr + (((ULONG)captureWidth * (ULONG)captureHeight ) / 4) * 2
, captureWidth, captureHeight / 4, //destination
K_SDRAM_ImageCaptureGeneralBufAddr);
L2_ScaleDownImage(G_RawImageBufAddr + (((ULONG)G_Hsize * (ULONG)G_Vsize ) / 4) * 3
, G_Hsize , G_Vsize / 4, //source
G_RawImageBufAddr + (((ULONG)captureWidth * (ULONG)captureHeight ) / 4) * 3
, captureWidth, captureHeight / 4, //destination
K_SDRAM_ImageCaptureGeneralBufAddr);
*/
#endif
}
else
{
captureWidth = K_SENSOR_CaptureWidth ;
captureHeight = K_SENSOR_CaptureHeight; //1280;
/* L2_ScaleUpImage_H(
G_RawImageBufAddr,
//K_SDRAM_ImageCaptureBufAddr,
//src size
G_Hsize,G_Vsize,
//dest address
K_SDRAM_ImageCaptureGeneralBufAddr,
captureWidth);
L2_ScaleUpImage_V(K_SDRAM_ImageCaptureGeneralBufAddr,
//src size
captureWidth,G_Vsize,
//dest address
G_RawImageBufAddr,
captureHeight);
*/
}
/////// DISPLAY ///////
//printf("G_DSPHsize = %x,G_DSPVsize = %x\n",G_DSPHsize,G_DSPVsize);
//patch5.0@richie@conti shot begin
if (captureWidth > G_DSPHsize)
{
//Joe@2003.2.25 14:49 modify begin
//L2_ScaleDownImage(
L1_ScaleImage(
//Joe@2003.2.25 14:49 modify end
G_RawImageBufAddr
, captureWidth , captureHeight ,
K_SDRAM_ImageCaptureDisplayBufAddr, G_DSPHsize, G_DSPVsize,
K_SDRAM_ImageCaptureGeneralBufAddr);
}
else
{
//Joe@2003.2.25 14:50 modify begin
//L2_ScaleUpImage(
L1_ScaleImage(
//Joe@2003.2.25 14:50 modify end
G_RawImageBufAddr
, captureWidth , captureHeight ,
K_SDRAM_ImageCaptureDisplayBufAddr, G_DSPHsize, G_DSPVsize,
K_SDRAM_ImageCaptureGeneralBufAddr);
}
//patch5.0@richie@conti shot end
//////// COMPRESSION //////////////////////////////////////////////
L2_SetCamMode(0); //must switch back to idle before compression
//L2_SetJPEGVscale(G_Vsize, G_Vsize); //turn off JPEG Vertical scaling function
//yichang@0508 for multi-size snapping
L2_SetJPEGVscale(captureHeight, captureHeight); //turn off JPEG Vertical scaling function
//use option 0x30 instead of 0x20 in the final version
//since our AP can only deal with the non-JFIF format, so use 0x20 here
//yichang@0508 for multi-size snapping
L2_Compress(2,
G_RawImageBufAddr
,captureWidth,captureHeight, //source
K_SDRAM_ImageCaptureGeneralBufAddr, //destination
K_SDRAM_DcTermBufAddr, //DC-teram location
0x30); //Mode: JFIF, generate DC term
////printf("G_Vsize = %d,G_Hsize = %d\n",G_Vsize,G_Hsize);
L2_ReadCompSize(pSize);
#if AAA_OPTION
#ifdef AEAWB_DEBUG
end_add=((*pSize)/2)+1+K_SDRAM_ImageCaptureGeneralBufAddr;
//patch5.0@richie@sdram mapping end
L2_DRAMSetStartAddr(end_add,K_SDRAM_NoPrefetch);
L2_DRAMWriteWord(0xaa,0xbb);
(*pSize)+=2 ;
(*pSize)+=2 ;
end_add++;
L2_DRAMSetStartAddr(end_add,K_SDRAM_NoPrefetch);
L2_DRAMWriteWord(0xcc,0xdd);
(*pSize)+=2 ;
end_add++;
hb=(UCHAR)(Tidx>>8);
lb=(UCHAR)(Tidx&0x00ff);
L2_DRAMSetStartAddr(end_add,K_SDRAM_NoPrefetch);
L2_DRAMWriteWord(hb,lb);
(*pSize)+=2 ;
end_add++;
if(Outdoor) hb=0x01; else hb=0x00;
lb=0xff;
L2_DRAMSetStartAddr(end_add,K_SDRAM_NoPrefetch);
L2_DRAMWriteWord(lb,hb);
(*pSize)+=2 ;
end_add++;
hb=0x11;
lb=XBYTE[0x2120];
L2_DRAMSetStartAddr(end_add,K_SDRAM_NoPrefetch);
L2_DRAMWriteWord(hb,lb);
(*pSize)+=2 ;
end_add++;
hb=0x22;
lb=XBYTE[0x2121];
L2_DRAMSetStartAddr(end_add,K_SDRAM_NoPrefetch);
L2_DRAMWriteWord(hb,lb);
(*pSize)+=2 ;
end_add++;
hb=0x33;
lb=XBYTE[0x2122];
L2_DRAMSetStartAddr(end_add,K_SDRAM_NoPrefetch);
L2_DRAMWriteWord(hb,lb);
(*pSize)+=2 ;
end_add++;
hb=0x44;
lb=XBYTE[0x2123];
L2_DRAMSetStartAddr(end_add,K_SDRAM_NoPrefetch);
L2_DRAMWriteWord(hb,lb);
(*pSize)+=2 ;
end_add++;
hb=0x55;
lb=XBYTE[0x2124];
L2_DRAMSetStartAddr(end_add,K_SDRAM_NoPrefetch);
L2_DRAMWriteWord(hb,lb);
(*pSize)+=2 ;
end_add++;
hb=0x66;
lb=XBYTE[0x2125];
L2_DRAMSetStartAddr(end_add,K_SDRAM_NoPrefetch);
L2_DRAMWriteWord(hb,lb);
(*pSize)+=2 ;
end_add++;
hb=0x77;
lb=XBYTE[0x2126];
L2_DRAMSetStartAddr(end_add,K_SDRAM_NoPrefetch);
L2_DRAMWriteWord(hb,lb);
(*pSize)+=2 ;
end_add++;
hb=0x88;
lb=XBYTE[0x2127];
L2_DRAMSetStartAddr(end_add,K_SDRAM_NoPrefetch);
L2_DRAMWriteWord(hb,lb);
(*pSize)+=2 ;
end_add++;
hb=0xaa;
lb=0xbb;
L2_DRAMSetStartAddr(end_add,K_SDRAM_NoPrefetch);
L2_DRAMWriteWord(hb,lb);
(*pSize)+=2 ;
end_add++;
for(i=0;i<3;i++){
hb=(UCHAR)(SNAP_Y[i]>>8);
lb=(UCHAR)(SNAP_Y[i]&0x00ff);
L2_DRAMSetStartAddr(end_add,K_SDRAM_NoPrefetch);
L2_DRAMWriteWord(hb,lb);
(*pSize)+=2 ;
end_add++;
}
hb=0xcc;
lb=0xdd;
L2_DRAMSetStartAddr(end_add,K_SDRAM_NoPrefetch);
L2_DRAMWriteWord(hb,lb);
(*pSize)+=2 ;
end_add++;
for(i=0;i<3;i++){
hb=(UCHAR)(SNAP_T[i]>>8);
lb=(UCHAR)(SNAP_T[i]&0x00ff);
L2_DRAMSetStartAddr(end_add,K_SDRAM_NoPrefetch);
L2_DRAMWriteWord(hb,lb);
(*pSize)+=2 ;
end_add++;
}
//jhyu@test add
hb=0xff;
lb=0xff;
L2_DRAMSetStartAddr(end_add,K_SDRAM_NoPrefetch);
L2_DRAMWriteWord(hb,lb);
(*pSize)+=2 ;
end_add++;
hb=(UCHAR)((Kback&0xff00)>>8);
lb=(UCHAR)(Kback&0x00ff);
L2_DRAMSetStartAddr(end_add,K_SDRAM_NoPrefetch);
L2_DRAMWriteWord(hb,lb);
(*pSize)+=2 ;
end_add++;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
hb=(UCHAR)((i<<4) | j);
lb=(UCHAR)(YY[i][j]);
L2_DRAMSetStartAddr(end_add,K_SDRAM_NoPrefetch);
L2_DRAMWriteWord(hb,lb);
(*pSize)+=2 ;
end_add++;
}
}
hb=0x77;
lb=method;
L2_DRAMSetStartAddr(end_add,K_SDRAM_NoPrefetch);
L2_DRAMWriteWord(hb,lb);
(*pSize)+=2 ;
end_add++;
//Jane for color matrix and OB debug
hb=0xDE;
lb=0xDE;
L2_DRAMSetStartAddr(end_add,K_SDRAM_NoPrefetch);
L2_DRAMWriteWord(hb,lb);
(*pSize)+=2 ;
end_add++;
hb=0x11;
lb=XBYTE[0x2140];
L2_DRAMSetStartAddr(end_add,K_SDRAM_NoPrefetch);
L2_DRAMWriteWord(hb,lb);
(*pSize)+=2 ;
end_add++;
hb=0x22;
lb=XBYTE[0x2141];
L2_DRAMSetStartAddr(end_add,K_SDRAM_NoPrefetch);
L2_DRAMWriteWord(hb,lb);
(*pSize)+=2 ;
end_add++;
hb=0x33;
lb=XBYTE[0x2142];
L2_DRAMSetStartAddr(end_add,K_SDRAM_NoPrefetch);
L2_DRAMWriteWord(hb,lb);
(*pSize)+=2 ;
end_add++;
hb=0x44;
lb=XBYTE[0x2143];
L2_DRAMSetStartAddr(end_add,K_SDRAM_NoPrefetch);
L2_DRAMWriteWord(hb,lb);
(*pSize)+=2 ;
end_add++;
hb=0x55;
lb=XBYTE[0x2144];
L2_DRAMSetStartAddr(end_add,K_SDRAM_NoPrefetch);
L2_DRAMWriteWord(hb,lb);
(*pSize)+=2 ;
end_add++;
hb=0x66;
lb=XBYTE[0x2145];
L2_DRAMSetStartAddr(end_add,K_SDRAM_NoPrefetch);
L2_DRAMWriteWord(hb,lb);
(*pSize)+=2 ;
end_add++;
hb=0x77;
lb=XBYTE[0x2146];
L2_DRAMSetStartAddr(end_add,K_SDRAM_NoPrefetch);
L2_DRAMWriteWord(hb,lb);
(*pSize)+=2 ;
end_add++;
hb=0x88;
lb=XBYTE[0x2147];
L2_DRAMSetStartAddr(end_add,K_SDRAM_NoPrefetch);
L2_DRAMWriteWord(hb,lb);
(*pSize)+=2 ;
end_add++;
hb=0x99;
lb=XBYTE[0x2148];
L2_DRAMSetStartAddr(end_add,K_SDRAM_NoPrefetch);
L2_DRAMWriteWord(hb,lb);
(*pSize)+=2 ;
end_add++;
hb=0xaa;
lb=XBYTE[0x2149];
L2_DRAMSetStartAddr(end_add,K_SDRAM_NoPrefetch);
L2_DRAMWriteWord(hb,lb);
(*pSize)+=2 ;
end_add++;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -