RS66497B9 - Uređaj za dekodiranje i kodiranje slike na osnovu predikcije pokreta u jedinici podbloka u sistemu za kodiranje slike - Google Patents
Uređaj za dekodiranje i kodiranje slike na osnovu predikcije pokreta u jedinici podbloka u sistemu za kodiranje slikeInfo
- Publication number
- RS66497B9 RS66497B9 RS20250142A RSP20250142A RS66497B9 RS 66497 B9 RS66497 B9 RS 66497B9 RS 20250142 A RS20250142 A RS 20250142A RS P20250142 A RSP20250142 A RS P20250142A RS 66497 B9 RS66497 B9 RS 66497B9
- Authority
- RS
- Serbia
- Prior art keywords
- block
- candidate
- motion vector
- current block
- 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/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- 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
- 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)
Description
Opis
POZADINA OTKRIVANJA
Oblast otkrivanja
[0001] Ovaj dokument odnosi se na tehniku kodiranja slike, a određenije na postupak i uređaj za dekodiranje slike na osnovu predikcije pokreta korišćenjem liste kandidata pokreta za izvođenje informacije o pokretima za jedinicu podbloka u sistemu za kodiranje slike.
Stanje tehnike
[0002] Trenutno, potražnja za slikama/videozapisima visoke rezolucije i visokog kvaliteta kao što su slike/videozapisi 4K, 8K ili veće ultravisoke definicije (UHD) raste u raznim oblastima. Kako podaci slike/videa postaju veće rezolucije i većeg kvaliteta, količina prenetih informacija ili količina bitova raste u poređenju sa konvencionalnim podacima slike. Prema tome, kada se podaci slike prenose pomoću medijuma kao što su konvencionalna žičana/bežična širokopojasna linija ili se podaci slike/videa čuvaju korišćenjem postojećeg medijuma za skladištenje, troškovi prenosa i troškovi skladištenja se stoga povećavaju.
[0003] Dalje, trenutno, interes i potražnja za imerzivnim medijima kao što je virtuelna stvarnost (VR), i sadržaji ili hologrami veštačke realnosti (AR), ili slično raste, i raste emitovanje slika/videozapisa koje imaju karakteristike slike različite od stvarne slike, kao što je slika igre.
[0004] Prema tome, postoji potreba za visokoefikasnom tehnikom kompresije slike/videozapisa za efikasno komprimovanje i prenos ili skladištenje, i reprodukciju informacija o slikama/videozapisima visoke rezolucije i visokog kvaliteta koji imaju različite karakteristike kao što je prethodno opisano.
SUŠTINA
[0005] HAN (QUALCOMM) Y ET AL: "CE4.1.3: Affine motion compensation prediction", no. JVET-K0337, (20180703), 123. JVET MEETING; 20180710 - 20180718; LJUBLJANA; (JVET of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11) opisuje tehnologije afine predikcije kompenzacije pokreta i prikazuje neke rezultate ispitivanja.
[0006] YANG (HUAWEI) H ET AL: "Description of Core Experiment 4 (CE4): Inter prediction and motion vector coding", no. JVET-K1024-v2, (20180809), 11. JVET MEETING; 20180710 - 20180718; LJUBLJANA; (JVET of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11) ispituje različite tehnike inter predikcije i kodiranja vektora pokreta.
[0007] CHEN (HUAWEI) H ET AL: "CE4: Affine inter prediction (Test 1.5)", no. JVET-K0185-v3, (20180713), 11. JVET MEETING; 20180710 - 20180718; LJUBLJANA; (JVET of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11) objavljuje rezultate integrisanja afine inter predikcije u JVET-J0024 do BMS 1.0. Naznačeno je da je afina inter predikcija poboljšana u nekoliko aspekata.
SUŠTINA
[0008] Tehnički problem koji se rešava u ovom dokumentu je kako obezbediti postupak i uređaj koji povećavaju efikasnost kodiranja slike.
[0009] Drugi tehnički problem koji se rešava u ovom dokumentu je kako obezbediti postupak i uređaj za dekodiranje slike koji konfigurišu listu kandidata afinog MVP za trenutni blok izvođenjem konstruisanog afinog MVP kandidata na osnovu nekog susednog bloka samo kada su dostupni svi kandidatni vektori pokreta za CP-ove, i izvode predikciju za trenutni blok na osnovu konfigurisane liste kandidata afinog MVP.
[0010] Drugi tehnički problem koji se rešava u ovom dokumentu je kako obezbediti postupak i uređaj za dekodiranje slike koji izvode kandidat afinog MVP pomoću kandidatnog vektora pokreta koji je izveden u procesu izvođenja konstruisanog afinog MVP kandidata, kao dodatog afinog MVP kandidata kada je broj dostupnih nasleđenih kandidata afinog MVP i konstruisanih kandidata afinog MVP manji od maksimalnog broja kandidata iz liste MVP kandidata, i koji izvode predikciju za trenutni blok na osnovu konfigurisane liste kandidata afinog MVP.
[0011] Ovaj pronalazak definisan je nezavisnim patentnim zahtevima. Karakteristike primera načina ostvarivanja definisane su u zavisnim patentnim zahtevima.
[0012] Prema nekom primeru ovog dokumenta, moguće je da se poveća opšta efikasnost kompresije slike/videozapisa.
[0013] Prema ovom dokumentu, moguće je da se poveća efikasnost kodiranja slike na osnovu afine predikcije pokreta.
[0014] Prema ovom dokumentu, u izvođenju liste kandidata afinog MVP, samo kada su dostupni svi kandidatni vektori pokreta za CP-ove konstruisanog afinog MVP kandidata, konstruisan kandidat afinog MVP može da se doda, preko čega je moguće da se smanji složenost postupka izvođenja konstruisanog afinog MVP kandidata i postupka konfiguracije liste kandidata afinog MVP, i da se poboljša efikasnost kodiranja.
[0015] Prema ovom dokumentu, u izvođenju liste kandidata afinog MVP, dodatni kandidat afinog MVP može se izvesti na osnovu kandidatnog vektora pokreta za CP izveden u postupku izvođenja konstruisanog afinog MVP kandidata, preko čega je moguće da se smanji složenost postupka konfiguracije liste kandidata afinog MVP, i da se poboljša efikasnost kodiranja.
[0016] Prema ovom dokumentu, u postupku izvođenja nasleđenog afinog MVP kandidata, samo kada je uključen gornji susedni blok u trenutnu CTU, nasleđeni kandidat afinog MVP može se izvesti pomoću gornjeg susednog bloka, preko čega je moguće da se smanji količina skladištenja linijskog bafera za afinu predikciju, i da se minimiziraju troškovi hardvera.
KRATAK OPIS NACRTA
[0017]
Fig.1 šematski prikazuje primer sistema za kodiranje videozapisa/slike na koji se ovaj dokument može primeniti.
Fig.2 je dijagram koji šematski opisuje konfiguraciju uređaja za kodiranje videozapisa/slike na koji se ovaj dokument može primeniti.
Fig.3 je dijagram koji šematski opisuje konfiguraciju uređaja za dekodiranje videozapisa/slike na koji se ovaj dokument može primeniti.
Fig.4 prikazuje primer postupka za kodiranje videozapisa/slike na osnovu inter predikcije. Fig.5 prikazuje primer postupka za kodiranje videozapisa/slike na osnovu inter predikcije. Fig.6 ilustrativno prikazuje proceduru inter predikcije.
Fig.7 ilustrativno prikazuje pokrete koji se izražavaju kroz afini model pokreta.
Fig.8 ilustrativno prikazuje afini model pokreta u kojem se koriste vektori pokreta za tri kontrolne tačke.
Fig.9 ilustrativno prikazuje model pokreta afine jedinice u kojoj se koriste vektori pokreta za dve kontrolne tačke.
Fig.10 ilustrativno prikazuje postupak za izvođenje vektora pokreta u jedinici podbloka na osnovu afinog modela pokreta.
Fig.11 ilustrativno prikazuje susedne blokove za izvođenje nasleđenog afinog kandidata.
Fig.12 ilustrativno prikazuje prostornog kandidata za konstruisanog afinog kandidata.
Fig.13 ilustrativno prikazuje primer konfiguracije liste afinog MVP.
Fig.14 prikazuje primer izvođenja konstruisanog kandidata.
Fig.15 prikazuje primer izvođenja konstruisanog kandidata.
Fig.16 ilustrativno prikazuje položaj susednog bloka koji se skenira da bi se izveo nasleđeni afini kandidat.
Fig.17 ilustrativno prikazuje položaj susednog bloka koji se skenira da bi se izveo nasleđeni afini kandidat.
Fig.18 ilustrativno prikazuje položaj za izvođenje nasleđenog afinog kandidata.
Fig.19 prikazuje primer konfiguracije liste kandidata za spajanje za trenutni blok.
Fig.20 prikazuje susedne blokove za trenutni blok za izvođenje konstruisanog kandidata prema nekom primeru ovog dokumenta.
Fig.21 prikazuje primer izvođenja konstruisanog kandidata za 4-afini model pokreta koji se primenjuje na trenutni blok.
Fig.22 prikazuje primer izvođenja konstruisanog kandidata za 6-afini model pokreta koji se primenjuje na trenutni blok.
Fig.23a i 23b ilustrativno prikazuju primer izvođenja nasleđenog afinog kandidata.
Fig.24 šematski prikazuje postupak za kodiranje slike pomoću uređaja za kodiranje prema ovom dokumentu.
Fig.25 šematski prikazuje uređaj za kodiranje koji izvodi postupak za kodiranje slike prema ovom dokumentu.
Fig.26 šematski prikazuje postupak za dekodiranje slike uređajem za dekodiranje prema ovom dokumentu.
Fig.27 šematski prikazuje uređaj za dekodiranje koji izvodi postupak za dekodiranje slike prema ovom dokumentu.
Fig.28 ilustrativno prikazuje dijagram strukture sistema za strimovanje sadržaja na koji se mogu primeniti načini ostvarivanja opisani u ovom dokumentu.
OPIS PRIMERA NAČINA OSTVARIVANJA
[0018] Dok ovaj dokument može da bude podložan različitim modifikacijama i uključuje različite načine ostvarivanja, njegovi specifični načini ostvarivanja prikazani su u nacrtu primera radi i u nastavku su detaljnije opisani. Međutim, nije namera da se ovaj dokument ograniči na te specifične načine ostvarivanja koji su ovde opisani. Terminologija koja se ovde koristi je samo radi opisa specifičnih načina ostvarivanja, a ne da ograniči tehničku ideju ovog dokumenta. Oblici jednine mogu da uključuju oblike množine osim ako kontekst jasno ne ukazuje drugačije. Pojmovi kao što su "uključuje" i "ima" imaju za cilj da naznače da karakteristike, brojevi, faze, operacije, elementi, komponente ili njihove kombinacije korišćene u ovom opisu postoje, i stoga ne treba shvatiti da je mogućnost postojanja ili dodavanja jedne ili više različitih karakteristika, brojeva, faza, operacija, elemenata, komponente ili njihove kombinacije unapred isključena.
[0019] U daljem tekstu, poželjni načini ostvarivanja ovog dokumenta detaljnije su objašnjeni uz upućivanje na priložene slike. Pored toga, iste pozivne oznake koriste se za iste komponente na slikama, a ponovljeni opisi za iste komponente biće izostavljeni.
[0020] Fig.1 šematski prikazuje primer sistema za kodiranje videozapisa/slike na koji se ovaj dokument može primeniti.
[0021] Što se tiče Fig.1, sistem za kodiranje videozapisa/slike može da uključuje prvi uređaj (izvorni uređaj) i drugi uređaj (prijemni uređaj). Izvorni uređaj može da dostavlja kodirane informacije ili podatke o videozapisu/slici u obliku datoteke ili strimovanja prijemnom uređaju putem digitalnog medijuma za skladištenje ili mreže.
[0022] Izvorni uređaj može da uključuje izvor videozapisa, uređaj za kodiranje i predajnik. Prijemni uređaj može da uključuje prijemnik, uređaj za dekodiranje i prikazivač. Uređaj za kodiranje može se zvati uređaj za kodiranje videozapisa/slike, dok uređaj za dekodiranje može se zvati uređaj za dekodiranje videozapisa/slike. Predajnik može biti uključen u uređaju za kodiranje. Prijemnik može biti uključen u uređaju za dekodiranje. Prikazivač može da uključuje ekran, a ekran može biti konfigurisan kao zaseban uređaj ili eksterna komponenta.
[0023] Izvor videozapisa može da dobije videozapis/sliku postupkom snimanja, sinteze ili generisanja videozapisa/slike. Izvor videozapisa može da uključuje uređaj za snimanje videozapisa/slike i/ili uređaj za generisanje videozapisa/slike. Uređaj za snimanje videozapisa/slike može da uključuje, na primer, jednu ili više kamera, arhive videozapisa/slike uključujući prethodno snimljen videozapis/slike, ili slično. Uređaj za generisanje videozapisa/slike može da uključuje, na primer, kompjuter, tablet i pametni telefon, i može (elektronski) da generiše videozapis/sliku. Na primer, virtuelni videozapis/slika može da se generiše kompjuterom ili slično. U ovom slučaju, postupak snimanja videozapis/slika može se zameniti postupkom generisanja povezanih podataka.
[0024] Uređaj za kodiranje može da kodira ulazni videozapis/slika. Uređaj za kodiranje može da izvodi serije procedura kao što su predikcija, transformacija i kvantizacija za kompresiju i efikasnost kodiranja. Kodirani podaci (informacije o kodiranom videozapisu/slici) mogu biti izlaz u obliku toka bitova.
[0025] Predajnik može da prenese izlazne informacije ili podatke o kodiranom videozapisu/slici u obliku toka bitova prijemniku prijemnog uređaja preko digitalnog medijuma za skladištenje ili mreže u obliku datoteke ili strimovanja. Digitalni medijum za skladištenje može da uključuje razne medijume za skladištenje kao što su USB, SD, CD, DVD, Blu-ray, HDD, SSD, i slično. Predajnik može da uključuje neki element za generisanje medijske datoteke preko unapred određenog formata datoteke, i može da uključuje neki element za prenos preko radiodifuzna/komunikacione mreže. Prijemnik može da primi/izdvoji tok bitova i prenese primljen/izdvojen tok bitova uređaju za dekodiranje.
[0026] Uređaj za dekodiranje može da dekodira videozapis/sliku izvođenjem serija procedura kao što su dekvantizacija, inverzna transformacija, predikcija i slično, koji odgovaraju operaciji uređaja za kodiranje.
[0027] Prikazivač može da prikaže dekodiran videozapis/sliku. Prikazan videozapis/slika može da se prikaže preko ekrana.
[0028] Ovaj dokument odnosi se na kodiranje videozapisa/slike. Na primer, postupak/način ostvarivanja opisan u ovom dokumentu može da se primeni na postupke opisane u standardu za raznovrsno video kodiranje (VVC), standard za osnovno video kodiranje (EVC), AOMedia Video 1 (AV1) standard, standard 2. generacije za audio video kodiranje (AVS2) ili standard sledeće generacije za kodiranje videozapisa/slike (npr., H.267, H.268, ili slično).
[0029] U ovom dokumentu, mogu da budu obezbeđeni razni načini ostvarivanja koji se odnose na kodiranje videozapisa/slike, i, osim ako nije navedeno suprotno, načini ostvarivanja se mogu kombinovati jedni s drugima i izvesti.
[0030] U ovom dokumentu, videozapis može da znači skup serija slika tokom vremena. Uopšteno, slika znači jedinicu koja predstavlja sliku u određenoj vremenskoj zoni, a odsečak/pločica je jedinica koja čini deo slike. Odsečak/pločica može da uključuje jednu ili više jedinica stabla za kodiranje (CTU). Jedna slika može da čini jedno ili više odsečaka/pločica. Jedna slika može da čini jednu ili više grupa pločica. Jedna grupa pločica može da uključuje jednu ili više pločica. Brik može da predstavlja pravougaonu oblast CTU redova unutar pločice u slici. Pločica može da se podeli na više brikova, od kojih se svaki sastoji od jednog ili više CTU redova unutar pločice. Pločica koja nije podeljena na više brikova može takođe da se zove brik. Sken brikova može da bude specifični sekvencijalni redosled CTU-a koje dele sliku u kojoj se CTU mogu urediti u CTU rasterskom skeniranju u briku, brikovi unutar pločice mogu se urediti uzastopno u rasterskom skeniranju brikova pločice, i pločice u slici mogu se urediti uzastopno u rasterskom skeniranju pločica slike (sken brikova je specifični sekvencijalni redosled CTU-a koje dele sliku u kojoj su CTU uređeni uzastopno u CTU rasterskom skeniranju u briku, brikovi unutar pločice uređeni su uzastopno u rasterskom skenu brikova pločice, i pločice u slici uređene su uzastopno u rasterskom skenu pločica slike). Pločica je pravougaona oblast CTU-a unutar posebne kolone pločica i posebne kolone pločica (pločica je pravougaona oblast CTU-a unutar posebne kolone pločica i posebnog reda pločica u slici). Kolona pločica je pravougaona oblast CTU-a koja ima visinu jednaku visini slike i širinu naznačenu sintatičkim elementima u skup parametara za sliku. Red pločica je pravougaona oblast CTU-a koji ima širinu naznačenu sintatičkim elementima u skupu parametara slike i visinu jednaku visini slike (red pločica je pravougaona oblast CTU-a koji ima visinu naznačenu sintatičkim elementima u skupu parametara slike i širinu jednaku širini slike). Sken pločice može biti specifični sekvencijalni redosled CTU-a koje dele sliku u kojoj se CTU mogu urediti uzastopno u CTU rasterskom skeniranju u pločici dok pločice u slici mogu da se urede uzastopno u rasterskom skeniranju pločica slike (sken pločica je specifični sekvencijalni redosled CTU-a koje dele sliku u kojoj su CTU uređene uzastopno u CTU rasterskom skeniranju u pločici dok su pločice u slici uređene uzastopno u rasterskom skeniranju pločica slike). Odsečak može da uključuje ceo broj brikova slike koji može da bude sadržan u jednoj NAL jedinici (odsečak uključuje ceo broj brikova slike koji može da bude isključivo sadržan u jednoj NAL jedinici). Odsečak može da se sastoji ili od više kompletnih pločica ili samo od uzastopne sekvence kompletnih brikova jedne pločice. U ovom dokumentu, grupa pločica i odsečak mogu da se koriste jedna umesto druge. Na primer, u ovom dokumentu, grupa pločica/zaglavlje grupe pločica može da se naziva odsečak/zaglavlje odsečka.
[0031] Piksel ili pel može da znači minimalna jedinica koja činu jednu sliku (ili slika). Osim toga, "uzorak" može da se koristi kao pojam koji odgovara pikselu. Uzorak može generalno da predstavlja piksel ili vrednost piksela, i može da predstavlja samo piksel/vrednost piksela luminozne komponente, ili samo piksel/vrednost piksela hromatske komponente.
[0032] Jedinica može da predstavlja osnovnu jedinicu obrade slike. Jedinica može da uključuje najmanje jedno od specifične oblasti i informacije koja se odnosi na tu oblast. Jedna jedinica može da uključuje jedan luminozni blok i dva hromatska (npr., cb, cr) bloka . Jedinica i pojam kao što je blok, površina ili slično mogu da se koriste jedan umesto drugog u zavisnosti od okolnosti. U opštem slučaju, M × N blok može da uključuje skup (ili niz) uzoraka (ili nizove uzoraka) ili transformiše koeficijente koji se sastoje od M kolona i N redova.
[0033] U ovom dokumentu, pojam"/" i "," treba tumačiti da označava "i/ili." Na primer, izraz "A/B" može da znači "A i/ili B." Osim toga, "A, B" može da znači "A i/ili B." Osim toga, "A/B/C" može da znači "najmanje jedan od A, B, i/ili C." Takođe, "A, B, C" može da znači "najmanje jedan od A, B, i/ili C." (U ovom dokumentu, pojam "/" i "," treba tumačiti da označava "i/ili." Na primer, izraz "A/B" može da znači "A i/ili B." Osim toga, "A, B" može da znači "A i/ili B." Osim toga, "A/B/C" može da znači "najmanje jedan od A, B, i/ili C." Takođe, "A/B/C" može da znači "najmanje jedan od A, B, i/ili C.")
[0034] Osim toga, u ovom dokumentu, pojam "ili" treba tumačiti da označava "i/ili." Na primer, izraz "A ili B" može da obuhvata 1) samo "A", 2) samo "B", i/ili 3) i "A i B". Drugim rečima, pojam "ili" u ovom dokumentu treba tumačiti da označava "dodatno ili alternativno." (Osim toga, u ovom dokumentu, pojam "ili" treba tumačiti da označava "i/ili." Na primer, izraz "A ili B" može da obuhvata 1) samo A, 2) samo B, i/ili 3) i A i B. Drugim rečima, pojam "ili" u ovom dokumentu treba tumačiti da označava "dodatno ili alternativno.")
[0035] Fig.2 je dijagram koji šematski opisuje konfiguraciju uređaja za kodiranje videozapisa/slike na koji se ovaj dokument može primeniti. U nastavku, ono što se naziva uređaj za video kodiranje može da uključuje uređaj za kodiranje slike.
[0036] Upućivanjem na Fig.2, uređaj 200 za kodiranje može da uključuje razdelnik 210 slike, prediktor 220, rezidualni procesor 230, entropijski koder 240, sabirač 250, filter 260 i memorija 270. Prediktor 220 može da uključuje inter prediktor 221 i intra prediktor 222. Rezidualni procesor 230 može da uključuje transformator 232, kvantizator 233, dekvantizator 234, inverzni transformator 235. Rezidualni procesor 230 može dalje d a uključuje oduzimač 231. Sabirač 250 može se nazvati rekonstruktorski ili rekonstruisani blok generator. Razdelnik 210 slike, prediktor 220, rezidualni procesor 230, entropijski koder 240, sabirač 250 i filter 260, koji su prethodno opisani, mogu da se sastoje od jedne ili više komponenti hardvera (npr., čipsetovi ili procesori kodera) prema nekom načinu ostvarivanja. Osim toga, memorija 270 može da uključuje bafer za dekodiranu sliku (DPB), i može da se sastoji od digitalnog medijuma za skladištenje. Komponenta hardvera može dalje da uključuje memoriju 270 kao internu/eksternu komponentu.
[0037] Razdelnik 210 slike može da deli ulaznu sliku (ili slika ili okvir) unetu u uređaj 200 za kodiranje u jednu ili više jedinica za obradu. Kao jedan primer, jedinica za obradu može se nazvati jedinica za kodiranje (CU). U ovom slučaju, počevši sa jedinicom stabla za kodiranje (CTU) ili najvećom jedinicom za kodiranje (LCU), jedinica za kodiranje može biti rekurzivno podeljena prema strukturi kvadratnog stabla, binarnog stabla ili ternarnog stabla (QTBTTT). Na primer, jedna jedinica za kodiranje može da se podeli na mnoštvo jedinica za kodiranje veće dubine na osnovu strukture kvadratnog stabla, strukture binarnog stabla i/ili ternarne strukture. U ovom slučaju, na primer, struktura kvadratnog stabla može prvo da se primeni dok struktura binarnog stabla i/ili ternarna struktura mogu da se primene kasnije. Alternativno, struktura binarnog stabla može prvo da se primeni. Procedura kodiranja prema ovom dokumentu može da se izvede na osnovu krajnje jedinice za kodiranje koja nije dalje podeljena. U ovom slučaju, najveća jedinica za kodiranje može da se koristi direktno kao krajnja jedinica za kodiranje na osnovu efikasnost kodiranja prema karakteristikama slike. Alternativno, jedinica za kodiranje može da bude rekurzivno podeljena na jedinice za kodiranje dalje veće dubine po potrebi, tako da jedinica za kodiranje optimalne veličine može da se koristi kao finalna jedinica za kodiranje. Ovde, procedura kodiranja može da uključuje procedure kao što su predikcija, transformacija i rekonstrukcija, koje su objašnjene u nastavku. Kao neki drugi primer, procesna jedinica može dalje da uključuje prediktivnu jedinicu (PU) ili transformacionu jedinicu (TU). U ovom slučaju, prediktivna jedinica i transformaciona jedinica mogu biti podeljene ili izdvojene iz prethodno opisane finalne jedinice za kodiranje. Prediktivna jedinica može biti jedinica za predikciju uzorka, dok transformaciona jedinica može biti za izvođenje transformacionog koeficijenta i/ili jedinica za izvođenje rezidualnog signala iz transformacionog koeficijenta.
[0038] Jedinica i pojam kao što je blok, površina, ili slično mogu da se koriste naizmenično u zavisnosti od okolnosti. U opštem slučaju, M × N blok može da predstavlja skup uzoraka ili transformacionih koeficijenata sastavljenih od M kolona i N redova. Uzorak može generalno da predstavlja piksel ili vrednost piksela, a može da predstavlja samo piksel/vrednost piksela luminozne komponente, ili samo piksel/vrednost piksela hromatske komponente. Uzorak može da se koristi kao pojam koji odgovara pikselu ili pelu jedne slike (ili slike).
[0039] U uređaju 200 za kodiranje, signal predikcije (prediktovan blok, niz uzoraka predikcije) koji izlazi iz inter prediktora 221 ili intra prediktora 222 oduzima se od ulaznog signala slike (originalni blok, originalni niz uzoraka) da bi se generisao rezidualni signal (rezidualni blok, rezidualni niz uzoraka), i generisani rezidualni signal prenosi se transformator 232. U ovom slučaju, kao što je prikazano, jedinica koja oduzima signal predikcije (prediktovan blok, niz uzoraka predikcije) od ulaznog signala slike (originalni blok, originalni niz uzoraka) u koderu 200 može se nazvati oduzimač 231. Prediktor može da izvodi predikciju na bloku koji se trenutno obrađuje (u nastavku, naziva se 'trenutni blok'), i može da generiše prediktovan blok uključujući uzorke predikcije za trenutni blok. Prediktor može da određuje da li je primenjena intra predikcija ili inter predikcija na osnovu trenutnog bloka ili CU. Kao što je objašnjeno u nastavku u opisu svakog režima predikcije, prediktor može da generiše razne informacije u vezi predikcije, kao što je informacija o režimu predikcije, i prenosi generisane informacije entropijskom koderu 240. Informacije o predikciji mogu biti kodirane u entropijskom koderu 240 i poslate u obliku toka bitova.
[0040] Intra prediktor 222 može da predvidi trenutni blok upućivanjem na uzorke u trenutnoj slici.
Uzorci na koje je upućeno mogu da budu smešteni blizu ili daleko od trenutnog bloka u skladu sa načinom predikcije. U intra predikciji, režimi predikcije mogu da uključuju veći broj neusmerenih režima i mnoštvo usmerenih režima. Neusmereni režimi mogu da uključuju, na primer, DC režim i planaran režim. Usmereni režim može da uključuje, na primer, 33 usmerena režima predikcije ili 65 usmerena režima predikcije prema stepenu detalja smera predikcije. Međutim, ovo je samo primer, a manje ili više usmereni režimi predikcije mogu da se koriste zavisno od podešavanja. Intra prediktor 222 može odrediti režim predikcije primenjen na trenutni blok korišćenjem režima predikcije primenjenog na susedni blok.
[0041] Inter prediktor 221 može izvesti prediktovan blok za trenutni blok na osnovu referentnog bloka (referentni niz uzoraka) koji je naznačen vektorom pokreta na referentnoj slici. U tom trenutku, da bi se smanjila količina informacija o pokretima preneta u režimu inter predikcije, informacija o pokretima može se predvideti na bazi bloka, podbloka ili uzorka na osnovu korelacije informacija o pokretima između susednog bloka i trenutnog bloka. Informacija o pokretima može da uključuje vektor pokreta i indeks referentne slike. Informacija o pokretima može dalje da uključuje informacije o smeru inter predikcije (L0 predikcija, L1 predikcija, Bi predikcija, itd.). U slučaju inter predikcije, susedni blok može da uključuje prostorni susedni blok koji postoji u trenutnoj slici i vremenski susedni blok koji postoji u referentnoj slici. Referentna slika koja uključuje referentni blok i referentna slika koja uključuje vremenski susedni blok mogu biti iste ili da se međusobno razlikuju. Vremenski susedni blok može se nazvati kolociran referentni blok, kolociran CU (colCU), i slično, a referentna slika koja uključuje vremenski susedni blok može se nazvati kolocirana slika (colPic). Na primer, inter prediktor 221 može da konfiguriše listu kandidata za informacije o pokretima na osnovu susednih blokova i generiše informacije koje pokazuju koji je kandidat korišćen da bi se izveo vektor pokreta i/ili indeks referentne slike trenutnog bloka. Inter predikcija može da se izvede na osnovu različitih režima predikcije. Na primer, u slučaju režima preskakanja i režima spajanja, inter prediktor 221 može da koristi informacije o pokretima
1
susednog bloka kao informacije o pokretima trenutnog bloka. U režimu preskakanja, za razliku od režima spajanja, rezidualni signal možda se ne prenese. U slučaju režima predikcije informacija o pokretima (predikcija vektora pokreta, MVP), vektor pokreta susednog bloka može da se koristi kao prediktor vektora pokreta i vektor pokreta trenutnog bloka može da bude naznačen signalizacijom razlike vektora pokreta.
[0042] Prediktor 220 može da generiše signal predikcije na osnovu različitih postupaka predikcije. Na primer, prediktor može da primeni intra predikciju ili inter predikciju za predikciju na jedan blok, a takođe može primeniti intra predikciju i inter predikciju jednovremeno. Ovo se može nazvati kombinovana inter i intra predikcija (CIIP). Osim toga, prediktor može biti zasnovan na režimu predikcije unutar kopije bloka (IBC), ili režimu palete da bi se izvela predikcija na bloku. IBC režim predikcije ili režim palete može da se koristi za kodiranje sadržaja slike/videozapisa za igre ili slično, kao što je kodiranje sadržaja ekrana (SCC). Iako IBC suštinski izvodi predikciju u trenutnom bloku, ona može da bude izvedena slično inter predikciji po tome što izvodi referentni blok u trenutnom bloku. Odnosno, IBC može da koristi najmanje jednu od tehnika inter predikcije opisanih u ovom dokumentu. Režim palete može se smatrati primerom intra kodiranja ili intra predikcije. Kada se primeni režim palete, vrednost uzorka u slici može biti signalizirana na osnovu informacija o indeksu palete i tabeli palete.
[0043] Signal predikcije generisan preko prediktora (uključujući inter prediktor 221 i/ili intra prediktor 222) može da se koristi za generisanje rekonstruisanog signala ili za generisanje rezidualnog signala. Transformator 232 može da generiše transformacione koeficijente primenom tehnike transformacije na rezidualni signal. Na primer, tehnika transformacije može da uključuje najmanje jedan od diskretne kosinusne transformacije (DCT), diskretne sinusne transformacije (DST), Karhunen-Loève transformacije (KLT), transformacije zasnovane na grafikonu (GBT), ili uslovne nelinearne transformacije (CNT). Ovde, GBT predstavlja transformaciju dobijenu iz grafikona kada su informacije o vezi između piksela prikazane na grafikonu. CNT odnosi se na transformaciju dobijenu na osnovu nekog signala predikcije generisanog pomoću svih prethodnih rekonstruisanih piksela. Pored toga, postupak transformacije može da se primeni na kvadratne blokove piksela koji imaju istu veličinu ili može da se primeni na blokove sa promenljivom veličinom umesto kvadratnih.
[0044] Kvantizator 233 može kvantizovati transformacione koeficijente i preneti ih entropijskom koderu 240, a entropijski koder 240 može da kodira kvantizovan signal (informacije o kvantizovanim transformacionim koeficijentima) i emituje kodiran signal u toku bitova. Informacije kvantizovanim transformacionim koeficijentima mogu se nazvati rezidualne informacije. Kvantizator 233 može da preuredi kvantizovane transformacione koeficijente tipa bloka u jednodimenzionalni vektorski oblik na osnovu redosleda skeniranja koeficijenata, i generiše informacije o kvantizovanim transformacionim koeficijentima na osnovu kvantizovanih transformacionih koeficijenata jednodimenzionalnog vektorskog oblika. Entropijski koder 240 može da izvodi različite postupke kodiranja kao što su, na primer, eksponencijalni Golomb, kontekstualno-adaptivno kodiranje promenljive dužine (CAVLC), kontekstualno-adaptivno binarno aritmetičko kodiranje (CABAC), i slično. Entropijski koder 240 može da kodira informacije potrebne za rekonstrukciju videozapisa/slike osim kvantizovanih transformacionih koeficijenata (npr. vrednosti sintaktičkih elemenata, itd.) zajedno ili zasebno. Kodirane informacije (npr., informacije o kodiranom videozapisu/slici) mogu se preneti ili čuvati na jedinici na bazi sloja apstrakcije mreže (NAL) u obliku toka bitova. Informacije o videozapisu/slici mogu dalje da uključuju informacije o različitim skupovima parametara kao što su skup parametara za adaptaciju (APS), skup parametara za sliku (PPS), skup parametara za sekvencu (SPS), skup parametara za videozapis (VPS) ili slično. Osim toga, informacije o videozapisu/slici mogu dalje da uključuju opšte informacije o ograničenjima. U ovom dokumentu, informacije i/ili sintaktički elementi koji se prenose/signaliziraju uređaju za dekodiranje iz uređaja za kodiranje mogu biti uključeni u informacije o videozapisu/slici. Informacije o videozapisu/slici mogu se kodirati prethodno opisanom procedurom kodiranja i uključiti u tok bitova. Tok bitova može se preneti preko mreže, ili sačuvati u digitalnom medijumu za skladištenje. Ovde, mreža može da uključuje radiodifuznu mrežu, komunikacionu mrežu i/ili slično, a digitalni medijum za skladištenje može da uključuje različite medijume za skladištenje kao što su USB, SD, CD, DVD, Blu-ray, HDD, SSD, i slično. Predajnik (nije prikazan) koji prenosi izlaz signala iz entropijskog kodera 240 i/ili memorije (nije prikazan) koja ga čuva može biti konfigurisan kao interni/eksterni element uređaja 200 za kodiranje, ili predajnik može da bude uključen u entropijski koder 240.
[0045] Kvantizovani transformacioni koeficijenti koji izlaze iz kvantizatora 233 mogu da se koriste za generisanje signala predikcije. Na primer, primenom dekvantizacije i inverzne transformacije na kvantizovane transformacione koeficijente preko dekvantizatora 234 i inverznog transformatora 235, rezidualni signal (rezidualni blok ili rezidualni uzorci) može da bude rekonstruisan. Sabirač 155 dodaje rekonstruisan rezidualni signal signalu predikcije koji izlazi iz inter prediktora 221 ili intra prediktora 222, tako da može da se generiše rekonstruisan signal (rekonstruisana slika, rekonstruisan blok, rekonstruisan niz uzoraka). Kada ne postoji ostatak za blok koji se trenutno obrađuje kao u slučaju gde se primenjuje režim preskakanja, prediktovan blok može da se koristi kao rekonstruisan blok. Sabirač 250 može se nazvati rekonstruktorski ili rekonstruisani blok generator. Generisani rekonstruisani signal može da se koristi za intra predikciju bloka koji se sledeći obrađuje u trenutnom bloku, i kao što je opisano u nastavku, može da se koristi za inter predikciju naredne slike filtriranjem.
[0046] U međuvremenu, u postupku kodiranja i/ili rekonstrukcije slike, može se primeniti luminozno mapiranje sa hromatskim skaliranjem (LMCS).
[0047] Filter 260 može da poboljša subjektivni/objektivni video kvalitet primenom filtriranja na rekonstruisan signal. Na primer, filter 260 može da generiše modifikovanu rekonstruisanu sliku primenom različitih postupaka filtriranja na rekonstruisanu sliku, i može da čuva modifikovanu rekonstruisanu sliku u memoriji 270, posebno u DPB memorije 270. Različiti postupci filtriranja mogu da uključuju, na primer, filtriranje za deblokiranje, adaptivni ofset uzorka, filter adaptivne petlje, bilateralni filter ili slično. Kao što je objašnjeno u nastavku u ovom opisu svakog postupka filtriranja, filter 260 može da generiše razne informacije koje se odnose na filtriranje, i prenese generisane informacije na entropijski koder 240. Informacije o filtriranju mogu da se kodiraju u entropijskom koderu 240 i izađu u obliku toka bitova.
[0048] Modifikovana rekonstruisana slika koja se prenosi na memoriju 270 može da se koristi kao referentna slika u inter prediktoru 221. Na taj način, uređaj za kodiranje može izbeći nepodudarnost predikcije u uređaju 100 za kodiranje i uređaju za dekodiranje kada se primeni inter predikcija, i može takođe da poboljša efikasnost kodiranja.
[0049] Memorija 270 DPB može da čuva modifikovanu rekonstruisanu sliku kako bi se koristila kao referentna slika u inter prediktoru 221. Memorija 270 može da čuva informacije o pokretima bloka u trenutnoj slici, iz koje se dobijaju (ili kodiraju) informacije o pokretima i/ili informacije o pokretima za blokove u već rekonstruisanoj slici. Sačuvane informacije o pokretima mogu se preneti inter prediktoru 221 da bi se koristile kao informacije o pokretima za susedni blok ili informacije o pokretima za vremenski susedni blok. Memorija 270 može da čuva rekonstruisane uzorke rekonstruisanih blokova u trenutnoj slici, i prenese ih intra prediktoru 222.
[0050] FIG.3 je dijagram koji šematski opisuje konfiguraciju uređaja za dekodiranje videozapisa/slike na koji se ovaj dokument može primeniti.
[0051] Što se tiče FIG.3, uređaj 300 za video dekodiranje može da uključuje entropijski dekoder 310, rezidualni procesor 320, prediktor 330, sabirač 340, filter 350 i memoriji 360. Prediktor 330 može da uključuje inter prediktor 331 i intra prediktor 332. Rezidualni procesor 320 može da uključuje dekvantizator 321 i inverzni transformator 321. Entropijski dekoder 310, rezidualni procesor 320, prediktor 330, sabirač 340 i filter 350, koji su prethodno opisani, mogu da se sastoje od jedne ili više komponenta hardvera (npr., čipsetovi ili procesori dekodera) prema nekom načinu ostvarivanja. Osim toga, memorija 360 može da uključuje bafer za dekodiranu sliku (DPB), i može da se sastoji od digitalnog medijuma za skladištenje. Komponenta hardvera može dalje da uključuje memoriju 360 kao internu/eksternu komponentu.
[0052] Kada tok bitova koji uključuje informacije o videozapisu/slici predstavlja ulaz, uređaj 300 za dekodiranje može da rekonstruiše sliku shodno postupku kojim se obrađuju informacije o videozapisu/slici u uređaju za kodiranje sa Fig.2. Na primer, uređaj 300 za dekodiranje može da izvede jedinice/blokove na osnovu informacija koje se odnose na podelu blokova dobijenu od toka bitova. Uređaj 300 za dekodiranje može da izvodi dekodiranje pomoću procesne jedinice izvedene u uređaju za kodiranje. Prema tome, procesna jedinica za dekodiranje može biti, na primer, jedinica za kodiranje, koja može da bude podeljena duž strukture kvadratnog stabla, strukture binarnog stabla i/ili strukture ternarnog stabla iz jedinice stabla za kodiranje ili najveće jedinice za kodiranje. Jedna ili više
1
transformacionih jedinica može se izvesti iz jedinice za kodiranje. Takođe, rekonstruisani signal slike koji je dekodiran i poslat uređajem 300 za dekodiranje može da se reprodukuje pomoću reproduktora.
[0053] Uređaj 300 za dekodiranje može da primi izlazni signal iz uređaja za kodiranje sa Fig.2 u obliku toka bitova, i taj primljen signal može da se dekodira pomoću entropijskog dekodera 310. Na primer, entropijski dekoder 310 može da raščlani tok bitova da bi se dobile informacije (npr., informacije o videozapisu/slici) potrebne za rekonstrukciju slike (ili rekonstrukciju slike). Informacije o videozapisu/slici mogu dalje da uključuju informaciju o različitim skupovima parametara kao što su skup parametara za adaptaciju (APS), skup parametara za sliku (PPS), skup parametara za sekvencu (SPS), skup parametara za videozapis (VPS) ili slično. Osim toga, informacije o videozapisu/slici mogu dalje da uključuju opšte informacije o ograničenjima. Uređaj za dekodiranje može da dekodira sliku dalje na osnovu informacija on skupu parametara i/ili opštih informacija o ograničenjima. U ovom dokumentu, signalizirane/primljene informacije i/ili sintaktički elementi, koji su objašnjeni u nastavku, mogu se dekodirati procedurom dekodiranja i dobiti iz toka bitova. Na primer, entropijski dekoder 310 može da dekodira informacije u toku bitova na osnovu postupka kodiranja kao što je eksponencijalno Golomb kodiranje, CAVLC, CABAC ili slično, i može da pošalje vrednost sintatičkog elementa potrebnu za rekonstrukciju slike i kvantizovane vrednosti transformacionog koeficijenta koji se odnosi na ostatak. Određenije, CABAC postupak entropijskog dekodiranja može da prima bin koji odgovara svakom sintatičkom elementu u toku bitova, određuje kontekstni model koji koristi dekodiranje ciljnih informacija o sintatičkom elementu i dekodiranje informacija o susednim i dekodiranje ciljnih blokova, ili informacije o simbolu/binu dekodirane u prethodnoj fazi, predviđa verovatnoću generisanja bina prema određenom kontekstnom modelu i izvodi aritmetičko dekodiranje bina da bi se generisao simbol koji odgovara svakoj vrednosti sintatičkog elementa. Ovde, CABAC postupak entropijskog dekodiranja može da ažurira kontekstni model korišćenjem informacija o simbolu/binu dekodiranih za kontekstni model sledećeg simbola/bina nakon određivanja kontekstnog modela. Informacije o predikciji među informacijama dekodiranim u entropijskom dekoderu 310 mogu se obezbediti prediktoru (inter prediktor 332 i intra prediktor 331), i rezidualne vrednosti, to jest, kvantizovani transformacioni koeficijenti, na kojima se izvodi entropijsko dekodiranje u entropijskom dekoderu 310, i povezane informacije o parametrima mogu biti ulaz u rezidualni procesor 320. Rezidualni procesor 320 može izvesti rezidualni signal (rezidualni blok, rezidualne uzorke, rezidualni niz uzoraka). Osim toga, informacije o filtriranju među informacijama dekodiranim u entropijskom dekoderu 310 mogu se obezbediti filteru 350. U međuvremenu, prijemnik (nije prikazan) koji prima signal koji izlazi iz uređaj za kodiranje može dalje činiti uređaj 300 za dekodiranje kao interni/eksterni element, dok prijemnik može biti komponenta entropijskog dekodera 310. U međuvremenu, uređaj za dekodiranje prema ovom dokumentu može se nazvati uređaj za kodiranje videozapisa/slike/slike, i uređaj za dekodiranje može da se klasifikuje u dekoder informacija (dekoder informacija o videozapisu/slici/slici) i dekoder uzoraka (dekoder uzoraka videozapisa/slike/slike). Dekoder informacija može da uključuje entropijski dekoder 310, i dekoder uzoraka može da uključuje najmanje jedan od dekvantizatora 321, inverznog transformatora 322, sabirača 340, filtera 350, memorije 360, inter prediktora 332 i intra prediktora 331.
[0054] Dekvantizator 321 može da otprema transformacione koeficijente dekvantizovanjem kvantizovanih transformacionih koeficijenata. Dekvantizator 321 može da preuredi kvantizovane transformacione koeficijente u obliku dvodimenzionalnog bloka. U ovom slučaju, preuređenje može da izvede preuređenje na osnovu redosleda skeniranja koeficijenata koji se izvodi u uređaju za kodiranje. Dekvantizator 321 može da izvodi dekvantizaciju na kvantizovanim transformacionim koeficijentima korišćenjem parametra kvantizacije (npr., informacije o veličini faze kvantizacije), i dobija transformacione koeficijente.
[0055] Dekvantizator 322 dobija rezidualni signal (rezidualni blok, rezidualni niz uzoraka) inverzivnim transformisanjem transformacionih koeficijenata.
[0056] Prediktor može da izvodi predikciju na trenutnom bloku, i generiše prediktovan blok uključujući uzorke predikcije za trenutni blok. Prediktor može da određuje da li je intra predikcija ili inter predikcija primenjena na trenutni blok na osnovu informacije o predikciji koje izlaze iz entropijskog dekodera 310, i posebno može da odredi režim intra/inter predikcije.
[0057] Prediktor 320 može da generiše signal predikcije na osnovu različitih postupaka predikcije. Na primer, prediktor može da primeni intra predikciju ili inter predikciju za predikciju na jednom bloku, i, isto tako, može da primeni intra predikciju i inter predikciju istovremeno. Ovo se može nazvati kombinovana inter i intra predikcija (CIIP). Osim toga, prediktor može da se bazira na režimu predikcije unutar kopije bloka (IBC), ili režimu palete kako bi se izvela predikcija na bloku. IBC režim predikcije ili režim palete može da se koristi za kodiranje sadržaja slike/videozapisa ili slično, kao što je kodiranje sadržaja na ekranu (SCC). Iako, IBC suštinski izvodi predikciju u trenutnom bloku, može se izvesti slično inter predikciji po tome što izvodi referentni blok u trenutnom bloku. To jest, IBC može da koristi najmanje jednu od tehnika inter predikcije opisanih u ovom dokumentu. Režim palete može da predstavlja primer intra kodiranja ili intra predikcije. Kada se primeni režim palete, informacije o tabeli palete i indeksu palete mogu se uključiti u informacije o videozapisu/slici i signalizirati.
[0058] Intra prediktor 331 može da predvidi trenutni blok pozivajući se na uzorke u trenutnoj slici.
Referentni uzorci mogu da budu locirani susedno ili odvojeno od trenutnog bloka u skladu sa načinom predikcije. U intra predikciji, režimi predikcije mogu da uključuju veći broj neusmerenih režima i više usmerenih režima. Intra prediktor 331 može da određuje režim predikcije primenjen na trenutni blok korišćenjem režima predikcije primenjenog na susedni blok.
[0059] Inter prediktor 332 može izvesti prediktovan blok za trenutni blok na osnovu referentnog bloka (referentni niz uzoraka) naznačenog vektorom pokreta na referentnoj slici. Istovremeno, kako bi se smanjila količina informacija o pokretima preneta u režimu inter predikcije, informacije o pokretima
1
mogu se predvideti na osnovu bloka, podbloka ili uzorka na osnovu korelacije informacija o pokretima između susednog bloka i trenutnog bloka. Informacije o pokretima mogu da uključuju vektor pokreta i indeks referentne slike. Informacija o pokretima može dalje da uključuje informacije o smeru inter predikcije (L0 predikcija, L1 predikcija, Bi predikcija, itd.). U slučaju inter predikcije, susedni blok može da uključuje prostorni susedni blok koji postoji u trenutnoj slici i vremenski susedni blok koji postoji u referentnoj slici. Na primer, inter prediktor 332 može da konfiguriše listu kandidata za informacije o pokretima na osnovu susednih blokova, i izvodi vektor pokreta i/ili indeks referentne slike trenutnog bloka na osnovu primljenih informacija o izboru kandidata. Inter predikcija može se izvesti na osnovu različitih režima predikcije, i informacije o predikciji mogu da uključuju informacije koje naznačavaju režim inter predikcije za trenutni blok.
[0060] Sabirač 340 dodaje dobijeni rezidualni signal signalu predikcije (prediktovan blok, prediktovan niz uzoraka) koji izlazi iz prediktora (inter prediktor 332 i/ili intra prediktor 331), tako da se može generisati rekonstruisan signal (rekonstruisana slika, rekonstruisan blok, rekonstruisan niz uzoraka). Kada nema ostatka za blok koji se trenutno obrađuje kao u slučaju gde se primenjuje režim preskakanja, prediktovan blok može da se koristi kao rekonstruisan blok.
[0061] Sabirač 340 se može nazvati rekonstruktorski ili rekonstruisan blok generator. Generisan rekonstruisan signal može da se koristi za intra predikciju sledećeg bloka koji se trenutno obrađuje u trenutnom bloku, i kao što je u nastavku opisano, može da se izbaci filtriranjem ili koristi za inter predikciju sledeće slike.
[0062] U međuvremenu, u postupku za dekodiranje slike, može da se primeni luminozno mapiranje sa hromatskim skaliranjem (LMCS).
[0063] Filter 350 može da poboljša subjektivni/objektivni video kvalitet primenom filtriranja na rekonstruisan signal. Na primer, filter 350 može da generiše modifikovanu rekonstruisanu sliku primenom različitih postupaka filtriranja na rekonstruisanu sliku, i može da prenese modifikovanu rekonstruisanu sliku u memoriji 360, posebno u DPB memorije 360. Različiti postupci filtriranja mogu da uključuju, na primer, filtriranje za deblokiranje, adaptivni ofset uzorka, filter adaptivne petlje, bilateralni filter ili slično.
[0064] (Modifikovana) rekonstruisana slika koja se čuva u DPB memorije 360 može da se koristi kao referentna slika u inter prediktoru 332. Memorija 360 može da čuva informacije o pokretima za blok u trenutnoj slici, iz koje se izvode (ili dekodiraju) informacije o pokretima i/ili informacije o pokretima za blokova u već rekonstruisanu sliku. Sačuvane informacije o pokretima mogu da se prenesu inter prediktoru 260 da bi se koristile kao informacije o pokretima susednog bloka ili informacije o pokretima za vremenski susedni blok. Memorija 360 može da čuva rekonstruisane uzorke rekonstruisanih blokova u trenutnoj slici, i prenosi ih intra prediktoru 331.
1
[0065] U ovom opisu, opisani načini ostvarivanja za filter 260, inter prediktor 221 i intra prediktor 222 uređaja 200 za kodiranje mogu se slično ili isto tako primeniti na filter 350, inter prediktor 332 i intra prediktor 331 uređaja 300 za dekodiranje.
[0066] Kao što je prethodno opisano, predikcija se izvodi da se poveća efikasnost kompresije u izvođenju video kodiranja. Na ovaj način, može da se generiše prediktovan blok koji uključuje uzorke predikcije za trenutni blok, koji je ciljni blok kodiranja. Ovde, prediktovan blok uključuje uzorke predikcije u prostornom domenu (ili domenu piksela). Prediktovan blok može se na identičan način izvesti u uređaju za kodiranje i uređaju za dekodiranje, a uređaj za kodiranje može da poveća efikasnost kodiranja slike signaliziranjem uređaju za dekodiranje ne originalnu vrednost uzorka za sam originalni blok već informacije o rezidualnom (rezidualne informacije) između originalnog bloka i prediktovanog bloka. Uređaj za dekodiranje može da izvede rezidualni blok uključujući rezidualne uzorke na osnovu rezidualnih informacija, generiše rekonstruisan blok uključujući rekonstruisane uzorke dodavanjem rezidualnog bloka prediktovanom bloku, i generiše rekonstruisanu sliku uključujući rekonstruisane blokove.
[0067] Rezidualne informacije mogu da se generišu procedurama transformacije i kvantizacije. Na primer, uređaj za kodiranje može da izvede rezidualni blok između originalnog bloka i prediktovanog bloka, izvede transformacione koeficijente izvođenjem procedure transformacije na rezidualnim uzorcima (rezidualni niz uzoraka) uključenim u rezidualni blok, i izvede kvantizovane transformacione koeficijente izvođenjem procedure kvantizacije na transformacione koeficijente, tako da može da signalizira povezane rezidualne informacije uređaju za dekodiranje (kroz tok bitova). Ovde, rezidualne informacije mogu da uključuju vrednost informacija, položaj informacija, neku tehniku transformacije, jezgro transformacije, neki parametar kvantizacija ili slično, za kvantizovane transformacione koeficijente. Uređaj za dekodiranje može da izvodi proceduru kvantizacije/dekvantizacije i izvodi rezidualne uzorke (ili rezidualni uzorak blok), na osnovu rezidualnih informacija. Uređaj za dekodiranje može da generiše rekonstruisan blok na osnovu prediktovanog bloka i rezidualnog bloka. Uređaj za kodiranje može da izvede rezidualni blok dekvantizovanjem/inverzivnim transformisanjem kvantizovanih transformacionih koeficijenata za referencu za inter predikciju sledeće slike, i može da generiše rekonstruisanu sliku na osnovu ovoga.
[0068] Kada se primenjuje inter predikcija, prediktor uređaja za kodiranje/uređaja za dekodiranje može da izvodi inter predikciju na bazi jedinice bloka i izvodi uzorak predikcije. Inter predikcija može da bude predikcija izvedena na način da zavisi od elemenata podataka (npr., vrednosti uzoraka ili informacije o pokretima) slike(a) osim trenutne slike. Kada se primeni inter predikcija na trenutni blok, prediktovan blok (niz uzoraka predikcije) za trenutni blok može se izvesti na osnovu referentnog bloka (referentni niz uzoraka) naznačenog vektorom pokreta na referentnoj slici koji označava indeks referentne slike.
Istovremeno, kako bi se smanjila količina informacija o pokretima prenetih u režimu inter predikcije,
1
informacije o pokretima za trenutni blok mogu se predvideti na bazi jedinice bloka, podbloka ili uzorka na osnovu korelacije informacija o pokretima između susednog bloka i trenutnog bloka. Informacije o pokretima mogu da uključuju vektor pokreta i indeks referentne slike. Informacije o pokretima mogu dalje da uključuju informacija o vrsti inter predikcije (L0 predikcija, L1 predikcija, Bi predikcija, itd.). Kada se primenjuje inter predikcija, susedni blok može da uključuje prostorni susedni blok koji postoji u trenutnoj slici i vremenski susedni blok koji postoji u referentnoj slici. Referentna slika koja uključuje referentni blok i referentna slika koja uključuje vremenski susedni blok mogu biti iste ili se mogu razlikovati jedna od druge. Vremenski susedni blok može se nazvati kolociran referentni blok, kolociran CU (colCU), i slično, dok se referentna slika koja uključuje vremenski susedni blok može nazvati kolocirana slika (colPic). Na primer, lista kandidata za informacije o pokretima može da se konfiguriše na osnovu susednih blokova trenutnog bloka, i mogu da se signaliziraju informacije o zastavici ili indeksu koje ukazuju koji je kandidat odabran (korišćen) kako bi se izveo vektor pokreta i/ili indeks referentne slike trenutnog bloka. Inter predikcija može se izvesti na osnovu različitih režima predikcije. Na primer, u slučaju režima preskakanja i (normalnog) režima spajanja, informacije o pokretima za trenutni blok mogu biti iste kao informacije o pokretima izabranog susednog bloka. U režimu preskakanja, za razliku od režima spajanja, rezidualni signal može da se ne prenosi. U slučaju režima predikcije informacija o pokretima (predikcija vektora pokreta (MVP)), vektor pokreta za izabrani susedni blok može da se koristi kao prediktor vektora pokreta, i razlika vektora pokreta može da se signalizira. U ovom slučaju, vektor pokreta za trenutni blok može se izvesti korišćenjem zbira prediktora vektora pokreta i razlike vektora pokreta.
[0069] Procedura za kodiranje videozapisa/slike na osnovu inter predikcije može šematski da uključuje, na primer, sledeće.
[0070] Fig.4 prikazuje primer postupka za kodiranje videozapisa/slike na osnovu inter predikcije.
[0071] Uređaj za kodiranje izvodi inter predikciju na trenutnom bloku (S400). Uređaj za kodiranje može da izvede režim inter predikcije i informacije o pokretima za trenutni blok, i generiše uzorke predikcije za trenutni blok. Ovde, određivanje režima inter predikcije, izvođenje informacija o pokretima, i procedura generisanja uzoraka predikcije mogu se izvoditi istovremeno ili jedna za drugom. Na primer, inter prediktor uređaja za kodiranje može da uključuje deo za određivanje režima predikcije, deo za izvođenje informacija o pokretima i deo za izvođenje prediktovanog uzoraka. Deo za određivanje režima predikcije može da određuje režim predikcije za trenutni blok, deo za izvođenje informacija o pokretima može da izvodi informacije o pokretima za trenutni blok, i deo za izvođenje uzoraka predikcije može da izvodi uzorke prediktovan za trenutni blok. Na primer, inter prediktor uređaja za kodiranje može da izvodi pretragu za blokom koji je sličan trenutnom bloku u određenoj oblasti (oblast pretrage) referentnih slika procenom pokreta, i izvede referentni blok čija je razlika u odnosu na trenutni blok minimalna, ili manja ili jednaka određenom nivou. Na osnovu ovoga, može se izvesti indeks referentne slike koji naznačava
1
referentnu sliku na kojoj je lociran referentni blok, i na osnovu razlike u položaju između referentnog bloka i trenutnog bloka, može se izvesti vektor pokreta. Uređaj za kodiranje može da odredi režim među različitim režimima predikcije, koji se primenjuje na trenutni blok. Uređaj za kodiranje može da poredi RD troškove za različite režime predikcije, i odredi optimalan režim predikcije za trenutni blok.
[0072] Na primer, kada se režim preskakanja ili režim spajanja primeni na trenutnom bloku, uređaj za kodiranje može da konfiguriše listu kandidata za spajanje koja je opisana u nastavku, i izvede referentni blok čija razlika u odnosu na trenutni blok je minimalna ili manja ili jednaka određenom nivou među referentnim blokovima koji spajaju kandidate uključene u listu kandidata za spajanje. U ovom slučaju, može se odabrati kandidat za spajanje povezan sa izvedenim referentnim blokom, i informacije o indeksu spajanja koje označavaju odabranog kandidata za spajanje mogu da se generišu i signaliziraju uređaju za dekodiranje. Informacije o pokretima za trenutni blok mogu se izvesti korišćenjem informacija o pokretima za odabrani kandidat za spajanje.
[0073] Kao neki drugi primer, kada se (A)MVP primenjuje na trenutni blok, uređaj za kodiranje može da konfiguriše listu (A)MVP kandidata, i koristi vektor pokreta za mvp (prediktor vektora pokreta) kandidat odabran među mvp kandidatima uključenim u listu (A)MVP kandidata kao mvp za trenutni blok. U ovom slučaju, na primer, vektor pokreta koji označava referentni blok izveden prethodno opisanom procenom pokreta može da se koristi kao vektor pokreta za trenutni blok, i među mvp kandidatima, mvp kandidat koji ima vektor pokreta koji se najmanje razlikuje od vektora pokreta za trenutni blok može biti odabrani mvp kandidat. Može se izvesti MVD (razlika vektora pokreta) koja je razlika dobijena oduzimanjem mvp od vektora pokreta za trenutni blok. U ovom slučaju, informacija o MVD može da se signalizira uređaju za dekodiranje. Pored toga, kada se primeni (A)MVP režim, vrednost indeksa referentne slike može da se konfiguriše kao informacija o indeksu referentne slike i odvojeno signalizira uređaju za dekodiranje.
[0074] Uređaj za kodiranje može izvesti rezidualne uzorke na osnovu uzoraka predikcije (S410). Uređaj za kodiranje može izvesti rezidualne uzorke poređenjem originalnih uzoraka za trenutni blok i uzoraka predikcije.
[0075] Uređaj za kodiranje kodira informacije o slici koje uključuju informacije o predikciji i rezidualne informacije (S420). Uređaj za kodiranje može da emituje kodirane informacije o slici u obliku toka bitova. Informacije o predikciji mogu da uključuju informacije o režimu predikcije (npr., zastavica za preskakanje, zastavica za spajanje, indeks režima ili slično) i informacije o informacijama o pokretima kao informacije o proceduri predikcije. Informacije o informacijama o pokretima mogu da uključuju informacije o izboru kandidata (npr., indeks spajanja, mvp zastavica ili mvp indeks), što su informacije za izvođenje vektora pokreta. Osim toga, informacije o informacijama o pokretima mogu da uključuju informacije o prethodno opisanom MVD, i/ili informacije o indeksu referentne slike. Osim toga, informacije o informacijama o pokretima mogu da uključuju informacije koje naznačavaju da li se primenjuje L0 predikcija, L1 predikcija ili bi-predikcija. Rezidualne informacije su informacije o
1
rezidualnim uzorcima. Rezidualne informacije mogu da uključuju informacije o kvantizovanim transformacionim koeficijentima za rezidualne uzorke.
[0076] Izlazni tok bitova može da se čuva u (digitalnom) medijumu za skladištenje i dostavi uređaju za dekodiranje, ili se može dostaviti uređaju za dekodiranje preko mreže.
[0077] U međuvremenu, kao što je prethodno opisano, uređaj za kodiranje može da generiše rekonstruisanu sliku (uključujući rekonstruisane uzorke i rekonstruisan blok) na osnovu referentnih uzoraka i rezidualnih uzoraka. Ovo je kako bi se izveo isti rezultat predikcije u uređaju za kodiranje kao onaj koji se izvodi u uređaju za dekodiranje, a razlog je da efikasnost kodiranja može da se poveća na ovaj način. Prema tome, uređaj za kodiranje može da čuva rekonstruisanu sliku (ili rekonstruisane uzorke, rekonstruisan blok) u memoriji, i koristi je kao referentnu sliku za inter predikciju. Procedura filtriranja u petlji može se dalje primeniti na rekonstruisanu sliku kao što je prethodno opisano.
[0078] Procedura dekodiranja videozapisa/slika na osnovu inter predikcije može šematski da uključuje, na primer, sledeće.
[0079] Fig.5 prikazuje primer postupka za dekodiranje videozapisa/slike na osnovu inter predikcije.
[0080] Što se tiče Fig.5, uređaj za dekodiranje može da izvodi operaciju koja odgovara operaciji koja se izvodi u uređaju za kodiranje. Uređaj za dekodiranje može da izvede predikciju na trenutnom bloku i izvede uzorke predikcije na osnovu primljenih informacija o predikciji.
[0081] Određenije, uređaj za dekodiranje može da određuje režim predikcije za trenutni blok na osnovu primljenih informacija o predikciji (S500). Uređaj za dekodiranje može da odredi koji se režim inter predikcije primenjuje na trenutnom bloku na osnovu informacija o režimu predikcije u informacijama o predikciji.
[0082] Na primer, može se odrediti na osnovu zastavica za spajanje da li je primenjen režim spajanja na trenutnom bloku ili je određen (A)MVP režim. Alternativno, jedan režim inter predikcije može se izabrati među različitim kandidatima za režim inter predikcije na osnovu indeksa režima. Kandidati za režim inter predikcije mogu da uključuju režim preskakanja, režim spajanja i/ili (A)MVP režim, ili mogu da uključuju različite inter režime predikcije koji će biti opisani u nastavku.
[0083] Uređaj za dekodiranje izvodi informacije o pokretima za trenutni blok na osnovu određenog režima inter predikcije (S510). Na primer, kada je režim preskakanja ili režim spajanja primenjen na trenutnom bloku, uređaj za dekodiranje može da konfiguriše listu kandidata za spajanje što je objašnjeno u nastavku, i izabere jednog od kandidata za spajanje koji je uključen u listu kandidata za spajanje. Selekcija se može izvesti na osnovu prethodno opisanih informacija o selekciji (indeks spajanja). Informacija o pokretima za trenutni blok može se izvesti korišćenjem informacija o pokretima odabranog kandidata za spajanje. Informacije o pokretima odabranog kandidata za spajanje mogu da se koriste kao informacije o pokretima za trenutni blok.
2
[0084] Kao neki drugi primer, kada se (A)MVP režim primeni na trenutnom bloku, uređaj za dekodiranje može da konfiguriše listu (A)MVP kandidata koja je opisana u nastavku, i koristi vektor pokreta kandidata prediktora vektora pokreta (MVP) odabranog među mvp kandidatima koji su uključeni u listu (A)MVP kandidata kao MVP za trenutni blok. Selekcija se može izvesti na osnovu prethodno opisanih informacija o selekciji (mvp zastavica ili mvp indeks). U ovom slučaju, MVD za trenutni blok može se izvesti na osnovu informacija o MVD, a vektor pokreta za trenutni blok može se izvesti na osnovu MVD i mvp za trenutni blok. Osim toga, indeks referentne slike trenutnog bloka može se izvesti na osnovu informacija o indeksu referentne slike. Slika u listi referentnih slika koja se odnosi na trenutni blok, na koju indeks referentne slike ukazuje, može se izvesti kao referentna slika koja se poziva na inter predikciju za trenutni blok.
[0085] U međuvremenu, kao što je opisano u nastavku, informacije o pokretima za trenutni blok mogu se izvesti bez konfiguracije liste kandidata, a u ovom slučaju, informacije o pokretima za trenutni blok mogu se izvesti prema proceduri opisanoj u režimu predikcije koja će biti opisana u nastavku. U ovom slučaju, može se izostaviti konfiguracija liste kandidata kao što je prethodno opisana.
[0086] Uređaj za dekodiranje može da generiše uzorke predikcije za trenutni blok na osnovu informacija o pokretima za trenutni blok (S520). U ovom slučaju, referentna slika može se izvesti na osnovu indeksa referentne slike za trenutni blok, i uzorci predikcije za trenutni blok mogu se izvesti korišćenjem uzoraka referentnog bloka na referentnoj slici koja je naznačena vektorom pokreta za trenutni blok. U ovom slučaju, procedura filtriranja uzoraka predikcije za sve ili neke od uzoraka predikcije za trenutni blok može se dalje izvesti u zavisnosti od okolnosti kao što je opisano u nastavku.
[0087] Na primer, inter prediktor uređaja za kodiranje može da uključuje deo koji određuje režim predikcije, deo koji izvodi informacije o pokretima i deo koji izvodi prediktovane uzorke, može da odredi režim predikcije za trenutni blok na osnovu informacija o režimu predikcije primljenih na delu za određivanje režima predikcije, može da izvede informacije o pokretima (vektor pokreta i/ili indeks referentne slike i/ili slično) za trenutni blok na osnovu informacija o informacijama o pokretima primljenih na delu koji izvodi informacije o pokretima, i može da izvede prediktovane uzorke za trenutni blok na delu za izvođenje uzoraka predikcije.
[0088] Uređaj za dekodiranje generiše rezidualne uzorke za trenutni blok na osnovu primljenih rezidualnih informacija (S530). Uređaj za dekodiranje može da generiše rekonstruisane uzorke za trenutni blok na osnovu rezidualnih uzoraka i uzoraka predikcije, i generiše rekonstruisanu sliku na osnovu rekonstruisanih uzoraka. (S540). U nastavku, procedura filtriranja u petlji može da se primeni na rekonstruisanoj slici kao što je prethodno opisano.
[0089] Fig.6 ilustrativno prikazuje proceduru inter predikcije.
[0090] Što se tiče Fig.6, kao što je prethodno opisano, procedura inter predikcije može da uključuje određivanje režima inter predikcije, izvođenje informacija o pokretima prema određenom režimu predikcije i izvođenje predikcije na osnovu izvedenih informacija o pokretima (generisanje uzorka predikcije). Procedura inter predikcije može se izvesti u uređaju za kodiranje i uređaju za dekodiranje kao što je prethodno opisano. U ovom dokumentu, uređaj za kodiranje može da uključuje uređaj za kodiranje i/ili uređaj za dekodiranje.
[0091] Što se tiče Fig.6, uređaj za kodiranje određuje režim inter predikcije za trenutni blok (S600). Različiti režimi inter predikcije mogu da se koriste za predikciju za trenutni blok u slici. Na primer, mogu da se koriste različiti režimi, kao što su režim spajanja, režim preskakanja, režim predikcije vektora pokreta (MVP), afini režim, režim spajanja podblokova, spajanje sa MVD režimom ili slično. Režim preciziranja vektora pokreta sa strane dekodera (DMVR), režim adaptivne rezolucije vektora pokreta (AMVR), bi-predikcija sa težinom CU-nivoa (BCW), dvosmerni optički tok (BDOF) ili slično mogu da se koriste kao dodatni režim, ili kao zamena. Afini režim može se nazvati režim afine predikcije pokreta. MVP režim može se nazvati režim napredne predikcije vektora pokreta (AMVP). U ovom dokumentu, neki režimi i/ili kandidat informacija o pokretima izveden pomoću nekog režima mogu biti uključeni kao jedan od kandidata koji se odnosi na informacije o pokretima drugog režima. Na primer, HMVP kandidat može da se doda kao kandidat za spajanje režima spajanja/preskakanja, ili se može dodati kao MVP kandidat MVP režima. Kada se koristi HVMP kandidat kao kandidat informacija o pokretima režima spajanja ili režima preskakanja, HVMP kandidat može se nazvati HMVP kandidat za spajanje.
[0092] Informacije o režimu predikcije koje naznačavaju režim inter predikcije trenutnog bloka mogu da se signaliziraju iz uređaja za kodiranje uređaju za dekodiranje. Informacije o režimu predikcije mogu da budu uključene u tok bitova i primljene na uređaju za dekodiranje. Informacije o režimu predikcije mogu da uključuju informacije o indeksu koje naznačavaju jedan od više kandidatnih režima. Osim toga, režim inter predikcije može se naznačiti hijerarhijskom signalizacijom informacija o zastavici. U ovom slučaju, informacije o režimu predikcije mogu da uključuju jednu ili više zastavica. Na primer, može biti naznačeno da li se primenjuje režim preskakanja signalizacijom zastavice za preskakanje, može biti naznačeno da li se primenjuje režim spajanja signalizacijom zastavice za spajanje za režim preskakanja koji nije primenjen, i može biti naznačeno da je primenjen MVP režim ili zastavica za dalju podelu može dalje da se signalizira kada režim spajanja nije primenjen. Afini režim može da se signalizira kao nezavisni režim, ili može da se signalizira kao režim koji zavisi od režima spajanja, MVP režima ili slično. Na primer, afini režim može da uključuje afini režim spajanja i afini MVP režim.
[0093] Uređaj za kodiranje izvodi informacije o pokretima za trenutni blok (S610). Izvođenje informacija o pokretima može se izvesti na osnovu režima inter predikcije.
[0094] Uređaj za kodiranje može da izvodi inter predikciju korišćenjem informacija o pokretima za trenutni blok. Uređaj za kodiranje može da izvodi optimalne informacije o pokretima za trenutni blok pomoću procedure za procenu pokreta. Na primer, uređaj za kodiranje može pretraživati sličan referentni blok visoke korelacije u unapred određenom opsegu za pretragu u referentnoj slici u jedinici delimičnih piksela korišćenjem originalnog bloka u originalnoj slici za trenutni blok, i može izvesti informacije o pokretima na ovaj način. Sličnost bloka može se izvesti na osnovu razlike između vrednosti uzoraka zasnovanih na fazi. Na primer, sličnost bloka može se izračunati na osnovu SAD između trenutnog bloka (ili šablona trenutnog bloka) i referentnog bloka (ili šablona referentnog bloka). U ovom slučaju, informacije o pokretima mogu se izvesti na osnovu referentnog bloka koji ima najmanji SAD u oblasti pretrage. Izvedene informacije o pokretima mogu da se signaliziraju uređaju za dekodiranje prema različitim postupcima na osnovu režima inter predikcije.
[0095] Uređaj za kodiranje izvodi inter predikciju na osnovu informacija o pokretima za trenutni blok (S620). Uređaj za kodiranje može izvesti uzorak(uzorke) predikcije za trenutni blok na osnovu informacija o pokretima. Trenutni blok koji uključuje uzorke predikcije može se nazvati prediktovan blok.
[0096] U međuvremenu, u slučaju inter predikcije, predložen je postupak inter predikcije u kojem se razmatra izobličenje slike. Određenije, predložen je afini model pokreta koji efikasno izvodi vektor pokreta za blokove ili podblokove uzorka za trenutni blok, i koji povećava tačnost inter predikcije uprkos deformacijama kao što su rotacija, zumiranje, odzumiranje slike. Odnosno, afini model pokreta je onaj koji izvodi vektor pokreta za tačke uzoraka ili podblokove za trenutni blok, a predikcija koja koristi afini model pokreta može se nazvati afina predikcija pokreta, afina predikcija pokreta, predikcija pokreta jedinice podbloka ili predikcija pokreta podbloka.
[0097] Na primer, predikcija pokreta podbloka korišćenjem afinog modela pokreta može efikasno da izrazi takva četiri pokreta kao što je opisano u nastavku, to jest, takve četiri deformacije kao što je opisano u nastavku.
[0098] Fig.7 ilustrativno prikazuje pokrete koji se izražavaju kroz afini model pokreta. Što se tiče Fig.7, pokreti koji mogu da se izraze afinim modelom pokreta mogu da uključuju translatorno kretanje, skaliranje, rotaciono kretanje i smicanje. Odnosno, kao što je prikazano na Fig.7, translatorno kretanje gde se slika (ili njen deo) pomera u ravni tokom vremena, skaliranje gde je slika (ili njen deo) skalirana tokom vremena, rotaciono kretanje gde slika (ili njen deo) rotira tokom vremena, i smicanje gde se slika (ili njen deo) deformiše u paralelogram tokom vremena mogu se efikasno izraziti predikcijom pokreta jedinice podbloka.
[0099] Uređaj za kodiranje/uređaj za dekodiranje može da predvidi oblik izobličenja slike na osnovu vektora pokreta u kontrolnim tačkama (CP) trenutnog bloka pomoću afine inter predikcije, što može dovesti do povećanja tačnosti predikcije, čime se poboljšavaju performanse kompresije slike. Osim toga, korišćenjem vektora pokreta susednog bloka za trenutni blok, vektor pokreta za najmanje jednu kontrolnu tačku trenutnog bloka može se izvesti, i na taj način moguće je da se smanji količina podataka dodatih dodatnih informacija i, shodno tome, da se poboljša efikasnost inter predikcije.
[0100] Kao jedan primer afine predikcije pokreta, mogu biti potrebne informacije o pokretima u tri kontrolne tačke odnosno tri referentne tačke.
2
[0101] Fig.8 ilustrativno prikazuje afini model pokreta u kojem se koriste vektori pokreta za tri kontrolne tačke.
[0102] Ako je gornji levi položaj uzorka u trenutnom bloku 800 postavljen kao (0, 0), kao što je prikazano na Fig.8, položaji uzorka (0, 0), (w, 0), (0, h) mogu se odrediti kao kontrolne tačke. U nastavku, kontrolna tačka (0, 0) položaja uzorka može da bude predstavljena kao CP0; kontrolna tačka (w, 0) položaja uzorka, CP1; i kontrolna tačka (0, h) položaja uzorka, CP2.
[0103] Korišćenjem svake od prethodno opisanih kontrolnih tačaka i vektora pokreta za odgovarajuću kontrolnu tačku, može se izvesti jednačina za afini model pokreta. Jednačina za afini model pokreta može se prikazati na sledeći način:
gde w predstavlja širinu trenutnog bloka 800; h, visinu trenutnog bloka 800; v0x i v0y, x komponenta i y komponenta vektora pokreta za CP0, tim redom; v1x i v1y, x komponenta i y komponenta vektora pokreta za CP1, tim redom; i v2x i v2y, x komponenta i y komponenta vektora pokreta za CP2, tim redom. Osim toga, x predstavlja x komponentu položaja ciljnog uzorka u trenutnom bloku 800; y, y komponenta položaja ciljnog uzorka u trenutnom bloku 800; vx, x komponenta vektora pokreta ciljnog uzorka u trenutnom bloku 800; i vy, y komponenta vektora pokreta ciljnog uzorka u trenutnom bloku 800.
[0104] Budući da su vektor pokreta za CP0, vektor pokreta za CP1, i vektor pokreta za CP2 poznati, vektor pokreta prema položaju uzorka u trenutnom bloku može se izvesti na osnovu Jednačine 1.
Odnosno, prema afinom modelu pokreta, vektori pokreta v0(v0x, v0y), v1(vlx, v1y), v2(v2x, v2y) u kontrolnim tačkama može da se skalira na osnovu odnosa rastojanja između koordinata (x, y) ciljnog uzorka i tri kontrolne tačke, tako da se može izvesti vektor pokreta ciljnog uzorka prema položaju ciljnog uzorka. Odnosno, prema afinom modelu 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 koji je izveden prema afinom modelu pokreta može se prikazati kao afino polje vektora pokreta (MVF).
[0105] U međuvremenu, šest parametara za prethodnu Jednačinu 1 može se predstaviti kao a, b, c, d, e i f u sledećim jednačinama, i jednačina za afini model pokreta koji je prikazan korišćenjem šest parametara može biti kao dole:
gde w predstavlja širinu trenutnog bloka 800; h, visinu trenutnog bloka 800; v0x i v0y, x komponenta i y komponenta vektora pokreta za CP0, tim redom; v1x i v1y, x komponenta i y komponenta vektora pokreta za CP0, tim redom; i v2x i v2y, x komponenta i y komponenta vektora pokreta za CP1, tim redom. Osim toga, x predstavlja x komponentu položaja ciljnog uzorka u trenutnom bloku 800; y, y komponenta položaja ciljnog uzorka u trenutnom bloku 800; vx, x komponenta vektora pokreta ciljnog uzorka u trenutnom bloku 800; i vy, y komponenta vektora pokreta ciljnog uzorka u trenutnom bloku 800.
[0106] Afini model pokreta koji koristi šest parametara ili afinu inter predikciju može se prikazati kao afini model pokreta sa 6 parametara ili AF6.
[0107] Osim toga, kao jedan primer afine predikcije pokreta, mogu biti potrebne informacije o pokretima u dve kontrolne tačke, odnosno, dve referentne tačke.
[0108] Fig.9 ilustrativno prikazuje model pokreta afine jedinice u kojem se koriste vektori pokreta za dve kontrolne tačke. Afini model pokreta koji koristi dve kontrolne tačke može da izrazi tri pokreta koji uključuju translatorno kretanje, skaliranje i rotaciono kretanje. Afini model pokreta koji izražava tri pokreta može se prikazati kao afini model sličnosti pokreta ili pojednostavljen afini model pokreta.
[0109] Ako je gornji levo položaj uzorka u trenutnom bloku 900 postavljen kao (0, 0), kao što je prikazano na Fig.9, položaji uzorka (0,0), (w, 0) mogu se odrediti kao kontrolne tačke. U nastavku, kontrolna tačka za (0, 0) položaj uzorka može se predstaviti kao CP0; a kontrolna tačka za (w, 0) položaj uzorka, CP0.
[0110] Korišćenjem svake od prethodno opisanih kontrolnih tačaka i vektora pokreta za odgovarajuću kontrolnu tačku, može se izvesti jednačina za afini model pokreta. Jednačina za afini model pokreta može se prikazati na sledeći način:
2
gde w predstavlja širinu trenutnog bloka 900; v0x i v0y, x komponenta i y komponenta vektora pokreta za CP0, tim redom; v1x i v1y, x komponenta i y komponenta vektora pokreta za CP0, tim redom. Osim toga, x predstavlja x komponentu položaja ciljnog uzorka u trenutnom bloku 900; y, y komponenta položaja ciljnog uzorka u trenutnom bloku 900; vx, x komponenta vektora pokreta ciljnog uzorka u trenutnom bloku 900; i vy, y komponenta vektora pokreta ciljnog uzorka u trenutnom bloku 900.
[0111] U međuvremenu, četiri parametra za prethodnu Jednačinu 3 može se prikazati kao a, b, c i d iz sledećih jednačina, i jednačina za afini model pokreta koja je prikazana korišćenjem četiri parametra može biti kao što sledi:
gde w predstavlja širinu trenutnog bloka 900; v0x i v0y, x komponenta i y komponenta vektora pokreta za CP0, tim redom; v1x i v1y, x komponenta i y komponenta vektora pokreta za CP0, tim redom. Osim toga, x predstavlja x komponentu položaja ciljnog uzorka u trenutnom bloku 900; y, y komponenta položaja ciljnog uzorka u trenutnom bloku 900; vx, x komponenta vektora pokreta ciljnog uzorka u trenutnom bloku 900; i vy, y komponenta vektora pokreta ciljnog uzorka u trenutnom bloku 900. Budući da afini model pokreta korišćenjem dve kontrolne tačke može da se izrazi s četiri parametra a, b, c i d kao u Jednačini 4, afini model pokreta ili afina predikcija pokreta korišćenjem četiri parametra može se prikazati kao afini model pokreta sa 4 parametra ili AF4. Odnosno, prema afinom modelu 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 koji je izveden prema afinom modelu pokreta može se prikazati kao afino polje vektora pokreta (MVF).
2
[0112] U međuvremenu, kao što je prethodno opisano, vektor pokreta jedinice uzoraka može se izvesti pomoću afinog modela pokreta, i tačnost inter predikcije može se shodno tome poboljšati na ovaj način. Međutim, u ovom slučaju, složenost može se znatno povećati u procesu kompenzacije pokreta.
[0113] Tako, može se ograničiti na izvođenje vektora pokreta jedinice podbloka u trenutnom bloku umesto vektora pokreta jedinice uzorka.
[0114] Fig.10 ilustrativno prikazuje postupak za izvođenje vektora pokreta u jedinici podbloka na osnovu afinog modela pokreta. Fig.10 ilustrativno prikazuje slučaj gde je veličina trenutnog bloka 16 × 16, a vektor pokreta izveden je u jedinicama podbloka 4 × 4. Podblok može biti postavljen u različitim veličinama, i na primer, ako je podblok postavljen u veličini n × n (n je pozitivan ceo broj, a na primer, n je 4), vektor pokreta može se izvesti u jedinici podbloka n × n u trenutnom bloku na osnovu afinog modela pokreta, i mogu se primeniti različiti postupci za izvođenje vektora pokreta koji predstavlja svaki podblok.
[0115] Na primer, što se tiče Fig.10, vektor pokreta svakog podbloka može se izvesti postavljanjem centralnog ili centralnog donjeg desnog položaja uzorka svakog podbloka kao reprezentativnih koordinata. Ovde, centralni donji desni položaj može da predstavlja položaj uzorka među četiri uzorka smeštena u centru podbloka, koji je lociran s desne strane dole. Na primer, ako je n neparan broj, jedan uzorak može da bude postavljen u centru podbloka, i u ovom slučaju, centralni položaj uzorka može da se koristi za izvođenje vektora pokreta podbloka. Međutim, ako je n paran broj, četiri uzorka mogu biti postavljena susedno centru podbloka, a u ovom slučaju, donji desni položaj uzorka može da se koristi za izvođenje vektora pokreta. Na primer, što se tiče Fig.10, reprezentativne koordinate za svaki od podblokova mogu se izvesti kao (2, 2), (6, 2), (10, 2),... (14, 14), i uređaj za kodiranje/uređaj za dekodiranje može izvesti vektor pokreta svakog podbloka unošenjem svake od reprezentativnih koordinata podblokova u Jednačine 1 do 3. Predviđanjem pokreta podbloka u trenutnom bloku pomoću afinog modela pokreta može se nazvati predikcija pokreta jedinice podbloka ili predikcija pokreta podbloka, i takvi vektori pokreta podblokova mogu se prikazati kao MVF.
[0116] U međuvremenu, kao jedan primer, veličina podbloka u trenutnom bloku može se izvesti na osnovu sledeće jednačine:
gde M predstavlja širinu podbloka; a N, visinu podbloka. Osim toga, v0x i v0y predstavljaju x
2
komponentu i y komponentu za CPMV0 trenutnog bloka, tim redom; v1x i v1y, x komponenta i y komponenta za CPMV1 trenutnog bloka, tim redom; w, širina trenutnog bloka; h, visina trenutnog bloka; i MvPre, tačnost razlomka vektora pokreta. Na primer, tačnost razlomka vektora pokreta može se postaviti kao 1/16.
[0117] U međuvremenu, u inter predikciji korišćenjem prethodno opisanog afinog modela pokreta, odnosno, afine predikcije pokreta, može postojati režim spajanja (AF_MERGE) i afini inter režim (AF_INTER). Ovde, afini inter režim može se predstaviti kao afini režim predikcije pokreta vektora (afini MVP režim, AF_MVP).
[0118] Režim spajanja korišćenjem afinog modela pokreta sličan je postojećem režimu spajanja po tome što se ne prenosi MVD za vektore pokreta kontrolnim tačaka. Odnosno, poput postojećeg režima preskakanja/spajanja, režim spajanja koji koristi afini model pokreta može da predstavlja postupak za kodiranje/dekodiranje koji izvodi predikciju izvođenjem CPMV za svaku od dve ili tri kontrolne tačke iz susednog bloka za trenutni blok bez dekodiranja za MVD (razlika vektora pokreta).
[0119] Na primer, ako se AF_MRG režim primeni na trenutnom bloku, MV za CP0 i CP0 (tj., CPMV0 i CPMV1) može se izvesti iz susednog bloka među susednim blokovima za trenutni blok, na koji se primenjuje režim predikcije korišćenjem afinog režima, to jest, afine predikcije pokreta. To jest, CPMV0 i CPMV1 susednog bloka na koji se primenjuje afini režim može se izvesti kao kandidat za spajanje, a kandidat za spajanje može se izvesti kao CPMV0 i CPMV1 za trenutni blok.
[0120] Afini inter režim može da predstavlja inter predikciju u kojoj se predikcija na osnovu afinog MVF izvodi izvođenjem MVP (prediktor vektora pokreta) za vektore pokreta kontrolnih tačaka, izvođenjem vektora pokreta kontrolnih tačaka na osnovu MVP i primljenog MVP, i izvođenjem afinog MVF trenutnog bloka na osnovu vektora pokreta kontrolnih tačaka. Ovde, vektor pokreta kontrolne tačke može se predstaviti kao vektor pokreta kontrolne tačke (CPMV); MVP kontrolne tačke, prediktor vektora pokreta kontrolne tačke (CPMVP); i MVD kontrolne tačke, razlika vektora pokreta kontrolne tačke (CPMVD). Određenije, na primer, uređaj za kodiranje može izvesti prediktor vektora pokreta kontrolne tačke (CPMVP) i vektor pokreta kontrolne tačke (CPMV) za svaki od CP0 i CP1 (ili CP0, CP1 i CP2), i može da prenese ili čuva informacije o CPMVP i/ili CPMVD što je vrednost razlike između CPMVP i CPMV.
[0121] Ovde, ako se afini inter režim primeni na trenutnom bloku, uređaj za kodiranje/uređaj za dekodiranje može da konstituiše listu kandidata afinog MVP na osnovu susednog bloka za trenutni blok, i kandidat afinog MVP može se nazvati kandidatom CPMVP para, a lista kandidata afinog MVP može se nazvati listom CPMVP kandidata.
[0122] Osim toga, svaki kandidat afinog MVP može da predstavlja kombinaciju CPMVP za CP0 i CP1 u afini model pokreta sa četiri parametra (afini model pokreta sa četiri parametra), i može da predstavlja kombinaciju CPMVP za CP0, CP1 i CP2 u afinom modelu pokreta sa šest parametara.
2
[0123] U međuvremenu, s obzirom na afinu inter predikciju, nasleđeni afini kandidat ili nasleđeni kandidat, i konstruisani afini kandidat razmatrani su za konfiguraciju liste kandidata afinog MVP.
Nasleđeni kandidat može da se odnosi na kandidat koji dodaje informacije o pokretima susednog bloka za trenutni blok bez neke druge modifikacije ili kombinacije, to jest, sam CPMV susednog bloka, u listu kandidata pokreta za trenutni blok. Ovde, susedni blokovi mogu da uključuju susedni blok u donjem levom uglu A0, levi susedni blok A1, gornji susedni blok B0, susedni blok u gornjem desnom uglu B1, i susedni blok u gornjem levom uglu B2 za trenutni blok. Konstruisani afini kandidat predstavlja afini kandidat koji konfiguriše CPMV za trenutni blok kombinacijom CPMW-ova najmanje dva susedna bloka. Izvođenje konstruisanog afinog kandidata detaljnije je opisano u nastavku.
[0124] Ovde, nasleđeni afini kandidat može biti kao što sledi.
[0125] Na primer, kada susedni blok za trenutni blok predstavlja afini blok, a referentna slika trenutnog bloka je ista kao referentna slika susednog bloka, afini MVP par za trenutni blok može da se odredi iz afinog modela pokreta susednog bloka. Ovde, afini blok može da predstavlja blok na kojem se primenjuje afina inter predikcija. Nasleđeni afini kandidat može da predstavlja CPMVP-ove (npr., afini MVP par) koji se izvode na osnovu afinog modela pokreta susednog bloka.
[0126] Određenije, na primer, nasleđeni afini kandidat može se izvesti kao što je opisano u nastavku.
[0127] Fig.11 ilustrativno prikazuje susedne blokove za izvođenje nasleđenog afinog kandidata.
[0128] Što se tiče Fig.11, susedni blokovi trenutnog bloka mogu da uključuju levi susedni blok A0 trenutnog bloka, donji levi susedni blok A1 trenutnog bloka, gornji susedni blok B0 trenutnog bloka, gornji desni susedni blok B1 trenutnog bloka, i gornji levi susedni blok B2 trenutnog bloka.
[0129] Na primer, ako veličina trenutnog bloka predstavlja WxH, i x komponenta gornjeg levog položaja uzorka trenutnog bloka predstavlja 0 dok je njegova y komponenta 0, pri čemu levi susedni blok može da bude blok koji uključuje uzorak sa koordinatama (-1, H-1); gornji susedni blok, blok koji uključuje uzorak sa koordinatama (W-1, -1); susedni blok u gornjem desnom uglu, blok koji uključuje uzorak sa koordinatama (W, -1); susedni blok u donjem levom uglu, blok koji uključuje uzorak sa koordinatama (-1, H); i susedni blok u gornjem levom uglu, blok koji uključuje uzorak sa koordinatama (-1, -1).
[0130] Uređaj za kodiranje/uređaj za dekodiranje može da proverava susedne blokove A0, A1, B0, B1 i B2 sekvencijalno, i, ako je susedni blok kodiran korišćenjem afinog modela pokreta, i referentna slika trenutnog bloka je ista ako referentna slika susednog bloka, može se izvesti dva CPMV-ova ili tri CPMV-ova za trenutni blok na osnovu afinog modela pokreta susednog bloka. CPMV-ovi može s e izvesti kao kandidat afinog MVP za trenutni blok. Kandidat afinog MVP može da predstavlja nasleđeni afini kandidat.
[0131] Kao jedan primer, može se izvesti do dva nasleđena afina kandidata na osnovu susednih blokova.
[0132] Na primer, uređaj za kodiranje/uređaj za dekodiranje može da izvede prvi kandidat afinog MVP za trenutni blok na osnovu prvog bloka u susednim blokovima. Ovde, prvi blok može da se kodira sa
2
afinim modelom pokreta, a referentna slika prvog bloka može da bude ista kao referentna slika za trenutni blok. To jest, prvi blok može da bude blok za koji se najpre potvrđuje da ispunjava neki uslov prilikom provere susednih blokova određenim redosledom. Uslov može da bude da je blok kodiran afinim modelom pokreta, i da je referentna slika bloka ista ako referentna slika za trenutni blok.
[0133] U nastavku, uređaj za kodiranje/uređaj za dekodiranje može da izvede drugog afinog MVP kandidata za trenutni blok na osnovu drugog bloka u susednim blokovima. Ovde, drugi blok može da bude kodiran afinim modelom pokreta, a referentna slika drugog bloka može da bude ista kao referentna slika za trenutni blok. To jest, drugi blok može da bude blok za koji je kao drugog ustanovljeno da ispunjava uslov dok proverava susedne blokove određenim redosledom. Uslov može da bude da je blok kodiran afinim modelom pokreta, i da je referentna slika bloka ista kao referentna slika trenutnog bloka.
[0134] U međuvremenu, na primer, kada je broj dostupnih nasleđenih afinih kandidata manji od dva (to jest, broj izvedenih nasleđenih afinih kandidata je manji od dva), može da se razmatra konstruisani afini kandidat. Konfigurisan afini kandidat može se izvesti kao u nastavku.
[0135] Fig.12 ilustrativno prikazuje prostornog kandidata za konstruisanog afinog kandidata.
[0136] Kao što je prikazano na Fig.12, vektori pokreta susednih blokova za trenutni blok mogu se podeliti u tri grupe. Što se tiče 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.
[0137] Susedni blok A može da predstavlja susedni blok smešten gore levo od gornjeg levog položaja uzorka trenutnog bloka; susedni blok B, susedni blok smešten iznad gornjeg levog položaja uzorka trenutnog bloka; i susedni blok C, susedni blok smešten levo od gornjeg levog položaja uzorka trenutnog bloka. Pored toga, susedni blok D može da predstavlja susedni blok smešten iznad gornjeg desnog položaja uzorka trenutnog bloka; i susedni blok E, susedni blok smešten gore desno od gornjeg desnog položaja uzorka trenutnog bloka. Pored toga, susedni blok F može da predstavlja susedni blok smešten levo od donjeg levog položaja uzorka trenutnog bloka; i susedni blok G, susedni blok smešten dole levo od donjeg levog položaja uzorka trenutnog bloka.
[0138] Na primer, tri grupe mogu da uključuju S0, S1i S2, a S0, S1i S2mogu se izvesti kao što sledeća Tabela.
[Tabela 1]
S0= {mvA, mvB, mvC} S1= {mvD, mvE} S2= {mvF, mvG}
gde 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 da se predstavi kao prva grupa; S1, kao druga grupa; i S2, kao treća grupa.
[0139] Uređaj za kodiranje/uređaj za dekodiranje može izvesti mv0iz S0, može izvesti mv1iz S1, može izvesti mv2iz S2, i može izvesti kandidat afinog MVP koji uključuje mv0, mV1i mV2. Kandidat afinog MVP može da predstavlja konstruisani afini kandidat. Osim toga, mv0može biti CPMVP kandidat za CP0; mv1, CPMVP kandidat za CP1; i mV2, CPMVP kandidat za CP2.
[0140] Ovde, referentna slika za mv0može da bude ista kao referentna slika trenutnog bloka. To jest, mv0može da bude vektor pokreta za koji se najpre određuje da ispunjava uslov dok se proveravaju vektori pokreta u S0određenim redosledom. Uslov može da bude da referentna slika za vektor pokreta treba da bude ista kao referentna slika trenutnog bloka. Određeni redosled može da bude sledeći: susedni blok A → susedni blok B → susedni blok C u S0. Osim toga, može se izvesti nekim redosledom koji se razlikuje od prethodnog redosleda, a ne mora se ograničiti na prethodni primer.
[0141] Osim toga, referentna slika za mV1može da bude ista kao referentna slika trenutnog bloka. To jest, mV1može biti vektor pokreta za koji se najpre određuje da ispunjava uslov dok se proveravaju vektori pokreta u S1određenim redosledom. Uslov može da bude da referentna slika za vektor pokreta treba da je ista kao referentna slika trenutnog bloka. Određeni redosled može biti sledeći: susedni blok D → susedni blok E u S1. Osim toga, može se izvesti nekim redosledom koji se razlikuje od prethodnog redosleda, i ne mora da bude ograničen na prethodni primer.
[0142] Osim toga, referentna slika za mV2može da bude ista kao referentna slika trenutnog bloka. To jest, mV2može da bude vektor pokreta za koji se najpre određuje da ispunjava uslov dok se proveravaju vektori pokreta u S2određenim redosledom. Uslov može da bude da referentna slika za vektor pokreta treba da je ista kao referentna slika trenutnog bloka. Određeni redosled može biti sledeći: susedni blok F → susedni blok G u S2. Osim toga, može se izvesti nekim redosledom koji se razlikuje od prethodnog redosleda, i ne mora da bude ograničen na prethodni primer.
[0143] U međuvremenu, kada su dostupni samo mv0i mv1, to jest kada su izvedeni samo mv0i mV1, mV2može se izvesti kao sledeća jednačina.
gde mV2<x>predstavlja x komponentu od mV2; mv2<y>, y komponenta od mV2; mv0<x>, x komponenta od mv0; mv0<y>, y komponenta od mv0; mv1<x>, x komponenta od mv1; i mv1<y>, y komponenta od mv1. Osim toga, w predstavlja širinu trenutnog bloka, dok h predstavlja visinu trenutnog bloka.
[0144] U međuvremenu, kada su izvedeni samo mv0i mV2, mV1može da bude izveden kao sledeća jednačina.
1
gde mV1<x>predstavlja x komponentu od mV1; mv1<y>, y komponenta od mv1; mv0<x>, x komponenta od mv0; mv0<y>, y komponenta od mv0; mv2<x>, x komponenta od mv2; i mv2<y>, y komponenta od mV2. Osim toga, w predstavlja širinu trenutnog bloka, dok h predstavlja visinu trenutnog bloka.
[0145] Osim toga, kada je broj dostupnog nasleđenog afinog kandidata i/ili konstruisanog afinog kandidata manji od dva, AMVP proces konvencionalnog HEVC standarda može se primeniti na konfiguraciju afinog MVP liste. To jest, kada je broj dostupnog nasleđenog afinog kandidata i/ili konstruisanog afinog kandidata manji od dva, može se izvesti postupak za konfiguraciju MVP kandidata u konvencionalnom HEVC standardu.
[0146] U međuvremenu, dijagrami toka primera konfiguracije gorepomenute afinog MVP liste su kao što je opisano u nastavku.
[0147] Fig.13 ilustrativno prikazuje primer konfiguracija afinog MVP liste.
[0148] Što se tiče Fig.13, uređaj za kodiranje/uređaj za dekodiranje može da dodaje nasleđeni kandidat afinoj MVP listi trenutnog bloka (S1300). Nasleđeni kandidat može da predstavlja gorepomenutog nasleđenog afinog kandidata.
[0149] Određenije, uređaj za kodiranje/uređaj za dekodiranje može da izvede najviše dva nasleđena afina kandidata iz susednih blokova za trenutni blok (S1305). Ovde, susedni blokovi mogu da uključuju levi susedni blok A0, susedni blok u donjem levom uglu A1, gornji susedni blok B0, susedni blok u gornjem desnom uglu B1, i susedni blok u gornjem levom uglu B2 trenutnog bloka.
[0150] Na primer, uređaj za kodiranje/uređaj za dekodiranje može da izvede prvog afinog MVP kandidata za trenutni blok na osnovu prvog bloka u susednim blokovima. Ovde, prvi blok može da se kodira afinim modelom pokreta, a referentna slika prvog bloka može da bude ista kao referentna slika trenutnog bloka. To jest, prvi blok može da bude blok za koji se najpre određuje da ispunjava uslov dok se proveravaju susedni blokovi određenim redosledom. Uslov može da bude da je blok kodiran afinim modelom pokreta, i da je referentna slika bloka ista kao referentna slika trenutnog bloka.
[0151] U nastavku, uređaj za kodiranje/uređaj za dekodiranje može da izvede drugog afinog MVP kandidata za trenutni blok na osnovu drugog bloka u susednim blokovima. Ovde, drugi blok može da bude kodiran afinim modelom pokreta, a referentna slika drugog bloka može da bude ista kao referentna slika trenutnog bloka. To jest, drugi blok može da bude blok za kojeg je kao drugog utvrđeno da ispunjava uslov prilikom provere susednih blokova određenim redosledom. Uslov može da bude da je blok kodiran afinim modelom pokreta, i da je referentna slika bloka ista kao referentna slika trenutnog bloka.
2
[0152] U međuvremenu, određeni redosled može biti sledeći: 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. Osim toga, može se izvesti nekim redosledom koji se razlikuje od prethodnog redosleda, i ne mora da bude ograničen na prethodni primer.
[0153] Uređaj za kodiranje/uređaj za dekodiranje može da dodaje konstruisan kandidat na afinu MVP listu trenutnog bloka (S1310). Konstruisan kandidat može da predstavlja gorepomenuti konstruisani afini kandidat. Konstruisan kandidat može biti predstavljen kao konstruisan kandidat afinog MVP. Kada je broj dostupnih nasleđenih kandidata manji od dva, uređaj za kodiranje/uređaj za dekodiranje može da dodaje konstruisan kandidat na afinu MVP listu trenutnog bloka. Na primer, uređaj za kodiranje/uređaj za dekodiranje može izvesti jednog konstruisanog afinog kandidata.
[0154] U međuvremenu, postupak za izvođenje konstruisanog afinog kandidata može da se razlikuje zavisno od toga da li afini model pokreta primenjen na trenutni blok predstavlja 6-afini model pokreta ili 4-afini model pokreta. Određeni sadržaji za postupak za izvođenje konstruisanog kandidata biće opisani u nastavku.
[0155] Uređaj za kodiranje/uređaj za dekodiranje može da dodaje HEVC AMVP kandidat na afinu MVP listu 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 dodaje HEVC AMVP kandidat na afinu MVP listu trenutnog bloka. To jest, 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 proces za konfigurisanje MVP kandidata u konvencionalnom HEVC standardu.
[0156] U međuvremenu, postupak za izvođenje konstruisanog kandidata može biti kao što sledi.
[0157] Na primer, kada afini model pokreta primenjen na trenutni blok predstavlja 6-afini model pokreta, konstruisan kandidat može se izvesti kao u primeru prikazanom na Fig.14.
[0158] Fig.14 prikazuje primer izvođenja konstruisanog kandidata.
[0159] Što se tiče Fig.14, uređaj za kodiranje/uređaj za dekodiranje može da proverava mv0, mv1i mv2za trenutni blok (S1400). To jest, uređaj za kodiranje/uređaj za dekodiranje može da odredi da li dostupni mv0, mv1ili mv2postoji u susednim blokovima za trenutni blok. Ovde, mv0može biti CPMVP kandidat za CP0 trenutnog bloka; mv1, CPMVP kandidat za CP1; i mv2, CPMVP kandidat za CP2. Osim toga, mv0, mv1i mv2mogu biti predstavljeni kao kandidatni vektori pokreta za CP-ove.
[0160] Na primer, uređaj za kodiranje/uređaj za dekodiranje može da proverava vektore pokreta susednih blokova u prvoj grupi određenim redosledom bilo da određuje poseban uslov. Uređaj za kodiranje/uređaj za dekodiranje može, kao mv0, da izvede vektor pokreta susednog bloka za kojeg se najpre potvrđuje da ispunjava uslov tokom postupka provere. To jest, mv0može biti vektor pokreta za kojeg je prvo potvrđeno da ispunjava određen uslov prilikom provere vektora pokreta u prvoj grupi određenim redosledom. Kada vektori pokreta susednih blokova u prvoj grupi ne ispunjava određeni uslov, onda može da ne bude dostupnog mv0. Ovde, na primer, određeni redosled može biti onaj od susednog bloka A do susednog bloka B, a zatim do susednog bloka C u prvoj grupi. Osim toga, na primer, određeni uslov može biti da referentna slika za vektor pokreta susednog bloka treba da je ista kao referentna slika trenutnog bloka.
[0161] Osim toga, na primer, uređaj za kodiranje/uređaj za dekodiranje može da proverava vektore pokreta susednih blokova u drugoj grupi određenim redosledom da li zadovoljava određeni uslov.
Uređaj za kodiranje/uređaj za dekodiranje može kao mv1da izvede vektor pokreta susednog bloka za kojeg je najpre potvrđeno da ispunjava uslov tokom postupka provere. To jest, mv1može biti vektor pokreta za kojeg je najpre potvrđeno da ispunjava određeni uslov tokom provere vektora pokreta u drugoj grupi određenim redosledom. Kada vektori pokreta susednih blokova u drugoj grupi ne ispunjavaju određeni uslov, onda može da ne bude dostupnog mv1. Ovde, na primer, određeni redosled može biti onaj od susednog bloka D do susednog bloka E u drugoj grupi. Osim toga, na primer, određeni uslov može biti da referentna slika za vektor pokreta susednog bloka treba da je ista kao referentna slika trenutnog bloka.
[0162] Osim toga, na primer, uređaj za kodiranje/uređaj za dekodiranje može da proverava vektore pokreta susednih blokova u trećoj grupi određenim redosledom da li zadovoljava određeni uslov. Uređaj za kodiranje/uređaj za dekodiranje može kao mv2da izvede vektor pokreta susednog bloka za kojeg je najpre potvrđeno da ispunjava uslov tokom postupka provere. Odnosno, mv2može biti vektor pokreta za kojeg je najpre potvrđeno da ispunjava određeni uslov tokom provere vektora pokreta u trećoj grupi određenim redosledom. Kada vektori pokreta susednih blokova u trećoj grupi ne ispunjavaju određeni uslov, onda može da ne bude dostupnog mv2. Ovde, na primer, određeni redosled može biti onaj od susednog bloka F do susednog bloka G u trećoj grupi. Osim toga, na primer, određeni uslov može biti da referentna slika za vektor pokreta susednog bloka treba da je ista kao referentna slika trenutnog bloka.
[0163] 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 smešten gore levo od gornjeg levog položaja uzorka trenutnog bloka; susedni blok B, susedni blok smešten iznad gornjeg levog položaja uzorka trenutnog bloka; susedni blok C, susedni blok smešten levo od gornjeg levog položaja uzorka trenutnog bloka; susedni blok D, susedni blok smešten iznad gornjeg desnog položaja uzorka trenutnog bloka; susedni blok E, susedni blok smešten gore desno od gornjeg desnog položaja uzorka trenutnog bloka; susedni blok F, susedni blok smešten levo od donjeg levog položaja uzorka trenutnog bloka; i susedni blok G, susedni blok smešten dole levo od donjeg levog položaja uzorka trenutnog bloka.
[0164] Kada su samo mv0i mv1dostupni za trenutni blok, to jest, kada su samo mv0i mv1izvedeni za trenutni blok, uređaj za kodiranje/uređaj za dekodiranje mogu da izvode mv2za trenutni blok na osnovu
4
prethodne Jednačine 6 (S1410). Uređaj za kodiranje/uređaj za dekodiranje može da izvede mv2zamenom izvedenih mv0i mv1u prethodnoj Jednačini 6.
[0165] Kada su samo mv0i mv2dostupni za trenutni blok, to jest, kada su samo mv0i mv2izvedeni za trenutni blok, uređaj za kodiranje/uređaj za dekodiranje mogu da izvedu mv1za trenutni blok na osnovu prethodne Jednačine 7 (S1420). Uređaj za kodiranje/uređaj za dekodiranje može da izvede
mv1zamenom izvedenih mv0i mv2u prethodnoj Jednačini 7.
[0166] Uređaj za kodiranje/uređaj za dekodiranje može da izvede izvedene mv0, mv1i mv2kao konstruisanog kandidata za trenutni blok (S1430). Kada su dostupni mv0, mv1i mv2, to jest, kada su mv0, mv1i mv2izvedeni na osnovu susednog bloka za trenutni blok, uređaj za kodiranje/uređaj za dekodiranje može izvesti izvedene mv0, mv1i mv2kao konstruisane kandidate za trenutni blok.
[0167] Osim toga, kada su samo mv0i mv1dostupni za trenutni blok, to jest, kada su samo mv0i mv1izvedeni za trenutni blok, uređaj za kodiranje/uređaj za dekodiranje može da izvede kao konstruisan kandidat za trenutni blok mv0, mv1i mv2izvedene na osnovu prethodne Jednačine 6.
[0168] Osim toga, kada su samo mv0i mv2dostupni za trenutni blok, to jest, kada su samo mv0i mv2izvedeni za trenutni blok, uređaj za kodiranje/uređaj za dekodiranje može da izvede kao konstruisan kandidat za trenutni blok izvedene mv0, mv2, i mv1izvedene na osnovu prethodne Jednačine 7.
[0169] Osim toga, na primer, kada afini model pokreta primenjen na trenutni blok predstavlja 4-afini model pokreta, konstruisani kandidat može se izvesti kao u primeru prikazanom na Fig.15.
[0170] Fig.15 prikazuje primer izvođenja konstruisanog kandidata.
[0171] Što se tiče Fig.15, uređaj za kodiranje/uređaj za dekodiranje može da proverava mv0, mv1, i mv2za trenutni blok (S1500). To jest, uređaj za kodiranje/uređaj za dekodiranje može da odredi da li dostupni mv0, mv1ili mv2postoje u susednim blokovima trenutnog bloka. Ovde, mv0može biti CPMVP kandidat za CP0 trenutnog bloka; mv1, CPMVP kandidat za CP1; i mv2, CPMVP kandidat za CP2.
[0172] Na primer, uređaj za kodiranje/uređaj za dekodiranje može da proverava vektore pokreta susednih blokova u prvoj grupi određenim redosledom da li zadovoljava određeni uslov. Uređaj za kodiranje/uređaj za dekodiranje može kao mv0da izvede vektor pokreta susednog bloka za kojeg je najpre potvrđeno da ispunjava uslov tokom postupka provere. Odnosno, mv0može biti vektor pokreta za kojeg je najpre potvrđeno da ispunjava određeni uslov tokom provere vektora pokreta u prvoj grupi određenim redosledom. Kada vektori pokreta susednih blokova u prvoj grupi ne ispunjavaju određeni uslov, onda može da ne bude dostupnog mv0. Ovde, na primer, određeni redosled može biti onaj od susednog bloka A do susednog bloka B, a zatim do susednog bloka C u prvoj grupi. Osim toga, na primer, određeni uslov može biti da referentna slika za vektor pokreta susednog bloka treba da je ista kao referentna slika trenutnog bloka.
[0173] Osim toga, na primer, uređaj za kodiranje/uređaj za dekodiranje može da proverava vektore pokreta susednih blokova u drugoj grupi određenim redosledom da li zadovoljava određeni uslov.
Uređaj za kodiranje/uređaj za dekodiranje može kao mv1da izvede vektor pokreta susednog bloka za kojeg je najpre potvrđeno da ispunjava uslov tokom postupka provere. Odnosno, mv1može biti vektor pokreta za kojeg je najpre potvrđeno da ispunjava određeni uslov tokom provere vektora pokreta u drugoj grupi određenim redosledom. Kada vektori pokreta susednih blokova u drugoj grupi ne ispunjavaju određeni uslov, onda može da ne bude dostupnog mv1. Ovde, na primer, određeni redosled može biti onaj od susednog bloka D do susednog bloka E u drugoj grupi. Osim toga, na primer, određeni uslov može biti da referentna slika za vektor pokreta susednog bloka treba da je ista kao referentna slika trenutnog bloka.
[0174] Osim toga, na primer, uređaj za kodiranje/uređaj za dekodiranje može da proverava vektore pokreta susednih blokova u trećoj grupi određenim redosledom da li zadovoljavaju određeni uslov. Uređaj za kodiranje/uređaj za dekodiranje može kao mv2da izvede vektor pokreta susednog bloka za kojeg je najpre potvrđeno da ispunjava uslov tokom postupka provere. Odnosno, mv2može biti vektor pokreta za kojeg je najpre potvrđeno da ispunjava određeni uslov tokom provere vektora pokreta u trećoj grupi određenim redosledom. Kada vektori pokreta susednih blokova u trećoj grupi ne ispunjavaju određeni uslov, onda može da ne bude dostupnog mv2. Ovde, na primer, određeni redosled može biti onaj od susednog bloka F do susednog bloka G u trećoj grupi. Osim toga, na primer, određeni uslov može biti da referentna slika za vektor pokreta susednog bloka treba da je ista kao referentna slika trenutnog bloka.
[0175] 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 smešten gore levo od gornjeg levog položaja uzorka trenutnog bloka; susedni blok B, susedni blok smešten iznad gornjeg levog položaja uzorka trenutnog bloka; susedni blok C, susedni blok smešten levo od gornjeg levog položaja uzorka trenutnog bloka; susedni blok D, susedni blok smešten iznad gornjeg desnog položaja uzorka trenutnog bloka; susedni blok E, susedni blok smešten gore desno od gornjeg desnog položaja uzorka trenutnog bloka; susedni blok F, susedni blok smešten levo od donjeg levog položaja uzorka trenutnog bloka; i susedni blok G, susedni blok smešten dole levo od donjeg levog položaja uzorka trenutnog bloka.
[0176] Kada su samo mv0i mv1dostupni za trenutni blok ili kada su mv0, mv1i mv2dostupni za trenutni blok, to jest, kada su samo mv0i mv1izvedeni za trenutni blok ili kada su mv0, mv1i mv2izvedeni za trenutni blok, uređaj za kodiranje/uređaj za dekodiranje može izvesti izvedene mv0i mv1kao konstruisanog kandidata za trenutni blok (S1510).
[0177] U međuvremenu, kada su samo mv0i mv2dostupni za trenutni blok, to jest, kada su samo mv0i mv2izvedeni za trenutni blok, uređaj za kodiranje/uređaj za dekodiranje mogu izvesti mv1za trenutni blok na osnovu prethodne Jednačine 7 (S1520). Uređaj za kodiranje/uređaj za dekodiranje mogu izvesti mv1zamenom izvedenih mv0i mv2u prethodnoj Jednačini 7.
[0178] Nakon ovoga, uređaj za kodiranje/uređaj za dekodiranje može izvesti izvedene mv0i mv1kao konstruisanog kandidata za trenutni blok (S1510).
[0179] U međuvremenu, ovaj dokument predlaže drugi primer izvođenja nasleđenog afinog kandidata. Predloženi primer može da poboljša performanse kodiranja smanjenjem računske složenosti u izvođenju nasleđenog afinog kandidata.
[0180] U međuvremenu, ovaj dokument predlaže drugi primer izvođenja nasleđenog afinog kandidata. Predložen primer može da poboljša performanse kodiranja smanjenjem računske složenosti u izvođenju nasleđenog afinog kandidata.
[0181] Fig.16 ilustrativno prikazuje položaj susednog bloka koji se skenira da bi se izveo nasleđeni afini kandidat.
[0182] Uređaj za kodiranje/uređaj za dekodiranje može izvesti najviše dva nasleđena afina kandidata iz susednih blokova za trenutni blok. Fig.16 može da predstavlja susedne blokove za nasleđene afine kandidate. Na primer, susedni blokovi mogu da uključuju susedni blok A i susedni blok B prikazane na Fig.16. Susedni blok A može da predstavlja prethodno opisan levi susedni blok A0, i susedni blok B može da predstavlja prethodno opisan gornji susedni blok B0.
[0183] Na primer, uređaj za kodiranje/uređaj za dekodiranje može da proverava susedne blokove određenim redosledom da li je neki dostupan, i izvede nasleđeni afini kandidat za trenutni blok na osnovu susednog bloka za kojeg je najpre potvrđeno da je dostupan. Odnosno, uređaj za kodiranje/uređaj za dekodiranje može da proverava susedne blokove određenim redosledom da li zadovoljava određeni uslov, i izvede nasleđeni afini kandidat za trenutni blok na osnovu susednog bloka za kojeg je najpre potvrđeno da je dostupan. Osim toga, uređaj za kodiranje/uređaj za dekodiranje može izvesti nasleđeni afini kandidat za trenutni blok na osnovu susednog bloka za kojeg je kao drugog potvrđeno da ispunjava određeni uslov. Odnosno, uređaj za kodiranje/uređaj za dekodiranje može izvesti nasleđeni afini kandidat za trenutni blok na osnovu susednog bloka za kojeg je kao drugog potvrđeno da ispunjava određeni uslov. Ovde, biti dostupan može biti da je blok kodiran afinim modelom pokreta, i da je referentna slika bloka ista kao referentna slika trenutnog bloka. Odnosno, određeni uslov može biti da je blok kodiran afinim modelom pokreta, i da je referentna slika bloka ista kao referentna slika trenutnog bloka. Osim toga, na primer, određeni redosled može biti sledeći: susedni blok A → susedni blok B. U međuvremenu, postupak provere radi skraćivanja između dva nasleđena afina kandidata (tj., izvedena nasleđena afina kandidata) ne mora se izvesti. Postupak provere radi skraćivanja može da predstavlja postupak kojim se kandidati proveravaju da li su međusobno isti, i, ako su isti, kandidat izveden potonjim redosledom se uklanja.
[0184] Gorepomenuti primer predlaže postupak za izvođenje nasleđenog afinog kandidata proverom samo dva susedna bloka (tj., susedni blokovi A i B) umesto izvođenja nasleđenog afinog kandidata proverom svih konvencionalnih susednih blokova (tj., susedni blokovi A, B, C, D i E). Ovde, susedni blok C može da predstavlja prethodno opisan susedni blok u gornjem desnom uglu B 1; susedni blok D, prethodno opisan susedni blok u donjem levom uglu A1; i susedni blok E, prethodno opisan susedni blok u gornjem levom uglu B2.
[0185] Kako bi se analizirala prostorna korelacija između susednih blokova i trenutnog bloka prema afinoj inter predikciji, može se uputiti na verovatnoću da se afina predikcija primenjuje na trenutni blok kada se afina predikcija primenjuje na respektivne susedne blokove. Verovatnoća da se afina predikcija primeni na trenutnom bloku kada se afina predikcija primeni na respektivne susedne blokove može se izvesti kao sledeća tabela.
[Tabela 2]
REFERENTNI
VEROVATNO
[0186] Što se tiče Tabele 2, može se potvrditi da su visoke prostorne korelacije susednih blokova A i B među susednim blokovima na trenutni blok. Prema tome, preko primera izvođenja nasleđenog afinog kandidata korišćenjem samo susednih blokova A i B čije su prostorne korelacije visoke, moguće je da se postignu povoljni efekti smanjenja vremena obrade i obezbeđivanja visokih performansi dekodiranja.
[0187] U međuvremenu, postupak provere radi skraćivanja može se izvesti da bi se sprečili isti kandidati da postoje u listi kandidata. Kako postupak provere radi skraćivanja može da ukloni suvišnost, može postojati prednost u smislu efikasnosti kodiranja, a međutim, postoji nedostatak da se računska složenost povećava izvođenjem postupka provere radi skraćivanja. Posebno, zato što postupak provere radi skraćivanja za afinog kandidata treba izvesti na afinom tipu (npr., afini model pokreta je 4-afini model pokreta ili 6-afini model pokreta), referentnoj slici (ili indeks referentne slike), CP0, CP1 i CP2 za MV, računska složenost je veoma visoka. Prema tome, ovaj primer predlaže postupak u kom se ne izvodi postupak provere radi skraćivanja između nasleđenog afinog kandidata (npr., nasleđeni_A) izvedenog na osnovu susednog bloka A i nasleđenog afinog kandidata (npr., nasleđeni_B) izvedenog na osnovu susednog bloka B. Susedni blokovi A i B veoma su udaljeni, te njihova prostorna korelacija je mala.
Prema tome, verovatnoća da su nasleđeni_A i nasleđeni_B isti je veoma mala. Prema tome, poželjno je da se ne izvodi postupak provere radi skraćivanja između nasleđenih afinih kandidata.
[0188] Alternativno, postupak izvođenja postupka minimalne provere radi skraćivanja može se predložiti na osnovu gorepomenutog. Na primer, uređaj za kodiranje/uređaj za dekodiranje može da izvodi postupak provere radi skraćivanja poređenjem MV-ova za CP0 nasleđenog afinog kandidata.
[0189] U međuvremenu, ovaj dokument predlaže drugi primer izvođenja nasleđenog afinog kandidata.
[0190] Fig.17 ilustrativno prikazuje položaj susednog bloka koji se skenira da bi se izveo nasleđeni afini kandidat.
[0191] Uređaj za kodiranje/uređaj za dekodiranje može izvesti najviše dva nasleđena afina kandidata iz susednih blokova za trenutni blok. Fig.17 može da prikazuje susedne blokove za nasleđene afine kandidate. Na primer, susedni blokovi mogu da uključuju susedni blok A do susednog bloka D što je prikazano na Fig.17. Susedni blok A može da predstavlja prethodno opisan levi susedni blok A0; susedni blok B, prethodno opisan gornji susedni blok B0; susedni blok C, prethodno opisan susedni blok u gornjem desnom uglu B1; i susedni blok D, prethodno opisan susedni blok u donjem levom uglu A1.
[0192] Na primer, uređaj za kodiranje/uređaj za dekodiranje može da proverava susedne blokove određenim redosledom da li je neki dostupan, i izvede nasleđeni afini kandidat za trenutni blok na osnovu susednog bloka za kojeg je najpre potvrđeno da je dostupan. Odnosno, uređaj za kodiranje/uređaj za dekodiranje može da proverava susedne blokove određenim redosledom da li zadovoljava određeni uslov, i izvede nasleđeni afini kandidat za trenutni blok na osnovu susednog bloka za kojeg je najpre potvrđeno da je dostupan. Osim toga, uređaj za kodiranje/uređaj za dekodiranje može izvesti nasleđeni afini kandidat za trenutni blok na osnovu susednog bloka za kojeg je kao drugog potvrđeno da ispunjava određeni uslov. Odnosno, uređaj za kodiranje/uređaj za dekodiranje može izvesti nasleđeni afini kandidat za trenutni blok na osnovu susednog bloka za kojeg je kao drugog potvrđeno da ispunjava određeni uslov. Ovde, biti dostupan može biti da je blok kodiran afinim modelom pokreta, i da je referentna slika bloka ista kao referentna slika trenutnog bloka. Odnosno, određeni uslov može biti da je blok kodiran afinim modelom pokreta, i da je referentna slika bloka ista kao referentna slika trenutnog bloka.
[0193] Susedni blokovi A i D sa Fig.17 mogu da se koriste kada se izvodi levi prediktor među nasleđenim afinim kandidatom, dok se susedni blokovi B i C mogu koristiti kada se izvodi gornji prediktor među nasleđenim afinim kandidatom.
[0194] Levi prediktor, koji je kandidat pokreta koji se može dodati iz levog susednog bloka, može se dodati kandidatu kojem se nasleđuje "susedni značajan blok" za kojeg je kao prvog određeno da je dostupan u redosledu blok A → blok D ili blok D → blok A. Gornji prediktor, koji je kandidat pokreta koji se može dodati iz gornjeg susednog bloka, može se dodati kandidatu kojem se nasleđuje "susedni značajan blok" za kojeg je kao prvog određeno da je dostupan u redosledu blok B → blok C ili blok C → blok B. Odnosno, maksimalni broj nasleđenog kandidata koji se može izvesti iz svakog od levog prediktora i gornjeg prediktora je jedan.
[0195] Kada je "susedni značajan blok" kodiran afinim modelom pokreta sa 4 parametra, nasleđeni kandidat može se odrediti korišćenjem afinog modela pokreta sa 4 parametra, i kada je "susedni značajan blok" kodiran afinim modelom pokreta sa 6 parametara, nasleđeni kandidat može se odrediti korišćenjem afinog modela pokreta sa 6 parametara.
[0196] Kada je broj nasleđenih kandidata određen pomoću levog prediktora i gornjeg prediktora jednak dva, može se izvesti postupak provere radi skraćivanja ili se ne izvodi. Iako se generalno izvodi postupak provere radi skraćivanja i sprečava da se isti kandidat doda u listu kandidata, postupak provere radi skraćivanja povećava složenost jer MV za svaki CP treba da se poredi u predikciji pokreta u kojoj se koristi afini model. Međutim, kada je nasleđeni kandidat konfigurisan korišćenjem primera opisanog upućivanjem na Fig.17, verovatnoća da su kandidati određeni levim prediktorom i gornjim prediktorom međusobno različiti je veoma visoka jer su kandidati udaljeni. Prema tome, prednost je što se performansa kodiranja retko smanjuje, čak i bez izvođenja postupka provere radi skraćivanja.
[0197] U međuvremenu, ovaj dokument predlaže još jedan primer izvođenja nasleđenog afinog kandidata.
[0198] Fig.18 ilustrativno prikazuje položaj za izvođenje nasleđenog afinog kandidata.
[0199] Uređaj za kodiranje/uređaj za dekodiranje može izvesti najviše dva nasleđena afina kandidata iz susednih blokova za trenutni blok. Fig.18 može da predstavlja susedne blokove za nasleđene afine kandidate prema primeru. Na primer, susedni blokovi mogu da uključuju susedni blok A do susednog bloka E što je prikazano na Fig.18. Susedni blok A može da predstavlja prethodno opisan levi susedni blok A0; susedni blok B, prethodno opisan gornji susedni blok B0; susedni blok C, prethodno opisan susedni blok u gornjem desnom uglu B 1; susedni blok D, prethodno opisan susedni blok u donjem levom uglu A1; i susedni blok E, levi susedni blok smešten susedno donjem susednom bloku u gornjem levom uglu B2.
[0200] Na primer, uređaj za kodiranje/uređaj za dekodiranje može da proverava susedne blokove određenim redosledom da li je neki dostupan, i izvede nasleđeni afini kandidat za trenutni blok na osnovu susednog bloka za kojeg je najpre potvrđeno da je dostupan. Odnosno, uređaj za kodiranje/uređaj za dekodiranje može da proverava susedne blokove određenim redosledom da li zadovoljava određeni uslov, i izvede nasleđeni afini kandidat za trenutni blok na osnovu susednog bloka za kojeg je najpre potvrđeno da je dostupan. Osim toga, uređaj za kodiranje/uređaj za dekodiranje može izvesti nasleđeni afini kandidat za trenutni blok na osnovu susednog bloka za kojeg je kao drugog potvrđeno da ispunjava određeni uslov. Odnosno, uređaj za kodiranje/uređaj za dekodiranje može izvesti nasleđeni afini kandidat za trenutni blok na osnovu susednog bloka za kojeg je kao drugog potvrđeno da ispunjava određeni uslov. Ovde, biti dostupan može biti da je blok kodiran afinim modelom pokreta, i da je referentna slika bloka ista kao referentna slika trenutnog bloka. Odnosno, određeni uslov može biti da je blok kodiran afinim modelom pokreta, i da je referentna slika bloka ista kao referentna slika trenutnog bloka.
4
[0201] Susedni blokovi A, D i E sa Fig.18 mogu da se koriste kada se izvodi levi prediktor među nasleđenim afinim kandidatom, a susedni blokovi B i C mogu da se koriste kada se izvodi gornji prediktor među nasleđenim afinim kandidatom.
[0202] Levi prediktor, to jest kandidat pokreta koji se može dodati na levom susednom bloku, može se dodati kandidatu kojem se nasleđuje "susedni značajan blok" za kojeg je kao prvog određeno da je dostupan u redosledu blok A → blok E → blok D (ili blok A → blok E → blok D, blok D → blok A → blok E). Gornji prediktor, to jest kandidat pokreta koji se može dodati na gornjem susednom bloku, može se dodati kandidatu kojem se nasleđuje "susedni značajan blok" za kojeg je kao prvog određeno da je dostupan u redosledu blok B → blok C ili blok C → blok B. Odnosno, maksimalni broj nasleđenog kandidata koji se može izvesti iz svakog od levog prediktora i gornjeg prediktora je jedan.
[0203] Kada je "susedni značajan blok" kodiran afinim modelom pokreta sa 4 parametra, nasleđeni kandidat može se odrediti korišćenjem afinog modela pokreta sa 4 parametra, a kada je "susedni značajan blok" kodiran afinim modelom pokreta sa 6 parametara, nasleđeni kandidat može se odrediti korišćenjem afinog modela pokreta sa 6 parametara.
[0204] Kada je broj nasleđenih kandidata određenih pomoću levog prediktora i gornjeg prediktora jednak dva, postupak provere radi skraćivanja može se izvesti ili se ne izvodi. Iako se generalno izvodi postupak provere radi skraćivanja i sprečava da se isti kandidat doda u listu kandidata, postupak provere radi skraćivanja povećava složenost jer MV za svaki CP treba da se poredi u predikciji pokreta u kojoj se koristi afini model. Međutim, kada se nasleđeni kandidat konfiguriši korišćenjem primera opisanog upućivanjem na Fig.18, verovatnoća da se kandidati određeni pomoću levog prediktora i gornjeg prediktora međusobno razlikuju je veoma visoka jer su kandidati udaljeni. Prema tome, prednost je što se performansa kodiranja retko smanjuje, čak i bez izvođenja postupka provere radi skraćivanja.
[0205] U međuvremenu, postupak provere radi skraćivanja čija je složenost mala može da se koristi umesto izvođenja postupka provere radi skraćivanja. Na primer, postupak provere radi skraćivanja može se izvesti pomoću postupka poređenja samo MV za CP0.
[0206] Razlog zbog kojeg je utvrđeno da je E na položaju susednog bloka koji treba da se skenira u potrazi za nasleđenim kandidatom je kao što sledi. U postupku redukcije linijskog bafera koji je opisan u nastavku, kada referentni blok (tj., susedni blok B, susedni blok C) smešten iznad trenutnog bloka ne postoji u istom CTU kao trenutni blok, postupak redukcije linijskog bafera može da se koristi. Stoga, kada se postupak redukcije linijskog bafera primeni zajedno sa generisanjem nasleđenog kandidata, položaj susednog bloka prikazan na Fig.18 koristi se za održavanje performansi kodiranja.
[0207] Osim toga, postupak može da konfiguriše najviše jednog nasleđenog kandidata i koristi ga kao afinog MVP kandidata. Istovremeno, kao nasleđeni kandidat može da se koristi vektor pokreta susednog bloka koji je prvi po značaju na osnovu redosleda A → B → C → D bez razlike levog prediktora i gornjeg prediktora.
[0208] U međuvremenu, ovaj dokument predlaže još jedan primer izvođenja nasleđenog afinog kandidata.
[0209] U ovom primeru, nasleđeni kandidat može se izvesti korišćenjem susednog bloka prikazanog na Fig.18.
[0210] Odnosno, uređaj za kodiranje/uređaj za dekodiranje može izvesti najviše dva nasleđena afina kandidata iz susednih blokova za trenutni blok.
[0211] Osim toga, uređaj za kodiranje/uređaj za dekodiranje može da proverava susedne blokove određenim redosledom da li je neki dostupan, i izvede nasleđeni afini kandidat za trenutni blok na osnovu susednog bloka za kojeg je najpre potvrđeno da je dostupan. Odnosno, uređaj za kodiranje/uređaj za dekodiranje može da proverava susedne blokove određenim redosledom da li zadovoljava određeni uslov, i izvede nasleđeni afini kandidat za trenutni blok na osnovu susednog bloka za kojeg je najpre potvrđeno da je dostupan. Osim toga, uređaj za kodiranje/uređaj za dekodiranje može izvesti nasleđeni afini kandidat za trenutni blok na osnovu susednog bloka za kojeg je kao drugog potvrđeno da ispunjava određeni uslov. Odnosno, uređaj za kodiranje/uređaj za dekodiranje može izvesti nasleđeni afini kandidat za trenutni blok na osnovu susednog bloka za kojeg je kao drugog potvrđeno da ispunjava određeni uslov. Ovde, biti dostupan može biti da je blok kodiran afinim modelom pokreta, i da je referentna slika bloka ista kao referentna slika trenutnog bloka. Odnosno, određeni uslov može biti da je blok kodiran afinim modelom pokreta, i da je referentna slika bloka ista kao referentna slika trenutnog bloka.
[0212] Kao što je prethodno opisano, susedni blokovi A, D i E mogu da se koriste kada se izvodi levi prediktor među nasleđenim afinim kandidatom, a susedni blokovi B i C mogu da se koriste kada se izvodi gornji prediktor među nasleđenim afinim kandidatom.
[0213] Levi prediktor, to jest kandidat pokreta koji može da se doda na levi susedni blok, može se dodati kandidatu kojem se nasleđuje "susedni značajan blok" za kojeg je kao prvog određeno da je dostupan u redosledu blok A → blok E → blok D (ili blok A → blok E → blok D, blok D → blok A → blok E). Gornji prediktor, to jest kandidat pokreta koji se može dodati na gornjem susednom bloku, može se dodati kandidatu kojem se nasleđuje "susedni značajan blok" za kojeg je kao prvog određeno da je dostupan u redosledu blok B → blok C ili blok C → blok B. Odnosno, maksimalni broj nasleđenog kandidata koji se može izvesti iz svakog od levog prediktora i gornjeg prediktora jednak je jedan.
[0214] Kada je "susedni značajan blok" kodiran afinim modelom pokreta sa 4 parametra, nasleđeni kandidat može se odrediti korišćenjem afinog modela pokreta sa 4 parametra, a kada je "susedni značajan blok" kodiran afinim modelom pokreta sa 6 parametara, nasleđeni kandidat može se odrediti korišćenjem afinog modela pokreta sa 6 parametara.
[0215] Osim toga, čak i prema ovom primeru, kada je broj nasleđenih kandidata određenih pomoću levog prediktora i gornjeg prediktora jednak dva, postupak provere radi skraćivanja može se izvesti ali ne mora da se izvede. Iako se generalno izvodi postupak provere radi skraćivanja i sprečava da se isti kandidat doda u listu kandidata, postupak provere radi skraćivanja povećava složenost jer MV za svaki CP treba da se poredi u predikciji pokreta u kojoj se koristi afini model. Međutim, kada je nasleđeni kandidat konfigurisan korišćenjem primera opisanog upućivanjem na Fig.18, verovatnoća da se kandidati određeni pomoću levog prediktora i gornjeg prediktora međusobno razlikuju veoma je visoka jer su kandidati udaljeni. Prema tome, prednost je što se performansa kodiranja retko smanjuje, čak i bez izvođenja postupka provere radi skraćivanja.
[0216] U međuvremenu, postupak provere radi skraćivanja čija je složenost mala može da se koristi umesto izvođenja postupka provere radi skraćivanja. Na primer, postupak provere radi skraćivanja može se izvesti određivanjem da li je susedni blok E uključen u isti blok kodiranja kao susedni blok A samo kada je susedni blok E "susedni značajan blok". Složenost je mala jer se izvodi provera radi skraćivanja samo jedanput. Razlog što se provera radi skraćivanja izvodi samo na susednom bloku E je jer je veoma mala verovatnoća da referentni blok (susedni blok B, susedni blok C) gornjeg prediktora osim susednog bloka E, i referentni blok (susedni blok A, susedni blok D) levog prediktora konfigurišu istog nasleđenog kandidata a zato što su locirani dovoljno međusobno udaljeno, i jer suprotno, u slučaju susednog bloka E, postoji verovatnoća da se konfiguriše istog nasleđenog kandidata kada je uključen u isti blok kao susedni blok A.
[0217] Razlog što je E određen kao položaj susednog bloka koji treba da se skenira radi pretrage nasleđenog kandidata je kao što sledi. U postupku redukcije linijskog bafera koji je opisan u nastavku, kada referentni blok (tj., susedni blok B, susedni blok C) smešten iznad trenutnog bloka ne postoji u istom CTU kao trenutni blok, može da se ne koristi postupak redukcije linijskog bafera. Prema tome, kada se postupak redukcije linijskog bafera primenjuje zajedno sa generisanjem nasleđenog kandidata, položaj susednog bloka prikazan na Fig.18 koristi se za održavanje performansi kodiranja.
[0218] Osim toga, postupak može da konfiguriše najviše jednog nasleđenog kandidata i koristi ga kao afinog MVP kandidata. Istovremeno, kao nasleđeni kandidat može da se koristi vektor pokreta susednog bloka koji je prvi po značaju na osnovu redosleda A → B → C → D bez razlike levog prediktora i gornjeg prediktora.
[0219] U međuvremenu, prema nekom primeru ovog dokumenta, postupak za generisanje afinog MVP liste opisane upućivanjem na Fig.16 do 18 može da se primeni na postupak za izvođenje nasleđenog kandidata iz liste kandidata za spajanje na osnovu afinog modela pokreta. Prema ovom primeru, prednost je u smislu troškova projektovanja jer se isti postupak može primeniti na generisanje afinog MVP liste i generisanje liste kandidata za spajanje. Primer generisanja liste kandidata za spajanje na osnovu afinog modela pokreta je kao što sledi, i ovaj se postupak može primeniti za konfigurisanje nasleđenog kandidata prilikom generisanja druge liste za spajanje.
[0220] Posebno, lista kandidata za spajanje može da se konfiguriše kao u nastavku.
4
[0221] Fig.19 prikazuje primer konfiguracije liste kandidata za spajanje za trenutni blok.
[0222] Što se tiče Fig.19, uređaj za kodiranje/uređaj za dekodiranje može da dodaje nasleđenog kandidata za spajanje listi kandidata za spajanje (S1900).
[0223] Posebno, uređaj za kodiranje/uređaj za dekodiranje može izvesti nasleđenog kandidata na osnovu susednih blokova za trenutni blok.
[0224] Susedni blokovi za trenutni blok za izvođenje nasleđenog kandidata su kao na Fig.11. Odnosno, susedni blokovi za trenutni blok mogu da uključuju susedni blok u donjem levom uglu A0 za trenutni blok, levi susedni blok A1 za trenutni blok, susedni blok u gornjem desnom uglu B0 za trenutni blok, gornji susedni blok B1 za trenutni blok, i susedni blok u gornjem levom uglu B2 za trenutni blok.
[0225] Nasleđeni kandidat može se izvesti na osnovu značajnog susednog rekonstruisanog bloka koji je kodiran u afinom režimu. Na primer, uređaj za kodiranje/uređaj za dekodiranje može da proverava susedne blokove A0, A1, B0, B1 i B2 sekvencijalno, ili susedne blokove A1, B1 B0, A0 i B2 sekvencijalno, i, ako se susedni blok kodira u afinom režimu (odnosno, ako je susedni blok susedni blok koji je značajno rekonstruisan korišćenjem afinog modela pokreta), mogu se izvesti dva CPMV ili tri CPMV za trenutni blok na osnovu afinog modela pokreta susednog bloka, i CPMV-ovi mogu se izvesti kao nasleđeni kandidat za trenutni blok. Kao jedan primer, najviše pet nasleđenih kandidata može se dodati u listu kandidata za spajanje. Odnosno, najviše pet nasleđenih kandidata može se izvesti na osnovu susednih blokova.
[0226] Kada se sledi ovaj primer, radi izvođenja nasleđenog kandidata, ne koristi se susedni blok sa Fig. 11 već se koristi susedni blok sa Fig.16 do 18 i može se primeniti primer opisan upućivanjem na Fig.16 do 18.
[0227] Nakon ovoga, uređaj za kodiranje/uređaj za dekodiranje može da doda konstruisanog kandidata u listu kandidata za spajanje (S1910).
[0228] Na primer, ako je broj kandidata za spajanje iz liste kandidata za spajanje manji od pet, konstruisan kandidat može se dodati u listu kandidata za spajanje. Konstruisan kandidat može da predstavlja kandidata za spajanje koji je generisan kombinovanjem susednih informacija o pokretima na svakom od CP-ova za trenutni blok (tj., vektor pokreta susednog bloka i indeks referentne slike).
Informacije o pokretima na svakom od CP-ova mogu se izvesti na osnovu prostornog susednog bloka ili vremenskog susednog bloka za odgovarajući CP. Informacije o pokretima na svakom od CP-ova mogu se prikazati kao kandidatni vektor pokreta za odgovarajući CP.
[0229] Fig.20 predstavlja susedne blokove za trenutni blok za izvođenje konstruisanog kandidata prema nekom primeru ovog dokumenta.
[0230] Upućivanjem na Fig.20, susedni blokovi mogu da uključuju prostorne susedne blokove i vremenski susedni blok. Prostorni susedni blokovi mogu da uključuju susedni blok A0, susedni blok A1, susedni blok A2, susedni blok B0, susedni blok B 1, susedni blok B2 i susedni blok B3. Susedni blok T prikazan na Fig.20 može da predstavlja vremenski susedni blok.
[0231] Ovde, susedni blok B2 može da predstavlja susedni blok smešten gore levo od gornjeg levog položaja uzorka trenutnog bloka; susedni blok B3, susedni blok smešten iznad gornjeg levog položaja uzorka trenutnog bloka; i susedni blok A2, susedni blok smešten levo od gornjeg levog položaja uzorka trenutnog bloka. Pored toga, susedni blok B1 može da predstavlja susedni blok smešten iznad gornjeg desnog položaja uzorka trenutnog bloka; i susedni blok B0, susedni blok smešten gore desno od gornjeg desnog položaja uzorka trenutnog bloka. Pored toga, susedni blok A1 može da predstavlja susedni blok smešten levo od donjeg levog položaja uzorka trenutnog bloka; i susedni blok A0, susedni blok smešten dole levo od donjeg levog položaja uzorka trenutnog bloka.
[0232] Osim toga, upućivanjem na Fig.20, CP-ovi za trenutni blok mogu da uključuju CP0, CP1, CP2 i/ili CP3. CP0 može da predstavlja gornji levi položaj trenutnog bloka; CP1, gornji desni položaj trenutnog bloka; CP2, donji levi položaj trenutnog bloka; i CP3, donji desni položaj trenutnog bloka. Na primer, ako je veličina trenutnog bloka WxH, i x komponenta gornjeg levog položaja uzorka trenutnog bloka je 0 dok je njegova y komponenta 0, CP0 može da predstavlja položaj sa koordinatama (0, 0); CP1, položaj sa koordinatama (W, 0); CP2, položaj sa koordinatama (0, H); i CP3, položaj sa koordinatama (W, H).
[0233] Vektor pokreta za svaki od gorepomenutih CP-ova može se izvesti kao što sledi.
[0234] Na primer, uređaj za kodiranje/uređaj za dekodiranje može da proverava susedne blokove u prvoj grupi prvim redosledom da li je neki dostupan, i kao kandidatni vektor pokreta za CP0 može da izvede vektor pokreta susednog bloka za kojeg je najpre potvrđeno da je dostupan tokom postupka provere. Odnosno, kandidatni vektor pokreta za CP0 može biti vektor pokreta susednog bloka za kojeg je najpre potvrđeno da je dostupan tokom provere susednih blokova u prvoj grupi prvim redosledom. Biti dostupan može da predstavlja postojanje vektora pokreta susednog bloka. Odnosno, dostupan susedni blok može biti blok koji se kodira u inter predikciji (odnosno, blok na kojeg se primenjuje inter predikcija). Ovde, na primer, prva grupa može da uključuje susedni blok B2, susedni blok B3 i susedni blok A2. Prvi redosled može da bude redosled u prvoj grupi od susednog bloka B2 do susednog bloka B3, a zatim do susednog bloka A2. Kao jedan primer, ako je susedni blok B2 dostupan, vektor pokreta susednog bloka B2 može se izvesti kao kandidatni vektor pokreta za CP0; ako susedni blok B2 nije dostupan, a susedni blok B3 je dostupan, vektor pokreta susednog bloka B3, kao kandidatni vektor pokreta za CP0; ako nijedan od susednih blokova B2 i B3 nije dostupan, a susedni blok A2 je dostupan, vektor pokreta susednog bloka A2, kao kandidatni vektor pokreta za CP0.
[0235] Osim toga, na primer, uređaj za kodiranje/uređaj za dekodiranje može da proverava susedne blokove u drugoj grupi drugim redosledom da li je neki dostupan, i može kao kandidatnog vektora pokreta za CP1 da izvede vektor pokreta susednog bloka za kojeg je najpre potvrđeno da je dostupan tokom postupka provere. Odnosno, kandidatni vektor pokreta za CP1 može biti vektor pokreta susednog
4
bloka za kojeg je najpre potvrđeno da je dostupan tokom provere susednih blokova u drugoj grupi drugim redosledom. Biti dostupan može da predstavlja postojanje vektora pokreta susednog bloka. Odnosno, dostupan susedni blok može biti blok koji se kodira u inter predikciji (odnosno, blok na kojeg se primenjuje inter predikcija). Ovde, druga grupa može da uključuje susedni blok B1 i susedni blok B0. Drugi redosled može biti redosled u drugoj grupi od susednog bloka B1 do susednog bloka B0. Kao jedan primer, ako je susedni blok B1 dostupan, vektor pokreta susednog bloka B1 može se izvesti kao kandidatni vektor pokreta za CP1; i ako susedni blok B1 nije dostupan, a susedni blok B0 je dostupan, vektor pokreta susednog bloka B0, kao kandidatni vektor pokreta za CP1.
[0236] Osim toga, na primer, uređaj za kodiranje/uređaj za dekodiranje može da proverava susedne blokove u trećoj grupi duž trećeg redosleda da li je neki dostupan, i može kao kandidatnog vektora pokreta za CP2 da izvede vektor pokreta susednog bloka za kojeg je najpre potvrđeno da je dostupan tokom postupka provere. Odnosno, kandidatni vektor pokreta za CP2 može biti vektor pokreta susednog bloka za kojeg je najpre potvrđeno da je dostupan tokom provere susednih blokova u trećoj grupi trećim redosledom. Biti dostupan može da predstavlja postojanje vektora pokreta susednog bloka. Odnosno, dostupan susedni blok može biti blok koji se kodira u inter predikciji (odnosno, blok na kojeg se primenjuje inter predikcija). Ovde, treća grupa može da uključuje susedni blok A1 i susedni blok A0. Treći redosled može da bude redosled u trećoj grupi od susednog bloka A1 do susednog bloka A0. Kao jedan primer, ako je susedni blok A1 dostupan, vektor pokreta susednog bloka A1 može se izvesti kao kandidatni vektor pokreta za CP2; i ako susedni blok A1 nije dostupan, a susedni blok A0 je dostupan, vektor pokreta susednog bloka A0, kao kandidatni vektor pokreta za CP2.
[0237] Osim toga, na primer, uređaj za kodiranje/uređaj za dekodiranje može da proveri da li je dostupan vremenski susedni blok (tj., susedni blok T), i ako je vremenski susedni blok (tj., susedni blok T) dostupan, vektor pokreta vremenskog susednog bloka (tj., susedni blok T) može se izvesti kao kandidatni vektor pokreta za CP3.
[0238] Kombinacija kandidatnog vektora pokreta za CP0, kandidatnog vektora pokreta za CP1, kandidatnog vektora pokreta za CP2 i/ili kandidatnog vektora pokreta za CP3 može se izvesti kao konstruisan kandidat.
[0239] Na primer, kao što je prethodno opisano, za 6-afini model potrebni su vektori pokreta tri CP-a. Za 6-afini model, tri CP-a mogu se odabrati među CP0, CP1, CP2 i CP3. Na primer, CP-ovi mogu se odabrati kao jedan od {CP0, CP1, CP3}, {CP0, CP1, CP2}, {CP1, CP2, CP3} i {CP0, CP2, CP3}. Kao jedan primer, 6-afini model može da se konfiguriše upotrebom CP0, CP1 i CP2. U ovom slučaju, CP-ovi mogu se predstaviti kao {CP0, CP1, CP2}.
[0240] Osim toga, na primer, kao što je prethodno opisano, za 4-afini model potrebni su vektori pokreta dva CP-a. Za 4-afini model, dva CP-a mogu se odabrati među CP0, CP1, CP2 i CP3. Na primer, CP-ovi mogu se odabrati kao jedan od {CP0, CP3}, {CP1, CP2}, {CP0, CP1}, {CP1, CP3}, {CP0, CP2} i {CP2, CP3}.
4
Kao jedan primer, 4-afini model može da se konstituiše korišćenjem CP0 i CP1. U ovom slučaju, CP-ovi mogu se predstaviti kao {CP0, CP1}.
[0241] Konstruisan kandidat, koji je kombinacija kandidatnih vektora pokreta, može se dodati u listu kandidata za spajanje sledećim redosledom. Odnosno, nakon što se izvedu kandidatni vektori pokreta za CP-ove, konstruisan kandidat može se izvesti prema sledećem redosledu:
[0242] {CP0, CP1, CP2}, {CP0, CP1, CP3}, {CP0, CP2, CP3}, {CP1, CP2, CP3}, {CP0, CP1}, {CP0, CP2}, {CP1, CP2}, {CP0, CP3}, {CP1, CP3}, {CP2, CP3}
[0243] Odnosno, na primer, konstruisan kandidat koji uključuje kandidatni vektor pokreta za CP0, kandidatni vektor pokreta za CP1 i kandidatni vektor pokreta za CP2, konstruisan kandidat koji uključuje kandidatni vektor pokreta za CP0, kandidatni vektor pokreta za CP1 i kandidatni vektor pokreta za CP3, konstruisan kandidat koji uključuje kandidatni vektor pokreta za CP0, kandidatni vektor pokreta za CP2 i kandidatni vektor pokreta za CP3, konstruisan kandidat koji uključuje kandidatni vektor pokreta za CP1, kandidatni vektor pokreta za CP2 i kandidatni vektor pokreta za CP3, konstruisan kandidat koji uključuje kandidatni vektor pokreta za CP0 i kandidatni vektor pokreta za CP1, konstruisan kandidat koji uključuje kandidatni vektor pokreta za CP0 i kandidatni vektor pokreta za CP1, konstruisan kandidat koji uključuje kandidatni vektor pokreta za CP0 i kandidatni vektor pokreta za CP2, konstruisan kandidat koji uključuje kandidatni vektor pokreta za CP1 i kandidatni vektor pokreta za CP2, konstruisan kandidat koji uključuje kandidatni vektor pokreta za CP0 i kandidatni vektor pokreta za CP3, konstruisan kandidat koji uključuje kandidatni vektor pokreta za CP1 i kandidatni vektor pokreta za CP3, i konstruisan kandidat koji uključuje kandidatni vektor pokreta za CP2 i kandidatni vektor pokreta za CP3 mogu se dodati u listu kandidata za spajanje ovim redosledom.
[0244] Nakon ovoga, uređaj za kodiranje/uređaj za dekodiranje može da doda nula vektora pokreta listi kandidata za spajanje (S1920).
[0245] Na primer, ako je broj kandidata za spajanje sa liste kandidata za spajanje manji od 5, kandidat za spajanje koji uključuje nula vektora pokreta može se dodavati u listu kandidata za spajanje dok se lista kandidata za spajanje ne konfiguriše sa maksimalnim brojem kandidata za spajanje. Maksimalni broj kandidata za spajanje može da bude pet. Osim toga, nula vektor pokreta može da predstavlja vektor pokreta čija je vrednost vektora nula.
[0246] U međuvremenu, postupak skeniranja za konfiguraciju kandidata i položaja susednih blokova korišćenih u postupku generisanja afinog MVP liste opisane upućivanjem na Fig.16 do 18 može da se koristi za normalno spajanje i normalnu MVP. Ovde, normalno spajanje može da znači režim spajanja koji nije afini režim spajanja i može da se koristi u HEVC ili slično, a normalna MVP takođe može da znači AMVP koja nije afina MVP i može da se koristi u HEVC. Na primer, primenom postupka opisanog upućivanjem na Fig.16 za normalno spajanje i/ili normalnu MVP posebno znači skeniranje susednog bloka prostornog položaja sa Fig.16, i/ili konfiguracija levog prediktora i gornjeg prediktora pomoću
4
susednog bloka sa Fig.16, i/ili izvođenje provere radi skraćivanja ili izvođenje sa postupkom male složenosti. Kada se ovaj postupak primeni na normalno spajanje ili normalnu MVP, može da postoji povoljan efekat u pogledu troškova projektovanja.
[0247] Osim toga, ovaj dokument predlaže postupak za izvođenje konstruisanog kandidata, koji se razlikuje od prethodno opisanog primera. Predložen primer može da poboljša performanse kodiranja smanjenjem složenosti kada se poredi sa prethodno opisanim primerom izvođenja konstruisanog kandidata. Predložen primer je kao što je opisano u nastavku. Osim toga, kada je broj dostupnih nasleđenih afinih kandidata manji od dva (odnosno, broj izvedenih nasleđenih afinih kandidata manji je od dva), može da se razmatra konstruisani afini kandidat.
[0248] Na primer, uređaj za kodiranje/uređaj za dekodiranje može da proverava mv0, mv1, i mv2za trenutni blok. Odnosno, uređaj za kodiranje/uređaj za dekodiranje može da određuje da li dostupan mv0, mv1, ili mv2postoji u susednim blokovima za trenutni blok. Ovde, mv0može biti CPMVP kandidat za CP0 za trenutni blok; mv1, CPMVP kandidat za CP1; i mv2, CPMVP kandidat za CP2.
[0249] Određenije, susedni blokovi za trenutni blok mogu se podeliti 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 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 smešten gore levo od gornjeg levog položaja uzorka trenutnog bloka; susedni blok B, susedni blok smešten iznad gornjeg levog položaja uzorka trenutnog bloka; susedni blok C, susedni blok smešten levo od gornjeg levog položaja uzorka trenutnog bloka; susedni blok D, susedni blok smešten iznad gornjeg desnog položaja uzorka trenutnog bloka; susedni blok E, susedni blok smešten gore desno od gornjeg desnog položaja uzorka trenutnog bloka; susedni blok F, susedni blok smešten levo od donjeg levog položaja uzorka trenutnog bloka; i susedni blok G, susedni blok smešten dole levo od donjeg levog položaja uzorka trenutnog bloka.
[0250] Uređaj za kodiranje/uređaj za dekodiranje može da određuje da li dostupan mv0postoji u prvoj grupi, može da određuje da li dostupan mv1postoji u drugoj grupi, i može da određuje da li dostupan mv2postoji u trećoj grupi.
[0251] Određenije, na primer, uređaj za kodiranje/uređaj za dekodiranje može da proverava vektore pokreta susednih blokova u prvoj grupi određenim redosledom da li zadovoljava određeni uslov. Uređaj za kodiranje/uređaj za dekodiranje može kao mv0da izvede vektor pokreta susednog bloka za kojeg je najpre potvrđeno da ispunjava uslov tokom postupka provere. Odnosno, mv0može biti vektor pokreta za kojeg je najpre potvrđeno da ispunjava određeni uslov tokom provere vektora pokreta u prvoj grupi određenim redosledom. Kada vektori pokreta susednih blokova u prvoj grupi ne ispunjavaju određeni uslov, onda može da ne bude dostupnog mv0. Ovde, na primer, određeni redosled može biti onaj od
4
susednog bloka A do susednog bloka B, a zatim do susednog bloka C u prvoj grupi. Osim toga, na primer, određeni uslov može biti da referentna slika za vektor pokreta susednog bloka treba da je ista kao referentna slika trenutnog bloka.
[0252] Osim toga, uređaj za kodiranje/uređaj za dekodiranje može da proverava vektore pokreta susednih blokova u drugoj grupi određenim redosledom da li zadovoljava određeni uslov. Uređaj za kodiranje/uređaj za dekodiranje može kao mv1da izvede vektor pokreta susednog bloka za kojeg je najpre potvrđeno da ispunjava uslov tokom postupka provere. Odnosno, mv1može biti vektor pokreta za kojeg je najpre potvrđeno da ispunjava određeni uslov tokom provere vektora pokreta u drugoj grupi određenim redosledom. Kada vektori pokreta susednih blokova u drugoj grupi ne ispunjavaju određeni uslov, onda može da ne bude dostupnog mv1. Ovde, na primer, određeni redosled može biti onaj od susednog bloka D do susednog bloka E u drugoj grupi. Osim toga, na primer, određeni uslov može biti da referentna slika za vektor pokreta susednog bloka treba da je ista kao referentna slika trenutnog bloka.
[0253] Osim toga, uređaj za kodiranje/uređaj za dekodiranje može da proverava vektore pokreta susednih blokova u trećoj grupi određenim redosledom da li zadovoljava određeni uslov. Uređaj za kodiranje/uređaj za dekodiranje može kao mv2da izvede vektor pokreta susednog bloka za kojeg je najpre potvrđeno da ispunjava uslov tokom postupka provere. Odnosno, mv2može biti vektor pokreta za kojeg je najpre potvrđeno da ispunjava određeni uslov tokom provere vektora pokreta u trećoj grupi određenim redosledom. Kada vektori pokreta susednih blokova u trećoj grupi ne ispunjavaju određeni uslov, onda može da ne bude dostupnog mv2. Ovde, na primer, određeni redosled može biti onaj od susednog bloka F do susednog bloka G u trećoj grupi. Osim toga, na primer, određeni uslov može biti da referentna slika za vektor pokreta susednog bloka treba da je ista kao referentna slika trenutnog bloka.
[0254] Nakon ovoga, kada afini model pokreta primenjen na trenutni blok predstavlja 4-afini model pokreta, i kada su mv0i mv1dostupni za trenutni blok, uređaj za kodiranje/uređaj za dekodiranje može izvesti izvedene mv0i mv1kao konstruisan kandidat za trenutni blok. U međuvremenu, kada mv0i/ili mv1za trenutni blok nije/nisu dostupan/dostupni, odnosno, kada najmanje jedan od mv0i mv1nije izveden iz susednog bloka za trenutni blok, uređaj za kodiranje/uređaj za dekodiranje ne može da dodaje konstruisanog kandidata afinoj MVP listi za trenutni blok.
[0255] Osim toga, kada afini model pokreta primenjen na trenutni blok predstavlja 6-afini model pokreta, i kada su mv0, mv1i mv2dostupni za trenutni blok, uređaj za kodiranje/uređaj za dekodiranje može izvesti izvedene mv0, mv1i mv2kao konstruisanog kandidata za trenutni blok. U međuvremenu, kada mv0, mv1i/ili mv2za trenutni blok nije/nisu dostupan/dostupni, odnosno, kada najmanje jedan od mv0, mv1i mv2nije izveden iz susednog bloka za trenutni blok, uređaj za kodiranje/uređaj za dekodiranje ne može da dodaje konstruisan kandidat afinoj MVP listi za trenutni blok.
[0256] Prethodno opisan predložen primer je postupak koji se razmatra kao konstruisan kandidat samo kada su dostupni svi vektori pokreta za CP-ove za generisanje afinog modela pokreta za trenutni blok.
4
Ovde, izraz biti dostupan može da znači da je referentna slika susednog bloka ista kao referentna slika trenutnog bloka. Odnosno, konstruisan kandidat može se izvesti samo kada među vektorima pokreta susednih blokova za odgovarajuće CP-ove za trenutni blok, postoji vektor pokreta kji ispunjava uslov. Prema tome, kada afini model pokreta primenjen na trenutni blok predstavlja 4-afini model pokreta, i samo kada su dostupni MV-ovi za CP0 i CP1 za trenutni blok (odnosno, mv0i mv1), onda može da se razmatra konstruisan kandidat. Prema tome, kada afini model pokreta primenjen na trenutni blok predstavlja 6-afini model pokreta, i samo kada su dostupni MV-ovi za CP0, CP1 i CP2 za trenutni blok (odnosno, mv0, mv1, i mv2), onda može da se razmatra konstruisan kandidat. Stoga, prema predloženom primeru, možda neće biti potrebe za dodatnom konfiguracijom izvođenja vektora pokreta za CP na osnovu Jednačine 6 ili 7. Na ovaj način, moguće je da se smanji računska složenost za izvođenje konstruisanog kandidata. Osim toga, budući da je konstruisan kandidat određen samo kada je dostupan CPMVP kandidat koji ima istu referentnu sliku, moguće je da se poboljšaju sveukupne performanse kodiranja.
[0257] U međuvremenu, postupak provere radi skraćivanja između izvedenog nasleđenog afinog kandidata i konstruisanog afinog kandidata ne moraju se izvesti. Postupak provere radi skraćivanja može da predstavlja postupak kojim se kandidati proveravaju da li su međusobno isti, i, ako su isti, kandidat izveden potonjim redosledom se uklanja.
[0258] Prethodno opisan primer može da bude prikazan kao na Fig.21 i 22.
[0259] Fig.21 prikazuje primer izvođenja konstruisanog kandidata za 4-afini model pokreta koji se primenjuje na trenutni blok.
[0260] Upućivanjem na Fig.21, uređaj za kodiranje/uređaj za dekodiranje može da određuje da li su mv0i mv1dostupni za trenutni blok (S2100). Odnosno, uređaj za kodiranje/uređaj za dekodiranje može da određuje da li dostupni mv0i mv1postoje u susednim blokovima za trenutni blok. Ovde, mv0može biti CPMVP kandidat za CP0 za trenutni blok, i mv1može biti CPMVP kandidat za CP1.
[0261] Uređaj za kodiranje/uređaj za dekodiranje može da određuje da li dostupan mv0postoji u prvoj grupi, i može da određuje da li dostupan mv1postoji u drugoj grupi.
[0262] Određenije, susedni blokovi za trenutni blok mogu se podeliti 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 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 smešten gore levo od gornjeg levog položaja uzorka trenutnog bloka; susedni blok B, susedni blok smešten iznad gornjeg levog položaja uzorka trenutnog bloka; susedni blok C, susedni blok smešten levo od gornjeg levog položaja uzorka trenutnog bloka; susedni blok D, susedni blok smešten iznad gornjeg desnog položaja uzorka trenutnog bloka; susedni blok E, susedni blok smešten gore desno od gornjeg desnog položaja uzorka trenutnog bloka; susedni blok F, susedni blok smešten levo od donjeg levog položaja uzorka trenutnog bloka; i susedni blok G, susedni blok smešten dole levo od donjeg levog položaja uzorka trenutnog bloka.
[0263] Osim toga, uređaj za kodiranje/uređaj za dekodiranje može da proverava vektore pokreta susednih blokova u prvoj grupi određenim redosledom da li zadovoljava određeni uslov. Uređaj za kodiranje/uređaj za dekodiranje može kao mv0da izvede vektor pokreta susednog bloka za kojeg je najpre potvrđeno da ispunjava uslov tokom postupka provere. Odnosno, mv0može biti vektor pokreta za kojeg je najpre potvrđeno da ispunjava određeni uslov tokom provere vektora pokreta u prvoj grupi određenim redosledom. Kada vektori pokreta susednih blokova u prvoj grupi ne ispunjavaju određeni uslov, onda može da ne bude dostupnog mv0. Ovde, na primer, određeni redosled može biti onaj od susednog bloka A do susednog bloka B, a zatim do susednog bloka C u prvoj grupi. Osim toga, na primer, određeni uslov može biti da referentna slika za vektor pokreta susednog bloka treba da je ista kao referentna slika trenutnog bloka.
[0264] Osim toga, uređaj za kodiranje/uređaj za dekodiranje može da proverava vektore pokreta susednih blokova u drugoj grupi određenim redosledom da li zadovoljava određeni uslov. Uređaj za kodiranje/uređaj za dekodiranje može kao mv1da izvede vektor pokreta susednog bloka za kojeg je najpre potvrđeno da ispunjava uslov tokom postupka provere. Odnosno, mv1može biti vektor pokreta za kojeg je najpre potvrđeno da ispunjava određeni uslov tokom provere vektora pokreta u drugoj grupi određenim redosledom. Kada vektori pokreta susednih blokova u drugoj grupi ne ispunjavaju određeni uslov, onda može da ne bude dostupnog mv1. Ovde, na primer, određeni redosled može biti onaj od susednog bloka D do susednog bloka E u drugoj grupi. Osim toga, na primer, određeni uslov može biti da referentna slika za vektor pokreta susednog bloka treba da je ista kao referentna slika trenutnog bloka.
[0265] Kada su mv0i mv1dostupni za trenutni blok, odnosno, kada su mv0i mv1izvedeni za trenutni blok, uređaj za kodiranje/uređaj za dekodiranje može, kao konstruisanog kandidata za trenutni blok, da izvede izvedene mv0i mv1(S2110). U međuvremenu, kada mv0i/ili mv1za trenutni blok nije/nisu dostupan/dostupni, odnosno, kada najmanje jedan od mv0i mv1nije izveden iz susednog bloka za trenutni blok, uređaj za kodiranje/uređaj za dekodiranje ne može da dodaje konstruisanog kandidata na afinu MVP listu za trenutni blok.
[0266] U međuvremenu, ne mora se izvesti postupak provere radi skraćivanja između izvedenog nasleđenog afinog kandidata i konstruisanog afinog kandidata. Postupak provere radi skraćivanja može da predstavlja postupak kojim se kandidati proveravaju da li su međusobno isti, i, ako su isti, kandidat izveden potonjim redosledom se uklanja.
[0267] Fig.22 prikazuje primer izvođenja konstruisanog kandidata za 6-afini model pokreta koji se primenjuje na trenutni blok.
1
[0268] Upućivanjem na Fig.22, uređaj za kodiranje/uređaj za dekodiranje može da određuje da li su mv0, mv1i mv2dostupni za trenutni blok (S2200). Odnosno, uređaj za kodiranje/uređaj za dekodiranje može da određuje da li dostupan mv0, mv1ili mv2postoji u susednim blokovima za trenutni blok. Ovde, mv0može biti CPMVP kandidat za CP0 za trenutni blok; mv1, CPMVP kandidat za CP1; i mv2, CPMVP kandidat za CP2.
[0269] Uređaj za kodiranje/uređaj za dekodiranje može da određuje da li dostupan mv0postoji u prvoj grupi, može da određuje da li dostupan mv1postoji u drugoj grupi, i može da određuje da li dostupan mv2postoji u trećoj grupi.
[0270] Određenije, susedni blokovi za trenutni blok mogu se podeliti 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 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 smešten gore levo od gornjeg levog položaja uzorka trenutnog bloka; susedni blok B, susedni blok smešten iznad gornjeg levog položaja uzorka trenutnog bloka; susedni blok C, susedni blok smešten levo od gornjeg levog položaja uzorka trenutnog bloka; susedni blok D, susedni blok smešten iznad gornjeg desnog položaja uzorka trenutnog bloka; susedni blok E, susedni blok smešten gore desno od gornjeg desnog položaja uzorka trenutnog bloka; susedni blok F, susedni blok smešten levo od donjeg levog položaja uzorka trenutnog bloka; i susedni blok G, susedni blok smešten dole levo od donjeg levog položaja uzorka trenutnog bloka.
[0271] Osim toga, uređaj za kodiranje/uređaj za dekodiranje može da proverava vektore pokreta susednih blokova u prvoj grupi određenim redosledom da li zadovoljava određeni uslov. Uređaj za kodiranje/uređaj za dekodiranje može kao mv0da izvede vektor pokreta susednog bloka za kojeg je najpre potvrđeno da ispunjava uslov tokom postupka provere. Odnosno, mv0može biti vektor pokreta za kojeg je najpre potvrđeno da ispunjava određeni uslov tokom provere vektora pokreta u prvoj grupi određenim redosledom. Kada vektori pokreta susednih blokova u prvoj grupi ne ispunjavaju određeni uslov, onda može da ne bude dostupnog mv0. Ovde, na primer, određeni redosled može biti onaj od susednog bloka A do susednog bloka B, a zatim do susednog bloka C u prvoj grupi. Osim toga, na primer, određeni uslov može biti da referentna slika za vektor pokreta susednog bloka treba da je ista kao referentna slika trenutnog bloka.
[0272] Osim toga, uređaj za kodiranje/uređaj za dekodiranje može da proverava vektore pokreta susednih blokova u drugoj grupi određenim redosledom da li zadovoljava određeni uslov. Uređaj za kodiranje/uređaj za dekodiranje može kao mv1da izvede vektor pokreta susednog bloka za kojeg je najpre potvrđeno da ispunjava uslov tokom postupka provere. Odnosno, mv1može biti vektor pokreta za kojeg je najpre potvrđeno da ispunjava određeni uslov tokom provere vektora pokreta u drugoj grupi
2
određenim redosledom. Kada vektori pokreta susednih blokova u drugoj grupi ne ispunjavaju određeni uslov, onda može da ne bude dostupnog mv1. Ovde, na primer, određeni redosled može biti onaj od susednog bloka D do susednog bloka E u drugoj grupi. Osim toga, na primer, određeni uslov može biti da referentna slika za vektor pokreta susednog bloka treba da je ista kao referentna slika trenutnog bloka.
[0273] Osim toga, uređaj za kodiranje/uređaj za dekodiranje može da proverava vektore pokreta susednih blokova u trećoj grupi određenim redosledom da li zadovoljava određeni uslov. Uređaj za kodiranje/uređaj za dekodiranje može kao mv2da izvede vektor pokreta susednog bloka za kojeg je najpre potvrđeno da ispunjava uslov tokom postupka provere. Odnosno, mv2može biti vektor pokreta za kojeg je najpre potvrđeno da ispunjava određeni uslov tokom provere vektora pokreta u trećoj grupi određenim redosledom. Kada vektori pokreta susednih blokova u trećoj grupi ne ispunjavaju određeni uslov, onda može da ne bude dostupnog mv2. Ovde, na primer, određeni redosled može biti onaj od susednog bloka F do susednog bloka G u trećoj grupi. Osim toga, na primer, određeni uslov može biti da referentna slika za vektor pokreta susednog bloka treba da je ista kao referentna slika trenutnog bloka.
[0274] Kada su mv0, mv1i mv2dostupni za trenutni blok, odnosno, kada su mv0, mv1i mv2izvedeni za trenutni blok, uređaj za kodiranje/uređaj za dekodiranje može kao konstruisanog kandidata za trenutni blok da izvede izvedene mv0, mv1i mv2(S2210). U međuvremenu, kada mv0, mv1i/ili mv2za trenutni blok nije/nisu dostupan/dostupni, odnosno, kada najmanje jedan od mv0, mv1i mv2nije izveden iz susednog bloka za trenutni blok, uređaj za kodiranje/uređaj za dekodiranje ne može da dodaje konstruisanog kandidata afinoj MVP listi za trenutni blok.
[0275] U međuvremenu, postupak provere radi skraćivanja između izvedenog nasleđenog afinog kandidata i konstruisanog afinog kandidata ne mora da se izvede.
[0276] U međuvremenu, kada je broj izvedenog afinog kandidata manji od dva (odnosno, kada je broj nasleđenog afinog kandidata i/ili konstruisanog afinog kandidata manji od dva), HEVC AMVP kandidat može se dodati afinoj MVP listi za trenutni blok.
[0277] Na primer, HEVC AMVP kandidat može se izvesti prema sledećem redosledu.
[0278] Određenije, kada je broj izvedenog afinog kandidata manji od dva, i kada je CPMV0 konstruisanog afinog kandidata dostupan, CPMV0 može da se koristi kao kandidat afinog MVP.
Odnosno, kada je broj izvedenog afinog kandidata manji od dva, i kada je dostupan CPMV0 konstruisanog afinog kandidata (odnosno, kada je broj izvedenog afinog kandidata manji od dva i CPMV0 konstruisanog afinog kandidata izveden), može se izvesti prvi kandidat afinog MVP koji uključuje CPMV0 konstruisanog afinog kandidata kao CPMVO, CPMV1, CPMV2.
[0279] Osim toga, dalje, kada je broj izvedenog afinog kandidata manji od dva, i kada je CPMV1 konstruisanog afinog kandidata dostupan, CPMV1 može da se koristi kao kandidat afinog MVP.
Odnosno, kada je broj izvedenog afinog kandidata manji od dva, i kada je CPMV1 konstruisanog afinog kandidata dostupan (odnosno, kada je broj izvedenog afinog kandidata manji od dva i CPMV1 konstruisanog afinog kandidata izveden), može se izvesti drugi kandidat afinog MVP koji uključuje CPMV1 konstruisanog afinog kandidata kao CPMVO, CPMV1, CPMV2.
[0280] Osim toga, dalje, kada je broj izvedenog afinog kandidata manji od dva, i kada je CPMV2 konstruisanog afinog kandidata dostupan, CPMV2 može da se koristi kao kandidat afinog MVP.
Odnosno, kada je broj izvedenog afinog kandidata manji od dva, i kada je CPMV2 konstruisanog afinog kandidata dostupan (odnosno, kada je broj izvedenog afinog kandidata manji od dva i CPMV2 konstruisanog afinog kandidata izveden), može se izvesti treći kandidat afinog MVP koji uključuje CPMV2 konstruisanog afinog kandidata kao CPMVO, CPMV1, CPMV2.
[0281] Osim toga, dalje, kada je broj izvedenog afinog kandidata manji od dva, HEVC vremenski prediktor vektora pokreta (TMVP) može da se koristi kao kandidat afinog MVP. HEVC TMVP može se izvesti na osnovu informacija o pokretima vremenskog susednog bloka za trenutni blok. Odnosno, kada je broj izvedenog afinog kandidata manji od dva, može se izvesti treći kandidat afinog MVP koji uključuje vektor pokreta vremenskog susednog bloka za trenutni blok kao CPMVO, CPMV1, CPMV2. Vremenski susedni blok može da predstavlja kolociran blok u kolociranoj slici koja odgovara trenutnom bloku.
[0282] Osim toga, dalje, kada je broj izvedenog afinog kandidata manji od dva, nulti vektor pokreta (nulti MV) može da se koristi kao kandidat afinog MVP. Odnosno, kada je broj izvedenog afinog kandidata manji od dva, može se izvesti treći kandidat afinog MVP koji uključuje nulti vektor pokreta kao CPMVO, CPMV1, CPMV2. Nulti vektor pokreta može da predstavlja vektor pokreta čija je vrednost nula.
[0283] Može se smanjiti složenost u odnosu na konvencionalni postupak za izvođenje HEVC AMVP kandidata jer faze korišćenja CPMV konstruisanog afinog kandidata ponovo koriste MV koji je već razmatran za generisanje konstruisanog afinog kandidata.
[0284] U međuvremenu, ovaj dokument predlaže drugi primer izvođenja nasleđenog afinog kandidata.
[0285] Kako bi se izveo nasleđeni afini kandidat, potrebne su informacije o afinoj predikciji susednog bloka, a određenije potrebne su informacije o afinoj predikciji kao što sledi.
1) Afina_zastavica koja naznačava da li je primenjena afina predikcija zasnovana na kodiranju susednog bloka
2) Informacije o pokretima susednog bloka
[0286] Kad se primenjuje 4-afini model pokreta na susednom bloku, informacije o pokretima susednog bloka mogu da uključuju L0 informacije o pokretima i L1 informacije o pokretima za CP0, i L0 informacije o pokretima i L1 informacije o pokretima za CP1. Osim toga, kada se 6-afini model pokreta primenjuje na susednom bloku, informacije o pokretima susednog bloka mogu da uključuju L0 informacije o pokretima i L1 informacije o pokretima za CP0, i L0 informacije o pokretima i L1 informacije o pokretima za CP2. Ovde, L0 informacije o pokretima mogu da predstavljaju informacije o pokretima na L0 (Lista 0), i L1
4
informacije o pokretima mogu da predstavljaju informacije o pokretima na L1 (Lista 1). L0 informacije o pokretima mogu da uključuju L0 indeks referentne slike i L0 vektor pokreta, i Li informacije o pokretima mogu da uključuju L1 indeks referentne slike i L1 vektor pokreta.
[0287] Kao što je prethodno opisano, u slučaju afine predikcije, količina informacija koja treba da se čuva je prevelika, što može postati glavni uzrok porasta troškova hardvera u stvarnom njegovom izvođenju u uređaju za kodiranje/uređaju za dekodiranje. Posebno, kada je susedni blok lociran iznad trenutnog bloka i predstavlja CTU granicu, linijski bafer treba da se koristi za čuvanje informacija susednog bloka povezanih sa afinom predikcijom, i zbog toga se mogu javiti veći problemi u vezi troškova. Problem se u daljem tekstu može predstaviti kao problem linijskog bafera. Tako, ovaj dokument predlaže primer izvođenja nasleđenog afinog kandidata, u kojem je trošak hardvera minimiziran tako što se informacije koje se odnose na afinu predikciju ne čuvaju u linijskom baferu ili se smanjuju. Predložen primer može da poboljša performanse kodiranja smanjenjem računske složenosti u izvođenju nasleđenog afinog kandidata. U međuvremenu, za referencu, u linijskom baferu već su sačuvane informacije o pokretima bloka koji ima veličinu 4x4, i kada su informacije koje se odnose na afinu predikciju sačuvane, količina sačuvanih informacija raste tri puta u odnosu na prethodnu količinu skladištenja.
[0288] U ovom primeru, u linijskom baferu nijedna informacija o afinoj predikciji ne može se dodatno sačuvati, a kada treba da se pozovu informacije u linijskom baferu kako bi se generisao nasleđeni afini kandidat, može da bude ograničeno generisanje nasleđenog afinog kandidata.
[0289] Fig.23a i 23b ilustrativno predstavljaju primer izvođenja nasleđenog afinog kandidata.
[0290] Upućivanjem na Fig.23a, kada susedni blok B za trenutni blok (tj., gornji susedni blok za trenutni blok) ne postoji u istoj CTU (tj., trenutna CTU) kao trenutni blok, susedni blok B ne može da se koristi za generisanje nasleđenog afinog kandidata. U međuvremenu, čak iako susedni blok A ne postoji u istom CTU kao trenutni blok, informacije o susednom bloku A mogu da se koriste za generisanje nasleđenog afinog kandidata jer se ne čuvaju u linijskom baferu. Stoga, u ovom primeru, samo kada je gornji susedni blok za trenutni blok uključen u istoj CTU kao trenutni blok, može da se koristi za generisanje nasleđenog afinog kandidata. Osim toga, kada gornji susedni blok za trenutni blok nije uključen u istoj CTU kao trenutni blok, gornji susedni blok ne može da se koristi za generisanje nasleđenog afinog kandidata.
[0291] Upućivanjem na Fig.23b, susedni blok B za trenutni blok (tj., gornji susedni blok za trenutni blok) može da postoji u istoj CTU kao trenutni blok. U ovom slučaju, uređaj za kodiranje/uređaj za dekodiranje može da generiše nasleđenog afinog kandidata upućivanjem na susedni blok B.
[0292] Fig.24 šematski prikazuje postupak za kodiranje slike uređajem za kodiranje prema ovom dokumentu. Postupak opisan u vezi Fig.24 može se izvesti uređajem za kodiranje opisanim na Fig.2. Određenije, na primer, S2400 do S2430 sa Fig.24 mogu se izvesti pomoću prediktora uređaja za kodiranje, i S2440 može se izvesti pomoću entropijskog kodera uređaja za kodiranje. Osim toga, iako nije prikazan, postupak izvođenja uzoraka predikcije za trenutni blok na osnovu CPMV-ova može se izvesti pomoću prediktora uređaja za kodiranje; postupak izvođenja rezidualnog uzorka za trenutni blok na osnovu uzorka predikcije i originalnog uzorka za trenutni blok, pomoću oduzimača uređaja za kodiranje; postupak generisanja informacija o rezidualnom za trenutni blok na osnovu rezidualnog uzorka, pomoću transformatora uređaja za kodiranje; i postupak kodiranja informacija o rezidualnom, pomoću entropijskog kodera uređaja za kodiranje.
[0293] Uređaj za kodiranje konfiguriše listu kandidata afinog prediktora vektora pokreta (MVP) za trenutni blok (S2400). Uređaj za kodiranje može da konfiguriše listu kandidata afinog MVP koja uključuje kandidat afinog MVP za trenutni blok. Maksimalni broj kandidata afinog MVP iz liste kandidata afinog MVP može biti dva.
[0294] Osim toga, na primer, lista kandidata afinog MVP može da uključuje nasleđeni kandidat afinog MVP. Uređaj za kodiranje može da proverava da li je nasleđeni kandidat afinog MVP za trenutni blok dostupan, i kada je nasleđeni kandidat afinog MVP dostupan, nasleđeni kandidat afinog MVP može se izvesti. Na primer, nasleđeni kandidati afinog MVP mogu se izvesti na osnovu susednih blokova za trenutni blok, i maksimalni broj nasleđenih kandidata afinog MVP može da bude dva. Susedni blokovi mogu se proveriti određenim redosledom da li je neki dostupan, i nasleđeni kandidat afinog MVP može se izvesti na osnovu proverenog dostupnog susednog bloka. Odnosno, susedni blokovi mogu se proveriti određenim redosledom da li je neki dostupan, i prvi nasleđeni kandidat afinog MVP može se izvesti na osnovu susednog bloka za kojeg je prvo provereno da je dostupan, a drugi nasleđeni kandidat afinog MVP može se izvesti na osnovu susednog bloka za kojeg je kao drugog provereno da je dostupan. Biti dostupan može da znači da je blok kodiran afinim modelom pokreta, i da je referentna slika susednog bloka ista kao referentna slika trenutnog bloka. Odnosno, dostupan susedni blok je susedni blok koji je kodiran afinim modelom pokreta (odnosno, na kojem je primenjena afina predikcija), i čija je referentna slika ista kao referentna slika trenutnog bloka. Određenije, uređaj za kodiranje može da izvede vektore pokreta za CP-ove za trenutni blok na osnovu afinog modela pokreta susednog bloka za kojeg je prvo provereno da je dostupan, i može da izvede prvog nasleđenog afinog MVP kandidata koji uključuje vektore pokreta kao CPMVP kandidate. Osim toga, uređaj za kodiranje može da izvede vektore pokreta za CP-ove za trenutni blok na osnovu afinog modela pokreta susednog bloka za kojeg je kao drugog provereno da je dostupan, i može da izvede drugog nasleđenog afinog MVP kandidata koji uključuje vektore pokreta kao CPMVP kandidate. Afini model pokreta može se izvesti kao prethodna Jednačina 1 ili 3.
[0295] Osim toga, drugim rečima, susedni blokovi mogu se proveriti određenim redosledom da li zadovoljava određeni uslov, i nasleđeni kandidat afinog MVP može se izvesti na osnovu susednog bloka za kojeg je provereno da li ispunjava određeni uslov. Odnosno, susedni blokovi mogu se proveriti određenim redosledom da li zadovoljava određeni uslov, i prvi nasleđeni kandidat afinog MVP može se izvesti na osnovu susednog bloka za kojeg je prvo provereno da li ispunjava određeni uslov, i drugi nasleđeni kandidat afinog MVP može se izvesti na osnovu susednog bloka za kojeg je kao drugog provereno da li ispunjava određeni uslov. Određenije, uređaj za kodiranje može da izvede vektore pokreta za CP-ove za trenutni blok na osnovu afinog modela pokreta susednog bloka za kojeg je prvo provereno da li ispunjava određeni uslov, i može da izvede prvog nasleđenog afinog MVP kandidata koji uključuje vektore pokreta kao CPMVP kandidate. Osim toga, uređaj za kodiranje može da izvede vektore pokreta za CP-ove za trenutni blok na osnovu afinog modela pokreta susednog bloka za kojeg je kao drugog provereno da li ispunjava određeni uslov, i može da izvede drugog nasleđenog afinog MVP kandidata koji uključuje vektore pokreta kao CPMVP kandidate. Afini model pokreta može se izvesti kao prethodna Jednačina 1 ili 3. U međuvremenu, određeni uslov može da predstavlja da je blok kodiran afinim modelom pokreta, i da je referentna slika susednog bloka ista kao referentna slika trenutnog bloka. Odnosno, susedni blok koji ispunjava određeni uslov je susedni blok koji je kodiran afinim modelom pokreta (odnosno, na kojem je primenjena afina predikcija), i čija je referentna slika ista kao referentna slika trenutnog bloka.
[0296] Ovde, na primer, susedni blokovi mogu da uključuju levi susedni blok, gornji susedni blok, susedni blok u gornjem desnom uglu, susedni blok u donjem levom uglu, i susedni blok u gornjem levom uglu za trenutni blok. U ovom slučaju, određeni redosled može biti redosled od levog susednog bloka do susednog bloka u donjem levom uglu do gornjeg susednog bloka do susednog bloka u gornjem desnom uglu, a zatim do susednog bloka u gornjem levom uglu.
[0297] Alternativno, na primer, susedni blokovi mogu da uključuju samo levi susedni blok i gornji susedni blok. U ovom slučaju, određeni redosled može biti redosled od levog susednog bloka do gornjeg susednog bloka.
[0298] Alternativno, na primer, susedni blokovi mogu da uključuju samo levi susedni blok, i kada je gornji susedni blok uključen u trenutnu CTU koja uključuje trenutni blok, susedni blokovi mogu dalje da uključuju gornji susedni blok. U ovom slučaju, određeni redosled može biti redosled od levog susednog bloka do gornjeg susednog bloka. Osim toga, kada gornji susedni blok nije uključen u trenutnu CTU, susedni blokovi ne mogu da uključuju gornji susedni blok. U ovom slučaju, samo levi susedni blok može da se proverava.
[0299] U međuvremenu, ako veličina predstavlja WxH, a x komponenta gornjeg levog položaja uzorka trenutnog bloka je 0 dok je njegova y komponenta jednaka 0, susedni blok u donjem levom uglu može biti blok koji uključuje uzorak sa koordinatama (-1, H); levi susedni blok, blok koji uključuje uzorak sa koordinatama (-1, H-1); susedni blok u gornjem desnom uglu, blok koji uključuje uzorak sa koordinatama (W, -1); gornji susedni blok, blok koji uključuje uzorak sa koordinatama (W-1, -1); i susedni blok u gornjem levom uglu, blok koji uključuje uzorak sa koordinatama (-1, -1). Odnosno, levi susedni blok može biti levi susedni blok među levim susednim blokovima za trenutni blok, koji se nalazi najniže, i gornji susedni blok može biti gornji susedni blok među gornjim susednim blokovima za trenutni blok, koji se nalazi krajnje levo.
[0300] Osim toga, kao jedan primer, kada je konstruisan kandidat afinog MVP dostupan, lista kandidata afinog MVP može da uključuje konstruisanog afinog MVP kandidata. Uređaj za kodiranje može da proverava da li je konstruisan kandidat afinog MVP za trenutni blok dostupan, i kada je konstruisan kandidat afinog MVP dostupan, konstruisan kandidat afinog MVP može se izvesti. Osim toga, na primer, nakon što se izvede nasleđeni kandidat afinog MVP, može se izvesti konstruisan kandidat afinog MVP. Kada je broj izvedenog afinog MVP kandidata (tj., nasleđenog afinog MVP kandidata) manji od dva i konstruisan kandidat afinog MVP je dostupan, onda lista kandidata afinog MVP može da uključuje konstruisanog afinog MVP kandidata. Ovde, konstruisan kandidat afinog MVP može da uključuje kandidatne vektore pokreta za CP-ove. Konstruisan kandidat afinog MVP može biti dostupan kada su svi kandidatni vektori pokreta dostupni.
[0301] Na primer, kada se 4-afini model pokreta primeni na trenutnom bloku, CP-ovi za trenutni blok mogu da uključuju CP0 i CP1. Kada je vektor pokreta za CP0 dostupan i vektor pokreta za CP1 je dostupan, onda konstruisan kandidat afinog MVP može biti dostupan, i lista kandidata afinog MVP može da uključuje konstruisanog afinog MVP kandidata. Ovde, CP0 može da predstavlja gornji levi položaj trenutnog bloka, i CP1 može da predstavlja gornji desni položaj trenutnog bloka.
[0302] Konstruisan kandidat afinog MVP može da uključuje kandidatnog vektora pokreta za CP0 i kandidatnog vektora pokreta za CP1. Kandidatni vektor pokreta za CP0 može biti vektor pokreta prvog bloka, i kandidatni vektor pokreta za CP1 može biti vektor pokreta drugog bloka.
[0303] Osim toga, prvi blok može biti blok za kojeg je prvo potvrđeno tokom provere susednih blokova u prvoj grupi u prvom određenom redosledu da je njegova referentna slika ista kao referentna slika trenutnog bloka. Odnosno, kandidatni vektor pokreta za CP1 može biti vektor pokreta bloka za kojeg je prvo potvrđeno tokom provere susednih blokova u prvoj grupi u prvom određenom redosledu da je njegova referentna slika ista kao referentna slika trenutnog bloka. Biti dostupan može da znači da susedni blok postoji, i da je susedni blok kodiran u inter predikciji. Ovde, kada je referentna slika prvog bloka u prvoj grupi ista kao referentna slika trenutnog bloka, kandidatni vektor pokreta za CP0 može biti dostupan. Osim toga, na primer, prva grupa može da uključuje susedni blok A, susedni blok B i susedni blok C, i prvi određeni redosled može biti redosled od susednog bloka A do susednog bloka B, a zatim do susednog bloka C.
[0304] Osim toga, drugi blok može biti blok za kojeg je prvo potvrđeno tokom provere susednih blokova u drugoj grupi u drugom određenom redosledu da je njegova referentna slika ista kao referentna slika trenutnog bloka. Ovde, kada je referentna slika drugog bloka u drugoj grupi ista kao referentna slika trenutnog bloka, kandidatni vektor pokreta za CP1 može biti dostupan. Osim toga, na primer, druga grupa može da uključuje susedni blok D i susedni blok E, i drugi određeni redosled može biti redosled od susednog bloka D do susednog bloka E.
[0305] U međuvremenu, ako je veličina trenutnog bloka WxH, i x komponenta gornjeg levog položaja uzorka trenutnog bloka jednaka 0 dok je njegova y komponenta jednaka 0, susedni blok A može biti blok koji uključuje uzorak sa koordinatama (-1, -1); susedni blok B, blok koji uključuje uzorak sa koordinatama (0, -1); susedni blok C, blok koji uključuje uzorak sa koordinatama (-1, 0); susedni blok D, blok koji uključuje uzorak sa koordinatama (W-1, -1); i susedni blok E, blok koji uključuje uzorak sa 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 za trenutni blok, koji se nalazi krajnje levo; susedni blok C, levi susedni blok među levim susednim blokovima za trenutni blok, koji se nalazi najgornje; susedni blok D, gornji susedni blok među gornjim susednim blokovima za trenutni blok, koji se nalazi krajnje desno; i susedni blok E, susedni blok u gornjem desnom uglu trenutnog bloka.
[0306] U međuvremenu, kada najmanje jedan od kandidatnog vektora pokreta za CP0 i kandidatnog vektora pokreta za CP1 nije dostupan, konstruisan kandidat afinog MVP ne može biti dostupan.
[0307] Alternativno, na primer, kada se 6-afini model pokreta primeni na trenutnom bloku, CP-ovi za trenutni blok 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, onda konstruisan kandidat afinog MVP može biti dostupan, i lista kandidata afinog MVP može da uključuje konstruisanog afinog MVP kandidata. 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.
[0308] Konstruisan kandidat afinog MVP može da uključuje kandidatni vektor pokreta za CP0, kandidatni vektor pokreta za CP1, i kandidatni vektor pokreta za CP2. Kandidatni vektor pokreta za CP0 može biti vektor pokreta prvog bloka, kandidatni vektor pokreta za CP1 može biti vektor pokreta drugog bloka, i kandidatni vektor pokreta za CP2 može biti vektor pokreta trećeg bloka.
[0309] Osim toga, prvi blok može biti blok za kojeg je prvo potvrđeno tokom provere susednih blokova u prvoj grupi u prvom određenom redosledu da je njegova referentna slika ista kao referentna slika trenutnog bloka. Ovde, kada je referentna slika prvog bloka u prvoj grupi ista kao referentna slika trenutnog bloka, kandidatni vektor pokreta za CP0 može biti dostupan. Osim toga, na primer, prva grupa može da uključuje susedni blok A, susedni blok B i susedni blok C, i prvi određeni redosled može biti redosled od susednog bloka A do susednog bloka B, a zatim do susednog bloka C.
[0310] Osim toga, drugi blok može biti blok za kojeg je prvo potvrđeno tokom provere susednih blokova u drugoj grupi u drugom određenom redosledu da je njegova referentna slika ista kao referentna slika trenutnog bloka. Ovde, kada je referentna slika drugog bloka u drugoj grupi ista kao referentna slika trenutnog bloka, kandidatni vektor pokreta za CP1 može biti dostupan. Osim toga, na primer, druga grupa može da uključuje susedni blok D i susedni blok E, i drugi određeni redosled može biti redosled od susednog bloka D do susednog bloka E.
[0311] Osim toga, treći blok može biti blok za kojeg je prvo potvrđeno tokom provere susednih blokova u trećoj grupi u trećem određenom redosledu da je njegova referentna slika ista kao referentna slika trenutnog bloka. Ovde, kada je referentna slika trećeg bloka u trećoj grupi ista kao referentna slika trenutnog bloka, kandidatni vektor pokreta za CP2 može biti dostupan. Osim toga, na primer, treća grupa može da uključuje susedni blok F, i susedni blok G, i treći određeni redosled može biti redosled od susednog bloka F do susednog bloka G.
[0312] U međuvremenu, ako je veličina trenutnog bloka WxH, i x komponenta gornjeg levog položaja uzorka trenutnog bloka jednaka 0 dok je njegova y komponenta jednaka 0, susedni blok A može biti blok koji uključuje uzorak sa koordinatama (-1, -1); susedni blok B, blok koji uključuje uzorak sa koordinatama (0, -1); susedni blok C, blok koji uključuje uzorak sa koordinatama (-1, 0); susedni blok D, blok koji uključuje uzorak sa koordinatama (W-1, -1); susedni blok E, blok koji uključuje uzorak sa koordinatama (W, -1); susedni blok F, blok koji uključuje uzorak sa koordinatama (-1, H-1); i susedni blok G, blok koji uključuje uzorak sa 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 za trenutni blok, koji se nalazi krajnje levo; susedni blok C, levi susedni blok među levim susednim blokovima za trenutni blok, koji se nalazi najgornje; susedni blok D, gornji susedni blok među gornjim susednim blokovima za trenutni blok, koji se nalazi krajnje desno; susedni blok E, susedni blok u gornjem desnom uglu trenutnog bloka; susedni blok F, levi susedni blok među levim susednim blokovima za trenutni blok, koji se nalazi najniže; i susedni blok G, susedni blok u donjem levom uglu trenutnog bloka.
[0313] U međuvremenu, kada nije dostupan najmanje jedan od kandidatnog vektora pokreta za CP0, kandidatnog vektora pokreta za CP1 i kandidatnog vektora pokreta za CP2, konstruisan kandidat afinog MVP ne može biti dostupan.
[0314] Nakon ovoga, lista kandidata afinog MVP može se izvesti na osnovu dolepomenutih faza određenim redosledom.
[0315] Na primer, kada je broj izvedenog afinog MVP kandidata manji od dva i vektor pokreta za CP0 dostupan, uređaj za kodiranje može izvesti prvog afinog MVP kandidata. Ovde, prvi kandidat afinog MVP može biti kandidat afinog MVP koji uključuje vektor pokreta za CP0 kao kandidatne vektore pokreta za CP-ove.
[0316] Osim toga, na primer, kada je broj izvedenog afinog MVP kandidata manji od dva i vektor pokreta za CP1 je dostupan, uređaj za kodiranje može izvesti drugog afinog MVP kandidata. Ovde, drugi kandidat afinog MVP može biti kandidat afinog MVP koji uključuje vektor pokreta za CP1 kao kandidatne vektore pokreta za CP-ove.
[0317] Osim toga, na primer, kada je broj izvedenog afinog MVP kandidata manji od dva i vektor pokreta za CP2 dostupan, uređaj za kodiranje može izvesti trećeg afinog MVP kandidata. Ovde, treći kandidat afinog MVP može biti kandidat afinog MVP koji uključuje vektor pokreta za CP2 kao kandidatne vektore pokreta za CP-ove.
[0318] Osim toga, na primer, kada je broj izvedenog afinog MVP kandidata manji od dva, uređaj za kodiranje može izvesti četvrtog afinog MVP kandidata koji kao kandidatne vektore pokreta za CP-ove uključuje vremenski MVP izveden na osnovu vremenskog susednog bloka za trenutni blok. Vremenski susedni blok može da predstavlja kolociran blok u kolociranoj slici koji odgovara trenutnom bloku. Vremenski MVP može se izvesti na osnovu vektora pokreta vremenskog susednog bloka.
[0319] Osim toga, na primer, kada je broj izvedenog afinog MVP kandidata manji od dva, uređaj za kodiranje može da izvede petog afinog MVP kandidata koji uključuje nulti vektor pokreta kao kandidatne vektore pokreta za CP-ove. Nulti vektor pokreta može da predstavlja vektor pokreta čija je vrednost nula.
[0320] Uređaj za kodiranje izvodi prediktore vektora pokreta kontrolne tačke (CPMVP) za kontrolne tačke (CP) za trenutni blok na osnovu liste kandidata afinog MVP (S2410). Uređaj za kodiranje može izvesti CPMV-ove za CP-ove za trenutni blok što je optimalni RD trošak, i kao afinog MVP kandidata za trenutni blok može odabrati kandidat afinog MVP među afinim MVP kandidatima, što je najsličnije CPMV-ima. Uređaj za kodiranje može izvesti prediktore vektora pokreta kontrolne tačke (CPMVP) za kontrolne tačke (CP) za trenutni blok na osnovu izabranog afinog MVP kandidata među afinim MVP kandidatima uključenim u listu kandidata afinog MVP. Određenije, kada kandidat afinog MVP uključuje kandidatni vektor pokreta za CP0 i kandidatni vektor pokreta za CP1, kandidatni vektor pokreta za CP0 afinog MVP kandidata može se izvesti kao CPMVP za CP0 i kandidatni vektor pokreta za CP1 afinog MVP kandidata može se izvesti kao CPMVP za CP1. Osim toga, kada kandidat afinog MVP uključuje kandidatni vektor pokreta za CP0, kandidatni vektor pokreta za CP1 i kandidatni vektor pokreta za CP2, kandidatni vektor pokreta za CP0 afinog MVP kandidata može se izvesti kao CPMVP za CP0, kandidatni vektor pokreta za CP1 afinog MVP kandidata može se izvesti kao CPMVP za CP1, i kandidatni vektor pokreta za CP2 afinog MVP kandidata može se izvesti kao CPMVP za CP2. Osim toga, kada kandidat afinog MVP uključuje kandidatni vektor pokreta za CP0 i kandidatni vektor pokreta za CP2, kandidatni vektor pokreta za CP0 afinog MVP kandidata može se izvesti kao CPMVP za CP0, i kandidatni vektor pokreta za CP2 afinog MVP kandidata može se izvesti kao CPMVP za CP2.
[0321] Uređaj za kodiranje može da kodira indeks afinog MVP kandidata koji naznačava odabranog afinog MVP kandidata među afinim MVP kandidatima. Indeks afinog MVP kandidata može da označava jednog afinog MVP kandidata među afinim MVP kandidatima uključenim u listu kandidata afinog prediktora vektora pokreta (MVP) za trenutni blok.
1
[0322] Uređaj za kodiranje izvodi CPMV-ove za CP-ove za trenutni blok (S2420). Uređaj za kodiranje može izvesti CPMV-ove za odgovarajuće CP-ove za trenutni blok.
[0323] Uređaj za kodiranje izvodi razlike vektora pokreta kontrolne tačke (CPMVD) za CP-ove za trenutni blok na osnovu CPMVP-ova i CPMV-ova (S2430). Uređaj za kodiranje može izvesti CPMVD-ove za CP-ove za trenutni blok na osnovu CPMVP-ove i CPMV-ove za odgovarajuće CP-ove.
[0324] Uređaj za kodiranje kodira informacije o predikciji pokreta koje uključuju informacije o CPMVD-ima (S2440). Uređaj za kodiranje može da emituje, u obliku toka bitova, informacije o predikciji pokreta koje uključuju informacije o CPMVD-ima. Odnosno, uređaj za kodiranje može da emituje, u obliku toka bitova, informacije o slici koje uključuju informacije o predikciji pokreta. Uređaj za kodiranje može da kodira informacija o CPMVD za odgovarajuće CP-ove, i informacije o predikciji pokreta mogu da uključuju informacije o CPMVD-ima.
[0325] Osim toga, informacije o predikciji pokreta mogu da uključuju indeks afinog MVP kandidata. Indeks afinog MVP kandidata može da označava izabranog afinog MVP kandidata među afinim MVP kandidatima uključenim u listu kandidata afinog prediktora vektora pokreta (MVP) za trenutni blok.
[0326] U međuvremenu, na primer, uređaj za kodiranje može da izvede uzorke predikcije za trenutni blok na osnovu CPMV-ova, izvede rezidualni uzorak za trenutni blok na osnovu uzorka predikcije i originalnog uzorka za trenutni blok, generiše informacije o ostatku za trenutni blok na osnovu rezidualnog uzorka, i kodira informacije o ostatku. Informacije o slici mogu da uključuju informacije o ostatku. U međuvremenu, tok bitova može se preneti uređaju za dekodiranje preko mreže ili (digitalnog) medijuma za skladištenje. Ovde, mreža može da uključuje radiodifuznu mrežu, komunikacionu mrežu i/ili slično, dok digitalni medijum za skladištenje može da uključuje različite medijume za skladištenje kao što su USB, SD, CD, DVD, Blu-ray, HDD, SSD, i slično.
[0327] Fig.25 šematski prikazuje uređaj za kodiranje koji izvodi postupak za kodiranje slike prema ovom dokumentu. Postupak opisan na Fig.24 može se izvesti pomoću uređaja za kodiranje opisanog na Fig. 25. Određenije, na primer, prediktor sa Fig.25 može da izvede S2400 do S2410 sa Fig.24; i entropijski koder uređaja za kodiranje, S2420 sa Fig.24. Osim toga, iako nije prikazan, postupak izvođenja uzoraka predikcije za trenutni blok na osnovu CPMV-ova može se izvesti prediktorom uređaja za kodiranje sa Fig. 25; postupak izvođenja rezidualnog uzorka za trenutni blok na osnovu uzorka predikcije i originalnog uzorka za trenutni blok, pomoću oduzimača uređaja za kodiranje sa Fig.25; postupak generisanja informacija o ostatku za trenutni blok na osnovu rezidualnog uzorka, transformatorom uređaja za kodiranje sa Fig.25; i postupak kodiranja informacija o ostatku, entropijskim koderom uređaja za kodiranje sa Fig.25.
[0328] Fig.26 šematski prikazuje postupak za dekodiranje slike uređajem za dekodiranje prema ovom dokumentu. Postupak opisan na Fig.26 može se izvesti uređajem za dekodiranje opisanim na Fig.3. Određenije, na primer, S2600 sa Fig.26 može se izvesti entropijskim dekoderom uređaja za dekodiranje;
2
S2610 do S2650, prediktorom uređaja za dekodiranje; i S2660, sabiračem uređaja za dekodiranje. Osim toga, iako nije prikazan, postupak za dobijanje informacija o ostatku za trenutni blok putem toka bitova može se izvesti entropijskim dekoderom uređaja za dekodiranje, i postupak izvođenja rezidualnog uzorka za trenutni blok na osnovu rezidualnih informacija može se izvesti inverznim transformatorom uređaja za dekodiranje.
[0329] Uređaj za dekodiranje dobija informacije o predikciji pokreta za trenutni blok iz toka bitova (S2600). Uređaj za dekodiranje može da dobije informacije o slici koje uključuju informacije o predikciji pokreta iz toka bitova.
[0330] Osim toga, na primer, informacije o predikciji pokreta mogu da uključuju informacije o razlikama vektora pokreta kontrolne tačke (CPMVD) za kontrolne tačke (CP) za trenutni blok. Odnosno, informacije o predikciji pokreta mogu da uključuju informacije o CPMVD za odgovarajuće CP-ove za trenutni blok.
[0331] Osim toga, na primer, informacije o predikciji pokreta mogu da uključuju indeks afinog MVP kandidata za trenutni blok. Indeks afinog MVP kandidata može da označava jednog među afinim MVP kandidatima uključenim u listu kandidata afinog prediktora vektora pokreta (MVP) za trenutni blok.
[0332] Uređaj za dekodiranje konfiguriše listu kandidata afinog prediktora vektora pokreta (MVP) za trenutni blok (S2610). Uređaj za dekodiranje može da konfiguriše listu kandidata afinog MVP koja uključuje kandidat afinog MVP za trenutni blok. Maksimalni broj kandidata afinog MVP liste kandidata afinog MVP može biti dva.
[0333] Osim toga, na primer, lista kandidata afinog MVP može da uključuje nasleđeni kandidat afinog MVP. Uređaj za dekodiranje može da proverava da li je nasleđeni kandidat afinog MVP za trenutni blok dostupan, i kada je nasleđeni kandidat afinog MVP dostupan, nasleđeni kandidat afinog MVP može se izvesti. Na primer, nasleđeni kandidati afinog MVP mogu se izvesti na osnovu susednih blokova za trenutni blok, i maksimalni broj nasleđenih kandidata afinog MVP može biti dva. Susedni blokovi mogu da se proveravaju određenim redosledom da li je neki dostupan, i nasleđeni kandidat afinog MVP može se izvesti na osnovu proverenog dostupnog susednog bloka. Odnosno, susedni blokovi mogu da se proveravaju određenim redosledom da li je neki dostupan, i prvi nasleđeni kandidat afinog MVP može se izvesti na osnovu susednog bloka za kojeg je prvo provereno da je dostupan, a drugi nasleđeni kandidat afinog MVP može se izvesti na osnovu susednog bloka za kojeg je kao drugog provereno da je dostupan. Biti dostupan može da znači da je blok kodiran afinim modelom pokreta, i da je referentna slika susednog bloka ista kao referentna slika trenutnog bloka. Odnosno, dostupan susedni blok je susedni blok koji je kodiran afinim modelom pokreta (odnosno, na kojem je primenjena afina predikcija), i čija je referentna slika ista kao referentna slika trenutnog bloka. Određenije, uređaj za dekodiranje može izvesti vektore pokreta za CP-ove za trenutni blok na osnovu afinog modela pokreta susednog bloka za kojeg je prvo provereno da je dostupan, i može da izvede prvog nasleđenog afinog MVP kandidata koji uključuje vektore pokreta kao CPMVP kandidate. Osim toga, uređaj za dekodiranje može izvesti vektore pokreta za CP-ove za trenutni blok na osnovu afinog modela pokreta susednog bloka za kojeg je kao drugog provereno da je dostupan, i može da izvede drugog nasleđenog afinog MVP kandidata koji uključuje vektore pokreta kao CPMVP kandidate. Afini model pokreta može se izvesti kao prethodna Jednačina 1 ili 3.
[0334] Osim toga, drugim rečima, susedni blokovi mogu se proveriti određenim redosledom da li zadovoljavaju određeni uslov, i nasleđeni kandidat afinog MVP može se izvesti na osnovu susednog bloka za kojeg je provereno da li ispunjava određeni uslov. Odnosno, susedni blokovi mogu se proveriti određenim redosledom da li zadovoljava određeni uslov, i prvi nasleđeni kandidat afinog MVP može se izvesti na osnovu susednog bloka za kojeg je prvo provereno da li ispunjava određeni uslov, a drugi nasleđeni kandidat afinog MVP može se izvesti na osnovu susednog bloka za kojeg je kao drugog provereno da li ispunjava određeni uslov. Određenije, uređaj za dekodiranje može izvesti vektore pokreta za CP-ove za trenutni blok na osnovu afinog modela pokreta susednog bloka za kojeg je prvo provereno da li ispunjava određeni uslov, i može da izvede prvog nasleđenog afinog MVP kandidata koji uključuje vektore pokreta kao CPMVP kandidate. Osim toga, uređaj za dekodiranje može izvesti vektore pokreta za CP-ove za trenutni blok na osnovu afinog modela pokreta susednog bloka za kojeg je kao drugog provereno da li ispunjava određeni uslov, i može da izvede drugog nasleđenog afinog MVP kandidata koji uključuje vektore pokreta kao CPMVP kandidate. Afini model pokreta može se izvesti kao prethodna Jednačina 1 ili 3. U međuvremenu, određeni uslov može da bude da se blok kodira afinim modelom pokreta, i da je referentna slika susednog bloka ista kao referentna slika trenutnog bloka. Odnosno, susedni blok koji ispunjava određeni uslov je susedni blok koji je kodiran afinim modelom pokreta (odnosno, na kojem je primenjena afina predikcija), i čija je referentna slika ista kao referentna slika trenutnog bloka.
[0335] Ovde, na primer, susedni blokovi mogu da uključuju levi susedni blok, gornji susedni blok, susedni blok u gornjem desnom uglu, susedni blok u donjem levom uglu, i susedni blok u gornjem levom uglu trenutnog bloka. U ovom slučaju, određeni redosled može biti redosled od levog susednog bloka do susednog bloka u donjem levom uglu do gornjeg susednog bloka do susednog bloka u gornjem desnom uglu, a zatim do susednog bloka u gornjem levom uglu.
[0336] Alternativno, na primer, susedni blokovi mogu da uključuju samo levi susedni blok i gornji susedni blok. U ovom slučaju, određeni redosled može biti redosled od levog susednog bloka do gornjeg susednog bloka.
[0337] Alternativno, na primer, susedni blokovi mogu da uključuju samo levi susedni blok, i kada je gornji susedni blok uključen u trenutnu CTU koja uključuje trenutni blok, susedni blokovi mogu dalje da uključuju gornji susedni blok. U ovom slučaju, određeni redosled može biti redosled od levog susednog bloka do gornjeg susednog bloka. Osim toga, kada gornji susedni blok nije uključen u trenutnu CTU,
4
susedni blokovi ne mogu da uključuju gornji susedni blok. U ovom slučaju, samo levi susedni blok može da se proverava.
[0338] U međuvremenu, ako veličina predstavlja WxH, i x komponenta gornjeg levog položaja uzorka trenutnog bloka je jednaka 0 i njegova y komponenta je 0, susedni blok u donjem levom uglu može biti blok koji uključuje uzorak sa koordinatama (-1, H); levi susedni blok, blok koji uključuje uzorak sa koordinatama (-1, H-1); susedni blok u gornjem desnom uglu, blok koji uključuje uzorak sa koordinatama (W, -1); gornji susedni blok, blok koji uključuje uzorak sa koordinatama (W-1, -1); i susedni blok u gornjem levom uglu, blok koji uključuje uzorak sa koordinatama (-1, -1). Odnosno, levi susedni blok može biti levi susedni blok među levim susednim blokovima za trenutni blok, koji se nalazi najniže, i gornji susedni blok može biti gornji susedni blok među gornjim susednim blokovima za trenutni blok, koji se nalazi krajnje levo.
[0339] Osim toga, kao jedan primer, kada je konstruisan kandidat afinog MVP dostupan, lista kandidata afinog MVP može da uključuje konstruisanog afinog MVP kandidata. Uređaj za dekodiranje može da proverava da li je konstruisan kandidat afinog MVP za trenutni blok dostupan, i kada je konstruisan kandidat afinog MVP dostupan, onda se konstruisan kandidat afinog MVP može izvesti. Osim toga, na primer, nakon što se izvede nasleđeni kandidat afinog MVP, može se izvesti konstruisan kandidat afinog MVP. Kada je broj izvedenog afinog MVP kandidata (tj., nasleđenog afinog MVP kandidata) manji od dva i konstruisan kandidat afinog MVP dostupan, onda lista kandidata afinog MVP može da uključuje konstruisanog afinog MVP kandidata. Ovde, konstruisan kandidat afinog MVP može da uključuje kandidatne vektore pokreta za CP-ove. Konstruisan kandidat afinog MVP može biti dostupan kada su svi kandidatni vektori pokreta dostupni.
[0340] Na primer, kada se 4-afini model pokreta primenjuje na trenutnom bloku, CP-ovi za trenutni blok mogu da uključuju CP0 i CP1. Kada je vektor pokreta za CP0 dostupan i vektor pokreta za CP1 je dostupan, konstruisan kandidat afinog MVP može biti dostupan, i lista kandidata afinog MVP može da uključuje konstruisanog afinog MVP kandidata. Ovde, CP0 može da predstavlja gornji levi položaj trenutnog bloka, i CP1 može da predstavlja gornji desni položaj trenutnog bloka.
[0341] Konstruisan kandidat afinog MVP može da uključuje kandidatnog vektora pokreta za CP0 i kandidatnog vektora pokreta za CP1. Kandidatni vektor pokreta za CP0 može biti vektor pokreta prvog bloka, a kandidatni vektor pokreta za CP1 može biti vektor pokreta drugog bloka.
[0342] Osim toga, prvi blok može biti blok za kojeg je prvo potvrđeno tokom provere susednih blokova u prvoj grupi u prvom određenom redosledu da je njegova referentna slika ista kao referentna slika trenutnog bloka. Odnosno, kandidatni vektor pokreta za CP1 može biti vektor pokreta bloka za kojeg je prvo potvrđeno tokom provere susednih blokova u prvoj grupi u prvom određenom redosledu da je njegova referentna slika ista kao referentna slika trenutnog bloka. Biti dostupan može da znači da susedni blok postoji, i da je susedni blok kodiran u inter predikciji. Ovde, kada je referentna slika prvog bloka u prvoj grupi ista kao referentna slika trenutnog bloka, kandidatni vektor pokreta za CP0 može biti dostupan. Osim toga, na primer, prva grupa može da uključuje susedni blok A, susedni blok B, i susedni blok C, i prvi određeni redosled može biti redosled od susednog bloka A do susednog bloka B, a zatim do susednog bloka C.
[0343] Osim toga, drugi blok može biti blok za kojeg je prvo potvrđeno tokom provere susednih blokova u drugoj grupi u drugom određenom redosledu da je njegova referentna slika ista kao referentna slika trenutnog bloka. Ovde, kada je referentna slika drugog bloka u drugoj grupi ista kao referentna slika trenutnog bloka, kandidatni vektor pokreta za CP1 može biti dostupan. Osim toga, na primer, druga grupa može da uključuje susedni blok D i susedni blok E, i drugi određeni redosled može biti redosled od susednog bloka D do susednog bloka E.
[0344] U međuvremenu, ako je veličina trenutnog bloka WxH, i x komponenta gornjeg levog položaja uzorka trenutnog bloka jednaka 0 i njegova y komponenta jednaka 0, susedni blok A može biti blok koji uključuje uzorak sa koordinatama (-1, -1); susedni blok B, blok koji uključuje uzorak sa koordinatama (0, -1); susedni blok C, blok koji uključuje uzorak sa koordinatama (-1, 0); susedni blok D, blok koji uključuje uzorak sa koordinatama (W-1, -1); i susedni blok E, blok koji uključuje uzorak sa 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 za trenutni blok, koji se nalazi krajnje levo; susedni blok C, levi susedni blok među levim susednim blokovima za trenutni blok, koji se nalazi najgornje; susedni blok D, gornji susedni blok među gornjim susednim blokovima za trenutni blok, koji se nalazi krajnje desno; i susedni blok E, susedni blok u gornjem desnom uglu trenutnog bloka.
[0345] U međuvremenu, kada najmanje jedan od kandidatnog vektora pokreta za CP0 i kandidatnog vektora pokreta za CP1 nije dostupan, konstruisan kandidat afinog MVP ne može biti dostupan.
[0346] Alternativno, na primer, kada se 6-afini model pokreta primenjuje na trenutnom bloku, CP-ovi za trenutni blok 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, konstruisan kandidat afinog MVP može biti dostupan, i lista kandidata afinog MVP može da uključuje konstruisanog afinog MVP kandidata. 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.
[0347] Konstruisan kandidat afinog MVP može da uključuje kandidatnog vektora pokreta za CP0, kandidatnog vektora pokreta za CP1 i kandidatnog vektora pokreta za CP2. Kandidatni vektor pokreta za CP0 može biti vektor pokreta prvog bloka, kandidatni vektor pokreta za CP1 može biti vektor pokreta drugog bloka, i kandidatni vektor pokreta za CP2 može biti vektor pokreta trećeg bloka.
[0348] Osim toga, prvi blok može biti blok za kojeg je prvo potvrđeno tokom provere susednih blokova u prvoj grupi u prvom određenom redosledu da je njegova referentna slika ista kao referentna slika trenutnog bloka. Ovde, kada je referentna slika prvog bloka u prvoj grupi ista kao referentna slika trenutnog bloka, kandidatni vektor pokreta za CP0 može biti dostupan. Osim toga, na primer, prva grupa može da uključuje susedni blok A, susedni blok B i susedni blok C, i prvi određeni redosled može biti redosled od susednog bloka A do susednog bloka B, a zatim do susednog bloka C.
[0349] Osim toga, drugi blok može biti blok za kojeg je prvo potvrđeno tokom provere susednih blokova u drugoj grupi u drugom određenom redosledu da je njegova referentna slika ista kao referentna slika trenutnog bloka. Ovde, kada je referentna slika drugog bloka u drugoj grupi ista kao referentna slika trenutnog bloka, kandidatni vektor pokreta za CP1 može biti dostupan. Osim toga, na primer, druga grupa može da uključuje susedni blok D i susedni blok E, i drugi određeni redosled može biti redosled od susednog bloka D do susednog bloka E.
[0350] Osim toga, treći blok može biti blok za kojeg je prvo potvrđeno tokom provere susednih blokova u trećoj grupi u trećem određenom redosledu da je njegova referentna slika ista kao referentna slika trenutnog bloka. Ovde, kada je referentna slika trećeg bloka u trećoj grupi ista kao referentna slika trenutnog bloka, kandidatni vektor pokreta za CP2 može biti dostupan. Osim toga, na primer, treća grupa može da uključuje susedni blok F, i susedni blok G, i treći određeni redosled može biti redosled od susednog bloka F do susednog bloka G.
[0351] U međuvremenu, ako je veličina trenutnog bloka WxH, i x komponenta gornjeg levog položaja uzorka trenutnog bloka jednaka 0 i njegova y komponenta jednaka 0, susedni blok A može biti blok koji uključuje uzorak sa koordinatama (-1, -1); susedni blok B, blok koji uključuje uzorak sa koordinatama (0, -1); susedni blok C, blok koji uključuje uzorak sa koordinatama (-1, 0); susedni blok D, blok koji uključuje uzorak sa koordinatama (W-1, -1); susedni blok E, blok koji uključuje uzorak sa koordinatama (W, -1); susedni blok F, blok koji uključuje uzorak sa koordinatama (-1, H-1); i susedni blok G, blok koji uključuje uzorak sa 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 za trenutni blok, koji se nalazi krajnje levo; susedni blok C, levi susedni blok među levim susednim blokovima za trenutni blok, koji se nalazi najgornje; susedni blok D, gornji susedni blok među gornjim susednim blokovima za trenutni blok, koji se nalazi krajnje desno; susedni blok E, susedni blok u gornjem desnom uglu trenutnog bloka; susedni blok F, levi susedni blok među levim susednim blokovima za trenutni blok, koji se nalazi najniže; i susedni blok G, susedni blok u donjem levom uglu trenutnog bloka.
[0352] U međuvremenu, kada najmanje jedan od kandidatnog vektora pokreta za CP0, kandidatnog vektora pokreta za CP1 i kandidatnog vektora pokreta za CP2 nije dostupan, konstruisan kandidat afinog MVP ne može biti dostupan.
[0353] Nakon ovoga, može se izvesti lista kandidata afinog MVP na osnovu dolepomenutih faza određenim redosledom.
[0354] Na primer, kada je broj izvedenog afinog MVP kandidata manji od dva i vektor pokreta za CP0 dostupan, uređaj za dekodiranje može izvesti prvog afinog MVP kandidata. Ovde, prvi kandidat afinog MVP može da bude kandidat afinog MVP koji uključuje vektor pokreta za CP0 kao kandidatne vektore pokreta za CP-ove.
[0355] Osim toga, na primer, kada je broj izvedenog afinog MVP kandidata manji od dva i vektor pokreta za CP1 dostupan, uređaj za dekodiranje može izvesti drugog afinog MVP kandidata. Ovde, drugi kandidat afinog MVP može biti kandidat afinog MVP koji uključuje vektor pokreta za CP1 kao kandidatne vektore pokreta za CP-ove.
[0356] Osim toga, na primer, kada je broj izvedenog afinog MVP kandidata manji od dva i vektor pokreta za CP2 dostupan, uređaj za dekodiranje može izvesti trećeg afinog MVP kandidata. Ovde, treći kandidat afinog MVP može biti kandidat afinog MVP koji uključuje vektor pokreta za CP2 kao kandidatne vektore pokreta za CP-ove.
[0357] Osim toga, na primer, kada je broj izvedenog afinog MVP kandidata manji od dva, uređaj za dekodiranje može izvesti četvrtog afinog MVP kandidata koji kao kandidatne vektore pokreta za CP-ove uključuje vremenski MVP izveden na osnovu vremenskog susednog bloka za trenutni blok. Vremenski susedni blok može da predstavlja kolociran blok u kolociranoj slici koja odgovara trenutnom bloku. Vremenski MVP može se izvesti na osnovu vektora pokreta vremenskog susednog bloka.
[0358] Osim toga, na primer, kada je broj izvedenog afinog MVP kandidata manji od dva, uređaj za dekodiranje može izvesti petog afinog MVP kandidata koji uključuje nulti vektor pokreta kao kandidatne vektore pokreta za CP-ove. Nulti vektor pokreta može da predstavlja vektor pokreta čija je vrednost nula.
[0359] Uređaj za dekodiranje izvodi prediktore vektora pokreta kontrolne tačke (CPMVP) za kontrolne tačke (CP) za trenutni blok na osnovu liste kandidata afinog MVP (S2620).
[0360] Uređaj za dekodiranje može izabrati određenog afinog MVP kandidata među afinim MVP kandidatima uključenim u listu kandidata afinog MVP, i može da izvede izabranog afinog MVP kandidata kao CPMVP-ove za CP-ove za trenutni blok. Na primer, uređaj za dekodiranje može da dobije indeks afinog MVP kandidata za trenutni blok iz toka bitova, i može kao CPMVP-ove za CP-ove za trenutni blok da izvede afinog MVP kandidata među afinim MVP kandidatima uključenim u listu kandidata afinog MVP, kojeg indeks afinog MVP kandidata označava. Određenije, kada kandidat afinog MVP uključuje kandidatni vektor pokreta za CP0 i kandidatni vektor pokreta za CP1, kandidatni vektor pokreta za CP0 afinog MVP kandidata može se izvesti kao CPMVP za CP0, a kandidatni vektor pokreta za CP1 afinog MVP kandidata može se izvesti kao CPMVP za CP1. Osim toga, kada kandidat afinog MVP uključuje kandidatni vektor pokreta za CP0, kandidatni vektor pokreta za CP1 i kandidatni vektor pokreta za CP2, kandidatni vektor pokreta za CP0 afinog MVP kandidata može se izvesti kao CPMVP za CP0, kandidatni vektor pokreta za CP1 afinog MVP kandidata može se izvesti kao CPMVP za CP1, i kandidatni vektor pokreta za CP2 afinog MVP kandidata može se izvesti kao CPMVP za CP2. Osim toga, kada kandidat afinog MVP uključuje kandidatni vektor pokreta za CP0 i kandidatni vektor pokreta za CP2, kandidatni vektor pokreta za CP0 afinog MVP kandidata može se izvesti kao CPMVP za CP0, i kandidatni vektor pokreta za CP2 afinog MVP kandidata može se izvesti kao CPMVP za CP2.
[0361] Uređaj za dekodiranje izvodi razlike vektora pokreta kontrolne tačke (CPMVD) za CP-ove za trenutni blok na osnovu informacija o predikciji pokreta (S2630). Informacije o predikciji pokreta mogu da uključuju informacije o CPMVD za odgovarajuće CP-ove, i uređaj za dekodiranje može izvesti CPMVD za odgovarajuće CP-ove za trenutni blok na osnovu informacija o CPMVD za odgovarajuće CP-ove.
[0362] Uređaj za dekodiranje izvodi vektore pokreta kontrolne tačke (CPMV) za CP-ove za trenutni blok na osnovu CPMVP-ova i CPMVD-ova (S2640). Uređaj za dekodiranje može izvesti CPMV za svaki CP na osnovu CPMVD i CPMVP za odgovarajuće CP-ove. Na primer, uređaj za dekodiranje može izvesti CPMV za CP dodavanjem CPMVD i CPMVP za svaki CP.
[0363] Uređaj za dekodiranje može izvesti uzorke predikcije za trenutni blok na osnovu CPMV-ova (S2650). Uređaj za dekodiranje može izvesti vektore pokreta jedinica podbloka ili jedinica uzoraka trenutnog bloka na osnovu CPMV-ova. Odnosno, uređaj za dekodiranje može izvesti vektor pokreta svakog podbloka ili svakog uzorka trenutnog bloka na osnovu CPMV-ova. Vektori pokreta jedinica podblokova ili jedinica uzoraka mogu se izvesti na osnovu prethodno opisane Jednačine 1 ili Jednačine 3. Vektori pokreta mogu se prikazati kao afino polje vektora pokreta (MVF) ili niz vektor pokreta.
[0364] Uređaj za dekodiranje može izvesti uzorke predikcije za trenutni blok na osnovu vektora pokreta jedinica podbloka ili jedinica uzoraka. Uređaj za dekodiranje može da izvede referentnu oblast u referentnoj slici na osnovu vektora pokreta jedinice podbloka ili jedinice uzorka, i generiše uzorak predikcije za trenutni blok na osnovu rekonstruisanog uzorka u referentnoj oblasti.
[0365] Uređaj za dekodiranje generiše rekonstruisanu sliku za trenutni blok na osnovu izvedenih uzoraka predikcije (S2660). Uređaj za dekodiranje može da generiše rekonstruisanu sliku za trenutni blok na osnovu izvedenih uzoraka predikcije. Uređaj za dekodiranje može da koristi uzorak predikcije direktno kao rekonstruisani uzorak prema režimu predikcije, ili može da generiše rekonstruisani uzorak dodavanjem rezidualnog uzorka uzorku predikcije. Ako postoji rezidualni uzorak za trenutni blok, uređaj za dekodiranje može da prima informacije o ostatku za trenutni blok iz toka bitova. Informacije o ostatku mogu da uključuju transformacionog koeficijenta koji se odnosi na rezidualni uzorak. Uređaj za dekodiranje može izvesti rezidualnog uzorka (ili niz rezidualnog uzorka) za trenutni blok na osnovu informacija o ostatku. Uređaj za dekodiranje može da generiše rekonstruisanog uzorka na osnovu uzorka predikcije i rezidualnog uzorka, i izvede rekonstruisani blok ili rekonstruisanu sliku na osnovu rekonstruisanog uzorka. Nakon ovoga, kao što je prethodno opisano, uređaj za dekodiranje može da primeni proceduru filtriranja u petlji kao što je SAO procedura i/ili filtriranje za deblokiranje na rekonstruisanu sliku kako bi se poboljšao subjektivni/objektivni video kvalitet, po potrebi.
[0366] Fig.27 šematski prikazuje uređaj za dekodiranje koji izvodi postupak za dekodiranje slike prema ovom dokumentu. Postupak opisan na Fig.26 može se izvesti uređajem za dekodiranje opisanim na Fig.
27. Određenije, na primer, entropijski dekoder uređaja za dekodiranje sa Fig.27 može da izvede S2600 sa Fig.26; prediktor uređaja za dekodiranje sa Fig.27, S2610 do S2650 sa Fig.26; i sabirač uređaja za dekodiranje sa Fig.27, S2660 sa Fig.26. Osim toga, iako nije prikazan, postupak za dobijanje informacija o slici koje uključuju informacije o ostatku za trenutni blok preko toka bitova može se izvesti entropijskim dekoderom uređaja za dekodiranje sa Fig.27, i postupak izvođenja rezidualnog uzorka za trenutni blok na osnovu rezidualnih informacija može se izvesti inverznim transformatorom uređaja za dekodiranje sa Fig.27.
[0367] Prema ovom, prethodno opisanom dokumentu, moguće je da se poveća efikasnost kodiranja slike na osnovu afine predikcije pokreta.
[0368] Osim toga, prema ovom dokumentu, u izvođenju liste kandidata afinog MVP, samo kada su svi kandidatni vektori pokreta za CP-ove konstruisanog afinog MVP kandidata dostupni, konstruisan kandidat afinog MVP može se dodati, čime je moguće da se smanji složenost postupka izvođenja konstruisanog afinog MVP kandidata i postupka konfiguracije liste kandidata afinog MVP, i da se poboljša efikasnost kodiranja.
[0369] Osim toga, prema ovom dokumentu, u izvođenju liste kandidata afinog MVP, može se izvesti dodatni kandidat afinog MVP na osnovu kandidatnog vektora pokreta za CP izveden u postupku izvođenja konstruisanog afinog MVP kandidata, preko čega je moguće da se smanji složenost postupka konfiguracije liste kandidata afinog MVP, i da se poboljša efikasnost kodiranja.
[0370] Osim toga, prema ovom dokumentu, u postupku izvođenja nasleđenog afinog MVP kandidata, samo kada je gornji susedni blok uključen u trenutnu CTU, nasleđeni kandidat afinog MVP može se izvesti pomoću gornjeg susednog bloka, čime je moguće da se smanji količina skladištenja linijskog bafera za afinu predikciju, i da se minimiziraju troškovi hardvera.
[0371] Osim toga, načini ostvarivanja opisan u ovom dokumentu može se otelotvoriti i izvesti na procesoru, mikroprocesoru, kontroleru ili čipu. Na primer, funkcionalne jedinice prikazane na svakoj slici mogu se otelotvoriti i izvesti na procesoru, mikroprocesoru, kontroleru ili čipu. U ovom slučaju, informacije ili algoritam za izvođenje (npr., informacije o instrukciji) mogu se čuvati na digitalnom medijumu za skladištenje.
[0372] Osim toga, uređaj za dekodiranje i uređaj za kodiranje na koje se odnosi ovaj dokument mogu biti uključeni u multimedijalni primopredajnik, mobilni komunikacioni terminal, video uređaj za kućni bioskop, video uređaj za digitalni bioskop, kameru za nadzor, uređaj za video ćaskanje, uređaj za komunikaciju a realnom vremenu kao što je video komunikacija, mobilni uređaj za strimovanje, medij za skladištenje, kamkorder, uređaj za pružanje video usluge na zahtev (VoD), video uređaj na vrhu (OTT), uređaj za pružanje usluge internet strimovanja, trodimenzionalni (3D) video uređaj, video uređaj za video telefoniju, terminal transportnih sredstava (npr., terminal za vozilo, terminal za avion, terminal za brod, itd.) i medicinski video uređaj, i može d a se koristi za obradu video signala ili signala podataka. Na primer, video uređaj na vrhu (OTT) može da uključuje konzolu za igre, Blu-ray plejer, TV sa pristupom Internetu, sistem kužnog bioskopa, pametan telefon, Tablet računar, digitalni video rekorder (DVR) i slično.
[0373] Pored toga, postupak za obradu na koji se odnosi ovaj dokument može se proizvesti u obliku programa kojeg izvršava računar, i može da se čuva u računarski čitljivom medijumu za snimanje.
Multimedijalni podaci koji imaju strukturu podataka prema ovom dokumentu mogu se takođe čuvati u računarski čitljivom medijumu za snimanje. Računarski čitljiv medijum za snimanje uključuje sve vrste uređaja za skladištenje i distributivne uređaje za skladištenje u kojima se čuvaju računarski čitljivi podaci. Računarski čitljiv medijum za snimanje može da uključuje, na primer,
Blu-ray disk (BD), univerzalnu serijsku magistralu (USB), ROM, PROM, EPROM, EEPROM, RAM, CD-ROM, magnetnu traku, disketu i optički uređaj za skladištenje podataka. Osim toga, računarski čitljiv medijum za snimanje takođe uključuje medijume izvedene u obliku nosećeg talasa (na primer, prenos preko Interneta). Pored toga, tok bitova generisan postupkom kodiranja može da se čuva u računarski čitljivom medijumu za snimanje ili prenese preko žičane ili bežične komunikacione mreže.
[0374] Dodatno, način ostvarivanja ovog dokumenta može se izvesti kao proizvod računarskog programa pomoću programskih kodova, i programski kodovi mogu se izvesti u računaru pomoću načina ostvarivanja ovog dokumenta. Programski kodovi mogu se čuvati na računarski čitljivom nosaču.
[0375] Fig.28 prikazuje primer sistema za strimovanje sadržaja na koji se mogu primeniti načini ostvarivanja opisani u ovom dokumentu.
[0376] Što se tiče Fig.28, sistema za strimovanje sadržaja na kojeg se primenjuje(u) način(i) ostvarivanja ovog dokumenta može u velikoj meri da uključuje server za kodiranje, server za strimovanje, veb server, medijume za skladištenje, korisnički uređaj i multimedijalni ulazni uređaj.
[0377] Server za kodiranje obuhvata ulaz sadržaja iz multimedijalnih ulaznih uređaja kao što je pametni telefon, kamera, kamkorder, itd. u digitalne podatke da bi se generisao tok bitova i preneo tok bitova serveru za strimovanje. Kao neki drugi primer, kada multimedijalni ulazni uređaji kao što su pametni telefoni, kamere, kamkorderi, itd. direktno generišu tok bitova, server za kodiranje može se izostaviti.
[0378] Tok bitova može se generisati postupkom kodiranja ili postupkom za generisanje toka bitova na kojeg se primenjuje(u) način(i) ostvarivanja ovog dokumenta, i server za strimovanje može privremeno da čuva tok bitova u postupku prenosa ili prijema toka bitova.
[0379] Server za strimovanje prenosi multimedijalne podatke korisničkom uređaju na osnovu zahteva korisnika preko veb servera, i veb server služi kao medijum za informisanje korisnika usluge. Kada korisnik zahteva željenu uslugu od veb servera, veb server je dostavlja serveru za strimovanje, i server za strimovanje prenosi multimedijalne podatke korisniku. U ovom slučaju, sistem za strimovanje sadržaja može da uključuje zaseban upravljački server. U ovom slučaju, upravljački server služi za kontrolu komande/odgovora između uređaja u sistemu za strimovanje sadržaja.
1
Claims (3)
- [0380] Server za strimovanje može da prima sadržaj iz skladišta medija i/ili servera za kodiranje. Na primer, kada server za kodiranje primi sadržaj, taj sadržaj može biti primljen u realnom vremenu. U ovom slučaju, kako bi se obezbedila neometana usluga strimovanja, server za strimovanje može da čuva tok bitova za unapred određeno vreme.[0381] Primeri korisničkog uređaja mogu da uključuju mobilni telefon, pametni telefon, laptop računar, terminal za digitalno emitovanje, ličnog digitalnog asistenta (PDA), prenosivi multimedijalni plejer (PMP), navigaciju, slejt računar, tablet računare, ultrabukove, nosive uređaje (npr. pametni satovi, pametne naočare, ekrane za glavu), digitalne televizore, desktop računare, uređaje za digitalno oglašavanje, i slično. Svaki server u sistemu za strimovanje sadržaja može da radi kao distributivni server, u kom slučaju se mogu distribuirati podaci primljeni iz svakog servera.[0382] Svaki od servera u sistemu za strimovanje sadržaja može da radi kao distributivni server, i u ovom slučaju, podaci primljeni od strane svakog servera mogu se distributivno obrađivati.Patentni zahtevi1. Uređaj za dekodiranje radi dekodiranja slike, pri čemu uređaj za dekodiranje obuhvata:memoriju; inajmanje jedan procesor povezan sa memorijom, pri čemu je najmanje jedan procesor konfigurisan da:dobija (S2600) informacije o predikciji pokreta za trenutni blok iz toka bitova; konfiguriše (S2610) listu kandidata afinog prediktora vektora pokreta, MVP, za trenutni blok; izvodi (S2620) prediktore vektora pokreta kontrolne tačke, CPMVP, za kontrolne tačke, CP, za trenutni blok na osnovu liste kandidata afinog MVP;izvodi (S2630) razlike vektora pokreta kontrolne tačke, CPMVD, za CP-ove za trenutni blok na osnovu informacija o predikciji pokreta;izvodi (S2640) vektore pokreta kontrolne tačke, CPMV, za CP-ove za trenutni blok na osnovu CPMVP-ova i CPMVD-ova;izvodi (S2650) uzorke predikcije za trenutni blok na osnovu CPMV-ova; igeneriše (S2660) rekonstruisanu sliku za trenutni blok na osnovu izvedenih uzoraka predikcije,naznačen time, što jenajmanje jedan procesor dalje konfigurisan da:izvede dostupnog nasleđenog kandidata afinog MVP kao kandidata afinog MVP u listi kandidata afinog MVP proverom da li je nasleđeni kandidat afinog MVP dostupan,2pri čemu se proverava da li je prvi nasleđeni kandidat afinog MVP dostupan, pri čemu je prvi nasleđeni kandidat afinog MVP dostupan ako je prvi blok u grupi levih blokova kodiran afinim modelom pokreta i ako je referentna slika prvog bloka ista kao referentna slika trenutnog bloka,pri čemu se proverava da li je drugi nasleđeni kandidat afinog MVP dostupan, pri čemu je drugi nasleđeni kandidat afinog MVP dostupan ako je drugi blok u grupi gornjih blokova kodiran afinim modelom pokreta i ako je referentna slika drugog bloka ista kao referentna slika trenutnog bloka,pri čemu grupa levih blokova uključuje susedni blok u donjem levom uglu trenutnog bloka i prvi levi susedni blok uz gornju stranu susednog bloka u donjem levom uglu, dok grupa gornjih blokova uključuje susedni blok u gornjem desnom uglu trenutnog bloka, prvi gornji susedni blok uz levu stranu susednog bloka u gornjem desnom uglu i susedni blok u gornjem levom uglu trenutnog bloka;izvede dostupnog konstruisanog kandidata afinog MVP kao kandidata afinog MVP u listi kandidata afinog MVP proverom da li je konstruisan kandidat afinog MVP dostupan, na osnovu da li je broj dostupnih nasleđenih kandidata afinog MVP u listi kandidata afinog MVP manji od 2,pri čemu se proverava da li je prvi vektor pokreta za CP0 za trenutni blok dostupan, pri čemu se proverava da li je drugi vektor pokreta za CP1 za trenutni blok dostupan, pri čemu se proverava da li je treći vektor pokreta za CP2 za trenutni blok dostupan, i pri čemu se kombinacija prvog vektora pokreta, drugog vektora pokreta i trećeg vektora pokreta izvodi kao konstruisan kandidat afinog MVP, na osnovu toga da li su dostupni svi prvi vektor pokreta, drugi vektor pokreta i treći vektor pokreta,pri čemu prvi vektor pokreta predstavlja vektor pokreta prvog bloka koji ima istu referentnu sliku kao što je referentna slika trenutnog bloka među susednim blokovima u grupi gornjih levih blokova za trenutni blok, drugi vektor pokreta je vektor pokreta prvog bloka koji ima istu referentnu sliku kao što je referentna slika trenutnog bloka među susednim blokovima u grupi gornjih desnih blokova za trenutni blok, i treći vektor pokreta je vektor pokreta prvog bloka koji ima istu referentnu sliku kao što je referentna slika trenutnog bloka među susednim blokovima u grupi donjih levih blokova za trenutni blok, pri čemu grupa gornjih levih blokova uključuje susedni blok u gornjem levom uglu trenutnog bloka, drugi levi susedni blok uz donju stranu susednog bloka u gornjem levom uglu i drugi gornji susedni blok uz desnu stranu susednog bloka u gornjem levom uglu, grupa gornjih desnih blokova uključuje susedni blok u gornjem desnom uglu i prvi gornji susedni blok, i grupa donjih levih blokova uključuje susedni blok u donjem levom uglu i prvi levi susedni blok; iizvodi najmanje jedan od prvog kandidata afinog MVP, drugog kandidata afinog MVP ili trećeg kandidata afinog MVP kao kandidata afinog MVP u listi kandidata afinog MVP, ako je broj dostupnih nasleđenih kandidata afinog MVP i dostupnih konstruisanih kandidata afinog MVP manji od 2, pri čemu prvi kandidat afinog MVP uključuje vektor pokreta za CP0 kao kandidatne vektore pokreta za CP-ove ako je dostupan prvi vektor pokreta, pri čemu drugi kandidat afinog MVP uključuje vektor pokreta za CP1 kao kandidatne vektore pokreta za CP-ove ako je dostupan drugi vektor pokreta, pri čemu treći kandidat afinog MVP uključuje treći vektor pokreta kao kandidatne vektore pokreta za CP-ove ako je dostupan treći vektor pokreta.
- 2. Uređaj za kodiranje radi kodiranja slike, pri čemu uređaj za kodiranje obuhvata:memoriju; inajmanje jedan procesor povezan sa memorijom, pri čemu je najmanje jedan procesor konfigurisan da:konfiguriše (S2400) listu kandidata afinog prediktora vektora pokreta, MVP, za trenutni blok; izvodi (S2410) prediktore vektora pokreta kontrolne tačke, CPMVP, za kontrolne tačke, CP, za trenutni blok na osnovu liste kandidata afinog MVP;izvodi (S2420) vektore pokreta kontrolne tačke, CPMV, za CP-ove za trenutni blok; izvodi (S2430) razlike vektora pokreta kontrolne tačke, CPMVD, za CP-ove za trenutni blok na osnovu CPMVP-ova i CPMV-ova; ikodira (S2440) informacije o predikciji pokreta koje uključuju informacije o CPMVD-ovima, naznačen time, što jenajmanje jedan procesor dalje konfigurisan da:izvede dostupnog nasleđenog kandidata afinog MVP kao kandidata afinog MVP u listi kandidata afinog MVP proverom da li je nasleđeni kandidat afinog MVP dostupan, pri čemu se proverava da li je prvi nasleđeni kandidat afinog MVP dostupan, pri čemu je prvi nasleđeni kandidat afinog MVP dostupan ako je prvi blok u grupi levih blokova kodiran afinim modelom pokreta i ako je referentna slika prvog bloka ista kao referentna slika trenutnog bloka,pri čemu se proverava da li je drugi nasleđeni kandidat afinog MVP dostupan, pri čemu je drugi nasleđeni kandidat afinog MVP dostupan ako je drugi blok u grupi gornjih blokova kodiran afinim modelom pokreta i ako je referentna slika drugog bloka ista kao referentna slika trenutnog bloka,4pri čemu grupa levih blokova uključuje susedni blok u donjem levom uglu trenutnog bloka i prvi levi susedni blok uz gornju stranu susednog bloka u donjem levom uglu, dok grupa gornjih blokova uključuje susedni blok u gornjem desnom uglu trenutnog bloka, prvi gornji susedni blok uz levu stranu susednog bloka u gornjem desnom uglu i susedni blok u gornjem levom uglu trenutnog bloka;izvede dostupnog konstruisanog kandidata afinog MVP kao kandidata afinog MVP u listi kandidata afinog MVP proverom da li je konstruisan kandidat afinog MVP dostupan, na osnovu toga da li je broj dostupnih nasleđenih kandidata afinog MVP u listi kandidata afinog MVP manji od 2,pri čemu se proverava da li je prvi vektor pokreta za CP0 za trenutni blok dostupan, pri čemu se proverava da li je drugi vektor pokreta za CP1 za trenutni blok dostupan, pri čemu se proverava da li je treći vektor pokreta za CP2 za trenutni blok dostupan, i pri čemu je kombinacija prvog vektora pokreta, drugog vektora pokreta i trećeg vektora pokreta izvedena kao konstruisan kandidat afinog MVP, na osnovu toga da li su dostupni svi prvi vektor pokreta, drugi vektor pokreta i treći vektor pokreta,pri čemu prvi vektor pokreta predstavlja vektor pokreta prvog bloka koji ima istu referentnu sliku kao što je referentna slika trenutnog bloka među susednim blokovima u grupi gornjih levih blokova za trenutni blok, drugi vektor pokreta je vektor pokreta prvog bloka koji ima istu referentnu sliku kao što je referentna slika trenutnog bloka među susednim blokovima u grupi gornjih desnih blokova za trenutni blok, i treći vektor pokreta je vektor pokreta prvog bloka koji ima istu referentnu sliku kao što je referentna slika trenutnog bloka među susednim blokovima u grupi donjih levih blokova za trenutni blok, pri čemu grupa gornjih levih blokova uključuje susedni blok u gornjem levom uglu trenutnog bloka, drugi levi susedni blok uz donju stranu susednog bloka u gornjem levom uglu i drugi gornji susedni blok uz desnu stranu susednog bloka u gornjem levom uglu, pri čemu grupa gornjih desnih blokova uključuje susedni blok u gornjem desnom uglu i prvi gornji susedni blok, dok grupa donjih levih blokova uključuje susedni blok u donjem levom uglu i prvi levi susedni blok; iizvede najmanje jednog od prvog kandidata afinog MVP, drugog kandidata afinog MVP ili trećeg kandidata afinog MVP kao kandidata afinog MVP u listi kandidata afinog MVP, ako je broj dostupnih nasleđenih kandidata afinog MVP i dostupnih konstruisanih kandidata afinog MVP manji od 2, pri čemu prvi kandidat afinog MVP uključuje vektor pokreta za CP0 kao kandidatne vektore pokreta za CP-ove ako je dostupan prvi vektor pokreta, pri čemu drugi kandidat afinog MVP uključuje vektor pokreta za CP1 kao kandidatne vektore pokreta za CP-ove ako je dostupan drugi vektor pokreta, pri čemu treći kandidat afinog MVP uključuje treći vektor pokreta kao kandidatne vektore pokreta za CP-ove ako je dostupan treći vektor pokreta.
- 3. Uređaj za prenos podataka za sliku, pri čemu taj uređaj obuhvata:najmanje jedan procesor konfigurisan da dobija tok bitova za sliku, pri čemu je tok bitova generisan na osnovu konfigurisanja liste kandidata afinog prediktora vektora pokreta, MVP, za trenutni blok, izvođenja prediktora vektora pokreta kontrolne tačke, CPMVP, za kontrolne tačke, CP, za trenutni blok na osnovu liste kandidata afinog MVP, izvođenja vektora pokreta kontrolne tačke, CPMV, za CP-ove za trenutni blok, izvođenja razlika vektora pokreta kontrolne tačke, CPMVD, za CP-ove za trenutni blok na osnovu CPMVP-ova i CPMV-ova, i kodiranja informacija o predikciji pokreta koje uključuju informacije o CPMVD-ovima; ipredajnik konfigurisan da prenosi podatke koji obuhvataju tok bitova,naznačen time, štokonfigurisanje liste kandidata afinog MVP obuhvata:izvođenje dostupnog nasleđenog kandidata afinog MVP kao kandidata afinog MVP u listi kandidata afinog MVP proverom da li je nasleđeni kandidat afinog MVP dostupan, pri čemu provera da li je nasleđeni kandidat afinog MVP dostupan obuhvata:proveru da li je prvi nasleđeni kandidat afinog MVP dostupan, pri čemu je prvi nasleđeni kandidat afinog MVP dostupan ako je prvi blok u grupi levih blokova kodiran afinim modelom pokreta i ako je referentna slika prvog bloka ista kao referentna slika trenutnog bloka; iproveru da li je drugi nasleđeni kandidat afinog MVP dostupan, pri čemu je drugi nasleđeni kandidat afinog MVP dostupan ako je drugi blok u grupi gornjih blokova kodiran afinim modelom pokreta i ako je referentna slika drugog bloka ista kao referentna slika trenutnog bloka,pri čemu grupa levih blokova uključuje susedni blok u donjem levom uglu trenutnog bloka i prvi levi susedni blok uz gornju stranu susednog bloka u donjem levom uglu, dok grupa gornjih blokova uključuje susedni blok u gornjem desnom uglu trenutnog bloka, prvi gornji susedni blok uz levu stranu susednog bloka u gornjem desnom uglu i susedni blok u gornjem levom uglu trenutnog bloka;izvođenje dostupnog konstruisanog kandidata afinog MVP kao kandidata afinog MVP u listi kandidata afinog MVP proverom da li je konstruisan kandidat afinog MVP dostupan, na osnovu toga da li je broj dostupnih nasleđenih kandidata afinog MVP u listi kandidata afinog MVP manji od 2,pri čemu provera da li je konstruisan kandidat afinog MVP dostupan obuhvata: proveru da li je prvi vektor pokreta za CP0 za trenutni blok dostupan;proveru da li je drugi vektor pokreta za CP1 za trenutni blok dostupan; iproveru da li je treći vektor pokreta za CP2 za trenutni blok dostupan; iizvođenje kombinacije prvog vektora pokreta, drugog vektora pokreta i trećeg vektora pokreta kao konstruisanog kandidata afinog MVP, na osnovu toga da li su dostupni svi prvi vektor pokreta, drugi vektor pokreta i treći vektor pokreta,pri čemu prvi vektor pokreta predstavlja vektor pokreta prvog bloka koji ima istu referentnu sliku kao što je referentna slika trenutnog bloka među susednim blokovima u grupi gornjih levih blokova za trenutni blok, drugi vektor pokreta je vektor pokreta prvog bloka koji ima istu referentnu sliku kao što je referentna slika trenutnog bloka među susednim blokovima u grupi gornjih desnih blokova za trenutni blok, i treći vektor pokreta je vektor pokreta prvog bloka koji ima istu referentnu sliku kao što je referentna slika trenutnog bloka među susednim blokovima u grupi donjih levih blokova za trenutni blok,pri čemu grupa gornjih levih blokova uključuje susedni blok u gornjem levom uglu trenutnog bloka, drugi levi susedni blok uz donju stranu susednog bloka u gornjem levom uglu i drugi gornji susedni blok uz desnu stranu susednog bloka u gornjem levom uglu, pri čemu grupa gornjih desnih blokova uključuje susedni blok u gornjem desnom uglu i prvi gornji susedni blok, dok grupa donjih levih blokova uključuje susedni blok u donjem levom uglu i prvi levi susedni blok; iizvođenje najmanje jednog od prvog kandidata afinog MVP, drugog kandidata afinog MVP ili trećeg kandidata afinog MVP kao kandidata afinog MVP u listi kandidata afinog MVP, ako je broj dostupnih nasleđenih kandidata afinog MVP i dostupnih konstruisanih kandidata afinog MVP manji od 2, pri čemu prvi kandidat afinog MVP uključuje vektor pokreta za CP0 kao kandidatne vektore pokreta za CP-ove ako je prvi vektor pokreta dostupan, pri čemu drugi kandidat afinog MVP uključuje vektor pokreta za CP1 kao kandidatne vektore pokreta za CP-ove ako je drugi vektor pokreta dostupan, pri čemu treći kandidat afinog MVP uključuje treći vektor pokreta kao kandidatne vektore pokreta za CP-ove ako je treći vektor pokreta dostupan.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201862730528P | 2018-09-12 | 2018-09-12 | |
| EP23195165.8A EP4262212B9 (en) | 2018-09-12 | 2019-09-11 | Image decoding and encoding apparatus based on motion prediction in sub-block unit in image coding system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| RS66497B1 RS66497B1 (sr) | 2025-03-31 |
| RS66497B9 true RS66497B9 (sr) | 2025-07-31 |
Family
ID=69777957
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| RS20250142A RS66497B9 (sr) | 2018-09-12 | 2019-09-11 | Uređaj za dekodiranje i kodiranje slike na osnovu predikcije pokreta u jedinici podbloka u sistemu za kodiranje slike |
Country Status (13)
| Country | Link |
|---|---|
| US (5) | US10904561B2 (sr) |
| EP (4) | EP4451677B1 (sr) |
| JP (5) | JP7157152B2 (sr) |
| KR (5) | KR20240157137A (sr) |
| CN (5) | CN117528113A (sr) |
| ES (2) | ES3019563T3 (sr) |
| FI (1) | FI3681161T3 (sr) |
| HR (2) | HRP20240145T1 (sr) |
| HU (2) | HUE070457T2 (sr) |
| PL (2) | PL3681161T3 (sr) |
| RS (1) | RS66497B9 (sr) |
| SI (1) | SI3681161T1 (sr) |
| WO (1) | WO2020055161A1 (sr) |
Families Citing this family (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20250134702A (ko) * | 2018-09-10 | 2025-09-11 | 엘지전자 주식회사 | 영상 코딩 시스템에서 어파인 mvp 후보 리스트를 사용하는 어파인 움직임 예측에 기반한 영상 디코딩 방법 및 장치 |
| CN113170187A (zh) | 2018-12-13 | 2021-07-23 | 北京达佳互联信息技术有限公司 | 导出构造的仿射合并候选的方法 |
| TWI840475B (zh) * | 2018-12-21 | 2024-05-01 | 美商松下電器(美國)知識產權公司 | 編碼裝置、解碼裝置、編碼方法及解碼方法 |
| US11394993B2 (en) | 2019-03-13 | 2022-07-19 | Tencent America LLC | Method and apparatus for affine inter prediction with small subblocks |
| KR102664876B1 (ko) * | 2019-03-22 | 2024-05-10 | 로즈데일 다이나믹스 엘엘씨 | Dmvr 및 bdof 기반의 인터 예측 방법 및 장치 |
| US11223840B2 (en) | 2019-08-19 | 2022-01-11 | Tencent America LLC | Method and apparatus for video coding |
| CN115997382A (zh) * | 2020-06-24 | 2023-04-21 | 北京达佳互联信息技术有限公司 | 用于针对视频编解码的预测相关残差缩放的方法和设备 |
| CA3185916A1 (en) | 2022-01-05 | 2023-07-05 | Comcast Cable Communications, Llc | Video compression using boundary based template refinement |
| CN119744532A (zh) | 2022-08-23 | 2025-04-01 | 三星电子株式会社 | 图像解码方法和设备以及图像编码方法和设备 |
| WO2024219788A1 (ko) * | 2023-04-21 | 2024-10-24 | 세종대학교 산학협력단 | 영상 부호화/복호화 방법 및 장치 |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11477477B2 (en) * | 2015-01-26 | 2022-10-18 | Qualcomm Incorporated | Sub-prediction unit based advanced temporal motion vector prediction |
| CN106303543B (zh) * | 2015-05-15 | 2018-10-30 | 华为技术有限公司 | 视频图像编码和解码的方法、编码设备和解码设备 |
| EP3334157B1 (en) * | 2015-08-04 | 2020-09-02 | LG Electronics Inc. | Inter prediction method and device in video coding system |
| WO2017052081A1 (ko) * | 2015-09-24 | 2017-03-30 | 엘지전자 주식회사 | 영상 코딩 시스템에서 인터 예측 방법 및 장치 |
| WO2017118409A1 (en) | 2016-01-07 | 2017-07-13 | 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 |
| US10560712B2 (en) * | 2016-05-16 | 2020-02-11 | Qualcomm Incorporated | Affine motion prediction for video coding |
| 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 |
| US11381834B2 (en) * | 2018-04-02 | 2022-07-05 | Hfi Innovation Inc. | Video processing methods and apparatuses for sub-block motion compensation in video coding systems |
-
2019
- 2019-09-11 CN CN202311511889.5A patent/CN117528113A/zh active Pending
- 2019-09-11 HR HRP20240145TT patent/HRP20240145T1/hr unknown
- 2019-09-11 EP EP24198452.5A patent/EP4451677B1/en active Active
- 2019-09-11 HU HUE23195165A patent/HUE070457T2/hu unknown
- 2019-09-11 CN CN201980005219.1A patent/CN111247805B/zh active Active
- 2019-09-11 CN CN202311516530.7A patent/CN117528114A/zh active Pending
- 2019-09-11 WO PCT/KR2019/011827 patent/WO2020055161A1/ko not_active Ceased
- 2019-09-11 PL PL19859588.6T patent/PL3681161T3/pl unknown
- 2019-09-11 CN CN202311504105.6A patent/CN117528112A/zh active Pending
- 2019-09-11 ES ES23195165T patent/ES3019563T3/es active Active
- 2019-09-11 KR KR1020247035618A patent/KR20240157137A/ko active Pending
- 2019-09-11 KR KR1020227039291A patent/KR102568878B1/ko active Active
- 2019-09-11 RS RS20250142A patent/RS66497B9/sr unknown
- 2019-09-11 EP EP25225686.2A patent/EP4701190A2/en active Pending
- 2019-09-11 SI SI201930694T patent/SI3681161T1/sl unknown
- 2019-09-11 KR KR1020227004313A patent/KR102467326B1/ko active Active
- 2019-09-11 EP EP19859588.6A patent/EP3681161B1/en active Active
- 2019-09-11 HR HRP20250196TT patent/HRP20250196T2/hr unknown
- 2019-09-11 JP JP2020521286A patent/JP7157152B2/ja active Active
- 2019-09-11 FI FIEP19859588.6T patent/FI3681161T3/fi active
- 2019-09-11 HU HUE19859588A patent/HUE065050T2/hu unknown
- 2019-09-11 CN CN202311508930.3A patent/CN117560487A/zh active Pending
- 2019-09-11 KR KR1020207008987A patent/KR102362840B1/ko active Active
- 2019-09-11 PL PL23195165.8T patent/PL4262212T3/pl unknown
- 2019-09-11 EP EP23195165.8A patent/EP4262212B9/en active Active
- 2019-09-11 KR KR1020237027746A patent/KR102723910B1/ko active Active
- 2019-09-11 ES ES19859588T patent/ES2970207T3/es active Active
-
2020
- 2020-03-31 US US16/836,248 patent/US10904561B2/en active Active
- 2020-12-16 US US17/124,231 patent/US11228783B2/en active Active
-
2021
- 2021-12-06 US US17/542,676 patent/US11616975B2/en active Active
-
2022
- 2022-10-06 JP JP2022161687A patent/JP7404481B2/ja active Active
-
2023
- 2023-02-15 US US18/110,173 patent/US11889106B2/en active Active
- 2023-12-13 JP JP2023209973A patent/JP7571268B2/ja active Active
- 2023-12-15 US US18/541,614 patent/US12231675B2/en active Active
-
2024
- 2024-10-09 JP JP2024177084A patent/JP7738145B2/ja active Active
-
2025
- 2025-09-01 JP JP2025144571A patent/JP2025172116A/ja active Pending
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7571268B2 (ja) | 画像コーディングシステムにおけるサブブロック単位の動き予測に基づく画像デコーディング方法及び装置 | |
| JP2023162356A (ja) | ヒストリベースの画像コーディング方法およびその装置 | |
| JP7592911B2 (ja) | 画像符号化システムにおいてアフィンmvp候補リストを使用するアフィン動き予測に基づいた画像デコード方法及び装置 | |
| CN114080812A (zh) | 使用sbtmvp的基于帧间预测的图像或视频编译 | |
| JP2024036477A (ja) | 予測サンプルを生成するための加重値インデックス情報を導出する映像デコーディング方法、及びその装置 | |
| RS67270B1 (sr) | Uređaj za uklanjanje redundantne sintakse iz sintakse podataka spajanja | |
| JP7460664B2 (ja) | 決定された予測モードを適用して予測サンプルを生成する映像デコーディング方法及びその装置 | |
| JP2023154003A (ja) | 双予測(bi-prediction)のための加重値インデックス情報を導出する画像デコード方法及びその装置 | |
| JP2023145702A (ja) | 双予測(bi-prediction)が適用される場合、加重平均のための加重値インデックス情報を導出する画像デコード方法及びその装置 | |
| CN114270833A (zh) | 用于在视频/图像编译系统中移除重叠信令的方法和装置 | |
| RU2823775C2 (ru) | Способ и устройство декодирования изображения для выведения информации индекса веса для генерации выборки предсказания | |
| RU2812840C2 (ru) | Способ и устройство декодирования изображения для выведения информации индекса веса для генерации выборки предсказания |