کدک فشرده سازی دوربین مداربسته
کدک یا کدگذاری بهعنوان قلب یک سیستم نظارت تصویری شناخته میشود. نامهایی مانند H.264، H.265 و MJPEG عموما برای فشردهسازی تصویر دوربین مدار بسته استفاده میشوند. این نامها چطور کار میکنند؟ چرا باید از Codec استفاده کنیم؟ در این مسیر با چه مشکلی احتمالا مواجه میشویم؟ در این مقاله با ما همراه باشید تا با بخش دیگری از عملکرد دوربین مداربسته آشنا شویم.
فشرده سازی و خارج کردن ویدیو از حالت فشرده
در حالت فشرده، استوریج و ترافیک شبکه تا 100 برابر کمتر مصرف میشوند. اساسا باید تمامی ویدیوهای نظارت تصویری فشرده شوند. هنگامی که تصویر دیجیتایز میشود، اصولا در ابتدا فشرده نمیشود. سه فاکتور اصلی در سایز ویدیوهای غیر فشرده وجود دارد:
- رنج مقادیر هر پیکسل
- تعداد کل پیکسلهای هر فریم
- تعداد کل فریمها در هر ثانیه
در ادامه در مورد هر کدام مجزا و مفصل صحبت میکنیم:
مقادیر پیکسلها
به هر پیکسل، مقداری (ارزشی) داده میشود که با عددی در یک بازه، نمایش داده میشود. بازه تعیین میکند که چقدر رنگ را میتوان دقیقا تعریف کرد. همچنین این میزان بر پهنای باند/اندازه نیز تاثیر میگذارد.
- مقیاس خاکستری را در نظر بگیرید. اغلب دارای بازهای از 256 (8 بیت) است. عدد صفر نشاندهنده سیاه ، عدد 255 نشاندهنده سفید و اعداد بین آنها نشاندهنده سایههای خاکستری هستند.
- البته، تقریبا همه تصاویر نظارت تصویری از رنگ پشتیبانی میکنند، پس رنج مقادیر موردنیاز برای نمایش همه رنگها بسیار بیشتر است. 16 بیت یا 65536 عادی هست.
رزولوشن تصویر و فریم ریت
درک دو عامل دیگر بسیار آسان است: رزولوشن دوربین و تعداد پیکسلهای افقی عمودی؛ تعداد فریم در ثانیه، 1، 10، 30 ... هست. اکثریت قریب به اتفاق دوربینهای مداربسته، بین 5 تا 15 فریم در ثانیه ضبط میکنند.
مثال عالی از تصویری که فشرده نیست
آنچه در اینجا بسیار مهم است، تشخیص این نکته است که تصاویر فشرده نشده چقدر میتوانند بزرگ شوند. برای مثال یک دوربین رنگی با رزولوشن 1080P با سرعت 30 فریم در ثانیه را در نظر بگیرید:
با ضرب این سه فاکتور در هم، حدود 1 گیگابیت در ثانیه ویدیو غیر فشرده داریم، بنابراین در یک روز، حدود 12 ترابایت فضا نیاز دارید. در حالیکه هارددیسکها همچنان ظرفیتشان بالاتر میرود، سیستم نظارت تصویری غیر فشرده با 16 دوربین به مدت 30 روز ذخیره میشوند. این امر به تعداد زیادی هارد و هزینهی سرسام آوری خرید آنها نیاز دارد.
کدکها کلیدی هستند
علیرغم سایز بالای ویدیوهای غیر فشرده، محصولات نظارت تصویری برای 16 دوربین، بهطور معمول در کامپیوترهای استاندارد یا روی دستگاه ضبط تصویر ذخیره میشوند. پس راهکار برای حل این مشکل چیست؟ کدکها.
کدک مخفف فشردهسازی / از فشرده خارج کردن تصویر است.
عمل فشردهسازی، عنصر اصلی کاهش مصرف پهنای باند/ذخیرهسازی است. اختصاص مقدار (ارزش) منحصر بفرد به هرپیکسل از هر فریم، کاری بیهوده است. زیرا بیشتر صحنهها با تعداد کمی از رنگهای مشابه پر شدهاند. کدکها، ویدیو را با کاهش تعداد مقدار ضبط، فشرده میکنند. در حین ردیابی اینکه کدام پیکسلها دارای مقادیر یکسان و مشابه هستند، به آن اجازه میدهد تا مقادیر بسیار کمتری از هر بیت را ارسال کند.
فشرده سازی بر اساس Inter و Intra
دو نوع رویکرد برای فشردهسازی وجود دارد:
- اینترافریم.
- اینترفریم.
درک تمایزات بین این دو رویکرد، چند نکته دربردار: تاثیر پهنای باند مصرفی، توان پردازشی مورد نیاز و ریسک کیفیت.
- فشرده سازی اینترافریم در یک تک فریم رخ میدهد. اما در کل فریم نیست.(مانند Mjpeg)
- فشردهسازی اینترفریم در چندین فریم است. (H.264,H.265, …)
همهی کدکها از فرمت اینترافریم پشتیبانی میکنند، اما برخی فقط از هر دو اینترا و اینترفریم پشتیبانی میکنند.
فشرده سازی اینترافریم
اینترافریم فقط به یک فریم و در یک لحظه نگاه میکند. تمام تلاش خود را برای فشردهسازی آنچه در آن تصویر است، انجام میدهد. حتی گفته میشود که یک ویدیو، تعدادی تصویر هستند، که فشردهسازی اینترافریم فقط در یک فریم و در یک لحظه رخ داده و استریم نادیده گرفته میشود. فریمهای مجزای استریمهای کدک اینترافریم شبیه فریمهای یک فیلم هستند:
جنبه مثبت این کار بهصورت محاسباتی ساده است و ویدیو را به میزان قابل توجهی فشرده میکند. برای نمونه، یک استریم ویدیویی با رزولوشن 1080 و 30 فریم در ثانیه، از یک فشرده سازی اینترا فریم شبیه MJPEG بیت ریت کمتر از 1000 مگابیت در ثانیه تا 40 مگابیت در ثانیه را کاهش میدهد. با این حال، نقطه ضعف این است که اگر بین فریمها مقایسه انجام شود، حتی save بیشتری نیز در دسترس است.
فشردهسازی اینترفریم
با استفاده از فشردهسازی اینترفریم، نه تنها ویدیوی درون فریم کدگذاری میشود، بلکه کدک، فریمهای مجاور را برای فشردهسازی بیشتر تصویر مقایسه میکنند. این مورد به دلیل تغییرات اندک از یک فریم به فریم بعدی رخ خواهد داد. برای مثال، یک شخص متحرک در یک صحنه مشابه را در نظر بگیرید، با فشردهسازی اینترفریم، فقط فریمهای مربوط به یک بازوی شخص (یعنی همان بازوی متحرک) ارسال میشوند، بقیه قسمت ها که تحرکی ندارند، فریمی ارسال نمی شود (مانند تصویر زیر).
با توجه به باقی ماندن قسمتهای زیادی از یک صحنه معین، تنها تغییرات ایجاد شده در صحنه ارسال میشوند و سبب صرفهجویی در پهنای باند و فضای ذخیرهسازی خواهد شد.
برای مثال، استریم 1080P با 30 فریم در ثانیه، احتمالا به 40 مگابیت در ثانیه با فرمت MJPEG نیاز دارد. یک کدک اینترافریم فقط احتمالا به 4 مگابیت در ثانیه با فرمت H.264 نیاز دارد، کدکی که از هر دو استفاده میکند. به هرحال، نقطه ضعف اصلی در فشردهسازی اینترفریمی این است که از نظر محاسباتی بسیار فشردهتر است، که این مسئله میتواند روی کیفیت تصویر تاثیر بگذارد. این را در ادامه بررسی خواهیم کرد.
فریمهای I و P
دو نوع فریم در فشردهسازی اینترافریم مانند H.264 و H.265 وجود دارد. I و P.
فریمهای I
اولین فریم در یک گروه تصویری، آی فریم نامیده میشود. بهصورت اختصار عبارت intra-codec. اساسا یک فریم کامل از ویدیو است و برخلاف آن، P فریم فقط تغییرات صحنه را نشان میدهد.
فاصله بین دو آی فریم، بهعنوان I-frame interval، گروهی از تصاویر GOV، یا GOP است. به عنوان مثال تصویر زیر نشانگر آی فریم یک صحنهی بیرونی استفاده شده در تستهای ماست.
پی فریم
پی فریم به تصویر کامل آی فریم قبلی اشاره میکند تا فقط تغییرات صحنه را ارسال کند. تغییرات ممکن است کوچک باشند، مانند نویز دیجیتالی یا حرکت شاخ و برگ درختان، مانند دوربین PTZ که از حالت یک پریست به پریست دیگر حرکت میکند. حرف P در پی فریم مخفف پیشبینیکننده است.
تغییرات در یک پی فریم ارسال شده از صحنه تستی در تصویر زیر قابل مشاهده است. فقط نواحی نزدیک به جاده، جایی که خودروها در حال عبور هستند، و شاخ و برگ به سمت راست حرکت میکنند، تغییرات را ارسال میکنند.
با کنار هم قرارد دادن اینها در فیلم زیر، تغییرات فریم P را میتوان روی هم انباشته دید، تا زمانی که آی فریم بعدی ارسال شود (15 ثانیه).
انواع فریمهای فشرده سازی دیگر
نکته قابل تامل این است که علاوه بر I و P، انواع فریمهای دیگری نیز وجود دارند، مانند B، SI، SP، گرچه این فریمها عملا در نظارت تصویری و دوربین مداربسته استفاده نمیشوند. برخی از دوربینهای IP، از بی فریم پشتیبانی میکنند، اما همه VMSes ها قادر به دکودینگ نیستند، پس معمولا از آن نیز استفاده نمیشود.
کدکهای استاندارد
از سال 2022، میزان استفاده h.265 به نسبت h.264 بیشتر شده است. مشکلات بار CPU با بهبود پشتیبانی از رمزگشایی سخت افزار کاهش یافته است. اگرچه H.264 نیاز به سخت افزار کمتری دارد و سبب شده برخی بازهم H.264 را به H.265 ترجیح دهند.
کدکهای اختصاصی
تعداد بسیار کمی از کدکهای صنعت نظارت تصویری در سال 2022 استفاده میشوند. در دیگر سیستمهای آنالوگ قدیمی، ویدیو انکودشده، ذخیرهشده و در همان دستگاه مدیریت میشود (مانند یک UVR) که استفاده از کدک اختصاصی را آسانتر میکند. زیرا سازنده کل فرآینده را کنترل میکند. به هر حال، انکود دوربینهای IP، به تنهایی ویدیو را رمزگذاری میکند. پس باید این ویدیو رمزگذاری شده را برای ذخیره و مدیریت به یک ضبط کننده VMS ارسال کنند. کدکهای اختصاصی پیچیدگی ذخیره، مدیریت و نمایش تصاویر روی مانیتور صنعتی یا ویدئو وال را افزایش میدهند، زیرا هر کدام باید با VMS یکپارچه شوند. هزینههای بالای انجام کار برای چندین کدک اختصاصی باعث انگیزه بیشتر کدکهای سازنده دوربین های IP شده است.
اسمارت کدک یا فشرده سازی هوشمند
در گذشته، فرمتهای H.265 و H.264 رایج بودهاند. با هدف کاهش بیشتر بیت ریت، دو تکنیک در آنها استفاده شده که در ادامه آنها را بررسی میکنیم:
فشرده سازی هوشمند
به جای اعمال سطوح فشردهسازی یکسان در کل صحنه، اسمارت کدکهای داینامیک در FOV دوربینها فعالیت دارند. برای مثال، به تصویر زیر نگاه کنید، فشرده سازی میتواند برروی Low تنظیم شود تا بالاترین کیفیت ظاهر شود. امادر بک گراند سفید تنظیمات روی high قرار می گیرند ، زیرا به جزئیات بیشتر روی دیوار سفید نیاز است.
آی فریم داخلی بهصورت داینامیک
دوما، کدکهای هوشمند معمولا بهصورت آی فریمهای داینامیک و بر اساس فعالیتها در صحنه تنظیم میشوند. اگر یک صحنه کوچک یا بدون تحرک باشد، دوربین I-frame ها را بهصورت 5، 10، 20 ثانیه یا بیشتر ارسال خواهد کرد. اما اگر فعالیتی در صحنه تشخیص داده شود، یک آی فریم سریعا ارسال شده و آی فریم به حالت نرمال باز میگردند (برای مثال 1 ثانیه)، و این فرایند تا زمانی که فعالیت وجود داشته باشد، ادامه دارد. تصویر زیر یک آنالایزر استریم است که تاثیر آی فریم اینتروال داینامیک را نشان میدهد.
مزایای کدک هوشمند
در تستهای ما کدکهای هوشمند، بهصورت قابل توجهی بیتریت را کاهش دادهاند، یعنی حداقل حدود 15 درصد و در برخی صحنه ها تا 95 درصد. این کدکها بیشترین تاثیر را روی صحنهها دارند، آی فریمهای اینتروال بهصورت طولانیتر و فشردهتر به دلیل عدم فعالیت است.
کیفیت Mjpeg و H.264
در حالیکه فرمت H.264 پرکاربردترین فرمت هست، در این سالها بحث کاهش کیفیت در مقایسه با MJPEG وجود داشته است.
به هر حال، موارد متعددی وجود دارد که کیفیت را زیر سوال میبرند:
تنظیمات با بالاترین سطح فشردهسازی: اگر سطح فشردهسازی روی بالاترین میزان تنظیم شود، افت کیفیت خواهیم داشت.
پیچیدگی صحنه
در صحنههای پیچیده و شلوغ اغلب این مشکلات نمایان میشود.
تنظیمات بیتریت ثابت
اگر CBR استفاده شود ولی بیت ریت خیلی کم باشد، ویدیو افت کیفیت خواهد داشت. به هر حال، در بیشتر موارد، حتی در حالت پیشفرض، H.264، کیفیتی شبیه به MJPEG دارد.
کدکهای مقیاس پذیر
بیشتر کدکها فقط از یک رزولوشن پشتیبانی میکنند، برای مثال، تغییر از استریم 2 مگاپیکسل به 1 مگاپیکسل با استفاده از MJPEG یا H.264، نیاز به رمزگذاری یک استریم کاملا جدید یا انتقال کدینگ (مانند پردازش مجدد) برای استریم 2MP برای ساخت 1MP دارد. در بیشتر موارد، اگر شما یک کلاینت با پهنای باند کم را ارسال کنید (مانند موبایل)، یا حجم ذخیرهسازی ویدیوی قدیمی را کاهش دهید، یک کلاس خاصی از کدکها با نام اسکیلیبل scalable یا مقیاس پذیر ایجاد میشود که بهصورت اتوماتیک وبدون نیاز به درخواست یک استریم جدید یا پردازش مجدد یک استریم موجود اتفاق می افتد.
یک کدک مقایسپذیر، بهصورت خاص میتواند فریمها یا سطوح رزولوشن که خارج از استریم هستند را انتخاب کنند. این سبب میشود که فریمها یا رزولوشنها به دفعات زیادی بهصورت داینامیک رزولوشن و فریم در ثانیه را برای کلاینتهای موبایل از راه دور تنظیم کنند.
انواع کدک مقایس پذیر
ردیف | نوع کدک مقایس پذیر | توضیحات |
---|---|---|
1 | SVC | مقیاس پذیر H.264+ است. جنبه مثبت آن این است که مقیاسپذیری را با مزایای پهنای باند H.264 ترکیب میکند. متاسفانه، تولیدکنندگان کمی این نوع کدک را پشتیبانی میکنند. اکثر آنها این کار را از طریق چنداستریمی (ارسال چندین استریم بهطور همزمان با وضوح و فریم ریت) انجام میدهند. |
2 | JPEG2000 | که با اضافهشدن مقیاسپذیری MJPEG است. این کدکی است که اویجیلون بهطور سنتی از آن استفاده میکرد. اما در دروبینهای جدید آن را حذف کرده است. نقطه ضعف بزرگ در JPEG2000 مانند MJPEG، افزایش گسترده پهنای باند/ذخیرهسازی در قیاس با H.264 است. |
SVC بسیار کند توسعه پیدا میکند، در برخی از دوربینها (حداقل روی کاغذ) برای چندین سال، با وجود در دسترس بودن، پذیرش واقعی بسیار کم است.
با توجه به مزایای نرخ بیت H.264 هوشمند (که نیازی به توسعه VMS جدید ندارند)، و H.265 که اولویت دارند، بعید است که SVC به یک عامل اصلی در کدکهای نظارتی تبدیل شوند.
کدکهای آینده
در حالیکه کدکهای جایگزین زیادی مورد بحث قرار میگیرند، بسیار بعید است که هر نوع غیر استانداردی در نظارت مورد پذیرش گسترده قرار گیرد. برای مثال برخی از تولید کنندگان ادعا میکنند که از طریق کدکهای اختصاصی خود، مانند Digital Barriers TVI / EdgeVis صرفهجویی زیادی در پهنای باند مصرفی دارند.
با این حال، این امر به تولیدکنندگان دوربین و توسعه دهندگان VMS نیاز دارد تا این کدکها را در محصولات خود پیادهسازی کنند. علاوه بر این، با توجه به کاهش قابل توجه نرخ بیت ریت کدهای هوشمند، که با اکثر ضبطکنندههای فعلی H.264 سازگار هستند، سرمایهگذاری در توسعه برای افزدون این کدکهای اختصاصی بعید است.
چه نوع کدکی را انتخاب کنیم؟
در سال 2022، بهترین ترکیب کدک برای بیشتر موارد، استفاده از H.264 با پشتیبانی از کدک هوشمند بود، زیرا کدکهای هوشمند بهطور قابل توجهی کارایی H.264 را با حداقل نکات منفی بهبود میبخشند.
H.265 در حال تقویت است، اما در بسیاری از موارد به دلیل محدودیت های مختلف منتفی خواهد بود. اگرچه، بهطور قابل توجهی قویتر است، اغلب در سیستم های دوربین/NVR از یک تولیدکننده بهصورت end-to-end استفاده میشود تا مشکلات سازگاری به حداقل برسد.
MJPEG برای برنامههای تخصصی و کسانی که از فشردهسازی هراس دارند، یک نیچ باقی میماند.
سخن آخر در مورد فشرده سازی تصویر دوربین مداربسته
کمپانیهای بزرگ تولیدکننده دوربین مداربسته، باید به سمت فشرده سازی تصاویر تولیدی خود بروند. رزولوشن بالا، فضای زیادی از هارد را پر میکند. از طرفی در سیستم های نظارت تصویری تحت شبکه IP، پهنای باند مقولهی بسیار مهمی است. این دو باید بهوسیله فشرده کردن اطلاعات کنترل شوند. حال هر کمپانی بتواند در این امر موفق عمل کند، طرفداران بیشتری نیز خواهد داشت.