|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
| Thread Tools | Rate Thread | Display Modes |
|
#1
|
|||
|
|||
|
Some Camera Benchmarks
I did some very rough (output formatting, no average) benchmarking of the camera today.
The results: Code:
camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 32 mjpeg stream unaccounted time: 32 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_send acquisition of image: 0 sending of image: 116 send image process: 117 send image unaccounted time: 1 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 32 mjpeg stream unaccounted time: 32 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 36 mjpeg stream unaccounted time: 36 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 26 mjpeg stream unaccounted time: 26 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 30 mjpeg stream unaccounted time: 30 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 32 mjpeg stream unaccounted time: 32 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 30 mjpeg stream unaccounted time: 30 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 1 mjpeg stream process: 32 mjpeg stream unaccounted time: 33 camera_benchmark_send acquisition of image: 0 sending of image: 292 send image process: 292 send image unaccounted time: 0 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_send acquisition of image: 0 sending of image: 121 send image process: 122 send image unaccounted time: 1 camera_benchmark_send acquisition of image: 0 sending of image: 0 send image process: 0 send image unaccounted time: 0 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_send acquisition of image: 0 sending of image: 0 send image process: 0 send image unaccounted time: 0 camera_benchmark_send acquisition of image: 0 sending of image: 0 send image process: 0 send image unaccounted time: 0 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 1 mjpeg stream process: 32 mjpeg stream unaccounted time: 33 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 32 mjpeg stream unaccounted time: 32 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 1 mjpeg stream process: 31 mjpeg stream unaccounted time: 32 camera_benchmark_send acquisition of image: 0 sending of image: 219 send image process: 219 send image unaccounted time: 0 camera_benchmark_send acquisition of image: 0 sending of image: 0 send image process: 0 send image unaccounted time: 0 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 32 mjpeg stream unaccounted time: 32 camera_benchmark_send acquisition of image: 0 sending of image: 0 send image process: 0 send image unaccounted time: 0 camera_benchmark_send acquisition of image: 0 sending of image: 0 send image process: 0 send image unaccounted time: 0 camera_benchmark_send acquisition of image: 0 sending of image: 0 send image process: 0 send image unaccounted time: 0 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_send acquisition of image: 0 sending of image: 0 send image process: 0 send image unaccounted time: 0 camera_benchmark_send acquisition of image: 0 sending of image: 0 send image process: 0 send image unaccounted time: 0 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 32 mjpeg stream unaccounted time: 32 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 32 mjpeg stream unaccounted time: 32 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 30 mjpeg stream unaccounted time: 30 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 1 mjpeg stream process: 32 mjpeg stream unaccounted time: 33 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 32 mjpeg stream unaccounted time: 32 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_send acquisition of image: 0 sending of image: 432 send image process: 432 send image unaccounted time: 0 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_send acquisition of image: 0 sending of image: 0 send image process: 0 send image unaccounted time: 0 camera_benchmark_send acquisition of image: 0 sending of image: 0 send image process: 0 send image unaccounted time: 0 camera_benchmark_send acquisition of image: 0 sending of image: 0 send image process: 0 send image unaccounted time: 0 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 32 mjpeg stream unaccounted time: 32 camera_benchmark_send acquisition of image: 0 sending of image: 0 send image process: 0 send image unaccounted time: 0 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 30 mjpeg stream unaccounted time: 30 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 30 mjpeg stream unaccounted time: 30 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 33 mjpeg stream unaccounted time: 33 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 30 mjpeg stream unaccounted time: 30 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 32 mjpeg stream unaccounted time: 32 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 36 mjpeg stream unaccounted time: 36 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 26 mjpeg stream unaccounted time: 26 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 30 mjpeg stream unaccounted time: 30 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 30 mjpeg stream unaccounted time: 30 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 32 mjpeg stream unaccounted time: 32 camera_benchmark_send acquisition of image: 0 sending of image: 443 send image process: 443 send image unaccounted time: 0 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 32 mjpeg stream unaccounted time: 32 camera_benchmark_send acquisition of image: 0 sending of image: 0 send image process: 0 send image unaccounted time: 0 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 29 mjpeg stream unaccounted time: 29 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 32 mjpeg stream unaccounted time: 32 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_send acquisition of image: 0 sending of image: 105 send image process: 105 send image unaccounted time: 0 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_send acquisition of image: 0 sending of image: 0 send image process: 0 send image unaccounted time: 0 camera_benchmark_send acquisition of image: 0 sending of image: 0 send image process: 0 send image unaccounted time: 0 camera_benchmark_send acquisition of image: 0 sending of image: 0 send image process: 0 send image unaccounted time: 0 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 1 mjpeg stream process: 32 mjpeg stream unaccounted time: 33 camera_benchmark_send acquisition of image: 0 sending of image: 0 send image process: 0 send image unaccounted time: 0 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 32 mjpeg stream unaccounted time: 32 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 30 mjpeg stream unaccounted time: 30 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 32 mjpeg stream unaccounted time: 32 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 30 mjpeg stream unaccounted time: 30 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 38 mjpeg stream unaccounted time: 38 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 24 mjpeg stream unaccounted time: 24 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 30 mjpeg stream unaccounted time: 30 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 32 mjpeg stream unaccounted time: 32 camera_benchmark_send acquisition of image: 0 sending of image: 447 send image process: 447 send image unaccounted time: 0 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 33 mjpeg stream unaccounted time: 33 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 29 mjpeg stream unaccounted time: 29 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 1 mjpeg stream store image: 0 mjpeg stream process: 32 mjpeg stream unaccounted time: 33 camera_benchmark_send acquisition of image: 0 sending of image: 120 send image process: 120 send image unaccounted time: 0 camera_benchmark_send acquisition of image: 0 sending of image: 0 send image process: 0 send image unaccounted time: 0 camera_benchmark_send acquisition of image: 0 sending of image: 0 send image process: 0 send image unaccounted time: 0 camera_benchmark_send acquisition of image: 0 sending of image: 0 send image process: 0 send image unaccounted time: 0 camera_benchmark_recv mjpeg stream recv image: 36 mjpeg stream store image: 0 mjpeg stream process: 68 mjpeg stream unaccounted time: 104 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 2 mjpeg stream unaccounted time: 2 camera_benchmark_send acquisition of image: 0 sending of image: 0 send image process: 0 send image unaccounted time: 0 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 23 mjpeg stream unaccounted time: 23 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 32 mjpeg stream unaccounted time: 32 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 34 mjpeg stream unaccounted time: 34 camera_benchmark_send acquisition of image: 0 sending of image: 9 send image process: 9 send image unaccounted time: 0 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 28 mjpeg stream unaccounted time: 28 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 30 mjpeg stream unaccounted time: 30 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 33 mjpeg stream unaccounted time: 33 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 30 mjpeg stream unaccounted time: 30 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 32 mjpeg stream unaccounted time: 32 camera_benchmark_recv mjpeg stream recv image: 1 mjpeg stream store image: 0 mjpeg stream process: 30 mjpeg stream unaccounted time: 31 camera_benchmark_send acquisition of image: 0 sending of image: 223 send image process: 223 send image unaccounted time: 0 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 30 mjpeg stream unaccounted time: 30 camera_benchmark_send acquisition of image: 0 sending of image: 0 send image process: 0 send image unaccounted time: 0 camera_benchmark_send acquisition of image: 0 sending of image: 0 send image process: 0 send image unaccounted time: 0 camera_benchmark_send acquisition of image: 0 sending of image: 0 send image process: 0 send image unaccounted time: 0 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 32 mjpeg stream unaccounted time: 32 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream process: 32 mjpeg stream unaccounted time: 32 camera_benchmark_send acquisition of image: 0 sending of image: 198 send image process: 198 send image unaccounted time: 0 camera_benchmark_send acquisition of image: 0 sending of image: 0 send image process: 0 send image unaccounted time: 0 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 38 mjpeg stream unaccounted time: 38 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 25 mjpeg stream unaccounted time: 25 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 1 mjpeg stream store image: 0 mjpeg stream process: 32 mjpeg stream unaccounted time: 33 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 32 mjpeg stream unaccounted time: 32 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_send acquisition of image: 0 sending of image: 416 send image process: 416 send image unaccounted time: 0 camera_benchmark_send acquisition of image: 0 sending of image: 0 send image process: 0 send image unaccounted time: 0 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 33 mjpeg stream unaccounted time: 33 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 30 mjpeg stream unaccounted time: 30 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 1 mjpeg stream process: 33 mjpeg stream unaccounted time: 34 camera_benchmark_recv mjpeg stream recv image: 1 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 32 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 32 mjpeg stream unaccounted time: 32 camera_benchmark_send acquisition of image: 0 sending of image: 213 send image process: 213 send image unaccounted time: 0 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_send acquisition of image: 1 sending of image: 0 send image process: 1 send image unaccounted time: 0 camera_benchmark_send acquisition of image: 0 sending of image: 0 send image process: 0 send image unaccounted time: 0 camera_benchmark_send acquisition of image: 0 sending of image: 0 send image process: 0 send image unaccounted time: 0 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_send acquisition of image: 0 sending of image: 0 send image process: 0 send image unaccounted time: 0 camera_benchmark_recv mjpeg stream recv image: 1 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 32 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 32 mjpeg stream unaccounted time: 32 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 1 mjpeg stream process: 32 mjpeg stream unaccounted time: 33 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 30 mjpeg stream unaccounted time: 30 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 32 mjpeg stream unaccounted time: 32 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 32 mjpeg stream unaccounted time: 32 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_send acquisition of image: 0 sending of image: 340 send image process: 340 send image unaccounted time: 0 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 30 mjpeg stream unaccounted time: 30 camera_benchmark_send acquisition of image: 0 sending of image: 2 send image process: 2 send image unaccounted time: 0 camera_benchmark_send acquisition of image: 0 sending of image: 0 send image process: 0 send image unaccounted time: 0 camera_benchmark_send acquisition of image: 0 sending of image: 0 send image process: 0 send image unaccounted time: 0 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 30 mjpeg stream unaccounted time: 30 camera_benchmark_send acquisition of image: 0 sending of image: 0 send image process: 0 send image unaccounted time: 0 camera_benchmark_send acquisition of image: 0 sending of image: 0 send image process: 0 send image unaccounted time: 0 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 1 mjpeg stream process: 33 mjpeg stream unaccounted time: 34 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 33 mjpeg stream unaccounted time: 33 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 28 mjpeg stream unaccounted time: 28 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 32 mjpeg stream unaccounted time: 32 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 1 mjpeg stream process: 31 mjpeg stream unaccounted time: 32 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 32 mjpeg stream unaccounted time: 32 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 30 mjpeg stream unaccounted time: 30 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 32 mjpeg stream unaccounted time: 32 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 1 mjpeg stream store image: 0 mjpeg stream process: 32 mjpeg stream unaccounted time: 33 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 30 mjpeg stream unaccounted time: 30 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 32 mjpeg stream unaccounted time: 32 camera_benchmark_send acquisition of image: 0 sending of image: 539 send image process: 539 send image unaccounted time: 0 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 37 mjpeg stream unaccounted time: 37 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 25 mjpeg stream unaccounted time: 25 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 cv image: 0 mjpeg stream store image: 0 mjpeg stream process: 32 mjpeg stream unaccounted time: 32 camera_benchmark_send acquisition of image: 0 sending of image: 121 send image process: 121 send image unaccounted time: 0 camera_benchmark_send acquisition of image: 0 sending of image: 0 send image process: 0 send image unaccounted time: 0 camera_benchmark_send acquisition of image: 0 sending of image: 0 send image process: 0 send image unaccounted time: 0 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 30 mjpeg stream unaccounted time: 30 camera_benchmark_send acquisition of image: 0 sending of image: 0 send image process: 0 send image unaccounted time: 0 camera_benchmark_send acquisition of image: 0 sending of image: 0 send image process: 0 send image unaccounted time: 0 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_send acquisition of image: 0 sending of image: 57 send image process: 57 send image unaccounted time: 0 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 1 mjpeg stream process: 32 mjpeg stream unaccounted time: 33 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 1 mjpeg stream process: 32 mjpeg stream unaccounted time: 33 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 32 mjpeg stream unaccounted time: 32 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 30 mjpeg stream unaccounted time: 30 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 32 mjpeg stream unaccounted time: 32 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_send acquisition of image: 0 sending of image: 359 send image process: 359 send image unaccounted time: 0 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 30 mjpeg stream unaccounted time: 30 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 32 mjpeg stream unaccounted time: 32 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 30 mjpeg stream unaccounted time: 30 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 32 mjpeg stream unaccounted time: 32 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 32 mjpeg stream unaccounted time: 32 camera_benchmark_send acquisition of image: 0 sending of image: 225 send image process: 226 send image unaccounted time: 1 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_send acquisition of image: 0 sending of image: 0 send image process: 0 send image unaccounted time: 0 camera_benchmark_send acquisition of image: 0 sending of image: 0 send image process: 0 send image unaccounted time: 0 camera_benchmark_send acquisition of image: 0 sending of image: 0 send image process: 0 send image unaccounted time: 0 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 38 mjpeg stream unaccounted time: 38 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 25 mjpeg stream unaccounted time: 25 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 32 mjpeg stream unaccounted time: 32 camera_benchmark_send acquisition of image: 0 sending of image: 198 send image process: 198 send image unaccounted time: 0 camera_benchmark_send acquisition of image: 0 sending of image: 0 send image process: 0 send image unaccounted time: 0 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv mjpeg stream recv image: 0 mjpeg stream store image: 0 mjpeg stream process: 31 mjpeg stream unaccounted time: 31 camera_benchmark_recv refers to "reading" the mjpeg stream and copying the image to a buffer. mjpeg stream recv image: AxisCamera2010.cpp line 105 Code:
while(bytesRead < readLength){
int bytesThisRecv= recv(cameraSocket, &imgBuffer[bytesRead], remaining, 0);
bytesRead += bytesThisRecv;
remaining -= bytesThisRecv;
}
Code:
getInstance().updateImage(imgBuffer, readLength);
// call to (directly below AxisCamera::mjpegStream)
void AxisCamera::updateImage(char * imgBuffer, int bufLength) {
semTake(m_protectedImageSem, -1);
{
if (NULL != m_protectedImageBuffer) {
delete[] m_protectedImageBuffer;
}
m_protectedImageBufferLength = bufLength;
m_protectedImageBuffer = new char[bufLength];
memcpy(m_protectedImageBuffer, imgBuffer, bufLength);
m_freshImage = true;
m_freshBlockingImage = true;
}
semGive(m_protectedImageSem);
}
camera_benchmark_send is the sending of the image to the PC via TCP PCVideoServer.cpp line 190 acquisition of image: Code:
success = AxisCameraGetJpegImageBlocking(&imageData, &numBytes);
// call to AxisCamera2010.cpp line 56 (ultimately)
int AxisCamera::GetJpegImageBlocking(char** imageData, int* numBytes) {
int success = 1;
while (1) {
semTake(m_protectedImageSem, -1);
{
if (!m_protectedImageBuffer)
success = 0;
char* newImageData = new char[m_protectedImageBufferLength];
if (newImageData == NULL)
success = 0;
if (success) {
memcpy(newImageData, m_protectedImageBuffer, m_protectedImageBufferLength);
*imageData = newImageData;
*numBytes = m_protectedImageBufferLength;
if (m_freshBlockingImage) {
semGive(m_protectedImageSem);
return 1;
}
m_freshBlockingImage = false;
}
delete newImageData;
}
semGive(m_protectedImageSem);
if (!success)
return 0;
}
}
Code:
int sent = write (newPCSock, imageData, numBytes); Just looking through the output the majority of the time is spent on sending the image. Last year our team had real-time video using a python dashboard using the user data provided in the dashboard packets. We roughly sent 1 image every 3 packets. That's ~16 FPS (50 packets per second guaranteed with the driver station last year). Compared to this year where we get about 5 FPS using the stock software. Are other teams also having trouble with the FPS? Tested using our own modified (for benchmarking) WPI lib where we just linked our existing code to the modified WPI lib. I used the following function to get time: Code:
#include <sysLib.h> #include <tickLib.h> return ((static_cast<double>(tickGet()) / static_cast<double>(sysClkRateGet()) * 1000.0) Last edited by TheDominis : 19-01-2010 at 16:17. Reason: Timing function |
|
#2
|
|||
|
|||
|
Re: Some Camera Benchmarks
The profiling numbers you show look suspect. I'm not saying they are wrong, but I'm saying that it would be good to verify them before making code changes.
Not having access to the code, I can't really do this independently, but I can hopefully ask some useful questions. Are all of the timings you show above measured sequentially in the same task/thread? If they are in multiple tasks, it is easy for the OS to swap and double count an operation. In more detail, the OS commonly swaps for I/O tasks where a buffer or service may be busy. So if you measure time A, start I/O A, then the OS swaps and you measure initial time B, start I/O B, and at some point measure final time B, then the OS swaps back to measure final time A. This overlap of I/O and overlap of the A and B time intervals is very misleading as the A time includes the B time. Especially when measuring times via deltas, this can lead you to draw incorrect conclusions. From your description, last year your images were less than 3K in size. That sounds like a pretty compressed 160x120. The sample code this year defaults to a medium sized image with low compression. This was to avoid heavy JPEG artifacts that blur the edges of the circles, and small images with big pixels also blur. You may want to look at the buffer size being written, or at the buffer size being received at the dashboard. You can also set the camera differently if you aren't intending to do cRIO processing for the target and see how the timings are affected by the image size. Finally, you may want to look at overall cRIO processor usage. For a standard unix system, ps or tops or a similar tool will give an indication of overall CPU usage that is pretty trustworthy. For vxWorks, I believe that typing i at the terminal will give you a report with some CPU usage. I don't have one in front of me, so that may not be the command, or there may be a better one. Anyway, this can serve as a second indicator. Finally, you may want to instrument the dashboard to see how many images you are receiving -- something like an fps number. This will give feedback not on cRIO load, but on frames being transmitted. Another parameter which may be different in the sample code than in what you used last year is the actual camera FPS setting. The LV sample code set it to 15 assuming that was fast enough for tracking. If you are processing on the cRIO, you may want to turn it up, especially if you use the small image size. Greg McKaskle |
|
#3
|
|||
|
|||
|
Re: Some Camera Benchmarks
Quote:
I care very little for your second paragraph. Don't all the things you described fit into the operations of receiving and sending of images? I think that an average would have been more accurate on sending, but I think for a rough benchmark it accurately shows the cost of sending an image. The images last year were compressed to about ~1.6K +/-.4K (depending on complexity of the image) at 160x120. Then resized to a larger image. We've navigated rooms and such just using the video code last year. |
|
#4
|
|||
|
|||
|
Re: Some Camera Benchmarks
Quote:
Greg McKaskle |
|
#5
|
|||
|
|||
|
Re: Some Camera Benchmarks
Quote:
Quote:
Wouldn't all of these things be bottlenecks for the camera operation anyway? |
|
#6
|
||||
|
||||
|
Re: Some Camera Benchmarks
Just to give some comparison benchmarks, I did some testing In LabVIEW. With compression set to 5, here are the loop rates I got:
640x480 image: loop rate = 8 per second avg 320x240 image: loop rate = 10 per second avg 160x120 image: loop rate = 13 per second avg This might at least give you an idea of what you should be able to shoot for. A couple of other observations. With compression set to 0, loop rates suffered (expected). Increasing the compression above 5, didn't seem to improve loop rates, but it did affect the ability to find the target. |
|
#7
|
|||
|
|||
|
Re: Some Camera Benchmarks
Quote:
|
|
#8
|
|||
|
|||
|
Re: Some Camera Benchmarks
LabVIEW does use TCP, and writes the image as header followed by size by data.
Greg McKaskle |
|
#9
|
|||
|
|||
|
Re: Some Camera Benchmarks
Interesting. Most people still cannot get the FPS described in Doug's post.
|
|
#10
|
|||
|
|||
|
Re: Some Camera Benchmarks
So we tried basically everything that has been said and none of it worked, until we tried click on the developer window (basically we put the driver in the background) and found that there was virtually no lag... so we think that there is a band width cap on the driver so that in the competition 6 robots can be run at the same time... therefore there is basically no solution to problem, however the camera can still be use locally
|
|
#11
|
|||
|
|||
|
Re: Some Camera Benchmarks
Really? You get more than 10 FPS?
|
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| <G14> - ya win some, ya lose some | GaryVoshol | Rules/Strategy | 62 | 24-03-2009 16:22 |
| Some Questions | ggberg | Rules/Strategy | 8 | 09-01-2008 16:51 |
| Tell the difference: 2007 CMU Camera, 2006, 2005 camera? | Chris_Elston | Programming | 2 | 07-01-2008 13:11 |
| Camera Help (New to Camera Programming) | Idaman323 | Programming | 6 | 14-01-2006 03:56 |