간단한 일대일 화상채팅을 만들었는데 이게 대부분의 시스템에서는 50%정도의
cpu사용율을 보이는데 일부 시스템에서는 cpu가 100% 혹은 8~90%대의 cpu사용율을
보입니다.
그중의 하나의 시스템을 살펴볼수 있는 기회가 생겨서 대충 살펴봤더니 화상 프레임을
bmp로 추출해서 jpg로 변환하는 과정과 이걸 메모리 스트림으로 만드는 과정에서
상당히 많은 cpu사용을 점유하는걸 발견했습니다.
간간히 몇몇 시스템에서 이런 결과가 발생하는거라 도무지 원인 파악하기가 어렵네요.
현재까지 어렴풋이 파악된점은 특정 웹카메라에서 이런 경우가 발생하는 확률이
높았고 그리고 XP의 경우에 확률이 높았습니다.
제가 화상을 뽑아내서 전송하는 방식은 우선 DirectShow를 사용해서 화상을 비트맵으로
얻어낸 다음 비트맵을 일정 압축된 jpg포맷으로 변경을 합니다.
그후 이 데이타를 스트림에 올리고 전송하는 방식입니다.
비슷한 경험이 있으신 분들의 조언을 부탁드립니다.
압축과정을 하고 있는상태에서 (압축이 안끝나고)
다시 압축 프로세서가 작동하고..
그렇게 되다 보면...
cpu점유률이 계속올라가다.. 결국은 렉이 걸리져..
압축이 끝나지 않으면.. 그 영상은 처리를 하지 않으시는게
좋지여....
간단하게.. Test하실려면..
application.processmessage를
써보세요..
필터를 만들어서...
압축한것을.. 바로 날리던가.
그렇게 해야 겠지여...
아니면.. VFW를 사용하여.
콜백을 걸어 압축된 데이터를 직접 날리시던지여
^^
그럼