در اواسط قرن بیستم، زمانی که سینما تبدیل به بخشی از زندگی مردم شده بود و تلویزیون هم داشت جایش را در خانهها باز میکرد، یک سوال برای خیلیها مطرح شده بود: آیا میتوان فیلمهایی را که از سینما و تلویزیون پخش میشوند، در خانه هم داشت تا بتوان در هر زمانی آنها را دید؟ برای رسیدن به جواب این سوال، تنها چند سال صبر لازم بود.
سال ۱۹۷۶ بود که اولین نسل دستگاه پخش ویدیوی خانگی به بازار آمد. در آن هنگام، تصاویر ویدیویی (که از این به بعد آن را ویدیو خواهیم خواند) روی نواری مغناطیسی ذخیره میشدند. دو بافت کلی برای نوار ویدیویی وجود داشت: بتامکس و VHS. به این ترتیب بود که ابزارهای ذخیرهسازی تصاویر ویدیویی به خانهها آمدند. حالا دیگر نه تنها میشد فیلمها را داشت، بلکه میشد از روی آنها کپی هم گرفت و از همه مهمتر، فیلمبرداری هم کرد و روی نوار ذخیره نمود. اما این پایان کار نبود ودر اواسط دههی ۹۰ میلادی، انقلاب اصلی ویدیو رویداد. تا پیش از این زمان، ذخیرهسازی به حالت آنالوگ انجام میشد. ازآن به بعد بود که ضبط تصاویر ویدیویی به حالت دیجیتال میسر شد. یعنی تصاویر ویدیویی به جای آن که به موج تبدیل شده و روی نوار مغناطیسی ذخیره شوند، به شکل دادههایی متشکل از صفر و یک درآمده و در ابزارهای ذخیرهسازی دیجیتال ذخیره میشوند. از آن هنگام تاکنون، فنآوری راه درازی را پیموده تا این که حالا به Blue-Ray رسیده است. دیجیتالی شدن، باعث شده که حالا تصاویر ویدیویی روی کامپیوترها، پخشکنندههای قابل حمل، ایتترنت وگوشیهای موبایل، همهگیر شوند.
دیجیتالی شدن دادهها، امکانات زیادی به ما میدهد. از جمله این که میتوان یک فیلم را بدون افت کیفیت کپی کرد یا برای مدتی طولانی نگاه داشت، سرعت کپی کردن بسیار کاهش مییابد، و از همه مهمتر، این امکان را فراهم کرده است که بتوان آنها را در بافتهای مختلف و روی رسانههای گوناگون ذخیره کرد. در این مقاله، میخواهیم به همین موضوع بپردازیم.
نبرد کیفیت وحجم
طبق اصل Trade-Off یا سبک سنگین کردن، از بین کیفیت و حجم فایل حاصل باید یکی را ترجیح داد. در اکثر مواقع، با افزایش کیفیت، حجم هم افزایش مییابد و با کاهش حجم، مجبوریم تن به افت کیفیت بدهیم مثلا اگر قرار باشد با سرعت ۵۶ کیلوبیت در ثانیه، یک فایل ویدیویی از اینترنت بگیریم، به احتمال فراوان ترجیح میدهیم فایلمان کیفیت پایینتری داشته باشد تا سریعتر دریافت شود. پس مجبوریم از بین کیفیت و حجم، یکی را قربانی کنیم. برای روشنتر شدن موضوع، مثالی میزنیم:
فرض کنید با دوربین فیلمبرداری خود دارید از منظرهای به مدت ده ثانیه فیلم میگیرید و نرخ فریم آن، ۳۰ فریم در ثانیه است. یعنی در هر ثانیه ۳۰ تصویر گرفته میشود (با نمایش پشت سر هم این تصاویر است که به تصویر ویدیویی میرسیم). کیفیت تصویر هم معمولا به این ترتیب است که تصویر، به شیوهیNTSC DV فیلمبرداری شده، اندازهی هر فریم ۴۸۰×۷۲۰ پیکسل است و برای رنگ هم ۳۲ بیت برای هر پیکسل در نظر میگیریم (معمولا اینها مقادیر پیش فرض برای فیلمبرداری دیجتال است، یعنی دوربین شما بدون این که تنظیماتش را تغییر دهید، فیلمی با این مشخصات میگیرد).
خب، ۱۰ ثانیه فیلمبرداری کردید و هر ثانیه ۳۰ فریم داشت، که میشود ۳۰۰ فریم. هر فریم هم ۱/۳۲ مگابایت جا میگیرد و به این ترتیب، ۳۹۵/۵ مگابایت فضا برای ضبط این منظره استفاده شده است. کمی حساب و کتاب نشان میدهد که یک ساعت فیلمبرداری، حول و حوش ۱۴۲گیگابایت ناقابل فضا میخواهد. اما مسئله فقط ذخیرهسازی نیست. اگر بخواهید، میتوانید یک انبار سخت دیسک خریداری کنید و هر روز از مناظر اطرافتان یک ساعت فیلم بگیرید! اما اگر خواستید فیلمها را به فرد دیگری هم بدهید چه؟ جابهجا کردن فیلم روی چه رسانهای انجام شود بهتر است؟
اگر بخواهید هنرنمایی خودتان را به دوستان و آشنایان هم بدهید، میتوانید آن را روی یک DVD رایت کنید. در این صورت، فقط دو دقیقه و ۲۲ ثانیه از فیلم را میتوانید رایت کنید. تازه، صداهایی را که در حین فیلمبرداری در اطراف به گوش میرسد را هم نمیتوانید منتقل کنید، چون ما تمام فضا را به ضبط تصاویر اختصاص دادهایم و جایی روی DVD نمانده که صدا را هم ضبط کنیم.
پس چه کنیم؟
پس چه کنیم؟
مشخص شد که اگر دادههای ویدیویی را بخواهیم همانطور به صورت خام منتقل کنیم، روش چندان عاقلانهای به نظر نمیرسد، مگر این که استودیو داشته باشید و یا به تازگی گنج پیدا کرده باشید! اما به نحوی باید دادههای ویدیویی خام را بپزیم تا انتقال مقرون به صرفه باشد. راه حل این مسئله، فشردهسازی است. این فشردهسازی، از طریق الگوریتم کامپیوتری تحت نام «کُدِک» (Codec) انجام میشود. در حقیقت، کدکها روشهایی هستند که طبق آنها فیلمها را فشرده یا باز میکنیم.
حتما برایتان جالب است که کمی بیشتر با روشهای فشردهسازی آشنا شویم. میدانیم که هر فیلم از فریمهای متوالی تشکیل شده است. یک کدک، معمولا فریمهای با فاصلهی یکسان را به عنوان فریم کلیدی (Key Frame) برمیگزیند. یعنی مثلا هر ۱۰۰ فریم، یک فریم را به عنوان فریم کلیدی در نظر میگیرد. این فریم کلیدی، با تمام جزییات و بدون حتی ذرهای فشردهسازی ذخیره می شود. حالا فرض کنید دو فریم کلیدی داریم با نامهای A و B هر فریمی که میان این دو فریم قرار بگیرد، بر اساس تغییرات بین A و B ذخیره میشود.
همان فیلمی که از منظره گرفتید را در نظر بگیرید. اگر در تمام مدت فیلمبرداری، دوربین را ثابت نگه داشته باشید، پسزمینه (درخت و گل و چمن و گیاه و آسمان) تغییری نمیکنند و در قیاس با بخش متحرک فیلم (پرندگان، اتومبیلها و…) عملا ثابت میماند. پس لزومی ندارد اطلاعات مربوط به پسزمینه در تمامی فریمها ذخیره شود. یک یا چندبار که ذخیره شد، کافی است و در بقیهی فریمها هم از آن استفاده میکنیم. کدک، خودش اطلاعاتی را که اضافی هستند تشخیص میدهد و فقط اطلاعات مهم را نگه میدارد. با همین ترفند ساده، حجم فایل تا حدود زیادی کاهش مییابد.
در حالت کلی، استفاده از روش فوق بسیار کاراست و بسته به پیادهسازیهای مختلف این روش، میتوان به فایلهای با کیفیت خوب و حجم پایین دست یافت. اما گاهی لازم است فایلها فشردهتر شوند و با توجه به اصل سبک سنگین کردن مجبوریم از کیفیت بکاهیم، تا بتوان فایلها را مثلا در اینترنت به اشتراک بگذاریم. برای فشردهتر کردن فایلها، میتوانیم ابعاد هر فریم را کاهش دهیم(یعنی تصویر نهایی کوچکتر خواهد شد)، نرخ فریم را کم کنیم (از روانی حرکت تصویر کاسته خواهد شد)، رنگهای تصویر را بکاهیم، فاصلهی بین فریمهای کلیدی را افزایش دهیم و مواردی از این دست که آن را به خلاقیت شما واگذار میکنیم!
نگفتی، بالاخره چه بافتی خوب است؟
در حال حاضر شش نوع فرمت (بافت) عمومی وجود دارد. اگر دنبال فایل ویدیویی هستید یا این که تا به حال سعی کردهاید خودتان فایلی را تبدیل کنید، به احتمال خیلی خیلی زیاد با یکی از این بافتها سر و کار پیدا کردهاید. فایلهای ویدیویی معمولا در یکی از این شش دسته قرار میگیرند:
AVI, QuickTime, Windows Media Video, MPEG, Real-Video, DivX
اکنون این شش نوع فایل ویدیویی را بررسی میکنیم تا ببینید کدام یک بیشتر به چه دردی میخورند و فایلی که روی کامپیوترتان ذخیره کردهاید چه خواصی دارد. اگر هم خواستید فایل ویدیویی خودتان را فشرده کنید، بعد از خواندن این قسمت میتوانید تشخیص دهید که بسته به نیازتان، بهتر است از کدام بافت استفاده کنید؛ به عنوان مثال، برای مواردی مانند آرشیو کردن، گذاشتن روی اینترنت و یا دادن به دوستان و آشنایان، چه بافتی را باید انتخاب کرد؟
فهرستی که در بالا نام بردیم جامع نیست. هنوز ممکن است با فایلهایی سر و کار داشته باشید که تحت بافتهای قدیمی هستند و نسخهای از آنها با بافت جدیدتر منتشر نشده است.
برای مثال، یادش به خیر چند سال پیش مایکروسافت بافت فایل ویدیویی ASF را معرفی کرد و مثلا قرار بود خیلی هم از آن پشتیبانی کند. اما بعد به ASF خیانت کرد و رو به WMV آورد! در سال ۱۹۹۷ هم یک بافت به نام Vivo با پسوند VIV آمد که البته بعدا کسی دیگر سراغش را نگرفت و در همان آغاز به پایان رسید.
این جا باید یک توضیح خیلی مهم هم بدهیم. اکثر دوربینهای فیلمبرداری، فیلم را با بافتی به نام DV یا (Digital Video) ذخیره میکنند. خیلیها به اشتباه فکر میکنند که دوربین، تصاویر را فشرده نمیکند. این طور نیست و دوربین عمل فشردهسازی را تا حدودی انجام میدهد. بنا به دلایلی که در اول مقاله توضیح دادیم، حتما خودتان فهمیدهاید که دوربین منبع بیپایان ندارد که فیلم را رویش ذخیره کند و به همین دلیل، آن را تا حدودی که کیفیت چندان پایین نیاید، فشرده میکند. در ادامهی مقاله، اگر دیدید صحبت از فیلم فشرده نشده بود، منظورمان همان فیلمی است که دوربین کمی فشردهاش کرده است.
یک توضیح دیگر هم در مورد Streaming بدهیم. اگر یک فایل ویدیویی را بخواهید در اینترنت ببینید، دو راه دارید: اول این که آن را کامل دانلود کنید و بعد سر فرصت ببینید، و راه دیگر این که آن را همان جا تماشا کنید. در حالت دوم، ابتدا اطلاعات مربوط به چند ثانیهی اول فیلم گرفته میشود و چند ثانیه اول فیلم برای شما به نمایش در میآید. در همین حین که دارید ابتدای فیلم را میبینید، اطلاعات مربوط به ادامهی فیلم گرفته میشود و به همین ترتیب میتوانید فیلم را مستقیما از خود سایتی که روی آن قرار دارد پخش کنید. به این کار، Streaming میگوییم، زیرا در حقیقت یک جریان پیوسته از فیلم به سمت شما میآید وهمان لحظه، یا چند لحظه بعدتر پخش میشود. در این حالت ممکن است شما نتوانید فیلم را به روی کامپیوتر خود منتقل کنید و مجبور باشید برای دیدن آن، حتما به اینترنت وصل شوید.
خب، حالا میرویم سراغ بافتها:
۱- AVI
پسوند فایل: AVI.
AVI به معنای Audio-Video Interleave است، یعنی صدا و تصویر داخل هم.
این بافت را مایکروسافت ساخته است و از آن پشتیبانی میکند. ظاهرا قرار بود این بافت فقط در داخل ویندوز استفاده شود، اما به هر حال با سیستمعامل Mac OS هم سازگاری دارد. هنگامی که فیلم از دوربین به کامپیوتر منتقل میشود، معمولا در بافت AVI ذخیره میشود. در این حالت، کیفیت کاملا حفظ شده، اما به ازای هر ساعت فیلم با کیفیت استاندارد و صدای استریو، ۱۳ گیگابایت از سختدیسک شما اشغال میشود.
AVI را معمولا به عنوان یک بافت (ظرف) یا Container میشناسند. اگر به ما بگویند یک فایل تصویری ازنوع AVI داریم، تنها چیزی که مشخص است این است که در داخل فایل، قطعات صدا و تصویر به تناوب پشت سر هم قرار گرفتهاند (اسم این بافت هم از همینجا میآید) و تا فایل را از نزدیک مورد بررسی قرار ندهیم، نمیفهمیم که از چه نوع فشردهسازی در آن استفاده شده است. روشهای مختلف فشردهسازی، میتوانند از ظرف AVI برای فشرده کردن و باز کردن اطلاعات ویدیویی استفاده کنند. بافت AVI به خودی خود فایلها را فشرده نمیکند و حتما باید محتوا را با روشی دیگر فشرده کرد و در این ظرف ریخت.
در اصل قرار بود که این کار باعث افزایش سازگاری میان نسخههای مختلف شود، اما در عمل ناسازگاریهای زیادی را به وجود آورد. کدکهای زیادی برای استفاده از بافت AVI به وجود آمدهاند که مطمئنا خیلی از آنها را روی کامپیوترتان ندارید. به همین دلیل، خیلی محتمل است که فایلی ویدیویی با بافت AVI را مثلا از اینترنت بگیرید و برنامهی پخش کننده نتواند آن را پخش کند. البته اگر Media Player خود ویندوز برای پخش این فایلها استفاده کنید، به محض اینکه ببیند کدک فایل ناشناخته است، سعی میکند به اینترنت وصل شود و کدک مربوطه را از سایت مایکروسافت بگیرد و آن را روی کامپوتر شما نصب کند. به هر حال، این هم فرآیندی زمانبر است و ممکن هم هست که به جواب نرسد.
اگر تعصب خاصی روی AVI دارید و میخواهید فایلتان روی تمام کامپیوترها قابل پخش باشد، بهتر است از کدکهای Cinepak و Indeo برای فشرده کردن استفاده کنید. سالهاست که هم ویندوز و هم Mac OS از این دو فشردهسازی پشتیبانی میکنند.