カメラ(MJPEG)からネットワーク経由で一連のJPEGを受信しています。UIViewで受け取った画像を表示します。私が見ているのは、私のアプリがCPUの50%(デバイスとシミュレーターをテスト済み)をUIViewアップデートのように見えるものに費やしていることです。
この画面更新を行うためのCPU負荷の少ない方法はありますか?UIViewに渡す前に何らかの方法でJPEGを処理する必要がありますか?受信方法:
UIImage *image = [UIImage imageWithData:data];
dispatch_async(dispatch_get_main_queue(),^{
[cameraView updateVideoImage:image];
});
更新方法:
- (void) updateVideoImage:(UIImage*)image {
myUIView.image = image;
...
更新:より良いスクリーンキャプチャを追加しました
update2:OpenGLは、JPEG用にレンダリングするためのより高速なサーフェスを提供しますか?インストゥルメントからは、時間が費やされている場所、レンダリングされている場所、またはデコードされている場所がわかりません。提案されたテストケースをまとめて、そこから作業します。