کاربرد معماری کامپیوتر بر روی پردازش تصاویر کارآمد

//کاربرد معماری کامپیوتر بر روی پردازش تصاویر کارآمد

کاربرد معماری کامپیوتر بر روی پردازش تصاویر کارآمد

 

چکیده

طراحی یک هسته سخت افزاری برای پردازش تصویر روی تصاویر با حجم بالا یک قدم اساسی در پیشبرد سیستم های بینایی ماشین می باشد.

این مقاله ۳ رویکرد گذشته، حال، آینده معماری را برای کاربرد های بالای پردازش تصویر مورد ارزیابی قرار می دهد. بعد از تجدید نظر تعدادی از طراحی های نمایش داده شده از معماری های مخصوص پردازش تصویر، در حال حاضر ۳ رویکرد با جزئیات زیر مطرح می شود: تکنولوژی ریزپردازنده های استاندارد، پردازنده های DSP، سخت افزارهای قابل برنامه ریزی متغیر (DYNAMIC) در نوعی از آرایه گیتی منطقی برنامه پذیر (FPGAs).

کلمات کلیدی: پردازش تصویر، معماری پردازنده، ریزپردازنده های استاندارد، پردازنده های DSP و FPGA ها.

 


۱- مقدمه

علت علاقه و رویکرد زیاد به پردازش تصاویر با حجم داده های زیاد و مبتنی بر پنجره، این واقعیت است که بسیاری از الگوریتم های پیچیده در پردازش تصویر از نتایج الگوریتم های سطح پایین در پردازش تصویر، به عنوان مبانی و داده های اولیه خود برای دستیابی به اهداف سطح بالاتر مورد نظرشان استفاده می کنند. اما سنگین بودن حجم محاسبات در بسیاری از عملیات بینایی ماشین به علاوه وجود افزونگی داده در تصاویر و طبیعت ترتیبی پروسسورهای متداول، راندمان سیستم های پردازش تصویر را پایین می آورند. با توجه به این موضوع که بسیاری از الگوریتم های سطح پایین در پردازش تصویر، دارای عملیاتی تکراری هستند و ذاتاً برای موازی سازی مناسب می باشند، می توان از موازی سازی سخت افزاری عملیات پردازش تصویر برای بهبود زمان محاسبتی سود جست.

به دلیل این که پردازش سخت افزارهای کامپیوتری سرعت زیادی ندارد، پردازش تصویر اغلب برای قدرت پردازش های کامپیوتر یک چیز سیر نشدنی است. کاربرد های پردازش تصویر اغلب به تجزیه تصویری که آنها را پشتیبانی می کند، الگوریتم هایی که آنها را پشتیبانی می کند و کیفیت تصاویری که آنها را تولید می کنند محدود می شود . دو دلیل که به پردازنده های پر قدرت نیاز است:

۱)تجزیه تصاویر به حجم عظیمی داده برای نمایش نیاز دارند.

کاربردهای با کیفیت بالا از جمله (ذخیره سازی و پردازش X-ray ها و شبیه سازی ماهواره ای) می توانند از میلیون ها پیکسل در یک عکس استفاده کنند. حتی عملیات پردازش تصویر های ساده از قبیل تشخیص لبه، صاف و هموار بودن آن و پردازش همسایه های اطراف هر پیکسل، به راحتی می توانند به بالاتر از ۱۰۰ مگابایت دستورالعمل نیاز داشته باشد.

۲)پردازش تصاویر ویدئویی

چنانچه قدرت پردازش افزایش پیدا کند، آنگاه توسعه کاربردها از تصاویری که بوسیله دوربین های ویدئو تولید می شوند را امکان پذیر می کند. کاربرد هایی از جمله صحنه نمایش. تلوزیون های دیجیتالی بلادرنگ به کل پردازنده در حال اجرا به دلیل اجرا در یک فاصله زمانی محدود نیاز دارند، برای انجام عملیات در این زمان، معمولا توافقی بر حسب موارد زیر صورت می گیرد: تعداد فریم های ممکن در هر ثانیه، و یا کیفیت تصاویر، و یا پیچیدگی، در الگوریتم هایی که می توانند انجام شوند.

البته کاربردهای پردازش تصویر برای سخت افزارهایی با عملکرد بالا، بدین گونه که توسعه گرها نشان داده اند، شگفت آور نیست. با اینکه پیشرفت های عظیمی در قدرت پردازش در سال های گذشته صورت گرفته است، ولی برای درخواست های گفته شده ما هرگز راضی کننده نیست: به زودی زود کاربردهای بالاتری به وجود می آیند و امکانات جدیدی محیا می شوند که قبل از این مطرح نبوده اند.

تلاش برای مواجه شدن با درخواست ها برای قدرت پردازش به دو منبع اصلی از پیشرفت تقسیم می شود:

۱) بدرفتاری در کارایی تکنولوژی ریزپردازنده های استاندارد سال به سال بهبود بخشیده می شود. فردی به نام Moore’s Law پدیده ایی در تکنولوژی سخت افزاری های کامپیوتری را مطرح کرد که طبق آن، هر از ۱۸ ماه قدرت پردازش دوبرابر می شود. توسعه دهنده ها سالانه می توانند سیستم هایی با عملکرد بهتر را نیز ارائه دهند.

۲) نوآوری معماری پیگیری بر روی تغییرات مجموعه ایی از دستورات پردازنده ها که پردازش های دوستانه تصویر انجام می دهند، تولید مجموعه ایی از IC های اختصاصی برای مشکلات خاص پردازش تصویر می باشد.

در این نوشتار تعدادی از راه هایی که در آن نوآوری معماری در تلاش برای یافتن تقاضای محاسباتی پردازش تصویر با عملکرد بالا هستند را مورد بررسی قرار می دهیم.

دامنه معماری های وابسته و تکنولوژی های آنها رویکردی هست که ما به صورت زیر لحاظ می کنیم:

  • تکنولوژی ریزپردازنده های استاندارد
  • پردازنده های DSP
  • سخت افزارهای قابل برنامه ریزی مجدد داینامیک

 

۲- تاریخچه ای از معماری های پردازش تصویر

اگرچه سیستم های محاسباتی همه منظوره اغلب برای سیستم های پردازش تصویر استفاده می شوند، در سال های گذشته سیستم های زیادی و مخصوصاً پردازش تصویر وجود داشته است که توسعه پیدا کرده اند. مقداری از آنها در زیر نمایش داده شده است، نمایش های خوبی از پیشرفتهای اخیر را می توانید ببینید در [۱-۳].

 

۲٫۱٫ معماری اتصال مش

در حقیقت تصاویر دو بعدی، آرایه ایی از پیکسل ها هستند که هر پیکسل در فضاهای مجاور با یکدیگر ارتباط دارند. سیستم های چند پردازندگی هم روندی این چنینی دارند، یعنی می توان به جای هر پیکسل یک پردازنده قرار داد و یک سیستم چند پردازنده ایی را به وجود آورد. وابستگی و اتصال این پردازنده ها از روش های متعددی امکان پذیر است. پردازش تصویر قادر است که از این سیستم چند پردازندگی بهره جسته و بعد از اتصال پردازنده ها از طریق یکی از روش ها، آن روش را برای خود تعمیم دهد تا قادر باشد که پردازش تصویر را انجام دهد.(شکل ۱)

ماشین های موفق با این معماری شامل مجموعه ای از ماشین های CLIPS می شوند.[۴] اگرچه، این نوع از ماشین ها برای الگوریتم های که معماری درستی را مطابقت می دهند، بسیار مناسب می باشند، اما به همان نسبت کارایی پایین تری نسبت به پردازنده های معمولی هنگامی که مشکلات انحرافی از پردازش نزدیک ترین همسایه به وجود می آید را دارا می باشند.

شکل۱٫ ارتباط هشت تایی معماری مش

 

این حالت بارها در پردازش تصاویر سطح پایین در حال حرکت رخ می دهد، در عملیات سطح بالا در پردازش تصاویر سلسله مراتبی، پردازش های مبتنی بر پیکسل رخ می دهد.

 

۲٫۲٫ معماری های چند لایه ای

پردازش تصویر یک فعالیت تک لایه ای نیست. داده های سطح پایین تصاویر، برای نمایش سطح بالایی از محتوای تصویر پردازش می شوند، اگر چه حجم واقعی داده ها کاسته می شود ولی علم محتوایی تصاویر افزایش می یابد. هرمی شبیه به کاهش سریع حجم داده تعدادی از طراحان را بر آن داشت که تلاش کنند تا داده های هرمی را بوسیله پردازش هرمی انعکاس دهند.[۲] ، که در شکل ۲ نمایش داده شده است.

اگرچه این رویکرد معماری باعث شد که الگوهایی از پردازش در دیدگاه کاربرد های کامپیوتری به وجود بیاید، ولی در عمل استفاده چندانی از آنها نشد. در آغاز، داده ها در سطوح میانی نگهداری می شدند، اما ممکن بود لبه ها و مناطقی از تصویر که به صورت ناهموار توزیع شده بود را شامل نمی شدند. مدل هرمی یک راهنمایی مفهومی بسیار مفید برای ساختار عام از دیدگاه کاربردهای کامپیوتر می باشد، اما زمانی که یک ساختار سطح بالا اجرا می شد، فشار زیادی به این معماری وارد می شد. و این سختی دستورات باعث انحدام آن شد.

شکل۲٫ معماری هرم چندلایه

 

۲٫۳٫ سخت افزاری با اهداف خاص

کاربرد تصاویر کامل(سطح بالا) که الگوریتم هایی بر روی آنها به صورت قطعی استفاده می شدند، توسعه الگوریتم های خاص ICs که پردازش تنگناهای کلیدی را با صرف هزینه تسریع می کند را ممکن می ساخت(شکل ۳). این مفهوم در بعضی مواقع بوسیله پردازنده های چندگانه ایی که وظایف سختی را به صورت موازی انجام می دهند گسترش پیدا می کند. تمام عناصر پردازش به نوعی با یک گذرگاه سریع و مشترک ارتباط برقرار می کنند، که داده هایی را با یک سرعت بالا از انتقال بلوکی در اطراف تصویر و یا قطعات تصویر انتقال می دهد.

شکل ۳٫ معماری مبتنی بر گذرگاه مشترک با عملکرد خاص ICs

رویکرد طراحی ICs با عملکرد خاص هنوز برای کاربردهای خاص عمومی نشده است. معماری از این نوع معمولا عملکرد خوبی دارد (مگر اینکه گذرگاه سریع در تنگنا قرار گیرد)، اما آنها برای محدوده کوچکی از کاربردها مؤثر هستند. اگرچه VLSI و تکنولوژی اتصال بهتر شده است، ولی اهداف خاص ICs ها رو به انقراض می رود، و نسل های جدید IC ها سادگی فاکتورهای مهم محاسباتی را از طراح های مشابه نمی گیرند. برای این منظور آنها خوب هستند، اما هیچ سیستمی هرگز ثابت نیست: آنها باید بتوانند به صورت پیوسته نیازمندی ها و تکنولوژی ها را به روز کنند.

تلاش های مختلف برای شرح کاربردهای اختصاصی معماری های در حال پیشرفت و نیاز برای اهداف گوناگون مدل های کاربری که چه الگوریتمی اجازه آزمایش و تکامل سیستم را دارد از یک طرف ، و بدست آوردن عملکرد بالا بوسیله اهداف خاصی که نمی تواند فقط به صورت خاص کارامد باشد، از طرف دیگر، هر دو از مشکلات خاص این معماری می باشند.

اکثریت رویکردهای معماری بالا امروزه مرسوخ شده اند. پیشرفت های جدید، هم در تکنولوژی و هم در مشکلات اقتصادی، باعث شدند که مسیر های مختلفی را دنبال کنیم. امروزه یادآوری از همچین مطالبی ما را به تمایلات گذشته در معماری برای عملکرد بالای پردازش تصویر می رساند.

 

  1. پیشرفت در تکنولوژی ریزپردازنده ها

در میان همه تحقیقاتی که بر روی معماری های خاص صورت گرفته بود، آنها نباید بهبود استقامت در تکنولوژی میکروپروسسورهای استاندارد را بعد از گذشت سال ها که باعث دو برابر سازی کارایی هر از ۱۸ ماه می شد را فراموش کرده باشند. بعد از عجله در طراحی معماری با اهداف خاص، تمرین برای نیازهای واقعی را بدیهی می ساخت. امروزه سیستم های مدرن مبتنی بر Pentium در یک زمان طولانی انجام می گیرد.

یک شاخه جالب، که برای بالا بردن عملکرد پردازنده هایی با سازگار پنتیوم مسئول می باشند، مجموعه دستورات استاندارد گسترش پیدا کرده با هدف خاص می باشند که کاربردهای خاصی در دستورالعمل ها دارا می باشند. نتایج آنها در محدوده ایی از پردازنده های MMX قرار می گیرد. اگر چه عقب ماندگی ها با محیط سازگار ضروری هست که نگهداری شود، دستورالعمل ها با اهداف خاص می توانند یک مرحله از وظایفی که مجموعه ای از دستورالعمل های عادی نیازمند چندین دستوالعمل هایی برای اجرا هستند را انجام دهند. این یک معماری توسعه یافته افزایشی است که زمانی که مدل های برنامه نویسی مشابه نگهداری می شوند عملکرد بهینه ای از خود نشان می دهد.

مطمئنا، آنها اغلب یک سئوال بسیار عمیق و سرزنش کننده از خود می پرسند و آن این است که نرخ عملکرد خوب هرگز نمی تواند تا ابد ادامه پیدا کند و دیر یا زود این حرکت(موفقیت) باید محدود شود. تا هنگامی که این استدلالات معقول به نظر می رسد، باید بدرفتاری ابداعات جدید هر جور که هست به صورت پیوسته میزان پیشرفت را پوشش دهد. مثلاً تعدادی از ریزپردازنده های استاندارد صنعت در زمان عملیات نوشتن سرعتی در حدود ۴۰۰ مگاهرتز بر ساعت دارند. در زمانی مشابه، اقلاً ۲ تا از اصلی ترین کارخانه های تولید کننده چیپست (chip) توانایی خود را در ساخت مس به جای آلومنیوم در فرآیند ساخت چیپست ها اعلام کردند، که برای انجام عملیات سرعتی معادل ۸۰۰ مگاهرتز به همراه کاهش مشکل گرما را دارا بود.

 

  1. پردازنده های DSP

به طور عادی، بیشتر پردازش های سیگنال بر روی عملیات سیگنال های یک بعدی کار می کند، از قبیل گفتاری یا شنیداری. برای بدست آوردن عملکرد بلادرنگ در این کاربردها، پردازنده ها با مجموعه ای از دستورات و معماری های خاص و مناسب، شروع به بدست آوردن پردازش سیگنال می کنند[۵]. نوعی ویژگی شامل دستورات مضرب صوتی، منطق کنترل خاص و دستوراتی برای حلقه های دیگر، خط لوله از واحد های معماری و دست یابی حافظه، و معماری هاروارد[۱]) با داده های مجزا و فضاهای حافظه برنامه) می باشد. بیشتر طراحی های اخیر از قبیل (مقادیری در محدوده Texas از پردازنده های DSP) ویژگی های صریحی برای پردازش تصاویر دو بعدی، به خصوص برای متراکم سازی تصاویر به جا مانده دارند.

برای بهره برداری از ویژگی های خاص معماری، برنامه ریزی با دقتی نیاز است، این پردازنده ها می توانند با سرعت خیلی بالایی کار کنند، و این کار مقداری هزینه دارد. مدل های برنامه نویسی در سطح ماشین بسیار پیچیده تر از ریزپردازنده های عادی است. کامپایلرهای سطح بالایی نیاز است که زبان سطح بالا را به زبان سطح پایین تبدیل کند، اما برای بعضی از کامپایلرها این کار بسیار دشوار است. به عنوان مثال، پردازنده AT&T DSP32c که ویژگی های بالا را دارا می باشد، کامپایل کدهای پاسکالی که در ۱٫۱ زمان اجرا می شوند را بسیار کندتر از برنامه ای که با زبان اسمبلی نوشته شده باشد قادر به انجام است.

هنگامی که پردازنده های DSP برای اولین بار نمایش داده شدند، آنها فقدان زیادی در کنترل ویژگی های عادی میکروپروسسورهای استاندارد داشتند. اگرچه، توسعه هردفعه نرم افزارها باعث پذیرش جاذبه های مهم در تولیدات پیشرفته تجاری شد، اما پردازنده های DSP رفته رفته بیشتر شبیه به ریزپردازنده های استاندارد شدند. دومین تمایلی که دیده می شد این بود که، ریزپردازنده ها یکسان سازی مقداری از ویژگی طراحی پردازنده های DSP را از قبیل(خط لوله، MMX، حرکت به سوی کاربردهای خاص دستورالعمل ها) را آغاز کرده بود.

چیزی که ما امروزه می بینیم همگرایی تدریجی ریزپردازنده ها و تکنولوژی DSP می باشد. همچنین ما می توانیم اخیراً تقلیل سایز مهره ها، آزاد سازی فضای چیپست ها با مزایای جدید، پردازنده های همه منظوره با سخت افزاری که وظایف عمومی از قبیل تصویر و رمز گذاری ویدئو را سرعت می بخشد را انتظار داشته باشیم. وجود پیشرفت های مداوم در تکنولوژی VLSI(از قبیل استفاده از مس)، ما را بر آن داشت که منتظر ریزپردازنده با اغلب توانمندی ها وعملکرد مناسب برای چندین سال آینده باشیم. آنها رقابت های ارزان و مختلفی با اهداف خاص معماری را تشکیل دادند. بطور کلی نگهداری مدل های برنامه نویسی استاندارد بزرگترین مزیت این رویکرد بود، بنابراین مشکلات نرم افزاری با صرف زمان و هزینه بهبود بخشیده شد.

 

  1. سخت افزارهای قابل برنامه ریزی متغیر

پردازش سیگنال دیجیتال (DSP) شامل فشرده سازی، نا فشرده سازی، مدولاسیون، تصحیح خطا، فیلتر کردن و دیگر دست کاری های صدا(صحبت، موسیقی و …)، ویدئو، تصویر و داده هایی از این دست برای کاربردهایی نظیر مخابرات، رادار و پردازش تصویر (شامل تصاویر پزشکی) است. در بسیاری از موارد، داده هایی که باید پردازش گردد به صورت یک سیگنال در دنیای واقعی(آنالوگ) است. این سیگنال آنالوگ به طور متناوب نمونه برداری می گردد و هر نمونه توسط مبدل آنالوگ به دیجیتال به معادل دیجیتال آن تبدیل می گردد.

در یک طرف PLDها قرار دارند که قطعاتی هستند که ساختار درونی آنها توسط سازنده تعیین می گردد ولی به نحوی ساخته می شوند که مهندس طراح بتواند آنها را برای کاربرد مورد نظر خود برنامه ریزی نماید و در مقایسه با FPGAها، تعداد گیت های منطقی این قطعات نسبتا محدودتر بوده و برای کاربردهای ساده و کوچک تر قابل استفاده اند. در طرف دیگر ASIC و ASSPها قرار دارند که دارای چند صد میلیون گیت منطقی بوده و برای ایجاد توابع بسیار پیچیده و بزرگ استفاده می شوند.

FPGA ها ما بین PLD ها و ASIC ها قرار دارند به این مفهوم که مشابه PLDها می تواند عملکرد آنها را برای کاربرد مورد نظر برنامه ریزی نموده ولی دارای میلیون ها گیت منطقی هستند و می توانند برای پیاده سازی توابعی پیچیده و بسیار بزرگ که پیش از این تنها با استفاده از ASICها قابل پیاده سازی بودند استفاده گردند.

در دوره ۱۹۹۰ مصرف اصلی FPGAها در عرصه های مخابراتی و شبکه بود که هر دو مورد مستلزم پردازش بلوک های بزرگ داده و انتقال آنها بودند. امروزه FPGAهایی با کارایی بالا که شامل میلیون ها گیت می باشند به بازار عرضه شده است. از ویژگی های برخی از این قطعات می توان به هسته ریزپردازنده ی تعبیه شده و رابط های ورودی خروجی سرعت بالا، کاربردهای پردازش سیگنال دیجیتال و بسیاری کاربردهای دیگر تا عناصر سیستم در تراشه که شامل اجزای نرم افزار و سخت افزار است را اشاره نمود.

 

  1. نتیجه گیری

با بررسی مواردی نظیر پردازنده های DSP و سخت افزارهای قابل برنامه ریزی مجدد و معماری مش و … بر روی پردازش تصویر می توان به این نتیجه رسید که عملکرد چند پردازنده ایی و معماری سیستم های کامپیوتری چه تاثیر شگرفی بر مسائل پردازش تصویر دارد. و با پیشرفت روز افزون تکنولوژی این پردازنده ها می توان امیدوار بود که روند پردازش تصاویر روز به روز آسان تر شود.

مراجع

[۱] A.N. Choudray, J.H. Patel, Parallel architectures and parallel algorithms for integrated vision systems, Kluwer Academic Publishers, Dordrecht, 1990.

[۲] M.J.B. Du€ (Ed.), Computing Structures for Image Processing, Academic Press, New York, 1983.

[۳] P.J. Morrow, Software development tools for parallel image processing on Transputers, Ph.D. Thesis, Department of Computer Science, The Queens University of Belfast, 1993.

[۴] M.J.B. Du€, CLIP4: A large scale integrated circuit array parallel processor, IEEE International Joint Conference on Pattern Recognition, 1976, pp. 728±۷۳۳٫

[۵] A. Aliphas, J.D. Feldman, The versatility of digital signal processing chips, IEEE Spectrum 24 (6) (1987) 40±۴۵٫

[۱] Harvard

۱۳۹۴-۸-۲۰ ۲۰:۴۴:۱۷ +۰۳:۳۰آبان ۲۰ام, ۱۳۹۴|Categories: عمومی|Tags: , |بدون ديدگاه

ثبت ديدگاه

پرداخت

1-پرداخت آنلاین
برای پرداخت آنلاین از لینک زیر استفاده کنید
پرداخت آنلاین
2- پرداخت آفلاین
برای پرداخت آفلاین مبلغ مورد نظر را به یکی از شماره کارت
6037997245888723بانک ملی