کدک (Codec) چیست؟ و فرق کدک با فرمت
کدک (Codec) چیست و چرا برای استفاده از فایلهای صوتی و تصویری به کدکها نیاز داریم + فرق کدک با فرمت فایلها
کدک چیست؟
کدک (که بعضاً به اشتباه “کودِک” نیز تلفظ میشود)، معادل کلمه Codec (مخفف compression/decompression است و برای compressor/decompressor و code/decode نیز استفاده میشود)، سخت افزار یا نرم افزاری است که امکان پخش کردن، ایجاد و ذخیره کردن فایلهای مختلف ویدئوای، صوتی یا چند رسانهای را به سیستم عامل میدهد.
فایلهای مختلف صوتی و تصویری هنگام ساخته شدن (یعنی دقیقاً در ابتدای راه، مثلاً ضبط کردن) همگی مقادیر آنالوگی (ولتاژ متغیر در یک محدوده) هستند که برای ذخیره شدن بر روی حافظه، باید به مقادیر دیجیتالی (ولتاژهای معادلسازی شده صفر و یک) تبدیل شوند. در پایین ترین سطح، کدکهای سخت افزاری مقادیر آنالوگ را به دیجیتال تبدیل کرده و آنها را ذخیره میکنند که به این عمل رمزگذاری و برعکس، هنگام پخش کردن اگر به خروجی آنالوگ مثلاً صدا نیازی بود، آن قطعه سخت افزاری مقادیر دیجیتالی صوتی را به آنالوگ تبدیل کرده و آن را به خروجی تحویل میدهد که به این عمل رمزنگاری میگوییند.. حال این که این تبدیل طبق چه قانونی و چه ساختاری انجام میشود را کدک مشخص میکند.
همه فایلهای چندرسانهای با یک فرمت و ساختار خاص رمزگذاری (Encode) و رمزنگاری (Decode) نمیشوند. چون علاوه بر تبدیل آنالوگ و دیجیتال به یکدیگر، این فایلها فشرده نیز میشوند. این فشرده سازی (Compression) و خارج سازی از فشردگی (Decompression) را ساختار کدک مشخص میکند. اگر این فشردگی انجام نشود، حجم فایلها از آنچه که امروز آنها را میبینیم، تا حدود زیادی بیشتر خواهند بود. بنابراین یکی از بزرگترین مزیت استفاده از کدکها، کم کردن حجم فایلهاست.
بنابراین کدک مثل یک کلید برای یک قفل نوع قفل عمل میکند. بدون داشتن کلید H.264 نمیتوان فایلهایی با کدک H.264 را خواند یا ذخیره کرد.
فشرده سازی
کدکها به دو صورت دادههای اصلی را فشرده سازی میکنند:
با اتلاف (Lossy): با فشرده سازی فایل اصلی، قسمتی از دادههایی که طبق الگوریتمهای خاص زائد یا کم اهمیت شناخته میشوند، از فایل اصلی حذف میشود بنابراین در این نوع فشرده سازی معمولاً افت کیفیت خواهیم داشت. یک فایل فشرده شده با اتلاف را نمیتوان به فایل اصلی تبدیل کرد چون قسمتی از دادهها برای همیشه از بین رفته است.
بدون اتلاف (Lossless): در این نوع فشرده سازی عین همان فایل فقط فشرده میشود. هیچ قسمتی از آن کم نشده و با خارج کردن از فشردگی، فایل اصلی به صورت کامل در دسترس خواهد بود. در این نوع فشرده سازی افت کیفیت نداریم ولی استفاده از منابع سیستمی برای پردازش نسبت به Lossy بیشتر و درصد کاهش حجم کمتر خواهد بود.
کدکهای رایج
از جمله مهمترین کدکها را به اختصار توضیح میدهیم:
MPEG-4
از مهمترین کدکهای موجود بوده و نسخههای مختلفی دارد. این کدک خود اساس بسیاری از کدکهای دیگر است. از نسخه MPEG-4 AVC، بر پایه H.264 طراحی شده و بنابراین برای فایلهای ویدئوای با کیفیت زیاد مناسب است.
XviD یا DivX
DivX نسخه تجاری و XviD نسخه باز سازی شده آن است که به صورت رایگان قابل منتشر است. این کدک نسخههای مختلفی داشته اساس کار هر دوی این کدکها MPEG-4 است. XviD یکی از رایجترین کدکها در بین ناشران فیلم و سریال بدون رعایت قوانین کپی رایت است. میزان فشردگی این کدک نسبتاً خوب بوده و بصورت تعبیه شده در اکثر نرم افزارهای پخش کننده مثل KMPlayer و VLC وجود دارد. فشرده سازی XviD و DivX از نوع با اتلاف (Lossy) است. از جمله انواع فرمتهای انتشار که از این کدک استفاده میکنند، میتوان به DVDRip (یا DVD-rip) و WEBCap (یا Web-Cap) اشاره کرد.
H.264 یا x264
H.264 نسخه تجاری و x264 نسخه باز سازی شده آن است که به صورت رایگان قابل منتشر شده است. این الگوریتم اینکدینگ برای فایلهای با کیفیت یا با حجم زیاد بسیار مناسب است با این حال چون فایل نهایی در سطح بالایی فشرده سازی شده است، برای خارج کردن از فشردگی نیز به منابع سیستمی بیشتری نیاز دارد. منظور از منابع سیستمی قدرت پردازشی CPU و RAM است. H.264 معمولاً برای فشرده سازی با اتلاف داده (Lossy) استفاده میشود اما میتواند فشردگی بدون اتلاف (Lossless) کامل نیز داشته باشد. از جمله انواع فرمتهای انتشار که از این کدک استفاده میکنند، میتوان به WEBDL (یا Web-DL) اشاره کرد.
از جمله سایر کدکهای ویدئویی میتوان به موارد زیر اشاره کرد:
Apple Intermediate Codec، Bink Video, Smacker video، Blackbird FORscene، Apple Compact Video، Dirac، Firebird Original FORscene، H.261، MPEG-1 Part 2 (MPEG-1 Video) ، H.262/MPEG-2 Part 2، H.263، MPEG-4 Part 2، H.264/MPEG-4 AVC، HEVC، OMS Video، Pixlet، RealVideo، Snow Wavelet، Theora، VC-1، VP9، Windows Media Video، Guobiao standards
فرق کدک با فرمت فایل
همگی ما با فرمتهایی نظیر MP4، AVI، WMV و … آشنا هستیم. به این فرمتها به اصطلاح فرمتهای حاوی دادههای دیجیتالی (Digital container format) گفته میشود. اغلب افراد فرقی بین کانتینرها (فرمتهای فایل) و کدکها قائل نمیشوند درحالی که این دو کلاً با یک دیگر فرق دارند:
فرمتهای حاوی دادههای دیجیتالی
سبدی را فرض کنید که شامل چندین بیسکوییت، نوشیدنی و غذا باشد گشنم شد :/ . این فرمتها نیز چنین هستند. فایلهایی با فرمت مثلاً MKV میتوانند شامل ویدئو، صدا، زیرنویس و … و آن هم نه یک عدد بلکه ممکن است چند تا از این رسانهها را داشته باشند. بنابراین این فرمتهای چند رسانهای صرفاً ظرفی برای نگه داری این رسانهها در کنار یکدیگر اند.
این فرمتها تفاوتها، مزیتها و معایب مختلفی نسبت به یکدیگر دارند. در جدول زیر سه نمونه از این فرمتها در برخی از ویژگیها مقایسه شده است:
پسوند فرمت | قابلیت داشتن زیرنویس | کدگذاریهای ویدئو | کدگذاریهای صدا | قابلیت داشتن منو | قابل استریم |
.MKV | بله | تقریباً همه کدگذاریها | تقریباً همه کدگذاریها | درحال بررسی | بله |
.MPEG | خیر | فقط MPEG-1 و MPEG-2 | MPEG-1 لایه I و II و III (همان MP3) | خیر | بله |
.MP4 | بله | MPEG-2 Part 2 و MPEG-4 ASP و H.264/MPEG-4 AVC و H.263 و VC-1 و Dirac و چندین مورد دیگر | MPEG-2/4 (HE)-AAC و MPEG-1/2 Layers I و II و III (MP3) و AC-3 و Apple Lossless و ALS و SLS | بله | بله |
.AVI | باید دستکاری شود | تقریباً همه کدگذاریهای فرمورک VfW | تقریباً همه کدگذاریهای فرمورک ACM | خیر | خیر |
کدک یا نحوه کد گذاری
همانطور که در ابتدای پست توضیح داده شد، کدک الگوریتمی است که معمولاً در قالب یک نرم افزار یا سخت افزار توسط سیستم استفاده میشود تا فایلهای ویدئویی و صوتی را کدگذاری کرده و آنها را فشرده سازی کند. مثلاً قسمت تصویری یک فایل MP4 میتواند با کدک H.263 رمزگذاری شود یا با Dirac که این دو کیفیت متفاوت، مقدار فشرده سازی متفاوت، میزان فشار بر روی CPU برای رمزنگاری مختلف و … دارند.
بنابراین نمیتواند گفت که فرمت MKV کیفیت بهتری نسبت به MP4 دارد یا از این قبیل مقایسات. بلکه مقایسه اصلی را باید با استفاده از نوع کدک فایل صوتی و تصویری و تنظیمات آن انجام داد.
ممنون بسیار مفید و جالب بود ، موفق باشید
خواهش میکنم، ایشالا شما هم موفق باشین.