배경C 프로그램에서 Java로 이미지를 이동하고 화면에 표시하는 가장 효율적인 방법은 무엇입니까?
video4linux 2 사양을 사용하여 비디오를 캡처하고 있습니다. 그것은 실시간으로 C 프로그램을 사용하여 캡쳐됩니다. 로컬 및 원격 모두에서 실행할 수있는 Java 프론트 엔드도 있습니다. 원격 측은 쉽습니다. JPEG로 이미지를 압축 한 다음 미니 http 서버를 통해 압축을 풀어 화면에 표시하는 클라이언트에 이미지를 전달합니다.
로컬에서 실행할 때 IPC가 메모리에 직접 연결하여 Java에서 이미지에 액세스하고 싶습니다. 그런 다음 가능한 한 적은 CPU 성능을 사용하여 화면에 표시합니다. 이것은 "감시"유형 시스템이므로 한 번에 8-16 개의 카메라 피드를 실행할 수 있습니다. 질문
화면에 표시 내 자바 응용 프로그램에 V4L2의 mmap를 버퍼에서 이미지 데이터 (YUV420P)를 이동하는 가장 효율적인 방법은 무엇입니까
? 사용할 수있는 경우 코드를 표시하거나 api/specs를 알려주십시오. 시간의 관심에서
대답은, 그냥 일반 소켓을 사용하여 RGB의 데이터를 전송하기로 결정했다. Java 클라이언트가 동일한 시스템에서 실행될 때 성능을 크게 향상시킬 수있었습니다. 클라이언트가 원격으로 실행중인 경우 여전히 네트워크를 통해 JPEG를 보냅니다. 다음으로 최적화 된 JPEG 디코더를 찾아야합니다.
그건 그렇고, 이것은 2 클라이언트가 아닙니다. 단지 CameraStream 위젯이 두 유형을 읽고 구문 분석합니다.