2012-06-29 3 views
0

처리중인 PNG 시퀀스 나 동영상을 내보내는 가장 빠른 방법을 찾으려고합니다. Kinect 데이터를 캡처 중입니다. 현재 각 드로 콜에서 다음을 사용하고 있습니다.처리 - kinect 데이터에서 동영상 또는 이미지 시퀀스 내보내기

이 작업은 너무 느립니다. 내가 할 수있는 건 빨리 할 수 ​​있을까?

나는 kinect 피드에 simple-openni를 사용하고 있습니다.

답변

1

.oni format에 저장하려고 시도 할 수 있으며 이미 녹음 및 재생 용으로 SimpleOpenNI Sample이 있습니다. 이것은 많은 메모리를 사용해야하지만, 여전히 saveFrame()보다 빠를 수도 있습니다.

.oni 형식을 사용하면 SimpleOpeni로 기록 된 노드를 쉽게 처리 할 수 ​​있습니다 (예 : 해골/손 추적 또는 다른 기능은 .oni 기록에서 테스트 할 수 있습니다). 이미지가 필요하면 extract/parse .oni 개의 파일로 변환해야합니다.

+0

결국 결국 나를위한 최고의 솔루션이되었습니다. – mheavers

1

한 프레임을 처리/인코딩하는 데 얼마나 걸리나요? (몇 시간 동안 받아 들일 수 있습니까?) 데이터를 버퍼링하여 고정 된 수의 작업자 스레드로 비동기 적으로 처리하도록 할 수 있습니다. 그렇지 않으면 설치된 코덱이 하드웨어 가속/최적화 된 CPU 기반 인코딩을 사용할 수 있기 때문에 비디오 캡처에 의존해야합니다.

편집 : 인코딩 대기 시간을 흡수하려면 인코딩 할 필요가있는 프레임을 덤프하는 Circular Buffer을 사용할 수 있습니다. 그런 다음 일련의 프레임을 병렬로 인코딩하는 Task을 실행하십시오. 완료되면 버퍼에 프레임이 있는지 살펴보고 처리하십시오.

+0

그냥 약간 (몇 ms 지연)입니다. – mheavers

+0

아, 그럼 간단히 (원형) 버퍼링을하고 이미지를 인코딩하는 다중 스레드가 있어야 당신을 놀라게 할 것입니다. – Ani

+0

순환 버퍼링/다중 스레드에 대한 링크/추가 정보가 있습니까? – mheavers

0

이것은 늦을 지 모르지만, png 대신 tif로 저장하면 성능이 훨씬 좋아집니다.

관련 문제