بسمه تعالی سیستمهای چندرسانهای ()40-342 تمرین :4پردازش ویدئو دانشکده ی مهندسی کامپیوتر دانشگاه شریف مهدی امیری بهار 59 مقدمه در این تمرین ابتدا مبانی ویدئو را فرا می گیرید .سپس در ادامه نحوهی پردازش و فشردهسازی ویدئو را خواهید آموخت.در انتها باید گزارش از نحوهی انجام تمرین به فرمت ،pdfنمودارها و شکل های خروجی و خود mفایلها را به عنوان جواب تمرین ارسال کنید. تمامی فایل های الزم باید به صورت فشرده ،که نام آن به صورت MM_HW4_LastName_StudentIDاست ،ارسال شوند .فایل فشرده ی حاصل باید به آدرس ایمیل mms2016a@gmail.comارسال شود .عنوان ایمیل باید مشابه عنوان فایل فشرده ی تمرین باشد .آخرین مهلت ارسال تمرین ساعت 95:95تاریخ 5559/29/92میباشد. 1 .1آشنایی با دستورات متلب الف ):دستورات رایج متلب برای کار با ویدئو در جدول زیر آمده است .ابتدا با جستوجو ،با نحوهی کار این دستورات آشنا شوید ،سپس با استفاده از این اطالعات جدول زیر را تکلمیل کنید. کارکرد نام دستور مثال aviread mmreader avifile frame2im im2frame addframe movie2avi ب ):با استفاده از دستوراتی که در باال نام برده شد ،اطالعات جدول زیر را از ویدئوی شمارهی یک استخراج کنید .دقت کنید کدهای این قسمت نیز باید تحویل داده شود. ویژگی مقدار به همراه واحد و نحوهی به دست آوردن آن تعداد فریمهای ویدئو نرخ فریمها نوع فشردهسازی تعداد بیت در هر پیکسل فرمت ویدئو (در این مورد تحقیق کنید و به طور خالصه توضیح دهید). طول و عرض .2فشردهسازی و پردازش ویدئو 9،5ویدئوی شماره ی 1را در متلب بخوانید و برای سواالت زیر کد مربوطه را نوشته و برای هر قسمت توضیحات الزم را بنویسید. الف ):فریم اول آن را با دستور imshowنمایش دهید .هر فریم دارای یك داده ساختاری است که دو فیلد را نگهداری میکند .در مورد آن تحقیق و ذکر کنید هر فیلد چیست و چه اطالعاتی دربر دارد .دستور imshowرا برای هر یك از فیلدها اجرا و نتیجه را بررسی نمایید .تصاویر را در فایل مستند خود قرار دهید. ب ):برای کاهش نویز و جزییات ویدیو میتوان Gaussian filterرا بر روی ویدیو اجرا نمود .در مورد این فیلتر به طور خالصه توضیح دهید .برنامهای بنویسید که این فیلتر را روی فریم های مضرب 5ویدئو اعمال کند .ویدئوی حاصل را در فایل جدیدی ذخیره کنید. ج ):برنامه ای بنو یسید که روی تمام فریمهای ویدئو فیلتر medianرا اعمال کند .ویدئوی حاصل را در فایل جدیدی ذخیره کنید د ):یکی از روشهای فشردهسازی ویدئو ،حذف فریمهایی از آن است ،طوری که تماشاگر متوجه این اتفاق نشود. ویدئوی مورد نظر را با این روش فشردهسازی کنید .باید فریمهایی از ویدئو حذف شوند که اختالف آنها با فریم قبلی و بعدی خود کم باشد .به نوع فریمها توجه ( )P,I,Bکنید .توضیحات را در گزارش تمرین ذکر کنید. ه ):راه دیگر برای فشردهسازی ویدئو ،تغییر دادن سایز فریمها است .برنامهای بنویسید که ابعاد فریمها را نصف کند و حاصل را در فایل جدیدی ذخیره کند. و ):ویدئوی شماره ی دو ،نسخهی فشرده ی ویدئوی یک است .برنامه ای بنویسید که PSNRبرای ویدئوی دو را به دست آورد .روال کار را در گزارش توضیح دهید( .برای این کار ،باید از luminanceاستفاده کنید .بنابراین باید برای محاسبهی ،PSNRدر ابتدا یک تغییر در فضای رنگ ایجاد کنید). 9،9دو تصویر 5و 4در ضمیمه متعلق به دو فریم در یک ویدئو هستند .می خواهیم در این قسمت بردارهای حرکت دو فریم و تخمین فریم ها با استفاده از آنها را به دست آوریم. الف ):دو فریم را در متلب بخوانید و فضای رنگ را به grayscaleتبدیل کنید .علت نیاز به این تغییر چیست؟ ب ):اختالف دو تصویر را حساب کرده و با استفاده از imshowنشان دهید. ج):برای پیدا کردن بردار های حرکت ،بالک های فریم دوم را در سطح فریم اول جستجو کنید .از جستجوی کامل استفاده کنید .بالکها را 52×52در نظر بگیرید .حاال اختالف فریم ها را با استفاده از motion compensationمحاسبه کنید و با استفاده از imshowنشان دهید. د):در مورد روش جستجوی divide and conquerدر کالس درس توضیح داده شده است .در این قسمت، به جای جستجوی کامل ،از این جست وجو استفاده کنید و بردارهای حرکت را به دست آورید .در انتهای این قسمت نیز اختالف فریم به دست آمده از motion compensationو فریم اصلی را با استفاده از imshow نشان دهید. 5،9تشخیص عوض شدن صحنه 5در ویدئو نقش بسیار مهمی دارد .در این بخش ،به دنبال پیاده سازی یک تشخیص دهندهی تعویض صحنه هستیم که انواع مختلف تعویض صحنه را تشخیص دهد .تعویض صحنه از انواع مختلفی می تواند باشد. :Cutیک تغییر ناگهانی در صحنه است .برای درک این موضوع با استفاده از Cut.mpg ،mpgread.mرا بخوانید .مشاهده خواهید کرد که تغییر صحنه به صورت کامال ناگهانی و بدون هیچ فریم واسطی انجام خواهد شد. :Dissolveیک ترکیب خطی وابسته به زمان برای دو صحنه است .برای درک این موضوع با استفاده از Dissolve.mpg ،mpgread.mرا بخوانید. :Wipeیک صحنه ی قدیمی با یک الگوی خاص به صحنه ی بعدی می رود .برای درک بهتر ،Wipeبا استفاده از Wipe.mpg ،mpgread.mرا بخوانید. برای هریک از این سه نوع ،یک تابع متلب بنو یسید که تعویض صحنه را تشخیص دهد و فریمی که تغییر صحنه در آن رخ داده است را مشخص کند. تشخیص دهنده را بر فایل های Dissolve.mpg ،Wipe.mpgو Cut.mpgاعمال کنید و اندیس فریمهایی که تغییر صحنه در آنها رخ می دهد را مشخص کنید .اگر تعویض صحنه چند فریم طول کشید( ،مثال در حالت wipeممکن است ده فریم طول بکشد) شما باید بازه ای که تغییر صحنه در آن رخ می دهد را مشخص کنید. در فایل ،cbswipe.mpgانواع مختلفی از تغییر صحنه رخ می دهد .توابع خود را برروی این ویدئو اعمال کنید و خروجی را گزارش کنید. Scene cut 1
© Copyright 2025 Paperzz