بخشی از مقاله
بازیابی ویدئو در استاندارد فشرده سازی H.264
چکیده
با توجه به گسترش استفاده از روش جستجو در پایگاه های داده بر اساس محتوا، نیاز به سیستمی است که بتواند ویدئوها را در حوزه فشرده قطعه بندی کرده و بازیابی را در آنها انجام دهد. جهت بازیابی تصاویر، تشخیص شات ضروری می باشد. تحقیقات انجام شده در گذشته بیشتر روی استانداردهای H.263، JPEG و MPEG-1'2 می باشد. در این مقاله برای بازیابی اطلاعات تصویری و تشخیص شات در استاندارد H.264 از شناسایی ماکروبلوکهای حاوی ضرائب تبدیل غیر صفر در حوزه فشرده استفاده شده است. هدف از این روش افزایش سرعت تشخیص شات است.
واژه های کلیدی بازیابی اطلاعات، تشخیص شات، استاندارد H.264، حوزه فشرده
-1 مقدمه
6 دسته الگوریتم که برای تقسیم بندی ویدئو با استفاده از ویژگیهای زمانی در حوزه فشرده ارائه شده است، در جدول 1 نشان داده شده است :[1]
در این مقاله با توجه به اهمیت موضوع و نیاز به تحقیقات جدید، به مساله بازیابی ویدئو و تشخیص شات درحوزه فشرده تصاویر متحرک، پرداخته خواهد شد، و در روش پیشنهادی از یک ضریب الگوی بلوک کد شدهCBP 1 که یک شاخص خوب دقت تطبیق بلوک است استفاده می شود. مزایایی CBP نسبت به دیگر روشها این است که اولا: CBP بدون محاسبات اضافی به طور مستقیم از ترکیب لایه ماکروبلوک2 به دست می آید و ثانیا: زمان محاسبه %50 کاهش می یابد.
در بخش دوم مروری بر کارهای پیشین بیان می شود. سپس در بخش سوم ساختار استاندارد H.264 نشان داده شده، روش پیشنهادی در بخش چهارم بررسی می گردد. و در بخش پنجم نتیجه گیری انجام خواهد شد.
-2 مروری بر کارهای پیشین
روشهای تشخیص شات که تا کنون پیشنهاد شده اند می توان به موارد زیر اشاره کرد: استفاده از نرخ بیت [2]، استفاده از هیستوگرام رنگ ها، استفاده از بافت قاب ها [3]، مدل پنجره لرزان، مدل مارکوف [4] و پارتیشن بندی کردن بر اساس گراف ها. در روشهای قبلی ویژگیهای مختلفی از یک قاب مانند مقادیر پیکسل ها، کانال های رنگ مختلف، هیستوگرام رنگ و بافت در بین قاب های متوالی با هم مقایسه می شوند [5]، از سه نوع ویژگی متفاوت قاب ها شامل، اختلاف هیستوگرام، اختلاف صدا و تخمین حرکت اشیاء در دو قاب متوالی استفاده می شود .[6] در مدل مارکوف و پارتیشن بندی کردن بر اساس گراف ها بیش از دو قاب متوالی با هم مقایسه شده و چندین اطلاعات از چندین قاب را استخراج و سپس یک گراف ایجاد کرده که هر قاب در حکم یک گره و میزان شباهتها وزن لبه ها را تشکیل می دهد سپس بین گره ها ارتباطات کم وزن را پیدا کرده و با حذف آنها زیر گراف تشکیل می شود و به این ترتیب ارتباطات شات ها برقرار می گردد .[7]
-3 ساختار استاندارد H.264
در شکل 1 سلسله مراتب رشته بیت های H.264 و ترکیب لایه ماکروبلوک نشان داده شده است .[8] هر بلوک در این شکل نشان دهنده یک ترکیب3 در رشته بیت می باشد. که برای کدگشایی کردن بایستی از رشته بیت استخراج شود. این عناصر به قرار زیر می باشند: الف- :Type این عنصر، نوع اولین ماکروبلوک غیر Skip را در قطعه مشخص می کند. این نوع همچنین مشخص می کند که آیا ماکروبلوک از قسمتهای کوچکتر تشکیل شده است و همچنین چگونگی آن را تعیین می کند. نوع از روی جدولی مشخص در استاندارد، تبعیت می کند.
ب- :Prediction تخمین قاب ها، Intra mode، این عنصر نوع تخمین داخلی را در صورت وجود برای ماکروبلوک ها مشخص می کند. چنانچه ماکروبلوک از قسمتهای کوچکتر تشکیل شده باشد این عنصر برای قسمتهای مختلف تکرار می شود، Reference frame فاصله قاب مرجع را از قاب فعلی مشخص می کند و عددی بین یک تا پنج می باشد، Motion vector اختلاف بردار حرکت ماکروبلوک و یا قسمتهای آن را در خود دارند.
ج- :CBP این عنصر مشخص می کند که کدام بلوک 8 8 در یک ماکروبلوک (عنصر روشنایی یا رنگ) دارای ضرایب تبدیل غیر صفر است. چهار بیت اول این عنصر (CBPY) حاوی این است که کدام بلوک 8 8 از عناصر روشنایی یک ماکروبلوک دارای ضریب غیر صفر است. برای عنصر رنگ سه حالت وجود دارد:
- :nc=0 هیچ ضریب غیر صفری وجود ندارد.
- :nc=1 همه ضرایب AC صفر است ولی ضریب غیر صفر وجود دارد.
- :nc=2 بقیه حالات
CBP نهایی از رابطه CBP=CBPY+16 nc ایجاد می شود.
د- :QP مقدار پارامتر معکوس چندی ساز4 را مشخص می کند.
ه- :Residual داده های باقی مانده، برای بلوک حاوی ضرایب باقیمانده غیر صفر، Luma blocks تبـدیل مانـده روشـنایی، Cb blocks و Cr blocks ضرایب غیر صفر تبدیل مانده رنگها.
1-3 ویژگی CBP
CBP یک مولفه 6 بیتی (b5 b4 b3 b2 b1 b0) در ماکروبلوک H.264 می باشد که مشخص می کند، کدامیک از بلوک های 8 8 حاوی ضرائب تبدیل غیر صفر می باشد، و می تواند شاخص خوبی برای تخمین حرکت باشد.
شکل (2 بیتهای اختصاص داده شده CBP
همانطور که در شکل 2 نشان داده شده است [9] چهار بیت b3b2b1b0 مدل الگوی بلوک روشنایی است که به صورت جداگانه برای هر ماکروبلوک کد شده مشخص شده است، علاوه بر این b5b4 الگوی بلوک رنگی (CBP Chroma) می باشد که این دو بلوک به چهار بلوک قبلی متصل شده اند:
b5b4 = 00 (1 می باشد زمانیکه تمام ضرائب تبدیل رنگی برابر با صفر باشد.
b5b4 = 01(2 می باشد زمانیکه یک یا چند سطح از ضریب تبدیل DC رنگی دارای مقدار غیر صفر و تمام سطوح ضرائب تبدیل AC رنگی برابر صفر باشد.
3) می باشد زمانیکه صفر یا چند سطح ضریب DC رنگی
مخالف صفر و یک یا چند سطح از ضرائب تبدیل AC مخالف صفر باشد.
بنابراین در رمزگذاری5 هر ماکروبلوک موجود در قاب، یک بایت برای نشان دادن پارامتر CBP وجود دارد، که بدون رمزگشایی6 کردن رشته بیت فشرده می توان به آن دسترسی داشت، زمانیکه بلوک تخمینی و بلوک اصلی کاملا بر هم منطبق باشند تفاضل آن دو برابر صفر
می گردد یعنی در بلوک مانده مقدار صفر قرار می گیرد و از آن تبدیل DCT گرفته می شود در این حالت مقداری که در پارامتر CBP ذخیره می شود برابر صفر است که این امر نشان دهنده آن است که بین این دو ماکروبلوک در دو قاب تفاوتی رخ نداده است.
-4 روش پیشنهادی
با توجه به این که هر کدام از ماکروبلوک های موجود در قاب دارای یک ضریب CBP هستند، برای تمام CBP های موجود در یک قاب می توان هیستوگرامی را تشکیل داد که هر کدام از ستونهای این هیستوگرام نشان دهنده تعداد ماکروبلاک هایی موجود در یک قاب است که دارای ضریب CBP یکسانی هستند. سپس برای تشخیص مرز شات از مقایسه هیستوگرام های قاب های متوالی همنوع استفاده می شود، ایده این روش آن است که دو قاب که زمینه آنها و اشیاء آنها (و حرکت اشیاء) تغییر چندانی نداشته باشد، هیستوگرام آنها تفاوت بسیار کمی خواهد داشت. اگر میزان اختلاف آنها از یک حد آستانه بیشتر شود نشان دهنده، وجود شات بین آن دو قاب می باشد.
یک هیستوگرام رنگی از قاب i، یک بردار n بعدی است که در آن Hi(j), j=1' 2'…Q، i مقادیر CBP ، و H(j) تعداد ماکروبلوک هایی از قاب i می باشد که دارای مقدار CBP یکسانی می باشد (از 1 تا .(n به عنوان مثال همانطور که در شکل 3 دیده می شود، 40 ماکروبلوک که دارای مقدار CBP، 16 هستند به صورت H16(40) نشان داده می شود.