2013-06-14 1 views
1

Kinect 장치에서 생성 된 streamRGB (640x480 속도 : 30fps)를 입력하는 C# 응용 프로그램을 개발했습니다. 각 프레임을받은 후 디스크에 file.wmv로 저장합니다. 문제는 스트림 속도가 30fps이고 조작이 약 200ms 지속되므로 (따라서 5fps 만 확보 할 수 있음) 저장하기 전에 각 프레임을 조작하려고하면 시작됩니다.실시간 프레임 조작 발행

저는 이것이 일반적인 문제임을 알고 있습니다. 그것을 해결하기 위해 가장 많이 사용되는 솔루션은 무엇입니까?

답변

1

이 문제는 실시간으로 처리해야하지만 실시간으로 처리하기에는 너무 느린 경우에 발생하는 일반적인 문제입니다. 가장 중요한 '솔루션'은 실시간 작업의 성능을 향상 시켜서 충분히 빠르지 만 종종 불가능합니다.

더 현실적인 옵션은 다른 스레드에서 처리 할 대기열을 설정하는 것입니다. 이것은 소비자/생산자 디자인 패턴에 대한 완벽한 예입니다. 프레임을 제작하고 가능한 한 빨리 처리하도록 소비 할 수 있습니다. 메모리의 부하를 줄이려면 프레임을 파일 디스크에 쓰고 소비 할 때 읽을 수 있습니다.

비트 맵 뒤의 코드 인 GDI +는 단일 스레드이며 이미지 조작과 관련된 모든 것을 단일 스레드로 고정시킵니다. 이는 여러 프로세스 (각 코어마다 하나씩)를 사용하여 마이그레이션하여 시스템 성능을 최적화 할 수 있습니다.

+0

고맙습니다. @Roel – GVillani82

관련 문제