بررسی اطلاعات فایل‌های صوتی و تصویری

  • شروع کننده موضوع
  • #1

ph_pouya

p o u y a
ارسال‌ها
85
امتیاز
849
نام مرکز سمپاد
شهید مدنی
شهر
تبریز (سابقاً :-")
درود :]
احتمالاً تا حالا موقع کار کردن با فایل های تصویری و یا دانلود/تبدیل فیلم، مفاهیمی مثل Codec، Bit Rate، Format و... رو مشاهده کردین. توی چند پست آینده نگاهی اجمالی خواهیم داشت روی این مفاهیم.

به طور مثال من یک فایل ویدیویی روردر نظر گرفتم که مشخصاتش رو توی کادر پایین می‌بینین:

کد:
General
Unique ID	 		:184397290645531158506593349049434197723 (0x8AB9A059E72924C6B1CE8EC154BF4EDB)
Complete name	 		:The.Double.Life.Of.Veronique.1991.720p.mkv
Format	 			:Matroska
Format version	 		:Version 4 / Version 2
File size	 		:800 MiB
Duration	 		:1h 37mn
Overall bit rate mode	 	:Variable
Overall bit rate	 	:1 144 Kbps
Movie name	 		:The Double Life Of Veronique 1991 1080p BluRay x264-CiNEFiLE
Encoded date	 		:UTC 2008-03-23 17:06:22
Writing application	 	:mkvmerge v7.2.0 ('On Every Street') 32bit built on Sep 13 2014 15:42:11
Writing library	 		:libebml v1.3.0 + libmatroska v1.4.1

Video
ID	 			:1
Format	 			:AVC
Format/Info	 		:Advanced Video Codec
Format profile	 		:High@L4.1
Format settings, CABAC	 	:Yes
Format settings, ReFrames 	:9 frames
Codec ID	 		:V_MPEG4/ISO/AVC
Duration	 		:1h 37mn
Bit rate mode	 		:Variable
Bit rate	 		:1 079 Kbps
Maximum bit rate	 	:62.5 Mbps
Width	 			:1 184 pixels
Height	 			:720 pixels
Display aspect ratio	 	:16:10
Frame rate mode	 		:Constant
Frame rate	 		:23.976 (24000/1001) fps
Color space	 		:YUV
Chroma subsampling	 	:4:2:0
Bit depth	 		:8 bits
Scan type	 		:Progressive
Bits/(Pixel*Frame)	 	:0.053
Stream size	 		:754 MiB (94%)
Writing library	 		:x264 core 142 r2479 dd79a61


Audio
ID	 	:2
Format	 	:AAC
Format/Info	 	:Advanced Audio Codec
Format profile	 	:HE-AAC / LC
Codec ID	 	:A_AAC
Duration	 	:1h 37mn
Bit rate	 	:64.0 Kbps
Channel(s)	 	:2 channels
Channel positions	 	:Front	 	:L R
Sampling rate	 	:48.0 KHz / 24.0 KHz
Frame rate	 	:23.438 fps (1024 spf)
Compression mode	 	:Lossy
Stream size	 	:44.8 MiB (6%)
Language	 	:Polish

منطقا بررسی تک به تک سطرهای بالا نه در حوصله این تاپیک هست و نه من تخصص هم‌چین کاری رو دارم. صرفا لاین‌های کاربردی رو شرح خواهم داد به مرور.
پ.ن: واسه استخراج این اطلاعات از فایل مدیا، از mediainfo استفاده کردم روی ترمینال، قطعا مشابه ویندوزی داره ولی تا جایی که یادمه خودِ mediainfo یک ورژن گرافیکی برا ویندوز داده. اوصیکم به سرچ زدن :−" .
 
  • شروع کننده موضوع
  • #2

ph_pouya

p o u y a
ارسال‌ها
85
امتیاز
849
نام مرکز سمپاد
شهید مدنی
شهر
تبریز (سابقاً :-")
فرمت فایل ویدیویی

[فرمت فایل ویدیویی]
برای این‌که یه فایل ویدیویی تشکیل بشه، ما معمولا به دو چیز نیاز داریم تصویر و صدا. دیتای تصویری مورد نظر ما با استفاده از فرمت‌های Coding ، کد می‌شن و توی فرمت‌های نگه دارنده (Container Format) ذخیره می‌شن. توی این پست در مورد دیتای تصویری بحث می‌کنیم و توی یک پست دیگه در مورد دیتای صوتی.

[Container Format]
از لحاظ نظری می‌شه تعداد بی‌نهایتی از اطلاعات سینک شده، متادیتا (اطلاعاتی که در مورد اطلاعات دیگه به ما اطلاعات می‌دن :−") ، زیرنویس، و فایل تصویری و صوتی با پروفایل استاندارد[nb]پروفایل‌های استاندارد به شرایطی گفته می‌شن که ارایه دهنده سرویس مشخص می‌کنه از چه فرمت‌هایی(در معنای عام:قالب) توی یک فایل استفاده کرد.[/nb] رو توی یک فرمت نگه دارنده ذخیره کرد.

[Codec]
توی دنیای دیجیتال ما دیتا رو کد گذاری (Encode) می‌کنیم، و هر کد گذاری منطقا برای استفاده مجدد نیاز به کدگشایی(Decode) داره، توی دنیای صوتی و تصویری دیتا رو به دلیل کاهش حجم و حفظ نهایت کیفیت ممکن انکود می‌کنن، انکود کار تکنیکال و نیازمند سیستم‌های مخصوصی هست اما دیکود عموما سمت کاربر. دیکود به دو صورت انجام می‌شه نرم افزاری (SW) و سخت افزاری (HW) جدا از تفاوت‌های این دو روش، دیکود برای انجام کارش نیاز به کتابخونه‌هایی از کد داره که به اونا می‌گیم Codec Library، و این همون چیزی‌ست که اگه توی سیستم عاملی مثل ویندوز نصبش نکنید نمی‌تونید فرمت‌های صوتی و یا تصویری‌تون رو اجرا کنید.
[کدک‌های رایج]
H264
نام کامل: H.264/MPEG-4 AVC
توسط گوگل/یوتیوب، ادوبی و اپل پشتیبانی می‌شه، مزیت اصلیش نسبت به کدک های دیگه اینه که انعطاف پذیری بیش‌تری رو برای سیستم‌های مختلف تامین می‌کنه. مثل قابلیت استریم روی اینترنت‌های با سرعت تبادل پایین (سلام دنیا :) )، پخش روی شبکه‌های تلویزیونی و سینمای دیجیتال، با کدینگ تقریبا بی اتلاف (Lossless)[nb]توی پست‌های بعدی توضیح می‌دم مفهوم فشرده سازی lossless و lossy رو.[/nb].
MPEG
این کدک یکی از کدک‌های محبوب هستش که مجموعه ای از استانداردها و متدها رو ارایه می‌ده (عموماً با ورژن مشخص می‌شن مثل: MPEG−2 یا MPEG−4)، بیشترین استفاده از این کدک شامل ورژن ۲ میشه که امروزه بیش‌تر برای انتقال دیتا از طریق هواست (سیستم ماهواره و رسیور و تلویزیون کابلی). هم‌چنین توی استانداردهای پربازده‌تری مثل HD DVD و ‌Blu-Ray استفاده می‌شه. اما ورژن ۴ به خاطر قابلیت فشرده‌سازی فوق‌العاده‌ش و استفاده اون برای تبادل بین شبکه‌های موبایلی محبوب شد. MPEG-4 Part 14 رو احتمالا با اسم آشنای MP4 شنیدین، هم‌چنین فرمت M4A برای فایل های صوتی این کدک به کار برده می‌شه.
H.265 or HEVC
نام کامل: High Efficiency Video Coding
هدف از توسعه این پروژه این بوده که استانداری عرضه بشه که بدون آسیب به کیفیت تصویر نسبت به استانداردهای قبلی تعداد Bit-Rate[nb]در پست‌های بعد :D[/nb] ها رو به صورت اساسی کاهش بده که در نتیجه منجر به کاهش حجم بشه (به نسبت فرمت MP4 و استاندارد MPEG تقریبا حجم فایل ها به نصف کاهش یافته)، و هم‌چنین مزیت فوق العاده این استاندارد اینه که توی طراحی به این دقت شده که پیچیدگی رو به حداقل برسونن تا با کمترین هزینه‌ی ممکن، رو range وسیعی از شبکه‌ها، سیستم‌ها و اپلیکیشن‌ها بشه اجراش کرد.
پ.ن: بحث‌های تکنیکی فوق‌العاده جذابی با کلید خوردن این پروژه به وجود اومد که امیدوارم یه روزی مخاطبینی پیدا بشن که بتونیم تو سمپادیا بهش بپردازیم. :/
پ.ن۲:‌ اکیداً بهتون توصیه می‌کنم این فرمت رو جدی بگیرید، مخصوصا با اینترنت نامناسبی که تو کشورمون وجود داره کیفیت مناسب و حجم کم چیز هیجان انگیزی موقع دانلوده :) .

~
توی پست اول یه فایل برای مثال آورده بودم، که فرمت ویدیویی‌ش به این شکله:
کد:
Format     :AVC
Format/Info    :Advanced Video Codec
Format profile    :High@L4.1
Format settings, CABAC   :Yes
Format settings, ReFrames  :9 frames
Codec ID    :V_MPEG4/ISO/AVC

تقریبا مهم‌ترین خط توی اطلاعات بالا برای ما Codec ID هستش که نشون میده کدک موردنظر MPEG-4 هستش،‌تحت استاندارد ISO و فشرده سازی شده توسط AVC.

MKV
کد:
Complete name    :The.Double.Life.Of.Veronique.1991.720p.mkv
Format     :Matroska
Format version    :Version 4 / Version 2

و این خط که بهمون نشون میده فرمت نگه دارنده فرمت Matroska هستش. که عموما با پسوند mkv نشون داده می‌شه. فرمت mkv یک فرمت آزاده می‌تونه تعداد بی‌نهایتی از ویدیو، عکس، صدا، زیرنویس و متادیتا رو توی یک فایل واحد ذخیره کنه. این فرمت می‌تونه تقریبا از هر کدک دلخواهی استفاده کنه اما کدک‌های AVC شامل MPEG-2 و H264 رایج ترین کدک‌های مورد استفاده این فرمت هستن.
 
  • شروع کننده موضوع
  • #3

ph_pouya

p o u y a
ارسال‌ها
85
امتیاز
849
نام مرکز سمپاد
شهید مدنی
شهر
تبریز (سابقاً :-")
مفهوم Bit Rate در ویدیو

[Bit Rate : Video]

[مفهوم تکنیکال]
به تعداد بیت‌های ارسال شده در واحد زمان بیت ریت گفته می‌شه، همون‌طور که می‌دونید هر بایت = ۸ بیت هست (b نشون دهنده بیت و B نشون دهنده بایت)، مقدار بیت ریت رو با نماد bit/s (بیت بر ثانیه) و یا عموما به صورت bps که مخفف bit per second هست نشون می‌دن. می‌تونیم با استفاده از واحدهای SI به صورت راحت تر (اصطلاحا Human Readable) مقدار بیت ریت موردنظر رو بیان کنیم. مانند kbps (کیلو)، Mbps (مگا)، Gbps (گیگا) و الخ.
[چرا Bit Rate مهمه؟]
همون‌طور که از مفهوم بیت ریت برمی‌آد بیت ریت تاثیر مستقیمی داره توی حجم فایل، به طور دقیق‌تر اگر از حجم صدای فایل صرف نظر کنیم خواهیم داشت:
کد:
File Size = Bit Rate × duration
حجم فایل = بیت ریت × مدت زمان فایل
برای این‌که دقیق‌تر متوجه تاثیر بیت ریت روی حجم فایل بشید به مقادیر زیر توجه کنید (آمار تقریبی با توجه به ویدیوهای یوتیوب):
کد:
LD 240p @ H.264 baseline profile 350 kbps (3 MB/minute)
LD 360p  @ H.264 main profile 700 kbps (6 MB/minute)
SD 480p  @ H.264 main profile 1200 kbps (10 MB/minute)
HD 720p @ H.264 high profile 2500 kbps (20 MB/minute)
HD 1080p @ H.264 high profile 5000 kbps (35 MB/minute)
مقادیر بالا به ترتیب از چپ راست:
LD: کیفیت پایین؛ SD: کیفیت استاندارد؛ HD: کیفیت بالا. | کدک H.264 | پروفایل‌های مرتبط به کدک[nb]در حوصله بحث نیست احتمالاً.[/nb] | بیت ریت در واحد kbps | حجم تقریبی فایل در یک دقیقه

[بیت ریت متغیر و ثابت]
ممکنه توی کانورت کردن و یا فیلمبرداری حتی (:−؟) به دوتا مفهوم CBR و VBR برخورد کنین، من خیلی وارد مفهوم نمی‌شم چون بحث زیادی تکنیکاله و سمت کاربر نیس تقریبا، منتها به این نکته اشاره کنم که بیت ریت ثابت (CBR) عموما باعث اتلاف منابع می‌شه و تولید یک ویدیو با بیت ریت ثابت اصولا کار بسیار بسیار سختیه. کدک‌های معمول هم از سیستم VBR استفاده میکنن. اصولا زمانی از CBR استفاده می‌شه یه بیت ریت مشخصی تعیین شده و باید توی همون بازه کار کرد، مثلا برای پخش شبکه‌های ماهواره‌ای که از یک پهنای باند مشترک برای چند کانال استفاده می‌کنن. و یا برای فیلم‌برداری‌های زنده‌ به طور خاص.

[صرفا جهت رفع کنجکاوی مثلا :−"]
بیت ریت با یه چیزی به عنوان مقیاس Kush تولید می‌شه.
کد:
Kush gauge: pixel count × fps × motion factor × 0.07 ÷ 1000 = bit rate in kbps
مقدار pixel count: طول × عرض فایل ویدیویی بر اساس پیکسل
مقدار fps: بستگی داره چیزای مختلف. بعدا بررسی می‌شه.
مقدار motion factor: یک ، دو و یا چهار.
مثال:
کد:
Overall bit rate mode   :Variable
Overall bit rate   :1 144 Kbps

Bit rate mode    :Variable
Bit rate    :1 079 Kbps
Maximum bit rate   :62.5 Mbps
Width     :1 184 pixels
Height     :720 pixels
 
  • شروع کننده موضوع
  • #4

ph_pouya

p o u y a
ارسال‌ها
85
امتیاز
849
نام مرکز سمپاد
شهید مدنی
شهر
تبریز (سابقاً :-")
مفهوم Bit Rate در صدا

[Bit Rate : Audio]

[All the Way Back to 70s]
واسه توضیح مفهوم بیت ریت‌ها توی تکنولوژی‌های مربوط به صدا باید با چن‌تا چیز آشنا بشیم:

مفهوم Sample ها و Sampling:
برای ضبط صدا ما نیاز داریم صدای آنالوگی رو که می‌شنویم به دیجیتال تبدیل کنیم و یا اصطلاحاً Digitized کنیم. توی این پروسه ما منبع صورتی رو در نظر می‌گیریم و به تیکه‌های بسیار بسیار زیادی تقسیمش می‌کنیم، هر تیکه نمایان‌گر یه حجمی از صدا تو زمان 23µs هستش که به این تیکه میگیم Sample. بعداً این sampleها رو کنارهم میزاریم و بسته به کیفیت موردنظرمون فایلی شبیه به منبع صوتی موردنظر ایجاد می‌شه. و توی هر 23µs یک sample به بلندگو فرستاده می‌شه تا بتونیم بشنویمش.

مفهوم Sample Rate:
به تعداد sampleهای گرفته شده و بازپخش شده توی واحد زمان (یک ثانیه)، می‌گیم sample rate و با واحد Hz اندازه گیریش می‌کنیم. برای مثال sample rate یک CD موزیک برابر 44100Hz یا 44.1KHz هست، که به طور ساده‌تر یعنی 44100 سمپل در ثانیه. برای این‌که کل range شنوایی انسان پوشش داده بشه (20-20000Hz) سمپلینگ معمولا 44.1kHz (CD), 48 kHz, 88.2 kHz, or 96 kHz خواهد بود. و بدیهتاً هرچه‌قدر تعداد سمپل‌ها زیادتر بشه کیفیت و حجم فایل هم بیش‌تر می‌شه.

مفهوم Bit Depth:
به تعداد بیت‌های موجود توی هر سمپل میگن bit depth. احتمالا موقع دانلود موزیک به این مفهوم برخوردین که موزیک‌های معمولی 16 بیتی و موزیک‌های با کیفیت FLAC حتی 24 بیتی هستن. لازم به توضیح نیست که هرچه‌قدر این عدد بالا باشه کیفیت و حجم به طرز قابل چشم‌گیری افزایش پیدا می‌کنه.

مفهوم کانال صوتی:
کانال صوتی و یا Audio Channel، همون طور که از اسمش معلومه یک کانال بین مبدأ صوتی و مقصد هستش که بین این دو، تبادل سیگنال‌های صوتی رو انجام می‌ده. کانال‌های صوتی مشهوری که بیش‌تر به چشمتون می‌خورن اینا هستن:
کد:
Mono : 1 CH
Stereo : 2 CH
5.1Surround Sound : 6 CH
7.1Surround Sound : 8 CH

محاسبه Bit Rate:

کد:
Bit Rate = Sample Rate × Bit Depth × Channels 
File Size  (in bits) = Bit Rate × Duration

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

کد:
MP3:
32 kbit/s - 320 kbits/s
FLAC[nb]یه تاپیک بزنیم در مزایای این فرمت :−؟[/nb]:
400 kbit/s - 1411 kbit/s

مثال:
کد:
Bit rate   :64.0 Kbps
Channel(s)   :2 channels
Channel positions   :Front   :L R
Sampling rate   :48.0 KHz / 24.0 KHz
 
بالا