هر فایل ویدیویی شامل استریم صدا، تصویر و احتمالاً استریم‌های دیگری مثل زیرنویس است. Bit Rate از نظر لغوی نرخ بیت ترجمه می‌شود و بیت‌ریت استریم ویدیو به این معنی است که در هر ثانیه چند بیت داده برای فشرده‌کردن و یا پخش ویدیو به کار می‌رود. در ادامه با بررسی و محاسبه‌ی بیت‌ریت و همین‌طور بیت‌ریت مناسب جهت فشرده‌سازی ویدیوها و فایل‌های صوتی آشنا می‌شویم.

بیت‌ریت ویدیو و صدا چیست؟

هر فایل ویدیویی شامل استریم صدا، تصویر و احتمالاً استریم‌های دیگری مثل زیرنویس است. Bit Rate از نظر لغوی نرخ بیت ترجمه می‌شود و بیت‌ریت استریم ویدیو به این معنی است که در هر ثانیه چند بیت داده برای فشرده‌کردن و یا پخش ویدیو به کار می‌رود.

بیت‌ریت متغیر بهتر از بیت‌ریت ثابت است.

دقت کنید که در گذشته بیت‌ریت صدا و تصویر ثابت بود اما این روزها تمامی کدک‌های فشرده‌سازی صدا و تصویر از روش بیت‌ریت متغیر یا Variable Bitrate استفاده می‌کنند تا بسته به میزان داده‌ی مورد نیاز در هر زمان خاصی، بیت‌ریت مناسب انتخاب شود. بدین ترتیب گاهی بیت‌ریت بسیار زیاد است و گاهی در صحنه‌های ثابت و تیره، بیت‌ریت بسیار کم می‌شود. اگر از یک کدک خاص استفاده کنیم، هر چه بیت‌ریت نوسان بیشتری داشته باشد، کیفیت ویدیو هم بالاتر است البته به شرطی که الگوریتم تخصیص بیت‌ها کاملاً بهینه و هوشمند باشد.

به عنوان مثال اگر حجم یک فایل ویدیویی بدون صدا 10 مگابایت باشد و مدت زمان آن 10 ثانیه، در هر ثانیه به طور متوسط 1 مگابایت داده (هر مگابایت معادل 1000 کیلوبایت است) به صورت تصویر متحرک پخش می‌شود و بایت‌ریت (هر بایت معادل 8 بیت است) 1000 کیلوبایت بر ثانیه و بیت‌ریت 8000 بیت بر ثانیه به دست می‌آید.

بیت‌ریت صدا و ویدیوی فشرده شده

و چند عدد مفید که بهتر است حفظ کنیم:

  • بیت‌ریت ویدیوی 720p با اینکدر x264 حدود 900 کیلوبیت بر ثانیه
  • بیت‌ریت ویدیوی 1080p با اینکد x264 حدود 1800 کیلوبیت بر ثانیه
  • بیت‌ریت صدای 2 کاناله با کدک AAC (اینکدر Nero یا Apple) برای فیلم‌های فشرده: حدود 80 کیلوبیت بر ثانیه
  • بیت‌ریت صدای 5.1 کاناله با کدک AAC (محصول Nero یا Apple) برای فیلم‌های فشرده: حدود 160 کیلوبیت بر ثانیه
  • بیت‌ریت صدای 2 کاناله برای فیلم‌های فشرده: حدود 80 کیلوبیت بر ثانیه
  • بیت‌ریت MP3 معمولی: 128 کیلوبیت بر ثانیه
  • بیت‌ریت MP3 با کیفیت بالا: 320 کیلوبیت بر ثانیه

اعداد فوق واقعی است و با بررسی ویدیو‌های مختلف به دست آمده است. برای بررسی دقیق می‌توانید از نرم‌افزار Media info استفاده کنید که البته به صورت بخشی از پلیر حرفه‌ای و قدرتمند PotPlayer هم قابل استفاده است.

بررسی بیت‌ریت ویدیو توسط PotPlayer

بررسی بیت‌ریت ویدیو توسط PotPlayer

دو نمونه ویدیوی H.264 با اینکدر x264:

بیت‌ریت یک ویدیوی H.264 با کدک x264 و سرعت 24 فریم بر ثانیه و رزولوشن 1080p

بیت‌ریت یک ویدیوی H.264 با اینکدر x264 و سرعت 24 فریم بر ثانیه و رزولوشن 1080p

بیت‌ریت یک ویدیوی H.264 با کدک x264 و سرعت 24 فریم بر ثانیه و رزولوشن 720p

بیت‌ریت یک ویدیوی H.264 با اینکدر x264 و سرعت 24 فریم بر ثانیه و رزولوشن 720p

در فیلم‌برداری با دوربین گوشی‌های امروزی که حتی از 4K هم پشتیبانی می‌کنند بیت‌ریت بسیار بالاست و به 30 کیلوبیت بر ثانیه می‌رسد. حتی ویدیوهای 1080p با سرعت 24 فریم بر ثانیه هم حجم مشابهی دارند.

تصویر زیر گویای این حقیقت است که ویدیوها بدون فشرده‌سازی شدید، می‌توانند بسیار حجیم باشند و بیت‌ریت ویدیوی 1080p با کیفیت عالی، حدود 12000کیلوبیت بر ثانیه است.

بیت‌ریت متداول برای ویدیوهای مختلف

بیت‌ریت متداول برای ویدیوهای مختلف

بیت‌ریت فایل‌های صوتی و تفاوت MP3 128 با MP3 320 و AAC 80

در مورد فایل‌های صوتی اغلب این تصور وجود دارد که کیفیت MP3 با بیت‌ریت 320 بسیار بالاتر از MP3های 128 کیلوبیت بر ثانیه‌ای است و از طرفی AAC با بیت‌ریت 80 کیفیت پایینی دارد. در نمودار زیر تخمینی از کیفیت شنیداری حالات مختلف ارایه شده و همان‌طور که مشاهده می‌کنید بیت‌ریت بالاتر از 128 در بخشی از منحنی قرار گرفته که با شیب اندکی افزایش پیدا می‌کند. بنابراین MP3 با بیت‌ریت 320 از نظر کیفیت اختلاف چندانی با AAC با بیت 80 کیلوبیت بر ثانیه‌ای ندارد.

کیفیت صدا با فرمت‌ها و بیت‌ریت‌های مختلف

کیفیت صدا با فرمت‌ها و بیت‌ریت‌های مختلف

و نتیجه‌ی یک تست شنیداری عمومی نشان می‌دهد که Apple AAC با بیت‌ریت 104 بهتر از اینکدر LAME (فایل‌های mp3) با بیت‌ریت حدود 136 کیلوبیت بر ثانیه است:

کیفیت صدا با فرمت‌ها و بیت‌ریت‌های مختلف

کیفیت صدا با فرمت‌ها و بیت‌ریت‌های مختلف

کانورت ویدیو و محاسبه بیت‌ریت مناسب

دو برابر شدن سرعت ویدیو و دو برابر شدن بیت‌ریت موردنیاز.

سرعت ویدیو و رزولوشن آن در بیت‌ریت موثر است. اگر از x264 یا x265 برای تبدیل ویدیو و فشرده‌سازی استفاده کنیم، بیت‌ریت باید متناسب با رزولوشن و سرعت ویدیو و همین‌طور توجه به نوع ویدیو انتخاب شود. به عنوان مثال برای یک فیلم 1080p انتخاب بیت‌ریت 2000 مطلوب است اما به شرطی که ویدیو با سرعت 24 یا 25 فریم بر ثانیه ضبط شده باشد و نه سرعتی مثل 60 فریم بر ثانیه. با دو برابر شدن سرعت بهتر است بیت‌ریت را هم دو برابر کنیم.

در x265 بیت‌ریت پایین‌تر هم کاربردی است و می‌توان بیت‌ریت ویدیوی 1080p را 1000 تا 1500 در نظر گرفت.

محتوای ویدیو در بیت‌ریت انتخابی بسیار موثر است. به عنوان مثال انیمیشن‌ها فاقد بافت ظریف هستند و رنگ‌ها یک‌دست و ساده است. لذا بیت‌ریت 1000 هم برای یک ویدیوی فول اچ‌دی انتخاب خوبی است. اگر از x265 استفاده شود، می‌توان بیت‌ریتی مثل 700 یا 800 را هم انتخاب کرد.

اما در مورد سایر رزولوشن‌ها و سرعت‌ها چه کنیم؟

بیت‌ریت متناسب با مساحت و در رزولوشن‌های پایین، کمی بیشتر.

ساده‌ترین حالت این است که تنها مساحت را در نظر بگیریم. به عنوان مثال 720p مساحتی در حد 1 مگاپیکسل دارد که نصف 1080p است. لذا بیت‌ریت از 2000 به 1000 تبدیل می‌شود. 360p یا در حقیقت 640 در 360 پیکسل حدوداً یک چهارم 720p است، بنابراین بیت‌ریت از 1000 به 250 تبدیل می‌شود. انتخاب بیت‌ریت در رزولوشن‌های پایین‌تر، با در نظر گرفتن بازدهی کمتر الگوریتم‌های فشرده‌سازی انجام می‌شود، لذا به جای انتخاب 250 کیلوبیت بر ثانیه، از 400 کیلوبیت بر ثانیه استفاده می‌کنیم.

روش دیگر را در ادامه بررسی می‌کنیم که روشی کامل‌تر برای تمامی رزولوشن‌ها و سرعت‌هاست.

متوسط تعداد بیت‌ها برای هر پیکسل، فاکتور کلیدی و اصلی

در مدیا اینفو فاکتوری به اسم:

Bits/(Pixel * Frame)

نمایش داده شده است که با مراجعه به اسکرین‌شات‌ها مشخصات ویدیوی 1080p که قبلاً مرور کردیم، مقدار آن 0.039 است. این عدد برای ویدیوهای مختلف متفاوت است و بهتر است از اعداد 0.06 تا 0.08 استفاده کنید تا کیفیت ویدیو مطلوب باشد. اما مفهوم آن:

متوسط بیت‌های لازم برای ایجاد یا اینکد کردن یک پیکسل، کمیت اصلی در تخمین بیت‌ریت ویدیو.

بیت تقسیم بر حاصل‌ضرب فریم‌ریت و پیکسل‌های یک فریم، در واقع مقدار بیت برای هر پیکسل تصویر را محاسبه شده است. بهتر است به صورت عددی مثال را دنبال کنیم. رزولوشن ویدیوی اشاره شده 1920 در 1040 است و در حقیقت بخش تیره‌ی بالا و پایین تصویر برای کاهش حجم ویدیو به کلی برش خورده است. البته برش زدن ویدیویی که قرار است با x264 فشرده شود، چندان مهم نیست چرا که این اینکدر بخش‌های ثابت تصویر را به راحتی و با سرعت بسیار بالا فشرده می‌کند.

تعداد پیکسل‌های یک فریم تصویر حدود 2 میلیون پیکسل (2 مگاپیکسل) است و با توجه به اینکه در هر ثانیه حدود 24 فریم وجود دارد، به 48 میلیون پیکسل در ثانیه می‌رسیم. برای ایجاد این تعداد پیکسل، 1800 کیلوبیت داده یا در واقع 1.8 میلیون بیت داده استفاده شده ، اگر 1.8 را بر 48 تقسیم کنیم، به عددی در حدود 0.04 بیت بر فریم پیکسل می‌رسیم، همان عددی که در مشخصات ویدیو دیدیم.

حال مثالی از کاربرد این عدد:

عدد مناسب را 0.08 در نظر بگیرید، ویدیوی موردنظر برای فشرده‌سازی هم 640 در 360 پیکسلی است و سرعت آن 24 فریم بر ثانیه. در یک ثانیه‌ی این ویدیو، تعداد پیکسل‌ها 640 در 360 در 24 عدد است و مقدار بیت‌ریت احتمالاً مناسب 640 در 360 در 24 در 0.08، نتیجه‌ی نهایی بیت‌ریت 442 کیلوبیت بر ثانیه‌ایست و به شخصه برای افزایش کیفیت ویدیوهای رزولوشن پایین که معمولاً فشرده‌سازی آنها اندکی دشوارتر است، بیت‌ریت 500 را برای ویدیو انتخاب می‌کنم.

برای تبدیل کردن ویدیو به کمک x264 و x265 بهتر است از نرم‌افزارهایی مثل Hybrid ، Xvid4PSP و یا Handbrake که بسیار ساده طراحی شده استفاده کنید. آپشن‌ها بسیار زیاد و گاهاً گیج‌کننده است. برای سادگی فرآیند کانورت می‌توانید از پریست‌های موجود استفاده کنید.

روش دیگر استفاده از CRF است که در مقاله‌ی فوق توضیح داده شد، بخشی از آن را مرور کنید ,و دقت داشته باشید که اصطلاح CRF نه تنها در x264 بلکه در اینکدرهای ویدیویی مختلفی که تحت استاندارد H.264 و H.265 معرفی شده‌اند، استفاده می‌شود.

کنترل بیت ریت و حجم ویدیو با روش CRF و QP

در x264 برای کنترل کیفیت و حجم ویدیوی تبدیل شده، سه روش کلی وجود دارد. ساده‌ترین روش مشخص کردن بیت ریت یا معادل آن، حجم فایل است. می‌توان از حالت دو مسیره هم استفاده کرد به این صورت که در مسیر اول، اینکدر به سرعت استریم ورودی را تحلیل و بررسی می‌کند و در مسیر دوم تبدیل را با دقتی بالا برای رسیدن به حجم یا بیت ریت متوسطی که مشخص شده، انجام می‌دهد.

 منظور از Quantizer در تنظیمات تبدیل با x264 و بسیاری از اینکدرهای ویدیویی چیست؟

 منظور از کوآنتایزر، بیان کیفیت به صورت یک کمیت یا Quantity است. کوآنتایز کردن یعنی چیزی را با عدد و رقم بیان کردن.

Constant Quantizer برای حفظ کیفیت صحنه‌های پرتحرک و گذرا مناسب است.

روش دوم یعنی qp استفاده از کوآنتایزر برای فریم‌های P است. هر چه کوآنتایزر بیشتر باشد، کیفیت پایین‌تر است. عدد 0 به معنی اینکدینگ بدون افت کیفیت است و اعدادی در محدوده‌ی 18 تا 23، کیفیت خوب استریم خروجی را تضمین می‌کنند. در qp فقط کوآنتایزر فریم‌های P را به اینکدر می‌دهیم. کوآنتایزر دو نوع دیگر یعنی I و B با دو آپشن ipration و bpratio که نسبت کوآنتایزر این دو نوع فریم به کوآنتایزر فریم‌های P را بیان می‌کنند، محاسبه می‌شود. این روش Constant Quantizer نامیده شده چرا که کوآنتایزر همه‌ی فریم‌ها دقیقاً مشخص می‌شود.

حجم ویدیوی نهایی در این روش، قطعاً مشخص نیست اما می‌توان تخمینی از آن داشت. از این رو در برخی نرم‌افزارها، حالت دو مسیره برای تبدیل با آپشن qp و crf هم به چشم می‌خورد حال آنکه در اغلب نرم‌افزارها، qp و crf تنها به صورت یک مسیره قابل استفاده هستند.

CRF بهترین روش است اما کیفیت فریم‌های صحنه‌های پرتحرک و گذرا را پایین می‌آورد.

 روش جالب‌تر Constant Rate Factor است که به صورت مخفف crf گفته می‌شود. هدف این است که در صحنه‌های پرتحرک و فریم‌های پیچیده، کوآنتایزر به صورت هوشمندانه افزایش یابد و کیفیت کمتر شود چرا که چشم انسان آن قدر سریع و دقیق نیست که کیفیت این بخش‌ها را تشخیص دهد. در نتیجه کیفیت بصری حفظ می‌شود و در عین حال حجم فایل کمتر از روش qp خواهد شد. در این روش هم حجم فایل نهایی را می‌توان صرفاً تخمین زد.

x264 در حالت پیش‌فرض از روش سوم یعنی CRF استفاده می‌کند و مقدار کوآنتایزر را 23 در نظر می‌گیرد که برای ویدیوهای باکیفیت خوب است. اگر کیفیت ورودی شما بسیار بالاست، بهتر است سراغ اعدادی مثل 20 تا 22 بروید.

نکته‌ی آخر اینکه عدد 18 در این بخش به مثابه‌ی عدد 4 در اینکدرهای قدیمی استاندارد H.263 است. منظورم به طور دقیق نسخه‌ی تحت H.263 دو اینکدر Xvid و DivX است.

crf-max و qp-max: پیش‌فرض به ترتیب غیرفعال و 51

این دو آپشن برای مشخص کردن بیشترین کوآنتایزر کاربرد دارند. اگر بخواهیم کیفیت فریم‌های کم‌اهمیت هم بالا باشد، باید از اعداد پایین‌تر استفاده کنیم.

عمق رنگ و فضای رنگ و نوع سمپلینگ

در ویدیوهای بسیار باکیفیت از عمق رنگ معمولی که 8 بیت است و می‌تواند 2 به توان 24 رنگ مختلف را ایجاد کند، استفاده نمی‌شود. به جای عمق رنگ 8 بیت از عمق رنگ بالاتر مثل 10 یا 12 بیت استفاده می‌شود. بیت‌ریت چنین ویدیویی به صورت متناسب با عمق رنگ استفاده شده، بیشتر خواهد بود.

علاوه بر این نوع سمپلینگ هم در بیت‌ریت ویدیو تأثیر زیادی دارد. معمولاً ویدیوها و عکس‌ها با فضای رنگ YUV کدنگاری می‌شوند و این فضای رنگ خود به صورت‌های مختلف YUC444 و YUV420 به کار می‌رود.

حالت دوم یعنی YUV4:2:0 حالتی است که رزولوشن موثر و بیت‌ریت متوسط نصف می‌شود. تصویر زیر خلاصه‌ای از ماجراست:

مقایسه رزولوشن و میزان داده در فضای رنگ YUV420با YUV444 و RGB

مقایسه رزولوشن و میزان داده در فضای رنگ YUV420با YUV444 و RGB

و توضیحات بیشتر در این رابطه:

YUV و مشتقات آن

YUV، Y’UV و امروزه YCbCr و YPbPr همگی معادل هم هستند اما تفاوت بزرگی میان آنها وجود دارد. YUV در دوران آنالوگ ظهور کرده و برای سیگنال‌های آنالوگ کاربرد دارد حال آنکه امروزه از YCbCr استفاده می‌شود. مثلاً ویدیوها و فایل‌های تصویری با این فضای رنگ معرفی می‌شوند.

YUV و نوع نمونه‌برداری

همان‌طور که اشاره کردم YUV چیزی است که در دنیای فیلم و عکس به وفور استفاده می‌شود و هدف استفاده از آن کاهش حجم فایل‌ها و پهنای باند مورد نیاز است. البته هدف ابتدایی که در مورد XYZ مطرح شد، در نظر گرفتن حساسیت چشم انسان به رنگ‌های مختلف بود.

برای کاهش حجم و پهنای باند لازم، روش‌های مختلفی برای Sampling یا نمونه‌برداری وجود دارد که اساس همه‌ی آنها، ترکیب سه کمیت روشنایی و رنگ است.

حالت عادی YUV4:4:4 است، منظور از سه عدد ذکر شده در بیشتر حالت‌ها به ترتیب تعداد نمونه‌های افقی، تعداد نمونه‌های رنگ یا همان Cb و Cr در سطر اول و سطر دوم است.

انواع نمونه‌برداری و ترکیب پیکسل‌ها در YUV

انواع نمونه‌برداری و ترکیب پیکسل‌ها در YUV

مثلاً حالت 4:2:2 که یکی از کاربردی‌ترین موارد است، در سطر اول و دوم دو نمونه برای رنگ در نظر می‌گیرد و 4 نمونه هم برای روشنایی 4 پیکسل افقی فرض می‌کند. بدین ترتیب 4 نمونه‌ی رنگ و  8 نمونه‌ی روشنایی برای 8 پیکسل استفاده می‌شود.

حالت فوق را با YUV4:4:4 که به اختصار YUV444 گفته می‌شود، مقایسه کنید؛ در این حالت 8 نمونه برای 8 پیکسل لازم است و لذا 1.5 برابر داده‌ی بیشتری لازم دارد. اگر برای هر پیکسل سه نمونه‌ی RGB استفاده شود، مجموعاً 24 نمونه لازم است و حجم فایل و پهنای باند، باز هم بیشتر می‌شود.

در برخی نرم‌افزارهای ویرایش و تبدیل ویدیو و تصویر، مستقیماً نام YUV422 و انواع دیگر نمونه‌برداری را می‌بینیم اما گاهی عبارات و اصطلاحات دیگری برای اشاره به فضای رنگ و نوع نمونه‌برداری استفاده می‌شود که شاید کمی گیج‌کننده به نظر برسد. مثلاً در تبدیل jpeg یا ویدیو دو مورد زیر را ببینید که از عبارت Subsampling 1×1,1×1,1×1 و i420 استفاده شده است:

تبدیل ویدیو با x264

تبدیل ویدیو با x264

تبدیل تصاویر jpeg

تبدیل تصاویر jpeg