Codec چیست؟
Codec یکی از واژههای پر کاربرد دنیای فناوری اطلاعات است که اشاره به دو اصطلاح مختلف دارد. در تعریف اول، کدک سرنام کدگذار (Coder) و کدگشا (Decoder) است و در تعریف دوم کدک سرنام فشردهسازی (Compression) و از فشردهسازی خارج کردن (Decompression) است. بهشکل کلی هر دو اصطلاح بهمفهوم شبیه بههم اشاره دارند و سعی دارند از طریق فرایندهای کدگذاری و کدگشایی (تبدیل قالب)، فشردهسازی و از حالت فشرده خارج کردن (حذف بیتهای غیرضروری) حجم فایلهای ویدیویی یا صوتی را کاهش دهند.
کاربرد Codec
Codec فرایندی سختافزار یا نرمافزار محور است که برای کاهش حجم دادههای صوتی و تصویری که قرار است از طریق بسترهای اینترنتی مانند پلتفرمهای پخش زنده یا میزبانی ویدیو مبادله شوند، اقدام به فشردهسازی و از حالت فشرده خارج کردن دادهها میکند. این تکنیک بهویژه در ارتباط با کنفرانسها و استریمهای ویدیویی که باید کمترین مقدار ممکن با بهترین کیفیت، دادهها از طریق کانال ارتباطی ارسال یا دریافت شوند کاربرد دارد.
دومین کاربرد Codecها تبدیل دادهها از قالبی به قالب دیگر است. برای مثال، در دنیای چندرسانهای، Codecها دادههای یک فایل ویدیویی را دریافت میکنند و فرایند تبدیل دادهها از قالبی به قالب دیگر را انجام میدهند که به این فرایند کدگذاری (Encoding) گفته میشود. در نقطهی مقابل این فرایند، کدگشایی قرار داد که دادهها در مقصد از قالبی به قالب دیگر تبدیل میشوند. در دنیای ارتباطات، رویکرد فوق باعث میشود تا فرایند برگزاری یک کنفرانس ویدیویی یا انتقال صوت بر بستر اینترنت (VoIP) بهشکلی پویا و روان انجام شود، زیرا دادههای کمتری ارسال میشوند و یک نشست ویدیویی بدون مشکلاتی مانند قطعی برگزار شود. در تکنیک فوق، Codec دادههای یک منبع ورودی را دریافت و آنها را کدگذاری میکند (تبدیل قالب) و در خروجی فرایند کدگشایی را انجام میدهد تا یک نشست ارتباطی بهشکل روان انجام شود. برای درک بهتر کاری که کدک انجام میدهد به یک مثال ساده دقت کنید.
برای مثال، هنگامی که یک فایل ویدیویی در یک نرمافزار ویرایش ویدیو ایجاد میکنید، در زمان ساخت فایل نهایی باید به دو نکته مهم کیفیت و حجم فایل دقت کنید. نرمافزارهای ویرایش فایلهای ویدیویی مانند Adobe Premiere یا Ulead Studio خروجیهای مختلفی پیشنهاد میکنند که برخی برای کاربردی خاص و برای پخش روی یک دستگاه خاص هستند و برخی دیگر قابلیت اجرا روی پلتفرمهای مختلف را دارند. با اینحال، وجه اشتراک تمامی این گزینهها، مفهومی بهنام Codec است. کدک ممکن است سختافزاری یا نرمافزاری باشد. در هر دو حالت کاری که Codec انجام میدهد، تبدیل دادهها و کپسولهسازی (Encapsulation) برای انتقال از طریق شبکه است.
انواع Codecها
Codecهای ویدیویی و صوتی از الگوریتمی نرمافزاری که ممکن است روی پردازندههای رایج یا سختافزار اختصاصی و بهینهشده برای این فرایند اجرا شوند استفاده میکنند تا فرایند کپسوله کردن و از کپسوله خارج کردن دادهها با سهولت انجام شود. از نظر فنی، Codecها به انواع مختلفی تقسیم میشوند. برای نمونه، Codecهای پیشبینیکننده (Predictive) با استفاده از یک الگوریتم محاسباتی دنبالهای از دادههای مرتبط و شبیه بهیکدیگر را شناسایی کرده و فرایند فشردهسازی با هدف انتقال آسان دادهها از طریق شبکه را روی آنها اعمال میکنند. بهطوری که در مقصد، بایتها به دادههای صوتی و ویدیویی قابل فهم برای رسانه تبدیل میشوند.
کدکهای تبدیلکننده (Transformative) دادهها را به بلوکهای تفکیک شده از یکدیگر و مدیریتپذیر تبدیل و سپس ذخیرهسازی میکنند. تمامی پلتفرمهای ابرمحور بزرگ در جهان از کدهای مختلفی پشتیبانی میکنند، با اینحال، H.264 اصلیترین گزینه است، زیرا کیفیت مناسبی ارایه میکند و اندازه فایل ویدیویی را بهگونهای کاهش میدهد تا کیفیت تصویر افت پیدا کند.
در دنیای امروز، کدگذاری و کدگشایی سیگنالهای صوتی و تصویری برای تبدیل فیلمها و اصوات به بیتهای اطلاعاتی قابل انتقال و قابل فهم برای کامپیوترها ضروری است. ابرآروان بهعنوان یکی از شرکتهای ارایهدهندگان خدمات ابری، برای آنکه به تولیدکنندگان محتوای ویدیویی کمک کند تا محتوای چندرسانهای با کیفیتی در اختیار مخاطبان قرار دهند نه تنها از Codecهای فوق پشتیبانی میکند، بلکه بهتوسعهدهندگان اجازه میدهد بیتریت، تفکیکپذیری، Sample Rate و سایر معیارهای مهم در زمان ساخت فایلهای ویدیویی را بر حسب نیاز انتخاب کنند. بنابراین، در ساخت فایلهای ویدیویی H.264 و بارگذاری آنها روی زیرساخت ویدیویی ابرآروان با مشکل خاصی روبرو نیستید. علاوه بر این، نکته مهم دیگری که باید بهآن دقت کنید این است که زیرساخت ویدیویی ابرآروان از کدک صوتی AAC مخفف Advanced Audio Codec نیز پشتیبانی میکند.
پر کاربردترین Codecها
کدک H.264 در کاربردهای مختلف از ساخت دیویدیها گرفته تا فیلمهای یوتیوب استفاده میشود. عملکرد کدک مذکور باعثشده تا شرکتهای فعال در حوزه زیرساخت ابری، برای استریمهای ویدیویی از آن استفاده کنند. H.264 یک استاندارد فشردهسازی ویدیو است که بالاترین نرخ فشردهسازی با حداکثر وضوخ ممکن را انجام میدهد. به بیان دقیقتر، بر مبنای Codec مذکور شما میتوانید یک فیلم ویدیویی 2 ساعته را با حجمی نزدیک به 700 مگابایت یا حتا کمتر در اختیار داشته باشید. اگر نرخ فشردهسازی در حالت حداکثری قرار گیرد و کمی از کیفیت تصاویر کاسته شود، این حجم به 200 تا 300 مگابایت نیز کاهش پیدا میکند. عملکرد این Codec باعث شده تا بهعنوان یک استاندارد از سوی تولیدکنندگان تجهیزات سختافزاری و ناشران محتوای چندرسانهای بهرسمیت شناخته شود، بههمین دلیل است که امروزه بیشتر دستگاههای پخش ویدیو از استاندارد فوق پشتیبانی میکنند. امروزه کدکهای مختلفی مثل MEPG4، MPEG1، WMV،dvix و نمونههای مشابه وجود دارند، با اینوجود، H.264 و H.265 عملکرد بهتری نسبت به رقبا دارند. لازم به توضیح است که فرایند کدگذاری در H.265 بهبود قابل توجهی نسبت به H.264 پیدا کرده، بهطوری که اندازه فشردهسازی ماکروبلوکها (MacroBlocks) از 16 x 16 پیکسل به 64 x 64 پیکسل رسیده است.