درک DIRAC (.drc): قالب ویدئویی موجکی منبع باز توضیح داده شد
در چشمانداز در حال تحول رسانههای دیجیتال، کدکهای فشردهسازی مدرن مانند H.264، HEVC و AV1 تجربههای استریم روزانه ما را تسلط میدهند. با این حال، تاریخ رمزگذاری ویدئوی منبع باز شامل نوآوریهای پیشگامی است که پایههای حیاتی برای استانداردهای پخش بدون حق امتیاز را فراهم کردند. یکی از مهمترین نقاط عطف کدک ویدئوی DIRAC است که معمولاً با پسوند فایل .drc مرتبط است.
DIRAC توسط تیم تحقیق و توسعه سازمان پخش بریتانیا (BBC) توسعه یافت و برای به چالش کشیدن طرحهای فشردهسازی مبتنی بر بلوک سنتی، با بهرهگیری از قدرت تبدیل موجکها طراحی شد.
فایل DIRAC (.drc) چیست؟
یک فایل .drc یک کانتینر یا جریان ابتدایی است که ویدئوی دیجیتال فشردهشده با استفاده از کدک ویدئوی DIRAC را ذخیره میکند. این فرمت به نام فیزیکدان نظری بریتانیایی پل دیراک نامگذاری شد و به عنوان یک جایگزین منبع باز و بدون حق امتیاز برای فرمتهای ویدئویی اختصاصی مانند MPEG-4 Part 10 (H.264) و VC-1 تصور شد.
در حالی که جریانهای نهایی Dirac اغلب بهصورت ترکیبی در قالبهای چندرسانهای چندمنظورهای مانند Ogg (.ogg/.ogv)، Matroska (.mkv) یا MP4 قرار میگرفتند، توالیهای ویدئویی خام یا جریانهای تست مستقل بهصورت تاریخی با پسوند .drc برچسبگذاری میشدند.
ویژگیهای اصلی قالب DIRAC
DIRAC از الگوهای استاندارد فشردهسازی ویدئو از طریق چند ویژگی فنی متمایز جدا شد:
۱. هسته تبدیل موجک گسسته (DWT)
اکثریت کدکهای اصلی (مانند MPEG-2 و H.264) بر تبدیل کسینوس گسسته (DCT) که بر روی ماکروبلاکهای مربعی ($8\times 8$ یا $16\times 16$ پیکسل) عمل میکند، تکیه دارند. در نسبتهای فشردهسازی بالاتر، DCT تمایل دارد که artefacts «بلوکینگ» قابلتوجهی ایجاد کند. در مقابل، DIRAC از تبدیل موجک گسسته (DWT) استفاده میکند و فریمها را در باندهای فرکانسی پیوسته فشرده میسازد. این کار مرزهای بلوک را حذف کرده و تحت فشردهسازی سنگین، تخریب نرمتر و طبیعیتری تولید میکند.
۲. مقیاسپذیری وضوح و نرخ فریم
DIRAC بهگونهای طراحی شده بود که نسبت به وضوح تصویر بیتفاوت باشد. میتواند هر چیزی را از ویدئوی موبایل با وضوح پایین (QCIF) تا تعریفهای استاندارد پخش (SD، 720p، 1080i/p) و حتی تا 4K و سینمای دیجیتال Ultra-High Definition فشردهسازی کند.
۳. جبران حرکت با جبران حرکت بلوکهای همپوشانی (OBMC)
برای تکمیل فیلترگذاری فضایی ویولت، DIRAC از جبران حرکت بلوکهای همپوشانی همراه با برآورد حرکتی سلسلهمراتبی استفاده میکند. OBMC انتقالها بین بردارهای حرکت را هموار میکند و از ایجاد لبههای مصنوعی که در غیر این صورت عبورهای بعدی ویولت را مختل میکردند، جلوگیری مینماید.
۴. حالتهای عملیاتی بدوناز دست رفتن و با از دست رفتن
مشخصات Dirac هم فشردهسازی درون‑فریم بدوناز دست رفتن ریاضی (ایدهآل برای پستولید استودیویی و آرشیو) و هم فشردهسازی بین‑فریم با افت کیفیت کارآمد که برای انتقال اینترنتی و پخش زنده طراحی شده است، را پشتیبانی میکند.
۵. دیراک پرو (SMPTE VC-2)
یک زیرمجموعه کمپیچیدگی و فقط درون‑فریم از Dirac به عنوان SMPTE 2042 (VC-2) استاندارد شد. این پروفایل که به عنوان "Dirac Pro" شناخته میشود، تأخیر فوقالعاده کمی دارد و آن را در خطوط تولید پخش تلویزیونی زمان واقعی بهویژه مؤثر میسازد.
ویژگیهای کلیدی فرمت DIRAC (.drc)
| ویژگی | مشخصات / جزئیات |
|---|---|
| توسعهدهنده | تحقیقات و توسعه BBC |
| انتشار اولیه | 2004 (مشخصات نهایی در 2008) |
| الگوریتم فشردهسازی | تبدیل موجک گسسته (DWT) با OBMC |
| مجوزدهی | منبع باز، بدون حق امتیاز |
| پروفایل زیرمجموعه استاندارد | SMPTE 2042 (Dirac Pro / VC-2) |
| پسوند فایل معمولی | .drc (raw/elementary)، .ogv، .mkv |
| نوع MIME | video/x-dirac |
| موارد استفاده هدف | پخش مشارکتی، بایگانی، پخش با وضوح بالا |
نحوه باز کردن و پخش فایلهای .drc
از آنجا که صنعت بهطور عمده حول کدکهای مبتنی بر DCT (مانند H.264 و AV1) متمرکز شده است، پخش مستقیم بومی برای فایلهای خام .drc در پخشکنندههای پیشفرض سیستمعامل کمتر رایج شده است. با این حال، چند ابزار چندمنظوره میتوانند آنها را رمزگشایی و پخش کنند:
۱. FFmpeg و FFplay (چندپلتفرمی)
چارچوب چندرسانهای منبع باز FFmpeg پشتیبانی یکپارچهای برای رمزگشایی جریانهای ابتدایی Dirac فراهم میکند. میتوانید یک فایل .drc را بهصورت مستقیم از طریق خط فرمان بررسی و پخش کنید:
ffplay input_video.drc
۲. File Viewer Plus / ابزارهای اختصاصی فایل (Windows)
در محیطهای دسکتاپ، برنامههای بررسی فرمت عمومی مانند File Viewer Plus یا ابزارهای وب‑محور مانند FileHelper میتوانند جریانهای ویدئویی قدیمی .drc را بخوانند و پخش کنند.
۳. VLC Media Player قدیمی یا ساختهای سفارشی
در حالی که نسخههای مدرن و اصلی VLC تمرکز خود را به سمت استانداردهای فعال تغییر دادهاند، نسخههای قدیمی VLC یا نصبهایی که با libschroedinger یا libdirac کامپایل شدهاند میتوانند جریانهای .drc را رمزگشایی کنند.
نحوه ایجاد و تبدیل ویدئوی .drc
ایجاد یا تبدیل ویدئو به و از مشخصات Dirac معمولاً از طریق رمزگذارهای خط فرمان که از کتابخانههای Dirac (Schroedinger یا libdirac) استفاده میکنند انجام میشود.
رمزگذاری به DIRAC از طریق FFmpeg
اگر باینری FFmpeg شما با پشتیبانی از Dirac/VC-2 ساخته شده باشد، میتوانید توالیهای ویدئویی را به این فرمت رمزگذاری کنید:
# Encode an MP4 into a Dirac-encoded stream
ffmpeg -i source.mp4 -c:v vc2 -b:v 5000k output.drc
تبدیل .drc به یک فرمت مدرن (MP4 / H.264)
برای اطمینان از سازگاری گسترده در دستگاههای موبایل، مرورگرهای وب و مراکز رسانهای، تبدیل .drc به استاندارد H.264/AAC به شدت توصیه میشود:
ffmpeg -i input_video.drc -c:v libx264 -crf 20 -c:a aac output_compatible.mp4
سوالات متداول (FAQ)
**Q1: فایل .drc چیست؟
یک فایل .drc یک فایل ویدئویی است که شامل دادههای ویدئویی فشردهشده با استفاده از کدک منبع باز و بدون حق امتیاز BBC DIRAC میباشد.
**Q2: چرا DIRAC امروزه بهطور گسترده در پخش وب مدرن استفاده نمیشود؟ شتابدهی سختافزاری و حمایت صنعتی به سمت H.264/H.265 و AV1 متمرکز شدند و بهاینترتیب پذیرش عمومی Dirac در خارج از تولید پخش (SMPTE VC-2) محدود مانده است.
**Q3: آیا پلیر مدیای VLC مدرن میتواند فایلهای خام .drc را باز کند؟
اکثریت نسخههای پیشفرض مدرن VLC تجزیهگر بومی کانتینر .drc را حذف کردهاند، بهطوری که FFmpeg یا مبدلهای اختصاصی گزینههای ترجیحی هستند.
**Q4: تفاوت بین Dirac و Dirac Pro چیست؟ دیرک یک کدک موجک بینفریم برای پخش و تحویل عمومی است، در حالی که Dirac Pro (SMPTE VC-2) یک کدک کمتاخیر و فقط درونفریم است که بهطور خاص برای تولید و مشارکت پخش ساخته شده است.
**Q5: آیا DIRAC کاملاً از هزینههای مجوز آزاد است؟ بله، BBC DIRAC را بهعنوان یک مشخصات باز و بدون حقالامتیاز تحت مجوزهای منبع باز توسعه داد تا از استخرهای پتنت محدودکننده جلوگیری کند.
منابع و مطالعات بیشتر
- FileInfo.com: مروری بر پسوند فایل DRC
- BBC R&D: تحقیقات و انتشارات فشردهسازی ویدئوی Dirac
- SMPTE Standards: SMPTE ST 2042-1 (استاندارد فشردهسازی ویدئوی VC-2)
- FFmpeg Project Documentation: پشتیبانی کدک Dirac و VC-2 در FFmpeg