ویرگول
ورودثبت نام
ای ترجمه
ای ترجمه
خواندن ۷ دقیقه·۲ سال پیش

کدگذاری ویدئو در پردازنده های گرافیکی (مقاله ترجمه شده)

چکیده

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

مقدمه

امروزه، کدگذاری ویدئو [1]-[5] تبدیل به یک تکنولوژی مرکزی در محدوده وسیعی از برنامه های کاربردی شده است. برخی از آنها شامل تلویزیون دیجیتال، دی وی دی، پخش اینترنتی ویدئو، ویدئو کنفرانس، آموزش از راه دور و مراقبت و امنیت می باشد. محدوده وسیعی از استانداردها و الگوریتم های کدگذاری ویدئو گسترش یافته اند (H.264/AVC, VC-1, MPEG-2, AVS)  تا به نیازها و ویژگی های عملیاتی تجهیزات و نرم افزارهای کاربردی مختلف رسیدگی کنند. با برنامه های کاربردی رایج در فن آوری های کدگذاری ویدئویی، بررسی تغییرات موثر در سیستم های کدگذاری ویدئویی بر روی جایگاه و پردازنده های محاسبه گر متفاوت مهم است.

اخیراً، واحدهای پردازنده گرافیکی (GPUs) به شکل واحدهای پردازنده همراه با واحد مرکزی پردازش (CPU) بیرون آمده است تا تجهیزات و نرم افزارهای کاربردی مختلف عددی و پردازش سیگنال را شتاب دهد. GPUهای مدرن از صدها هسته پردازنده جدا که قادر به دستیابی به عملکرد بسیار زیاد محاسبات موازی می باشد، تشکیل شده است. برای مثال پردازنده NVIDIA GeForce 8800 GTS دارای 96 پردازنده جریان مستقل است که هر کدام در  GHz 1.2 عمل می کند. پردازنده های جریان را می توان با هم گروه بندی کرد تا عملیات های Single Instruction Multiple Data (SIMD) (ساختار بندی داده های متعدد) را اجرا کند که برای برنامه های فشرده محاسباتی مناسب است. با مراجع در رابطه با ابزار کدگذاری GPU مانند موضوع و رابط کدگذاری C، GPUها را می توان برای انجام انواع وظایف پردازش علاوه بر عملیات متعارف راس و پیکسل مورد استفاده قرار داد.

پیش زمینه

کدگذاری ویدئو

آخرین استانداردهای کدگذاری ویدئو از عملکرد کدگذاری مدرن بدست می آید. برای مثال، H.264/AVC، که آخرین استاندارد بین المللی کدگذاری ویدیو تایید شده توسط ITU-T و ISO / IEC می باشد، به طور معمول نیاز به 60٪ یا کمتر از نرخ بیت در مقایسه با استانداردهای قبلی برای رسیدن به همان کیفیت بازسازی دارد. [5]. سایر الگوریتم های پیشرفته کدگذاری ویدیو، مانند video- AVSتوسعه یافته بوسیله کارگروه استاندارد کدگذاری صوتی و ویدئویی چین، یا VC-1 در ابتدا توسط مایکروسافت نیز عملکرد فشرده سازی رقابتی را به دست آورده است. در زیر ما مروری بر استاندارد کدگذاری ویدیو H.264 ارائه خواهیم نمود.

کار قبلی

در اين بخش، ما کار قبلي در مورد اعمال GPUها را براي کدگذاري ويدئو بازنگري مي کنيم. کار قبلي براي استفاده از GPUها براي انجام تخمين حرکت [19]-[22]، پيش بيني مياني [24]-[27] و جبران حرکت [10],[29] پيشنهاد مي شود. توجه داشته باشيد که تخمين حرکت، پيش بيني مياني و جبران حرکت، برخي از ماژول هاي محاسباتي شديد به ترتيب در کدگذاري داخل فريم، کدگذاري داخل فريم و کدگشايي هستند. بنابراين، درک اين مورد مهم است که چگونه اين ماژول ها مي توانند به طور کارآمد روي GPUها پياده سازي شوند. علاوه بر اين ماژول ها، تبديل cosine گسسته مبتني بر GPU (DCT) در [28] بررسي شده است. به نظر مي رسد کار قبلي در مورد فيلتر رفع انسداد مبتني بر GPU وجود ندارد. چون فيلتر انسدادزدايي شامل برخي از اظهارنظرات شرطي براي تعيين قوت فيلتر کردن در هر مرز بلوک مي شود، برخي مطالعات ممکن است براي تعيين عملکرد آن روي GPUها لازم باشد.

تخمين حرکت روی GPUها

تخمين حرکت (ME) يکي از ماژول هاي با شدت محاسباتي بالا در کدگذاري ويدئويي مي باشد و علاقه زياد به تخليه بار آن به GPUها براي بهبود عملکرد کلي کدگذاري وجود دارد. کار قبلي در اين حوزه روي الگريوتم هاي ME تمرکز مي کند که در آن مجموع تفاوت هاي مطلق (SAD) در تطبيق بلوک براي تعيين بهترين کانديد استفاده مي شود. محاسبه SAD را مي توان به آساني زماني که هر پيکسل فردي در بلوک کنوني به طور مستقل با پيکسل متناظر در بلوک مرجع کانديد مقايسه مي شود موازي سازي نمود. توجه کنيد که ME مبتني بر SAD معمولاً در MPEG-1/2 و H/263 استفاده مي شود.

مطالعه موردی: تخمین حرکت FAST بر اساس GPU

برای نشان دادن برخی از ملاحظات طراحی در استفاده از GPUها برای کدگذاری های ویدئویی، ما به تفصیل در این بخش ME سریع مبتنی بر GPU را مورد بحث قرار می دهیم (کد ME GPU توسط نویسندگان بر اساس JM نرم افزار H.264 14.2 مرجع توسعه داده شد). تمرکز روی چگونگی رسیدگی به وابستگی داده ها در الگوریتم برای بهره برداری از قابلیت پردازش موازی GPUها متمرکز، و چگونگی افزایش سرعت تبادل عملکرد با نرخ اعوجاج (RD) است.

اجرای GPU ما در مورد ME سریع بر اساس جستجوی چند شش گوش ساده نامتقارن (smpUMHexagonS ها) [42] است که یکی از الگوریتم های ME سریع اتخاذ شده توسط نرم افزار H.264 JM مرجع می باشد. ما smpUMHexagonS را به این دلیل انتخاب می کنیم که می تواند معاوضه بسیار خوبی را بین پیچیدگی محاسباتی و بهره وری کدگذاری به دست آورد. برای مثال، در پنتیوم 4 پردازنده smpUMHexagonS این می تواند کاهش 94٪ در زمان اجرای Me با راندمان RD قابل مقایسه، در زمان مقایسه با جستجوی سریع کامل در نرم افزار JM گزارش شد. علاوه بر این، smpUMHexagonS کاملا جمع و جور است، بنابراین می تواند محدودیت حافظه GPU را تامین کند. در پیاده سازی ما، تمام هسته های GPU که با برآورد صحیح واحد ارتباط دارد حدود 600 خط کد دارد.

نتیجه گیری ها و بحث

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

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

چند مسئله مربوط به پژوهش وجود دارد . اول ، به نظر می رسد که هیچ مطالعه ای در مورد پارتیشن بندی جریان کدگذاری بین CPU و GPU وجود ندارد. دوم، با در دسترس بودن بسیاری از فرمت های ویدیویی مختلف (به عنوان مثال ، SD، HD) و کدگذاری استاندارد نیاز رو به رشدی برای تبدیل کد یک کدگذاری شده به فرمت های تصویری دیگر [53 ] - [55] دارد. با این حال ، در حالی کهدر برنامه های کاربردی چند تغییر کد تجاری در دسترس وجود دارد [56] ، [57]، به نظر می رسد هیچ کار قبلی در بررسی استفاده بهینه از GPUها برای کدگذاری وجود ندارد. توجه داشته باشید که بر خلاف کدگذاری / کدگشایی ویدئو، هیچ الگوریتم استانداردی برای تغییر کد ویدئوها وجود دارد، و بسیاری از روش های که قبلا پیشنهاد شده است که برای رسیدن به طیف گسترده ای از کدگذاری متقابل و با کیفیت با پیچیدگی های مختلف مورد نیاز [53] وجود دارد . این کار، مطالعه تغییر کد مبتنی بر GPU را پیچیده می کند.

این مقاله ISI در سال 2010 در نشریه آی تریپل ای و در مجله پردازش سیگنال، توسط دانشگاه علم و صنعت هنگ کنگ منتشر شده و در سایت ای ترجمه جهت دانلود ارائه شده است. در صورت نیاز به دانلود رایگان اصل مقاله انگلیسی و ترجمه آن می توانید به پست دانلود ترجمه مقاله کدگذاری ویدئو در پردازنده های گرافیکی در سایت ای ترجمه مراجعه نمایید.

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