کدک ویدیویی چگونه کار می کند؟ بخش 1: اصول

قسمت دوم: نحوه عملکرد کدک ویدیویی

هر شطرنجی تصویر را می توان در فرم نشان داد ماتریس دو بعدی. وقتی صحبت از رنگ‌ها به میان می‌آید، می‌توان این ایده را با نگاه کردن به یک تصویر توسعه داد ماتریس سه بعدی، که در آن از ابعاد اضافی برای ذخیره داده های هر یک از رنگ ها استفاده می شود.

اگر رنگ نهایی را ترکیبی از به اصطلاح در نظر بگیریم. رنگ های اصلی (قرمز، سبز و آبی)، در ماتریس سه بعدی ما سه صفحه را تعریف می کنیم: اولی برای قرمز، دومی برای سبز و آخری برای آبی.
کدک ویدیویی چگونه کار می کند؟ بخش 1: اصول
هر نقطه در این ماتریس را یک پیکسل (عنصر تصویر) می نامیم. هر پیکسل حاوی اطلاعاتی در مورد شدت (معمولاً به عنوان یک مقدار عددی) هر رنگ است. مثلا، پیکسل قرمز به این معنی است که شامل 0 سبز، 0 آبی و حداکثر قرمز است. پیکسل صورتی می توان با استفاده از ترکیب سه رنگ شکل داد. با استفاده از یک محدوده عددی از 0 تا 255، یک پیکسل صورتی به عنوان تعریف می شود قرمز = 255, سبز = 192 и آبی = 203.

کدک ویدیویی چگونه کار می کند؟ بخش 1: اصول

این مقاله با پشتیبانی EDISON منتشر شده است.

ما در حال توسعه هستیم برنامه های کاربردی برای نظارت تصویری، پخش ویدئو، و همچنین نامزد هستیم فیلمبرداری در اتاق جراحی.

روش های جایگزین برای رمزگذاری تصویر رنگی

مدل های بسیار دیگری برای نمایش رنگ هایی که یک تصویر را تشکیل می دهند وجود دارد. به عنوان مثال، می‌توانید از یک پالت ایندکس‌شده استفاده کنید که برای نمایش هر پیکسل به جای سه بایت مورد نیاز هنگام استفاده از مدل RGB، تنها به یک بایت نیاز دارد. در چنین مدلی می توان از ماتریس دو بعدی به جای ماتریس سه بعدی برای نمایش هر رنگ استفاده کرد. این باعث صرفه جویی در حافظه می شود، اما طیف رنگی کوچک تری می دهد.

کدک ویدیویی چگونه کار می کند؟ بخش 1: اصول

RGB

برای مثال به این تصویر زیر نگاه کنید. صورت اول کاملاً نقاشی شده است. بقیه صفحات قرمز، سبز و آبی هستند (شدت رنگ های مربوطه در مقیاس خاکستری نشان داده شده است).

کدک ویدیویی چگونه کار می کند؟ بخش 1: اصول

می بینیم که سایه های قرمز در اصل در همان جاهایی خواهد بود که درخشان ترین قسمت های صورت دوم مشاهده می شود. در حالی که سهم آبی را می توان عمدتاً در چشمان ماریو (آخرین چهره) و عناصر لباس او مشاهده کرد. توجه کنید که هر سه صفحه رنگی کمترین نقش را دارند (تاریک ترین قسمت های تصاویر) - سبیل ماریو.

برای ذخیره شدت هر رنگ، تعداد معینی بیت مورد نیاز است - این مقدار نامیده می شود عمق بیت. فرض کنید 8 بیت (بر اساس مقدار 0 تا 255) برای هر صفحه رنگی صرف شده است. سپس عمق رنگ 24 بیت (8 بیت * 3 صفحه R/G/B) داریم.

یکی دیگر از ویژگی های یک تصویر این است قطعنامه، که تعداد پیکسل ها در یک بعد است. اغلب به عنوان نشان داده می شود عرض × ارتفاعمانند تصویر 4 در 4 در زیر.
کدک ویدیویی چگونه کار می کند؟ بخش 1: اصول

ویژگی دیگری که هنگام کار با تصاویر/فیلم ها با آن سروکار داریم این است نسبت ابعاد، رابطه متناسب معمولی بین عرض و ارتفاع یک تصویر یا پیکسل را توصیف می کند.

وقتی می گویند فلان فیلم یا عکس 16 در 9 است، معمولا منظورشان است نسبت صفحه نمایش (DAR - از نسبت ابعاد نمایشگر). با این حال، گاهی اوقات ممکن است اشکال مختلفی از پیکسل های فردی وجود داشته باشد - در این مورد ما در مورد آن صحبت می کنیم نسبت پیکسل (PAR - از نسبت ابعاد پیکسل).

کدک ویدیویی چگونه کار می کند؟ بخش 1: اصول

کدک ویدیویی چگونه کار می کند؟ بخش 1: اصول

توجه به مهماندار: دی وی دی مربوط به DAR 4 تا 3

اگرچه وضوح واقعی DVD 704x480 است، اما همچنان نسبت تصویر 4:3 را حفظ می کند زیرا PAR 10:11 (704x10 / 480x11) است.

و در نهایت، ما می توانیم تعیین کنیم تصویری مانند دنباله ای از n فریم های دوره زمان، که می تواند یک بعد اضافی در نظر گرفته شود. آ n سپس نرخ فریم یا تعداد فریم در ثانیه است (FPS - از فریم بر ثانیه).

کدک ویدیویی چگونه کار می کند؟ بخش 1: اصول

تعداد بیت در ثانیه مورد نیاز برای نمایش یک ویدیو است سرعت انتقال - نرخ بیت.

نرخ بیت = عرض * ارتفاع * عمق بیت * فریم در ثانیه

برای مثال، یک ویدیوی 30 فریم در ثانیه، 24 بیت در ثانیه، 480×240 به 82,944,000 bps یا 82,944 مگابیت در ثانیه (30x480x240x24) نیاز دارد - اما این در صورتی است که از روش فشرده سازی استفاده نشود.

اگر سرعت انتقال تقریبا ثابت، سپس نامیده می شود سرعت انتقال ثابت (پسوند CB - از نرخ بیت ثابت). اما همچنین می تواند متفاوت باشد، در این مورد نامیده می شود نرخ باود متغیر (VBR - از نرخ بیت متغیر).

این نمودار VBR محدودی را نشان می‌دهد، جایی که بیت‌های زیادی در مورد یک قاب کاملاً تاریک تلف نمی‌شوند.

کدک ویدیویی چگونه کار می کند؟ بخش 1: اصول

مهندسان در ابتدا روشی را برای دو برابر کردن نرخ فریم درک شده یک نمایشگر ویدیویی بدون استفاده از پهنای باند اضافی توسعه دادند. این روش به عنوان شناخته شده است ویدیوی درهم آمیخته; اساساً نیمی از صفحه را در "فریم" اول و نیم دیگر را در "قاب" بعدی ارسال می کند.

در حال حاضر صحنه ها بیشتر با استفاده از رندر می شوند فن آوری های اسکن مترقی. این روشی برای نمایش، ذخیره یا انتقال تصاویر متحرک است که در آن تمام خطوط هر فریم به صورت متوالی ترسیم می شوند.

کدک ویدیویی چگونه کار می کند؟ بخش 1: اصول

خوب! اکنون می دانیم که یک تصویر چگونه به صورت دیجیتالی نمایش داده می شود، رنگ های آن چگونه چیده شده اند، چند بیت در ثانیه برای نمایش ویدیو صرف می کنیم، اگر نرخ بیت ثابت (CBR) یا متغیر (VBR) باشد. ما در مورد رزولوشن معین با استفاده از نرخ فریم معین می دانیم، با بسیاری از اصطلاحات دیگر مانند ویدیوی درهم، PAR و برخی دیگر آشنا هستیم.

حذف افزونگی

مشخص است که ویدئو بدون فشرده سازی به طور معمول قابل استفاده نیست. یک ویدیوی یک ساعته با رزولوشن 720p و 30 فریم در ثانیه 278 گیگابایت را اشغال می کند. با ضرب 1280 x 720 x 24 x 30 x 3600 (عرض، ارتفاع، بیت در هر پیکسل، FPS و زمان در ثانیه) به این مقدار می‌رسیم.

استفاده الگوریتم های فشرده سازی بدون تلفاتمانند DEFLATE (که در PKZIP، Gzip و PNG استفاده می شود)، پهنای باند مورد نیاز را به اندازه کافی کاهش نمی دهد. ما باید به دنبال راه های دیگری برای فشرده سازی ویدیو باشیم.

برای این کار می توانید از ویژگی های ویژن ما استفاده کنید. ما در تشخیص روشنایی بهتر از رنگ هستیم. ویدیو مجموعه ای از تصاویر متوالی است که در طول زمان تکرار می شوند. تفاوت های کوچکی بین فریم های مجاور یک صحنه وجود دارد. علاوه بر این، هر فریم شامل مناطق زیادی با استفاده از رنگ مشابه (یا مشابه) است.

رنگ، روشنایی و چشمان ما

چشمان ما بیشتر به روشنایی حساس هستند تا رنگ. با دیدن این تصویر می توانید خودتان متوجه این موضوع شوید.

کدک ویدیویی چگونه کار می کند؟ بخش 1: اصول

اگر در نیمه سمت چپ تصویر رنگ مربع ها را نمی بینید A и B در واقع یکسان هستند، پس این طبیعی است. مغز ما را مجبور می کند که به جای رنگ، به نور و سایه توجه بیشتری داشته باشیم. در سمت راست بین مربع های تعیین شده یک بلوز به همان رنگ وجود دارد - بنابراین ما (یعنی مغز ما) به راحتی تشخیص می دهیم که در واقع آنها یک رنگ هستند.

بیایید (به روشی ساده) به نحوه عملکرد چشمانمان نگاه کنیم. چشم اندام پیچیده ای است که از بخش های زیادی تشکیل شده است. با این حال، ما بیشتر به مخروط ها و میله ها علاقه مندیم. چشم شامل حدود 120 میلیون میله و 6 میلیون مخروط است.

بیایید درک رنگ و روشنایی را به عنوان عملکردهای جداگانه بخش های خاصی از چشم در نظر بگیریم (در واقع، همه چیز تا حدودی پیچیده تر است، اما ما آن را ساده می کنیم). سلول های میله ای عمدتاً مسئول روشنایی هستند، در حالی که سلول های مخروطی مسئول رنگ هستند. مخروط ها بسته به رنگدانه ای که دارند به سه نوع تقسیم می شوند: مخروط S (آبی)، مخروط M (سبز) و مخروط L (قرمز).

از آنجایی که میله‌ها (روشنایی) بسیار بیشتری نسبت به مخروط‌ها (رنگ) داریم، می‌توانیم نتیجه بگیریم که ما توانایی تشخیص انتقال بین تیره و روشن را نسبت به رنگ‌ها داریم.

کدک ویدیویی چگونه کار می کند؟ بخش 1: اصول

ویژگی های حساسیت کنتراست

محققان روانشناسی تجربی و بسیاری از زمینه های دیگر نظریه های زیادی را در مورد بینایی انسان ارائه کرده اند. و یکی از آنها نام دارد توابع حساسیت کنتراست. آنها مربوط به روشنایی مکانی و زمانی هستند. به طور خلاصه، این در مورد تعداد تغییرات مورد نیاز است قبل از اینکه یک ناظر متوجه آنها شود. به جمع کلمه "function" توجه کنید. این به این دلیل است که ما می توانیم عملکردهای حساسیت کنتراست را نه تنها برای تصاویر سیاه و سفید، بلکه برای تصاویر رنگی نیز اندازه گیری کنیم. نتایج این آزمایش‌ها نشان می‌دهد که در بیشتر موارد چشم‌های ما بیشتر به روشنایی حساس هستند تا رنگ.

از آنجایی که می دانیم به روشنایی تصویر حساسیت بیشتری داریم، می توانیم سعی کنیم از این واقعیت استفاده کنیم.

مدل رنگ

ما کمی نحوه کار با تصاویر رنگی را با استفاده از طرح RGB فهمیدیم. مدل های دیگه هم هست مدلی وجود دارد که روشنایی را از کروما جدا می کند و به آن می گویند YCbCr. به هر حال، مدل های دیگری نیز وجود دارند که تقسیم بندی مشابهی را انجام می دهند، اما ما فقط این مورد را در نظر خواهیم گرفت.

در این مدل رنگی Y نمایش روشنایی است و همچنین از دو کانال رنگی استفاده می کند: Cb (آبی پررنگ) و Cr (قرمز پر رنگ). YCbCr را می توان از RGB مشتق کرد و تبدیل معکوس نیز امکان پذیر است. با استفاده از این مدل می توانیم تصاویر تمام رنگی را همانطور که در زیر می بینیم ایجاد کنیم:

کدک ویدیویی چگونه کار می کند؟ بخش 1: اصول

تبدیل بین YCbCr و RGB

کسی اعتراض می کند: اگر سبز استفاده نشود چگونه می توان همه رنگ ها را بدست آورد؟

برای پاسخ به این سوال، اجازه دهید RGB را به YCbCr تبدیل کنیم. بیایید از ضرایب پذیرفته شده در استاندارد استفاده کنیم BT.601، که توسط واحد توصیه شده است ITU-R. این بخش استانداردهای ویدئوی دیجیتال را تعیین می کند. به عنوان مثال: 4K چیست؟ نرخ فریم، وضوح، مدل رنگ چقدر باید باشد؟

ابتدا روشنایی را محاسبه می کنیم. بیایید از ثابت های پیشنهادی ITU استفاده کنیم و مقادیر RGB را جایگزین کنیم.

Y = 0.299R + 0.587G + 0.114B

بعد از اینکه روشنایی داشتیم، رنگ های آبی و قرمز را از هم جدا می کنیم:

Cb = 0.564(B - Y)

Cr = 0.713(R - Y)

و همچنین می توانیم با استفاده از YCbCr دوباره تبدیل کنیم و حتی سبز شویم:

R = Y + 1.402Cr

B = Y + 1.772Cb

G = Y - 0.344Cb - 0.714Cr

به طور معمول، نمایشگرها (مانیتور، تلویزیون، صفحه نمایش و غیره) فقط از مدل RGB استفاده می کنند. اما این مدل را می توان به روش های مختلفی سازماندهی کرد:

کدک ویدیویی چگونه کار می کند؟ بخش 1: اصول

نمونه برداری رنگی

با تصویری که به عنوان ترکیبی از درخشندگی و کرومینانس نمایش داده می‌شود، می‌توانیم با حذف انتخابی اطلاعات از حساسیت بیشتر سیستم بینایی انسان به درخشندگی نسبت به کرومینانس استفاده کنیم. نمونه‌برداری فرعی کروما روشی برای رمزگذاری تصاویر با استفاده از وضوح کمتر برای رنگ نسبت به روشنایی است.

کدک ویدیویی چگونه کار می کند؟ بخش 1: اصول

کاهش وضوح رنگ چقدر جایز است؟! به نظر می رسد قبلاً برخی از نمودارها وجود دارد که نحوه مدیریت وضوح و ادغام را توضیح می دهد (رنگ حاصل = Y + Cb + Cr).

این طرح ها به عنوان شناخته می شوند سیستم های نمونه برداری پایین و به صورت یک نسبت 3 برابری بیان می شوند - a:x:y، که تعداد نمونه سیگنال های روشنایی و تفاوت رنگ را تعیین می کند.

a - استاندارد نمونه برداری افقی (معمولاً برابر با 4)
x - تعداد نمونه های کروما در ردیف اول پیکسل ها (رزولوشن افقی نسبت به a)
y - تعداد تغییرات در نمونه های رنگی بین ردیف اول و دوم پیکسل ها.

استثنا است 4:1:0، ارائه یک نمونه کروما در هر بلوک وضوح روشنایی 4 در 4.

طرح های رایج مورد استفاده در کدک های مدرن:

  • 4:4:4 (بدون کاهش نمونه)
  • 4:2:2
  • 4:1:1
  • 4:2:0
  • 4:1:0
  • 3:1:1

YCbCr 4:2:0 - نمونه همجوشی

در اینجا یک تصویر ادغام شده با استفاده از YCbCr 4:2:0 است. توجه داشته باشید که ما فقط 12 بیت در هر پیکسل خرج می کنیم.

کدک ویدیویی چگونه کار می کند؟ بخش 1: اصول

این همان تصویری است که با انواع اصلی زیرنمونه‌سازی رنگ کدگذاری شده است. ردیف اول YCbCr نهایی است، ردیف پایین وضوح رنگی را نشان می دهد. نتایج بسیار مناسب با توجه به افت جزئی کیفیت.

کدک ویدیویی چگونه کار می کند؟ بخش 1: اصول

به یاد دارید زمانی که برای ذخیره یک فایل ویدئویی یک ساعته با وضوح 278p و 720 فریم بر ثانیه، 30 گیگابایت فضای ذخیره سازی حساب می کردیم؟ اگر از YCbCr 4:2:0 استفاده کنیم، این اندازه به نصف کاهش می یابد - 139 گیگابایت. تا اینجای کار، هنوز با یک نتیجه قابل قبول فاصله دارد.

شما می توانید هیستوگرام YCbCr را با استفاده از FFmpeg دریافت کنید. در این تصویر آبی بر قرمز غالب است که در خود هیستوگرام به وضوح قابل مشاهده است.

کدک ویدیویی چگونه کار می کند؟ بخش 1: اصول

رنگ، روشنایی، طیف رنگ - بررسی ویدیویی

تماشای این ویدیوی فوق العاده را توصیه می کنیم. روشنایی چیست و به طور کلی تمام نقاط نقطه چین هستند ё در مورد روشنایی و رنگ

انواع قاب

بیایید ادامه دهیم. بیایید تلاش کنیم تا زمان اضافی را از بین ببریم. اما ابتدا اجازه دهید برخی از اصطلاحات اساسی را تعریف کنیم. فرض کنید یک فیلم با 30 فریم در ثانیه داریم، در اینجا 4 فریم اول آن آمده است:

کدک ویدیویی چگونه کار می کند؟ بخش 1: اصول کدک ویدیویی چگونه کار می کند؟ بخش 1: اصول کدک ویدیویی چگونه کار می کند؟ بخش 1: اصول کدک ویدیویی چگونه کار می کند؟ بخش 1: اصول

ما می توانیم تکرارهای زیادی را در فریم ها ببینیم: به عنوان مثال، پس زمینه آبی که از فریم به فریم تغییر نمی کند. برای حل این مشکل می توان آنها را به طور انتزاعی به سه نوع قاب طبقه بندی کرد.

I-frame (Iقاب ntro)

I-frame (قاب مرجع، قاب کلید، قاب داخلی) مستقل است. صرف نظر از آنچه می خواهید تجسم کنید، یک قاب I اساساً یک عکس ثابت است. اولین فریم معمولاً یک فریم I است، اما ما مرتباً فریم های I را حتی در بین فریم های نه اول مشاهده می کنیم.

کدک ویدیویی چگونه کار می کند؟ بخش 1: اصول

قاب P (Pقاب بازخوانی شده)

قاب P (قاب پیش بینی) از این واقعیت استفاده می کند که تقریباً همیشه می توان تصویر فعلی را با استفاده از فریم قبلی بازتولید کرد. به عنوان مثال، در فریم دوم تنها تغییر حرکت توپ به جلو است. فقط با استفاده از تفاوت بین این فریم‌ها، می‌توانیم فریم 2 را با کمی اصلاح فریم 1 بدست آوریم. برای ساخت قاب 2 به قاب 1 قبلی مراجعه می کنیم.

کدک ویدیویی چگونه کار می کند؟ بخش 1: اصولکدک ویدیویی چگونه کار می کند؟ بخش 1: اصول

قاب B (Bقاب i-predictive)

در مورد لینک‌هایی که نه تنها به فریم‌های گذشته، بلکه به فریم‌های آینده نیز فشرده‌سازی بهتری ارائه می‌دهند، چطور؟! این اساسا یک قاب B (قاب دو طرفه) است.

کدک ویدیویی چگونه کار می کند؟ بخش 1: اصولکدک ویدیویی چگونه کار می کند؟ بخش 1: اصولکدک ویدیویی چگونه کار می کند؟ بخش 1: اصول

برداشت متوسط

این نوع قاب ها برای ارائه بهترین فشرده سازی ممکن استفاده می شوند. در بخش بعدی چگونگی این اتفاق را بررسی خواهیم کرد. در حال حاضر، اجازه دهید توجه داشته باشیم که "گران ترین" از نظر حافظه مصرفی، فریم I است، فریم P به طور قابل توجهی ارزان تر است، اما سودآورترین گزینه برای ویدیو، فریم B است.

کدک ویدیویی چگونه کار می کند؟ بخش 1: اصول

افزونگی زمانی (پیش‌بینی بین فریم)

بیایید ببینیم چه گزینه هایی برای به حداقل رساندن تکرار در طول زمان داریم. ما می توانیم این نوع افزونگی را با استفاده از روش های پیش بینی متقابل حل کنیم.

ما سعی خواهیم کرد تا حد امکان بیت های کمتری را برای رمزگذاری دنباله ای از فریم های 0 و 1 صرف کنیم.

کدک ویدیویی چگونه کار می کند؟ بخش 1: اصول

ما می توانیم تولید کنیم منها کردنبه سادگی فریم 1 را از فریم 0 کم می کنیم. فریم 1 را می گیریم، فقط از تفاوت بین آن و فریم قبلی استفاده می کنیم، در واقع ما فقط باقیمانده حاصل را رمزگذاری می کنیم.

کدک ویدیویی چگونه کار می کند؟ بخش 1: اصول

اما اگر به شما بگویم که روش بهتری هم وجود دارد که از بیت های کمتری استفاده می کند چه؟ ابتدا، اجازه دهید قاب 0 را به یک شبکه شفاف متشکل از بلوک ها تقسیم کنیم. و سپس سعی می کنیم بلوک های فریم 0 را با فریم 1 مطابقت دهیم. به عبارت دیگر، حرکت بین فریم ها را تخمین می زنیم.

از ویکی پدیا - جبران حرکت بلوک

جبران حرکت بلوک، قاب فعلی را به بلوک‌های غیر همپوشانی تقسیم می‌کند و بردار جبران حرکت منشأ بلوک‌ها را گزارش می‌کند (یک تصور اشتباه رایج این است که قبلی فریم به بلوک های غیر همپوشانی تقسیم می شود و بردارهای جبران حرکت می گویند که آن بلوک ها کجا می روند. اما در واقع، برعکس است - این فریم قبلی نیست که تحلیل می‌شود، بلکه فریم بعدی است؛ مشخص نیست بلوک‌ها کجا حرکت می‌کنند، اما از کجا آمده‌اند). به طور معمول بلوک های منبع در چارچوب منبع همپوشانی دارند. برخی از الگوریتم‌های فشرده‌سازی ویدیو، فریم فعلی را از قسمت‌هایی از حتی یک، بلکه چندین فریم قبلاً ارسال شده جمع‌آوری می‌کنند.

کدک ویدیویی چگونه کار می کند؟ بخش 1: اصول

در طی فرآیند ارزیابی، می بینیم که توپ از (x= 0 y=25) توسط (x= 6 y= 26)، مقادیر x и y بردار حرکت را تعیین کنید مرحله دیگری که می توانیم برای حفظ بیت ها انجام دهیم این است که فقط تفاوت بردارهای حرکت بین آخرین موقعیت بلوک و موقعیت پیش بینی شده را رمزگذاری کنیم، بنابراین بردار حرکت نهایی خواهد بود (x=6-0=6، y=26-25=1). ).

در یک موقعیت واقعی، این توپ به دو دسته تقسیم می شود n بلوک می کند، اما این اصل موضوع را تغییر نمی دهد.

اشیاء در قاب به صورت سه بعدی حرکت می کنند، بنابراین وقتی توپ حرکت می کند، می تواند از نظر بصری کوچکتر شود (یا اگر به سمت بیننده حرکت کند بزرگتر شود). طبیعی است که تطابق کامل بین بلوک ها وجود نداشته باشد. در اینجا یک نمای ترکیبی از برآورد ما و تصویر واقعی است.

کدک ویدیویی چگونه کار می کند؟ بخش 1: اصول

اما می‌بینیم که وقتی از تخمین حرکت استفاده می‌کنیم، نسبت به زمانی که از روش ساده‌تری برای محاسبه دلتا بین فریم‌ها استفاده می‌کنیم، اطلاعات کمتری برای کدگذاری وجود دارد.

کدک ویدیویی چگونه کار می کند؟ بخش 1: اصول

جبران حرکت واقعی چگونه خواهد بود

این تکنیک به طور همزمان برای همه بلوک ها اعمال می شود. اغلب توپ متحرک شرطی ما به طور همزمان به چندین بلوک تقسیم می شود.

کدک ویدیویی چگونه کار می کند؟ بخش 1: اصول

شما می توانید با استفاده از این مفاهیم احساسی داشته باشید ژوپیتر.

برای دیدن بردارهای حرکت، می‌توانید یک ویدیوی پیش‌بینی خارجی با استفاده از آن ایجاد کنید ffmpeg.

کدک ویدیویی چگونه کار می کند؟ بخش 1: اصول

همچنین می توانید استفاده کنید آنالایزر ویدیو پرو اینتل (پرداخت است، اما یک نسخه آزمایشی رایگان وجود دارد که فقط به ده فریم اول محدود می شود).

کدک ویدیویی چگونه کار می کند؟ بخش 1: اصول

افزونگی فضایی (پیش‌بینی داخلی)

اگر هر فریم را در یک ویدیو تجزیه و تحلیل کنیم، مناطق به هم پیوسته زیادی را خواهیم یافت.

کدک ویدیویی چگونه کار می کند؟ بخش 1: اصول

بیایید این مثال را مرور کنیم. این صحنه عمدتاً از رنگ های آبی و سفید تشکیل شده است.

کدک ویدیویی چگونه کار می کند؟ بخش 1: اصول

این یک قاب I است. ما نمی توانیم فریم های قبلی را برای پیش بینی در نظر بگیریم، اما می توانیم آن را فشرده کنیم. بیایید انتخاب بلوک قرمز را رمزگذاری کنیم. اگر به همسایگان آن نگاه کنیم، متوجه می شویم که برخی از گرایش های رنگی در اطراف آن وجود دارد.

کدک ویدیویی چگونه کار می کند؟ بخش 1: اصول

ما فرض می کنیم که رنگ ها به صورت عمودی در کادر پخش می شوند. این بدان معناست که رنگ پیکسل های ناشناخته حاوی مقادیر همسایگان خود خواهد بود.

کدک ویدیویی چگونه کار می کند؟ بخش 1: اصول

چنین پیش بینی ممکن است نادرست باشد. به همین دلیل است که باید این روش (پیش بینی داخلی) را اعمال کنید و سپس مقادیر واقعی را کم کنید. این یک بلوک باقیمانده به ما می دهد که منجر به ماتریس بسیار فشرده تر در مقایسه با اصلی می شود.

کدک ویدیویی چگونه کار می کند؟ بخش 1: اصول

اگر می‌خواهید با پیش‌بینی‌های داخلی تمرین کنید، می‌توانید با استفاده از ffmpeg ویدیویی از ماکروبلاک‌ها و پیش‌بینی‌های آن‌ها ایجاد کنید. برای درک معنای هر رنگ بلوک، باید مستندات ffmpeg را بخوانید.

کدک ویدیویی چگونه کار می کند؟ بخش 1: اصول

یا می توانید از Intel Video Pro Analyzer استفاده کنید (همانطور که در بالا ذکر کردم، نسخه آزمایشی رایگان محدود به 10 فریم اول است، اما در ابتدا برای شما کافی خواهد بود).

کدک ویدیویی چگونه کار می کند؟ بخش 1: اصول

قسمت دوم: نحوه عملکرد کدک ویدیویی

منبع: www.habr.com

اضافه کردن نظر