دانلود رایگان ترجمه مقاله کدنویسی ویدیو در پردازنده های گرافیکی (آی تریپل ای ۲۰۱۰)

 

 

این مقاله انگلیسی ISI در نشریه آی تریپل ای در ۱۰ صفحه در سال ۲۰۱۰ منتشر شده و ترجمه آن ۲۹ صفحه بوده و آماده دانلود رایگان می باشد.

 

دانلود رایگان مقاله انگلیسی (pdf) و ترجمه فارسی (pdf + word)
عنوان فارسی مقاله:

کدگذاری ویدئو در پردازنده های گرافیکی چند هسته ای

عنوان انگلیسی مقاله:

Video Coding On Multi-Core Graphics Processors

دانلود رایگان مقاله انگلیسی: مقاله انگلیسی
دانلود رایگان ترجمه با فرمت pdf: ترجمه pdf
دانلود رایگان ترجمه با فرمت ورد: ترجمه ورد

 

مشخصات مقاله انگلیسی و ترجمه فارسی
فرمت مقاله انگلیسی pdf
سال انتشار ۲۰۱۰
تعداد صفحات مقاله انگلیسی ۱۰ صفحه با فرمت pdf
نوع مقاله ISI
نوع نگارش
مقاله مروری (Review Article)
نوع ارائه مقاله ژورنال/کنفرانس
رشته های مرتبط با این مقاله مهندسی کامپیوتر – مهندسی فناوری اطلاعات
گرایش های مرتبط با این مقاله معماری سیستم های کامپیوتری – هوش مصنوعی – مهندسی الگوریتم ها و محاسبات – سیستم های چندرسانه ای – مهندسی سخت افزار – علوم داده
چاپ شده در مجله (ژورنال)/کنفرانس مجله پردازش سیگنال (IEEE) 
کلمات کلیدی کدگذاری ویدئو – پردازش چند هسته ای – گرافیک – رمزگشایی – واحد پردازش مرکزی – رمزگذاری – پردازش موازی – تخمین حرکت – تحریف نرخ – طراحی و تحلیل الگوریتم
کلمات کلیدی انگلیسی Video coding – Multicore processing – Graphics – Decoding – Central Processing Unit – Encoding – Parallel processing – Motion estimation – Rate-distortion – Algorithm design and analysis
ارائه شده از دانشگاه دانشگاه علم و صنعت هنگ کنگ، هنگ کنگ
نمایه (index) Scopus – Master Journals – JCR
شناسه شاپا یا ISSN ۱۵۵۸-۰۷۹۲
شناسه دیجیتال – doi https://doi.org/10.1109/MSP.2009.935416
رفرنس دارای رفرنس در داخل متن و انتهای مقاله
نشریه آی تریپل ای – IEEE
تعداد صفحات ترجمه تایپ شده با فرمت ورد با قابلیت ویرایش  ۲۹ صفحه با فونت ۱۴ B Nazanin
فرمت ترجمه مقاله pdf و ورد تایپ شده با قابلیت ویرایش
وضعیت ترجمه انجام شده و آماده دانلود رایگان
کیفیت ترجمه

مبتدی (مناسب برای درک مفهوم کلی مطلب)

کد محصول

F1953

 

بخشی از ترجمه

بنابراین سیگنال پیش بینی باقی مانده از پیش بینی داخلی یا پیش بینی میانی، متحمل تبدیل می شود تا ارتباط زدایی داده ها صورت گیرد. در H.264، یک تبدیل عدد صحیح ۴*۴ قابل جدا شدن استفاده می شود، که شبیه به DCT 4*4 است اما از عدم تطابق بین تبدیل مستقیم و معکوس اجتناب می کند. سپس، ضرایب تبدیل اسکالر کوانتیزه خواهد شد و به صورت زیگزاگ اسکن می شود. از Context Adaptive Variable Length Coding (CAVLC برای کدگذاری آنتروپی ضرایب تبدیل اسکن شده استفاده نمود. CAVLCیک نقشه کدگذاری تطبیقی است، و می تواند بین جداول کد واژه مختلف در طول کدگذاری بسته به ارزش عناصر کد تغییر کند. متناوباً، ضرایب تبدیل می توانند توسطContext-Adaptive Binary Arithmetic Coding (CABAC) کدگذاری شوند. برای کاهش مسدود شدن مصنوعات، یک فیلتر تطبیقی انسدادزدایی درون حلقه برای بازسازی از حلقه بازخورد استفاده می شود.

.Bواحد های پردازنده گرافیکی (GPUs)
در اصل GPUها به عنوان سخت افزار تخصصی برای گرافیک های ۳D طراحی شده است که به تازگی برای سرعت بخشیدن به برنامه های کاربردی فشرده ریاضی در رایانه های شخصی و کنسول های بازی به عنوان واحد پردازش همزمان پدید آمده است. یک ویژگی کلیدی GPUهای مدرن اینست که آنها قابلیت محاسبات موازی انبوه را از طریق صدها هسته پردازش عمدتاً جدا انجام می دهند. به عنوان مثال، پردازندهNVIDIA GeForce 8800 GTS شامل ۹۶ پردازنده جریان است که هر یک در ۱٫۲ گیگاهرتز عمل می کنند.
فلسفه طراحی GPUها از هدف کلی CPU متفاوت است. در این سال ها، GPUها با هدف پشتیبانی از تعداد بیشماری از محاسبات و مقدار زیاد تبدیل داده های که برای بازی های پیشرفته لازم است طراحی شده اند. بعلاوه، آنها نیاز به پاسخگویی به احتیاجات دقیق هزینه برنامه های کاربردی مصرف کننده دارند. بنابراین، GPUها بسیار برای محاسبات ریاضی مقرون به صرفه شده اند. علاوه بر این، قابلیت محاسبه اوج GPUها در سرعت بیش تر از پردازنده های همه منظوره در حال افزایش است.

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

.Cکدگذاری ویدئو به کمک CPU: چالش ها
به دنبال بحث قبل، روشن است که فقط انواع خاصی از محاسبات برای اجرای GPU مناسب می باشند. به طور خاص، مهار کامل قدرت محاسباتی در GPU، با استفاده از تعداد گسترده ای از هسته های پردازش به شکل موازی نیاز به طراحی الگوریتم دارد. به عنوان مثال، یک برنامه خوب ممکن است هزاران موضوع را به طور همزمان بر روی یک high-end GPU اجرا کند تا تمام هسته های پردازش کار را به طور مداوم نگه دارد. بنابراین، یکی از چالش های اصلی در استفاده از GPU برای کدگذاری های ویدئویی این است که چگونه به ساختار یک ماژول خاص برای نشان دادن داده های موازي ممکن برسیم. توجه کنيد که اين نمي تواند براي برخي از ماژول هاي کدگذاري ويدئو ناچيز باشد، زيرا وابستگي مي توانند بين واحدهاي مختلف داده ها در محاسبه وجود داشته باشد، همانطورکه توسط کار قبلي نشان داده شده است [۲۲]، [۲۴],[۲۵],[۲۷]. علاوه براين، دستورالعمل هاي کنترل جريان (if switch, do, for, while) مي توانند به طور چشمگيري، عملکرد اجراي GPU را تنزل دهند، زيرا چنين دستورالعمل هايي مي توانند سبب شوند تا شيارهاي مختلف از مسيرهاي اجراي مختلف پيروي نمايند و اين اجرا بايد سريال شود [۳۹]. بنابراين، استفاده از GPUها براي کدگذاري آنتروپي مانند CAVLC مي تواند چالش برانگيز باشد. علاوه براين، يک پياده سازي بايد براي اجتناب از دسترسي به داده ها خارج از تراشه تا حد ممکن آزمايش شود که مي تواند متحمل نهفتگي قابل توجهي شود (به خاطر داشته باشيد که GPU براي نهفتگي دسترسي حافظه بهينه سازي نمي شود). به طور مثال، برخي GPUها ممکن است نياز به ۴۰۰ تا ۶۰۰ چرخه نهفتگي براي دسترسي به حافظه خارج از تراشه داشته باشد (در حاليکه آنها مي توانند نقطه شناور تک دقت چندافزودني را در يک چرخه در هر هسته اضافه نمايند). [۳۹]. توجه داشته باشيد که امکان پنهان نمودن چنين نهفتگي دسترسي حافظه وجود دارد، اگر محاسبات رياضي مستقل کافي وجود داشته باشد. بنابراين، در صورت امکان، يک ماژول کدگذاري ويدئويي بايد با شدت محاسباتي بالا پياده سازي شود (که به صورت تعداد عمليات هاي رياضي در هر عمليات دسترسي حافظه تعريف مي شود). در برخي وضعيت ها، محاسبه دوباره برخي متغيرها نسبت به بارگذاري آنها از حافظه خارج از تراشه مي تواند کارآمدتر باشد.

۳٫ کار قبلي
در اين بخش، ما کار قبلي در مورد اعمال GPUها را براي کدگذاري ويدئو بازنگري مي کنيم. کار قبلي براي استفاده از GPUها براي انجام تخمين حرکت [۱۹]-[۲۲]، پيش بيني مياني [۲۴]-[۲۷] و جبران حرکت [۱۰],[۲۹] پيشنهاد مي شود. توجه داشته باشيد که تخمين حرکت، پيش بيني مياني و جبران حرکت، برخي از ماژول هاي محاسباتي شديد به ترتيب در کدگذاري داخل فريم، کدگذاري داخل فريم و کدگشايي هستند. بنابراين، درک اين مورد مهم است که چگونه اين ماژول ها مي توانند به طور کارآمد روي GPUها پياده سازي شوند. علاوه بر اين ماژول ها، تبديل cosine گسسته مبتني بر GPU (DCT) در [۲۸] بررسي شده است. به نظر مي رسد کار قبلي در مورد فيلتر رفع انسداد مبتني بر GPU وجود ندارد. چون فيلتر انسدادزدايي شامل برخي از اظهارنظرات شرطي براي تعيين قوت فيلتر کردن در هر مرز بلوک مي شود، برخي مطالعات ممکن است براي تعيين عملکرد آن روي GPUها لازم باشد.
A. تخمين حرکت روي GPUها
تخمين حرکت (ME) يکي از ماژول هاي با شدت محاسباتي بالا در کدگذاري ويدئويي مي باشد و علاقه زياد به تخليه بار آن به GPUها براي بهبود عملکرد کلي کدگذاري وجود دارد. کار قبلي در اين حوزه روي الگريوتم هاي ME تمرکز مي کند که در آن مجموع تفاوت هاي مطلق (SAD) در تطبيق بلوک براي تعيين بهترين کانديد استفاده مي شود. محاسبه SAD را مي توان به آساني زماني که هر پيکسل فردي در بلوک کنوني به طور مستقل با پيکسل متناظر در بلوک مرجع کانديد مقايسه مي شود موازي سازي نمود. توجه کنيد که ME مبتني بر SAD معمولاً در MPEG-1/2 و H/263 استفاده مي شود.
الگوريتم هاي کدگذاري ويدئويي اخير از طرف ديگر، مي تواند ME بهينه سازي شده (RD) داراي اعوجاج سرعت را به کارگيرد که اعوجاج و نرخ انتخاب بهترين کانديد را در نظر گيرد. به طور مثال، يک مقياس رايج، مجموع وزندهي شده SAD (بين بلوک کنوني و بلوک کانديد است) و نرخ کدگذاري بردارهاي حرکت است (MVها). در استاندارد H.264، کدگذاري پيش بيني گر براي کدگذاري MV در بلوک کنوني استفاده مي شود و پيش بيني گر، ميانه MVها در بلوک هاي باقيمانده مجاور، بالا و سمت راست بالا است. بنابراين، در ME بهينه سازي شده RD، MVهاي بلوک ها همسايه بايد ابتدائاً تعيين شوند. بنابراين بر اساس ميانه MVهاي همسايه، نرخ کدگذاري MV‌کنوني ميتواند تعيين شوند و هزينه بلوک کنوني مي تواند در تطبيق بلوک محاسبه شود. چنين وابستگي، استفاده از GPUها براي ME بهينه سازي شده RD را مشکل مي سازد. ما طرح هاي نمونه را براي پرداختن به اين موضوع بررسي خواهيم کرد.
۱) تخمين حرکت مبتني بر GPU در باز کردن حلقه: به منظور افزايش درجه موازي سازي، [۲۰] باز کردن حلقه محاسباتي در جستجوي کامل مبتني بر SAD پيشنهاد مي شود. حلقه محاسبه ME در شکل ۳ نشان داده شده است و باز کردن حلقه ممکن است زيرا هيچ وابستگي بين بلوک هاي کلان (MBها) وجود ندارد که در آن SAD به عنوان مقياسي براي تطبيق استفاده مي شود. به علت محدوديت منبع در GPU هاي اوليه، الگوريتم [۲۰] بايد در دو پاس جداگانه پارتيشن بندي شود به طوري که حافظه GPU مي تواند دستورالعمل ها را جاسازي نمايد. آزمايشات در [۲۰] در مقايسه به ME جستجوي کامل روي يک Intel Pentium 4 3.0GHz CPU و روي NVIDIA GeForce 6800 GT GPU و نتايج پيشنهاد مي دهند که ME مبتني بر GPU مي توانند به دو برابر و۱۴ برابر تسريع براي ME نيم واحد و واحد عدد صحيح به دست آيند. بهبود قابل توجه در ME نيم واحد ناشي از اين حقيقت است که [۲۰] از حمايت سخت افزاري داخلي در GPU براي درون يابي استفاده مي کند.
توجه داشته باشيد که با باز کردن حلقه، امکان زمانبندي تعداد انبوهي از شيارهاي موازي (تحت محدوديت وسيله) وجود دارد. يک مثال را براي انتساب يک شيار براي محاسبه يک SAD بين يک MB و بلوک کانديد در پنجره جستجو در نظر بگيريد. بنابراين در مورد جستجوي کامل، تعداد شيارهاي مستقل مي تواند به اندازه تعداد دفعات MBها و تعداد بلوک هاي نماينده در هر MB باشد (اندازه پنجره جستجو). براي ويدئوهاي HD 720P (بلوک هاي کلان ۱۲۸۰ * ۷۲۰ * ۳۶۰۰ در هر فريم). و گستره جستجوي ۶۴ (۱۲۹ * ۱۲۹ اندازه پنجره جستجو)، تعداد شيارها مي تواند به اندازه ۳۶۰۰ * ۱۲۹ * ۱۲۹ = ۵۹۹۰۷۶۰۰ باشد.

 

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا