도와주세요!!
글 수 15,339
2007.01.17 11:30:56 (*.138.143.52)
6665
안녕하세요..
jpeg image error 의 경우에는 H/W적으로 데이타라인의 길이가 길 경우 데이타 손실로 인한 에러가 자주 발생하는것으로 알고 있습니다. 따라서 하드웨어 설계시 MCU 또는 BUFFER에서 데이타 라인을 최대한 짧게 해 주시는것이 에러를 줄일 수 있습니다.
만약 저희 테스트 보드를 사용하신다면.. 어떻게 연결해서 사용하시고 계시나요???
저희 EZ-ETIO 보드는 테스트를 해서 보내드리고 있습니다... 만약 계속적으로 에러가 발생한다면...
A/S를 보내주세요. 저희가 한번 확인 해 보겠습니다.
그럼 수고하세요.
>수고많으십니다.
>다름이 아니오라 cmos 카메라에 대해 문의 드릴게 있는데요..
>
>CD에 있는 드라이버 및 예제 소스를 테스트 하는 중에
>정상적으로 작동하지 않아서 몇가지 여쭤 볼게 있습니다.
>
>H/W 결함인지 S/W적인 결함이 알수가 없네요..
>암튼 제가 여러가지 했던 작업과 궁금한 부분에 대해 질문 드리겠습니다.
>원본 CD에 있는 드라이버 파일 및 소스 파일을 실행하게 되면
>'jpeg image error' 란 에러가 발생합니다.
>
>해당 소스의 capture_process() 함수에서..
>----------------------------------------------------------------------------------------------------------------------------
>if(( endmark[image_size/2 - 1] == 0xFFD9 ) || ( endmark[image_size/2 - 1] == 0xD9FF ) )
>{
> if( file_mode )
> {
> fp = fopen( filename, "w+" );
>
> if( fp != NULL )
> {
> fwrite( g_buff, 1, image_size, fp );
> fclose( fp );
> exit(0);
> }
> }
> else
> {
> send_tcp( view_ip, VIEW_PORT, (char *) g_buff, image_size );
> }
>}
>else
>{
> printf( "jpeg image errorn" );
> printf( "start mark %04Xn", endmark[0] );
> printf( "end mark %04Xn", endmark[image_size/2 - 1] );
>}
>
>----------------------------------------------------------------------------------------------------------------------------
>
>그렙한 raw 데이터 크기를 얻어오는 함수
>image_size = ecs_get_jpeg_image_size( ecs_handle ); 를 통해서 얻어온
>image_size의 크기는 7520 에서 7542 정도 나오고 (ECSM_320X240_YUV으로 설정 시..)
>endmark[image_size/2 - 1]의 값을 출력 해보면 0xA884에서 0x9f7f 사이 값이
>나옵니다. (대략..)
>
>if문에 있는 endmark값이 0xFFD9나 0x09FF와 같아야 하는것은 한 프레임의
>끝을 나타내기 때문인가요? 조건문 안의 FFD9나 09FF값을 충족하지 못하기 때문에 계속
>jpeg image error만 실행 되네요..
>
>그래서 첫번째 if문의 조건을 없애고 Jpeg 이미지를 만들어 봤습니다.
>역시나 정상적인 이미지가 나오지 않더군요.
>다시 YUV를 RGB로 바꾸어 설정한 후 BMP 포멧으로 만들어도 마찬가지 입니다.
>정상적으로 한 프레임씩 그렙한 데이터가 아닌것으로 판단이 되기는 하지만
>확실치않아 질문 드립니다.
>
>컴파일 잘못인가 해서 컴파일 옵션에 -ljpeg 옵션과 램디스크에 jpeg 라이브러리를 구성한 후
>그림파일을 살펴봐도 같은 현상이 나옵니다.
>
>cmos 카메라를 연결하지 않고 insmod를 하면 count값이 0이 나오고 연결 후 엔 count 값이 1이
>나오긴 하네요.
>
>정확히 어느 부분이 잘못되었는지 조언 부탁드립니다.
>
>---------------------------------- 추가부분입니다.
>소스에 ecs api 부분이 있더군요.. 거기에 나와있는 api를 이용하여
>리턴값들을 살펴보았는데요..
>ecs_set_mode = 0
>ecs_caputer =0
>ecs_convert_jpeg =0
>ecs_end_checks =1
>등.. 이렇게 나옵니다. 설명데로라면 리턴값들은 정상이네요..
>무엇이 잘못되었을까요..?
jpeg image error 의 경우에는 H/W적으로 데이타라인의 길이가 길 경우 데이타 손실로 인한 에러가 자주 발생하는것으로 알고 있습니다. 따라서 하드웨어 설계시 MCU 또는 BUFFER에서 데이타 라인을 최대한 짧게 해 주시는것이 에러를 줄일 수 있습니다.
만약 저희 테스트 보드를 사용하신다면.. 어떻게 연결해서 사용하시고 계시나요???
저희 EZ-ETIO 보드는 테스트를 해서 보내드리고 있습니다... 만약 계속적으로 에러가 발생한다면...
A/S를 보내주세요. 저희가 한번 확인 해 보겠습니다.
그럼 수고하세요.
>수고많으십니다.
>다름이 아니오라 cmos 카메라에 대해 문의 드릴게 있는데요..
>
>CD에 있는 드라이버 및 예제 소스를 테스트 하는 중에
>정상적으로 작동하지 않아서 몇가지 여쭤 볼게 있습니다.
>
>H/W 결함인지 S/W적인 결함이 알수가 없네요..
>암튼 제가 여러가지 했던 작업과 궁금한 부분에 대해 질문 드리겠습니다.
>원본 CD에 있는 드라이버 파일 및 소스 파일을 실행하게 되면
>'jpeg image error' 란 에러가 발생합니다.
>
>해당 소스의 capture_process() 함수에서..
>----------------------------------------------------------------------------------------------------------------------------
>if(( endmark[image_size/2 - 1] == 0xFFD9 ) || ( endmark[image_size/2 - 1] == 0xD9FF ) )
>{
> if( file_mode )
> {
> fp = fopen( filename, "w+" );
>
> if( fp != NULL )
> {
> fwrite( g_buff, 1, image_size, fp );
> fclose( fp );
> exit(0);
> }
> }
> else
> {
> send_tcp( view_ip, VIEW_PORT, (char *) g_buff, image_size );
> }
>}
>else
>{
> printf( "jpeg image errorn" );
> printf( "start mark %04Xn", endmark[0] );
> printf( "end mark %04Xn", endmark[image_size/2 - 1] );
>}
>
>----------------------------------------------------------------------------------------------------------------------------
>
>그렙한 raw 데이터 크기를 얻어오는 함수
>image_size = ecs_get_jpeg_image_size( ecs_handle ); 를 통해서 얻어온
>image_size의 크기는 7520 에서 7542 정도 나오고 (ECSM_320X240_YUV으로 설정 시..)
>endmark[image_size/2 - 1]의 값을 출력 해보면 0xA884에서 0x9f7f 사이 값이
>나옵니다. (대략..)
>
>if문에 있는 endmark값이 0xFFD9나 0x09FF와 같아야 하는것은 한 프레임의
>끝을 나타내기 때문인가요? 조건문 안의 FFD9나 09FF값을 충족하지 못하기 때문에 계속
>jpeg image error만 실행 되네요..
>
>그래서 첫번째 if문의 조건을 없애고 Jpeg 이미지를 만들어 봤습니다.
>역시나 정상적인 이미지가 나오지 않더군요.
>다시 YUV를 RGB로 바꾸어 설정한 후 BMP 포멧으로 만들어도 마찬가지 입니다.
>정상적으로 한 프레임씩 그렙한 데이터가 아닌것으로 판단이 되기는 하지만
>확실치않아 질문 드립니다.
>
>컴파일 잘못인가 해서 컴파일 옵션에 -ljpeg 옵션과 램디스크에 jpeg 라이브러리를 구성한 후
>그림파일을 살펴봐도 같은 현상이 나옵니다.
>
>cmos 카메라를 연결하지 않고 insmod를 하면 count값이 0이 나오고 연결 후 엔 count 값이 1이
>나오긴 하네요.
>
>정확히 어느 부분이 잘못되었는지 조언 부탁드립니다.
>
>---------------------------------- 추가부분입니다.
>소스에 ecs api 부분이 있더군요.. 거기에 나와있는 api를 이용하여
>리턴값들을 살펴보았는데요..
>ecs_set_mode = 0
>ecs_caputer =0
>ecs_convert_jpeg =0
>ecs_end_checks =1
>등.. 이렇게 나옵니다. 설명데로라면 리턴값들은 정상이네요..
>무엇이 잘못되었을까요..?