ÜKS ASTE AHELAST — MIS SAABUB, MIS VÄLJUB JA MIS EDASPIDI KATKEB
Kus see kodeerimiskonveieris asub
Videokodeerija ei ole üks algoritm, vaid kaheksa astet kindlas järjekorras — ja järjekord ei ole suvaline: iga aste on olemas seetõttu, et eelmine tegi tema töö võimalikuks. See tööriist modelleerib neist üht. Allolev ahel viitab ülejäänud seitsmele.
Liikumishinnangu simulaator — leiab, kuhu iga blokk liikus, ja kodeerib bloki asemel erinevuse
- Mis saabub
- P- või B-kaader koos oma viitekaadritega.
- Mis väljub
- Liikumisvektor iga bloki kohta ja jääk — täpselt see, mille ennustus valesti sai.
- Mida järgmine aste eeldab
- Kvantimine saab jäägi, mitte pildi. Jäägid on peaaegu kõikjal nulli lähedal ja just seetõttu on nende kvantimine odav.
- Mis siin valesti läheb
- Halb vaste ei anna vale pilti, vaid kalli pildi. Jääk kannab rohkem energiat ja sama kvantija seadistus väljastab selle jaoks rohkem bitte. See aste muudab väljundi suurust, mitte ühtki selle seadistust.
Ülesanne täielikult lahendatud
-
225 positsioonist ploki kohta tuletatud otsinguaken 5 sammu
Täielik liikumisotsing kontrollib 225 positsiooni ploki kohta, kokku 14 400. Arvuta selle põhjal otsinguaken ja see, mida kiire otsing juurde annab.
-
225 on täisruut ja see ongi vihje: otsing on ruudukujuline aken mõõtmetega 15 korda 15 kandidaatnihet, mis tähendab −7 kuni +7 pikslit igas suunas.
-
Koguarvu jagamisel plokipõhise arvuga saadakse plokkide arv, milleks kaader jaotati.
-
Kulu kasvab otsinguraadiuse ruuduga, seega akna laiendamine muutub kiiresti kulukaks: raadius 7 maksab 225 positsiooni, raadius 15 maksab 961, raadius 31 maksab 3969.
-
See ruutsõltuvus ongi põhjus, miks kiired otsingud olemas on. Kolmesammuline otsing võtab proovid üheksast punktist, täpsustab ja kordab — 27 positsiooni 225 asemel.
-
Kaheksa korda odavam, kuid mitte samaväärne: see laskub kohaliku miinimumi poole ning võib tegelikust parimast kattest mööda minna, kui veapind sisaldab rohkem kui ühte süvendit.
Vastus
Tööriist näitab, et läbi vaadati 14400 punkti, 225,0 punkti ploki kohta. Selle valiku ees seisab kogu praktiline videokodeerimine: täielik otsing annab optimaalse tulemuse, kuid selle töömaht kasvab võrdeliselt otsinguraadiuse ruuduga. Seepärast kasutavad kõik kodeerijad heuristikat ja lepivad võimalusega, et vahel valitakse kehvem vektor. Eksimuse hinda näitab osaliselt rida Jääkenergia (MSE): halb vektor jätab suurema jäägi, mille kodeerimiseks kulub rohkem andmeid. Kiire liikumisotsing ei ole pelgalt aja säästmiseks tehtud lähendus. See põhineb eeldusel, et ebatäpsete vektorite tõttu lisandub vähem bitte, kui vabanenud ressursiga mujal kokku hoida saab.
-
Allikad (2)
- Block matching and motion vectors as the standard uses them: T. Wiegand, G. J. Sullivan, G. Bjontegaard and A. Luthra, "Overview of the H.264/AVC video coding standard." IEEE Transactions on Circuits and Systems for Video Technology 13(7), 560–576, 2003.
- The diamond search this tool implements alongside full search: S. Zhu and K.-K. Ma, "A new diamond search algorithm for fast block-matching motion estimation." IEEE Transactions on Image Processing 9(2), 287–290, 2000.