آشنایی با کدک های تصویر Video Codec
نوشته شده توسط:مدیریت مدیر سایت در نرم افزار-سخت افزار » آشنایی با فرمت ها | ۰۵ دی ۱۳۹۴ - ۰۱:۳۰ | ۰ دیدگاهکدکهای خانواده Mpeg
کدک WMV9 دارای مقادیر از پیش تنظیم شدهای میباشد که بر اساس سیستم تصویری که در آن اجرا میشود (Pal یا NTSC) و همچنین خطوط انتقال آن (از Dial-up تا خطوط پر سرعت که تا حدود یک مگابیت بر ثانیه میباشند) تعریف شده است، این کدک در Premiere Pro بعنوان Adobe Media Encoder بصورت plugin قرار دارد. یکی دیگر از مزیتهای این کدک آن است که می تواند تصویر کد شده را مستقیماً از طریق FTP ارسال نماید.
در کدک DIVX5.2 این دسته بندی بر اساس دستگاههایی که تصویر کد شده را اجرا (play) میکنند تقسیم بندی شدهاند که به چهار گروه
High Definition ,Home Theater ,Portable ,Handheld
تقسیم می شوند. تجهیزات هر یک از این گروهها توسط شرکتهای مختلفی ساخته و ارائه می شوند و دارای ظرفیتها و خصوصیات خاصی میباشند که این تقسیم بندی نیز بر اساس این محصولات طراحی شده است. در این نوشته سعی شده تا مفاهیم کلی و نکات عملی در رابطه با این دو کدک توضیح داده شود.
مفاهیم کلی
ماکرو بلوکها و حرکت
انواع فرمها
فرمهایی که بعضی بلاکهای آن از روی بلاکهای فرمهای دیگر کد میشوند بر دو نوع هستند:
در نوع اول بلاکها فقط از روی فرمهای قبلی جستجو میشوند که به این فرمها فرم پیش بینی شده یا predicted frame و اططلاحاً p-frame گفته میشود.
در گروهی دیگر از فرمها بعضی از بلاکها از روی فرمهای قبلی و بعضی از روی فرمهای بعدی جستجو میشوند که بترتیب به آنها بلاکهای پیش بینی شده رو به جلو یا forward-predicted block و بلاکهای پیشبینی شده رو به عقب backward-predicted block گفته میشود و بلاکهایی که این دو نوع بلاک در آنها قرار دارد فرمهای پیش بینی شده دو جهته یا Bi-directional predicted frame و اصطلاحاً B-frame نامیده میشود.
کوانتیزر Quantizer
در هنگام اجرای تصویر دیکدر (یا Decoder) عدد کوانتیزه را در اعداد ذخیره شده ضرب میکند. نتیجه حاصله بعنوان اطلاعات تصویر دیجیتال برای اجرا بدست میآید و از آنجائیکه اطلاعات در موقع اجرا با اطلاعات تصویر اولیه متفاوت میباشند باعث کاهش کیفیت تصویر میشود. هر چه عدد کوانتیزه بزرگتر باشد، کاهش کیفیت تصویر بیشتر است.
روشهای کد کردن تصاویر
One Pass
Multipass
One Pass Quality Based
بسته به نوع تصویر و مقدار فشرده سازی که لازم داریم و همچنین دستگاهی که می خواهیم تصویر کد شده را در آن اجرا کنیم، انتخاب های مختلفی وجود دارد که هر یک بطور اجمال بیان می شوند:
- Off
در این حالت تصویر کد شده فاقد فربم هایی که به صورت B فربم کد شده باشند، است. این حالت برای تصاویری که دارای تغییرات تقریباً سریع می باشند، مناسب تر است. در این حالت بدلیل فقدان فربم های B تصویر کد شده در حجم مساوی با حالتی که تصویر کد شده دارای فربمهای B باشد، دارای کیفیتی پایین تر است.
- Adaptive Single Consecutive
کلمه Adaptive در اینجا به نوع هوشمندی در انتخاب B فریم ها اشاره می کند، به طور مثال اگر در فریمی که یک اسلحه شلیک می کند و آتش ناشی از شلیک اسلحه در یک فریم ظاهر می شود اگر این فریم به عنوان یک فریم B در نظر گرفته شود در تصویر کد شده تقریباً این آتش محو می گردد. به همین دلیل در کدک divx 5.2 در انتخاب B فریم نسبت به مقدار تغییرات نسبت به فریم های پیرامون هوشمندی خاصی صورت می گیرد.
در این انتخاب از روش کد کردن، به غیر از مواردی که همان هوشمندی صورت می گیرد، فریمها به صورت متوالیIBPBPBP… کد می شوند.
- Adaptive Multiple Consecutive
در بعضی از قسمت های یک تصویر ممکن است چند فریم متوالی تقریباً دارای شامل یک صحنه ثابت با تغییرات جزئی باشد در این موارد می توان برای فشرده سازی بیشتر چند فریم به طور متوالی به صورت B فریم کد شوند، به عنوان مثال به صورت IBPBBBPBBP…. البته این انتخاب در صورتی فعال می شود که Divx certified را غیر فعال سازیم.
- شماره گذاری فرم ها در تصویر کد شده
به دلیل آنکه فریمهای B در تصویر کد شده دارای بلاک هایی می باشد که از روی فریم های P کد شده اند، بنابراین در هنگام دیکد کردن تصویر باید ابتدا فریم های P و سپس فریم های B دیکد شوند. به همین منظور اگر یک فریم به صورت 1(I)2(B)3(P)4(B)5(B)6(B)7(P)… کد شده باشد طریقه چینش آنها در تصویر کد شده به صورت1(I)3(P)2(B)7(P)4(B)5(B)6(B)… خواهد بود تا در موقع دیکد شدن، ابتدا فریم های P کد شوند، سپس در محل مناسب خود قرار بگیرند.
یک چهارم پیکسل (Quarter Pixcel)
چنانچه قبلاً گفته شد در یک کدک divx در فریم های P و B (اگر وجود داشته باشند) هر بلاک در فریم های مجاور جستجو می شود، در حالت ساده هر بلاک با جابجا شدن یک پیکسل یک پیکسل تمام در جهت های گوناکون جستجو می شود که به این روش Whole-pixel گفته می شود.
در Divx با اعمال یک فیلتر برای هر بلاک یک بلاک مجازی ایجاد می شود که می تواند در هر مرحله از جستجو به مقدار نیم پیکسل جابجا گردد. با انجام این عمل بلاک در جای دقیق تری قرار گرفته . بنابراین فشرده سازی بهتری صورت می پذیرد و تصویر حاصله دارای وضوح بیشتری خواهد بود.
حال اگر عمل جستجو را بتوان با فاصله های کمتر از نیم پیکسل انجام داد، می توان فشرده سازی بهتری را اعمال نمود، ولی هر چه این فاصله کمتر باشد عمل کد کردن طولانی تر خواهد شد و همچنین عمل دیکدینگ نیز دارای پیچیدگی بیشتر خواهد شد. در کدک Divx یک انتخاب برای عمل جستجو به صورت یک چهارم پیکسل قرار داده شده است که با انتخاب این مورد هر بلاک بصورت یک چهارم در فرم های مجاور جستجو خواهد شد ولی این انتخاب در Divx certified قرار ندارد.
این انتخاب در تصاویری که دارای حرکات کند می باشند، بسیار مفید می باشد. مثلاً اگر در یک تصویر perspective یک شئ در حال دور شدن کوچک می شود، استفاده از Qurter pixcel بسیار مفید تر می باشد.
فشرده سازی حرکت عمومی ((Global motion compensation(GMC)
در بعضی مواقع که دوربین در یک تصویر زوم می کند و یا حرکت عرضی و یا گردشی دارد، تعداد زیادی از بلاک ها به اندازه ثابت جابجا می شوند که می توان همه آنها را با یک بردار عمومی در تصویر کد شده ذخیره نمود. در نتیجه این عمل، فشرده سازی زیادی در این نوع از تصاویر حاصل می گردد. این انتخاب نیز بدلیل آنکه دیکدینگ تصویر دارای پیچیدگی زیاد می باشد، جزء Divx certified نمی باشد.
نظرات
ارسال نظر