회원 및 비회원 모두 열람이 가능합니다. 최대 업로드 가능한 용량은 20MB 입니다.
UVC 를 지원하는 Host에 UVC client를 지원하는 tartget 보드를 연결하여
JPEG 이미지를 Bulk 모드로 전송하고자 합니다.
target보드는 webcam이 아니고 일반 카메라 기능을 가지는 보드입니다.
그래서, 카메라 드라이버를 구현하고, UVC client 를 포팅하여 host에서 인식을 되었습니다.
그런데, UVC를 보다 자세히 들여다 보니
단순하게 JPEG 이미지 Bulk 전송을 위해 UVC를 사용하는 것이 overhead가 많은 것 같고
단순히 그 용도로 UVC를 사용하는 것이 맞는지 의문이 듭니다.
UVC를 선택한 이유는 Host쪽에서의 최소 수정을 위해서 입니다.
즉, V4L2로 연결시키기 위해서이며, UVC Host를 그대로 이용할 목적이었습니다.
근데, 하면 할 수록 선택의 의문이 듭니다.
1> JPEG Image Bulk 전송을 위해 UVC를 이용하는 방법이 맞는지요
(가능한 한 V4L2를 이용하고자 합니다)
2> 다른 좋은 대안이 없을 까요?
고수님들의 좋은 조언을 기대합니다.
감사합니다.
UVC Device 에서 Enmeration 관련 descriptor를 설정하는 과정에서
제가 구현하는 device는 camera의 full 을 host에서 알 필요가 없이 단지, device에서 jpeg 이미지만 전송하는 구조입닏.
따라서, 이경우 descriptor중에 class-specific 관련 descriptor가 반드시 필요한 가요?
저는 video control과 streming 관련 standard descriptor만 구현한 상태입니다.
물론, 정상적으로 host에서 deivce는 인식이 되었습니다만, PC에서는 관련 driver를 찾아 설치하는 데 없다고
합니다. specific camera니까 그런것 같습니다.
제가 구현하는 device는 camera의 full 을 host에서 알 필요가 없이 단지, device에서 jpeg 이미지만 전송하는 구조입닏.
-> 위의 말이 어떤 뜻인지 정확히 잘 모르겠습니다. Jpeg이미지만 전송하더라도 UVC device로 동작하려면 모든 구성요소(디스크립터)를 갖추어야 합니다. 물론 jpeg 전송에 맞는 class-specific descriptor가 필요합니다. 디스크립터를 YUV422로 설정하고 데이터는 Jpeg을 전송하고 호스트에서 Jpeg을 전송받는 것은 가능합니다. 다만 표준이 아니기 때문에 메신저 같은 프로그램에서 영상 출력이 안 됩니다.(메신저는 JPEG이 YUV422이라고 생각하기 때문에)
답변에 감사드립니다. 이제야 조금 감(?) 오는 것 같습니다.
이쪽 부분의 경험이 이번이 처음이라 어렵네요...
제가 UVC Device단에 구현한 것은 "descriptor hierachy" 에서
IAP I/F -> VideoContro I/F -> class-specific VC I/F 밑단에 camera IT, Selector Unit, USB Out OT 등의 descriptor
등을 정의 하지 않았고, VideoStreaming I/F 밑단의 class-specific Headr.Format,Frame,Still Image 등의 descriptor등은 설정하지 않았습니다.
실제로, device단의 상태정보등의 host로 알려줄 일이 없고 Host에서 device의 camera등의 속성 정보를 알 필요가 없어 간단하게 설정하는 부분을 구현하였습니다. JPEG 이미지 전송만 필요해서요...
(Endpoint descriptor는 설정하였습니다.)
제가 이 부분이 좀 혼동이 갑니다. (처음 접하는 부분이라). "JPEG만 전송하려고 한다고 해도 UVC standard에서 요구하는 모든 구성요소(디스크립터)를 갖춰야 하는 걸까? " 입니다.
그렇다면, VideoControl I/F 는 제가 구현하는 target이 Host로 부터 명령같은 정보를 받을 일이 없습니다.
따라서, VideoStream I/F 구성요소만 모두 필요한가 입니다.
그럼...
UVC를 사용해서 JPEG 이미지를 Bulk 또는 Isochronous로 전송 가능합니다. 그리고 UVC를 사용하는 경우 PC에서 드라이버 설치 없이 카메라를 사용할 수 있습니다.