هر فایل ویدیویی شامل بخشهای زیرمجموعه یا استریم است. استریم ویدیو، صدا و موسیقی و احتمالاً استریمهای دیگری مثل زیرنویس ممکن است در یک فایل موجود باشد. Bit Rate از نظر لغوی نرخ بیت ترجمه میشود و بیتریت استریم ویدیو به این معنی است که در هر ثانیه چند بیت داده برای تبدیل تصاویر به کد یا اینکد کردن به کار رفته است. طبعاً بیتریت بالاتر به معنی حجیمتر بودن فایل است اما کیفیت فایل علاوه بر بیتریت یا حجم فایل، به اینکدری که برای فشردهسازی استفاده شده هم وابسته است.
در ادامه با بررسی و محاسبهی بیتریت و همینطور بیتریت مناسب جهت فشردهسازی ویدیوها و فایلهای صوتی آشنا میشویم.
دقت کنید که در گذشته بیتریت صدا و تصویر ثابت بود اما این روزها تمامی کدکهای فشردهسازی صدا و تصویر از روش بیتریت متغیر یا Variable Bitrate استفاده میکنند تا بسته به میزان دادهی مورد نیاز در هر زمان خاصی، بیتریت مناسب انتخاب شود. بدین ترتیب گاهی بیتریت بسیار زیاد است و گاهی در صحنههای ثابت و تیره، بیتریت بسیار کم میشود. اگر از یک کدک خاص استفاده کنیم، هر چه بیتریت نوسان بیشتری داشته باشد، کیفیت ویدیو هم بالاتر است البته به شرطی که الگوریتم تخصیص بیتها کاملاً بهینه و هوشمند باشد.
به عنوان مثال اگر حجم یک فایل ویدیویی بدون صدا ۱۰ مگابایت باشد و مدت زمان آن ۱۰ ثانیه، در هر ثانیه به طور متوسط ۱ مگابایت داده (هر مگابایت معادل ۱۰۰۰ کیلوبایت است) به صورت تصویر متحرک پخش میشود و بایتریت (هر بایت معادل ۸ بیت است) ۱۰۰۰ کیلوبایت بر ثانیه و بیتریت ۸۰۰۰ بیت بر ثانیه به دست میآید.
بیتریت صدا و ویدیوی فشرده شده
و چند عدد مفید که بهتر است حفظ کنیم:
- بیتریت ویدیوی 720p با اینکدر x264 حدود ۹۰۰ کیلوبیت بر ثانیه
- بیتریت ویدیوی 1080p با اینکد x264 حدود ۱۸۰۰ کیلوبیت بر ثانیه
- بیتریت صدای ۲ کاناله با کدک AAC (اینکدر Nero یا Apple) برای فیلمهای فشرده: حدود ۸۰ کیلوبیت بر ثانیه
- بیتریت صدای ۵.۱ کاناله با کدک AAC (محصول Nero یا Apple) برای فیلمهای فشرده: حدود ۱۶۰ کیلوبیت بر ثانیه
- بیتریت صدای 2 کاناله برای فیلمهای فشرده: حدود ۸۰ کیلوبیت بر ثانیه
- بیتریت MP3 معمولی: ۱۲۸ کیلوبیت بر ثانیه
- بیتریت MP3 با کیفیت بالا: ۳۲۰ کیلوبیت بر ثانیه
اعداد فوق واقعی است و با بررسی ویدیوهای مختلف به دست آمده است. برای بررسی دقیق میتوانید از نرمافزار Media info استفاده کنید که البته به صورت بخشی از پلیر حرفهای و قدرتمند PotPlayer هم قابل استفاده است.
دو نمونه ویدیوی H.264 با اینکدر x264:
در فیلمبرداری با دوربین گوشیهای امروزی که حتی از 4K هم پشتیبانی میکنند بیتریت بسیار بالاست و به ۳۰ مگابیت بر ثانیه میرسد. حتی ویدیوهای 1080p با سرعت ۲۴ فریم بر ثانیه هم حجم بالایی دارند.
تصویر زیر گویای این حقیقت است که ویدیوها بدون فشردهسازی شدید، میتوانند بسیار حجیم باشند و بیتریت ویدیوی 1080p با کیفیت عالی، حدود ۱۲۰۰۰ کیلوبیت بر ثانیه است.
بیتریت فایلهای صوتی و تفاوت MP3 128 با MP3 320 و AAC 80
در مورد فایلهای صوتی اغلب این تصور وجود دارد که کیفیت MP3 با بیتریت ۳۲۰ بسیار بالاتر از MP3های ۱۲۸ کیلوبیت بر ثانیهای است و از طرفی AAC با بیتریت ۸۰ کیفیت پایینی دارد. در نمودار زیر تخمینی از کیفیت شنیداری حالات مختلف ارایه شده و همانطور که مشاهده میکنید بیتریت بالاتر از ۱۲۸ در بخشی از منحنی قرار گرفته که با شیب اندکی افزایش پیدا میکند. بنابراین MP3 با بیتریت ۳۲۰ از نظر کیفیت اختلاف چندانی با AAC با بیت ۸۰ کیلوبیت بر ثانیهای ندارد.
و نتیجهی یک تست شنیداری عمومی نشان میدهد که Apple AAC با بیتریت 104 بهتر از اینکدر LAME (فایلهای mp3) با بیتریت حدود ۱۳۶ کیلوبیت بر ثانیه است:
کانورت ویدیو و محاسبه بیتریت مناسب
سرعت ویدیو و رزولوشن آن در بیتریت موثر است. اگر از اینکدرهای بهینه و متداول امروزی یعنی x264 یا x265 برای تبدیل فرمت و فشردهسازی ویدیو استفاده کنیم، بیتریت باید متناسب با رزولوشن و سرعت ویدیو و همینطور توجه به نوع ویدیو انتخاب شود. به عنوان مثال برای یک فیلم فول اچدی یا 1080p انتخاب بیتریت ۲۰۰۰ مطلوب است اما به شرطی که ویدیو با سرعت ۲۴ یا ۲۵ فریم بر ثانیه ضبط شده باشد و نه سرعتی مثل ۶۰ فریم بر ثانیه. با دو برابر شدن سرعت بهتر است بیتریت را هم دو برابر کنیم.
در x265 بیتریت پایینتر هم کاربردی است و میتوان بیتریت ویدیوی 1080p را حتی کمتر از ۱۰۰۰ تا ۱۵۰۰ در نظر گرفت.
محتوای ویدیو در بیتریت انتخابی بسیار موثر است. به عنوان مثال انیمیشنها فاقد بافت ظریف هستند و رنگها یکدست و ساده است. لذا بیتریت ۱۰۰۰ هم برای یک ویدیوی فول اچدی انتخاب خوبی است. اگر از x265 استفاده شود، میتوان بیتریتی مثل ۷۰۰ یا ۸۰۰ را هم انتخاب کرد.
اما برای تبدیل و فشردهسازی ویدیوها با رزولوشنها و سرعتهای دیگر چه کنیم؟
سادهترین حالت این است که تنها مساحت را در نظر بگیریم. به عنوان مثال 720p مساحتی در حد ۱ مگاپیکسل دارد که تقریباً نصف 1080p است. لذا بیتریت از ۲۰۰۰ به ۱۰۰۰ تبدیل میشود. 360p یا در حقیقت ۶۴۰ در ۳۶۰ پیکسل حدوداً یک چهارم 720p است، بنابراین بیتریت از ۱۰۰۰ به ۲۵۰ تبدیل میشود. انتخاب بیتریت در رزولوشنهای پایینتر، با در نظر گرفتن بازدهی کمتر الگوریتمهای فشردهسازی انجام میشود، لذا به جای انتخاب ۲۵۰ کیلوبیت بر ثانیه، از ۴۰۰ کیلوبیت بر ثانیه استفاده میکنیم.
روش دیگر را در ادامه بررسی میکنیم که روشی کاملتر برای تمامی رزولوشنها و سرعتهاست.
متوسط تعداد بیتها برای هر پیکسل، فاکتور کلیدی و اصلی
در مدیا اینفو فاکتوری به اسم:
Bits/(Pixel * Frame)
نمایش داده شده است که با مراجعه به اسکرینشاتها مشخصات ویدیوی 1080p که قبلاً مرور کردیم، مقدار آن ۰.۰۳۹ است. این عدد برای ویدیوهای مختلف متفاوت است و بهتر است از اعداد ۰.۰۶ تا ۰.۰۸ استفاده کنید تا کیفیت ویدیو مطلوب باشد. اما مفهوم آن:
بیت تقسیم بر حاصلضرب فریمریت و پیکسلهای یک فریم، در واقع مقدار بیت برای هر پیکسل تصویر را محاسبه شده است. بهتر است به صورت عددی مثال را دنبال کنیم. رزولوشن ویدیوی اشاره شده ۱۹۲۰ در ۱۰۴۰ است و در حقیقت بخش تیرهی بالا و پایین تصویر برای کاهش حجم ویدیو به کلی برش خورده است. البته برش زدن ویدیویی که قرار است با x264 فشرده شود، چندان مهم نیست چرا که این اینکدر بخشهای ثابت تصویر را به راحتی و با سرعت بسیار بالا فشرده میکند.
تعداد پیکسلهای یک فریم تصویر حدود ۲ میلیون پیکسل (۲ مگاپیکسل) است و با توجه به اینکه در هر ثانیه حدود ۲۴ فریم وجود دارد، به ۴۸ میلیون پیکسل در ثانیه میرسیم. برای ایجاد این تعداد پیکسل، ۱۸۰۰ کیلوبیت داده یا در واقع ۱.۸ میلیون بیت داده استفاده شده ، اگر ۱.۸ را بر ۴۸ تقسیم کنیم، به عددی در حدود ۰.۰۴ بیت بر فریم پیکسل میرسیم، همان عددی که در مشخصات ویدیو دیدیم.
حال مثالی از کاربرد این عدد:
عدد مناسب را ۰.۰۸ در نظر بگیرید، ویدیوی موردنظر برای فشردهسازی هم ۶۴۰ در ۳۶۰ پیکسلی است و سرعت آن ۲۴ فریم بر ثانیه. در یک ثانیهی این ویدیو، تعداد پیکسلها ۶۴۰ در ۳۶۰ در ۲۴ عدد است و مقدار بیتریت احتمالاً مناسب ۶۴۰ در ۳۶۰ در ۲۴ در ۰.۰۸، نتیجهی نهایی بیتریت ۴۴۲ کیلوبیت بر ثانیهایست و به شخصه برای افزایش کیفیت ویدیوهای رزولوشن پایین که معمولاً فشردهسازی آنها اندکی دشوارتر است، بیتریت ۵۰۰ را برای ویدیو انتخاب میکنم.
برای تبدیل کردن ویدیو به کمک x264 و x265 بهتر است از نرمافزارهایی مثل Hybrid ، Xvid4PSP و یا Handbrake که بسیار ساده طراحی شده استفاده کنید. آپشنها بسیار زیاد و گاهاً گیجکننده است. برای سادگی فرآیند کانورت میتوانید از پریستهای موجود استفاده کنید.
روش دیگر استفاده از CRF است که در مقالهی فوق توضیح داده شد، بخشی از آن را مرور کنید و دقت داشته باشید که اصطلاح CRF نه تنها در x264 بلکه در اینکدرهای ویدیویی مختلفی که تحت استاندارد H.264 و H.265 معرفی شدهاند، استفاده میشود.
کنترل بیت ریت و حجم ویدیو با روش CRF و QP
در x264 برای کنترل کیفیت و حجم ویدیوی تبدیل شده، سه روش کلی وجود دارد. سادهترین روش مشخص کردن بیت ریت یا معادل آن، حجم فایل است. میتوان از حالت دو مسیره هم استفاده کرد به این صورت که در مسیر اول، اینکدر به سرعت استریم ورودی را تحلیل و بررسی میکند و در مسیر دوم تبدیل را با دقتی بالا برای رسیدن به حجم یا بیت ریت متوسطی که مشخص شده، انجام میدهد.
منظور از Quantizer در تنظیمات تبدیل ویدیو با x264 و x265 و بسیاری از اینکدرهای ویدیویی چیست؟
منظور از کوآنتایزر، بیان کیفیت به صورت یک کمیت یا Quantity است. کوآنتایز کردن یعنی چیزی را با عدد و رقم بیان کردن.
روش دوم یعنی qp استفاده از کوآنتایزر برای فریمهای P است که بالاترین کیفیت را دارند. هر چه کوآنتایزر بیشتر باشد، کیفیت پایینتر است. عدد 0 به معنی اینکدینگ بدون افت کیفیت است و اعدادی در محدودهی 18 تا 23، کیفیت خوب استریم خروجی را تضمین میکنند. در qp فقط کوآنتایزر فریمهای P را به اینکدر میدهیم. کوآنتایزر دو نوع دیگر یعنی I و B با دو آپشن ipration و bpratio که نسبت کوآنتایزر این دو نوع فریم به کوآنتایزر فریمهای P را بیان میکنند، محاسبه میشود. این روش Constant Quantizer نامیده شده چرا که کوآنتایزر همهی فریمها دقیقاً مشخص میشود.
حجم ویدیوی نهایی در این روش، قطعاً مشخص نیست اما میتوان تخمینی از آن داشت. از این رو در برخی نرمافزارها، حالت دو مسیره برای تبدیل با آپشن qp و crf هم به چشم میخورد حال آنکه در اغلب نرمافزارها، qp و crf تنها به صورت یک مسیره یا یک مرحلهای قابل استفاده هستند.
روش جالبتر Constant Rate Factor است که به صورت مخفف crf گفته میشود. هدف این است که در صحنههای پرتحرک و فریمهای پیچیده، کوآنتایزر به صورت هوشمندانه افزایش یابد و کیفیت کمتر شود چرا که چشم انسان آن قدر سریع و دقیق نیست که کیفیت این بخشها را تشخیص دهد. در نتیجه کیفیت بصری حفظ میشود و در عین حال حجم فایل کمتر از روش qp خواهد شد. در این روش هم حجم فایل نهایی را میتوان صرفاً تخمین زد.
x۲۶۴ در حالت پیشفرض از روش سوم یعنی CRF استفاده میکند و مقدار کوآنتایزر را ۲۳ در نظر میگیرد که برای ویدیوهای باکیفیت خوب است. اگر کیفیت ورودی شما بسیار بالاست، بهتر است سراغ اعدادی مثل ۲۰ تا ۲۲ بروید.
نکتهی آخر اینکه عدد ۱۸ در این بخش به مثابهی عدد ۴ در اینکدرهای قدیمی استاندارد H.263 است. منظورم به طور دقیق نسخهی تحت H.263 دو اینکدر Xvid و DivX است.
crf-max و qp-max: پیشفرض به ترتیب غیرفعال و 51
این دو آپشن برای مشخص کردن بیشترین کوآنتایزر کاربرد دارند. اگر بخواهیم کیفیت فریمهای کماهمیت هم بالا باشد، باید از اعداد پایینتر استفاده کنیم.
عمق رنگ و فضای رنگ و نوع سمپلینگ
در ویدیوهای بسیار باکیفیت از عمق رنگ معمولی که ۸ بیت است و میتواند ۲ به توان ۲۴ رنگ مختلف را ایجاد کند، استفاده نمیشود. به جای عمق رنگ ۸ بیت از عمق رنگ بالاتر مثل ۱۰ یا ۱۲ بیت استفاده میشود. بیتریت چنین ویدیویی به صورت متناسب با عمق رنگ استفاده شده، بیشتر خواهد بود.
علاوه بر این نوع سمپلینگ هم در بیتریت ویدیو تأثیر زیادی دارد. معمولاً ویدیوها و عکسها با فضای رنگ YUV کدنگاری میشوند و این فضای رنگ خود به صورتهای مختلف YUC444 و YUV420 به کار میرود.
حالت دوم یعنی YUV4:2:0 حالتی است که رزولوشن موثر و بیتریت متوسط نصف میشود. تصویر زیر خلاصهای از ماجراست:
و توضیحات بیشتر در این رابطه:
YUV و مشتقات آن
YUV، Y’UV و امروزه YCbCr و YPbPr همگی معادل هم هستند اما تفاوت بزرگی میان آنها وجود دارد. YUV در دوران آنالوگ ظهور کرده و برای سیگنالهای آنالوگ کاربرد دارد حال آنکه امروزه از YCbCr استفاده میشود. مثلاً ویدیوها و فایلهای تصویری با این فضای رنگ معرفی میشوند.
YUV و نوع نمونهبرداری
همانطور که اشاره کردم YUV چیزی است که در دنیای فیلم و عکس به وفور استفاده میشود و هدف استفاده از آن کاهش حجم فایلها و پهنای باند مورد نیاز است. البته هدف ابتدایی که در مورد XYZ مطرح شد، در نظر گرفتن حساسیت چشم انسان به رنگهای مختلف بود.
برای کاهش حجم و پهنای باند لازم، روشهای مختلفی برای Sampling یا نمونهبرداری وجود دارد که اساس همهی آنها، ترکیب سه کمیت روشنایی و رنگ است.
حالت عادی YUV4:4:4 است، منظور از سه عدد ذکر شده در بیشتر حالتها به ترتیب تعداد نمونههای افقی، تعداد نمونههای رنگ یا همان Cb و Cr در سطر اول و سطر دوم است.
مثلاً حالت 4:2:2 که یکی از کاربردیترین موارد است، در سطر اول و دوم دو نمونه برای رنگ در نظر میگیرد و ۴ نمونه هم برای روشنایی ۴ پیکسل افقی فرض میکند. بدین ترتیب ۴ نمونهی رنگ و ۸ نمونهی روشنایی برای ۸ پیکسل استفاده میشود.
حالت فوق را با YUV4:4:4 که به اختصار YUV444 گفته میشود، مقایسه کنید؛ در این حالت ۸ نمونه برای ۸ پیکسل لازم است و لذا ۱.۵ برابر دادهی بیشتری لازم دارد. اگر برای هر پیکسل سه نمونهی RGB استفاده شود، مجموعاً ۲۴ نمونه لازم است و حجم فایل و پهنای باند، باز هم بیشتر میشود.
در برخی نرمافزارهای ویرایش ویدیو یا کانورت ویدیو و همینطور ویرایش عکس، مستقیماً نام YUV422 و انواع دیگر نمونهبرداری را میبینیم اما گاهی عبارات و اصطلاحات دیگری برای اشاره به فضای رنگ و نوع نمونهبرداری استفاده میشود که شاید کمی گیجکننده به نظر برسد. مثلاً در تبدیل jpeg یا ویدیو دو مورد زیر را ببینید که از عبارت Subsampling 1×1,1×1,1×1 و i420 استفاده شده است:
سیارهی آیتی
خیلی عالی و کامل بود ممنون.
خیلی کامل و حرفه ای توضیح داده شده! عالی بود
البته لازمه که حین تست عملی مجدد به توضیحات مقاله مراجعه کرد و بهتر متوجه شد!
باسپاس
ای کاش در قالب یک ویدیو توضیحات رو ساده تر می کردید تا برای همه قابل فهم باشه. ممنون
برای مطالب دانشنامهای خیلی نمیشه ویدیو و صدا ارایه کرد. باید مکتوب بشه که کاربر مراجعه کنه به بخش موردنیاز در متن.
اما در مورد روش کانورت کردن و تنظیمات در نرمافزارهای مختلف، ویدیوی آموزشی کار رو ساده میکنه. وضعیت سایت بهتر بشه انشالله تو فکر هستیم که نفراتی برای تهیه کردن ویدیوهای آموزشی جمع کنیم.
سلام و خسته نباشید. خواستم بدونم هرچه میزان بیت ریت فیلم بالاتر باشه کیفیت بهتری هم داره؟؟؟
مثلا اگه یه فیلم با رزولوشن 720 از یه فیلم دیگه با رزولوشن 1080 بیت ریت بالاتری داشته باشه، کیفیت بهتری نسبت به اون داره؟؟؟
سلام
نه اصلاً این جوری نیست. باید روش و بازدهی فشردهسازی یکسان باشه که بشه قضاوت کرد. اگر همهی تنظیمات فشردهسازی و کدک استفاده شده دقیقاً یکسان بود، در اون صورت اگر:
بیتریت بالاتر باشه و رزولوشن مساوی، خب کیفیت ویدیوی حجیمتر بیشتره
اگر رزولوشن کمتر بود اما بیتریت خیلی بیشتر، کیفیت ویدیوی رزولوشن پایین بیشتره
اما اگر رزولوشن پایینتر باشه اما حجم ۲۰ ۳۰ درصد بالاتر باشه، به نظرم کیفیت ویدیوی رزولوشن بالا ممکنه بهتر باشه!
سلام
من یه تعداد فیلم اموزشی طراحی دارم که بعضی از این فیلما رو وقتی پخش میکنم فقط صوت دارم با تصویر سیاه و بالای دکمه پلی که اسم و مشخصات فیلم رو مینویسه داخل پرانتز نوشته شده variable bitrate و هر فیلمی که این نوشته رو داره فقط صوت پخش میکنه و اگه این نوشته نباشه هم تصویر هم صوت داره
به نظرتون چیکار باید بکنم؟
سلام
اگه حجم ویدیوها به نسبت مدت زمانشون منطقیه و خیلی کمتر از بقیه نیست، مشخصه که فایل یه چیزی توش هست و ویدیو پلیر شما نمیتونه درست پخش کنه. من توصیه میکنم از VLCیا PotPlayer استفاده کنید. اگر کدک پک نصب کردید هم حذفش کنید.
1024کلیو بایت معادل یک مگابیت هست
سلام
در کامپیوتر و برخی برنامهها، همینه و در برخی برنامهها کیلو رو ۲ به توان ۸ در نظر نمیگیرن بلکه ۱۰۰۰ در نظر میگیرن. در مثلاً فروش فلش و هارد هم ۱۰۰۰ فرض میکنن. اینه که میگن ۵۰۰ گیگ، در ویندوز میبینید زده ۴۶۵ گیگ.
سلام، برای ویدیوی 4K باید بنویسید 30 مگابیت بر ثانیه، نه 30 کیلوبیت بر ثانیه 🙂
سلام. بله صحیح میفرمایید. اصلاح میکنیم.