मूल रूप से, कोई माइक्रोकंट्रोलर, यहां तक कि रास्पबेरी पाई भी पर्याप्त तेज नहीं है। रास्पबेरी पाई में एक ऑनबोर्ड जीपीयू है जो एचडीएमआई आउटपुट उत्पन्न करता है। और इसके अलावा, रास्पबेरी पाई की I / O क्षमता अविश्वसनीय रूप से सीमित है - एचडीएमआई से अलग उच्चतम बैंडविड्थ इंटरफ़ेस यूएसबी है। एचडीएमआई रूपांतरण परियोजनाओं में से कई में एक अन्य वीडियो स्ट्रीम को एक अजीब प्रारूप में शामिल किया गया है और इसे फिर से काम करना है जो कि एचडीएमआई पर एक मानक एचडीटीवी में भेजा जा सकता है। इसके लिए वीडियो सिग्नल में पढ़ने के लिए कुछ कस्टम इंटरफेसिंग तर्क की आवश्यकता होती है, इसे सुधारने के लिए लॉजिक प्रॉसेसिंग लॉजिक, एचडीएमआई टीएमडीएस एन्कोडिंग लॉजिक, और फिर उच्च गति के धारावाहिकों को वास्तव में एचडीएमआई पोर्ट को चलाने के लिए।
स्ट्रीमिंग, असम्पीडित, हाई डेफिनिशन वीडियो के साथ काम करने के लिए बड़ी मात्रा में डेटा प्रोसेसिंग की आवश्यकता होती है, जो कि सामान्य उद्देश्य सीपीयू पर संभव नहीं है। 30 फ्रेम प्रति सेकंड पर 1080p वीडियो सिग्नल में लगभग 62 मिलियन पिक्सल प्रति सेकंड है। रास्पबेरी पाई 700 मेगाहर्ट्ज पर चलती है, इसलिए आपके पास ओह, पिक्सेल प्रति 11 निर्देश हैं। और यह वास्तविक समय में ऑडबॉल वीडियो प्रारूप में पढ़ने के लिए 11 निर्देश हैं, इसे पुनर्विक्रय करें, आदि, आदि संभव नहीं है। अवधि।
एक FPGA पर, एक लंबी प्रसंस्करण पाइपलाइन उत्पन्न करना संभव है जो प्रति घड़ी चक्र में एक या एक से अधिक पिक्सल की प्रक्रिया कर सकता है और ऐसा उच्च नियतात्मक तरीके से करता है (कोई व्यवधान या कार्य स्विचिंग नहीं!) ताकि पिक्सेल डेटा HDMI पर संचरण के लिए तैयार हो। बिल्कुल सही समय पर। यदि आपने किसी भी प्रकार के ऑपरेटिंग सिस्टम को चलाने वाले सामान्य प्रयोजन के सीपीयू के साथ बड़े पैमाने पर काम किया है, तो आपको पता चल जाएगा कि मिलिसकॉन्ड लेवल पर सटीक टाइमिंग कम या ज्यादा संभव है, लेकिन माइक्रोसेकंड लेवल पर यह बहुत असंभव है। एचडीएमआई के लिए, आपको नैनोसेकंड स्केल सटीक की आवश्यकता है। एक सामान्य उद्देश्य सीपीयू पर उल्लेखनीय नहीं है। इसके अलावा, नियो जियो के लिए एचडीएमआई ऑडियो / वीडियो प्रोजेक्ट पर एक नज़र डालें। इस वीडियो को न केवल वीडियो को फिर से देखना है, बल्कि ऑडियो को फिर से खोलना और इसे एचडीएमआई वीडियो स्ट्रीम में डालना है।
और यह अभी भी जो भी इनपुट डेटा प्रारूप आपके पास है में पढ़ने के लिए आवश्यक कस्टम तर्क पर विचार नहीं कर रहा है। आपको इसकी व्याख्या करने के लिए कस्टम हार्डवेयर की आवश्यकता होगी। सॉफ्टवेयर तेजी से पर्याप्त या नियतात्मक नहीं है। आप इसे किसी प्रकार के USB आधारित स्ट्रीम में सुधार करने, कहने, करने में सक्षम हो सकते हैं, लेकिन इसके लिए वैसे भी कस्टम डिजिटल लॉजिक की आवश्यकता होगी, इसलिए आप सीधे ही HDMI आउटपुट कर सकते हैं।
यह सब लागू करने के लिए, डिजिटल तर्क वास्तव में एकमात्र संभव समाधान है। और अगर आप डिजिटल लॉजिक कर रहे हैं, तो FPGAs एकमात्र संभव समाधान है, क्योंकि यह असतत 7400 लॉजिक के लिए बहुत तेज़ और बहुत जटिल है और ASICs, ठीक है, परिमाण के कई ऑर्डर अधिक महंगे हैं।
एक अन्य आवश्यक घटक केबल के नीचे भेजे जाने वाले समानांतर धारावाहिक डेटा धाराओं को उत्पन्न करने के लिए वास्तविक उच्च गति धारावाहिक और अंतर चालक हैं। सामान्य उद्देश्य सीपीयू से प्रति सेकंड एक गीगाबिट के क्रम पर सीरियल डेटा को बिट-बैंग करना संभव नहीं है, इसके लिए विशेष हार्डवेयर की आवश्यकता होती है। रास्पबेरी पाई में एक ऑनबोर्ड जीपीयू है जो ऐसा करता है, लेकिन यह इस बात तक सीमित है कि जीपीयू क्या सक्षम है, दस्तावेज क्या है इसका उल्लेख नहीं करना। अधिकांश FPGAs में कम से कम आवश्यक अंतर ड्राइवर और DDR फ्लिप फ्लॉप होते हैं जो कम-रिज़ॉल्यूशन वीडियो का समर्थन करने के लिए पर्याप्त होते हैं और कुछ FPGAs होते हैं जिनमें पूर्ण धारा प्रवाह उत्पन्न करने के लिए आवश्यक धारावाहिक (यानी Xilinx OSERDES ब्लॉक) होते हैं। मत भूलो कि धारावाहिक 'बेसबैंड' नहीं है एक सामान्य सीरियल पोर्ट की तरह जहां वास्तविक डेटा को कुछ फ़्रेमिंग सूचनाओं के साथ शब्दशः भेजा जाता है, लेकिन डेटा को वास्तव में कुछ विद्युत विशेषताओं को देने के लिए TMDS (संक्रमण-न्यूनतम अंतर सिग्नलिंग) के साथ एन्कोड किया गया है। वास्तविक उच्च गति धारावाहिकों के अतिरिक्त इसे लागू करने के लिए थोड़ा तर्क आवश्यक है। यह सब शुद्ध डिजिटल लॉजिक में अच्छी तरह से करना आसान है (वैसे भी, एन्कोडिंग - सीरीज़र्स यकीनन एनालॉग हैं, या कम से कम मिश्रित संकेत) या तो एक ASIC या FPGA पर।
यह वास्तव में समग्र डिजिटल / एम्बेडेड सिस्टम डिज़ाइन प्रक्रिया का एक बहुत ही महत्वपूर्ण हिस्सा है, यह पता लगाने के लिए कि सिस्टम के किन हिस्सों को सॉफ़्टवेयर में लागू किया जा सकता है और किन लोगों को हार्डवेयर की आवश्यकता होती है, या तो ऑफ-द-शेल्फ विशेष चिप्स, FPGAs, कस्टम के रूप में ASICs, हार्ड या सॉफ्ट IP (HDL, netlists, GDSII), आदि। इस मामले में यह स्पष्ट है- वीडियो सिग्नल जेनरेशन के लिए विशेष हार्डवेयर की आवश्यकता होती है, यह एक सामान्य उद्देश्य CPU, FPGA के साथ इंटीग्रल हार्ड या मुलायम सीपीयू कोर या बाहरी सीपीयू के साथ जोड़ा जाता है, या कुछ और विशेष।
संपादित करें: मुझे बस एहसास हुआ कि fpga4fun साइट और नव भू वीडियो परियोजना दोनों पूर्ण HD के बजाय 640x480 पर चलते हैं। हालांकि, यह वास्तव में यह नहीं करता है जबकि ऑपरेशन बहुत सरल है। 250 पिक्सेल की एक बिट घड़ी के साथ, न्यूनतम पिक्सेल घड़ी 25 मेगाहर्ट्ज है। इसका मतलब यह है कि एफपीजीए को वास्तव में एचडीएमआई प्रसारित करने के लिए धारावाहिकों की आवश्यकता नहीं होती है, केवल डीडीआर फ्लिप फ्लॉप। यह अभी भी वीडियो डेटा पर पढ़ने के मुद्दे को कम नहीं करता है, हालांकि। यदि आप ऐसा करना चाहते हैं तो बिना किसी हार्डवेयर सहायता के रास्पबेरी पाई पर, आपको GPIO से लगातार 25 मेगाहर्ट्ज पर पढ़ना होगा। जो हर 175 निर्देशों को पढ़ा जाता है। संभावना के दायरे में प्रवेश करना, लेकिन जिस तरह से आप उस काम को करेंगे वह केवल हाथ से कोडित असेंबली के साथ नंगे धातु (कोई लिनक्स) पर नहीं है।