H.265 در برابر H.264؛ نگاهی به برتریهای استاندارد جدید فشردهسازی ویدئو (قسمت اول)
هر موقع که فیلم یا سریالی را دانلود میکنید، به تماشای یک فیلم بلو-ری مینشینید و یا ویدئوهای اینترنتی را مشاهده میکنید، به احتمال زیاد ویدئویی که میبینید با استاندارد H.264 کدگذاری شده است.
به طور کلی تمام ویدئوهایی که با آنها سروکار داریم، از قبل به نحوی فشرده شدهاند تا برای مصارف معمول حجم معقولی داشته باشند. از ویدئوهای بدون افت کیفیت (Lossless) تنها در مصارف خاصی مانند ساخت فیلم در استودیوهای فیلمسازی استفاده میشود. جالب است بدانید هر دقیقه از یک ویدئوی فشرده نشدهی فول اچدی، ۷ گیگابایت فضا اشغال خواهد کرد و بنابراین یک فیلم دو ساعته در صورتی که فشرده نشده باشد ۸۴۰ گیگابایت حجم خواهد داشت.
تمام ویدئوهایی که با آنها سروکار داریم، از قبل به نحوی فشرده شدهاند
قبل از اینکه به معرفی استاندارد جدید و مقایسهی آن با استاندارد قدیمی بپردازیم، بهتر است ابتدا ببینیم کدگذاری ویدئویی به چه معنا است و با اصطلاحات مربوط به استانداردهای فشردهسازی ویدئو بهتر آشنا شویم.
فرمتهای کدگذاری ویدئو
فرمتهای کدگذاری بر روی ویدئو (video coding format) که با نام «استانداردهای فشردهسازی ویدئویی» نیز شناخته میشوند، قالبهایی برای ارائه، ذخیرهسازی و یا انتقال محتوای دیجیتال هستند. مثالهایی از فرمتهای کدگذاری عبارتند از MPEG-2 Part 2, MPEG-4 Part 2, H.264 (MPEG-4 Part 10), HEVC, Theora, Dirac, RealVideo RV40, VP8, و VP9. باید به این نکته توجه داشت که این فرمتهای کدگذاری تنها برای ویدئو هستند و فایلهای صوتی را نمیتوان به وسیلهی آنها فشرده کرد. ویدئویی که توسط یکی از این استانداردها کدگذاری شود، باید همراه با یک فایل صوتی که با استاندارد مربوط به خودش کدگذاری شده است، در یک «ظرف حمل محتوای دیجیتال» یا کانتِینر بستهبندی شود. در ادامه راجع به کانتینرها بیشتر توضیح خواهیم داد.
کُدک های ویدئویی
نباید فرمتهای کدگذاری ویدئویی را با کدکهای ویدئویی اشتباه گرفت. نرمافزار یا سختافزار خاصی که قادر به فشردهسازی و یا غیر فشردهسازی با استفاده از یک استاندارد کدگذاری ویدئویی خاص باشد، کُدک ویدئویی (Video Codec) نامیده میشود. برای مثال میتوان به کدک Xvid اشاره کرد که با استفاده از استاندارد MPEG-4 Part 2 ویدئوها را فشرده میکند. برای مقایسهی دو اصلاح مطرح شده میتوان از این مثال استفاده کرد: نسبت «فرمت کدگذاری» به یک «کدک ویدئویی» مانند نسبت «زبان برنامه نویسی C» به یک «کامپایلر» مثل GCC است.
پس این میان تکلیف پسوند فایلها، مانند پسوند معروف mkv چه میشود؟
ظروف حمل محتوای دیجیتال یا کانتِینرها
یکی از اشتباهات رایج دیگر، اشتباه گرفتن «ظروف حمل محتوای دیجیتال» با استانداردهای کدگذاری و یا کدکهای ویدئویی است. حتماً تا به حال تعریف و تمجید از «فرمت mkv» و کیفیت برتر آن نسبت به دیگر «فرمتها و یا کدکهای ویدئویی» را شنیدهاید. حال آنکه چنین جملاتی از پایه غلط هستند. یک ظرف حمل محتوای دیجیتال (digital container format)، تنها قالبی برای در بر گرفتن ویدئو، صدا، منو، زیرنویس و موارد اینچنینی است. از جمله ظروف حمل محتوای دیجیتال میتوان به نمونههای زیر اشاره کرد:
(mkv) Matroska، (flv) Flash Video، (avi) AVI، (mov) QuickTime File Format، (mp4) MPEG-4 ، (wmv) Windows Media Video، (3gp) 3GPP و (vob) Vob
این ظروف یا کانتینرها، تنها میتوانند اطلاعات محدودی دربارهی اینکه ویدئو و صدای موجود در فایل به چه فرمتی ممکن است باشند به ما ارائه دهند. برای مثال ظرف flv تنها قادر به نگهداری از چند نوع فرمت کدگذاری مانند H.264 است. همچنین فرمتهای صوتی که این ظرف از آنها پشتیبانی میکند نیز انگشتشمار هستند.
mkv اساساً یک ظرف حمل محتوا است، نه یک استاندارد فشرده سازی و یا کدک ویدئویی
این درحالی است که ظرف mkv میتواند تقریباً هر فرمت ویدئویی و یا صوتی را در بر بگیرد و در عین حال قابلیتهایی مانند منو، داشتن چندین فایل صوتی و داشتن چند زیرنویس را نیز ارائه میدهد. پس دلیل محبوبیت mkv ربطی به کیفیت و یا میزان فشردهسازی آن ندارد؛ چرا که mkv اساساً یک ظرف حمل محتوا است، نه یک استاندارد فشردهسازی و یا کدک ویدئویی.
نرخ بیت یا بیترِیت
به طور کلی، نرخ بیت یا بیت رِیت (Bit rate) یکی از مهمترین عوامل تعیینکنندهی کیفیت فایلهای صوتی و تصویری است. حجم فایلهای ویدئویی با واحد بیت بر ثانیه بیان میشود. نرخ بیت میتواند در طول ویدئو ثابت (Constant BitRate) یا متغیر (Variable BitRate) باشد. حتماً از قبل میدانید که هر بایت از ۸ بیت تشکیل شده است؛ پس ویدئویی که هر ثانیه از آن ۱ مگابایت فضا اشغال کند، بیت ریتی برابر با ۸ مگابیت بر ثانیه (8 mbps) خواهد داشت. برای مثال نرخ بیت ویدئوهای بلو-ری برابر با 20 mbps، DVD استاندارد برابر با 6 mbps و ویدئوهای 720p یوتیوب برابر با 2.5 mbps است. همانطور که متوجه شدهاید، نرخ بیت یا به بیان بهتر «حجم فایل ویدئو» تنها عامل تعیینکنندهی کیفیت آن نیست؛ چرا که به صورت تجربی میدانیم ویدئوهای HD یوتیوب کیفیت بهتری نسبت به DVD دارند.
در واقع تمام هنر استانداردهای کدگذاری ویدئویی هم در این است که در یک نرخ بیت خاص، کیفیت بهتری ارائه کنند. به همین دلیل هنگام مقایسهی کیفیت دو فرمت کدگذاری، آنها را در بیت رِیت برابر با هم مقایسه میکنند.
حالا که با اصطلاحات مقدماتی مبحث فشردهسازی ویدئو آشنا شدیم، بهتر است به موضوع اصلی بازگردیم؛ استاندارد جدید H.265.
هر آنچه دربارهی HEVC/H.265 باید بدانید
از جمله دلایل موفقیت و محبوبیت استاندارد پیشین (H.264) در سالهای اخیر میتوان به کیفیت بالای آن در نرخ بیت پایین و پشتیبانی گستردهی دستگاههای پخش از آن اشاره کرد؛ بطوری که تقریباً تمامی دستگاههایی که ظرف ۵ تا ده سال گذشته ساخته شدهاند قادرند فایلهای ویدئویی که با این استاندارد کدگذاری شده باشند را پخش کنند. این استاندارد همچنین بسیار منعطف است و علاوه بر استفاده در ویدئوهای با نرخ بیت پایین، در ویدئوهای با کیفیت و دارای نرخ بیت بالا مانند بلو-ری هم استفاده میشود.
در حالی که استاندارد H.264 همچنان کارایی بسیار خوبی از خود نشان میدهد، استاندارد جدیدی آمده است تا مرزهای کارآمدی و بهینه بودن کدگذاری ویدئویی را بار دیگر جابجا کند. این استاندارد که اولین بار در سال ۲۰۱۳ معرفی شد، HEVC یا «کدگذاری ویدئویی پربازده» (High Efficiency Video Coding) نام دارد و ازآنجایی که آمده است تا جانشین شایستهای برای H.264 باشد، با نام H.265 نیز شناخته میشود. (در این متن برای جلوگیری از بروز اشتباه، هنگام اشاره به استاندارد جدید از HEVC استفاده خواهیم کرد.)
برتری اصلی HEVC نسبت به H.264 در این است که در کیفیتهای یکسان، نرخ فشردهسازی دوبرابری ارائه میکند. این یعنی ویدئویی که با استفاده از HEVC فشرده شود، حجمی برابر با نصف ویدئوی مشابهی که با استفاده از استاندارد H.264 فشرده شده است اشغال خواهد کرد و این در حالی است که کیفیت هر دو ویدئو تقریباً یکسان خواهد بود.
HEVC بسیاری از ویژگیهای خود را از H.264 وام گرفته است؛ برای مثال در هر دو این استانداردها از تکنیکی با نام «پیشبینی جبرانی حرکت» (motion compensated prediction) برای پیدا کردن نواحی زائد در یک فریم استفاده میشود. منظور از نواحی زائد، قسمتهایی از تصویر است که در چندین فریم تغییری نمیکنند و میتوان به جای تکرار آنها در هر فریم و اختصاص حجم اضافه به این قسمتها، تنها یک نسخه از آنها را نگه داشته و در فریمهای مختلف از همان یک نسخه استفاده کرد. در استاندارد H.264 اندازهی این قسمتها به قطعات مربعی شکل ۱۶ در ۱۶ پیکسل محدود میشد؛ اما با افزایش این اندازه به ۶۴ در ۶۴ پیکسل در استاندارد HEVC، مقدار فشردهسازی ویدئو افزایش چشمگیری خواهد داشت.
دیگر بهبودهای HEVC نسبت به استاندارد قبلی که اجازهی فشردهسازی بیش از پیش را به آن میدهند عبارتند از تقسیمبندی بلوکها با سایز متغییر (ariable-block-size segmentation)، فیلترهای جبران حرکت (motion compensation filters)، فیلترینگ تطبیقی آفست (adaptive offset filtering) و پیشبینی برداری حرکتِ بهبود یافته (motion vector prediction).
اگر دوست دارید با جزئیات فنی هر کدام از عبارات بالا آشنا شوید، میتوانید به این صفحه از وبسایت گروه x265 که مسئولیت توسعهی استاندارد جدید را بر عهده دارند مراجعه کنید.
از آنجایی که HEVC استاندارد نسبتاً جدیدی به شمار میرود، هنوز به اندازهی H.264 با دستگاههای پخشکننده سازگار نیست. بسیاری از دستگاهها، «سخت افزار» مخصوص برای کدگشایی از ویدئوهای H.264 دارند، در حالی که سختافزارهایی که قادر به کدگشایی از HEVC باشند بسیار کمتر متداول هستند. البته این به معنای عدم توانایی پخش HEVC بر روی دستگاههای امروزی نیست؛ چرا که علاوه بر روش سختافزاری، به صورت نرمافزاری نیز میتوان ویدئوهای HEVC را کدگشایی و پخش کرد. اما نکتهی اصلی اینجاست که کدگشایی نرمافزاری از ویدئو هیچگاه به اندازهی کدگشایی سختافزاری بهینه نخواهد بود و اگر میخواهید پخش روان و بدون مشکل فایلهای ویدئویی HEVC را تجربه کنید، بهتر از سختافزار شما از آن پشتیبانی کند.
در اینجا به لیستی از سختافزارهایی که قسمت خاصی برای کدگشایی از HEVC در آنها در نظر گرفته شده است اشاره میکنیم:
- پردازندههای نسل ۶ «اسکایلیک» اینتل و یا مدلهای جدیدتر
- APUهای نسل ۶ «کاریزو» AMD و یا مدلهای جدیدتر
- کارتهای گرافیک سری «فیجی» AMD (Radeon R9 Fury/Fury X/Nano) و یا مدلهای جدیدتر
- کارتهای گرافیک سری GM206 (GeForce GTX 960/950) و یا مدلهای جدیدتر
- پردازندههای اسنپدراگون 805/615/410/208 کوالکام و یا مدلهای جدیدتر
- چیپهای انویدیا تگرا X1 و یا مدلهای جدیدتر
- پردازندهی اکسینوس 5 Octa 5430 سامسونگ یا مدلهای جدیدتر
- پردازندهی A8 اپل یا مدلهای جدیدتر
همانطور که ملاحظه میکنید، اکثر سختافزارهای کامپیوترهای دسکتاپ که در سال ۲۰۱۵ معرفی شدهاند و همینطور بیشتر سختافزارهای موبایل که از اواخر سال ۲۰۱۴ عرضه شدهاند از پخش سختافزاری HEVC پشتیبانی میکنند. دلیل اینکه تولیدکنندگان تمرکز خود را ابتدا بر روی پشتیبانی از HEVC در پردازندههای موبایلی معطوف کردهاند، قدرت کمتر این پردازندهها نسبت به نمونههای مشابه دسکتاپ است. پردازندههای دسکتاپ حتی اگر به صورت سختافزاری هم از HEVC پشتیبانی نکنند، با توجه به قدرت بالای خود میتوانند ناکارآمدی ناشی از کدگشایی را به روش نرمافزاری را جبران کنند.
پشتیبانی سختافزاری از HEVC برای تلفنهای هوشمند و تبلتها بسیار مهم است؛ چرا که آنها به آسانی نمیتوانند فقط توسط نرمافزار HEVC را پخش کنند. همانطور که در قسمت پایین سمت راست تصویر زیر میبینید، کوالکام در پوستر معرفی اسنپدراگون 810 به قابلیت پشتیبانی از HEVC اشاره کرده است.
اگر کامپیوتر یا لپتاپ شما به صورت سختافزاری از HEVC پشتیبانی نمیکند، به معنای عدم توانایی شما در پخش فایلهای ویدئویی نیست. حتی کامپیوترهایی با سختافزار سال ۲۰۱۱ و پردازندهی سلرون (Celeron) اینتل هم قادر به پخش فایلهای HEVC هستند. در صورت کلی اگر کامپیوتر شما «خیلی قدیمی» نباشد، در پخش ویدئوهای استاندارد جدید به مشکلی بر نخواهید خورد.
چیزی که بیشتر باید نگرانش باشید، پشتیبانی نکردن دستگاههای پخش و تلویزیونها (منظور پخش از طریق حافظهی جانبی توسط خود تلویزیون است) از استاندارد جدید است. مشکل چنین دستگاههایی اغلب پردازندهی ضعیف، عدم وجود نرمافزار مناسب برای کدگشایی به صورت نرمافزاری یا ترکیبی از این دو دلیل است.
لیست دستگاههایی که از HEVC پشتیبانی نمیکنند:
- کروم کست گوگل (نسل یک و دو)
- اپل TV (هرچند بنا به برخی گزارشها با استفاده از اپلیکیشن VLC بر روی نسل چهار این دستگاه امکان پخش HEVC وجود دارد)
- رکو (Roku) نسل سه به قبل
- فایر TV آمازون (مدل ۲۰۱۴)
- تمامی محصولات تلویزیونی وسترن دیجیتال
- تمامی کنسولهای پلیاستیشن
- ایکسباکس ۳۶۰
لیست دستگاههایی که از HEVC پشتیبانی میکنند:
- Roku 4
- فایر TV آمازون (مدل ۲۰۱۵)
- ایکسباکس وان
لیست بالا شاید کامل نباشد، اما نشان میدهد که تعداد دستگاههایی که از HEVC پشتیبانی میکنند انگشت شمار هستند. ایکسباکس وان تنها کنسولی است که قادر به پخش ویدئوی HEVC است؛ که البته آن هم با یک آپدیت و به صورت نرمافزاری در اختیار دارندگان این کنسول قرار گرفته است.
در حالی که HEVC مزایای فراوانی دارد، در حال حاضر تنها کامپیوترها، تلفنهای هوشمند بالارده و طیف کمی از پخشکنندهها و کنسولها قادر به پخش آن هستند و این یکی از معایب استاندارد جدید نسبت به استاندارد قدیمی به شمار میرود.
از سختافزار که بگذریم، هر نرمافزاری نیز قادر به پخش فایل های کدگذاری شده به روش HEVC نست. ویندوز ۱۰ به صورت پیشفرض قادر به پخش فایلهای HEVC از طریق اپلیکیشن Films & TV و یا نرمافزار Windows Media Player است. همچنین در نسخههای قدیمیتر ویندوز نیز میتوانید از نرمافزارهای VLC و یا MPC-HC (مدیا پلیر کلاسیک) برای پخش این فایلها استفاده کنید.
اگر از Mac OS X یا iOS استفاده میکنید، VLC بهترین انتخاب برای شما است. در اندروید نیز اگر سختافزار دستگاه شما به نسبت قوی است، میتوان از MX Player برای پخش HEVC به صورت نرمافزاری استفاده کرد.
در قسمتهای بعد به مقایسهی عملکرد HEVC هنگام پخش در مقایسه با H.264، چگونگی تبدیل فایلها توسط استاندارد جدید و مقایسهی کیفیت ویدئوهایی که توسط این دو استاندارد فشرده شدهاند خواهیم پرداخت.
این مقاله ادامه دارد...