2011-07-08 11 views
36

अब ऐप्पल ने आईओएस 5.0 पर कोर इमेज फ्रेमवर्क को पोर्ट किया है, मुझे आश्चर्य है: कोर छवि लाइव वीडियो और कैमरा वीडियो पर प्रभाव लागू करने के लिए पर्याप्त तेज़ है?आईओएस 5.0 में कोर छवि फ़िल्टर रीयलटाइम वीडियो प्रोसेसिंग के लिए पर्याप्त तेज़ हैं?

इसके अलावा, आईओएस 5.0 के लिए कोर छवि ढांचे को सीखने के लिए एक अच्छा प्रारंभिक बिंदु क्या होगा?

उत्तर

3

यह आईफोन 4 और आगे में लगभग वास्तविक समय होगा। आईफोन 3 जीएस थोड़ा चंचल होगा। आईफोन 3 और इससे पहले की सिफारिश नहीं की जाती है।

55

अब कोर छवि थोड़ी देर के लिए आईओएस पर बाहर आई है, हम कुछ कठिन प्रदर्शन संख्याओं के बारे में बात कर सकते हैं। मैंने अपने GPUImage ढांचे के परीक्षण के हिस्से के रूप में एक बेंचमार्क एप्लिकेशन बनाया, और लाइव वीडियो फ़ीड्स के साथ कच्चे सीपीयू-आधारित फ़िल्टर, कोर छवि फ़िल्टर, और GPUImage फ़िल्टर के प्रदर्शन को प्रोफाइल किया। ,

   iPhone 4 (iOS 5) | iPhone 4S (iOS 6) 
------------------------------------------------ 
CPU   458 ms (2.2 FPS)  183 ms (5.5 FPS) 
Core Image 106 ms (6.7 FPS)  8.2 ms (122 FPS) 
GPUImage  2.5 ms (400 FPS)  1.8 ms (555 FPS) 

मुख्य छवि के लिए: निम्नलिखित बार (मिलीसेकेंड में) प्रत्येक (दो अलग अलग ओएस संस्करण चला दो अलग हार्डवेयर मॉडल के लिए) iPhone के कैमरे से एक 640x480 वीडियो फ्रेम पर एक ही गामा फिल्टर लागू करने के लिए ले लिया थे यह आईफोन 4 पर एक साधारण गामा फ़िल्टर के लिए अधिकतम 9.4 एफपीएस में अनुवाद करता है, लेकिन आईफोन 4 एस पर इसके लिए 60 एफपीएस से अधिक है। यह आपके द्वारा स्थापित किए जा सकने वाले सबसे सरल कोर छवि फ़िल्टर केस के बारे में है, इसलिए प्रदर्शन अधिक जटिल संचालन के साथ निश्चित रूप से भिन्न होगा। ऐसा लगता है कि कोर इमेज आईफोन 4 पर आईफोन 4 की आईफोन 4 पर आईफोन की कैमरा दर से मेल खाने के लिए पर्याप्त तेज़ी से लाइव प्रसंस्करण नहीं कर सकता है, लेकिन आईओएस 6 के रूप में, यह आईफोन 4 एस और ऊपर लाइव फ़िल्टरिंग करने के लिए पर्याप्त तेज़ी से वीडियो को संसाधित करता है ।

इन बेंचमार्कों का स्रोत my GitHub repository में पाया जा सकता है), यदि आप देखना चाहते हैं कि मुझे इन नंबरों से कहां मिला है।

मैंने इस उत्तर को मेरे मूल से अपडेट किया है, जो कोर छवि के प्रदर्शन की बहुत आलोचनात्मक थी। सेपिया टोन फ़िल्टर जो मैं तुलना के आधार के रूप में उपयोग कर रहा था, वह मेरे जैसा ही ऑपरेशन नहीं कर रहा था, इसलिए यह एक खराब बेंचमार्क था। आईओएस 6 में कोर इमेज फिल्टर के प्रदर्शन में भी उल्लेखनीय सुधार हुआ, जिसने उन्हें आईफोन 4 एस और ऊपर लाइव वीडियो को संसाधित करने के लिए पर्याप्त तेज़ बनाने में मदद की। इसके अलावा, मैंने कई मामलों को पाया है, like large-radius blurs, जहां कोर छवि मेरे GPUImage ढांचे को काफी हद तक बेहतर बनाती है।

पिछला जवाब है, भावी पीढ़ी के लिए:

किसी भी प्रदर्शन से संबंधित सवाल के साथ के रूप में, इसका जवाब आपके फिल्टर की जटिलता पर निर्भर करेगा, छवि का आकार फ़िल्टर किए जा रहे है, और डिवाइस आप 'के प्रदर्शन विशेषताओं चल रहा है

क्योंकि कोर छवि मैक पर थोड़ी देर के लिए उपलब्ध है, इसलिए मैं आपको फ्रेमवर्क सीखने के लिए संसाधन के रूप में Core Image Programming Guide पर इंगित कर सकता हूं। मैं एनडीए को दिए गए आईओएस-विशिष्ट तत्वों पर टिप्पणी नहीं कर सकता, लेकिन मैं अत्यधिक WWDC 2011 सत्र 422 के लिए वीडियो देखने की सलाह देता हूं - आईओएस और मैक ओएस एक्स पर कोर छवि का उपयोग करना।

कोर छवि (ज्यादातर) GPU का उपयोग करती है छवि प्रसंस्करण के लिए, ताकि आप देख सकें कि ओपनजीएल ईएस 2.0 शेडर्स मौजूदा उपकरणों पर छवि प्रसंस्करण को कितनी तेजी से संभालते हैं। I did some work in this area recently, और पाया कि आईफ़ोन 4 480 x 320 पर रीयलटाइम वीडियो पर खिलाए जाने वाले रीयलटाइम वीडियो पर एक साधारण शेडर का उपयोग करके 60 एफपीएस प्रोसेसिंग कर सकता है। आप मेरा नमूना एप्लिकेशन डाउनलोड कर सकते हैं और शेडर और/या वीडियो इनपुट आकार को अनुकूलित करने का प्रयास कर सकते हैं यह निर्धारित करें कि आपका विशेष उपकरण इस प्रसंस्करण को एक सभ्य फ़्रेमेट पर संभाल सकता है या नहीं। कोर छवि थोड़ा ओवरहेड जोड़ सकती है, लेकिन इसमें कुछ चालाक अनुकूलन भी हैं जो फ़िल्टर श्रृंखलाओं को व्यवस्थित करता है।

आईफोन 3 जी एस और तीसरी पीढ़ी के आईपॉड टच के लिए सबसे धीमे संगत डिवाइस होंगे, लेकिन वे आईफोन 4 की तुलना में बहुत धीमी नहीं हैं। आईपैड 2 उन्हें अपने बड़े टुकड़े प्रसंस्करण शक्ति के साथ दूर कर देता है।

+0

उपरोक्त तुलना तालिका के लिए आपने किस प्रकार का सीआईसीएन्टेक्स्ट उपयोग किया था? एक सीपीयू या एक जीपीयू आधारित? बीटीडब्लू: मैंने आपके जीपीयू इमेज फ्रेमवर्क पर सिर्फ एक झलक देखी और यह आश्चर्यजनक लग रहा है! जी जे! –

+1

@ Błażej - GPU- आधारित, जहां तक ​​मैं कह सकता हूं। मुझे उन आंकड़ों को सत्यापित करना था, लेकिन ऐसा लगता है कि आईफोन 4 पर प्रोसेस करते समय कोर इमेज जीपीयू ओवरलोड कर रहा है। यह स्पष्ट रूप से दिखता है जैसे कोर छवि को नए ए 5-आधारित डिवाइसों पर लक्षित किया गया था, आईफोन 3 जी एस, आईफोन 4, या मूल आईपैड। –

+0

अरे ब्रैड, चूंकि कोर छवि और जीपीयू इमेज (नाम पर आधारित) दोनों GPU आधारित कंप्यूटिंग हैं, मट्ठा GPUImage बहुत तेज है? – tom

6

आईएमएचओ, कोर छवि हमेशा आईओएस 6.0 के बाद आपका पहला विकल्प है। कुछ अच्छी सुविधाओं आप जैसे r वाला की तरह, कर रहे हैं:

  1. मुख्य छवि इनपुट पैरामीटर समर्थन glTexture2d;
  2. कोर छवि आउटपुट पैराम्स glTexture2d का समर्थन करते हैं;
  3. आप विशेष रूप से जीपीयू के साथ सीआई का उपयोग करना चुन सकते हैं; एक सीआईसीएन्टेक्स्ट उदाहरण के लिए init। _CIglContext = [CIContext contextWithEAGLContext:_glContext options:opts];
  4. कई फ़िल्टर अब आईओएस प्लेटफार्म, 9 3 फिल्टर या इतने के लिए उपलब्ध हैं?
  5. आप बैकअप को विशेष रूप से सीपीयू के साथ संसाधित करना चुन सकते हैं जब आपका एप्लिकेशन पृष्ठभूमि में अस्थायी रूप से चल रहा है, हालांकि इसकी अनुशंसा नहीं की जाती है।

इन सभी का उल्लेख WWDC2012 सत्र वीडियो, कोर छवि भाग में किया गया है। एक नज़र डालें, शायद आपको वहां अपना समाधान मिल जाएगा।

संबंधित मुद्दे