فرمت ویدیوی دیجیتال راه زیادی را از اوایل دهه ۲۰۰۰ میلادی تاکنون پیموده است. از آن زمان ما شاهد بهبودهای زیادی در کیفیت تصاویر و رفع محدودیتها بودهایم و در کنار آنها، فناوریهای جدید نمایشگر مانند اولد و کدک های جدیدتر هم پا به عرصه گذاشتهاند.
به عنوان مشتری نیز ما اکنون توقعات بیشتری را هم در دستگاههای خانگی و هم در محصولات قابل حمل مانند گوشیهای هوشمند و تبلتها داریم. کدکها تمام این موارد را امکانپذیر میکنند و اجازه میدهند که ما دادههای بزرگ خام را برای ذخیره در حافظهها، پخش و توزیع، فشرده کنیم.
طی گذشت سالها بازیگران حوزه اصلی این صنعت مانند گوگل، اینتل و اپل به راههای جدید فشردهسازی و بستهبندی کردن ویدیو علاقه نشان دادهاند. برای مثال احتمالاً شنیدهاید که اخیراً یوتیوب شروع به استفاده از استاندارد AV1 کرده است. در سوی دیگر مدلهای جدیدتر آیفون از کدک ProRes خود شرکت اپل برای فشردهسازی ویدیوها استفاده میکنند.
با توجه به این تنوع کمسابقه کدکها طی سالهای گذشته، بد نیست اگر به این موضوع توجه نشان دهیم و بررسی کنیم که هر استاندارد به چه دلیل از سایرین تمایز مییابد. در این مقاله ما همه چیز را درباره کدکهای ویدیو به شما خواهیم گفت. اگر آمادهاید، با ما همراه شوید!
یک کدک ویدیو چیست؟
با درک مفهوم کدک ویدیو، به خوبی میتوانید سایر مفاهیم مطرح در این زمینه را متوجه شوید. کدک کوتاه شده عبارتهای Encoding و Decoding (رمزگذاری و رمزگشایی) است. حالا حتماً میپرسید چرا باید ویدیوها را رمزگذاری و سپس رمزگشایی کرد؟ به زبان ساده میگوییم: زیرا ویدیوها معمولاً مقدار زیادی داده خام دارند.
احتمالاً قبلاً شنیدهاید که فیلمها مجموعهای از تصاویر ثابت هستند. پروژکتورهای قدیمی بهترین مثال برای درک این قضیه هستند. آنها با چرخاندن یک فیلم و نمایش ۲۴ فریم در هر ثانیه، به گونهای عمل میکردند که ذهن شما تصور کند در حال تماشای یک تصویر متحرک است.
در حالی که دقیقاً میتوان همین کار را با تصاویر دیجیتال هم انجام داد ولی ما این کار را انجام نمیدهیم؛ چرا؟ چون فضای ذخیرهسازی مورد نیاز برای این کار بسیار زیاد است. طبق محاسبات شرکت موزیلا، یک فیلم رایج ۳۰ دقیقهای که به صورت خام ذخیره شده است، میتواند حجمی معادل با ۱ ترابایت اشغال کند.
مطالب مرتبط:
اگر اندکی با دنیای کامپیوتر آشنا باشید، متوجه هستید که این مقدار، حداقل برای یک فیلم ۳۰ دقیقهای اصلاً منطقی نیست. ۱ ترابایت تقریباً ۱۰ برابر حافظه ۱۲۸ گیگابایتی گوشیهای هوشمند امروزی است که ممکن است همین حالا در حال استفاده از آنها باشید.
از اینرو، ویدیوها را فشرده میکنند تا جای کمتری توسط آنها اشغال شود. برای فشردهسازی ویدیوها از الگوریتمهای فشردهسازی (رمزگذاری) پیچیده استفاده میشود. بنابراین پیش از پخش این ویدیوها، کدکها باید عملیات رمزگشایی را انجام دهند.
گفتنی است که کدکها فقط مربوط به فرمتهای ویدیویی نیستند و در حوزه صوت و صدا هم از کدکها استفاده میشود. دلیل استفاده از آنها در حوزه صوت نیز همان مواردی هستند که بالاتر به آنها اشاره کردیم. فیلمها و صداهای خام و غیرفشرده حجم بسیار زیادی دارند که ذخیرهسازی، نگهداری و انتشار آنها را غیرممکن میکند.
کدکها چگونه کار میکنند؟
اگرچه کدکها از الگوریتمهای فشردهسازی متنوع و پیچیدهای استفاده میکنند اما برخی از روشهای مورد استفاده در الگوریتم آنها به قدری آسان هستند که اکنون میتوانیم در این مقاله برای شما تصویر سازی و مجسمشان کنیم. برای مثال اگر در عوض ذخیره کردن تصاویر با اندازه واقعی، اصلی و کامل، صرفاً دادههای مربوط به تغییرات میان فریم کنونی و فریم بعدی را ذخیره کنید، آن وقت چه میشود؟
حجم ویدیو به شکل قابل توجهی کاهش مییابد چون نیاز نیست که دادههای موجود را چندین بار ذخیره کنید. این همان دلیلی است که میتوان ویدیوهایی که انیمیشنها و تحرکهای چندانی ندارد را به شدت فشرده کرد.
برای نمونه، شخصی را تجسم کنید که جلوی یک پسزمینه ثابت صحبت میکند. این شخص و اطراف او تحرک چندانی ندارند. بسیاری از فیلمها و در مجموع ویدیوها زیر چتر این سناریو قرار میگیرند و به این شیوه فشرده میشوند.
وکتورهای حرکتی و سایر الگوریتمهای کمکی میتوانند این روند را حتی از چیزی که تاکنون تجسم کردهاید نیز بیشتر کارآمد کنند. مثلا فرض کنید الگوریتم بتواند مکان به پایان رسیدن یک پیکسل خاص در فریمهای آینده را پیشبینی کند.
این موضوع کمک میکند که مقدار فشردهسازی افزایش یابد. اگر دوربین به صورت افقی در حال حرکت به یک سمت خاص باشد، کدک میتواند پیشبینی کند که یک پیکسل منحصربهفرد در کدام جهت در حال حرکت است.
یکی دیگر از روشهای فشردهسازی، پیکسلهای همرنگ نزدیک به همدیگر را در یک گروه جمعآوری میکند. اگر مقدار استفاده از این روش افزایش یابد، قسمتهای «بلاکی» در ویدیوها پدید میآیند که کیفیت کمی دارند و هیچ کدام از بینندگان از آنها خرسند نخواهند شد. در این مثال فایل فشرده شده اطلاعات مورد نیاز برای رمزگشا (Decoder) را در خود ذخیره نکرده است تا تصویر اصلی دوباره طی مراحل رمزگشایی بازسازی شود.
اگر تناسب و تعادل در این روشها رعایت شوند، علاوه بر فشردهسازی حجمی قابل توجه، تصویر نهایی کیفیت خوبی را هم ارائه میکند. ولی این سوال طی یک چرخه بارها و بارها در ذهن بینندگان تکرار خواهد شد: آیا انجام همه این فشردهسازیها و الگوریتمها حتی با وجود تناسب صحیح منجر به از بین رفتن کیفیت تصویر نمیشوند؟ پاسخ دادن به این سوال چندان آسان نیست.
در حقیقت تحت شرایط مختلف و استفاده از کدکهای متفاوت، پاسخ این سوال تغییر میکند اما سرانجام هدف کدکها تغییر نخواهد کرد؛ کدکها وظیفه دارند که کیفیت تصویر قابل قبولی را با بیشترین مقدار فشردهسازی ممکن ارائه دهند. با وجود آن که بدون شک مقداری از جزئیات در این چرخهها از بین خواهند رفت ولی با توجه به حجمی که از فایل اصلی کاهش مییابد، ارزشش را دارد.
هر کدک از روش و الگوریتمهای مختلفی برای فشردهسازی ویدیوها استفاده میکند. همانطور که انتظار میرود، کدکهای جدیدتر به شیوهای طراحی شدهاند که کیفیت تصویر نهایی را با وجود فشردهسازی بیشتر، همیشه در اولویت قرار دهند.
چرا کدکها اهمیت بسیار زیادی دارند؟
از اپلیکیشنهای چت و شبکههای اجتماعی مانند واتساپ تا سرویسهای استریم مانند نتفلیکس و …، کدکها این امکان را در اختیار ما قرار میدهند که در گوشیهای هوشمند خود دست به کارهایی بزنیم که در حالت عادی ممکن نیستند.
به اشتراک گذاشتن فایلهای رسانهای روی سرویسهایی مانند فیس بوک یا توییتر همیشه نیازمند انجام مراحل بازگشایی مجدد هستند تا ویدیوها حجم کمتری اشغال کنند. همین روند برای تصاویر و فایلهای صوتی هم انجام میشود.
تمام شرکتهای فعال در زمینه استریم مانند یوتیوب همه محتوای موجود روی وبسایتهای خود را چندین بار رمزگذاری و رمزگشایی میکنند تا چندین کیفیت مختلف را در دسترس کاربرانشان قرار دهند. در نهایت نیز نسخه مناسب را براساس ویژگیهای دستگاه پخش کننده و سرعت اتصال کاربران، در دسترس آنها قرار میدهند.
با وجود آن که سرعت اینترنت طی سالهای اخیر پیشرفتهای قابل ملاحظهای را پشت سر گذاشته است، ما هنوز هم با محدودیتهای زیادی در داده و ترافیک شبکه مواجه هستیم. نباید فراموش کرد که پخش ویدیوهایی با رزولوشن بالا به سرعت میتواند ترافیک شبکه یا فضای محدود گوشیهای هوشمند ما را اشغال کند. کدکهای جدیدتر با در نظر گرفتن این ملاحظات طراحی شدهاند.
به همین ترتیب کدکها ویدیویی هنگام ضبط ویدیوها هم کارآمد ظاهر میشوند. بسیاری از دستگاههای اندرویدی مدرن اجازه میدهند که حین ضبط ویدیو از کدکهایی استفاده کنید که بهرهوری بالاتری دارند و اجازه میدهند فضای بیشتری را روی گوشی خود در اختیار داشته باشید.
برای تحلیل این موضوع، منبع این مقاله اقدام به ضبط دو عدد ویدیو ۲۰ ثانیهای 4K، یک بار با کدک H.264 و یک بار با کدک جدیدتر H.265 کرده است. کلیپ اول تحت این شرایط ۱۲۸ مگابایت و کلیپ دوم ۹۰ مگابایت فضا اشغال کرده است.
با یک بررسی سرانگشتی میتوان متوجه شد که کدک دوم ۳۰ درصد حجم کمتری اشغال کرده است. بنابراین تنها با تغییر یک گزینه روی گوشیهای هوشمند میتوان به شدت در فرایند فشردهسازی و مقدار حجم نهایی تفاوت ایجاد کرد. با استفاده از تراشههای قدرتمندتری که در گوشیهای هوشمند به کار میروند، میتوان به چنین طرقی، ویدیوهای کمحجمتری را تحت یک رزولوشن ضبط کرد.
برای شرکتهای استریم مانند یوتیوب و نتفلیکس که پیشتر هم به آنها اشاره کردیم، استفاده از کدکهای بهتر به معنای کاهش فضای ذخیرهسازی مورد نیاز و ترافیک مصرفی است که در نهایت منجر به صرفهجویی عظیمی در هزینهها میشوند.
گوشی یا دستگاه شما از چه کدکهایی پشتیبانی میکنند؟
استفاده از الگوریتمهای رمزگذاری و رمزگشایی کارآمد در کنار یک سختافزار مناسب، میتواند تبدیل به یکی از اصلیترین ویژگیهای یک دستگاه هوشمند شود. به همین دلیل دستگاههای عصر کنونی از جمله تلویزیونها، گوشیهای هوشمند، رایانهها و حتی کنسولهای بازیهای ویدیویی از سختافزاری بهره میبرند که طی سطوح مختلفی قادر به پشتیبانی از کدکها هستند.
به عبارت دیگر، چنین دستگاههایی قادر به رمزگذاری و رمزگشایی ویدیوها به شکلی کارآمد به کمک قدرت سختافزاری خود هستند. این فرایند به دلیل تاثیری که پردازشهای کوتاهتر روی افزایش عمر باتری گوشیهای هوشمند دارند، در این دستگاهها حائز اهمیت فوقالعاده بالایی است.
اما حتی اگر دستگاه شما قدرت سختافزاری مناسبی هم داشته باشد، شاید نتواند برخی از ویدیوها را اجرا کند. این به خاطر عدم پشتیبانی آن دستگاه از کدک مربوط به آن ویدیو است. در این شرایط یا دستگاه اصلاً از کدک مربوطه پشتیبانی نمیکند یا قادر به شناسایی آن نیست.
با استفاده از اپلیکیشن Mediainfo میتوان فرمت یک ویدیو را تشخیص و جزئیات رمزگشایی آن را متوجه شود. روی دستگاههای اندروید اپلیکیشنهای رایگان بسیاری مانند Codec Info و AIDA764 قادر به ارائه همین اطلاعات به شما هستند.
اگر کدکهای خاصی در فهرست ارائه شده حضور ندارند، احتمالاً تراشه گوشی شما از آنها پشتیبانی نمیکند. وبسایت رسمی توسعهدهندگان اندروید فهرست کامل کدکهای ضروری و اولیه را مشخص کرده است.
البته حتی با در نظر گرفتن این موضوع، تراشه اکثر گوشیهای هوشمند مدرن به قدری قدرتمند هستند که میتوانند به اجرای کدکهایی مشغول شوند که رسماً از آنها پشتیبانی نمیکنند. از همینرو، اپلیکیشنهای شخصی ثالثی مانند VLC بدون استفاده از قدرت سختافزاری، صرفاً با استفاده از الگوریتم نرمافزاری به اجرای کدکهایی که پشتیبانی نمیشوند، میپردازند.
ممکن است این فرایند در نهایت باعث کاهش عمر باتری و داغ شدن دستگاه شما شود. در نتیجه بهتر است که در دورههای طولانی مدت از این روش استفاده نکنید.
منبع: Android Authority
نظرات
سلام
بزارید چیزی که فهمیدم رو بگم، هر ویدئو در هر ثانیهای از تعداد زیادی فریم یا تصویر تشکیل شده.
و ذخیرهسازی و کنار هم قرار دادن همه این تصاویر حجم و پردازش بالایی میطلبد، طوری که ۳۰ دقیقه ویدئو معادل ۱ ترابایت حجم خواهدداشت!
پس ما میایم فرمها رو یکی میکنیم و بهم نزدیک میکنیم، مثلا اگر لوکیشن ویدئو ثابت باشد، ما هر ثانیه بجای تغییر بکبهیک فریمها و تصاویر، میایم جاهایی ثابت رو حفظ میکنیم و فقط پیکسلهای متحرک را تغییر میدهیم.
این کار هم به یک هوش مصنوعی یا الگوریتم میسپاریم که خودش تشخیص دهد چه تغییراتی انجام دهد.
یا یه فریم رو مبدأ قرار میدهیم، بعد الگوریتم خودش تصمیم میگیرد در هر ثانیه، این فریم را بارها و بارها چطور و چگونه نمایش دهد.
در مبحث صدا هم همینطور.
تشکر، مسلما لب کلام بیشتر از این حرفها ست و عظمت بسیاری دارد.
دم شما گرم آقای ملکی! خسته نباشید!
زندهباد دوست من