RS66891B1 - Postupak za dekodiranje slike i uređaj baziran na afinoj predikciji pokreta pomoću konstruisanog kandidata afine mvp u sistemu za kodiranje slika - Google Patents
Postupak za dekodiranje slike i uređaj baziran na afinoj predikciji pokreta pomoću konstruisanog kandidata afine mvp u sistemu za kodiranje slikaInfo
- Publication number
- RS66891B1 RS66891B1 RS20250551A RSP20250551A RS66891B1 RS 66891 B1 RS66891 B1 RS 66891B1 RS 20250551 A RS20250551 A RS 20250551A RS P20250551 A RSP20250551 A RS P20250551A RS 66891 B1 RS66891 B1 RS 66891B1
- Authority
- RS
- Serbia
- Prior art keywords
- block
- motion vector
- current block
- candidate
- affine
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/53—Multi-resolution motion estimation; Hierarchical motion estimation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/537—Motion estimation other than block-based
- H04N19/54—Motion estimation other than block-based using feature points or meshes
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
Opis
POZADINA OVOG OTKRIVANJA
Oblast ovog otkrivanja
[0001] Ovo otkrivanje se odnosi na tehniku kodiranja slika, a određenije, na postupak za dekodiranje slike i uređaj baziran na afinoj predikciji pokreta u sistemu za kodiranje slika.
Stanje tehnike
[0002] Potražnja za slikama visoke rezolucije i visokog kvaliteta, kao što su slike visoke definicije (HD) i ultra visoke definicije (UHD), raste u različitim oblastima. Kako slike imaju visoku rezoluciju i kvalitet, količina informacija, odnosno broj bitova koji se prenose, povećava se u poređenju sa slikama starijeg formata. Zbog toga, kada se slike prenose putem medijuma kao što su konvencionalne žične ili bežične širokopojasne veze, ili kada se slike čuvaju pomoću postojećih medijuma za čuvanje, troškovi prenosa i čuvanja rastu.
[0003] Shodno tome, postoji potreba za visoko efikasnom tehnikom kompresije slika koja omogućava efikasno prenošenje, čuvanje i reprodukciju informacija sa slikama visoke rezolucije i visokog kvaliteta.
[0004] Dokument Zajedničkog tima za istraživanje videa JVET-K0337 od Han et al., pod naslovom „CE4.1.3: Affine motion compensation prediction“, predstavljen na 11. sastanku u Ljubljani u Sloveniji, od 10. do 18. jula 2018. godine, opisuje tehnologije predikcije kompenzacije afinih pokreta i prikazuje određene rezultate ispitivanja.
[0005] Dokument Zajedničkog tima stručnjaka za video JVET-J1024r2 autora Yang et al., pod naslovom „Description of CE4: Inter prediction and motion vector coding“, predstavljen na 10. sastanku u San Dijegu, Sjedinjene Američke Države, od 10. do 20. aprila 2018. godine, istražuje različite tehnike inter predikcije i kodiranja vektora pokreta.
KRATAK SADRŽAJ
[0006] Tehnički problem kojim se ovo otkrivanje bavi leži u obezbeđivanju uređaja koji povećava efikasnost kodiranja slike.
[0007] Još jedan tehnički problem koji se rešava ovim otkrivanjem leži u obezbeđivanju postupka za dekodiranje slike i uređaja koji konstruišu listu kandidata afine mvp trenutnog bloka tako što izvedu konstruisanog kandidata afine mvp na osnovu susednog bloka, i to samo kada su svi kandidati vektori pokreta za CP-ove dostupni, i zatim izvrše predikciju za trenutni blok na osnovu konstruisanog kandidata sa liste afine mvp.
[0008] Ovaj pronalazak definišu nezavisni patentni zahtevi. Karakteristike primera načina ostvarivanja su definisane u zavisnim patentnim zahtevima.
[0009] Prema ovom otkrivanju, moguće je da se poveća celokupna efikasnost kompresije slika/video zapisa.
[0010] Prema ovom otkrivanju, moguće je povećati efikasnost kodiranja slike na osnovu afine predikcije pokreta.
[0011] Prema ovom otkrivanju, prilikom izvođenja liste kandidata afine mvp, konstruisani kandidat afine mvp može biti dodat samo kada su svi kandidati vektori pokreta za CP-ove konstruisanog kandidata afine mvp dostupni, čime je moguće smanjiti složenost procesa izvođenja konstruisanog kandidata afine mvp i procesa konstruisanja liste kandidata afine mvp, kao i poboljšati efikasnost kodiranja.
KRATAK OPIS CRTEŽA
[0012]
FIG.1 je šematski dijagram koji ilustruje konfiguraciju uređaja za kodiranje video zapisa na koji ovo otkrivanje može da se primenjuje.
FIG.2 je šematski dijagram koji ilustruje konfiguraciju video uređaja za dekodiranje na koje ovo otkrivanje može da se primenjuje.
FIG.3 ilustruje pokret izražen kroz model afinog pokreta.
FIG.4 ilustruje model afinog pokreta u kojem se koriste vektori pokreta za 3 kontrolne tačke. FIG.5 ilustruje model afinog pokreta u kojem se koriste vektori pokreta za 2 kontrolne tačke. FIG.6 ilustruje postupak izvođenja vektora pokreta po osnovi podbloka na osnovu modela afinog pokreta.
FIG.7 je dijagram toka koji ilustruje postupak afine predikcije pokreta prema jednom načinu ostvarivanja ovog otkrivanja.
FIG.8 je dijagram koji opisuje postupak izvođenja prediktora vektora pokreta na kontrolnoj tački prema jednom načinu ostvarivanja ovog otkrivanja.
FIG.9 je dijagram koji opisuje postupak izvođenja prediktora vektora pokreta na kontrolnoj tački prema jednom načinu ostvarivanja ovog otkrivanja.
FIG.10 ilustruje primer izvođenja afine predikcije u slučaju kada je susedni blok A izabran kao kandidat za afino spajanje.
FIG.11 ilustrativno predstavlja susedne blokove za izvođenje naslednog afinog kandidata.
FIG.12 ilustrativno predstavlja prostornog kandidata za konstruisanog afinog kandidata.
FIG.13 ilustrativno predstavlja primer konstruisanja liste afinih mvp kandidata.
FIG.14 predstavlja primer izvođenja konstruisanog kandidata.
FIG.15 predstavlja primer izvođenja konstruisanog kandidata.
FIG.16 predstavlja primer izvođenja konstruisanog kandidata za model afinog pokreta sa 4 parametra koji se primenjuje na trenutni blok.
FIG.17 predstavlja primer izvođenja konstruisanog kandidata za model afinog pokreta sa 6 parametara koji se primenjuje na trenutni blok.
FIG.18 predstavlja primer izvođenja konstruisanog kandidata koji uključuje CPMVP za CP-ove koje su adaptivno izabrane na osnovu širine i visine trenutnog bloka.
FIG.19 predstavlja primer izvođenja konstruisanog kandidata trenutnog bloka.
FIG.20 šematski predstavlja postupak kodiranja slike putem uređaja za kodiranje prema ovom otkrivanju.
FIG.21 šematski predstavlja uređaj za kodiranje koji izvršava postupak kodiranja slike prema ovom otkrivanju.
FIG.22 šematski predstavlja postupak za dekodiranje slike putem uređaja za dekodiranje prema ovom otkrivanju.
FIG.23 šematski predstavlja uređaj za dekodiranje koji izvršava postupak za dekodiranje slike prema ovom otkrivanju.
FIG.24 ilustrativno predstavlja dijagram strukture sistema za strimovanje sadržaja na koji se primenjuje ovo otkrivanje.
OPIS PRIMERA NAČINA OSTVARIVANJA
[0013] Ovo otkrivanje može biti modifikovano na različite načine, a konkretni načini ostvarivanja biće opisani i ilustrovani na crtežima. Međutim, ti načini ostvarivanja nisu predviđeni da ograniče ovo otkrivanje. Pojmovi korišćeni u sledećem opisu služe isključivo za opisivanje specifičnih načina ostvarivanja i ne treba ih tumačiti kao ograničenja otkrivanja. Izrazi u jednini obuhvataju i množinu, osim ako iz konteksta jasno ne proizlazi drugačije. Pojmovi poput „uključuje“ i „ima“ su predviđeni da označavaju da karakteristike, brojevi, faze, operacije, elementi, komponente ili njihove kombinacije opisani u nastavku postoje, ali se takođe podrazumeva da nije isključena mogućnost postojanja ili dodavanja jedne ili više različitih karakteristika, brojeva, koraka, operacija, elemenata, komponenti ili njihovih kombinacija.
[0014] U međuvremenu, elementi prikazani na crtežima opisanim u ovom otkrivanju nacrtani su nezavisno radi lakšeg objašnjenja različitih specifičnih funkcija, i to ne znači da su ti elementi ostvareni kao nezavisni hardver ili nezavisni softver. Na primer, dva ili više elemenata mogu biti kombinovani u jedan jedinstveni element, ili jedan element može biti podeljen na više delova. Načini ostvarivanja u kojima se elementi kombinuju i/ili dele takođe pripadaju ovom otkrivanju, pod uslovom da se ne odstupa od njegove osnovne ideje i koncepta.
[0015] U nastavku će načini ostvarivanja ovog otkrivanja biti detaljno opisani uz upućivanje na prateće crteže. Takođe, isti brojevi oznaka biće korišćeni za označavanje istih elemenata na svim crtežima, a ponavljanja opisa istih elemenata biće izostavljena.
[0016] U ovom otkrivanju, video može da se odnosi na niz slika kroz vreme. Slika se generalno odnosi na jedinicu koja predstavlja jednu sliku u određenom vremenskom trenutku, dok je odsečak jedinica koja čini deo slike u postupku kodiranja. Jedna slika može sadržati više odsečaka ili grupa pločica, a po potrebi, slika, segmenti i grupe pločica mogu biti međusobno kombinovani i korišćeni. U ovom dokumentu, pojam slika može označavati statičnu sliku ili sliku iz određenog trenutka koja čini deo videa. U nastavku, kodiranje slike može biti korišćeno naizmenično sa pojmom kodiranje videa. Takođe, kodiranje slike može biti korišćeno naizmenično sa kodiranjem slike ili kodiranjem okvira.
[0017] Piksel ili pal može ad se donosi na najmanju jedinicu koja čini jednu sliku (ili kadar). Dodatno, pojam „uzorak“ može se koristiti kao termin koji odgovara pikselu. Uzorak generalno može predstavljati piksel ili vrednost piksela, može predstavljati samo piksel (vrednost piksela) luma komponente, ili može predstavljati samo piksel (vrednost piksela) hroma komponente.
[0018] Jedinica predstavlja osnovnu jedinicu za obradu slike. Jedinica može uključivati najmanje jedan određeni region slike i informacije povezane sa tim regionom. U nekim slučajevima, jedinica se može koristiti naizmenično sa pojmovima kao što su blok ili oblast. Alternativno, jedinica može uključivati blok luma komponente i blokove hroma komponenti cb i cr. U opštem slučaju, M×N blok može predstavljati skup uzoraka ili transformisanih koeficijenata koji obuhvata M kolona i N redova.
[0019] FIG.1 je šematski dijagram koji ilustruje konfiguraciju uređaja za kodiranje video/slike na koji se ovo otkrivanje može primeniti. U nastavku, uređaj za kodiranje videa može uključivati i uređaj za kodiranje slike.
[0020] Uz pozivanje na FIG.1, uređaj 100 za kodiranje videa može uključivati razdelnik 105 slike, prediktor 110, preostali procesor 120, entropijski koder 130, sabirač 140, filter 150 i memoriju 160. Preostali procesor 120 može uključivati oduzimač 121, transformator 122, kvantizator 123, preuređivač 124, dekvantizator 125 i inverzni transformator 126.
[0021] Razdelnik 105 slike može da deli ulaznu sliku u najmanje jednu procesnu jedinicu.
[0022] Kao primer, procesna jedinica može se nazivati kodirajuća jedinica (CU). U tom slučaju, jedinica za kodiranje može se rekurzivno deliti iz najveće kodirajuće jedinice (LCU) prema strukturi binarnog kvadratnog stabla (QTBT). Na primer, jedna kodirajuća jedinica može biti podeljena na više jedinica dublje dubine na osnovu strukture kvadratnog stabla, binarnog stabla i/ili ternarnog stabla. U tom slučaju, na primer, struktura kvadratnog stabla može se prvo primeniti, a zatim strukture binarnog i ternarnog stabla. Alternativno, binarno i/ili ternarno stablo može prvo da se primeni. Postupak kodiranja prema ovom otkrivanju može se izvršiti na osnovu konačne kodirajuće jedinice koja se više ne deli. U tom slučaju, maksimalna jedinica za kodiranje može se odmah koristiti kao konačna jedinica na osnovu efikasnosti kodiranja u skladu sa karakteristikama slike, ili, ako je potrebno, jedinica za kodiranje može se rekurzivno deliti na jedinice dublje dubine, i jedinica optimalne veličine može se koristiti kao konačna jedinica za kodiranje. Ovde, postupak kodiranja može uključivati postupke predikcije, transformacije i rekonstrukcije, koji će biti detaljno opisani u nastavku.
[0023] U drugom primeru, procesna jedinica može uključivati kodirajuću jedinicu (CU), predikcionu jedinicu (PU) ili transformacionu jedinicu (TU). Kodirajuća jedinica može biti podeljena od najveće kodirajuće jedinice (LCU) u kodirajuće jedinice veće dubine u skladu sa strukturom kvadratnog stabla. U tom slučaju, najveća kodirajuća jedinica može se direktno koristiti kao konačna kodirajuća jedinica na osnovu efikasnosti kodiranja ili sličnih faktora, u zavisnosti od karakteristika slike, ili kodirajuća jedinica može biti rekurzivno podeljena u kodirajuće jedinice veće dubine po potrebi, i kodirajuća jedinica optimalne veličine može se koristiti kao konačna kodirajuća jedinica. Kada je postavljena najmanja kodirajuća jedinica (SCU), kodirajuća jedinica se ne može deliti na kodirajuće jedinice manje od najmanje kodirajuće jedinice. Ovde se konačna kodirajuća jedinica odnosi na kodirajuću jedinicu koja je podeljena ili razgraničena u predikcionu jedinicu ili transformacionu jedinicu. Predikciona jedinica je jedinica koja se deli iz kodirajuće jedinice i može predstavljati jedinicu za predikciju uzoraka. Predikciona jedinica može biti dalje podeljena na podblokove. Transformaciona jedinica može biti izdvojena iz kodirajuće jedinice prema strukturi kvadratnog stabla i može predstavljati jedinicu za dobijanje transformacionog koeficijenta i/ili jedinicu za dobijanje preostalog signala iz transformacionog koeficijenta. U nastavku teksta, kodirajuća jedinica može biti označena kao kodirajući blok (CB), predikciona jedinica kao predikcioni blok (PB), a transformaciona jedinica kao transformacioni blok (TB). Predikcioni blok ili predikciona jedinica mogu se odnositi na specifično područje u obliku bloka u slici i uključivati niz predikcionih uzoraka. Takođe, transformacioni blok ili transformaciona jedinica mogu se odnositi na specifično područje u obliku bloka u slici i uključivati transformacione koeficijente ili niz preostalih uzoraka.
[0024] Prediktor 110 može da izvrši predikciju nad ciljnim blokom obrade (u nastavku teksta: trenutni blok) i može da generiše predikcioni blok koji uključuje predikcione uzorke za trenutni blok. Jedinica predikcije koju koristi prediktor 110 može biti kodirajući blok, transformacioni blok ili predikcioni blok.
[0025] Prediktor 110 može da određuje da li se na trenutni blok primenjuje intra-predikcija ili interpredikcija. Na primer, prediktor 110 može da određuje da li se intra-predikcija ili inter-predikcija primenjuje na nivou CU.
[0026] U slučaju intra-predikcije, prediktor 110 može da izvede predikcioni uzorak za trenutni blok na osnovu referentnog uzorka koji se nalazi izvan trenutnog bloka u slici kojoj trenutni blok pripada (u nastavku teksta: trenutna slika). U tom slučaju, prediktor 110 može da izvede predikcioni uzorak na osnovu proseka ili interpolacije susednih referentnih uzoraka trenutnog bloka (slučaj (i)), ili može da izvede predikcioni uzorak na osnovu referentnog uzorka koji se nalazi u određenom (predikcionom) pravcu u odnosu na predikcioni uzorak među susednim referentnim uzorcima trenutnog bloka (slučaj (ii)). Slučaj (i) se može nazvati neusmerenim režimom ili bezugaonim režimom, dok se slučaj (ii) može nazvati usmerenim režimom ili ugaonim režimom. U intra-predikciji, režimi predikcije mogu uključivati, na primer, 33 usmerena režima i najmanje dva neusmerena režima. Neusmereni režimi mogu uključivati DC režim i planarni režim. Prediktor 110 može da određuje režim predikcije koji će se primeniti na trenutni blok koristeći režim predikcije koji je primenjen na susedni blok.
[0027] U slučaju inter-predikcije, prediktor 110 može da izvede predikcioni uzorak za trenutni blok na osnovu uzorka koji je određen pomoću vektora pokreta na referentnoj slici. Prediktor 110 može da izvede predikcioni uzorak za trenutni blok primenom jednog od sledećih režima: režima preskakanja, režima spajanja i režima predikcije vektora pokreta (MVP). U slučaju režima preskakanja i režima spajanja, prediktor 110 može da koristi informacije o pokretu susednog bloka kao informacije o pokretu trenutnog bloka. U slučaju režima preskakanja, za razliku od režima spajanja, razlika (ostatak) između predikcionog uzorka i originalnog uzorka se ne prenosi. U slučaju MVP režima, vektor pokreta susednog bloka se koristi kao prediktor vektora pokreta i samim tim kao prediktor vektora pokreta trenutnog bloka radi izvođenja vektora pokreta trenutnog bloka.
[0028] U slučaju inter-predikcije, susedni blok može da uključuje prostorni susedni blok koji se nalazi u trenutnoj slici i privremeni susedni blok koji se nalazi u referentnoj slici. Referentna slika koja sadrži privremeni susedni blok može se takođe nazivati kolokacijska slika (colPic). Informacije o pokretu mogu da uključuju vektor pokreta i indeks referentne slike. Informacije kao što su informacije o režimu predikcije i informacije o pokretu mogu biti (entropijski) kodirane, a zatim izvezene u obliku toka bitova.
[0029] Kada se informacije o pokretu privremenog susednog bloka koriste u režimu preskakanja i režimu spajanja, najviša slika na listi referentnih slika može se koristiti kao referentna slika. Referentne slike koje se nalaze na listi referentnih slika mogu biti poređane na osnovu razlike u brojanju redosleda slika (POC) između trenutne slike i odgovarajuće referentne slike. POC odgovara redosledu prikazivanja i može se razlikovati od redosleda kodiranja.
[0030] Oduzimač 121 generiše preostali uzorak koji predstavlja razliku između originalnog uzorka i predikcionog uzorka. Ako se primenjuje režim preskakanja, preostali uzorak možda neće biti generisan, kao što je prethodno opisano.
[0031] Transformator 122 transformiše preostale uzorke u jedinicama transformacionog bloka kako bi generisao transformacione koeficijente. Transformator 122 može da izvrši transformaciju na osnovu veličine odgovarajućeg transformacionog bloka i režima predikcije koji je primenjen na kodirajući blok ili predikcioni blok koji se prostorno preklapa sa transformacionim blokom. Na primer, preostali uzorci mogu biti transformisani korišćenjem jezgra diskretne sin transformacije (DST) ako je intra-predikcija primenjena na kodirajući blok ili predikcioni blok koji se preklapa sa transformacionim blokom i ako je transformacioni blok niz ostataka veličine 4×4, a u drugim slučajevima, transformacija se može vršiti korišćenjem jezgra diskretne kosinusne transformacije (DCT).
[0032] Kvantizator 123 može da kvantizuje koeficijenti transformacije kako bi se generisali kvantizovani koeficijenti transformacije.
[0033] Preuređivač 124 preuređuje kvantizovane koeficijente transformacije. Preuređivač 124 može da preuredi kvantizovane koeficijente transformacije iz oblika bloka u jednodimenzionalni vektor korišćenjem metode skeniranja koeficijenata. Iako je preuređivač 124 opisan kao zasebna komponenta, on može biti deo kvantizatora 123.
[0034] Entropijski koder 130 može da izvrši entropijsko kodiranje kvantizovanih koeficijenata transformacije. Entropijsko kodiranje može uključivati, na primer, metode kodiranja kao što su eksponencijalni Golomb, kontekstualno adaptivno kodiranje promenljive dužine (CAVLC), kontekstualno adaptivno binarno aritmetičko kodiranje (CABAC) i slično. Entropijski koder 130 može da kodira informacije potrebne za rekonstrukciju videa, osim kvantizovanih koeficijenata transformacije (npr. vrednost sintaksnog elementa), zajedno ili odvojeno, u skladu sa entropijskim kodiranjem ili unapred određenom metodom. Kodirane informacije mogu se prenositi ili čuvati u jedinicama sloja za apstrakciju mreže (NAL) u obliku toka bitova. Tok bitova može se prenositi preko mreže ili čuvati na digitalnom medijumu za čuvanje. Mreža može uključivati emisionu mrežu i/ili komunikacionu mrežu, a digitalni medijum za čuvanje može uključivati različite medijume kao što su USB, SD kartica, CD, DVD, Blu-ray, HDD, SSD i tome slično.
[0035] Dekvantizator 125 vrši dekvantizaciju vrednosti (koeficijenata transformacije) koje je kvantizovao kvantizator 123, dok inverzni transformator 126 inverzno transformiše vrednosti koje je dekvantizovao dekvantizator 125 kako bi generisao preostali uzorak.
[0036] Sabirač 140 dodaje preostali uzorak predikcionom uzorku radi rekonstrukcije slike. Preostali uzorak može se dodavati predikcionom uzorku u jedinicama bloka kako bi se generisao rekonstruisani blok. Iako je sabirač 140 opisan kao zasebna komponenta, on može biti deo prediktora 110. Takođe, sabirač 140 može biti označen kao rekonstruktor ili generator rekonstruisanih blokova.
[0037] Filter 150 može da primeni deblokirajuće filtriranje i/ili adaptivni pomeraj uzoraka na rekonstruisanu sliku. Artefakti na granicama blokova u rekonstruisanoj slici ili izobličenja nastala kvantizacijom mogu se ispraviti primenom deblokirajućeg filtriranja i/ili SAO-a. SAO se može primenjivati u jedinicama uzorka nakon što je deblokirajuće filtriranje završeno. Filter 150 može takođe da primeni adaptivni filter petlje (ALF) na rekonstruisanu sliku. ALF može biti primenjen na rekonstruisanu sliku na koju je prethodno primenjeno deblokirajuće filtriranje i/ili SAO.
[0038] Memorija 160 može da čuva rekonstruisanu sliku (dekodiranu sliku) ili informacije neophodne za kodiranje/dekodiranje. Rekonstruisana slika u ovom slučaju može biti slika filtrirana pomoću filtera 150. Čuvana rekonstruisana slika može se koristiti kao referentna slika za (inter) predikciju drugih slika.
Na primer, memorija 160 može da čuva (referentne) slike koje se koriste za inter-predikciju. Te slike mogu biti određene prema skupu referentnih slika ili listi referentnih slika.
[0039] FIG.2 predstavlja dijagram koji šematski ilustruje konfiguraciju uređaja za dekodiranje video zapisa/slike na koji se ovo otkrivanje može primeniti. U nastavku teksta, uređaj za dekodiranje video zapisa može da obuhvata uređaj za kodiranje video zapisa.
[0040] Uz pozivanje na FIG.2, uređaj 200 za kodiranje video zapisa može da uključuje entropijski dekoder 210, procesor za preostale uzorke 220, prediktor 230, sabirač 240, filter 250 i memoriju 260. Procesor za preostale uzorke 220 može da sadrži preuređivač 221, dekvantizator 222 i inverzni transformator 223. Pored toga, iako nije prikazano, uređaj 200 za kodiranje video zapisa može da uključuje i prijemnik koji prima tok bitova koji sadrži video informacije. Prijemnik može biti konfigurisan kao poseban modul ili može biti integrisan u entropijski dekoder 210.
[0041] Kada se unese tok bitova koji sadrži informacije o video zapisu/slici, uređaj 200 za kodiranje video zapisa može da rekonstruiše video/zapis/sliku prema postupku u kojem se informacije o video zapisu/slici obrađuju u uređaju za kodiranje video zapisa.
[0042] Na primer, uređaj 200 za kodiranje video zapisa može da izvrši dekodiranje video zapisa korišćenjem procesne jedinice koja je primenjena u uređaju za kodiranje video zapisa. Tako, blok procesne jedinice pri dekodiranju videa može biti, na primer, kodirajuća jedinica, a može biti, u drugom primeru, kodirajuća jedinica, predikciona jedinica ili transformaciona jedinica. Kodirajuća jedinica može biti podeljena prema strukturi kvadratnog stabla, binarnog stabla i/ili ternarnog stabla počevši od najveće kodirajuće jedinice.
[0043] Predikciona jedinica i transformaciona jedinica mogu se dodatno koristiti u određenim slučajevima, pri čemu je predikcioni blok blok koji se izvodi ili deli iz kodirajuće jedinice i može predstavljati jedinicu predikcije uzoraka. U tom slučaju, predikciona jedinica može biti podeljena na podblokove. Transformaciona jedinica može biti izdvojena iz kodirajuće jedinice u skladu sa strukturom kvadratnog stabla i može predstavljati jedinicu za izvođenje koeficijenata transformacije ili jedinicu za izvođenje preostalog signala iz koeficijenata transformacije.
[0044] Entropijski dekoder 210 može raščlani tok bitova kako bi izveo informacije neophodne za rekonstrukciju videa ili slike. Na primer, entropijski dekoder 210 može da dekodira informacije iz toka bitova na osnovu metoda kodiranja kao što su eksponencijalno Golomb kodiranje, CAVLC, CABAC i slično, i može da izvede vrednost sintaksnog elementa potrebnog za rekonstrukciju videa, kao i kvantizovanu vrednost koeficijenta transformacije u vezi sa preostalim signalom.
[0045] Konkretnije, metoda entropijskog dekodiranja CABAC može da primi bin koji odgovara svakom sintaksnom elementu u toku bitova, da odredi kontekstualni model koristeći informacije o ciljanom sintaksnom elementu za dekodiranje, informacije o dekodiranju susednih blokova i ciljanog bloka, ili informacije o simbolu/binu dekodiranom u prethodnoj fazi, da predvidi verovatnoću generisanja bina u skladu sa određenim kontekstualnim modelom i da izvrši aritmetičko dekodiranje bina radi generisanja simbola koji odgovara vrednosti svakog sintaksnog elementa. Ovde, metoda entropijskog dekodiranja CABAC može da ažurira kontekstualni model koristeći informacije o simbolu/binu koji je dekodiran, za kontekstualni model narednog simbola/bina, nakon što je kontekstualni model određen.
[0046] Informacije o predikciji, među informacijama koje je dekodirao entropijski dekoder 210, mogu biti prosleđene prediktoru 250, dok kvantizovani koeficijenti transformacije, odnosno preostale vrednosti nad kojima je izvršeno entropijsko dekodiranje, mogu biti prosleđeni preuređivaču 221.
[0047] Preuređivač 221 može da preuredi kvantizovane koeficijente transformacije u dvodimenzionalni oblik bloka. Preuređivač 221 može da izvrši preuređivanje koje odgovara postupku skeniranja koeficijenata koji se primenjuje u uređaju za kodiranje. Iako je preuređivač 221 opisan kao posebna komponenta, on može biti deo dekvantizatora 222.
[0048] Dekvantizator 222 može da izvrši dekvantizaciju kvantizovanih koeficijenata transformacije na osnovu (de)kvantizacionog parametra, kako bi izdao koeficijent transformacije. U tom slučaju, informacije za izvođenje kvantizacionog parametra mogu biti signalizirane iz kodirajućeg uređaja.
[0049] Inverzni transformator 223 može inverzno da transformiše koeficijente transformacije kako bi se izveli preostali uzorci.
[0050] Prediktor 230 može da izvrši predikciju nad trenutnim blokom i da generiše predikcioni blok koji sadrži predikcione uzorke za taj trenutni blok. Jedinica predikcije koju koristi prediktor 230 može biti kodirajući blok, transformacioni blok ili predikcioni blok.
[0051] Prediktor 230 može da određuje da li će se primeniti intra-predikcija ili inter-predikcija na osnovu informacija o predikciji. U tom slučaju, jedinica za određivanje koja će od ove dve predikcije biti korišćena može se razlikovati od jedinice za generisanje predikcionog uzorka. Pored toga, jedinica za generisanje predikcionog uzorka može takođe biti različita u inter-predikciji i intra-predikciji. Na primer, odluka o tome koja će se predikcija primeniti — inter ili intra — može se doneti u jedinici CU. Dalje, na primer, u inter-predikciji, predikcioni uzorak može biti generisan određivanjem režima predikcije u jedinici PU, dok se u intra-predikciji predikcioni uzorak može generisati u jedinici TU određivanjem režima predikcije u jedinici PU.
[0052] U slučaju intra-predikcije, prediktor 230 može da izvede predikcioni uzorak za trenutni blok na osnovu susednog referentnog uzorka u trenutnoj slici. Prediktor 230 može da izvede predikcioni uzorak za trenutni blok primenom usmerenog režima ili neusmerenog režima na osnovu susednih referentnih uzoraka trenutnog bloka. U tom slučaju, režim predikcije koji će se primeniti na trenutni blok može biti određen korišćenjem intra-režima predikcije susednog bloka.
[0053] U slučaju inter-predikcije, prediktor 230 može da izvede predikcioni uzorak za trenutni blok na
1
osnovu uzorka određenog u referentnoj slici prema vektoru pokreta. Prediktor 230 može da izvede predikcioni uzorak za trenutni blok koristeći jedan od režima: režim preskakanja, režim spajanja ili mvp režim. Ovde se informacije o pokretu potrebne za inter-predikciju trenutnog bloka, koje obezbeđuje uređaj za kodiranje video zapisa, na primer, vektor pokreta i informacije o indeksu referentne slike, mogu pribaviti ili izvesti na osnovu informacija o predikciji.
[0054] U režimu preskakanja i režimu spajanja, informacije o pokretu susednog bloka mogu se koristiti kao informacije o pokretu trenutnog bloka. Ovde, susedni blok može uključivati prostorni susedni blok i privremeni susedni blok.
[0055] Prediktor 230 može da konstruiše listu kandidata za spajanje koristeći informacije o pokretu dostupnih susednih blokova i da koristi informacije označene indeksom spajanja na listi kandidata za spajanje kao vektor pokreta trenutnog bloka. Indeks spajanja može biti signaliziran od strane uređaja za kodiranje. Informacije o pokretu mogu da uključuju vektor pokreta i referentnu sliku. Kada se informacije o pokretu privremenog susednog bloka koriste u režimu preskakanja i režimu spajanja, kao referentna slika može se koristiti najsvežija slika u listi referentnih slika.
[0056] U slučaju režima preskakanja, razlika (ostatak) između predikcionog uzorka i originalnog uzorka se ne prenosi, za razliku od režima spajanja.
[0057] U slučaju mvp režima, vektor pokreta trenutnog bloka može se izvesti korišćenjem vektora pokreta susednog bloka kao prediktora vektora pokreta. Ovde, susedni blok može uključivati prostorni susedni blok i privremeni susedni blok.
[0058] Kada se primenjuje režim spajanja, na primer, lista kandidata za spajanje može biti generisana korišćenjem vektora pokreta rekonstruisanog prostornog susednog bloka i/ili vektora pokreta koji odgovara Col bloku, koji predstavlja privremeni susedni blok. Vektor pokreta bloka kandidata izabranog iz liste kandidata za spajanje koristi se kao vektor pokreta trenutnog bloka u režimu spajanja. Navedene informacije o predikciji mogu da uključuju indeks spajanja koji označava blok kandidata sa najboljim vektorom pokreta izabranim iz blokova kandidata uključenih u listu kandidata za spajanje. Ovde, prediktor 230 može da izvede vektor pokreta trenutnog bloka koristeći indeks spajanja.
[0059] Kada se MVP (predikcija vektora pokreta) režim primenjuje kao još jedan primer, lista kandidata za prediktor vektora pokreta može biti generisana korišćenjem vektora pokreta rekonstruisanog prostornog susednog bloka i/ili vektora pokreta koji odgovara Col bloku, koji predstavlja privremeni susedni blok. Odnosno, vektor pokreta rekonstruisanog prostornog susednog bloka i/ili vektor pokreta koji odgovara Col bloku, koji je privremeni susedni blok, može se koristiti kao kandidat za vektor pokreta. Navedene informacije o predikciji mogu da uključuju indeks predikcije vektora pokreta koji ukazuje na najbolji vektor pokreta izabran iz kandidata za vektor pokreta uključenih u listu. Ovde, prediktor 230 može da izabere predikcioni vektor pokreta trenutnog bloka iz kandidata za vektor pokreta uključenih u listu kandidata koristeći indeks vektora pokreta. Prediktor uređaja za kodiranje može dobiti razliku vektora pokreta (MVD) između vektora pokreta trenutnog bloka i prediktora vektora pokreta, kodirati MVD i izlazno generisati kodirani MVD u obliku toka bitova. Odnosno, MVD se može dobiti oduzimanjem prediktora vektora pokreta od vektora pokreta trenutnog bloka. Ovde, prediktor 230 može pribaviti vektor pokreta uključen u informacije o predikciji i izvesti vektor pokreta trenutnog bloka dodavanjem razlike vektora pokreta na prediktor vektora pokreta. Pored toga, prediktor može dobiti ili izvesti indeks referentne slike koji ukazuje na referentnu sliku iz pomenutih informacija o predikciji.
[0060] Sabirač 240 može dodati preostali uzorak na predikcioni uzorak kako bi rekonstruisao trenutni blok ili trenutnu sliku. Sabirač 240 može rekonstruisati trenutnu sliku dodavanjem preostalog uzorka na predikcioni uzorak u jedinicama bloka. Kada se primenjuje režim preskakanja, ostatak se ne prenosi, pa predikcioni uzorak može postati rekonstruisani uzorak. Iako je sabirač 240 opisan kao odvojena komponenta, sabirač 240 može biti deo prediktora 230. U međuvremenu, sabirač 240 može biti označen i kao rekonstruktor ili generator rekonstruisanih blokova.
[0061] Filter 250 može primeniti deblokirajuće filtriranje, adaptivni pomeraj uzorka i/ili ALF na rekonstruisanu sliku. Ovde, adaptivni pomeraj uzorka može se primeniti po uzorcima nakon deblokirajućeg filtriranja. ALF može biti primenjen nakon deblokirajućeg filtriranja i/ili primene adaptivnog pomeraja uzorka.
[0062] Memorija 260 može da čuva rekonstruisanu sliku (dekodiranu sliku) ili informacije neophodne za dekodiranje. Ovde, rekonstruisana slika može biti rekonstruisana slika filtrirana od strane filtera 250. Na primer, memorija 260 može da čuva slike koje se koriste za inter-predikciju. Ovde, slike koje se koriste za inter-predikciju mogu biti određene u skladu sa skupom referentnih slika ili listom referentnih slika. Rekonstruisana slika može se koristiti kao referentna slika za druge slike. Memorija 260 može da izdvaja rekonstruisane slike redosledom za izlaz.
[0063] U međuvremenu, u slučaju inter predikcije, predložen je postupak inter predikcije koji uzima u obzir izobličenje slike. Konkretno, predložen je model afinog pokreta radi efikasnog određivanja vektora pokreta za podblokove ili uzorke trenutnog bloka i povećanja tačnosti inter predikcije uprkos deformacijama slike kao što su rotacija, uvećavanje ili umanjivanje. Odnosno, predložen je model afinog pokreta koji generiše vektor pokreta za podblokove ili uzorke trenutnog bloka. Predikcija korišćenjem modela afinog pokreta može se nazvati afina inter predikcija ili afina predikcija pokreta.
[0064] Na primer, afina inter predikcija korišćenjem modela afinog pokreta može efikasno da izrazi četiri kretanja, odnosno četiri deformacije, kako je opisano u nastavku.
[0065] FIG.3 ilustruje pokret izražen putem modela afinog pokreta. Uz pozivanje na FIG.3, pokret koji može biti predstavljen modelom afinog pokreta može da uključuje translaciono kretanje, kretanje skaliranja, rotaciono kretanje i kretanje smicanjem. Odnosno, kretanje skaliranja u kome se (deo) slike skalira tokom vremena, rotaciono kretanje u kome se (deo) slike rotira tokom vremena, kretanje širom u kome se (deo) slike paralelogramski deformiše tokom vremena, kao i translaciono kretanje u kome se (deo) slike pomera u ravni tokom vremena — kako je prikazano na FIG.3 — mogu biti efikasno predstavljeni, kao što je ilustrovano na FIG.3.
[0066] Uređaj za kodiranje/uređaj za dekodiranje može da predvidi oblik deformacije slike na osnovu vektora pokreta na kontrolnim tačkama (CP-ovima) trenutnog bloka kroz afinu inter predikciju, čime se može poboljšati performansa kompresije slike povećanjem tačnosti predikcije. Pored toga, pošto se vektor pokreta za najmanje jednu kontrolnu tačku trenutnog bloka može izvesti korišćenjem vektora pokreta susednog bloka trenutnog bloka, opterećenje količine podataka za dodatne informacije može biti smanjeno, a efikasnost inter predikcije značajno poboljšana.
[0067] Kao primer afine inter predikcije, mogu biti potrebne informacije o pokretu na tri kontrolne tačke, odnosno tri referentne tačke.
[0068] FIG.4 ilustruje model afinog pokreta u kojem se koriste vektori pokreta za tri kontrolne tačke.
[0069] Kada je gornji-levi položaj uzorka u trenutnom bloku 400 (0, 0), položaja uzoraka (0, 0), (w, 0) i (0, h) mogu biti definisane kao kontrolne tačke, kao što je prikazano na FIG.4. U nastavku teksta, kontrolna tačka položaja uzorka (0, 0) može biti označena kao CP0, kontrolna tačka položaja uzorka (w, 0) može biti označena kao CP1, a kontrolna tačka položaja uzorka (0, h) može biti označena kao CP2.
[0070] Jednačina za model afinog pokreta može se izvesti korišćenjem kontrolnih tačaka i vektora pokreta odgovarajućih kontrolnih tačaka opisanih gore. Jednačina za model afinog pokreta može se izraziti na sledeći način.
[0071] Ovde, w označava širinu trenutnog bloka 400, h označava visinu trenutnog bloka 400, v0xi v0yoznačavaju x komponentu i y komponentu vektora pokreta CP0, tim redom, v1xi v1yoznačavaju x komponentu i y komponentu vektora pokreta CP1, tim redom, i v2xi v2yoznačavaju x komponentu i y komponentu vektora pokreta CP2, tim redom. Pored toga, x označava x komponentu položaja ciljanog uzorka u trenutnom bloku 400, y označava vektora pokreta položaja ciljanog uzorka u trenutnom bloku 400, vxoznačava x komponentu vektora pokreta ciljanog uzorka u trenutnom bloku 400, i vyoznačava vektora vektora pokreta pokreta ciljanog uzorka u trenutnom bloku 400.
[0072] Pošto su vektor pokreta CP0, vektor pokreta CP1 i vektor pokreta CP2 poznati, vektor pokreta zasnovan na položaju uzorka u trenutnom bloku može se izvesti na osnovu jednačine 1. Odnosno, prema modelu afinog pokreta, vektori pokreta v0 (v0x, v0y), v1 (v1x, v1y) i v2 (v2x, v2y) na kontrolnim tačkama mogu se skalirati u zavisnosti od odnosa rastojanja između koordinata (x, y) ciljanog uzorka i tri kontrolne tačke, kako bi se odredili vektori pokreta ciljanog uzorka prema položaju ciljanog uzorka.
1
Drugim rečima, prema modelu afinog pokreta, vektor pokreta svakog uzorka u trenutnom bloku može se izvesti na osnovu vektora pokreta kontrolnih tačaka. U međuvremenu, skup vektora pokreta uzoraka u trenutnom bloku izveden prema modelu afinog pokreta može biti označen kao afino polje vektora pokreta (MVF).
[0073] U međuvremenu, šest parametara za jednačinu 1 može biti predstavljeno sa a, b, c, d, e i f, kao što je prikazano u jednačini 1 ispod, a jednačina za model afinog pokreta predstavljena ovih šest parametara može biti sledeća.
[0074] Ovde, w označava širinu trenutnog bloka 400, h označava visinu trenutnog bloka 400, v0xi v0yoznačavaju x komponentu vektora pokreta CP0, y komponente, v1x i v1y predstavljaju x komponentu i y komponentu vektora pokreta CP1, tim redom, a v2xi v2ypredstavljaju x komponentu i y komponentu vektora pokreta CP2, tim redom. Pored toga, x označava x komponentu položaja ciljanog uzorka u trenutnom bloku 400, y označava y komponentu položaja ciljanog uzorka u trenutnom bloku 400, vxoznačava x komponentu vektora pokreta ciljanog uzorka u trenutnom bloku 400, vyoznačava y komponentu vektora pokreta ciljanog uzorka u trenutnom bloku 400.
[0075] Model afinog pokreta ili afina inter predikcija koja koristi šest parametara može biti označena kao 6-parametarski model afinog pokreta ili AF6.
[0076] Pored toga, kao primer afine inter predikcije, mogu biti potrebne informacije o pokretu na dve kontrolne tačke, tj. dve referentne tačke.
[0077] FIG.5 ilustruje model afinog pokreta u kome se koriste vektori pokreta za dve kontrolne tačke. Model afinog pokreta koji koristi dve kontrolne tačke može predstavljati tri kretanja, uključujući translaciono kretanje, kretanje skaliranja i rotaciono kretanje. Model afinog pokreta koji predstavlja ova tri kretanja može biti označen kao sličan model afinog pokreta ili pojednostavljeni model afinog pokreta.
[0078] Kada je gornji-levi položaj uzorka u trenutnom bloku 500 (0, 0), položaji uzoraka (0, 0) i (w, 0) mogu biti definisane kao kontrolne tačke, kao što je prikazano na FIG.5. U nastavku teksta, kontrolna tačka položaja uzorka (0, 0) može biti označena kao CP0, a kontrolna tačka položaja uzorka (w, 0) može biti označena kao CP1.
[0079] Jednačina za model afinog pokreta može se izvesti korišćenjem kontrolnih tačaka i vektora pokreta odgovarajućih kontrolnih tačaka opisanih gore. Jednačina za model afinog pokreta može se izraziti na sledeći način.
[0080] Ovde, w označava širinu trenutnog bloka 500, v0xi v0yoznačavaju x i y komponente vektora pokreta CP0, tim redom, i v1xi v1yoznačavaju x i y komponente vektora pokreta CP1. Pored toga, x označava x komponentu položaja ciljanog uzorka u trenutnom bloku 500, y označava y komponentu položaja ciljanog uzorka u trenutnom bloku 500, vxoznačava x komponentu vektora pokreta ciljanog uzorka u trenutnom bloku 500, i vyoznačava y komponentu vektora pokreta ciljanog uzorka u trenutnom bloku 500.
[0081] U međuvremenu, četiri parametra Jednačine 3 mogu biti predstavljena sa a, b, c i d, kao što je to u sledećoj jednačini, a jednačina za model afinog pokreta predstavljena ovim parametrima može biti sledeća.
[0082] Ovde, w označava širinu trenutnog bloka 500, v0x i v0y označavaju x i y komponentu vektora pokreta CP0, tim redom, a v1x i v1y označavaju x i y komponentu vektora pokreta CP1, tim redom. Pored toga, x označava x komponentu položaja ciljanog uzorka u trenutnom bloku 500, y označava y komponentu položaja ciljanog uzorka u trenutnom bloku 500, vx označava x komponentu vektora pokreta ciljanog uzorka u trenutnom bloku 500, označava y komponentu vektora pokreta ciljanog uzorka u trenutnom bloku 500. Model afinog pokreta koji koristi dve kontrolne tačke može biti predstavljen pomoću četiri parametra a, b, c i d, kao što je prikazano u Jednačini 4, i stoga, model afinog pokreta koji koristi četiri parametra, odnosno afina inter predikcija, može biti označen kao 4-parametarski model afinog pokreta ili AF4. Odnosno, prema modelu afinog pokreta, vektor pokreta svakog uzorka u trenutnom bloku može se izvesti na osnovu vektora pokreta kontrolnih tačaka. U međuvremenu, skup vektora pokreta uzoraka u trenutnom bloku izveden prema modelu afinog pokreta može biti označen kao afino polje vektora pokreta (MVF).
[0083] U međuvremenu, kao što je gore opisano, vektor pokreta na nivou uzorka može se izvesti korišćenjem modela afinog pokreta, čime se tačnost inter predikcije može značajno poboljšati.
1
Međutim, u tom slučaju, složenost procesa kompenzacije pokreta može biti značajno povećana.
[0084] Shodno tome, može se uvesti ograničenje tako da se vektor pokreta izvodi na nivou podbloka trenutnog bloka, umesto na nivou uzorka.
[0085] FIG.6 ilustruje metod izvođenja vektora pokreta na bazi podbloka, zasnovan na modelu afinog pokreta. FIG.6 prikazuje slučaj u kome je veličina trenutnog bloka 16×16, vektor pokreta se izvodi u jedinicama podblokova veličine 4×4. Veličina podbloka može biti različita. Na primer, kada je podblok postavljen na veličinu n×n (n je pozitivan ceo broj, npr. n je 4), vektor pokreta može se izvoditi u jedinicama n×n podblokova u trenutnom bloku, zasnovano na modelu afinog pokreta, a mogu se primeniti različiti postupci za izvođenje vektora pokreta koji predstavlja svaki podblok.
[0086] Na primer, uz pozivanje na FIG.6, vektor pokreta svakog podbloka može biti izveden korišćenjem položaja uzorka na sredini ili donjoj desnoj strani svakog podbloka kao reprezentativne koordinate. Ovde, položaj na sredini donje desne strane može označavati položaj uzorka koja se nalazi na donjoj desnoj strani među četiri uzorka postavljena u centru podbloka. Na primer, kada je n neparan broj, jedan uzorak može biti postavljen u centru podbloka, i u tom slučaju, položaj centralnog uzorka može da se koristi za izvođenje vektora pokreta podbloka. Međutim, kada je n paran broj, četiri uzorka mogu biti postavljena tako da budu susedna u centru podbloka, i u tom slučaju, donji desni uzorak može se koristiti za izvođenje vektora pokreta. Na primer, uz pozivanje na FIG.6, reprezentativne koordinate svakog podbloka mogu biti izvedene kao (2, 2), (6, 2), (10, 2), ..., (14, 14), i kodirajući uređaj/dekodirajući uređaj može izvesti vektor pokreta svakog podbloka zamenom svake od reprezentativnih koordinata podblokova u jednačinu 1 ili 3 opisanu gore. Vektori pokreta podblokova u trenutnom bloku izvedeni kroz model afinog pokreta mogu biti označeni kao afina MVF.
[0087] U međuvremenu, kao primer, veličina podbloka u trenutnom bloku može biti izveden na osnovu sledeće jednačine.
[0088] Ovde, M označava širinu podbloka, a N označava visinu podbloka. Pored toga, v0xi v0yoznačavaju x komponentu i y komponentu CPMV0 trenutnog bloka, v1xi v1yoznačavaju x komponentu i y komponentu CPMV1 trenutnog bloka, w označava širinu trenutnog bloka, h označava visinu trenutnog bloka, i MvPre označava tačnost frakcije vektora pokreta. Na primer, tačnost frakcije vektora pokreta može biti podešena na 1/16.
[0089] U međuvremenu, kod inter predikcije zasnovane na gore opisanom modelu afinog pokreta,
1
odnosno afinoj predikciji pokreta, mogu postojati afini režim spajanja AF_MERGE i afini inter režim AF_INTER. Ovde, afini inter režim može biti označen kao afini mvp režim AF_mvp.
[0090] Afini režim spajanja je sličan postojećem režimu spajanja po tome što se MVD za vektor pokreta kontrolnih tačaka ne prenosi. Odnosno, slično postojećem režimu preskakanja/spajanja, afini režim spajanja može se odnositi na metod kodiranja/dekodiranja koji vrši predikciju izvođenjem CPMV za svaku od dve ili tri kontrolne tačke iz susednog bloka trenutnog bloka.
[0091] Na primer, kada se AF_MRG režim primeni na trenutni blok, MV-ovi (tj. CPMV0 i CPMV1) za CP0 i CP1 mogu biti izvedeni iz susednog bloka na koji je primenjen afini režim, među susednim blokovima trenutnog bloka. Odnosno, CPMV0 i CPMV1 susednog bloka na koji je primenjen afini režim mogu biti izvedeni kao kandidati za spajanje, i ti kandidati mogu biti izvedeni kao CPMV0 i CPMV1 za trenutni blok.
[0092] Afini inter režim može predstavljati inter predikciju koja se zasniva na afinom prediktoru vektora pokreta (MVP), tako što se izvodi mvp za vektor pokreta kontrolnih tačaka, izvodi vektor pokreta kontrolnih tačaka na osnovu razlike vektora pokreta (MOD) i MVP, i izvodi afino polje vektora pokreta afine MVF trenutnog bloka na osnovu vektora pokreta kontrolnih tačaka. Ovde, vektor pokreta kontrolne tačke može biti predstavljen kao vektor pokreta kontrolne tačke (CPMV), MVP kontrolne tačke može biti predstavljen kao prediktor vektora pokreta kontrolne tačke (CPMVP), a MVD kontrolne tačke može biti predstavljen kao razlika vektora pokreta kontrolne tačke (CPMVD). Konkretno, na primer, uređaj za kodiranje može izvesti prediktor vektora pokreta kontrolne tačke (CPMVP) i vektor porkreta kontrolne tačke (CPMV) za svaku od tačaka CP0 i CP1 (ili CP0, CP1 i CP2) i preneti ili sačuvati informacije o CPMVP i/ili CPMVD, koji predstavlja razliku između CPMVP i CPMV.
[0093] Ovde, kada se afini inter režim primeni na trenutni blok, uređaj za kodiranje/uređaj za dekodiranje može da konstruiše listu kandidata afine mvp zasnovanu na susednom bloku trenutnog bloka, kandidat afine mvp može biti označen kao CPMVP kandidat para, a lista kandidata afine mvp može biti označena kao CPMVP lista kandidata.
[0094] Pored toga, svaki od kandidata afinih mvp može da se odnosi na kombinaciju CPMVP iz CP0 i CP1 kod 4-parametarskog modela afinog pokreta i može da se odnosi na kombinaciju CPMVP iz CP0, CP1, i CP2 kod 6-parametarskog modela afinog pokreta.
[0095] FIG.7 je dijagram toka koji ilustruje postupak afine predikcije pokreta prema jednom načinu ostvarivanja ovog otkrivanja.
[0096] Uz pozivanje na FIG.7, postupak afine predikcije pokreta može biti predstavljen na sledeći način. Kada postupak afine predikcije pokreta započne, najpre može biti dobijen par CPMV (S700). Ovde, par CPMV može da uključuje CPMV0 i CPMV1 prilikom korišćenja afine jednačine sa 4 parametra.
[0097] Nakon toga, afina kompenzacija pokreta može biti izvedena na osnovu para CPMV (S710), i postupak afine predikcije pokreta može biti završen.
[0098] Pored toga, mogu postojati dva režima afine predikcije koja određuju CPMV0 i CPMV1. Ovde, dva
1
režima afine predikcije mogu da uključuju afini među-režim i afini režim spajanja. U afinom međurežimu, CPMV0 i CPMV1 mogu biti jasno određeni signaliziranjem informacija o razlici vektora pokreta (MVD) za CPMV0 i CPMV1. U međuvremenu, u afinom režimu spajanja, par CPMV može biti izveden bez signalizacije MVD informacija.
[0099] Drugim rečima, u afinom režimu spajanja, CPMV trenutnog bloka može biti izveden korišćenjem CPMV susednog bloka kodiranog u afinom režimu, a u slučaju određivanja vektora pokreta po jedinicama podblokova, afini režim spajanja može biti označen kao režim spajanja podblokova.
[0100] U afinom režimu spajanja, uređaj za kodiranje može signalizirati uređaju za dekodiranje indeks susednog bloka kodiranog u afinom režimu radi izvođenja CPMV trenutnog bloka, i dodatno može signalizirati vrednost razlike između CPMV susednog bloka i CPMV trenutnog bloka. Ovde, u afinom režimu spajanja, afina lista kandidata za spajanje može biti konstruisana na osnovu susednog bloka, a indeks susednog bloka može predstavljati susedni blok na koji se treba pozvati kako bi se izveo CPMV trenutnog bloka na afinom listi kandidata za spajanje. Afina lista kandidata za spajanje može biti označena kao lista kandidata za spajanje podblokova.
[0101] Afini među-režim može biti označen kao afini mvp režim. U afinom mvp režimu, CPMV trenutnog bloka može biti izveden na osnovu prediktora vektora pokreta kontrolne tačke (CPMVP) i razlike komponente kontrolne tačke (CPMVD). Drugim rečima, uređaj za kodiranje može odrediti CPMVP za CPMV trenutnog bloka, izvesti CPMVD koji predstavlja razliku između CPMV trenutnog bloka i CPMVP, i signalizirati informacije o CPMVP i CPMVD uređaju za dekodiranje. Ovde, afini mvp režim može konstruisati listu kandidata afine mvp na osnovu susednog bloka, a informacija o CPMVP može predstavljati susedni blok na koji se treba pozvati radi izvođenja CPMVP za CPMV trenutnog bloka na listi kandidata afine mvp. Lista kandidata afine mvp može biti označena kao lista kandidata prediktora vektora pokreta kontrolne tačke.
[0102] Na primer, u slučaju da se primeni afini među-režim sa 6-parametarskim modelom afinog pokreta, trenutni blok može biti kodiran na sledeći način.
[0103] FIG.8 predstavlja dijagram za opisivanje postupka za izvođenje prediktora vektora pokreta u kontrolnoj tački prema jednom načinu ostvarivanja ovog otkrivanja.
[0104] Uz pozivanje na FIG.8, vektor pokreta za CP0 trenutnog bloka može biti izražen kao v0, vektor pokreta za CP1 može biti izražen kao v1, vektor pokreta za kontrolnu tačku na položaju donjeg levog uzorka može biti izražen kao v2, vektor pokreta za CP2 može biti izražen kao v3. Konkretnije, v0 može označavati CPMVP za CP0, v1 može označavati CPMVP za CP1, a v2 može označavati CPMVP za CP2.
[0105] Kandidat afine mvp može biti kombinacija kandidata za CPMVP tačke CP0, kandidata za CPMVP tačke CP1, i kandidata za CPMVP tačke CP2.
[0106] Na primer, kandidat afine MVP može biti izveden kao što je opisano u nastavku.
[0107] Konkretnije, maksimalno 12 CPMVP kombinacija kandidata može biti određeno prema jednačini
1
prikazanoj u nastavku.
[0108] Ovde, vA može da označava vektor pokreta susednog bloka A, vB može da označava vektor pokreta susednog bloka B, vC može da označava vektor pokreta susednog bloka C, vD može da označava vektor pokreta susednog bloka D, vE može da označava vektor pokreta susednog bloka E, vF može da označava vektor pokreta susednog bloka F, a vG može da označava vektor pokreta susednog bloka G.
[0109] Pored toga, susedni blok A može predstavljati susedni blok koji se nalazi u gornjem levom uglu u odnosu na položaj gornjeg levog uzorka trenutnog bloka, susedni blok B može predstavljati susedni blok koji se nalazi iznad položaja gornjeg levog uzorka trenutnog bloka, susedni blok C može predstavljati susedni blok koji se nalazi sa leve strane položaja gornjeg levog uzorka trenutnog bloka. Pored toga, susedni blok D može predstavljati susedni blok koji se nalazi iznad položaja gornjeg desnog uzorka trenutnog bloka, susedni blok E može predstavljati susedni blok koji se nalazi u gornjem desnom uglu u odnosu na položaj gornjeg desnog uzorka trenutnog bloka. Takođe, susedni blok F može predstavljati susedni blok koji se nalazi sa leve strane položaja donjeg levog uzorka trenutnog bloka, susedni blok G može predstavljati susedni blok koji se nalazi u donjem levom uglu u odnosu na položaj donjeg levog uzorka trenutnog bloka.
[0110] Konkretnije, uz pozivanje na prethodno opisanu jednačinu 6, CPMVP kandidat od CP0 može da uključuje vektor pokreta vA susednog bloka A, vektor pokreta vB susednog bloka B, i/ili vektor pokreta vC susednog bloka C, CPMVP kandidat iz CP1 može da uključuje vektor pokreta vD susednog bloka D, i/ili vektor pokreta vE susednog bloka E, i CPMVP kandidat iz CP2 može da uključuje vektor pokreta vF susednog bloka F, i/ili vektor pokreta vG susednog bloka G.
[0111] Drugim rečima, CPMVP v0 za CP0 može biti izveden na osnovu vektora pokreta najmanje jednog susednog bloka A, B ili C pozicioniranih oko gornjeg levog položaja uzorka. Ovde, susedni blok A može predstavljati blok koji se nalazi u gornjem levom uglu u odnosu na gornji levi položaj uzorka trenutnog bloka, susedni blok B može predstavljati blok koji se nalazi iznad gornjeg levog položaja uzorka trenutnog bloka, susedni blok C može predstavljati blok koji se nalazi sa leve strane gornjeg levog položaja uzorka trenutnog bloka.
[0112] Kombinacija od maksimalno 12 CPMVP kandidata uključujući CPMVP kandidate iz CP0, CPMVP kandidate iz CP1, i CPMVP kandidata iz CP2 može biti izvedena na osnovu vektora pokreta susednih blokova.
[0113] Nakon toga, izvedena kombinacija kandidata za CPMVP može biti poređana redom prema kandidatima sa nižim DV vrednostima. Tako, dve najbolje kombinacije kandidata za CPMVP mogu biti izvedene kao kandidati afine mvp.
1
[0114] DV iz CPMVP kombinacije kandidata može biti izvedena upotrebom sledeće jednačine.
[0115] Nakon toga, uređaj za kodiranje može da odredi CPMV za svaki od kandidata afine mvp. Zatim, poređenjem troškova brzine izobličenja (RD) za CPMV, kandidat afinih mvp nižih RD troškova može biti izabran kao optimalan kandidat afinih MVP za trenutni blok. Uređaj za kodiranje može da kodira i signalizira indekse koji označavaju optimalne kandidate i CPMVD.
[0116] Pored toga, na primer, u slučaju kada se primenjuje afini režim spajanja, trenutni blok može biti kodiran na sledeći način.
[0117] FIG.9 predstavlja dijagram koji opisuje postupak za izvođenje prediktora vektora pokreta na kontrolnoj tački prema jednom načinu ostvarivanja ovog otkrivanja.
[0118] Afina lista kandidata za spajanje trenutnog bloka može biti konstruisana na osnovu susednih blokova trenutnog bloka prikazanog na FIG.9. Susedni blokovi mogu da uključuju susedni blok A, susedni blok B, susedni blok C, susedni blok D, i susedni blok E. I, susedni blok A može da označava levi susedni blok trenutnog bloka, susedni blok B može da označava gornji susedni blok trenutnog bloka, susedni blok C može da označava gornji desni ugao susedni blok trenutnog bloka, susedni blok D može da označava susedni blok donjeg levog ugla trenutnog bloka, i susedni blok E može da označava Gornji levi susedni blok trenutnog bloka.
[0119] Na primer, u slučaju da je veličina trenutnog bloka WxH, i da je u ovom slučaju x komponenta gornjeg levog položaja uzorka trenutnog bloka jednaka 0, a y komponenta takođe 0, levi susedni blok može biti blok koji uključuje uzorak sa koordinatama (-1, H-1), gornji susedni blok može biti blok koji uključuje uzorak sa koordinatama (W-1, -1), susedni blok u gornjem desnom uglu može biti blok koji uključuje uzorak sa koordinatama (W, -1), susedni blok u donjem levom uglu može biti blok koji uključuje uzorak sa koordinatama (-1, H), susedni blok u gornjem levom uglu može biti blok koji uključuje uzorak sa koordinatama (-1, -1).
[0120] Konkretnije, na primer, uređaj za kodiranje može skenirati susedni blok A, susedni blok B, susedni blok C, susedni blok D i susedni blok E trenutnog bloka po određenom redosledu skeniranja. U okviru tog redosleda, susedni blok koji je prvi kodiran u afinom režimu predikcije može biti određen kao kandidat blok za afini režim spajanja, tj. kandidat za afino spajanje. Ovde, na primer, specifičan redosled skeniranja može biti abecedni redosled. Konkretnije, redosled skeniranja može biti: susedni blok A, susedni blok B, susedni blok C, susedni blok D, i susedni blok E.
[0121] Nakon toga, uređaj za kodiranje može odrediti model afinog pokreta trenutnog bloka korišćenjem određenog kandidat bloka, zatim odrediti CPMV trenutnog bloka na osnovu tog modela afinog pokreta, i odrediti afini MVF trenutnog bloka na osnovu CPMV.
[0122] Na primer, u slučaju kada je susedni blok A određen kao kandidat blok trenutnog bloka, susedni
2
blok A može biti kodiran na sledeći način.
[0123] FIG.10 ilustruje primer afine predikcije koja je izvedena u slučaju gde je susedni blok A izabran kao kandidat za afino spajanje.
[0124] Uz pozivanje na FIG.10, uređaj za kodiranje može odrediti susedni blok A trenutnog bloka kao kandidat blok, i uređaj za kodiranje može izvesti model afinog pokreta trenutnog bloka na osnovu CPMV, v2 i v3 susednog bloka. Nakon toga, uređaj za kodiranje može odrediti CPMV, v0 i v1 trenutnog bloka na osnovu modela afinog pokreta. Uređaj za kodiranje može odrediti afino MVF na osnovu CPMV, v0 i v1 trenutnog bloka i izvršiti proces kodiranja za trenutni blok na osnovu tog afinog MVF-a.
[0125] U međuvremenu, kada je reč o afinoj inter predikciji, pri pravljenju liste kandidata afine mvp razmatraju se nasleđeni afini kandidat i konstruisani afini kandidat.
[0126] Ovde, nasleđeni afini kandidat može biti kao što sledi.
[0127] Na primer, kada je susedni blok trenutnog bloka afini blok, i kada je referentna slika trenutnog bloka ista kao referentna slika susednog bloka, afini mvp par trenutnog bloka može biti određen na osnovu modela afinog pokreta susednog bloka. Ovde, afini blok može predstavljati blok na koji se primenjuje afina inter predikcija. Nasleđeni afini kandidat može predstavljati CPMVP vrednosti (npr. afini mvp par) koje su izvedene na osnovu modela afinog pokreta susednog bloka.
[0128] Konkretno, na primer, nasleđeni afini kandidat može biti izveden kao što je opisano u nastavku.
[0129] FIG.11 ilustrativno predstavlja susedne blokove za izvođenje nasleđenog afinog kandidata.
[0130] Uz pozivanje na FIG.11, susedni blokovi trenutnog bloka mogu da uključuju: levi susedni blok A0 trenutnog bloka, susedni blok u donjem levom uglu A1 trenutnog bloka, gornji susedni blok B0 trenutnog bloka, susedni blok u gornjem desnom uglu B1 trenutnog bloka, i susedni blok u gornjem levom uglu B2 trenutnog bloka.
[0131] Na primer, ako je veličina trenutnog bloka WxH, i ako je x komponenta gornjeg levog položaja uzorka trenutnog bloka jednaka 0, a y komponenta takođe 0, tada levi susedni blok može biti blok koji uključuje uzorak na koordinatama (-1, H-1); gornji susedni blok može biti blok koji uključuje uzorak na koordinatama (W-1, -1); susedni blok u gornjem desnom uglu može biti blok koji uključuje uzorak na koordinatama (W, -1); susedni blok u donjem levom uglu može biti blok koji uključuje uzorak na koordinatama (-1, H); a susedni blok u gornjem levom uglu može biti blok koji uključuje uzorak na koordinatama (-1, -1).
[0132] Uređaj za kodiranje/uređaj za dekodiranje može sekvencijalno proveravati susedne blokove A0, A1, B0, B1 i B2, i, ako je susedni blok kodiran korišćenjem modela afinog pokreta, i ako je referentna slika trenutnog bloka ista kao referentna slika susednog bloka, može izvesti dve ili tri CPMV vrednosti trenutnog bloka na osnovu modela afinog pokreta susednog bloka. Te CPMV vrednosti mogu biti izvedene kao kandidat afine mvp trenutnog bloka. Taj kandidat može predstavljati nasleđeni afini kandidat.
[0133] Kao jedan primer, najviše dva nasleđena afina kandidata mogu biti izvedena na osnovu susednih blokova.
[0134] Na primer, uređaj za kodiranje/uređaj za dekodiranje može izvesti prvog kandidata afine mvp trenutnog bloka na osnovu prvog bloka iz skupa susednih blokova. Ovde, prvi blok može biti kodiran korišćenjem modela afinog pokreta, a referentna slika tog bloka može biti ista kao referentna slika trenutnog bloka. Drugim rečima, prvi blok može biti blok za koji je prvo potvrđeno da zadovoljava određeni uslov tokom provere susednih blokova po specifičnom redosledu. Taj uslov može biti da je blok kodiran modelom afinog pokreta i da je referentna slika bloka ista kao referentna slika trenutnog bloka.
[0135] U nastavku teksta, uređaj za kodiranje/uređaj za dekodiranje može izvesti drugi kandidat afine mvp trenutnog bloka na osnovu drugog bloka iz skupa susednih blokova. Ovde, drugi blok može biti kodiran korišćenjem modela afinog pokreta, a referentna slika drugog bloka može biti ista kao referentna slika trenutnog bloka. Drugim rečima, drugi blok može biti blok za koji je kao drugi potvrđeno da zadovoljava određeni uslov tokom provere susednih blokova po specifičnom redosledu. Taj uslov može biti da je blok kodiran modelom afinog pokreta i da je referentna slika tog bloka ista kao referentna slika trenutnog bloka.
[0136] U međuvremenu, na primer, kada je broj dostupnih nasleđenih afinih kandidata manji od dva (odnosno, kada je broj izvedenih nasleđenih afinih kandidata manji od dva), u obzir može biti uzet konstruisani afini kandidat. Konstruisani afini kandidat može biti izveden na sledeći način.
[0137] FIG.12 ilustrativno predstavlja prostorni kandidat za konstruisani afini kandidat.
[0138] Kao što je prikazano na FIG.12, vektori pokreta susednih blokova trenutnog bloka mogu biti podeljeni u tri grupe. Uz pozivanje na FIG.12, susedni blokovi mogu da uključuju: susedni blok A, susedni blok B, susedni blok C, susedni blok D, susedni blok E, susedni blok F i susedni blok G.
[0139] Susedni blok A može da predstavlja susedni blok koji se gore levo od gornjeg-levog položaja utorka trenutnog bloka; susedni blok B, susedni blok koji se nalazi gore od gornjeg-levog položaja uzorka trenutnog bloka; a susedni blok C predstavlja susedni blok koji se nalazi levo od gornjeg-levog položaja uzorka trenutnog bloka. Pored toga, susedni blok D može predstavljati susedni blok koji se nalazi gore od gornjeg-desnog položaja uzorka trenutnog bloka, i susedni blok E može predstavljati susedni blok koji se nalazi gore i desno od gornjeg-desnog položaja uzorka trenutnog bloka. Takođe, susedni blok F može predstavljati susedni blok koji se nalazi levo od donjeg-levog položaja uzorka trenutnog bloka; a susedni blok G može predstavljati susedni blok koji se nalazi dole levo od donjeg-levog položaja uzorka trenutnog bloka.
[0140] Na primer, ove tri grupe mogu da uključuju S0, S1, i S2, a S0, S1i S2mogu biti izvedene kao u sledećoj tabeli.
[Tabela 1]
S0= {mvA,mvB,mvC} S1= {mvD,mvE} S2= {mvF,mvG}
[0141] u kojoj mvApredstavlja vektor pokreta susednog bloka A; mvB, vektor pokreta susednog bloka B; mvC, vektor pokreta susednog bloka C; mvD, vektor pokreta susednog bloka D; mvE, vektor pokreta susednog bloka E; mvF, vektor pokreta susednog bloka F; i mvG, vektor pokreta susednog bloka G.
S0može biti predstavljen kao prva grupa; S1, kao druga grupa; a S2, kao treća grupa.
[0142] Uređaj za kodiranje/uređaj za dekodiranje može da izvede mv0iz S0, može da izvede mv1iz S1, može da izvede mv2iz S2, i može da izvede kandidat afine mvp koji uključuje mv0, mv1, i mv2. Kandidat afine mvp može da predstavlja konstruisani afini kandidat. Dodatno, mv0može biti CPMVP kandidat iz CP0; mv1, CPMVP kandidat iz CP1; i mv2, CPMVP kandidat iz CP2.
[0143] Ovde, referentna slika za mv0može biti ista kao referentna slika trenutnog bloka. To znači da mv0može biti vektor pokreta koji je prvi put potvrđen da zadovoljava uslov prilikom provere vektora pokreta u S0u određenom redosledu. Uslov može biti da referentna slika za vektor pokreta treba da bude ista kao referentna slika trenutnog bloka. Taj određeni redosled može biti sledeći: susedni blok A → susedni blok B → susedni blok C u S0. Dalje, to može biti izvedeno i u drugom redosledu osim prethodno navedenog, i ne mora biti ograničeno na dati primer.
[0144] Dalje, referentna slika za mv1može biti ista kao referentna slika trenutnog bloka. Odnosno, mv1može biti vektor pokreta za koji je prvo potvrđeno da ispunjava uslov dok se proveravaju vektori pokreta u S1prema konkretnom redosledu. Taj uslov može biti da bi referentna slika za vektor pokreta trebalo da bude ista kao referentna slika trenutnog bloka. Konkretan redosled može biti sledeći: susedni blok D → susedni blok E u S1. Dalje, može biti izvedena u drugom redosledu osim prethodno navedenog, i ne mora biti ograničena na dati primer.
[0145] Dalje, referentna slika za mv2može biti ista kao referentna slika trenutnog bloka. Odnosno, mv2može biti vektor pokreta za koji je prvo potvrđeno da ispunjava uslov dok se proveravaju vektori pokreta u S2prema konkretnom redosledu. Taj uslov može biti da bi referentna slika za vektor pokreta trebalo da bude ista kao referentna slika trenutnog bloka. Konkretan redosled može biti sledeći: susedni blok F → susedni blok G u S2. Dalje, može biti izveden po redosledu koji je drugačiji od prethodnog, i ne mora biti ograničen na prethodni primer.
[0146] U međuvremenu, kada su dostupni samo mv0i mv1, odnosno, kada su samo mv0i mv1izvedeni, mv2mogu biti izvedena kao sledeća jednačina.
u kojoj mv2<x>predstavlja x komponentu od mv2; mv2<y>, y komponentu od mv2; mv0<x>, x komponentu od
2
mv0; mv0<y>, y komponentu od mv0; mv1<x>, x komponentu od mv1; i mv1<y>, y komponentu od mv1. Dalje, w predstavlja širinu trenutnog bloka, a h predstavlja visinu trenutnog bloka.
[0147] U međuvremenu, kada su samo mv0i mv2izvedeni, mv1mogu biti izvedena kao sledeća jednačina.
u kojoj je mv1<x>predstavlja x komponentu od mv1; mv1<y>, y komponentu od mv1; mv0<x>, x komponentu od mv0; mv0<y>, y komponentu od mv0; mv2<x>, x komponentu od mv2; i mv2<y>, y komponentu od mv2. Dalje, w predstavlja širinu trenutnog bloka, a h predstavlja visinu trenutnog bloka.
[0148] Dalje, kada je broj dostupnih nasleđen afini kandidat i/ili konstruisani afini kandidat manji od dva, Amvp postupak konvencionalnog HEVC standarda može da se primenjuje na konstrukciju liste afine mvp. Odnosno, kada je broj dostupnog nasleđenog afinog kandidata i/ili konstruisanog afinog kandidata manji od dva, postupak konstruisanja mvp kandidata u konvencionalnom HEVC standardu može biti izveden.
[0149] U međuvremenu, dijagrami toka postupka primera konstruisanja prethodno pomenute liste afinog mvp su onakvi kako su opisani u nastavku.
[0150] FIG.13 ilustrativno predstavlja primer konstruisanja liste afine mvp.
[0151] Uz pozivanje na FIG.13, uređaj za kodiranje/uređaj za dekodiranje može da doda nasleđen kandidat na listu afine mvp trenutnog bloka (S1300). Nasleđeni kandidat može da predstavlja prethodno pomenutog nasleđenog afinog kandidata.
[0152] Konkretno, uređaj za kodiranje/uređaj za dekodiranje može da izvede najviše dva nasleđena afina kandidata iz susednih blokova trenutnog bloka. Ovde, susedni blokovi mogu da uključuju levi susedni blok A0, susedni blok A1 u donjem levom uglu, gornji susedni blok B0, susedni blok B1 u gornjem desnom uglu, i susedni blok B2 gornjeg levog ugla trenutnog bloka.
[0153] Na primer, uređaj za kodiranje/uređaj za dekodiranje može da izvede prvi kandidat afine mvp trenutnog bloka na osnovu prvog bloka u susednim blokovima. Ovde, prvi blok može da bude kodirana sa modelom afinog pokreta, a referentna slika prvog bloka može biti ista kao referentna slika trenutnog bloka. Odnosno, prvi blok može biti blok za koji je prvo potvrđeno da ispunjava uslov dok se proveravaju susedni blokovi prema konkretnom redosledu. Taj uslov može biti taj da je blok kodiran sa modelom afinog pokreta, i da je referentna slika bloka ista kao referentna slika trenutnog bloka.
[0154] U nastavku teksta, uređaj za kodiranje/uređaj za dekodiranje može da izvede drugi kandidat afine mvp trenutnog bloka na osnovu drugog bloka u susednim blokovima. Ovde, drugi blok može biti kodiran sa modelom afinog pokreta, a referentna slika drugog bloka može biti ista kao referentna slika trenutnog bloka. Odnosno, drugi blok može biti blok koji je bio drugi za koji je potvrđeno da ispunjava uslov dok se proveravaju susedni blokovi prema konkretnom redosledu. Taj uslov može biti taj da je blok kodiran sa modelom afinog pokreta, i da je referentna slika bloka ista kao referentna slika trenutnog bloka.
[0155] U međuvremenu, konkretan redosled može biti kao ovaj: levi susedni blok A0 → susedni blok u donjem levom uglu A1 → gornji susedni blok B0 → susedni blok u gornjem desnom uglu B1 → susedni blok u gornjem levom uglu B2. Dalje, može biti izveden po redosledu koji je drugačiji od prethodnog, i ne mora biti ograničen na prethodni primer.
[0156] Uređaj za kodiranje/uređaj za dekodiranje može da doda konstruisani kandidat listi afine mvp trenutnog bloka (S1310). Konstruisani kandidat može da predstavlja prethodni konstruisani afini kandidat. Konstruisani kandidat može biti predstavljen kao konstruisani kandidat afine mvp. Kada je broj dostupnih nasleđenih kandidata manji od dva, uređaj za kodiranje/uređaj za dekodiranje može da doda konstruisani kandidat listi afine mvp trenutnog bloka.
[0157] U međuvremenu, postupak izvođenja konstruisanog afinog kandidata može biti različit u zavisnosti od da li model afinog pokreta primenjen na trenutni blok predstavlja 6-afini model pokreta ili 4-afini model pokreta. Konkretan sadržaj za postupak izvođenja konstruisanog kandidata će biti opisan u nastavku.
[0158] Uređaj za kodiranje/uređaj za dekodiranje može da doda HEVC Amvp kandidat listi afine mvp trenutnog bloka (S 1320). Kada je broj dostupnog nasleđenog kandidata i/ili konstruisanog kandidata manji od dva, uređaj za kodiranje/uređaj za dekodiranje može da doda HEVC Amvp kandidat listi afine mvp trenutnog bloka. Odnosno, kada je broj dostupnog nasleđenog kandidata i/ili konstruisanog kandidata manji od dva, uređaj za kodiranje i/ili uređaj za dekodiranje može da izvede postupak konstruisanja mvp kandidata u konvencionalnom HEVC standardu.
[0159] U međuvremenu, postupak izvođenja konstruisanog kandidata može biti kao što sledi u nastavku.
[0160] Na primer, kada model afinog pokreta primenjen na trenutni blok predstavlja 6-afini model pokreta, konstruisani kandidat može biti izveden kao u primeru prikazanom na FIG.14.
[0161] FIG.14 predstavlja primer izvođenja konstruisanog kandidata.
[0162] Uz pozivanje na FIG.14, uređaj za kodiranje/uređaj za dekodiranje može da proveri mv0, mv1, i mv2za trenutni blok (S1400). Odnosno, uređaj za kodiranje/uređaj za dekodiranje može da određuje da li dostupni mv0, mv1, ili mv2postoje u susednim blokovima trenutnog bloka. Ovde, mv0može biti CPMVP kandidat iz CP0 trenutnog bloka; mv1, CPMVP kandidat iz CP1; i mv2, CPMVP kandidat iz CP2. Dalje, mv0, mv1, i mv2može biti predstavljen kao vektore pokreta kandidata iz CP-ova.
[0163] Na primer, uređaj za kodiranje/dekodiranje može da proveri vektore pokreta susednih blokova u prvoj grupi prema konkretnom redosledu, kako bi utvrdio da li ispunjavaju određeni uslov. Uređaj za kodiranje/dekodiranje može da izvede kao mv0vektor pokreta susednog bloka koji je prvi potvrđen da
2
ispunjava taj uslov tokom procesa provere. Drugim rečima, mv0može biti vektor pokreta koji je prvi potvrđen da ispunjava specifičan uslov dok se vektori pokreta u prvoj grupi proveravaju prema konkretnom redosledu. Kada vektori pokreta susednih blokova u prvoj grupi ne ispunjavaju specifičan uslov, moguće je da mv0ne postoji. Ovde, na primer, konkretan redosled može biti od susednog bloka A ka susednom bloku B, a zatim ka susednom bloku C u prvoj grupi. Dalje, na primer, specifičan uslov može biti da referentna slika za vektor pokreta susednog bloka treba da bude ista kao referentna slika trenutnog bloka.
[0164] Dalje, na primer, uređaj za kodiranje ili uređaj za dekodiranje može da proverava vektore pokreta susednih blokova u drugoj grupi prema konkretnom redosledu, kako bi utvrdio da li ispunjavaju određeni uslov. Uređaj za kodiranje ili dekodiranje može da izabere kao mv1vektor pokreta susednog bloka koji je prvi potvrđen da ispunjava taj uslov tokom procesa provere. Odnosno, mv1može biti vektor pokreta koji je prvi potvrđen da ispunjava određeni uslov dok se vektori pokreta u drugoj grupi proveravaju prema utvrđenom redosledu. Kada vektori pokreta susednih blokova u drugoj grupi ne ispunjavaju dati uslov, može se desiti da mv1ne postoji. Ovde, na primer, konkretan redosled može biti od susednog bloka D ka susednom bloku E u drugoj grupi. Dalje, na primer, konkretan uslov može biti da referentna slika za vektor pokreta susednog bloka treba da bude ista kao referentna slika trenutnog bloka.
[0165] Dalje, na primer, uređaj za kodiranje ili uređaj za dekodiranje može da proverava vektore pokreta susednih blokova u trećoj grupi prema konkretnom redosledu, kako bi utvrdio da li ispunjavaju određeni uslov. Uređaj za kodiranje ili dekodiranje može da izabere kao mv2vektor pokreta susednog bloka koji je prvi potvrđen da ispunjava taj uslov tokom procesa provere. Odnosno, mv2može biti vektor pokreta koji je prvi potvrđen da ispunjava specifičan uslov dok se vektori pokreta u trećoj grupi proveravaju prema utvrđenom redosledu. Kada vektori pokreta susednih blokova u trećoj grupi ne ispunjavaju dati uslov, može se desiti da mv2ne postoji. Ovde, na primer, konkretan redosled može biti od susednog bloka F ka susednom bloku G u trećoj grupi. Dalje, na primer, konkretan uslov može biti da referentna slika za vektor pokreta susednog bloka treba da bude ista kao referentna slika trenutnog bloka.
[0166] U međuvremenu, prva grupa može da uključuje vektor pokreta susednog bloka A, vektor pokreta susednog bloka B, i vektor pokreta susednog bloka C; druga grupa, vektor pokreta susednog bloka D, i vektor pokreta susednog bloka E; i treća grupa, vektor pokreta susednog bloka F, i vektor pokreta susednog bloka G. Susedni blok A može da predstavlja susedni blok lociran gore levo od gornjeg-levog položaja uzorka trenutnog bloka; susedni blok B, susedni blok lociran u gornjem delu položaja gornjeglevog uzorka trenutnog bloka; susedni blok C, susedni blok lociran levo od položaja gornjeg-levog uzorka trenutnog bloka; susedni blok D, susedni blok lociran u gornjem delu gornjeg-desnog položaja uzorka trenutnog bloka; susedni blok E, susedni blok lociran u gornjem delu gornjeg-desnog položaja uzorka
2
bloka; susedni blok F, susedni blok levo od položaja donjeg levog uzorka trenutnog bloka; i susedni blok G, susedni blok lociran u donjem delu levo od položaja uzorka dole-levo trenutnog bloka.
[0167] Kada su samo mv0i mv1za trenutni blok dostupni, odnosno, kada su samo mv0i mv1za trenutni blok izvedeni, uređaj za kodiranje/uređaj za dekodiranje može da izvede mv2za trenutni blok na osnovu prethodne jednačine 8 (S1410). Uređaj za kodiranje/uređaj za dekodiranje može da izvede
mv2supstituisanjem izvedenih mv0i mv1u prethodnoj jednačini 8.
[0168] Kada su samo mv0i mv2za trenutni blok dostupni, odnosno, kada su samo mv0i mv2za trenutni blok izvedeni, uređaj za kodiranje/uređaj za dekodiranje može da izvede mv1za trenutni blok na osnovu prethodne jednačine 9 (S1420). Uređaj za kodiranje/uređaj za dekodiranje može da izvede
mv1supstituisanjem izvedenih mv0i mv2u prethodnoj jednačini 9.
[0169] Uređaj za kodiranje/uređaj za dekodiranje može da izvede izvedene mv0, mv1i mv2kao konstruisani kandidat trenutnog bloka (S1430). Kada mv0, mv1i mv2dostupni, odnosno, kada mv0, mv1i mv2izvedeni na osnovu susedni blok trenutnog bloka, uređaj za kodiranje/uređaj za dekodiranje može da izvede izvedene mv0, mv1i mv2kao konstruisane kandidate trenutnog bloka.
[0170] Dalje, kada su samo mv0 i mv1 za trenutni blok dostupni, odnosno, kada su samo mv0 i mv1 za trenutni blok izvedeni, uređaj za kodiranje/uređaj za dekodiranje može da izvede kao konstruisani kandidat trenutnog bloka izvedene mv0, izvedene mv1, i mv2izvedene na osnovu prethodne jednačine 8.
[0171] Dalje, kada su samo mv0i mv2za trenutni blok dostupni, odnosno, kada su samo mv0i mv2za trenutni blok izvedeni, uređaj za kodiranje/uređaj za dekodiranje može da izvede kao konstruisani kandidat trenutnog bloka izvedene mv0, izvedene mv2, i mv1 izvedene na osnovu prethodne jednačine 9.
[0172] Dalje, na primer, kada model afinog pokreta primenjen na trenutni blok predstavlja 4-afini model pokreta, konstruisani kandidat može biti izveden kao u primeru prikazanom na FIG.15.
[0173] FIG.15 predstavlja primer izvođenja konstruisanog kandidata.
[0174] Uz pozivanje na FIG.15, uređaj za kodiranje/uređaj za dekodiranje može da proveri mv0, mv1, i mv2za trenutni blok (S1500). Odnosno, uređaj za kodiranje/uređaj za dekodiranje može da određuje da li dostupni mv0, mv1, ili mv2postoje u susednim blokovima trenutnog bloka. Ovde, mv0može biti CPMVP kandidat iz CP0 trenutnog bloka; mv1, CPMVP kandidat iz CP1; i mv2, CPMVP kandidat iz CP2.
[0175] Na primer, uređaj za kodiranje/uređaj za dekodiranje može da proverava vektore pokreta susednih blokova u prvoj grupi prema konkretnom redosledu kako bi utvrdio da li ispunjavaju određeni uslov. Uređaj za kodiranje/uređaj za dekodiranje može da izvede kao mv0vektor pokreta susednog bloka koji je prvi potvrđen da ispunjava uslov tokom postupka provere. Odnosno, mv0može biti vektor pokreta koji je prvi utvrđen da ispunjava konkretan uslov dok se proveravaju vektori pokreta u prvoj grupi prema konkretnom redosledu. Kada vektori pokreta susednih blokova u prvoj grupi ne ispunjavaju konkretan uslov, može da se desi da nema dostupnog mv0. Ovde, na primer, konkretan redosled može
2
biti onaj iz susednog bloka A do susednog bloka B, i zatim do susednog bloka C u prvoj grupi. Dalje, na primer, konkretan uslov može biti da je referentna slika za vektor pokreta susednog bloka trebalo bi da bude ista kao referentna slika trenutnog bloka.
[0176] Dalje, na primer, uređaj za kodiranje/uređaj za dekodiranje može da proverava vektore pokreta susednih blokova u drugoj grupi prema konkretnom redosledu kako bi utvrdio da li ispunjavaju određeni uslov. Uređaj za kodiranje/uređaj za dekodiranje može da izvede kao mv1vektor pokreta susednog bloka koji je prvi potvrđen da ispunjava uslov tokom postupka provere. Odnosno, mv1može biti vektor pokreta koji je prvi utvrđen da ispunjava konkretan uslov dok se proveravaju vektori pokreta u drugoj grupi prema konkretnom redosledu. Kada vektori pokreta susednih blokova u drugoj grupi ne ispunjavaju konkretan uslov, može da se desi da nema dostupnog mv1. Ovde, na primer, konkretan redosled može biti onaj iz susednog bloka D do susednog bloka E u drugoj grupi. Dalje, na primer, konkretan uslov može biti da je referentna slika za vektor pokreta susednog bloka trebalo bi da bude ista kao referentna slika trenutnog bloka.
[0177] Dalje, na primer, uređaj za kodiranje/uređaj za dekodiranje može da proverava vektore pokreta susednih blokova u trećoj grupi prema konkretnom redosledu kako bi utvrdio da li ispunjavaju određeni uslov. Uređaj za kodiranje/uređaj za dekodiranje može da izvede kao mv2vektor pokreta susednog bloka koji je prvi potvrđen da ispunjava uslov tokom postupka provere. Odnosno, mv2može biti vektor pokreta koji je prvi utvrđen da ispunjava konkretan uslov dok se proveravaju vektori pokreta u trećoj grupi prema konkretnom redosledu. Kada vektori pokreta susednih blokova u trećoj grupi ne ispunjavaju konkretan uslov, može da se desi da nema dostupnog mv2. Ovde, na primer, konkretan redosled može biti onaj iz susednog bloka F do susednog bloka G u trećoj grupi. Dalje, na primer, konkretan uslov može biti da je referentna slika za vektor pokreta susednog bloka trebalo bi da bude ista kao referentna slika trenutnog bloka.
[0178] U međuvremenu, prva grupa može da uključuje a vektor pokreta susednog bloka A, vektor pokreta susednog bloka B, i vektor pokreta susednog bloka C; druga grupa, vektor pokreta susednog bloka D, i vektor pokreta susednog bloka E; i treća grupa, vektor pokreta susednog bloka F, i vektor pokreta susednog bloka G. Susedni blok A može da predstavlja susedni blok lociran gore levo od gornjeglevog položaja uzorka trenutnog bloka; susedni blok B, susedni blok lociran u gornjem delu položaja gornjeg-levog uzorka trenutnog bloka; susedni blok C, susedni blok lociran levo od položaja gornjeglevog uzorka trenutnog bloka; susedni blok D, susedni blok lociran u gornjem delu gornjeg-desnog položaja uzorka trenutnog bloka; susedni blok E, susedni blok lociran u gornjem delu gornjeg-desnog položaja uzorka bloka; susedni blok F, susedni blok levo od položaja donjeg levog uzorka trenutnog bloka; i susedni blok G, susedni blok lociran u donjem delu levo od položaja uzorka dole-levo trenutnog bloka.
2
[0179] Kada su samo mv0i mv1za trenutni blok dostupni ili gde su mv0, mv1, i mv2za trenutni blok dostupni, odnosno, kada su samo mv0i mv1za trenutni blok izvedeni ili gde mv0, mv1, i mv2za trenutni blok izvedeni, uređaj za kodiranje/uređaj za dekodiranje može da izvede izvedene mv0i mv1kao konstruisani kandidat trenutnog bloka (S1510).
[0180] U međuvremenu, kada su samo mv0i mv2za trenutni blok dostupni, odnosno, kada su samo mv0i mv2za trenutni blok izvedeni, uređaj za kodiranje/uređaj za dekodiranje može da izvede mv1za trenutni blok na osnovu prethodne jednačine 9 (S1520). Uređaj za kodiranje/uređaj za dekodiranje može da izvede mv1supstituisanjem izvedenih mv0i mv2u prethodnoj jednačini 9.
[0181] Nakon ovoga, uređaj za kodiranje/uređaj za dekodiranje može da izvede izvedene mv0i mv1kao konstruisani kandidat trenutnog bloka (S1510).
[0182] U međuvremenu, ovo otkrivanje predlaže postupak izvođenja konstruisanog kandidata, koji je drugačiji od prethodno opisanog primera. Predloženi primer može da poboljša učinak kodiranja smanjenjem složenosti u poređenju sa prethodno opisanim primerom izvođenja konstruisanog kandidata. Predloženi primer je opisan u nastavku. Dalje, kada je broj dostupnih nasleđenih afinih kandidata manji od dva (odnosno, broj izvedenih nasleđenih afinih kandidata manji od dva), konstruisani afini kandidat može da se uzme u razmatranje.
[0183] Na primer, uređaj za kodiranje/uređaj za dekodiranje može da proveri mv0, mv1, i mv2za trenutni blok. Odnosno, uređaj za kodiranje/uređaj za dekodiranje može da određuje da li dostupni mv0, mv1, ili mv2postoje u susednim blokovima trenutnog bloka. Ovde, mv0može biti CPMVP kandidat iz CP0 trenutnog bloka; mv1, CPMVP kandidat iz CP1; i mv2, CPMVP kandidat iz CP2.
[0184] Konkretno, susedni blokovi trenutnog bloka mogu biti izvedeni u tri grupe, i susedni blokovi mogu da uključuju a susedni blok A, susedni blok B, susedni blok C, susedni blok D, susedni blok E, susedni blok F, i a susedni blok G. Prva grupa može da uključuje a vektor pokreta susednog bloka A, vektor pokreta susednog bloka B, i vektor pokreta susednog bloka C; druga grupa, vektor pokreta susednog bloka D, i vektor pokreta susednog bloka E; i treća grupa, vektor pokreta susednog bloka F, i vektor pokreta susednog bloka G. Susedni blok A može da predstavlja susedni blok lociran gore levo od gornjeg-levog položaja uzorka trenutnog bloka; susedni blok B, susedni blok lociran u gornjem delu položaja gornjeg-levog uzorka trenutnog bloka; susedni blok C, susedni blok lociran levo od položaja gornjeg-levog uzorka trenutnog bloka; susedni blok D, susedni blok lociran u gornjem delu gornjegdesnog položaja uzorka trenutnog bloka; susedni blok E, susedni blok lociran u gornjem delu gornjegdesnog položaja uzorka bloka; susedni blok F, susedni blok levo od položaja donjeg levog uzorka trenutnog bloka; i susedni blok G, susedni blok lociran u donjem delu levo od položaja uzorka dole-levo trenutnog bloka.
2
[0185] Uređaj za kodiranje/uređaj za dekodiranje može da određuje da li dostupni mv0postoji u prvoj grupi, može da određuje da li dostupni mv1postoji u drugoj grupi, i može da određuje da li dostupni mv2postoji u trećoj grupi.
[0186] Konkretno, uređaj za kodiranje/uređaj za dekodiranje može da proverava vektore pokreta susednih blokova u prvoj grupi prema konkretnom redosledu kako bi utvrdio da li ispunjavaju određeni uslov. Uređaj za kodiranje/uređaj za dekodiranje može da izvede kao mv0vektor pokreta susednog bloka koji je prvi potvrđen da ispunjava uslov tokom postupka provere. Odnosno, mv0može biti vektor pokreta koji je prvi utvrđen da ispunjava konkretan uslov dok se proveravaju vektori pokreta u prvoj grupi prema konkretnom redosledu. Kada vektori pokreta susednih blokova u prvoj grupi ne ispunjavaju konkretan uslov, može da se desi da nema dostupnog mv0. Ovde, na primer, konkretan redosled može biti onaj iz susednog bloka A do susednog bloka B, i zatim do susednog bloka C u prvoj grupi. Dalje, na primer, konkretan uslov može biti da je referentna slika za vektor pokreta susednog bloka trebalo bi da bude ista kao referentna slika trenutnog bloka.
[0187] Dalje, uređaj za kodiranje/uređaj za dekodiranje može da proverava vektore pokreta susednih blokova u drugoj grupi prema konkretnom redosledu kako bi utvrdio da li ispunjavaju određeni uslov. Uređaj za kodiranje/uređaj za dekodiranje može da izvede kao mv1vektor pokreta susednog bloka koji je prvi potvrđen da ispunjava uslov tokom postupka provere. Odnosno, mv1može biti vektor pokreta koji je prvi utvrđen da ispunjava konkretan uslov dok se proveravaju vektori pokreta u drugoj grupi prema konkretnom redosledu. Kada vektori pokreta susednih blokova u drugoj grupi ne ispunjavaju konkretan uslov, može da se desi da nema dostupnog mv1. Ovde, na primer, konkretan redosled može biti onaj iz susednog bloka D do susednog bloka E u drugoj grupi. Dalje, na primer, konkretan uslov može biti da je referentna slika za vektor pokreta susednog bloka trebalo bi da bude ista kao referentna slika trenutnog bloka.
[0188] Dalje, uređaj za kodiranje/uređaj za dekodiranje može da proverava vektore pokreta susednih blokova u trećoj grupi prema konkretnom redosledu kako bi utvrdio da li ispunjavaju određeni uslov. Uređaj za kodiranje/uređaj za dekodiranje može da izvede kao mv2vektor pokreta susednog bloka koji je prvi potvrđen da ispunjava uslov tokom postupka provere. Odnosno, mv2može biti vektor pokreta koji je prvi utvrđen da ispunjava konkretan uslov dok se proveravaju vektori pokreta u trećoj grupi prema konkretnom redosledu. Kada vektori pokreta susednih blokova u trećoj grupi ne ispunjavaju konkretan uslov, može da se desi da nema dostupnog mv2. Ovde, na primer, konkretan redosled može biti onaj iz susednog bloka F do susednog bloka G u trećoj grupi. Dalje, na primer, konkretan uslov može biti da je referentna slika za vektor pokreta susednog bloka trebalo bi da bude ista kao referentna slika trenutnog bloka.
[0189] Nakon ovoga, kada model afinog pokreta primenjen na trenutni blok predstavlja 4-afini model pokreta, i kada su mv0i mv1za trenutni blok dostupni, uređaj za kodiranje/uređaj za dekodiranje može da izvede izvedene mv0i mv1kao konstruisani kandidat trenutnog bloka. U međuvremenu, kada mv0i/ili mv1za trenutni blok jesu/nisu dostupni, odnosno, kada najmanje jedan od mv0i mv1nije izveden iz susednog bloka trenutnog bloka, uređaj za kodiranje/uređaj za dekodiranje može da ne doda konstruisani kandidat u listu afinih mvp kandidata trenutnog bloka.
[0190] Dalje, kada model afinog pokreta primenjen na trenutni blok predstavlja 6-afini model pokreta, i kada mv0, mv1i mv2za trenutni blok dostupni, uređaj za kodiranje/uređaj za dekodiranje može da izvede izvedene mv0, mv1, i mv2kao konstruisani kandidat trenutnog bloka. U međuvremenu, kada mv0, mv1i/ili mv2za trenutni blok jesu/nisu dostupni, odnosno, kada najmanje jedan od mv0, mv1i mv2nije izveden iz susednog bloka trenutnog bloka, uređaj za kodiranje/uređaj za dekodiranje može da ne doda konstruisani kandidat u listu afinih mvp kandidata trenutnog bloka.
[0191] Prethodno opisani predloženi primer predstavlja postupak koji se uzima u razmatranje kao konstruisani kandidat samo onda kada su svi vektori pokreta CP-ova za generisanje modela afinog pokreta trenutnog bloka. Ovde, značenje dostupnosti može da predstavlja da je referentna slika susednog bloka ista kao referentna slika trenutnog bloka. Odnosno, konstruisani kandidat može biti izveden samo kada među vektorima pokreta susednih blokova za odgovarajuće CP-ove trenutnog bloka, postoji vektor pokreta koji ispunjava ovaj uslov. Stoga, kada model afinog pokreta primenjen na trenutni blok predstavlja 4-afini model pokreta, i samo kada su MV iz CP0 i CP1 trenutnog bloka (odnosno, mv0i mv1) dostupni, konstruisani kandidat može da se uzme u razmatranje. Stoga, kada model afinog pokreta primenjen na trenutni blok predstavlja 6-afini model pokreta, i samo kada su MV iz CP0, CP1, i CP2 trenutnog bloka (odnosno, mv0, mv1, i mv2) dostupni, konstruisani kandidat može da se uzme u razmatranje. Stoga, prema predloženom primeru, može biti potrebe za dodatnom konstrukcijom izvođenja vektora pokreta za CP na osnovu jednačine 8 ili 9. Kroz ovo, moguće je da se smanji računarska složenost za izvođenje konstruisanog kandidata. Dalje, pošto se konstruisani kandidat određuje samo kada je CPMVP kandidat koji ima istu referentnu sliku dostupan, moguće je da se poboljša celokupni učinak kodiranja.
[0192] Prethodno opisani primer može biti predstavljen kao na FIG.16 i 17.
[0193] FIG.16 predstavlja primer izvođenja konstruisanog kandidata za 4-afini model pokreta koji se primenjuje na trenutni blok.
[0194] Uz pozivanje na FIG.16, uređaj za kodiranje/uređaj za dekodiranje može da određuje da li su mv0i mv1za trenutni blok dostupni (S1600). Odnosno, uređaj za kodiranje/uređaj za dekodiranje može da određuje da li dostupni mv0i mv1postoje u susednim blokovima trenutnog bloka. Ovde, mv0može biti CPMVP kandidat iz CP0 trenutnog bloka, i mv1može biti CPMVP kandidat iz CP1.
[0195] Uređaj za kodiranje/uređaj za dekodiranje može da određuje da li dostupni mv0postoji u prvoj grupi, i može da određuje da li dostupni mv1postoji u drugoj grupi.
1
[0196] Konkretno, susedni blokovi trenutnog bloka mogu biti izvedeni u tri grupe, i susedni blokovi mogu da uključuju a susedni blok A, susedni blok B, susedni blok C, susedni blok D, susedni blok E, susedni blok F, i a susedni blok G. Prva grupa može da uključuje a vektor pokreta susednog bloka A, vektor pokreta susednog bloka B, i vektor pokreta susednog bloka C; druga grupa, vektor pokreta susednog bloka D, i vektor pokreta susednog bloka E; i treća grupa, vektor pokreta susednog bloka F, i vektor pokreta susednog bloka G. Susedni blok A može da predstavlja susedni blok lociran gore levo od gornjeg-levog položaja uzorka trenutnog bloka; susedni blok B, susedni blok lociran u gornjem delu položaja gornjeg-levog uzorka trenutnog bloka; susedni blok C, susedni blok lociran levo od položaja gornjeg-levog uzorka trenutnog bloka; susedni blok D, susedni blok lociran u gornjem delu gornjegdesnog položaja uzorka trenutnog bloka; susedni blok E, susedni blok lociran u gornjem delu gornjegdesnog položaja uzorka bloka; susedni blok F, susedni blok levo od položaja donjeg levog uzorka trenutnog bloka; i susedni blok G, susedni blok lociran u donjem delu levo od položaja uzorka dole-levo trenutnog bloka.
[0197] Uređaj za kodiranje/uređaj za dekodiranje može da proverava vektore pokreta susednih blokova u prvoj grupi prema konkretnom redosledu kako bi utvrdio da li ispunjavaju određeni uslov. Uređaj za kodiranje/uređaj za dekodiranje može da izvede kao mv0vektor pokreta susednog bloka koji je prvi potvrđen da ispunjava uslov tokom postupka provere. Odnosno, mv0može biti vektor pokreta koji je prvi utvrđen da ispunjava konkretan uslov dok se proveravaju vektori pokreta u prvoj grupi prema konkretnom redosledu. Kada vektori pokreta susednih blokova u prvoj grupi ne ispunjavaju konkretan uslov, može da se desi da nema dostupnog mv0. Ovde, na primer, konkretan redosled može biti onaj iz susednog bloka A do susednog bloka B, i zatim do susednog bloka C u prvoj grupi. Dalje, na primer, konkretan uslov može biti da je referentna slika za vektor pokreta susednog bloka trebalo bi da bude ista kao referentna slika trenutnog bloka.
[0198] Dalje, uređaj za kodiranje/uređaj za dekodiranje može da proverava vektore pokreta susednih blokova u drugoj grupi prema konkretnom redosledu kako bi utvrdio da li ispunjavaju određeni uslov. Uređaj za kodiranje/uređaj za dekodiranje može da izvede kao mv1vektor pokreta susednog bloka koji je prvi potvrđen da ispunjava uslov tokom postupka provere. Odnosno, mv1može biti vektor pokreta koji je prvi utvrđen da ispunjava konkretan uslov dok se proveravaju vektori pokreta u drugoj grupi prema konkretnom redosledu. Kada vektori pokreta susednih blokova u drugoj grupi ne ispunjavaju konkretan uslov, može da se desi da nema dostupnog mv1. Ovde, na primer, konkretan redosled može biti onaj iz susednog bloka D do susednog bloka E u drugoj grupi. Dalje, na primer, konkretan uslov može biti da je referentna slika za vektor pokreta susednog bloka trebalo bi da bude ista kao referentna slika trenutnog bloka.
[0199] Kada mv0i mv1za trenutni blok dostupni, odnosno, kada mv0i mv1za trenutni blok izvedeni, uređaj za kodiranje/uređaj za dekodiranje može da izvede kao konstruisani kandidat trenutnog bloka
2
izvedene mv0i mv1(S1610). U međuvremenu, kada mv0i/ili mv1za trenutni blok jesu/nisu dostupni, odnosno, kada najmanje jedan od mv0i mv1nije izveden iz susednog bloka trenutnog bloka, uređaj za kodiranje/uređaj za dekodiranje može da ne doda konstruisani kandidat u listu afinih mvp kandidata trenutnog bloka.
[0200] FIG.17 predstavlja primer izvođenja konstruisanog kandidata za 6-afini model pokreta koji je primenjen na trenutni blok.
[0201] Uz pozivanje na FIG.17, uređaj za kodiranje/uređaj za dekodiranje može da određuje da li su mv0, mv1i mv2za trenutni blok dostupni (S1700). Odnosno, uređaj za kodiranje/uređaj za dekodiranje može da određuje da li dostupni mv0, mv1, ili mv2postoje u susednim blokovima trenutnog bloka. Ovde, mv0može biti CPMVP kandidat iz CP0 trenutnog bloka; mv1, CPMVP kandidat iz CP1; i mv2, CPMVP kandidat iz CP2.
[0202] Uređaj za kodiranje/uređaj za dekodiranje može da određuje da li dostupni mv0postoji u prvoj grupi, može da određuje da li dostupni mv1postoji u drugoj grupi, i može da određuje da li dostupni mv2postoji u trećoj grupi.
[0203] Konkretno, susedni blokovi trenutnog bloka mogu biti izvedeni u tri grupe, i susedni blokovi mogu da uključuju a susedni blok A, susedni blok B, susedni blok C, susedni blok D, susedni blok E, susedni blok F, i a susedni blok G. Prva grupa može da uključuje a vektor pokreta susednog bloka A, vektor pokreta susednog bloka B, i vektor pokreta susednog bloka C; druga grupa, vektor pokreta susednog bloka D, i vektor pokreta susednog bloka E; i treća grupa, vektor pokreta susednog bloka F, i vektor pokreta susednog bloka G. Susedni blok A može da predstavlja susedni blok lociran gore levo od gornjeg-levog položaja uzorka trenutnog bloka; susedni blok B, susedni blok lociran u gornjem delu položaja gornjeg-levog uzorka trenutnog bloka; susedni blok C, susedni blok lociran levo od položaja gornjeg-levog uzorka trenutnog bloka; susedni blok D, susedni blok lociran u gornjem delu gornjegdesnog položaja uzorka trenutnog bloka; susedni blok E, susedni blok lociran u gornjem delu gornjegdesnog položaja uzorka bloka; susedni blok F, susedni blok levo od položaja donjeg levog uzorka trenutnog bloka; i susedni blok G, susedni blok lociran u donjem delu levo od položaja uzorka dole-levo trenutnog bloka.
[0204] Uređaj za kodiranje/uređaj za dekodiranje može da proverava vektore pokreta susednih blokova u prvoj grupi prema konkretnom redosledu kako bi utvrdio da li ispunjavaju određeni uslov. Uređaj za kodiranje/uređaj za dekodiranje može da izvede kao mv0vektor pokreta susednog bloka koji je prvi potvrđen da ispunjava uslov tokom postupka provere. Odnosno, mv0može biti vektor pokreta koji je prvi utvrđen da ispunjava konkretan uslov dok se proveravaju vektori pokreta u prvoj grupi prema konkretnom redosledu. Kada vektori pokreta susednih blokova u prvoj grupi ne ispunjavaju konkretan uslov, može da se desi da nema dostupnog mv0. Ovde, na primer, konkretan redosled može biti onaj iz susednog bloka A do susednog bloka B, i zatim do susednog bloka C u prvoj grupi. Dalje, na primer, konkretan uslov može biti da je referentna slika za vektor pokreta susednog bloka trebalo bi da bude ista kao referentna slika trenutnog bloka.
[0205] Dalje, uređaj za kodiranje/uređaj za dekodiranje može da proverava vektore pokreta susednih blokova u drugoj grupi prema konkretnom redosledu kako bi utvrdio da li ispunjavaju određeni uslov. Uređaj za kodiranje/uređaj za dekodiranje može da izvede kao mv1vektor pokreta susednog bloka koji je prvi potvrđen da ispunjava uslov tokom postupka provere. Odnosno, mv1može biti vektor pokreta koji je prvi utvrđen da ispunjava konkretan uslov dok se proveravaju vektori pokreta u drugoj grupi prema konkretnom redosledu. Kada vektori pokreta susednih blokova u drugoj grupi ne ispunjavaju konkretan uslov, može da se desi da nema dostupnog mv1. Ovde, na primer, konkretan redosled može biti onaj iz susednog bloka D do susednog bloka E u drugoj grupi. Dalje, na primer, konkretan uslov može biti da je referentna slika za vektor pokreta susednog bloka trebalo bi da bude ista kao referentna slika trenutnog bloka.
[0206] Dalje, uređaj za kodiranje/uređaj za dekodiranje može da proverava vektore pokreta susednih blokova u trećoj grupi prema konkretnom redosledu kako bi utvrdio da li ispunjavaju određeni uslov. Uređaj za kodiranje/uređaj za dekodiranje može da izvede kao mv2vektor pokreta susednog bloka koji je prvi potvrđen da ispunjava uslov tokom postupka provere. Odnosno, mv2može biti vektor pokreta koji je prvi utvrđen da ispunjava konkretan uslov dok se proveravaju vektori pokreta u trećoj grupi prema konkretnom redosledu. Kada vektori pokreta susednih blokova u trećoj grupi ne ispunjavaju konkretan uslov, može da se desi da nema dostupnog mv2. Ovde, na primer, konkretan redosled može biti onaj iz susednog bloka F do susednog bloka G u trećoj grupi. Dalje, na primer, konkretan uslov može biti da je referentna slika za vektor pokreta susednog bloka trebalo bi da bude ista kao referentna slika trenutnog bloka.
[0207] Kada mv0, mv1, i mv2za trenutni blok dostupni, odnosno, kada mv0, mv1, i mv2za trenutni blok izvedeni, uređaj za kodiranje/uređaj za dekodiranje može da izvede izvedene mv0, mv1, i mv2kao konstruisani kandidat trenutnog bloka (S1710). U međuvremenu, kada mv0, mv1i/ili mv2za trenutni blok jesu/nisu dostupni, odnosno, kada najmanje jedan od mv0, mv1i mv2nije izveden iz susednog bloka trenutnog bloka, uređaj za kodiranje/uređaj za dekodiranje može da ne doda konstruisani kandidat u listu afinih mvp kandidata trenutnog bloka.
[0208] Dalje, ovo otkrivanje predlaže primer izvođenja konstruisanog kandidata kao što je opisano u nastavku. Konkretno, u primeru opisano u nastavku, CP-ovi za generisanje 4-afinog modela pokreta može biti adaptivno određen na osnovu širine i visine trenutnog bloka. Odnosno, kada model afinog pokreta primenjen na trenutni blok predstavlja 4-afini model pokreta, dva CP-a mogu biti izabrana od CP0, CP1 i CP2 trenutnog bloka na osnovu širine i visine trenutnog bloka.
[0209] Na primer, CP-ovi trenutnog bloka mogu biti izabrani kao što je u sledećoj tabeli.
4
[Tabela 2]
{CP0, CP1} ako je širina ≥ visina
{CP0, CP2} ako je širina < visina
[0210] Uz pozivanje na tabelu 2, kada je širina trenutnog bloka jednaka ili veća od njegove visine, CP-ovi modela afinog pokreta za trenutni blok mogu biti izabrani tako da budu CP0 i CP1. Dalje, kada je širina trenutnog bloka manja od njegove visine, CP-ovi modela afinog pokreta za trenutni blok mogu biti izabrani tako da budu CP0 i CP2.
[0211] FIG.18 predstavlja primer izvođenja konstruisanog kandidata uključujući CPMVP za CP-ove adaptivno izabrane na osnovu širine i visine trenutnog bloka.
[0212] Uz pozivanje na FIG.18, kada je 4-afini model pokreta primenjen na trenutni blok, uređaj za kodiranje/uređaj za dekodiranje može da određuje da li je širina trenutnog bloka jednaka ili veća od njegove visine (S1800). Kada je širina trenutnog bloka jednaka ili veća od njegove visine, uređaj za kodiranje/uređaj za dekodiranje može da izabere VP-ove modela afinog pokreta za trenutni blok da budu CP0 i CP1. Dalje, kada je širina trenutnog bloka manja od njegove visine, uređaj za kodiranje/uređaj za dekodiranje može da izabere VP-ove modela afinog pokreta za trenutni blok da budu CP0 i CP1.
[0213] Kada je širina trenutnog bloka jednaka ili veća od njegove visine, uređaj za kodiranje/uređaj za dekodiranje može da određuje da li su mv0i mv1za trenutni blok dostupni (S1810). Odnosno, uređaj za kodiranje/uređaj za dekodiranje može da određuje da li dostupni mv0i mv1postoje u susednim blokovima trenutnog bloka. Ovde, mv0može biti CPMVP kandidat iz CP0 trenutnog bloka, i mv1može biti CPMVP kandidat iz CP1.
[0214] Uređaj za kodiranje/uređaj za dekodiranje može da određuje da li dostupni mv0postoji u prvoj grupi, i može da određuje da li dostupni mv1postoji u drugoj grupi.
[0215] Konkretno, susedni blokovi trenutnog bloka mogu biti izvedeni u tri grupe, i susedni blokovi mogu da uključuju a susedni blok A, susedni blok B, susedni blok C, susedni blok D, susedni blok E, susedni blok F, i a susedni blok G. Prva grupa može da uključuje a vektor pokreta susednog bloka A, vektor pokreta susednog bloka B, i vektor pokreta susednog bloka C; druga grupa, vektor pokreta susednog bloka D, i vektor pokreta susednog bloka E; i treća grupa, vektor pokreta susednog bloka F, i vektor pokreta susednog bloka G. Susedni blok A može da predstavlja susedni blok lociran gore levo od gornjeg-levog položaja uzorka trenutnog bloka; susedni blok B, susedni blok lociran u gornjem delu položaja gornjeg-levog uzorka trenutnog bloka; susedni blok C, susedni blok lociran levo od položaja gornjeg-levog uzorka trenutnog bloka; susedni blok D, susedni blok lociran u gornjem delu gornjegdesnog položaja uzorka trenutnog bloka; susedni blok E, susedni blok lociran u gornjem delu gornjegdesnog položaja uzorka bloka; susedni blok F, susedni blok levo od položaja donjeg levog uzorka trenutnog bloka; i susedni blok G, susedni blok lociran u donjem delu levo od položaja uzorka dole-levo trenutnog bloka.
[0216] Uređaj za kodiranje/uređaj za dekodiranje može da proverava vektore pokreta susednih blokova u prvoj grupi prema konkretnom redosledu kako bi utvrdio da li ispunjavaju određeni uslov. Uređaj za kodiranje/uređaj za dekodiranje može da izvede kao mv0vektor pokreta susednog bloka koji je prvi potvrđen da ispunjava uslov tokom postupka provere. Odnosno, mv0može biti vektor pokreta koji je prvi utvrđen da ispunjava konkretan uslov dok se proveravaju vektori pokreta u prvoj grupi prema konkretnom redosledu. Kada vektori pokreta susednih blokova u prvoj grupi ne ispunjavaju konkretan uslov, može da se desi da nema dostupnog mv0. Ovde, na primer, konkretan redosled može biti onaj iz susednog bloka A do susednog bloka B, i zatim do susednog bloka C u prvoj grupi. Dalje, na primer, konkretan uslov može biti da je referentna slika za vektor pokreta susednog bloka trebalo bi da bude ista kao referentna slika trenutnog bloka.
[0217] Dalje, uređaj za kodiranje/uređaj za dekodiranje može da proverava vektore pokreta susednih blokova u drugoj grupi prema konkretnom redosledu kako bi utvrdio da li ispunjavaju određeni uslov. Uređaj za kodiranje/uređaj za dekodiranje može da izvede kao mv1vektor pokreta susednog bloka koji je prvi potvrđen da ispunjava uslov tokom postupka provere. Odnosno, mv1može biti vektor pokreta koji je prvi utvrđen da ispunjava konkretan uslov dok se proveravaju vektori pokreta u drugoj grupi prema konkretnom redosledu. Kada vektori pokreta susednih blokova u drugoj grupi ne ispunjavaju konkretan uslov, može da se desi da nema dostupnog mv1. Ovde, na primer, konkretan redosled može biti onaj iz susednog bloka D do susednog bloka E u drugoj grupi. Dalje, na primer, konkretan uslov može biti da je referentna slika za vektor pokreta susednog bloka trebalo bi da bude ista kao referentna slika trenutnog bloka.
[0218] U međuvremenu, kada je širina trenutnog bloka manja od njegove visine, može biti određeno da li su mv0i mv2za trenutni blok dostupni (S 1820). Odnosno, uređaj za kodiranje/uređaj za dekodiranje može da određuje da li dostupni mv0i mv2postoje u susednim blokovima trenutnog bloka. Ovde, mv0može biti CPMVP kandidat iz CP0 trenutnog bloka, i mv2može biti CPMVP kandidat iz CP2.
[0219] Uređaj za kodiranje/uređaj za dekodiranje može da određuje da li dostupni mv0postoji u prvoj grupi, i može da određuje da li dostupni mv2postoji u trećoj grupi.
[0220] Konkretno, susedni blokovi trenutnog bloka mogu biti izvedeni u tri grupe, i susedni blokovi mogu da uključuju susedni blok A, susedni blok B, susedni blok C, susedni blok D, susedni blok E, susedni blok F, i susedni blok G. Prva grupa može da uključuje a vektor pokreta susednog bloka A, vektor pokreta susednog bloka B, i vektor pokreta susednog bloka C; druga grupa, vektor pokreta susednog bloka D, i vektor pokreta susednog bloka E; i treća grupa, vektor pokreta susednog bloka F, i vektor pokreta susednog bloka G. Susedni blok A može da predstavlja susedni blok lociran gore levo od gornjeg-levog položaja uzorka trenutnog bloka; susedni blok B, susedni blok lociran u gornjem delu položaja gornjeglevog uzorka trenutnog bloka; susedni blok C, susedni blok lociran levo od položaja gornjeg-levog uzorka trenutnog bloka; susedni blok D, susedni blok lociran u gornjem delu gornjeg-desnog položaja uzorka trenutnog bloka; susedni blok E, susedni blok lociran u gornjem delu gornjeg-desnog položaja uzorka bloka; susedni blok F, susedni blok levo od položaja donjeg levog uzorka trenutnog bloka; i susedni blok G, susedni blok lociran u donjem delu levo od položaja uzorka dole-levo trenutnog bloka.
[0221] Uređaj za kodiranje/uređaj za dekodiranje može da proverava vektore pokreta susednih blokova u prvoj grupi prema konkretnom redosledu kako bi utvrdio da li ispunjavaju određeni uslov. Uređaj za kodiranje/uređaj za dekodiranje može da izvede kao mv0vektor pokreta susednog bloka koji je prvi potvrđen da ispunjava uslov tokom postupka provere. Odnosno, mv0može biti vektor pokreta koji je prvi utvrđen da ispunjava konkretan uslov dok se proveravaju vektori pokreta u prvoj grupi prema konkretnom redosledu. Kada vektori pokreta susednih blokova u prvoj grupi ne ispunjavaju konkretan uslov, može da se desi da nema dostupnog mv0. Ovde, na primer, konkretan redosled može biti onaj iz susednog bloka A do susednog bloka B, i zatim do susednog bloka C u prvoj grupi. Dalje, na primer, konkretan uslov može biti da je referentna slika za vektor pokreta susednog bloka trebalo bi da bude ista kao referentna slika trenutnog bloka.
[0222] Dalje, uređaj za kodiranje/uređaj za dekodiranje može da proverava vektore pokreta susednih blokova u trećoj grupi prema konkretnom redosledu kako bi utvrdio da li ispunjavaju određeni uslov. Uređaj za kodiranje/uređaj za dekodiranje može da izvede kao mv2vektor pokreta susednog bloka koji je prvi potvrđen da ispunjava uslov tokom postupka provere. Odnosno, mv2može biti vektor pokreta koji je prvi utvrđen da ispunjava konkretan uslov dok se proveravaju vektori pokreta u trećoj grupi prema konkretnom redosledu. Kada vektori pokreta susednih blokova u trećoj grupi ne ispunjavaju konkretan uslov, može da se desi da nema dostupnog mv2. Ovde, na primer, konkretan redosled može biti onaj iz susednog bloka F do susednog bloka G u trećoj grupi. Dalje, na primer, konkretan uslov može biti da je referentna slika za vektor pokreta susednog bloka trebalo bi da bude ista kao referentna slika trenutnog bloka.
[0223] Uređaj za kodiranje/uređaj za dekodiranje može da odredi konstruisani kandidat trenutnog bloka na osnovu izvedene vektori pokreta (S1830). Na primer, kada mv0za CP0 i mv1za CP1 izvedeni, uređaj za kodiranje/uređaj za dekodiranje može da odredi mv0i mv1kao konstruisani kandidat. Dalje, na primer, kada mv0za CP0 i mv2za CP2 izvedeni, uređaj za kodiranje/uređaj za dekodiranje može da odredi mv0i mv2kao konstruisani kandidat.
[0224] U međuvremenu, kada je 6-afini model pokreta primenjen na trenutni blok, i kada CPMVP za CP0, CP1, i CP2 (odnosno, mv0, mv1, mv2) su dostupni, konstruisani kandidat može da se uzme u razmatranje.
[0225] Dalje, ovo otkrivanje predlaže primer izvođenja konstruisanog kandidata kao što je opisano u nastavku. Konkretno, primer koji će biti opisan u nastavku može biti primenjen u izvođenju konstruisanog kandidata trenutnog bloka kada se postupak adaptivnog biranja CP ne uzima u obzir.
[0226] FIG.19 predstavlja primer izvođenja konstruisanog kandidata trenutnog bloka.
[0227] Uređaj za kodiranje/uređaj za dekodiranje može da određuje da li su mv0i mv1za trenutni blok dostupni (S1900). Kada 4-afini model pokreta je primenjen na trenutni blok, uređaj za kodiranje/uređaj za dekodiranje može da određuje da li dostupni mv0i mv1postoje u susednim blokovima trenutnog bloka. Ovde, mv0može biti CPMVP kandidat iz CP0 trenutnog bloka, i mv1može biti CPMVP kandidat iz CP1.
[0228] Uređaj za kodiranje/uređaj za dekodiranje može da određuje da li dostupni mv0postoji u prvoj grupi, i može da određuje da li dostupni mv1postoji u drugoj grupi.
[0229] Konkretno, susedni blokovi trenutnog bloka mogu biti izvedeni u tri grupe, i susedni blokovi mogu da uključuju a susedni blok A, susedni blok B, susedni blok C, susedni blok D, susedni blok E, susedni blok F, i a susedni blok G. Prva grupa može da uključuje a vektor pokreta susednog bloka A, vektor pokreta susednog bloka B, i vektor pokreta susednog bloka C; druga grupa, vektor pokreta susednog bloka D, i vektor pokreta susednog bloka E; i treća grupa, vektor pokreta susednog bloka F, i vektor pokreta susednog bloka G. Susedni blok A može da predstavlja susedni blok lociran gore levo od gornjeg-levog položaja uzorka trenutnog bloka; susedni blok B, susedni blok lociran u gornjem delu položaja gornjeg-levog uzorka trenutnog bloka; susedni blok C, susedni blok lociran levo od položaja gornjeg-levog uzorka trenutnog bloka; susedni blok D, susedni blok lociran u gornjem delu gornjegdesnog položaja uzorka trenutnog bloka; susedni blok E, susedni blok lociran u gornjem delu gornjegdesnog položaja uzorka bloka; susedni blok F, susedni blok levo od položaja donjeg levog uzorka trenutnog bloka; i susedni blok G, susedni blok lociran u donjem delu levo od položaja uzorka dole-levo trenutnog bloka.
[0230] Uređaj za kodiranje/uređaj za dekodiranje može da proverava vektore pokreta susednih blokova u prvoj grupi prema konkretnom redosledu kako bi utvrdio da li ispunjavaju određeni uslov. Uređaj za kodiranje/uređaj za dekodiranje može da izvede kao mv0vektor pokreta susednog bloka koji je prvi potvrđen da ispunjava uslov tokom postupka provere. Odnosno, mv0može biti vektor pokreta koji je prvi utvrđen da ispunjava konkretan uslov dok se proveravaju vektori pokreta u prvoj grupi prema konkretnom redosledu. Kada vektori pokreta susednih blokova u prvoj grupi ne ispunjavaju konkretan uslov, može da se desi da nema dostupnog mv0. Ovde, na primer, konkretan redosled može biti onaj iz susednog bloka A do susednog bloka B, i zatim do susednog bloka C u prvoj grupi. Dalje, na primer, konkretan uslov može biti da je referentna slika za vektor pokreta susednog bloka trebalo bi da bude ista kao referentna slika trenutnog bloka.
[0231] Dalje, uređaj za kodiranje/uređaj za dekodiranje može da proverava vektore pokreta susednih blokova u drugoj grupi prema konkretnom redosledu kako bi utvrdio da li ispunjavaju određeni uslov. Uređaj za kodiranje/uređaj za dekodiranje može da izvede kao mv1vektor pokreta susednog bloka koji je prvi potvrđen da ispunjava uslov tokom postupka provere. Odnosno, mv1može biti vektor pokreta koji je prvi utvrđen da ispunjava konkretan uslov dok se proveravaju vektori pokreta u drugoj grupi prema konkretnom redosledu. Kada vektori pokreta susednih blokova u drugoj grupi ne ispunjavaju konkretan uslov, može da se desi da nema dostupnog mv1. Ovde, na primer, konkretan redosled može biti onaj iz susednog bloka D do susednog bloka E u drugoj grupi. Dalje, na primer, konkretan uslov može biti da je referentna slika za vektor pokreta susednog bloka trebalo bi da bude ista kao referentna slika trenutnog bloka.
[0232] Kada mv0i/ili mv1za trenutni blok jesu/nisu dostupni, odnosno, kada najmanje jedan od mv0i mv1nije izveden iz susednog bloka trenutnog bloka, uređaj za kodiranje/uređaj za dekodiranje može da određuje da li su mv0i mv2za trenutni blok dostupni, i da li je širina trenutnog bloka manje od njegove visine (S1910).
[0233] Na primer, uređaj za kodiranje/uređaj za dekodiranje može da određuje da li dostupni mv0postoji u prvoj grupi, i može da određuje da li dostupni mv2postoji u trećoj grupi. Ovde, mv0može biti CPMVP kandidat iz CP0 trenutnog bloka, i mv2može biti CPMVP kandidat iz CP2.
[0234] Konkretno, susedni blokovi trenutnog bloka mogu biti izvedeni u tri grupe, i susedni blokovi mogu da uključuju a susedni blok A, susedni blok B, susedni blok C, susedni blok D, susedni blok E, susedni blok F, i a susedni blok G. Prva grupa može da uključuje a vektor pokreta susednog bloka A, vektor pokreta susednog bloka B, i vektor pokreta susednog bloka C; druga grupa, vektor pokreta susednog bloka D, i vektor pokreta susednog bloka E; i treća grupa, vektor pokreta susednog bloka F, i vektor pokreta susednog bloka G. Susedni blok A može da predstavlja susedni blok lociran gore levo od gornjeg-levog položaja uzorka trenutnog bloka; susedni blok B, susedni blok lociran u gornjem delu položaja gornjeg-levog uzorka trenutnog bloka; susedni blok C, susedni blok lociran levo od položaja gornjeg-levog uzorka trenutnog bloka; susedni blok D, susedni blok lociran u gornjem delu gornjegdesnog položaja uzorka trenutnog bloka; susedni blok E, susedni blok lociran u gornjem delu gornjegdesnog položaja uzorka bloka; susedni blok F, susedni blok levo od položaja donjeg levog uzorka trenutnog bloka; i susedni blok G, susedni blok lociran u donjem delu levo od položaja uzorka dole-levo trenutnog bloka.
[0235] Uređaj za kodiranje/uređaj za dekodiranje može da proverava vektore pokreta susednih blokova u prvoj grupi prema konkretnom redosledu kako bi utvrdio da li ispunjavaju određeni uslov. Uređaj za kodiranje/uređaj za dekodiranje može da izvede kao mv0vektor pokreta susednog bloka koji je prvi potvrđen da ispunjava uslov tokom postupka provere. Odnosno, mv0može biti vektor pokreta koji je prvi utvrđen da ispunjava konkretan uslov dok se proveravaju vektori pokreta u prvoj grupi prema konkretnom redosledu. Kada vektori pokreta susednih blokova u prvoj grupi ne ispunjavaju konkretan uslov, može da se desi da nema dostupnog mv0. Ovde, na primer, konkretan redosled može biti onaj iz susednog bloka A do susednog bloka B, i zatim do susednog bloka C u prvoj grupi. Dalje, na primer, konkretan uslov može biti da je referentna slika za vektor pokreta susednog bloka trebalo bi da bude ista kao referentna slika trenutnog bloka.
[0236] Dalje, uređaj za kodiranje/uređaj za dekodiranje može da proverava vektore pokreta susednih blokova u trećoj grupi prema konkretnom redosledu kako bi utvrdio da li ispunjavaju određeni uslov. Uređaj za kodiranje/uređaj za dekodiranje može da izvede kao mv2vektor pokreta susednog bloka koji je prvi potvrđen da ispunjava uslov tokom postupka provere. Odnosno, mv2može biti vektor pokreta koji je prvi utvrđen da ispunjava konkretan uslov dok se proveravaju vektori pokreta u trećoj grupi prema konkretnom redosledu. Kada vektori pokreta susednih blokova u trećoj grupi ne ispunjavaju konkretan uslov, može da se desi da nema dostupnog mv2. Ovde, na primer, konkretan redosled može biti onaj iz susednog bloka F do susednog bloka G u trećoj grupi. Dalje, na primer, konkretan uslov može biti da je referentna slika za vektor pokreta susednog bloka trebalo bi da bude ista kao referentna slika trenutnog bloka.
[0237] Dalje, uređaj za kodiranje/uređaj za dekodiranje može da određuje da li je širina trenutnog bloka manja od njegove visine.
[0238] Kada su mv0i mv2za trenutni blok dostupni, i kada je širina trenutnog bloka manja od njegove visine, uređaj za kodiranje/uređaj za dekodiranje može da izvede mv1za trenutni blok na osnovu prethodne jednačine 9 (S1920). Kada mv0i mv2za trenutni blok dostupni, i kada je širina trenutnog bloka manja od njegove visine, uređaj za kodiranje/uređaj za dekodiranje može da izvede mv1supstituisanjem izvedenih vm0 i mv2u prethodnoj jednačini 9. U međuvremenu, kada najmanje jedan od mv0i mv2za trenutni blok nije dostupan, ili gde je širina trenutnog bloka manja od visine trenutnog bloka, konstruisani kandidat trenutnog bloka možda neće biti izveden.
[0239] Nakon ovoga, uređaj za kodiranje/uređaj za dekodiranje može da izvede izvedene mv0i mv1kao konstruisani kandidat trenutnog bloka (S1930).
[0240] FIG.20 šematski predstavlja postupak za kodiranje slike uređajem za kodiranje prema ovom otkrivanju. Postupak otkriven na FIG.20 može biti izvedena uređajem za kodiranje otkrivenim na FIG.1. Konkretno, na primer, S2000 do S2030 sa FIG.20 može biti izvedeno prediktorom uređaja za kodiranje, i S2040 može biti izvedeno entropijskim koderom uređaja za kodiranje. Dalje, mada nije prikazano, postupak izvođenja predikcionih uzoraka za trenutni blok na osnovu CPMV može biti izveden prediktorom uređaja za kodiranje; taj postupak izvođenja preostalog uzorka za trenutni blok na osnovu predikcionog uzorka i originalnog uzorka za trenutni blok, oduzimačem uređaja za kodiranje; postupak generisanja informacija o preostalom trenutnom bloku za trenutni blok na osnovu preostalog uzorka, transformatorom uređaja za kodiranje; i postupak kodiranja informacija o ostatku, entropijskim koderom uređaja za kodiranje.
[0241] Uređaj za kodiranje konstruiše listu kandidata afinog prediktora vektora pokreta (mvp) za trenutni blok (S2000). Uređaj za kodiranje može da konstruiše listu kandidata afine mvp uključujući
4
kandidat afine mvp za trenutni blok.
[0242] Kao jedan primer, kada konstruisani kandidat afine mvp je dostupan, lista kandidata afine mvp može da uključuje konstruisani kandidat afine mvp. Ovde, konstruisani kandidat afine mvp može da uključuje vektore pokreta kandidata za CP-ove. Konstruisani kandidat afine mvp može biti dostupan kada su svi vektori pokreta kandidata dostupni.
[0243] Na primer, kada je primenjen 4-afini model pokreta na trenutni blok, CP-ovi trenutnog bloka mogu da uključuju CP0 i CP1. Kada je vektor pokreta za CP0 dostupan i vektor pokreta za CP1 je dostupan, konstruisani kandidat afine mvp može biti dostupan, i lista kandidata afine mvp može da uključuje konstruisani kandidat afine mvp. Ovde, CP0 može da predstavlja gornji-levi položaj trenutnog bloka, i CP1 može da predstavlja gornji-desni položaj trenutnog bloka.
[0244] Konstruisani kandidat afine mvp može da uključuje vektor pokreta kandidata za CP0 i vektor pokreta kandidata za CP1. Vektor pokreta kandidata za CP0 može biti vektor pokreta prvog bloka, i vektor pokreta kandidata za CP1 može biti vektor pokreta drugog bloka.
[0245] Dalje, prvi blok može biti blok koji je prvi potvrđen dok se proveravaju susedni blokovi u prvoj grupi prema prvom konkretnom redosledu tako da referentna slika tog bloka bude ista kao referentna slika trenutnog bloka. Ovde, kada referentna slika prvog bloka u prvoj grupi ista kao referentna slika trenutnog bloka, vektor pokreta kandidata za CP0 može biti dostupan. Dalje, na primer, prva grupa može da uključuje susedni blok A, susedni blok B, i susedni blok C, i prvi konkretan redosled može biti redosled iz susednog bloka A do susednog bloka B, i zatim do susednog bloka C.
[0246] Dalje, drugi blok može biti blok koji je prvi potvrđen dok se proveravaju susedni blokovi u drugoj grupi prema drugom konkretnom redosledu tako da referentna slika tog bloka bude ista kao referentna slika trenutnog bloka. Ovde, kada referentna slika drugog bloka u drugoj grupi ista kao referentna slika trenutnog bloka, vektor pokreta kandidata za CP1 može biti dostupan. Dalje, na primer, druga grupa može da uključuje susedni blok D i susedni blok E, i drugi konkretan redosled može biti prema redosledu iz susednog bloka D do susednog bloka E.
[0247] U međuvremenu, ako je veličina trenutnog bloka WxH, i x komponenta gornjeg-levog položaja uzorka trenutnog bloka je 0 i njegova y komponenta je 0, susedni blok A može biti blok koji uključuje uzorak na koordinatama (-1, -1); susedni blok B, blok koji uključuje uzorak na koordinatama (0, -1); susedni blok C, blok koji uključuje uzorak na koordinatama (-1, 0); susedni blok D, blok koji uključuje uzorak na koordinatama (W-1, -1); i susedni blok E, blok koji uključuje uzorak na koordinatama (W, -1). Odnosno, susedni blok A može biti susedni blok u gornjem levom uglu trenutnog bloka; susedni blok B, gornji susedni blok među gornjim susednim blokovima trenutnog bloka, koji je lociran krajnje levo; susedni blok C, levi susedni blok među levim susednim blokovima trenutnog bloka, koji je lociran krajnje u gornjem delu; susedni blok D, gornji susedni blok među gornjim susednim blokovima trenutnog bloka, koji je lociran krajnje desno; i susedni blok E, susedni blok u gornjem desnom uglu trenutnog bloka.
[0248] U međuvremenu, kada najmanje jedan od vektora pokreta kandidata CP0 i vektora pokreta kandidata CP1 nije dostupan, konstruisani kandidat afine mvp možda nije dostupan.
[0249] Alternativno, na primer, kada je 6-afini model pokreta primenjen na trenutni blok, CP-ovi trenutnog bloka mogu da uključuju CP0, CP1 i CP2. Kada je vektor pokreta za CP0 dostupan i vektor pokreta za CP1 je dostupan i vektor pokreta za CP2 je dostupan, konstruisani kandidat afine mvp može biti dostupan, i lista kandidata afine mvp može da uključuje konstruisani kandidat afine mvp. Ovde, CP0 može da predstavlja gornji-levi položaj trenutnog bloka; CP1, gornji-desni položaj trenutnog bloka; i CP2, donji-levi položaj trenutnog bloka.
[0250] Konstruisani kandidat afine mvp može da uključuje vektor pokreta kandidata za CP0, vektor pokreta kandidata za CP1, i vektor pokreta kandidata za CP2. Vektor pokreta kandidata za CP0 može biti vektor pokreta prvog bloka; vektor pokreta kandidata za CP1, vektor pokreta drugog bloka; i vektor pokreta kandidata za CP2, vektor pokreta trećeg bloka.
[0251] Dalje, prvi blok može biti blok koji je prvi potvrđen dok se proveravaju susedni blokovi u prvoj grupi prema prvom konkretnom redosledu tako da referentna slika tog bloka bude ista kao referentna slika trenutnog bloka. Ovde, kada referentna slika prvog bloka u prvoj grupi ista kao referentna slika trenutnog bloka, vektor pokreta kandidata za CP0 može biti dostupan. Dalje, na primer, prva grupa može da uključuje susedni blok A, susedni blok B, i susedni blok C, i prvi konkretan redosled može biti redosled iz susednog bloka A do susednog bloka B, i zatim do susednog bloka C.
[0252] Dalje, drugi blok može biti blok koji je prvi potvrđen dok se proveravaju susedni blokovi u drugoj grupi prema drugom konkretnom redosledu tako da referentna slika tog bloka bude ista kao referentna slika trenutnog bloka. Ovde, kada referentna slika drugog bloka u drugoj grupi ista kao referentna slika trenutnog bloka, vektor pokreta kandidata za CP1 može biti dostupan. Dalje, na primer, druga grupa može da uključuje susedni blok D i susedni blok E, i drugi konkretan redosled može biti prema redosledu iz susednog bloka D do susednog bloka E.
[0253] Dalje, treći blok može biti blok koji je prvi potvrđen dok se proveravaju susedni blokovi u trećoj grupi prema trećem konkretnom redosledu tako da referentna slika tog bloka bude ista kao referentna slika trenutnog bloka. Ovde, kada referentna slika trećeg bloka u trećoj grupi ista kao referentna slika trenutnog bloka, vektor pokreta kandidata za CP2 može biti dostupan. Dalje, na primer, treća grupa može da uključuje susedni blok F, i susedni blok G, i treći konkretan redosled može biti prema redosledu iz susednog bloka F do susednog bloka G.
[0254] U međuvremenu, ako je veličina trenutnog bloka WxH, i x komponenta gornjeg-levog položaja uzorka trenutnog bloka je 0 i njegova y komponenta je 0, susedni blok A može biti blok koji uključuje uzorak na koordinatama (-1, -1); susedni blok B, blok koji uključuje uzorak na koordinatama (0, -1); susedni blok C, blok koji uključuje uzorak na koordinatama (-1, 0); susedni blok D, blok koji uključuje uzorak na koordinatama (W-1, -1); susedni blok E, blok koji uključuje uzorak na koordinatama (W, -1); susedni blok F, blok koji uključuje uzorak na koordinatama (-1, H-1); i susedni blok G, blok koji uključuje uzorak na koordinatama (-1, H). Odnosno, susedni blok A može biti susedni blok u gornjem levom uglu trenutnog bloka; susedni blok B, gornji susedni blok među gornjim susednim blokovima trenutnog bloka, koji je lociran krajnje levo; susedni blok C, levi susedni blok među levim susednim blokovima trenutnog bloka, koji je lociran krajnje u gornjem delu; susedni blok D, gornji susedni blok među gornjim susednim blokovima trenutnog bloka, koji je lociran krajnje desno; susedni blok E, susedni blok u gornjem desnom uglu trenutnog bloka; susedni blok F, levi susedni blok među levim susednim blokovima trenutnog bloka, koji je lociran krajnje nisko; i susedni blok G, susedni blok u donjem levom uglu trenutnog bloka.
[0255] U međuvremenu, kada najmanje jedan od vektora pokreta kandidata CP0, vektor pokreta kandidata CP1, i vektor pokreta kandidataCP2 nije dostupan, konstruisani kandidat afine mvp možda nije dostupan.
[0256] Dalje, na primer, kada je 4-afini model pokreta primenjen na trenutni blok, CP-ovi mogu biti izabrani na osnovu širine i visine trenutnog bloka, i konstruisani kandidat afine mvp može da uključuje vektore pokreta kandidata za izabrane CP-ove.
[0257] Na primer, kada je širina trenutnog bloka jednaka ili veća od njegove visine, CP-ovi trenutnog bloka mogu da uključuju CP0 i CP1. Kada je vektor pokreta za CP0 dostupan i vektor pokreta za CP1 je dostupan, konstruisani kandidat afine mvp može biti dostupan, i lista kandidata afine mvp može da uključuje konstruisani kandidat afine mvp. Ovde, CP0 može da predstavlja gornji-levi položaj trenutnog bloka, i CP1 može da predstavlja gornji-desni položaj trenutnog bloka.
[0258] Konstruisani kandidat afine mvp može da uključuje vektor pokreta kandidata za CP0 i vektor pokreta kandidata za CP1. Vektor pokreta kandidata za CP0 može biti vektor pokreta prvog bloka, i vektor pokreta kandidata za CP1 može biti vektor pokreta drugog bloka.
[0259] Dalje, prvi blok može biti blok koji je prvi potvrđen dok se proveravaju susedni blokovi u prvoj grupi prema prvom konkretnom redosledu tako da referentna slika tog bloka bude ista kao referentna slika trenutnog bloka. Ovde, kada referentna slika prvog bloka u prvoj grupi ista kao referentna slika trenutnog bloka, vektor pokreta kandidata za CP0 može biti dostupan. Dalje, na primer, prva grupa može da uključuje susedni blok A, susedni blok B, i susedni blok C, i prvi konkretan redosled može biti redosled iz susednog bloka A do susednog bloka B, i zatim do susednog bloka C.
[0260] Dalje, drugi blok može biti blok koji je prvi potvrđen dok se proveravaju susedni blokovi u drugoj grupi prema drugom konkretnom redosledu tako da referentna slika tog bloka bude ista kao referentna slika trenutnog bloka. Ovde, kada referentna slika drugog bloka u drugoj grupi ista kao referentna slika trenutnog bloka, vektor pokreta kandidata za CP1 može biti dostupan. Dalje, na primer, druga grupa može da uključuje susedni blok D i susedni blok E, i drugi konkretan redosled može biti prema redosledu iz susednog bloka D do susednog bloka E.
[0261] U međuvremenu, ako je veličina trenutnog bloka WxH, i x komponenta gornjeg-levog položaja
4
uzorka trenutnog bloka je 0 i njegova y komponenta je 0, susedni blok A može biti blok koji uključuje uzorak na koordinatama (-1, -1); susedni blok B, blok koji uključuje uzorak na koordinatama (0, -1); susedni blok C, blok koji uključuje uzorak na koordinatama (-1, 0); susedni blok D, blok koji uključuje uzorak na koordinatama (W-1, -1); i susedni blok E, blok koji uključuje uzorak na koordinatama (W, -1). Odnosno, susedni blok A može biti susedni blok u gornjem levom uglu trenutnog bloka; susedni blok B, gornji susedni blok među gornjim susednim blokovima trenutnog bloka, koji je lociran krajnje levo; susedni blok C, levi susedni blok među levim susednim blokovima trenutnog bloka, koji je lociran krajnje u gornjem delu; susedni blok D, gornji susedni blok među gornjim susednim blokovima trenutnog bloka, koji je lociran krajnje desno; i susedni blok E, susedni blok u gornjem desnom uglu trenutnog bloka.
[0262] Kada najmanje jedan od vektora pokreta kandidata CP0 i vektor pokreta kandidata CP1 nije dostupan, konstruisani kandidat afine mvp možda nije dostupan.
[0263] Dalje, kada je širina trenutnog bloka manja od njegove visine, CP-ovi trenutnog bloka mogu da uključuju CP0 i CP2. Kada je vektor pokreta za CP0 dostupan i vektor pokreta za CP2 je dostupan, konstruisani kandidat afine mvp može biti dostupan, i lista kandidata afine mvp može da uključuje konstruisani kandidat afine mvp. Ovde, CP0 može da predstavlja gornji-levi položaj trenutnog bloka, i CP2 može da predstavlja donji-levi položaj trenutnog bloka.
[0264] Konstruisani kandidat afine mvp može da uključuje vektor pokreta kandidata za CP0 i vektor pokreta kandidata za CP2. Vektor pokreta kandidata za CP0 može biti vektor pokreta prvog bloka, i vektor pokreta kandidata za CP2 može biti vektor pokreta trećeg bloka.
[0265] Dalje, prvi blok može biti blok koji je prvi potvrđen dok se proveravaju susedni blokovi u prvoj grupi prema prvom konkretnom redosledu tako da referentna slika tog bloka bude ista kao referentna slika trenutnog bloka. Ovde, kada referentna slika prvog bloka u prvoj grupi ista kao referentna slika trenutnog bloka, vektor pokreta kandidata za CP0 može biti dostupan. Dalje, na primer, prva grupa može da uključuje susedni blok A, susedni blok B, i susedni blok C, i prvi konkretan redosled može biti redosled iz susednog bloka A do susednog bloka B, i zatim do susednog bloka C.
[0266] Dalje, treći blok može biti blok koji je prvi potvrđen dok se proveravaju susedni blokovi u trećoj grupi prema trećem konkretnom redosledu tako da referentna slika tog bloka bude ista kao referentna slika trenutnog bloka. Ovde, kada referentna slika trećeg bloka u trećoj grupi ista kao referentna slika trenutnog bloka, vektor pokreta kandidata za CP2 može biti dostupan. Dalje, na primer, treća grupa može da uključuje susedni blok F, i susedni blok G, i treći konkretan redosled može biti prema redosledu iz susednog bloka F do susednog bloka G.
[0267] U međuvremenu, ako je veličina trenutnog bloka WxH, i x komponenta gornjeg-levog položaja uzorka trenutnog bloka je 0 i njegova y komponenta je 0, susedni blok A može biti blok koji uključuje uzorak na koordinatama (-1, -1); susedni blok B, blok koji uključuje uzorak na koordinatama (0, -1); susedni blok C, blok koji uključuje uzorak na koordinatama (-1, 0); susedni blok F, blok koji uključuje uzorak na koordinatama (-1, H-1); i susedni blok G, blok koji uključuje uzorak na koordinatama (-1, H). Odnosno, susedni blok A može biti susedni blok u gornjem levom uglu trenutnog bloka; susedni blok B, gornji susedni blok među gornjim susednim blokovima trenutnog bloka, koji je lociran krajnje levo; susedni blok C, levi susedni blok među levim susednim blokovima trenutnog bloka, koji je lociran krajnje u gornjem delu; susedni blok F, levi susedni blok među levim susednim blokovima trenutnog bloka, koji je lociran krajnje nisko; i susedni blok G, susedni blok u donjem levom uglu trenutnog bloka.
[0268] Kada najmanje jedan od vektora pokreta kandidata CP0 i vektor pokreta kandidata CP2 nije dostupan, konstruisani kandidat afine mvp možda nije dostupan.
[0269] Dalje, kao primer, lista kandidata afine mvp može da uključuje nasleđen kandidat afine mvp.
[0270] Nasleđen kandidat afine mvp mogu biti izvedena na osnovu konkretnog bloka u susednim blokovima trenutnog bloka. Ovde, konkretan blok može biti kodiran sa modelom afinog pokreta, referentna slika konkretnog bloka može biti ista kao referentna slika trenutnog bloka.
[0271] Ovde, konkretan blok može biti blok za koji je prvo potvrđeno da ispunjava uslov dok se proveravaju susedni blokovi prema konkretnom redosledu. Taj uslov može biti taj da je blok kodiran sa modelom afinog pokreta, i da je referentna slika bloka ista kao referentna slika trenutnog bloka. Na primer, uređaj za kodiranje može da proveri susedne blokove prema konkretnom redosledu da bi utvrdio da li zadovoljavaju uslov, može da izvede konkretan blok koji prvi ispunjava uslov, i može da izvede nasleđen kandidat afine mvp na osnovu konkretnog bloka.
[0272] Konkretno, na primer, uređaj za kodiranje može da izvede vektore pokreta za CP-ove trenutnog bloka na osnovu modela afinog pokreta konkretnog bloka, i može da izvede nasleđen kandidat afine mvp uključujući vektore pokreta kao CPMVP kandidate. Model afinog pokreta može biti izveden kao u prethodnoj jednačini 1 ili 3.
[0273] Ovde, susedni blokovi mogu da uključuju levi susedni blok, gornji susedni blok, gornji-desni susedni blok, donji-levi susedni blok, i gornji levi susedni blok trenutnog bloka. Na primer, ako je veličina trenutnog bloka WxH, i x komponenta gornjeg-levog položaja uzorka trenutnog bloka je 0 i njegova y komponenta je 0, levi susedni blok može biti blok koji uključuje uzorak na koordinatama (-1, H-1); gornji susedni blok, blok koji uključuje uzorak na koordinatama (W-1, -1); gornji-desni susedni blok, blok koji uključuje uzorak na koordinatama (W, -1); donji-levi susedni blok, blok koji uključuje uzorak na koordinatama (-1, H); i gornji-levi susedni blok, blok koji uključuje uzorak na koordinatama (-1, -1).
[0274] U međuvremenu, kada je broj kandidata afine mvp koji su izvedeni kroz prethodno opisani postupak manji od dva, kandidati mvp mogu da uključuju mvp kandidat u konvencionalnom HEVC standardu.
[0275] Odnosno, na primer, kada je broj kandidata afine mvp koji su izvedeni kroz prethodno opisani postupak manji od dva, uređaj za kodiranje može da izvede mvp kandidat u konvencionalnom HEVC standardu.
4
[0276] U međuvremenu, uređaj za kodiranje može da odredi model afinog pokreta primenjen na trenutni blok, i generiše i kodira inormacije o afinom tipu čime se označava model afinog pokreta primenjen na trenutni blok. Na primer, informacija o afinom tipu može da predstavlja da li je model afinog pokreta primenjen na trenutni blok 6-parametarski afini model pokreta ili 4-parametarski afini model pokreta. Informacija o afinom tipu može biti signalizirana putem toka bitova. Informacija o slici može da uključuje informaciju o afinom tipu.
[0277] Uređaj za kodiranje izvodi prediktori vektora pokreta kontrolne tačke (CPMVP) za kontrolne tačke (CP-ove) trenutnog bloka na osnovu lista kandidata afine mvp (S2010). Uređaj za kodiranje može da izvede CPMV (predviđene vektore pokreta kontrolnih tačaka) za kontrolne tačke trenutnog bloka koji ima optimalan RD trošak, i može da izabere kao kandidata afine mvp za trenutni blok onog kandidata iz skupa mvp kandidata koji je najsličniji izračunatim CPMV-ovima. Uređaj za kodiranje može da izvede prediktore Y komponente kontrolne tačke (CPMVP) za kontrolne tačke (CP-ove) trenutnog bloka na osnovu izabranog kandidata afine mvp iz skupa mvp kandidata koji su uključeni u listu kandidata afine mvp. Konkretno, kada kandidat afine mvp uključuje vektor pokreta kandidata za CP0 i vektor pokreta kandidata za CP1, vektor pokreta kandidata za CP0 kandidata afine mvp mogu biti izvedena kao CPMVP CP0, i vektor pokreta kandidata za CP1 kandidata afine mvp mogu biti izvedena kao CPMVP CP1. Dalje, kada kandidat afine mvp uključuje vektor pokreta kandidata za CP0, vektor pokreta kandidata za CP1, i vektor pokreta kandidata za CP2, vektor pokreta kandidata za CP0 kandidata afine mvp mogu biti izvedena kao CPMVP CP0; vektor pokreta kandidata za CP1 kandidata afine mvp, kao CPMVP CP1; i vektor pokreta kandidata za CP2 kandidata afine mvp, kao CPMVP iz CP2. Dalje, kada kandidat afine mvp uključuje vektor pokreta kandidata za CP0 i vektor pokreta kandidata za CP2, vektor pokreta kandidata za CP0 kandidata afine mvp mogu biti izvedena kao CPMVP CP0, i vektor pokreta kandidata za CP2 kandidata afine mvp mogu biti izvedena kao CPMVP iz CP2.
[0278] Uređaj za kodiranje može da kodira indeks kandidata afine mvp koji označava izabranog kandidata afine mvp iz skupa mvp kandidata. Indeks kandidata afine mvp može da označava jednog kandidata afine mvp iz skupa kandidata koji su uključeni u listu kandidata afinog prediktora vektora pokreta (mvp) za trenutni blok.
[0279] Uređaj za kodiranje izvodi CPMV-ove za kontrolne tačke (CP-ove) trenutnog bloka (S2020).
Uređaj za kodiranje može da izvede CPMV za odgovarajuće CP-ove trenutnog bloka.
[0280] Uređaj za kodiranje izvodi razlike Y komponente kontrolnih tačaka (CPMVD) za CP-ove trenutnog bloka na osnovu CPMVP i CPMV (S2030). Uređaj za kodiranje može da izvede CPMVD za CP-ove trenutnog bloka na osnovu CPMVP i CPMV za odgovarajuće CP-ove.
[0281] Uređaj za kodiranje kodira informacije o predikciji pokreta, uključujući informacije o CPMVD (S2040). Uređaj za kodiranje može da izlazne informacije o predikciji pokreta, uključujući informacije o CPMVD, u obliku toka bitova. Odnosno, uređaj za kodiranje može da izlazne informacije o slici,
4
uključujući informacije o predikciji pokreta, u obliku toka bitova. Uređaj za kodiranje može da kodira informacije o CPMVD za odgovarajuće CP-ove, pri čemu informacije o predikciji pokreta mogu da uključuju informacije o CPMVD.
[0282] Dalje, informacije o predikciji pokreta mogu da uključuju indeks kandidata afine mvp. Indeks kandidata afine mvp može da označava izabranog kandidata afine mvp iz skupa kandidata koji su uključeni u listu kandidata afinog prediktora vektora pokreta (mvp) za trenutni blok.
[0283] U međuvremenu, kao primer, uređaj za kodiranje može da izvede predikcione uzorke za trenutni blok na osnovu CPMV-ova, izvede preostali uzorak za trenutni blok na osnovu predikcionog uzorka i originalnog uzorka za trenutni blok, generiše informacije o ostatku za trenutni blok na osnovu preostalog uzorka i kodira informacije o ostatku. Informacije o slici mogu da uključuju informacije o ostatku.
[0284] U međuvremenu, tok bitova može biti prenet do uređaja za dekodiranje putem mreže ili (digitalnog) medijuma za čuvanje. Ovde, mreža može da uključuje emisionu mrežu, komunikacionu mrežu i/ili slične sisteme, a digitalni medijum za čuvanje može da obuhvata razne medijume za čuvanje podataka, kao što su USB, SD kartica, CD, DVD, Blu-ray, HDD, SSD i tome slično.
[0285] FIG.21 šematski prikazuje uređaj za kodiranje koji izvodi postupak za kodiranje slike u skladu sa ovim otkrivanjem. Postupak prikazan na FIG.20 može biti izveden pomoću uređaja za kodiranje prikazanog na FIG.21. Konkretno, na primer, prediktor uređaja za kodiranje sa FIG.21 može da izvrši korake S2000 do S2030 sa FIG.20, dok entropijski koder uređaja za kodiranje sa FIG.21 može da izvrši korak S2040 sa FIG.20. Dalje, iako nije prikazano, proces izvođenja predikcionih uzoraka za trenutni blok na osnovu CPMV-ova može biti izveden prediktorom uređaja za kodiranje sa FIG.21; proces izvođenja preostalog uzorka za trenutni blok na osnovu predikcionog uzorka i originalnog uzorka trenutnog bloka može biti izveden oduzimačem uređaja za kodiranje sa FIG.21; proces generisanja informacija o ostatku za trenutni blok na osnovu preostalog uzorka može biti izveden transformatorom uređaja za kodiranje sa FIG.21; i proces kodiranja informacija o ostatku može biti izveden entropijskim koderom uređaja za kodiranje sa FIG.21.
[0286] FIG.22 šematski prikazuje postupak za dekodiranje slike pomoću uređaja za dekodiranje u skladu sa ovim otkrivanjem. Postupak prikazan na FIG.22 može biti izveden pomoću uređaja za dekodiranje prikazanog na FIG.2. Konkretno, na primer, korak S2200 sa FIG.22 može biti izveden entropijskim dekoderom uređaja za dekodiranje; koraci S2210 do S2250 mogu biti izvedeni prediktorom uređaja za dekodiranje; a korak S2260 može biti izveden sabiračem uređaja za dekodiranje. Dalje, iako nije prikazano, proces dobijanja informacija o ostatku trenutnog bloka putem toka bitova može biti izveden entropijskim dekoderom uređaja za dekodiranje, dok proces izvođenja preostalog uzorka za trenutni blok na osnovu informacija o ostatku može biti izveden inverznim transformatorom uređaja za dekodiranje.
[0287] Uređaj za dekodiranje dobija informacije o predikciji pokreta za trenutni blok iz toka bitova
4
(S2200). Uređaj za dekodiranje može da dobije informacije o slici, uključujući informacije o predikciji pokreta, iz toka bitova.
[0288] Dalje, na primer, informacije o predikciji pokreta mogu da uključuju informacije o razlikama Y komponente kontrolnih tačaka (CPMVD) za kontrolne tačke (CP-ove) trenutnog bloka. Odnosno, informacije o predikciji pokreta mogu da uključuju informacije o CPMVD za odgovarajuće CP-ove trenutnog bloka.
[0289] Dalje, na primer, informacije o predikciji pokreta mogu da uključuju indeks kandidata afine mvp za trenutni blok. Indeks kandidata afine mvp može da označava jednog kandidata iz skupa kandidata mvp koji su uključeni u listu kandidata afinih prediktora vektora pokreta (mvp) za trenutni blok.
[0290] Uređaj za dekodiranje konstruiše listu kandidata afinog prediktora vektora pokreta (mvp) za trenutni blok (S2210). Uređaj za dekodiranje može da konstruiše listu kandidata afine mvp, uključujući kandidata afine mvp za trenutni blok.
[0291] Kao jedan primer, kada a konstruisani kandidat afine mvp je dostupan, lista kandidata afine mvp može da uključuje konstruisani kandidat afine mvp. Ovde, konstruisani kandidat afine mvp može da uključuje vektore pokreta kandidata za CP-ove. Konstruisani kandidat afine mvp može biti dostupan kada su svi vektori pokreta kandidata dostupni.
[0292] Na primer, kada the 4-afini model pokreta je primenjen na trenutni blok, CP-ovi trenutnog bloka mogu da uključuju CP0 i CP1. Kada je vektor pokreta za CP0 dostupan i vektor pokreta za CP1 je dostupan, konstruisani kandidat afine mvp može biti dostupan, i lista kandidata afine mvp može da uključuje konstruisani kandidat afine mvp. Ovde, CP0 može da predstavlja gornji-levi položaj trenutnog bloka, i CP1 može da predstavlja gornji-desni položaj trenutnog bloka.
[0293] Konstruisani kandidat afine mvp može da uključuje vektor pokreta kandidata za CP0 i vektor pokreta kandidata za CP1. Vektor pokreta kandidata za CP0 može biti vektor pokreta prvog bloka, i vektor pokreta kandidata za CP1 može biti vektor pokreta drugog bloka.
[0294] Dalje, prvi blok može biti blok koji je prvi potvrđen dok se proveravaju susedni blokovi u prvoj grupi prema prvom konkretnom redosledu tako da referentna slika tog bloka bude ista kao referentna slika trenutnog bloka. Ovde, kada referentna slika prvog bloka u prvoj grupi ista kao referentna slika trenutnog bloka, vektor pokreta kandidata za CP0 može biti dostupan. Dalje, na primer, prva grupa može da uključuje susedni blok A, susedni blok B, i susedni blok C, i prvi konkretan redosled može biti redosled iz susednog bloka A do susednog bloka B, i zatim do susednog bloka C.
[0295] Dalje, drugi blok može biti blok koji je prvi potvrđen dok se proveravaju susedni blokovi u drugoj grupi prema drugom konkretnom redosledu tako da referentna slika tog bloka bude ista kao referentna slika trenutnog bloka. Ovde, kada referentna slika drugog bloka u drugoj grupi ista kao referentna slika trenutnog bloka, vektor pokreta kandidata za CP1 može biti dostupan. Dalje, na primer, druga grupa može da uključuje susedni blok D i susedni blok E, i drugi konkretan redosled može biti prema redosledu
4
iz susednog bloka D do susednog bloka E.
[0296] U međuvremenu, ako je veličina trenutnog bloka WxH, i x komponenta gornjeg-levog položaja uzorka trenutnog bloka je 0 i njegova y komponenta je 0, susedni blok A može biti blok koji uključuje uzorak na koordinatama (-1, -1); susedni blok B, blok koji uključuje uzorak na koordinatama (0, -1); susedni blok C, blok koji uključuje uzorak na koordinatama (-1, 0); susedni blok D, blok koji uključuje uzorak na koordinatama (W-1, -1); i susedni blok E, blok koji uključuje uzorak na koordinatama (W, -1). Odnosno, susedni blok A može biti susedni blok u gornjem levom uglu trenutnog bloka; susedni blok B, gornji susedni blok među gornjim susednim blokovima trenutnog bloka, koji je lociran krajnje levo; susedni blok C, levi susedni blok među levim susednim blokovima trenutnog bloka, koji je lociran krajnje u gornjem delu; susedni blok D, gornji susedni blok među gornjim susednim blokovima trenutnog bloka, koji je lociran krajnje desno; i susedni blok E, susedni blok u gornjem desnom uglu trenutnog bloka.
[0297] U međuvremenu, kada najmanje jedan od vektora pokreta kandidata CP0 i vektor pokreta kandidata CP1 nije dostupan, konstruisani kandidat afine mvp možda nije dostupan.
[0298] Alternativno, na primer, kada je 6-afini model pokreta primenjen na trenutni blok, CP-ovi trenutnog bloka mogu da uključuju CP0, CP1 i CP2. Kada je vektor pokreta za CP0 dostupan i vektor pokreta za CP1 je dostupan i vektor pokreta za CP2 je dostupan, konstruisani kandidat afine mvp može biti dostupan, i lista kandidata afine mvp može da uključuje konstruisani kandidat afine mvp. Ovde, CP0 može da predstavlja gornji-levi položaj trenutnog bloka; CP1, gornji-desni položaj trenutnog bloka; i CP2, donji-levi položaj trenutnog bloka.
[0299] Konstruisani kandidat afine mvp može da uključuje vektor pokreta kandidata za CP0, vektor pokreta kandidata za CP1, i vektor pokreta kandidata za CP2. Vektor pokreta kandidata za CP0 može biti vektor pokreta prvog bloka; vektor pokreta kandidata za CP1, vektor pokreta drugog bloka; i vektor pokreta kandidata za CP2, vektor pokreta trećeg bloka.
[0300] Dalje, prvi blok može biti blok koji je prvi potvrđen dok se proveravaju susedni blokovi u prvoj grupi prema prvom konkretnom redosledu tako da referentna slika tog bloka bude ista kao referentna slika trenutnog bloka. Ovde, kada referentna slika prvog bloka u prvoj grupi ista kao referentna slika trenutnog bloka, vektor pokreta kandidata za CP0 može biti dostupan. Dalje, na primer, prva grupa može da uključuje susedni blok A, susedni blok B, i susedni blok C, i prvi konkretan redosled može biti redosled iz susednog bloka A do susednog bloka B, i zatim do susednog bloka C.
[0301] Dalje, drugi blok može biti blok koji je prvi potvrđen dok se proveravaju susedni blokovi u drugoj grupi prema drugom konkretnom redosledu tako da referentna slika tog bloka bude ista kao referentna slika trenutnog bloka. Ovde, kada referentna slika drugog bloka u drugoj grupi ista kao referentna slika trenutnog bloka, vektor pokreta kandidata za CP1 može biti dostupan. Dalje, na primer, druga grupa može da uključuje susedni blok D i susedni blok E, i drugi konkretan redosled može biti prema redosledu iz susednog bloka D do susednog bloka E.
4
[0302] Dalje, treći blok može biti blok koji je prvi potvrđen dok se proveravaju susedni blokovi u trećoj grupi prema trećem konkretnom redosledu tako da referentna slika tog bloka bude ista kao referentna slika trenutnog bloka. Ovde, kada referentna slika trećeg bloka u trećoj grupi ista kao referentna slika trenutnog bloka, vektor pokreta kandidata za CP2 može biti dostupan. Dalje, na primer, treća grupa može da uključuje susedni blok F, i susedni blok G, i treći konkretan redosled može biti prema redosledu iz susednog bloka F do susednog bloka G.
[0303] U međuvremenu, ako je veličina trenutnog bloka WxH, i x komponenta gornjeg-levog položaja uzorka trenutnog bloka je 0 i njegova y komponenta je 0, susedni blok A može biti blok koji uključuje uzorak na koordinatama (-1, -1); susedni blok B, blok koji uključuje uzorak na koordinatama (0, -1); susedni blok C, blok koji uključuje uzorak na koordinatama (-1, 0); susedni blok D, blok koji uključuje uzorak na koordinatama (W-1, -1); susedni blok E, blok koji uključuje uzorak na koordinatama (W, -1); susedni blok F, blok koji uključuje uzorak na koordinatama (-1, H-1); i susedni blok G, blok koji uključuje uzorak na koordinatama (-1, H). Odnosno, susedni blok A može biti susedni blok u gornjem levom uglu trenutnog bloka; susedni blok B, gornji susedni blok među gornjim susednim blokovima trenutnog bloka, koji je lociran krajnje levo; susedni blok C, levi susedni blok među levim susednim blokovima trenutnog bloka, koji je lociran krajnje u gornjem delu; susedni blok D, gornji susedni blok među gornjim susednim blokovima trenutnog bloka, koji je lociran krajnje desno; susedni blok E, susedni blok u gornjem desnom uglu trenutnog bloka; susedni blok F, levi susedni blok među levim susednim blokovima trenutnog bloka, koji je lociran krajnje nisko; i susedni blok G, susedni blok u donjem levom uglu trenutnog bloka.
[0304] U međuvremenu, kada najmanje jedan od vektora pokreta kandidata CP0, vektor pokreta kandidata CP1, i vektor pokreta kandidata iz CP2 nije dostupan, konstruisani kandidat afine mvp možda nije dostupan.
[0305] Dalje, na primer, kada je 4-afini model pokreta primenjen na trenutni blok, CP-ovi mogu biti izabrani na osnovu širine i visine trenutnog bloka, i konstruisani kandidat afine mvp može da uključuje vektore pokreta kandidata za izabrane CP-ove.
[0306] Na primer, kada je širina trenutnog bloka jednaka ili veća od njegove visine, CP-ovi trenutnog bloka mogu da uključuju CP0 i CP1. Kada je vektor pokreta za CP0 dostupan i vektor pokreta za CP1 je dostupan, konstruisani kandidat afine mvp može biti dostupan, i lista kandidata afine mvp može da uključuje konstruisani kandidat afine mvp. Ovde, CP0 može da predstavlja gornji-levi položaj trenutnog bloka, i CP1 može da predstavlja gornji-desni položaj trenutnog bloka.
[0307] Konstruisani kandidat afine mvp može da uključuje vektor pokreta kandidata za CP0 i vektor pokreta kandidata za CP1. Vektor pokreta kandidata za CP0 može biti vektor pokreta prvog bloka, i vektor pokreta kandidata za CP1 može biti vektor pokreta drugog bloka.
[0308] Dalje, prvi blok može biti blok koji je prvi potvrđen dok se proveravaju susedni blokovi u prvoj grupi prema prvom konkretnom redosledu tako da referentna slika tog bloka bude ista kao referentna slika trenutnog bloka. Ovde, kada referentna slika prvog bloka u prvoj grupi ista kao referentna slika trenutnog bloka, vektor pokreta kandidata za CP0 može biti dostupan. Dalje, na primer, prva grupa može da uključuje susedni blok A, susedni blok B, i susedni blok C, i prvi konkretan redosled može biti redosled iz susednog bloka A do susednog bloka B, i zatim do susednog bloka C.
[0309] Dalje, drugi blok može biti blok koji je prvi potvrđen dok se proveravaju susedni blokovi u drugoj grupi prema drugom konkretnom redosledu tako da referentna slika tog bloka bude ista kao referentna slika trenutnog bloka. Ovde, kada referentna slika drugog bloka u drugoj grupi ista kao referentna slika trenutnog bloka, vektor pokreta kandidata za CP1 može biti dostupan. Dalje, na primer, druga grupa može da uključuje susedni blok D i susedni blok E, i drugi konkretan redosled može biti prema redosledu iz susednog bloka D do susednog bloka E.
[0310] U međuvremenu, ako je veličina trenutnog bloka WxH, i x komponenta gornjeg-levog položaja uzorka trenutnog bloka je 0 i njegova y komponenta je 0, susedni blok A može biti blok koji uključuje uzorak na koordinatama (-1, -1); susedni blok B, blok koji uključuje uzorak na koordinatama (0, -1); susedni blok C, blok koji uključuje uzorak na koordinatama (-1, 0); susedni blok D, blok koji uključuje uzorak na koordinatama (W-1, -1); i susedni blok E, blok koji uključuje uzorak na koordinatama (W, -1). Odnosno, susedni blok A može biti susedni blok u gornjem levom uglu trenutnog bloka; susedni blok B, gornji susedni blok među gornjim susednim blokovima trenutnog bloka, koji je lociran krajnje levo; susedni blok C, levi susedni blok među levim susednim blokovima trenutnog bloka, koji je lociran krajnje u gornjem delu; susedni blok D, gornji susedni blok među gornjim susednim blokovima trenutnog bloka, koji je lociran krajnje desno; i susedni blok E, susedni blok u gornjem desnom uglu trenutnog bloka.
[0311] Kada najmanje jedan od vektora pokreta kandidata CP0 i vektor pokreta kandidata CP1 nije dostupan, konstruisani kandidat afine mvp možda nije dostupan.
[0312] Dalje, kada je širina trenutnog bloka manja od njegove visine, CP-ovi trenutnog bloka mogu da uključuju CP0 i CP2. Kada je vektor pokreta za CP0 dostupan i vektor pokreta za CP2 je dostupan, konstruisani kandidat afine mvp može biti dostupan, i lista kandidata afine mvp može da uključuje konstruisani kandidat afine mvp. Ovde, CP0 može da predstavlja gornji-levi položaj trenutnog bloka, i CP2 može da predstavlja donji-levi položaj trenutnog bloka.
[0313] Konstruisani kandidat afine mvp može da uključuje vektor pokreta kandidata za CP0 i vektor pokreta kandidata za CP2. Vektor pokreta kandidata za CP0 može biti vektor pokreta prvog bloka, i vektor pokreta kandidata za CP2 može biti vektor pokreta trećeg bloka.
[0314] Dalje, prvi blok može biti blok koji je prvi potvrđen dok se proveravaju susedni blokovi u prvoj grupi prema prvom konkretnom redosledu tako da referentna slika tog bloka bude ista kao referentna slika trenutnog bloka. Ovde, kada referentna slika prvog bloka u prvoj grupi ista kao referentna slika trenutnog bloka, vektor pokreta kandidata za CP0 može biti dostupan. Dalje, na primer, prva grupa može da uključuje susedni blok A, susedni blok B, i susedni blok C, i prvi konkretan redosled može biti redosled
1
iz susednog bloka A do susednog bloka B, i zatim do susednog bloka C.
[0315] Dalje, treći blok može biti blok koji je prvi potvrđen dok se proveravaju susedni blokovi u trećoj grupi prema trećem konkretnom redosledu tako da referentna slika tog bloka bude ista kao referentna slika trenutnog bloka. Ovde, kada referentna slika trećeg bloka u trećoj grupi ista kao referentna slika trenutnog bloka, vektor pokreta kandidata za CP2 može biti dostupan. Dalje, na primer, treća grupa može da uključuje susedni blok F, i susedni blok G, i treći konkretan redosled može biti prema redosledu iz susednog bloka F do susednog bloka G.
[0316] U međuvremenu, ako je veličina trenutnog bloka WxH, i x komponenta gornjeg-levog položaja uzorka trenutnog bloka je 0 i njegova y komponenta je 0, susedni blok A može biti blok koji uključuje uzorak na koordinatama (-1, -1); susedni blok B, blok koji uključuje uzorak na koordinatama (0, -1); susedni blok C, blok koji uključuje uzorak na koordinatama (-1, 0); susedni blok F, blok koji uključuje uzorak na koordinatama (-1, H-1); i susedni blok G, blok koji uključuje uzorak na koordinatama (-1, H). Odnosno, susedni blok A može biti susedni blok u gornjem levom uglu trenutnog bloka; susedni blok B, gornji susedni blok među gornjim susednim blokovima trenutnog bloka, koji je lociran krajnje levo; susedni blok C, levi susedni blok među levim susednim blokovima trenutnog bloka, koji je lociran krajnje u gornjem delu; susedni blok F, levi susedni blok među levim susednim blokovima trenutnog bloka, koji je lociran krajnje nisko; i susedni blok G, susedni blok u donjem levom uglu trenutnog bloka.
[0317] Kada najmanje jedan od vektora pokreta kandidata CP0 i vektor pokreta kandidata iz CP2 nije dostupan, konstruisani kandidat afine mvp možda nije dostupan.
[0318] Dalje, kao primer, lista kandidata afine mvp može da uključuje nasleđen kandidat afine mvp.
[0319] Nasleđen kandidat afine mvp mogu biti izvedena na osnovu konkretnog bloka u susednim blokovima trenutnog bloka. Ovde, konkretan blok može biti kodiran sa modelom afinog pokreta, referentna slika konkretnog bloka može biti ista kao referentna slika trenutnog bloka.
[0320] Ovde, konkretan blok može biti blok za koji je prvo potvrđeno da ispunjava uslov dok se proveravaju susedni blokovi prema konkretnom redosledu. Taj uslov može biti taj da je blok kodiran sa modelom afinog pokreta, i da je referentna slika bloka ista kao referentna slika trenutnog bloka. Na primer, uređaj za dekodiranje može da proveri susedne blokove prema konkretnom redosledu da bi utvrdio da li zadovoljavaju uslov, može da izvede konkretan blok koji prvi ispunjava uslov, i može da izvede nasleđen kandidat afine mvp na osnovu konkretnog bloka.
[0321] Konkretno, na primer, uređaj za dekodiranje može da izvede vektore pokreta za CP-ove trenutnog bloka na osnovu modela afinog pokreta konkretnog bloka, i može da izvede nasleđen kandidat afine mvp koji uključuje vektore pokreta kao CPMVP kandidate. Model afinog pokreta može biti izvedena kao u prethodnoj jednačini 1 ili 3.
[0322] Ovde, susedni blokovi mogu da uključuju levi susedni blok, a gornji susedni blok, gornji-desni susedni blok, donji-levi susedni blok, i gornji levi susedni blok trenutnog bloka. Na primer, ako je veličina
2
trenutnog bloka WxH, i x komponenta gornjeg-levog položaja uzorka trenutnog bloka je 0 i njegova y komponenta je 0, levi susedni blok može biti blok koji uključuje uzorak na koordinatama (-1, H-1); gornji susedni blok, blok koji uključuje uzorak na koordinatama (W-1, -1); gornji-desni susedni blok, blok koji uključuje uzorak na koordinatama (W, -1); donji-levi susedni blok, blok koji uključuje uzorak na koordinatama (-1, H); i gornji-levi susedni blok, blok koji uključuje uzorak na koordinatama (-1, -1).
[0323] U međuvremenu, kada je broj kandidata afine mvp koji su izvedeni kroz prethodno opisani postupak manji od dva, kandidati mvp mogu da uključuju mvp kandidat u konvencionalnom HEVC standardu.
[0324] Odnosno, na primer, kada je broj kandidata afine mvp koji su izvedeni kroz prethodno opisani postupak manji od dva, uređaj za dekodiranje može da izvede mvp kandidat u konvencionalnom HEVC standardu.
[0325] U međuvremenu, model afinog pokreta primenjen na trenutni blok može biti izveden na osnovu informacija o afinom tipu. Na primer, informacije o afinom tipu mogu da predstavljaju model afinog pokreta primenjen na trenutni blok. Odnosno, informacije o afinom tipu mogu da označavaju da li je model afinog pokreta primenjen na trenutni blok 6-parametarski afini model pokreta ili 4-parametarski afini model pokreta. Informacije o afinom tipu mogu biti dobijene putem toka bitova. Informacije o slici mogu da uključuju informacije o afinom tipu.
[0326] Uređaj za dekodiranje izvodi prediktore vektora pokreta kontrolnih tačaka (CPMVP) za kontrolne tačke (CP-ove) trenutnog bloka na osnovu liste kandidata afine mvp (S2220).
[0327] Uređaj za dekodiranje može da izabere određeni kandidat afine mvp iz skupa kandidata mvp uključenih u listu kandidata afine mvp, i može da izvede izabrani kandidat afine mvp kao CPMVP za CP-ove trenutnog bloka. Na primer, uređaj za dekodiranje može da dobije indeks kandidata afine mvp za trenutni blok iz toka bitova, i može da izvede kao CPMVP za CP-ove trenutnog bloka kandidata afine mvp iz skupa kandidata mvp uključenih u listu kandidata afine mvp, na kojeg indeks kandidata afine mvp ukazuje. Konkretno, kada kandidat afine mvp uključuje vektor pokreta kandidata za CP0 i vektor pokreta kandidata za CP1, vektor pokreta kandidata za CP0 kandidata afine mvp mogu biti izvedena kao CPMVP CP0, i vektor pokreta kandidata za CP1 kandidata afine mvp mogu biti izvedena kao CPMVP CP1. Dalje, kada kandidat afine mvp uključuje vektor pokreta kandidata za CP0, vektor pokreta kandidata za CP1, i vektor pokreta kandidata za CP2, vektor pokreta kandidata za CP0 kandidata afine mvp mogu biti izvedena kao CPMVP CP0; vektor pokreta kandidata za CP1 kandidata afine mvp, kao CPMVP CP1; i vektor pokreta kandidata za CP2 kandidata afine mvp, kao CPMVP iz CP2. Dalje, kada kandidat afine mvp uključuje vektor pokreta kandidata za CP0 i vektor pokreta kandidata za CP2, vektor pokreta kandidata za CP0 kandidata afine mvp mogu biti izvedena kao CPMVP CP0, i vektor pokreta kandidata za CP2 kandidata afine mvp mogu biti izvedena kao CPMVP iz CP2.
[0328] Uređaj za dekodiranje izvodi razlike Y komponente kontrolne tačke (CPMVD) za CP-ove trenutnog bloka na osnovu informacija o predikciji pokreta (S2230). Informacije o predikciji pokreta mogu da uključuju podatke o CPMVD za odgovarajuće CP-ove, a uređaj za dekodiranje može da izvede CPMVD za odgovarajuće CP-ove trenutnog bloka na osnovu tih informacija o CPMVD.
[0329] Uređaj za dekodiranje izvodi vektore pokreta kontrolnih tačaka (CPMV) za CP-ove trenutnog bloka na osnovu CPMVP i CPMVD (S2240). Uređaj za dekodiranje može da izvede CPMV za svaki CP na osnovu CPMVD i CPMVP za odgovarajuće CP-ove. Na primer, uređaj za dekodiranje može da izvede CPMV za CP dodavanjem CPMVD i CPMVP za svaki CP.
[0330] Uređaj za dekodiranje izvodi predikcione uzorke za trenutni blok na osnovu CPMV (S2250).
Uređaj za dekodiranje može da izvede vektore pokreta podbloka ili uzoraka trenutnog bloka na osnovu CPMV. Odnosno, uređaj za dekodiranje može da izvede vektor pokreta za svaki podblok ili svaki uzorak trenutnog bloka na osnovu CPMV. Vektori pokreta podblokova ili uzoraka mogu biti izvedeni na osnovu gore opisane jednačine 1 ili jednačine 3. Vektori pokreta mogu biti predstavljeni kao polje afinog vektora pokreta (MVF) ili niz vektora pokreta.
[0331] Uređaj za dekodiranje može da izvede predikcione uzorke za trenutni blok na osnovu y komponente podblokova ili uzoraka. Uređaj za dekodiranje može da izvede referentnu oblast u referentnoj slici na osnovu y komponente podbloka ili uzorka, i da generiše predikcioni uzorak trenutnog bloka na osnovu rekonstruisanih uzoraka u referentnoj oblasti.
[0332] Uređaj za dekodiranje generiše rekonstruisanu sliku za trenutni blok na osnovu izvedenih predikcionih uzoraka (S2260). Uređaj za dekodiranje može da generiše rekonstruisanu sliku za trenutni blok na osnovu izvedenih predikcionih uzoraka. Uređaj za dekodiranje može direktno koristiti predikcioni uzorak kao uzorak rekonstrukcije u skladu sa režimom predikcije, ili može da generiše uzorak rekonstrukcije dodavanjem preostalog uzorka na predikcioni uzorak. Ukoliko postoji preostali uzorak za trenutni blok, uređaj za dekodiranje može da dobije informacije o ostatku za trenutni blok iz toka bitova. Informacije o ostatku mogu da uključuju koeficijent transformacije koji se odnosi na preostali uzorak. Uređaj za dekodiranje može da izvede preostali uzorak (ili niz preostalih uzoraka) za trenutni blok na osnovu informacija o ostatku. Uređaj za dekodiranje može da generiše uzorak rekonstrukcije na osnovu predikcionog uzorka i preostalog uzorka, i izvede rekonstruisani blok ili rekonstruisanu sliku na osnovu uzorka rekonstrukcije. Nakon toga, kao što je gore opisano, uređaj za dekodiranje može da primeni postupak filtriranja unutar petlje, kao što su SAO procedura i/ili deblokirajuće filtriranje, na rekonstruisanu sliku radi poboljšanja subjektivnog i/ili objektivnog kvaliteta videa po potrebi.
[0333] FIG.23 šematski prikazuje uređaj za dekodiranje koji izvodi postupak dekodiranja slike prema ovom otkrivanju. Postupak prikazan na FIG.22 može biti izveden uređajem za dekodiranje prikazanim na FIG.23. Konkretno, na primer, entropijski dekoder uređaja za dekodiranje sa FIG.23 može da izvrši S2200 sa FIG.22; prediktor uređaja za dekodiranje sa FIG.23 može da izvrši S2210 do S2250 sa FIG.22; i sabirač uređaja za dekodiranje sa FIG.23 može da izvrši S2260 sa FIG.22. Dalje, iako nije prikazano,
4
proces dobijanja informacija o slici uključujući informacije o ostatku trenutnog bloka putem toka bitova može biti izveden entropijskim dekoderom uređaja za dekodiranje sa FIG.23, a proces izvođenja preostalih uzoraka za trenutni blok na osnovu informacija o ostatku može biti izveden inverznim transformatorom uređaja za dekodiranje sa FIG.23.
[0334] Prema prethodno opisanom ovom otkrivanju, moguće je povećati efikasnost kodiranja slike na osnovu afine predikcije pokreta.
[0335] Dalje, prema ovom otkrivanju, pri izvođenju liste kandidata afine mvp, konstruisani kandidat afine mvp može biti dodat samo kada su svi vektori pokreta kandidata za CP-ove konstruisanog kandidata afine mvp dostupni. Time je moguće smanjiti složenost procesa izvođenja konstruisanog kandidata afine mvp i procesa konstruisanja liste kandidata afine mvp, što poboljšava efikasnost kodiranja.
[0336] U prethodno opisanom primeru, postupci su objašnjeni na osnovu dijagrama toka kroz niz koraka ili blokova, ali ovo otkrivanje nije ograničeno na redosled koraka, te određeni korak može nastupiti u drugačijem redosledu ili istovremeno sa drugim koracima od onih opisanih gore. Dalje, može se razumeti od strane osobe sa prosečnim znanjem u struci da koraci prikazani na dijagramu toka nisu isključivi, i da se može dodati neki drugi korak ili ukloniti jedan ili više koraka iz dijagrama toka, bez uticaja na obim ovog otkrivanja.
[0337] Način ostvarivanja opisan u ovom dokumentu može biti implementiran i izveden na procesoru, mikroporcesoru, kontroleru ili čipu. Na primer, funkcijske jedinice prikazane na svakoj slici mogu biti implementirane i izvedene na procesoru, mikroporcesoru, kontroleru ili čipu. U tom slučaju, informacije ili algoritam za implementaciju (npr. informacije o instrukcijama) mogu biti čuvani u digitalnom medijumu za čuvanje podataka.
[0338] Dalje, uređaj za dekodiranje i uređaj za kodiranje na koje se primenjuje ovo otkrivanje mogu biti uključeni u multimedijalni radio primo-predajnik za emitovanje, mobilni komunikacioni terminal, kućni bioskopski video uređaj, digitalni bioskopski video uređaj, nadzornu kameru, video-čet uređaj, uređaj za komunikaciju u realnom vremenu kao što je video komunikacija, uređaj za mobilno strimovanje, medij za čuvanje, kamkorder, uređaj za pružanje usluge video na zahtev (VoD), over-the-top (OTT) video uređaj, uređaj za pružanje usluga strimovanja preko interneta, trodimenzionalni (3D) video uređaj, video telefonski uređaj, terminal prevoznog sredstva (npr. terminal vozila, aviona, broda itd.) i medicinski video uređaj, i mogu se koristiti za obradu videosignala ili signala podataka. Na primer, over-the-top (OTT) video uređaj može da uključuje konzolu za igrice, Blu-ray plejer, televizor sa pristupom internetu, kućni bioskopski sistem, pametni telefon, tablet računar, digitalni snimač video zapisa (DVR) i slično.
[0339] Pored toga, obrada na koju se ovo otkrivanje primenjuje može biti realizovana u obliku programa koji izvršava računar i može biti čuvana na medijumu za snimanje čitljivom na računaru. Multimedijalni podaci sa strukturom podataka prema ovom otkrivanju takođe mogu biti čuvani na računaru čitljivom medijumu za snimanje. Medijum za snimanje čitljiv na računaru uključuje sve vrste uređaja za čuvanje i uređaja za distribuciju uređaja za čuvanje podataka u kojima se čuvaju podaci čitljivi na računaru. Takav medijum može uključivati, na primer, Blu-ray disk (BD), (USB) fleš uređaj, ROM, PROM, EPROM, EEPROM, RAM, CD-ROM, magnetnu traku, flopi disketu, kao i optičke uređaje za čuvanje podataka. Dalje, medijum za snimanje čitljiv na računaru takođe uključuje medijum u obliku nosača talasa (na primer, prenos putem Interneta). Pored toga, tok bitova koji se generiše postupkom kodiranja može biti čuvan na medijumu čitljivom na računaru za snimanje ili prenesen putem žične ili bežične komunikacione mreže.
[0340] Pored toga, primeri ovog otkrivanja mogu biti ostvareni kao računarski programski proizvod pomoću programskih kodova, a ti programski kodovi mogu biti izvršeni na računaru korišćenjem prirmera ovog otkrivanja. Programske kodove je moguće čuvati na nosaču koji je čitljiv na računaru.
[0341] FIG.24 ilustrativno prikazuje dijagram strukture sistema za strimovanje sadržaja na koji se ovo otkrivanje primenjuje.
[0342] Sistem za strimovanje sadržaja na koji se ovo otkrivanje primenjuje može u velikoj meri da obuhvata server za kodiranje, server za strimovanje, veb server, medijsku memoriju, korisničku opremu i uređaj za unos multimedije.
[0343] Server za kodiranje ima funkciju da kompresuje digitalne podatke sadržaja koji ulaze sa multimedijalnih ulaznih uređaja, kao što su pametni telefon, kamera, kamkorder i slično, kako bi generisao tok bitova i prenese ga serveru za strimovanje. Kao drugi primer, u slučaju da pametni telefon, kamera, kamkorder ili slično sami generišu tok bitova, server za kodiranje može biti izostavljen.
[0344] Tok bitova može biti generisan postupkom kodiranja ili postupkom generisanja toka bitova na koje se primenjuje ovo otkrivanje. Server za strimovanje može privremeno da čuva tok bitova tokom procesa prenosa ili prijema toka bitova.
[0345] Server za strimovanje prenosi multimedijalne podatke korisničkoj opremi na osnovu korisničkog zahteva preko veb servera, koji funkcioniše kao instrument koji korisniku pruža informacije o dostupnim uslugama. Kada korisnik zatraži uslugu koju želi, veb server prosleđuje zahtev serveru za strimovanje, a server za strimovanje prenosi multimedijalne podatke korisniku. U tom smislu, sistem za strimovanje sadržaja može uključivati poseban kontrolni server, koji u tom slučaju ima funkciju da upravlja komandama i odgovorima između različitih uređaja u sistemu za strimovanje sadržaja.
[0346] Server za strimovanje može primati sadržaje iz medijuma za čuvanje podataka i/ili sa servera za kodiranje. Na primer, u slučaju da se sadržaji primaju sa servera za kodiranje, oni mogu biti primljeni u realnom vremenu. U tom slučaju, server za strimovanje može privremeno da čuva tok bitova tokom unapred određenog vremenskog perioda kako bi obezbedio neometanu uslugu strimovanja.
[0347] Na primer, korisnička oprema može uključivati mobilni telefon, pametni telefon, laptop računar, digitalni terminal za emitovanje, lični digitalni asistent (PDA), prenosivi multimedijalni plejer (PMP), navigacioni uređaj, „slejt“ PC, ultrabuk, nosivi uređaj (npr. terminal u obliku sata), terminal u obliku
Claims (3)
- naočara (pametne naočare), uređaj za prikaz na glavi (HMD), digitalni televizor, desktop računar, digitalni bilbord ili slično. Svaki od servera u sistemu za strimovanje sadržaja može raditi kao distribuirani server, i u tom slučaju, podaci primljeni od strane svakog servera mogu se distribuirano obrađivati.Patentni zahtevi1. Uređaj za dekodiranje za dekodiranje slike, pri čemu taj uređaj za dekodiranje obuhvata:memoriju; inajmanje jedan procesor povezan sa memorijom, pri čemu je taj najmanje jedan procesor konfigurisan tako da:dobija (S2220) informacije o razlikama vektora pokreta kontrolne tačke, CPMVD, za kontrolne tačke, CP-ove, trenutnog bloka iz toka bitova;određuje dostupne vektore pokreta za CP-ove trenutnog bloka;konstruiše (S2210) afini prediktor vektora pokreta, mvp, listu kandidata za trenutni blok na osnovu dostupnih vektora pokreta za CP-ove;izvodi (S2220) prediktore vektora pokreta kontrolne tačke, CPMVP, za CP-ove trenutnog bloka na osnovu liste kandidata afine mvp;izvodi (S2230) CPMVD za CP-ove trenutnog bloka na osnovu informacija o CPMVD za CP-ove trenutnog bloka;izvodi (S2240) vektore pokreta kontrolne tačke, CPMV, za CP-ove trenutnog bloka na osnovu CPMVP i CPMVD;izvodi vektore pokreta podbloka za trenutni blok na osnovu CPMV;izvodi (S2250) predikcione uzorke za trenutni blok na osnovu vektora pokreta podbloka za trenutni blok; igeneriše (S2260) rekonstruisanu sliku za trenutni blok na osnovu predikcionih uzoraka, pri čemu ti CP-ovi uključuju kontrolnu tačku 0, CP0, kontrolnu tačku 1, CP1, i kontrolnu tačku 2, CP2,pri čemu se CP0 nalazi u gornjem levom položaju trenutnog bloka, CP1 se nalazi u gornjem desnom položaju trenutnog bloka, a CP2 se nalazi u donjem levom položaju trenutnog bloka, pri čemu dostupan vektor pokreta za CP0 je izveden iz prve grupe susednih blokova kao CPMVP za CP0, dostupan vektor pokreta za CP1 je izveden iz druge grupe susednih blokova kao CPMVP za CP1, dostupan vektor pokreta za CP2 je izveden iz treće grupe susednih blokova kao CPMVP za CP2,pri čemu kada je referentna slika prvog bloka u prvoj grupi susednih blokova ista kao referentna slika trenutnog bloka, vektor pokreta prvog bloka se određuje kao dostupan vektor pokreta za CP0,pri čemu kada je referentna slika drugog bloka u drugoj grupi susednih blokova ista kao referentna slika trenutnog bloka, vektor pokreta drugog bloka se određuje kao dostupan vektor pokreta za CP1,pri čemu kada je referentna slika trećeg bloka u trećoj grupi susednih blokova ista kao referentna slika trenutnog bloka, vektor pokreta trećeg bloka se određuje kao dostupan vektor pokreta za CP2,pri čemu kombinacija dostupnog vektora pokreta za CP0, dostupnog vektora pokreta za CP1 i dostupnog vektora pokreta za CP2 se izvodi kao konstruisani kandidat afine mvp, naznačen time, štolista kandidata afine mvp uključuje konstruisani kandidat afine mvp na osnovu toga što je dostupan konstruisani kandidat afine mvp,pri čemu je taj konstruisani kandidat afine mvp dostupan samo kada su prisutni svi od dostupnog vektora pokreta za CP0, dostupnog vektora pokreta za CP1, i dostupnog vektora pokreta za CP2,pri čemu konstruisani kandidat afine mvp nije dostupan na osnovu odsustva najmanje jednog dostupnog vektora pokreta za CP0, dostupnog vektora pokreta za CP1, ili dostupnog vektora pokreta za CP2, ipri čemu taj konstruisani kandidat afine mvp nije obuhvaćen listom kandidata afine mvp na osnovu odsustva najmanje jednog dostupnog vektora pokreta za CP0, dostupnog vektora pokreta za CP1, ili dostupnog vektora pokreta za CP2.
- 2. Uređaj za kodiranje za kodiranje slika, pri čemu taj uređaj za kodiranje obuhvata:memoriju: inajmanje jedan procesor povezan sa memorijom, pri čemu je taj najmanje jedan procesor konfigurisan tako da:određuje dostupne vektore pokreta za kontrolne tačke, CP-ove, trenutnog bloka; konstruiše (S2000) afini prediktor vektora pokreta, mvp, listu kandidata za trenutni blok na osnovu dostupnih vektora pokreta za CP-ove;izvodi (S2010) prediktore vektora pokreta kontrolne tačke, CPMVP, za CP-ove trenutnog bloka na osnovu lista kandidata afine mvp;izvodi (S2020) vektore pokreta kontrolne tačke, CPMV, za CP-ove trenutnog bloka;izvodi (S2030) razlike vektora pokreta kontrolne tačke, CPMVD, za CP-ove trenutnog bloka na osnovu CPMVP i CPMV; ikodira (S2040) informacije o CPMVD za CP-ove,pri čemu CP-ovi uključuju kontrolnu tačku 0, CP0, kontrolnu tačku 1, CP1, i kontrolnu tačku 2, CP2,pri čemu se CP0 nalazi u gornjem levom položaju trenutnog bloka, CP1 se nalazi u gornjem desnom položaju trenutnog bloka a CP2 se nalazi u donjem levom položaju trenutnog bloka, pri čemu dostupan vektor pokreta za CP0 je izveden iz prve grupe susednih blokova kao CPMVP za CP0, dostupan vektor pokreta za CP1 je izveden iz druge grupe susednih blokova kao CPMVP za CP1, dostupan vektor pokreta za CP2 je izveden iz treće grupe susednih blokova kao CPMVP za CP2,pri čemu kada je referentna slika prvog bloka u prvoj grupi susednih blokova ista kao referentna slika trenutnog bloka, vektor pokreta prvog bloka se određuje kao dostupan vektor pokreta za CP0,pri čemu kada je referentna slika drugog bloka u drugoj grupi susednih blokova ista kao referentna slika trenutnog bloka, vektor pokreta drugog bloka se određuje kao dostupan vektor pokreta za CP1,pri čemu kada je referentna slika trećeg bloka u trećoj grupi susednih blokova ista kao referentna slika trenutnog bloka, vektor pokreta trećeg bloka se određuje kao dostupan vektor pokreta za CP2,pri čemu kombinacija dostupnog vektora pokreta za CP0, dostupnog vektora pokreta za CP1 i dostupnog vektora pokreta za CP2 je izvedena kao konstruisani kandidat afine mvp, naznačen time, štolista kandidata afine mvp uključuje konstruisani kandidat afine mvp na osnovu toga što je dostupan konstruisani kandidat afine mvp,pri čemu je konstruisani kandidat afine mvp dostupan samo kada su prisutni svi od dostupnog vektora pokreta za CP0, dostupnog vektora pokreta za CP1, i dostupnog vektora pokreta za CP2, pri čemu konstruisani kandidat afine mvp nije dostupan na osnovu odsustva najmanje jednog dostupnog vektora pokreta za CP0, dostupnog vektora pokreta za CP1, ili dostupnog vektora pokreta za CP2, ipri čemu konstruisani kandidat afine mvp nije obuhvaćen listom kandidata afine mvp na osnovu odsustva najmanje jednog dostupnog vektora pokreta za CP0, dostupnog vektora pokreta za CP1, ili dostupnog vektora pokreta za CP2.
- 3. Uređaj za prenos podataka za sliku, pri čemu taj uređaj obuhvata:najmanje jedan procesor konfigurisan tako da generiše tok bitova za sliku izvođenjem kodiranja slike koju izvodi uređaj za kodiranje prema zahtevu 2; ipredajnik konfigurisan tako da prenosi podatke koji obuhvataju tok bitova.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201862715269P | 2018-08-06 | 2018-08-06 | |
| EP24169958.6A EP4376409B1 (en) | 2018-08-06 | 2019-08-06 | Image decoding method and device on basis of affine motion prediction using constructed affine mvp candidate in image coding system |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| RS66891B1 true RS66891B1 (sr) | 2025-07-31 |
Family
ID=69415568
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| RS20250551A RS66891B1 (sr) | 2018-08-06 | 2019-08-06 | Postupak za dekodiranje slike i uređaj baziran na afinoj predikciji pokreta pomoću konstruisanog kandidata afine mvp u sistemu za kodiranje slika |
Country Status (13)
| Country | Link |
|---|---|
| US (3) | US11240527B2 (sr) |
| EP (4) | EP3694213B1 (sr) |
| JP (5) | JP7043599B2 (sr) |
| KR (5) | KR20240133754A (sr) |
| CN (5) | CN116916040A (sr) |
| ES (3) | ES2949795T3 (sr) |
| FI (2) | FI3694213T3 (sr) |
| HR (3) | HRP20250691T1 (sr) |
| HU (3) | HUE062298T2 (sr) |
| PL (3) | PL3694213T3 (sr) |
| RS (1) | RS66891B1 (sr) |
| SI (2) | SI3694213T1 (sr) |
| WO (1) | WO2020032526A1 (sr) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| HUE060426T2 (hu) | 2018-09-10 | 2023-02-28 | Lg Electronics Inc | Kép kódolás affin mozgás predikció alapján affin MVP jelölt lista használatával |
| CN114079787B (zh) * | 2020-08-10 | 2024-06-14 | 腾讯科技(深圳)有限公司 | 视频解码方法、视频编码方法、装置、设备和存储介质 |
| EP4425926A4 (en) * | 2021-09-29 | 2025-11-19 | Lg Electronics Inc | METHOD AND DEVICE FOR ENCODING AND DECODING IMAGES AND RECORDING MEDIUM CONTAINING A BINARY STREAM STORED WITHIN IT |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101762294B1 (ko) * | 2011-10-18 | 2017-07-28 | 주식회사 케이티 | 영상 부호화 방법, 영상 복호화 방법, 영상 부호화기 및 영상 복호화기 |
| SG10202111537RA (en) * | 2015-03-10 | 2021-11-29 | Huawei Tech Co Ltd | Picture prediction method and related apparatus |
| CN115002455B (zh) * | 2015-06-05 | 2025-03-25 | 杜比实验室特许公司 | 图像编码和解码方法和图像解码设备 |
| US20190158870A1 (en) | 2016-01-07 | 2019-05-23 | Mediatek Inc. | Method and apparatus for affine merge mode prediction for video coding system |
| WO2017147765A1 (en) * | 2016-03-01 | 2017-09-08 | Mediatek Inc. | Methods for affine motion compensation |
| WO2017156705A1 (en) * | 2016-03-15 | 2017-09-21 | Mediatek Inc. | Affine prediction for video coding |
| US11095898B2 (en) * | 2016-03-28 | 2021-08-17 | Lg Electronics Inc. | Inter-prediction mode based image processing method, and apparatus therefor |
| US10448010B2 (en) * | 2016-10-05 | 2019-10-15 | Qualcomm Incorporated | Motion vector prediction for affine motion models in video coding |
| US10681370B2 (en) * | 2016-12-29 | 2020-06-09 | Qualcomm Incorporated | Motion vector generation for affine motion model for video coding |
| WO2018128232A1 (ko) * | 2017-01-03 | 2018-07-12 | 엘지전자 주식회사 | 영상 코딩 시스템에서 영상 디코딩 방법 및 장치 |
| US11889100B2 (en) * | 2017-11-14 | 2024-01-30 | Qualcomm Incorporated | Affine motion vector prediction in video coding |
-
2019
- 2019-08-06 PL PL19847936.2T patent/PL3694213T3/pl unknown
- 2019-08-06 FI FIEP19847936.2T patent/FI3694213T3/fi active
- 2019-08-06 ES ES19847936T patent/ES2949795T3/es active Active
- 2019-08-06 CN CN202311118952.9A patent/CN116916040A/zh active Pending
- 2019-08-06 FI FIEP23161726.7T patent/FI4216551T3/fi active
- 2019-08-06 KR KR1020247027721A patent/KR20240133754A/ko active Pending
- 2019-08-06 ES ES23161726T patent/ES2983996T3/es active Active
- 2019-08-06 HU HUE19847936A patent/HUE062298T2/hu unknown
- 2019-08-06 EP EP19847936.2A patent/EP3694213B1/en active Active
- 2019-08-06 KR KR1020217041875A patent/KR102447514B1/ko active Active
- 2019-08-06 HR HRP20250691TT patent/HRP20250691T1/hr unknown
- 2019-08-06 CN CN202311115264.7A patent/CN116916039A/zh active Pending
- 2019-08-06 JP JP2020527093A patent/JP7043599B2/ja active Active
- 2019-08-06 KR KR1020207012295A patent/KR102344962B1/ko active Active
- 2019-08-06 CN CN201980006125.6A patent/CN111434116B/zh active Active
- 2019-08-06 EP EP23161726.7A patent/EP4216551B1/en active Active
- 2019-08-06 WO PCT/KR2019/009773 patent/WO2020032526A1/ko not_active Ceased
- 2019-08-06 PL PL23161726.7T patent/PL4216551T3/pl unknown
- 2019-08-06 ES ES24169958T patent/ES3033610T3/es active Active
- 2019-08-06 HR HRP20230763TT patent/HRP20230763T1/hr unknown
- 2019-08-06 HU HUE24169958A patent/HUE072080T2/hu unknown
- 2019-08-06 KR KR1020227032865A patent/KR102547353B1/ko active Active
- 2019-08-06 EP EP25167095.6A patent/EP4576781A3/en active Pending
- 2019-08-06 RS RS20250551A patent/RS66891B1/sr unknown
- 2019-08-06 CN CN202311130095.4A patent/CN116980593A/zh active Pending
- 2019-08-06 KR KR1020237020860A patent/KR102697969B1/ko active Active
- 2019-08-06 CN CN202311119548.3A patent/CN116916041A/zh active Pending
- 2019-08-06 SI SI201930574T patent/SI3694213T1/sl unknown
- 2019-08-06 SI SI201930772T patent/SI4216551T1/sl unknown
- 2019-08-06 PL PL24169958.6T patent/PL4376409T3/pl unknown
- 2019-08-06 HU HUE23161726A patent/HUE067241T2/hu unknown
- 2019-08-06 HR HRP20240844TT patent/HRP20240844T1/hr unknown
- 2019-08-06 EP EP24169958.6A patent/EP4376409B1/en active Active
-
2020
- 2020-04-29 US US16/861,787 patent/US11240527B2/en active Active
-
2021
- 2021-12-28 US US17/563,948 patent/US11924460B2/en active Active
-
2022
- 2022-03-15 JP JP2022040142A patent/JP7293438B2/ja active Active
-
2023
- 2023-06-07 JP JP2023093942A patent/JP7483988B2/ja active Active
-
2024
- 2024-02-06 US US18/434,590 patent/US20240214603A1/en active Pending
- 2024-05-01 JP JP2024074275A patent/JP7654866B2/ja active Active
-
2025
- 2025-03-19 JP JP2025044610A patent/JP7795022B2/ja active Active
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7436543B2 (ja) | 画像符号化システムにおいてアフィンmvp候補リストを使用するアフィン動き予測に基づいた画像デコード方法及び装置 | |
| JP7431889B2 (ja) | 映像コーディングシステムにおけるアフィン動き予測に基づいた映像デコード方法及び装置 | |
| KR102943304B1 (ko) | 머지 후보를 이용하여 예측 샘플을 도출하는 영상 디코딩 방법 및 그 장치 | |
| KR102799992B1 (ko) | 쌍 예측을 위한 가중치 인덱스 정보를 유도하는 비디오 또는 영상 코딩 | |
| JP7795022B2 (ja) | 画像コーディングシステムにおいてコンストラクテッドアフィンmvp候補を使用するアフィン動き予測に基づいた画像デコード方法及び装置 | |
| KR102812842B1 (ko) | 서브블록 단위의 시간적 움직임 벡터 예측자 후보 기반 영상 또는 비디오 코딩 | |
| KR102701582B1 (ko) | Sbtmvp 기반 영상 또는 비디오 코딩 | |
| KR102934010B1 (ko) | 쌍 예측(bi-prediction)이 적용되는 경우 가중 평균을 위한 가중치 인덱스 정보를 도출하는 영상 디코딩 방법 및 그 장치 | |
| RS67030B1 (sr) | Postupak i uređaj za inter predikciju u sistemu za obradu video zapisa | |
| RU2812840C2 (ru) | Способ и устройство декодирования изображения для выведения информации индекса веса для генерации выборки предсказания | |
| KR20260003009A (ko) | 영상 인코딩/디코딩 방법 및 장치, 그리고 비트스트림을 저장한 기록 매체 |