Video kodek qanday ishlaydi? 1-qism: Asoslar

Ikkinchi qism: Video kodek qanday ishlaydi

Har qanday rastr tasvir shaklida ifodalanishi mumkin ikki o'lchovli matritsa. Ranglar haqida gap ketganda, g'oyani tasvirga qarab ishlab chiqish mumkin uch o'lchovli matritsa, unda qo'shimcha o'lchamlar ranglarning har biri uchun ma'lumotlarni saqlash uchun ishlatiladi.

Agar biz oxirgi rangni deb ataladigan kombinatsiya sifatida ko'rib chiqsak. asosiy ranglar (qizil, yashil va ko'k), uch o'lchovli matritsamizda biz uchta tekislikni aniqlaymiz: birinchisi qizil, ikkinchisi yashil va oxirgisi ko'k uchun.
Video kodek qanday ishlaydi? 1-qism: Asoslar
Ushbu matritsadagi har bir nuqtani piksel (tasvir elementi) deb ataymiz. Har bir piksel har bir rangning intensivligi (odatda raqamli qiymat sifatida) haqida ma'lumotni o'z ichiga oladi. Masalan, qizil piksel 0 yashil, 0 ko'k va maksimal qizil rangni o'z ichiga olganligini anglatadi. Pushti piksel uchta rang kombinatsiyasi yordamida hosil bo'lishi mumkin. 0 dan 255 gacha bo'lgan raqamli diapazondan foydalanib, pushti piksel sifatida aniqlanadi Qizil = 255, Yashil = 192 и Moviy = 203.

Video kodek qanday ishlaydi? 1-qism: Asoslar

Ushbu maqola EDISON ko'magida chop etilgan.

Biz rivojlanyapmiz video kuzatuv, video oqim uchun ilovalar, shuningdek, biz shug'ullanamiz jarrohlik xonasida video yozish.

Rangli tasvirni kodlashning muqobil usullari

Tasvirni tashkil etuvchi ranglarni ifodalash uchun ko'plab boshqa modellar mavjud. Misol uchun, RGB modelidan foydalanganda talab qilinadigan uchta bayt o'rniga har bir pikselni ifodalash uchun faqat bitta baytni talab qiladigan indekslangan palitradan foydalanishingiz mumkin. Bunday modelda har bir rangni ifodalash uchun 2D matritsa o‘rniga 3D matritsadan foydalanish mumkin. Bu xotirani tejaydi, lekin kichikroq rang gamutini beradi.

Video kodek qanday ishlaydi? 1-qism: Asoslar

RGB

Misol uchun, quyidagi rasmga qarang. Birinchi yuz butunlay bo'yalgan. Qolganlari qizil, yashil va ko'k tekisliklardir (tegishli ranglarning intensivligi kulrang rangda ko'rsatilgan).

Video kodek qanday ishlaydi? 1-qism: Asoslar

Biz asl nusxadagi qizil rang soyalari ikkinchi yuzning eng yorqin qismlari kuzatiladigan joylarda bo'lishini ko'ramiz. Ko'kning hissasini asosan Marioning ko'zlari (oxirgi yuzi) va kiyimining elementlarida ko'rish mumkin. E'tibor bering, uchta rang tekisligi qayerda eng kam hissa qo'shadi (tasvirlarning eng qorong'i qismlari) - Marioning mo'ylovi.

Har bir rangning intensivligini saqlash uchun ma'lum miqdordagi bitlar talab qilinadi - bu miqdor deyiladi bit chuqurligi. Aytaylik, har bir rang tekisligiga 8 bit sarflandi (0 dan 255 gacha bo'lgan qiymat asosida). Keyin biz 24 bit rang chuqurligiga egamiz (8 bit * 3 R/G/B tekisliklari).

Tasvirning yana bir xususiyati avtorizatsiya qilish, bu bitta o'lchamdagi piksellar soni. Ko'pincha sifatida belgilanadi kengligi × balandligi, quyidagi 4 dan 4 gacha bo'lgan misol rasmidagi kabi.
Video kodek qanday ishlaydi? 1-qism: Asoslar

Tasvirlar/videolar bilan ishlashda biz hal qiladigan yana bir xususiyat tomonlar nisbati, tasvir yoki pikselning kengligi va balandligi o'rtasidagi normal proportsional munosabatni tavsiflovchi.

Ular ma'lum bir film yoki rasmning o'lchami 16 dan 9 gacha ekanligini aytishganda, ular odatda nazarda tutadi aspekt nisbati (DAR - dan Displey nisbati). Biroq, ba'zida alohida piksellarning turli shakllari bo'lishi mumkin - bu holda biz gaplashamiz piksel nisbati (PAR - dan Piksel nisbati).

Video kodek qanday ishlaydi? 1-qism: Asoslar

Video kodek qanday ishlaydi? 1-qism: Asoslar

Styuardessaga eslatma: DVD mos keladi DAR 4 dan 3 gacha

Haqiqiy DVD o'lchamlari 704x480 bo'lsa-da, u hali ham 4:3 tomonlar nisbatini saqlab qoladi, chunki PAR 10:11 (704x10 / 480x11).

Va nihoyat, biz aniqlay olamiz видео ketma-ketligi kabi n davr uchun ramkalar vaqt, bu qo'shimcha o'lchov deb hisoblanishi mumkin. A n u holda kadr tezligi yoki soniyadagi kadrlar soni (FPS - dan Bir soniya uchun kadrlar).

Video kodek qanday ishlaydi? 1-qism: Asoslar

Videoni ko'rsatish uchun sekundiga kerak bo'lgan bitlar soni - bu uzatish tezligi - bit tezligi.

bit tezligi = kenglik * balandlik * bit chuqurligi * soniyada kadrlar

Masalan, 30 kadr, 24 bit/s, 480x240 video uchun 82,944,000 bit/s yoki 82,944 Mbit/s (30x480x240x24) talab qilinadi, lekin bu siqishni usuli ishlatilmasa.

Agar uzatish tezligi bo'lsa deyarli doimiy, keyin chaqiriladi doimiy uzatish tezligi (CBR - dan doimiy bit tezligi). Lekin u ham farq qilishi mumkin, bu holda u deyiladi o'zgaruvchan uzatish tezligi (VBR - dan o'zgaruvchan bit tezligi).

Ushbu grafik cheklangan VBR ni ko'rsatadi, bu erda butunlay qorong'i ramka holatida juda ko'p bitlar isrof qilinmaydi.

Video kodek qanday ishlaydi? 1-qism: Asoslar

Muhandislar dastlab qo'shimcha tarmoqli kengligidan foydalanmasdan video displeyning qabul qilingan kadrlar tezligini ikki baravar oshirish usulini ishlab chiqdilar. Bu usul sifatida tanilgan o'zaro bog'liq video; Asosan, u ekranning yarmini birinchi "ramka", ikkinchi yarmini keyingi "ramka" ga yuboradi.

Hozirda sahnalar asosan foydalanish orqali ishlangan progressiv skanerlash texnologiyalari. Bu harakatlanuvchi tasvirlarni ko'rsatish, saqlash yoki uzatish usuli bo'lib, unda har bir kadrning barcha chiziqlari ketma-ket chiziladi.

Video kodek qanday ishlaydi? 1-qism: Asoslar

Xo'sh! Endi biz tasvirning raqamli ko'rinishini, uning ranglarini qanday tartibga solishini, agar bit tezligi doimiy (CBR) yoki o'zgaruvchan (VBR) bo'lsa, videoni ko'rsatish uchun soniyada qancha bit sarflaganimizdan xabardormiz. Biz ma'lum kvadrat tezligidan foydalangan holda berilgan ruxsat haqida bilamiz, biz interlaced video, PAR va boshqalar kabi ko'plab boshqa atamalar bilan tanishmiz.

Ortiqchalikni olib tashlash

Ma'lumki, siqilishsiz videoni odatdagidek ishlatish mumkin emas. 720p piksellar sonida va sekundiga 30 kadrli bir soatlik video 278 GB joy egallaydi. Biz ushbu qiymatga 1280 x 720 x 24 x 30 x 3600 (kenglik, balandlik, piksel boshiga bit, FPS va soniyalarda vaqt) ko'paytirish orqali erishamiz.

foydalanish yo'qotishsiz siqish algoritmlari, DEFLATE (PKZIP, Gzip va PNG da qo'llaniladi) kabi kerakli tarmoqli kengligini yetarli darajada kamaytirmaydi. Videoni siqishning boshqa usullarini izlashimiz kerak.

Buning uchun siz bizning ko'rishimiz xususiyatlaridan foydalanishingiz mumkin. Biz rangdan ko'ra yorqinlikni yaxshiroq ajratamiz. Video - bu vaqt o'tishi bilan takrorlanadigan ketma-ket tasvirlar seriyasidir. Xuddi shu sahnaning qo'shni kadrlari o'rtasida kichik farqlar mavjud. Bundan tashqari, har bir ramka bir xil (yoki o'xshash) rangdan foydalanadigan ko'plab maydonlarni o'z ichiga oladi.

Rang, yorqinlik va ko'zlarimiz

Bizning ko'zlarimiz rangdan ko'ra yorqinlikka sezgir. Buni ushbu rasmga qarab o'zingiz ko'rishingiz mumkin.

Video kodek qanday ishlaydi? 1-qism: Asoslar

Agar siz rasmning chap yarmida kvadratlarning ranglarini ko'rmasangiz A и B aslida bir xil, keyin bu normaldir. Bizning miyamiz bizni rangga emas, balki yorug'lik va soyaga ko'proq e'tibor berishga majbur qiladi. Belgilangan kvadratchalar orasidagi o'ng tomonda bir xil rangdagi jumper bor - shuning uchun biz (ya'ni miyamiz) aslida ular bir xil rangda ekanligini osongina aniqlaymiz.

Keling, ko'zlarimiz qanday ishlashini (soddalashtirilgan tarzda) ko'rib chiqaylik. Ko'z juda ko'p qismlardan iborat murakkab organdir. Biroq, bizni eng ko'p konus va novdalar qiziqtiradi. Ko'zda taxminan 120 million tayoq va 6 million konus mavjud.

Keling, rang va yorqinlikni idrok etishni ko'zning ayrim qismlarining alohida funktsiyalari sifatida ko'rib chiqaylik (aslida hamma narsa biroz murakkabroq, lekin biz uni soddalashtiramiz). Rod hujayralari asosan yorqinlik uchun javobgardir, konus hujayralari esa rang uchun javobgardir. Konuslar tarkibidagi pigmentga qarab uch turga bo'linadi: S-konuslar (ko'k), M-konuslar (yashil) va L-konuslar (qizil).

Bizda konusdan (rangdan) ko'proq novdalar (yorqinlik) borligi sababli, biz ranglardan ko'ra qorong'u va yorug'lik o'rtasidagi o'tishlarni ajrata olishimiz mumkin degan xulosaga kelishimiz mumkin.

Video kodek qanday ishlaydi? 1-qism: Asoslar

Kontrast sezgirligi xususiyatlari

Eksperimental psixologiya va boshqa ko'plab sohalardagi tadqiqotchilar inson ko'rishning ko'plab nazariyalarini ishlab chiqdilar. Va ulardan biri deyiladi kontrast sezuvchanlik funktsiyalari. Ular fazoviy va vaqtinchalik yoritish bilan bog'liq. Muxtasar qilib aytganda, kuzatuvchi ularni sezishidan oldin qancha o'zgarishlar talab qilinishi haqida. "Funksiya" so'zining ko'pligiga e'tibor bering. Buning sababi shundaki, biz faqat qora va oq tasvirlar uchun emas, balki rangli tasvirlar uchun ham kontrast sezgirligi funktsiyalarini o'lchashimiz mumkin. Ushbu tajribalar natijalari shuni ko'rsatadiki, aksariyat hollarda bizning ko'zlarimiz rangdan ko'ra yorqinlikka sezgir.

Tasvir yorqinligiga nisbatan sezgirroq ekanligimizni bilganimiz sababli, biz bu faktdan foydalanishga harakat qilishimiz mumkin.

Rangli model

Biz RGB sxemasidan foydalangan holda rangli tasvirlar bilan qanday ishlashni biroz tushundik. Boshqa modellar ham bor. Yorqinlikni xromadan ajratadigan model mavjud va u shunday nomlanadi YCbCr. Aytgancha, shunga o'xshash bo'linishni amalga oshiradigan boshqa modellar ham mavjud, ammo biz faqat buni ko'rib chiqamiz.

Ushbu rang modelida Y yorqinlikning ifodasidir va ikkita rang kanalidan ham foydalanadi: Cb (boy ko'k) va Cr (boy qizil). YCbCr RGB dan olinishi mumkin va teskari konvertatsiya ham mumkin. Ushbu model yordamida biz quyida ko'rib turganimizdek to'liq rangli tasvirlarni yaratishimiz mumkin:

Video kodek qanday ishlaydi? 1-qism: Asoslar

YCbCr va RGB o'rtasida aylantirish

Kimdir e'tiroz bildiradi: yashil rang ishlatilmasa, qanday qilib barcha ranglarni olish mumkin?

Bu savolga javob berish uchun RGB ni YCbCr ga aylantiramiz. Keling, standartda qabul qilingan koeffitsientlardan foydalanamiz BT.601, bu birlik tomonidan tavsiya etilgan ITU-R. Ushbu bo'linma raqamli video uchun standartlarni belgilaydi. Masalan: 4K nima? Kadr tezligi, o'lchamlari, rang modeli qanday bo'lishi kerak?

Avval yorqinlikni hisoblaylik. Keling, ITU tomonidan taklif qilingan konstantalardan foydalanamiz va RGB qiymatlarini almashtiramiz.

Y = 0.299R + 0.587G + 0.114B

Yorqinlikka ega bo'lganimizdan so'ng, biz ko'k va qizil ranglarni ajratamiz:

Cb = 0.564(B - Y)

Cr = 0.713(R - Y)

Shuningdek, biz YCbCr yordamida orqaga aylantirishimiz va hatto yashil rangga ega bo'lishimiz mumkin:

R = Y + 1.402Cr

B = Y + 1.772Cb

G = Y - 0.344Cb - 0.714Cr

Odatda displeylar (monitorlar, televizorlar, ekranlar va boshqalar) faqat RGB modelidan foydalanadi. Ammo bu model turli yo'llar bilan tashkil etilishi mumkin:

Video kodek qanday ishlaydi? 1-qism: Asoslar

Rangli namuna olish

Yorqinlik va xrominatsiya kombinatsiyasi sifatida tasvirlangan tasvir bilan biz ma'lumotni tanlab olib tashlash orqali insonning vizual tizimining xrominatsiyaga qaraganda yorqinlikka nisbatan ko'proq sezgirligidan foydalanishimiz mumkin. Chroma subsampling - yorqinlikka qaraganda xroma uchun kamroq piksellar sonidan foydalangan holda tasvirlarni kodlash usuli.

Video kodek qanday ishlaydi? 1-qism: Asoslar

Rang o'lchamlarini qancha kamaytirish joiz?! Ma'lum bo'lishicha, piksellar sonini va birlashtirishni qanday boshqarishni tasvirlaydigan ba'zi diagrammalar allaqachon mavjud (Natijadagi rang = Y + Cb + Cr).

Ushbu sxemalar sifatida tanilgan namuna olish tizimlari va 3 barobar nisbat sifatida ifodalanadi - a:x:y, bu yorqinlik va rang farqi signallarining namunalari sonini aniqlaydi.

a - gorizontal namuna olish standarti (odatda 4 ga teng)
x - piksellarning birinchi qatoridagi xrom namunalari soni (gorizontal piksellar soniga nisbatan a)
y - piksellarning birinchi va ikkinchi qatorlari orasidagi xrom namunalaridagi o'zgarishlar soni.

Istisno shundaki 4:1:0, har bir 4 ga 4 yorug'lik ruxsati blokida bitta xrom namunasini taqdim etish.

Zamonaviy kodeklarda qo'llaniladigan umumiy sxemalar:

  • 4:4:4 (pastki namunalar yo'q)
  • 4:2:2
  • 4:1:1
  • 4:2:0
  • 4:1:0
  • 3:1:1

YCbCr 4:2:0 - termoyadroviy misol

Mana YCbCr 4:2:0 yordamida birlashtirilgan rasm. E'tibor bering, biz har bir piksel uchun atigi 12 bit sarflaymiz.

Video kodek qanday ishlaydi? 1-qism: Asoslar

Rang quyi namunalarining asosiy turlari bilan kodlangan bir xil tasvir shunday ko'rinadi. Birinchi qator yakuniy YCbCr, pastki qator esa xroma ruxsatini ko'rsatadi. Sifatida ozgina yo'qotishni hisobga olgan holda juda yaxshi natijalar.

Video kodek qanday ishlaydi? 1-qism: Asoslar

Esingizdami, biz bir soatlik video faylni 278p piksellar sonida va soniyasiga 720 kadrda saqlash uchun 30 GB saqlash joyini hisoblaganmiz? Agar biz YCbCr 4:2:0 dan foydalansak, unda bu hajm ikki baravar kamayadi - 139 GB. Hozircha bu maqbul natijadan uzoqdir.

YCbCr gistogrammasini FFmpeg yordamida o'zingiz olishingiz mumkin. Ushbu rasmda ko'k qizil ustidan ustunlik qiladi, bu gistogrammaning o'zida aniq ko'rinadi.

Video kodek qanday ishlaydi? 1-qism: Asoslar

Rang, yorqinlik, rangli gamut - video ko'rib chiqish

Ushbu ajoyib videoni tomosha qilishni tavsiya qilamiz. Bu yorqinlik nima ekanligini tushuntiradi va umuman olganda, barcha nuqtalar nuqta bilan belgilanadi ё yorqinlik va rang haqida.

Ramka turlari

Keling, davom etaylik. Keling, ortiqcha vaqtni bartaraf etishga harakat qilaylik. Lekin birinchi navbatda, ba'zi bir asosiy terminologiyani aniqlaymiz. Aytaylik, bizda sekundiga 30 kadrli film bor, mana uning dastlabki 4 ta kadri:

Video kodek qanday ishlaydi? 1-qism: Asoslar Video kodek qanday ishlaydi? 1-qism: Asoslar Video kodek qanday ishlaydi? 1-qism: Asoslar Video kodek qanday ishlaydi? 1-qism: Asoslar

Kadrlarda juda ko'p takrorlashni ko'rishimiz mumkin: masalan, ramkadan freymga o'zgarmaydigan ko'k fon. Ushbu muammoni hal qilish uchun biz ularni mavhum ravishda uchta turdagi ramkalarga ajratishimiz mumkin.

I-ramka (Intro ramka)

I-ramka (mos ramka, kalit ramka, ichki ramka) o'z-o'zidan mavjud. Siz nimani tasavvur qilmoqchi bo'lishingizdan qat'i nazar, I-ramka asosan statik fotosuratdir. Birinchi kadr odatda I-ramkadir, lekin biz I-ramkalarni birinchi bo'lmagan kadrlar orasida ham muntazam ravishda kuzatamiz.

Video kodek qanday ishlaydi? 1-qism: Asoslar

P-ramka (Pqayta tiklangan ramka)

P-ramka (prognozli ramka) deyarli har doim joriy tasvirni oldingi ramka yordamida qayta ishlab chiqarish mumkinligidan foydalanadi. Misol uchun, ikkinchi kadrda yagona o'zgarish - to'pning oldinga siljishi. Biz 2-ramkani 1-ramkani biroz o'zgartirish orqali olishimiz mumkin, faqat shu ramkalar orasidagi farqdan foydalanib. 2-ramkani qurish uchun biz oldingi 1-ramkaga murojaat qilamiz.

Video kodek qanday ishlaydi? 1-qism: AsoslarVideo kodek qanday ishlaydi? 1-qism: Asoslar

B-ramka (Bi-prognozli ramka)

Bundan ham yaxshiroq siqishni ta'minlash uchun nafaqat o'tmishdagi, balki kelajakdagi ramkalar bilan bog'lanish haqida nima deyish mumkin?! Bu asosan B-ramka (ikki tomonlama ramka).

Video kodek qanday ishlaydi? 1-qism: AsoslarVideo kodek qanday ishlaydi? 1-qism: AsoslarVideo kodek qanday ishlaydi? 1-qism: Asoslar

Oraliq olib tashlash

Ushbu ramka turlari eng yaxshi siqishni ta'minlash uchun ishlatiladi. Bu qanday sodir bo'lishini keyingi bo'limda ko'rib chiqamiz. Hozircha, iste'mol qilinadigan xotira bo'yicha eng "qimmat" bu I-freym, P-ramka sezilarli darajada arzonroq, ammo video uchun eng foydali variant B-ramka ekanligini ta'kidlaymiz.

Video kodek qanday ishlaydi? 1-qism: Asoslar

Vaqtinchalik ortiqcha (freymlararo bashorat)

Keling, vaqt o'tishi bilan takrorlashni kamaytirish uchun qanday variantlarimiz borligini ko'rib chiqaylik. Ushbu turdagi ortiqchalikni o'zaro bashorat qilish usullari yordamida hal qilishimiz mumkin.

Biz 0 va 1 freymlar ketma-ketligini kodlash uchun imkon qadar kamroq bit sarflashga harakat qilamiz.

Video kodek qanday ishlaydi? 1-qism: Asoslar

Biz ishlab chiqarishimiz mumkin ayirish, biz oddiygina 1-freymdan 0-freymni ayiramiz. Biz 1-ramkani olamiz, faqat u bilan oldingi ramka orasidagi farqdan foydalanamiz, aslida biz faqat natijada qolgan qoldiqni kodlaymiz.

Video kodek qanday ishlaydi? 1-qism: Asoslar

Ammo, agar sizga kamroq bit ishlatadigan yanada yaxshi usul borligini aytsam-chi? Birinchidan, keling, 0 ramkasini bloklardan tashkil topgan aniq to'rga ajratamiz. Va keyin biz 0-ramkadagi bloklarni 1-ramka bilan moslashtirishga harakat qilamiz. Boshqacha qilib aytganda, biz ramkalar orasidagi harakatni taxmin qilamiz.

Vikipediyadan - blokli harakat kompensatsiyasi

Blokning harakat kompensatsiyasi joriy ramkani bir-biriga mos kelmaydigan bloklarga ajratadi va harakat kompensatsiyasi vektori bloklarning kelib chiqishi haqida xabar beradi (odatdagi noto'g'ri tushuncha oldingi ramka bir-birining ustiga chiqmaydigan bloklarga bo'linadi va harakat kompensatsiyasi vektorlari bu bloklar qayerga borishini aytadi. Ammo, aslida, buning aksi - bu avvalgi ramka emas, balki keyingisi tahlil qilinadi; bloklar qayerda harakatlanayotgani aniq emas, lekin ular qaerdan kelgan). Odatda manba bloklari manba ramkasida bir-biriga yopishadi. Videoni siqishning ba'zi algoritmlari joriy kadrni hatto bir emas, balki bir nechta ilgari uzatilgan kadrlarning qismlaridan yig'adi.

Video kodek qanday ishlaydi? 1-qism: Asoslar

Baholash jarayonida biz to'pning (dan) o'tganini ko'ramiz.x= 0, y=25) dan (x= 6, y=26), qiymatlar x и y harakat vektorini aniqlang. Bitlarni saqlab qolish uchun qila oladigan yana bir qadam bu blokning oxirgi pozitsiyasi va bashorat qilingani orasidagi harakat vektorlarining farqini kodlashdir, shuning uchun oxirgi harakat vektori (x=6-0=6, y=26-25=1) boʻladi. ).

Haqiqiy vaziyatda bu to'p bo'linadi n bloklar, lekin bu masalaning mohiyatini o'zgartirmaydi.

Kadrdagi ob'ektlar uch o'lchamda harakat qiladi, shuning uchun to'p harakat qilganda, u vizual ravishda kichikroq bo'lishi mumkin (yoki tomoshabin tomon harakatlansa, kattaroq). Bloklar o'rtasida mukammal o'yin bo'lmasligi odatiy holdir. Mana bizning taxminimiz va haqiqiy rasmning umumiy ko'rinishi.

Video kodek qanday ishlaydi? 1-qism: Asoslar

Ammo biz harakatni baholashdan foydalanganda, ramkalar orasidagi deltani hisoblashning oddiy usulidan foydalangandan ko'ra, kodlash uchun sezilarli darajada kamroq ma'lumotlar borligini ko'ramiz.

Video kodek qanday ishlaydi? 1-qism: Asoslar

Haqiqiy harakat kompensatsiyasi qanday ko'rinishga ega bo'ladi

Ushbu texnika bir vaqtning o'zida barcha bloklarga qo'llaniladi. Ko'pincha bizning shartli harakatlanuvchi to'pimiz bir vaqtning o'zida bir nechta bloklarga bo'linadi.

Video kodek qanday ishlaydi? 1-qism: Asoslar

Siz o'zingiz yordamida ushbu tushunchalarni his qilishingiz mumkin Yupyter.

Harakat vektorlarini ko'rish uchun siz tashqi prognozli video yaratishingiz mumkin ffmpeg.

Video kodek qanday ishlaydi? 1-qism: Asoslar

Siz ham foydalanishingiz mumkin Intel Video Pro Analyzer (u pullik, lekin faqat birinchi o'n kadr bilan cheklangan bepul sinov muddati mavjud).

Video kodek qanday ishlaydi? 1-qism: Asoslar

Fazoviy ortiqcha (ichki prognoz)

Agar biz videodagi har bir kadrni tahlil qilsak, biz bir-biriga bog'langan ko'plab sohalarni topamiz.

Video kodek qanday ishlaydi? 1-qism: Asoslar

Keling, ushbu misolni ko'rib chiqaylik. Bu sahna asosan ko'k va oq ranglardan iborat.

Video kodek qanday ishlaydi? 1-qism: Asoslar

Bu I-ramka. Biz oldingi kadrlarni bashorat qilish uchun ololmaymiz, lekin uni siqib chiqarishimiz mumkin. Keling, qizil blokni tanlashni kodlaymiz. Agar biz uning qo'shnilariga qarasak, uning atrofida qandaydir rang tendentsiyalari mavjudligini sezamiz.

Video kodek qanday ishlaydi? 1-qism: Asoslar

Biz ranglarning ramkada vertikal ravishda tarqalishini taxmin qilamiz. Bu noma'lum piksellarning rangi qo'shnilarining qiymatlarini o'z ichiga oladi.

Video kodek qanday ishlaydi? 1-qism: Asoslar

Bunday prognoz noto'g'ri bo'lib chiqishi mumkin. Aynan shuning uchun siz ushbu usulni qo'llashingiz kerak (ichki prognoz) va keyin haqiqiy qiymatlarni olib tashlashingiz kerak. Bu bizga qoldiq blokni beradi, bu esa asl nusxaga nisbatan ancha siqilgan matritsaga olib keladi.

Video kodek qanday ishlaydi? 1-qism: Asoslar

Agar siz ichki bashoratlar bilan mashq qilmoqchi bo'lsangiz, ffmpeg yordamida makrobloklar va ularning bashoratlari haqida video yaratishingiz mumkin. Har bir blok rangining ma'nosini tushunish uchun siz ffmpeg hujjatlarini o'qib chiqishingiz kerak bo'ladi.

Video kodek qanday ishlaydi? 1-qism: Asoslar

Yoki siz Intel Video Pro Analyzer-dan foydalanishingiz mumkin (yuqorida aytib o'tganimdek, bepul sinov versiyasi dastlabki 10 kadr bilan cheklangan, lekin dastlab bu siz uchun etarli bo'ladi).

Video kodek qanday ishlaydi? 1-qism: Asoslar

Ikkinchi qism: Video kodek qanday ishlaydi

Manba: www.habr.com

a Izoh qo'shish