مقدمه: توهمی به نام استریم روان
شما روی کاناپه نشستهاید، اپلیکیشن یوتیوب یا نتفلیکس را در تلویزیون هوشمند خود باز میکنید و با فشردن یک دکمه، تماشای یک مستند حیاتوحش را با کیفیت خیرهکننده 4K آغاز میکنید. تصویر بدون هیچ تأخیری پخش میشود؛ پرهای یک عقاب با وضوح کامل در باد تکان میخورد و قطرات آب رودخانه زیر نور خورشید میدرخشند. همه چیز آنقدر طبیعی و روان است که ما این فرآیند را بدیهی میدانیم. اما در پشت صحنهی این تجربه بینقص، یکی از بزرگترین جنگهای ریاضیاتی و مهندسی تاریخ در جریان است.

حقیقت این است که اینترنت، زیرساخت فیزیکی، کابلهای زیر اقیانوسها و سرورهای عظیم دیتاسنترها، در حالت عادی توانایی انتقال این حجم از دادههای خام را ندارند. اگر ویدیوها به همان شکل خامی که توسط لنز دوربین ثبت میشوند به اینترنت فرستاده میشدند، ستون فقرات شبکه جهانی وب در کمتر از چند ثانیه فرو میریخت و سرورهای غولپیکری مانند سرورهای یوتیوب زیر بار پردازش منفجر میشدند. نجاتدهنده بشریت در این بحران داده، نه کابلهای قطورتر بود و نه پردازندههای سریعتر؛ بلکه الگوریتمهای نامرئی و پیچیدهای به نام «کدکهای ویدیویی» (Video Codecs) بودند. این مقاله روایتی است از جادوی فشردهسازی؛ هنر فریب دادن چشم انسان و مهار کردن سیلاب بیرحم پیکسلها.
برای درک عظمت کاری که کدکها انجام میدهند، ابتدا باید با کابوس «ویدیوی خام» (Uncompressed Video) روبرو شویم. بیایید یک محاسبه ریاضی ساده انجام دهیم. یک ویدیوی استاندارد Full HD دارای رزولوشن 1920*1080 پیکسل است. این یعنی در هر فریم (قاب) از تصویر، بیش از 2,073,600 پیکسل وجود دارد.

در دنیای دیجیتال، برای نمایش رنگ هر پیکسل معمولاً از 24 بیت (معادل 3 بایت) داده استفاده میشود (ترکیب سه رنگ قرمز، سبز و آبی). بنابراین، حجم تنها یک فریم از این ویدیو برابر با 6.2 مگابایت است. حالا در نظر بگیرید که یک ویدیوی روان معمولاً با نرخ 30 فریم بر ثانیه پخش میشود. با یک ضرب ساده متوجه میشویم که یک ثانیه ویدیوی خام Full HD نیازمند پردازش و انتقال 186 مگابایت داده است!
این یعنی یک دقیقه ویدیوی خام به بیش از 11.1 گیگابایت فضا نیاز دارد. حالا تصور کنید پلتفرمی مانند یوتیوب که در آن کاربران در هر دقیقه بیش از 500 ساعت ویدیو آپلود میکنند، اگر قرار بود میزبان ویدیوهای خام باشد، چه فاجعهای رخ میداد؟ هزینه پهنای باند و ذخیرهسازی، هر شرکتی در کره زمین را ظرف چند روز ورشکسته میکرد. اینجاست که نیاز به یک «مترجم» و «فشردهساز» حیاتی میشود؛ نیازی که به تولد کدکها انجامید.
کلمه Codec مخفف Coder-Decoder (رمزگذار-رمزگشا) است. وظیفه یک کدک این است که حجم عظیم دادههای ویدیویی را پیش از ارسال مچاله کند و در مقصد، آن را دوباره باز کرده و به نمایش بگذارد. اما چگونه میتوان حجم یک ویدیو را تا 99% کاهش داد بدون اینکه بیننده متوجه افت کیفیت فاحشی شود؟ مهندسان برای این کار به ترکیبی از ریاضیات پیشرفته و زیستشناسی متوسل شدند.
اولین تکنیک کدکها، سوءاستفاده از نقاط ضعف بینایی انسان است. چشم انسان به تغییرات روشنایی (Luminance) بسیار حساستر از تغییرات رنگ (Chrominance) است. الگوریتمهای فشردهسازی با استفاده از تکنیکی به نام Chroma Subsampling، بخش بزرگی از اطلاعات رنگی تصویر را دور میریزند، در حالی که اطلاعات روشنایی را حفظ میکنند. مغز ما این کمبود رنگ را به طور خودکار جبران میکند و ما هرگز متوجه نمیشویم که نیمی از پیکسلهای روی صفحه در واقع اطلاعات رنگی مستقلی ندارند.
اما جادوی اصلی کدکها نه در دستکاری رنگ، بلکه در مفهومی به نام «فشردهسازی زمانی» (Temporal Compression) نهفته است. در اوایل دهه 2000، زمانی که استاندارد انقلابی H.264 در سال 2003 متولد شد، این تکنیک به بلوغ رسید.
فرض کنید در حال تماشای اخبار هستید. یک گوینده پشت میز نشسته و صحبت میکند. در طول 30 فریمی که در یک ثانیه پخش میشود، پسزمینه تصویر (میز، دیوار، لوگوی شبکه) کاملاً ثابت است و تنها لبها، چشمها و دستان گوینده حرکت میکنند. اگر بخواهیم اطلاعات دیوار پشت سر گوینده را در هر 30 فریم دوباره ذخیره و ارسال کنیم، پهنای باند را هدر دادهایم.

الگوریتمهای پیشرفتهای مانند H.264 ویدیو را به سه نوع فریم تقسیم میکنند:
با استفاده از این «بردارهای حرکتی» (Motion Vectors)، الگوریتمهای ریاضی توانستند حجم فایلها را به کسری از مگابایت در ثانیه برسانند و رویای پخش زنده ویدیو در بستر اینترنت را محقق کنند.

در 23 آوریل 2005، جواد کریم، یکی از همبنیانگذاران یوتیوب، اولین ویدیوی این پلتفرم با نام “Me at the zoo” را آپلود کرد. این ویدیوی19 ثانیهای با کیفیت بسیار پایین، نقطه آغازین یک امپراتوری بود. در آن زمان، یوتیوب از فرمتهای پلتفرم Adobe Flash و کدک قدیمی Sorenson Spark استفاده میکرد.
با رشد نمایی یوتیوب و خریداری شدن آن توسط گوگل در سال 2006 با مبلغ 1.65 میلیارد دلار، ترافیک سایت به شکل وحشتناکی بالا رفت. زیرساختهای سرور گوگل تحت فشار شدیدی بودند. راه نجات، مهاجرت سریع به سمت کدک H.264 بود که توسط گروه مشترک ITU و MPEG توسعه یافته بود. سختافزارهای موبایل (از جمله اولین آیفون در سال 2007) به چیپهای مخصوصی مجهز شدند که میتوانستند H.264 را بدون درگیر کردن پردازنده اصلی رمزگشایی کنند. این اتحاد نرمافزار و سختافزار باعث شد یوتیوب بتواند میلیاردها بازدید روزانه را مدیریت کند.
در اواسط دهه 2010، با ورود تلویزیونها و دوربینهای 4K، رزولوشن تصاویر چهار برابر شد ( 3840×2160). کدک افسانهای H.264 دیگر پاسخگو نبود. بازار به استانداردی نیاز داشت که بتواند این حجم عظیم را با نصف پهنای باند قبلی منتقل کند.
اینجا بود که استاندارد H.265 (یا HEVC) در سال 2013 معرفی شد. این کدک با استفاده از بلوکهای پردازشی بزرگتر (تا 64*64 پیکسل به جای 16*16) و الگوریتمهای پیشبینی بسیار سنگینتر، توانست بازدهی فشردهسازی را 50% افزایش دهد.
اما یک مشکل بزرگ وجود داشت: پول و انحصار.
کدک $H.265$ درگیر شبکهای پیچیده از حقامتیازها (Patents) بود. شرکتهای سازنده دستگاه، پلتفرمهای استریم و تولیدکنندگان نرمافزار باید میلیونها دلار حق لایسنس به گروههایی مانند MPEG LA، HEVC Advance و Velos Media پرداخت میکردند. این هزینههای گزاف برای شرکتی مانند گوگل که مدل کسبوکارش بر پایه دسترسی رایگان استوار بود، غیرقابل قبول به نظر میرسید.
گوگل که متوجه خطر انحصار کدکها شده بود، استراتژی جدیدی را آغاز کرد. آنها شرکت On2 Technologies را در سال 2010 به مبلغ بیش از 100 میلیون دلار خریدند تا به تکنولوژی کدکهای آنها دست یابند. نتیجه این خرید، توسعه کدک اختصاصی و رایگان گوگل به نام VP9 بود.
گوگل با قدرت انحصاری خود در مرورگر کروم و پلتفرم یوتیوب، شروع به استفاده از VP9 کرد. آنها میلیاردها ساعت ویدیو را در سرورهای خود با VP9 بازتولید کردند تا به جای پرداخت حق لایسنس به شرکتهای ثالث، پهنای باند را با تکنولوژی اختصاصی خودشان ذخیره کنند. برای پردازش این حجم از فشردهسازی سنگین، گوگل حتی مجبور شد چیپهای سختافزاری اختصاصی به نام VCU (Video Coding Unit) با نام رمز Argos را در دیتاسنترهای خود نصب کند، زیرا پردازندههای معمولی اینتل توانایی این حجم از تبدیل ویدیو را نداشتند.
اما جنگ در اینجا متوقف نشد. غولهای فناوری متوجه شدند که وابستگی به یک شرکت خاص (حتی استاندارد سنتی MPEG) خطرناک است. در سال 2015، اتفاقی بیسابقه رخ داد: بزرگترین رقبای دنیای فناوری با هم متحد شدند. شرکتهایی نظیر گوگل، اپل، مایکروسافت، آمازون، نتفلیکس، متا و اینتل، کنسرسیومی به نام «اتحاد برای رسانههای باز» (Alliance for Open Media) تشکیل دادند.

هدف آنها ساختن یک کدک ویدیویی پادشاه بود که برای همیشه از چنگال حقامتیازها آزاد باشد. نتیجه این اتحاد در سال 2018 با نام AV1 منتشر شد. الگوریتمی به شدت پیچیده که میتواند ویدیوها را با کیفیتی بسیار بالاتر از H.265 و با پهنای باندی کمتر فشرده کند و از همه مهمتر، کاملاً رایگان (Royalty-free) است. امروزه وقتی شما یک ویدیوی باکیفیت در نتفلیکس یا یوتیوب میبینید، به احتمال بسیار زیاد در حال تماشای شاهکار مهندسی AV1 هستید.
ما در دورانی زندگی میکنیم که ویدیو، زبان اصلی اینترنت است. از کلاسهای آموزش آنلاین در دوران پاندمی و تماسهای ویدیویی با عزیزانمان در آن سوی کره زمین، تا پخش زنده مسابقات جام جهانی برای میلیاردها نفر؛ هیچکدام از اینها بدون وجود کدکهای ویدیویی امکانپذیر نبود.
الگوریتمهای فشردهسازی، مرزهای فیزیک و محدودیتهای کابلهای نوری را با قدرت ریاضیات و درک هوشمندانه از بینایی انسان دور زدند. داستان فشردهسازی ویدیو، داستان تقابل ظرافت نرمافزاری در برابر خشونت حجم دادههاست. مهندسان پشت پروژههای H.264، VP9 و AV1 قهرمانان نامرئی اینترنت هستند؛ کسانی که با نوشتن خطوط کد و معادلات ریاضی، جلوی انفجار دیتاسنترها را گرفتند و اجازه دادند جهان بدون وقفه، درخشان و روان به استریم کردن ادامه دهد.