কীভাবে একটি এফপিজিএ ভিত্তিক অ্যাম্বিলাইট ক্লোন তৈরি করবেন?


10

কিছু দ্রুত পটভূমি:
অ্যাম্বিলাইট হ'ল কিছু ফিলিপস টিভিগুলিতে এমন একটি সিস্টেম যা স্ক্রিনের বর্ণের তথ্য বিশ্লেষণ করে এবং তারপরে স্ক্রিনের রঙ দেয়ালের উপরে প্রজেক্টের জন্য কিছু এলইডি সেট করে। এটি একটি সুন্দর নিফটি প্রভাব। এই সিস্টেমের ক্লোনগুলি এখন সেখানে রয়েছে যা ভিডিও প্রসেস করতে এবং এলইডিগুলি নিয়ন্ত্রণ করতে একটি পিসি ব্যবহার করে। আমি এটি কিছুটা ওভারকিল বলে মনে করি - কিছু এলইডি নাচের জন্য একটি সম্পূর্ণ মেশিন ব্যবহার করে ...

আমি একটি এনক্রিপ্ট না করা প্রক্রিয়াজাত করতে বুন্নিটির নেটভিটি পরিবর্তন করতে চাইএইচডিএমআই ভিডিও ফিড এবং কিছু এলইডি ড্রাইভ করে। আমি জানি যে এনটিভি অন্যান্য উদ্দেশ্যে ডিজাইন করা হয়েছে তবে আমি মনে করি যে এটি আমার লক্ষ্য অর্জনের জন্য পরিবর্তন করা যেতে পারে। আমি অন্তর্নিহিত লিনাক্স সাবসিস্টেম, আই 2 সি স্পুফিং, ভিডিও ওভারলে ইত্যাদির জন্য যত্ন নিই না এই মুহুর্তে, আমি এইচডিসিপি এনক্রিপ্টড স্ট্রিমগুলির সাথে কাজ করার বিষয়ে উদ্বিগ্ন নই।

নেটিভি স্কিম্যাটিক্স

NeTV উত্স কোড

এফপিজিএ ব্লক ডায়াগ্রাম নেটভি ব্লক ডায়াগ্রাম
এটি একটি বানির উপস্থাপনা স্লাইডগুলির একটি ব্লক ডায়াগ্রাম। স্লাইড সেট বাকি এখানে

স্লাইড HSYNC, VSYNC, PIXCLK দেখায় CL
এই স্লাইডটি বোঝায় যে ভিডিও পিক্সেলগুলি বাস্তবে ডিকোড হয়েছে (অগত্যা ডিক্রিপ্ট করা হয়নি )

অবশেষে ... আমার কিছু চিন্তা ও প্রশ্ন:

  1. এটি কি আমার কাঙ্ক্ষিত হার্ডওয়ারে করা যায়? যদি "হ্যাঁ" হয় তবে চালিয়ে যান! যদি "না" হয় তবে আমাকে আরও কী প্রয়োজন বলুন!

  2. আমি কি কোনও বাহ্যিক স্মৃতি ছাড়াই ভিডিও তথ্য প্রক্রিয়া করতে সক্ষম হব? আমি যতদূর বলতে পারি এফপিজিএ সরাসরি অ্যাক্সেস করতে পারে এমন কোনও স্মৃতি নেই। এটি সম্ভবত ভিডিও ডেটা প্রক্রিয়া করার জন্য আমি যে অ্যালগরিদম ব্যবহার করি তার উপর নির্ভর করে - যতটা সম্ভব এফপিজিএ ব্লক র‌্যাম ব্যবহার করার জন্য, আমি অনুমান করছি যে আমি পুরো স্টোর না করে পিক্সেলগুলির মধ্যে কিছু ধরণের 'পুনরাবৃত্ত সামিং' ব্যবহার করতে চাই would ছবি ডেটা ফ্রেম এবং তারপরে রংগুলি গড় করা। এই অ্যালগরিদম বাস্তবায়নের ক্ষেত্রে কোনও ইঙ্গিত? এটি কীভাবে শুরু করবেন তা আমার সবচেয়ে বড় বাধা।

  3. ভিডিও ডেটা কোথায় আমাকে 'আলতো চাপতে হবে' সে সম্পর্কে সোর্স কোডটি তদন্ত করেছি।
    এটি উপযুক্ত স্পটটির মতো দেখায়:
    ডিভিআই ডিকোডারের ব্লক ডায়াগ্রাম
    আমি জানি, এই চিত্রটি দীর্ঘ - এটি পড়ার বিষয়টি পরিষ্কার করার সময় আমি সবচেয়ে ভাল করতে পেরেছিলাম। এর জন্য দোষ জিলিনেক্সের হাতিয়ার!
    এটি প্রতিটি রঙের জন্য টিএমডিএস ডেটা এবং আউটপুট 8-বিট নেবে বলে মনে হচ্ছে।

  4. এলইডি ড্রাইভারের জন্য আমার একধরনের স্টেট মেশিন থাকা উচিত - প্রতি ক্লক চক্র, ভিডিও ডেটা প্রক্রিয়া করার জন্য আমি যে মডিউলটি তৈরি করি তা থেকে পিক্সেল তথ্য পাওয়া যায়।

দুঃখিত যদি এটি শব্দযুক্ত বা দীর্ঘ হয় - আমি পুরোপুরিভাবে চেষ্টা করার চেষ্টা করছি ... এটি দিয়ে আমাকে কিছুটা সহায়তা দরকার need এটি কোনও এফপিজিএ প্রকল্পে আমার প্রথম প্রচেষ্টা - কেউ কেউ এটি শিক্ষানবিশদের পক্ষে খুব কঠিন বলতে পারে তবে আমি বলি ... কোথাও শুরু করতে হবে :) পড়ার জন্য ধন্যবাদ।


1
NeTV এইচডিএমআই স্ট্রিমটি ডিকোড করে না। এটি এইচডিসিপি আলোচনার প্রক্রিয়া অনুসরণ করে এবং নতুন প্রবাহটি মেলানোর জন্য এনক্রিপ্ট করে; আমি মনে করি না আপনি এটি থেকে ভিডিও তথ্য পেতে সক্ষম হবেন।
akohlsmith

আপনি কি দয়া করে প্রাসঙ্গিক স্কিমেটিক্স পোস্ট করতে পারেন (এর লিঙ্ক)? এছাড়াও, সম্পর্কিত এইচডিএল মডিউলগুলির ঘোষণা সহায়তা করবে।
drxzcl

1
@ অ্যান্ড্রুকোহলস্মিথ, তাই কি ওভারলেলিং টিভির শেষে করা হয়? বাহ, আমার এইচডিএমআই করতে পারে এমন কোনও ধারণা ছিল না!
drxzcl

1
আমি নিশ্চিত না যে আপনি কোনও বাহ্যিক মেমরি ফ্রেম বাফার ব্যবহার না করে আপনার প্রয়োজনীয় সমস্ত কিছু করতে সক্ষম হবেন কিনা তবে যাইহোক, আপনি কোন রঙ বিশ্লেষণটি ব্যবহার করার পরিকল্পনা করছেন? যদি এটি এফএফটি হয়, তবে এটি কিছুটা সময় নেবে এবং আমি নিশ্চিত নই যে অ্যাম্বিয়েন্ট লাইটটি ভিডিও রঙে খুব বেশি দেরী করবে না। আমি বলব প্রথমে এইচডিএমআই থেকে ডেটা পাওয়ার চেষ্টা করুন এবং আপনি এটি বিশ্লেষণ করতে পারেন কিনা তা পরীক্ষা করে দেখুন। যেমন একটি লো-পাস ফিল্টার করে এবং ফলাফল আউটপুট দেয়।
সক্রেটিস

1
আমি পড়া মনে এই ফিরে যখন NeTV এসেছেন। সেই পোস্ট অনুসারে, বুনি একটি জটিল ওভারলে স্কিম ব্যবহার করে যার উত্স এইচডিএমআই ডিক্রিপ্ট করার প্রয়োজন হয় না; তিনি যখন প্রয়োজন তখন এটি পুনরায় এনক্রিপ্ট করে। এনক্রিপ্ট করা স্ট্রিমগুলির কোনও ডিকোডিং নেই।
mng

উত্তর:


7

আমি আমার উত্তরটি dvi_decoder মডিউলটির কোড এবং ডকুমেন্টেশনে পুরোপুরি ভিত্তি করে করছি এবং ধরে নিচ্ছি যে এটি আসলে বিজ্ঞাপন হিসাবে কাজ করে। এই ফাইলটি একটি (পরিবর্তিত?) হবে বলে মনে হয় অ্যাপ্লিকেশন নোট আইপি কপি ভিডিও কানেক্টিভিটি TMDS ইনপুট / স্পার্টান-3A FPGAs মধ্যে O ব্যবহার এবং / অথবা বাস্তবায়নকারী স্পার্টান -6 FPGA একটি TMDS ভিডিও ইন্টারফেস । এই অ্যাপ্লিকেশন নোটগুলি গুরুত্বপূর্ণ বিবরণে পুরোপুরি পূর্ণ রয়েছে এবং আমি আপনাকে এগুলি মনোযোগ সহকারে পড়ার পরামর্শ দিচ্ছি।

আপনি যে প্রশ্নটিতে ইঙ্গিত করেছেন, আমি ধরে নেব আপনি এনক্রিপ্ট করা স্ট্রিমের চিকিত্সা করছেন, এটি হ'ল এইচডিপিপি স্ট্রিম। আমি মোটামুটি নিশ্চিত যে নেটটিভি প্রকল্পের তথ্য এইচডিসিপি ডিক্রিপ্ট করার জন্য রূপান্তর করা যেতে পারে তবে এতে একটি ক্ষুদ্র-তুচ্ছ পরিমাণের অতিরিক্ত কাজ জড়িত এবং আপনার এখতিয়ারের উপর নির্ভর করে প্রশ্নবিদ্ধ আইনী ভিত্তিতে থাকতে পারে।

দেখে মনে হচ্ছে আপনি dvi_decoder ব্লকের আউটপুটগুলি থেকে আপনার প্রয়োজনীয় ডেটা পেতে সক্ষম হবেন। ব্লক আউটপুট 24-বিট রঙ তারের ব্যবহার তথ্য red, greenএবং blue, পিক্সেল ঘড়ি সিঙ্ক pclk। ফলাফলগুলি hsyncএবং vsyncব্যবহারকারীকে যথাক্রমে একটি লাইন / স্ক্রিনের শেষে সতর্ক করে। সাধারণভাবে, আপনি এই আউটপুটগুলি ব্যবহার করে উড়ে যাওয়ার গড় করতে সক্ষম হবেন।

আপনি অনুবাদ করতে কিছু মৌলিক লজিক প্রয়োজন হবে hsync, vsyncএকটি (x, y) অবস্থান মধ্যে এবং পিক্সেল ঘড়ি। মাত্র দুটি কাউন্টার ইনস্ট্যান্ট করুন, একটির জন্য Xএবং একটির জন্য YXপ্রতিটি পিক্সেল ঘড়িতে বৃদ্ধি । Xশূন্য এ পুনরায় সেট করুন hsync। বাড়ায় Yযে এ hsyncYপ্রতিটি শূন্য পুনরায় সেট করুন vsync

ব্যবহার red, green, blue, Xএবং Y, আপনি মাছি গড় উপর কাজ করতে পারেন। সঙ্গে তুলনা করে Xএবং Y, আপনি নির্ধারণ করতে পারেন, বাক্সে কী কেউ যদি প্রতিটি পিক্সেল অবদান উচিত নয়। সংগ্রহের নিবন্ধে রঙের মানগুলি যোগ করুন। গড় মান পেতে, আপনাকে পিক্সেল সংখ্যা দ্বারা রেজিস্টারে মানটি ভাগ করতে হবে। আপনি যদি স্মার্ট হন তবে আপনি পিক্সেলের সংখ্যা দুটি হিসাবে পাওয়ার নিশ্চিত করবেন। তারপরে আপনি যা চালনা করতে চান তার জন্য কেবল নিবন্ধকের এমএসবিগুলি তারে রাখতে পারেন।

যেহেতু আমরা সঞ্চয়ের সময় প্রদর্শনগুলি চালনা করতে চাই, আমাদের ডাবল বাফারিং করতে হবে। সুতরাং আমাদের উপাদানগুলিতে প্রতিটি বাক্সে দুটি রেজিস্টার প্রয়োজন। আপনি যদি 25-নেতৃত্বাধীন স্ট্রিং ব্যবহার করেন তবে এর অর্থ আপনার 25 * 3 * 2 = 150 রেজিস্টার দরকার। এটি বেশ কিছুটা, সুতরাং আপনি নিবন্ধগুলির পরিবর্তে ব্লক র‌্যাম ব্যবহার করতে চাইতে পারেন। এটি সব আপনার সঠিক প্রয়োজনীয়তার উপর নির্ভর করে, পরীক্ষা!

আমি ধরে নিয়েছি আপনি আসল অ্যাডফ্রুট প্রকল্পের কিটের মতো একটি নেতৃত্বাধীন স্ট্রিং চালাবেন । আপনি সহজেই এসপিআই ব্যবহার করে নিবন্ধগুলিতে মানগুলি থেকে কীভাবে তা চালাবেন তা অনুধাবন করতে সক্ষম হওয়া উচিত।

Dvi_decoder মডিউলটি কিটের মোটামুটি জটিল টুকরো। আমি আপনাকে বিশদভাবে অ্যাপ নোটগুলি অধ্যয়ন করার পরামর্শ দিচ্ছি।

একদিকে যেমন, আপনি যদি এখনও এই প্রকল্পে ব্যবহারের জন্য কোনও নেটটিভি না কিনে থাকেন তবে আমি আপনাকে সুপারিশ করি ডিজিটাল্টের অ্যাটলিস বোর্ডটি একবার দেখুন । দুটি এইচডিএমআই ইনপুট এবং দুটি এইচডিএমআই আউটপুট সহ, এটি এই ধরণের প্রকল্পগুলির জন্য টেইলার হিসাবে প্রদর্শিত হবে।


এনপি, দুর্দান্ত প্রশ্নের জন্য ধন্যবাদ। আপনি যদি এই প্রকল্পের সাথে কোনও নির্দিষ্ট সমস্যা নিয়ে চলে যান তবে নির্দ্বিধায় পোস্ট করুন।
drxzcl

বিটিডব্লিউ, (এবং এটি প্রশ্নের ক্ষেত্রের বাইরে থাকা) আপনি তুলনামূলকভাবে মৌমাছি মাইক্রোকন্ট্রোলার সিস্টেম থেকে জিনিসটি চালনা বিবেচনা করেছেন? রাস্পবেরিপির মতো কিছু প্রায় 6 গুণ সস্তা এবং এটি একই সাথে ভিডিও চালাতে এবং ভিডিওটি প্রদর্শন করতে সক্ষম হওয়া উচিত।
drxzcl

এখনও আমার জেটিএল সরঞ্জামটি আসার অপেক্ষায় রয়েছে যাতে আমি চিপস্কোপের সাথে ডিবাগ করতে পারি ... এই উত্তরটি গ্রহণ করতে যাচ্ছি; এটি এই সমস্যাটি সমাধানের জন্য একটি মৌলিক পদ্ধতির কথা উল্লেখ করে। @ ডিআরজএক্সসিএল আমি ইতিমধ্যে আমার কাছে নেটভি পেয়েছি। রাস্পপিআই একটি আকর্ষণীয় পরামর্শ, তবে ভিডিও উত্স হিসাবে এইচডিএমআই ব্যবহার করা অসম্ভব।
dext0rb

আপনি কি কখনও এই কাজ পেয়েছেন? আমি একটি লিখিত আপ / ভিডিও দেখতে চাই!
drxzcl

না সত্যিই না. : | আমি একটি অর্ধ-অ্যাসিডযুক্ত এলইডি ড্রাইভার তৈরি করেছি , তবে এটির আরও বেশি করে to োকার মতো সময় পাইনি। আশা করি শীঘ্রই.
dext0rb
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.