RS67030B1 - Postupak i uređaj za inter predikciju u sistemu za obradu video zapisa - Google Patents
Postupak i uređaj za inter predikciju u sistemu za obradu video zapisaInfo
- Publication number
- RS67030B1 RS67030B1 RS20250689A RSP20250689A RS67030B1 RS 67030 B1 RS67030 B1 RS 67030B1 RS 20250689 A RS20250689 A RS 20250689A RS P20250689 A RSP20250689 A RS P20250689A RS 67030 B1 RS67030 B1 RS 67030B1
- Authority
- RS
- Serbia
- Prior art keywords
- motion vector
- mvd
- prediction
- dmvd
- block
- 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/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/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/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
-
- 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/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame 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/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/527—Global motion vector 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
-
- 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/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
Opis
POZADINA OTKRIVANJA
Oblast ovog otkrivanja
[0001] Ovo otkrivanje se uopšteno odnosi na tehnologiju kodiranja video zapisa, a preciznije, na postupak inter predikcije i uređaj u sistemu za obradu video zapisa.
Stanje tehnike
[0002] Zahtevi za slikama visoke rezolucije i visokog kvaliteta, kao što su slike visoke definicije (HD) i ultra visoke definicije (UHD), sve više rastu u različitim oblastima. Kako podaci slike imaju visoku rezoluciju i visok kvalitet, količina informacija, odnosno bitova koji se prenose, povećava se u poređenju sa starijim formatima slika. Shodno tome, kada se podaci slike prenose putem medijuma, kao što je konvencionalna žičana ili bežična širokopojasna veza, ili se podaci slike čuvaju pomoću postojećeg medijuma za čuvanje, troškovi prenosa i troškovi čuvanja se povećavaju.
[0003] Shodno tome, postoji potreba za veoma efikasnom tehnikom kompresije slika kako bi se omogućilo efikasno prenošenje, čuvanje i reprodukcija informacija iz slika visoke rezolucije i visokog kvaliteta.
[0004] US 2018/098063 (Qualcomm Inc [US]) ; Han et al: "Control-Point Representation and Differential Coding Affine-Motion Compensation", IEEE Transactions on Circuits and Systems for Video Technology, vol.23, no.10, i Chen et al: "Improved Affine Motion Vector Coding", JVET-D0128- v4, svi otkrivaju koncepte za kodiranje vektora pokreta kontrolnih tačaka za model afinog pokreta.
KRATAK SADRŽAJ
[0005] Tehnički cilj ovog otkrivanja je da obezbedi postupak i uređaj koji povećavaju efikasnost video kodiranja.
[0006] Drugi tehnički cilj ovog otkrivanja je da obezbedi postupak i uređaj za obradu slike pomoću afine predikcije pokreta.
[0007] Drugi tehnički cilj ovog otkrivanja je da obezbedi postupak i uređaj koji izvode inter predikciju na osnovu vektora pokreta po jedinici uzorka.
[0008] Opet drugi tehnički cilj ovog otkrivanja je da obezbedi postupak i uređaj za izvođenje vektora pokreta po jedinici uzorka na osnovu vektora pokreta za kontrolne tačke trenutnog bloka.
[0009] Opet drugi tehnički cilj ovog otkrivanja je da obezbedi postupak i uređaj za poboljšanje efikasnosti kodiranja korišćenjem razlike između razlika vektora pokreta za kontrolne tačke trenutnog bloka.
[0010] I dalje drugi tehnički cilj ovog otkrivanja je da obezbedi postupak i uređaj za izvođenje prediktora vektora pokreta za kontrolnu tačku na osnovu vektora pokreta referentnog regiona koji je susedan toj kontrolnoj tački.
[0011] I dalje drugi tehnički cilj ovog otkrivanja je da obezbedi postupak i uređaj za izvođenje prediktora vektora pokreta za kontrolnu tačku na osnovu vektora pokreta referentnog regiona susednog kontrolnoj tački.
[0012] Jedan način ostvarivanja ovog otkrivanja obezbeđuje postupak inter predikcije koji izvodi uređaj za dekodiranje. Postupak inter predikcije obuhvata izvođenje kontrolnih tačaka (CP) za trenutni blok, pri čemu CP uključuju prvu i drugu kontrolnu tačku, izvođenje prvog prediktora vektora pokreta (MVP) za prvu CP i drugog MVP za drugu CP na osnovu susednih blokova trenutnog bloka, dekodiranje prve razlike vektora pokreta (MVD) za prvu CP, dekodiranje razlike između dve MVD vrednosti (DMVD) za drugu CP, izvođenje prvog vektora pokreta (MV) za prvu CP na osnovu prvog MVP i prve MVD, izvođenje drugog MV za drugu CP na osnovu drugog MVP i DMVD za drugu CP, i generisanje predviđenog bloka za trenutni blok na osnovu prvog i drugog MV, pri čemu DMVD za drugu CP predstavlja razliku između prve i druge MVD vrednosti za drugu CP.
[0013] Prema drugom primeru ovog otkrivanja, obezbeđen je postupak kodiranja video zapisa koji se izvršava pomoću uređaja za kodiranje. Postupak kodiranja obuhvata izvođenje kontrolnih tačaka (CP) za trenutni blok, pri čemu CP uključuju prvu i drugu CP, izvođenje prvog prediktora vektora pokreta (MVP) za prvu CP i drugog MVP za drugu CP na osnovu susednih blokova trenutnog bloka, izvođenje prve razlike vektora pokreta (MVD) za prvu CP, izvođenje razlike između dve MVD vrednosti (DMVD) za drugu CP, i kodiranje informacija o slici koje uključuju informacije o prvoj MVD i informacije o DMVD za drugu CP u cilju generisanja protoka bitova, pri čemu DMVD za drugu CP predstavlja razliku između prve i druge MVD vrednosti za drugu CP.
[0014] Prema i dalje drugom načinu ostvarivanja ovog otkrivanja, obezbeđen je uređaj za dekodiranje koji izvršava postupak inter predikcije. Uređaj za dekodiranje uključuje entropijski dekoder koji dekodira prvu razliku vektora pokreta (MVD) za prvu CP i razliku između dve MVD vrednosti (DMVD) za drugu CP; i prediktor koji izvodi kontrolne tačke (CP) za trenutni blok, koje uključuju prvu i drugu CP, izvodi prvi prediktor vektora pokreta (MVP) za prvu CP i drugi MVP za drugu CP na osnovu susednih blokova trenutnog bloka, izvodi prvi vektor pokreta (MV) za prvu CP na osnovu prvog MVP i prve MVD, izvodi drugi MV za drugu CP na osnovu drugog MVP i DMVD za drugu CP, i generiše predviđeni blok za trenutni blok na osnovu prvog i drugog MV, pri čemu DMVD za drugu CP predstavlja razliku između prve i druge MVD vrednosti za drugu CP.
[0015] Prema i dalje drugom načinu ostvarivanja ovog otkrivanja, obezbeđen je uređaj za kodiranje koji izvršava kodiranje video zapisa. Uređaj za kodiranje uključuje prediktor koji izvodi kontrolne tačke (CP) za trenutni blok, koje uključuju prvu i drugu CP, izvodi prvi prediktor vektora pokreta (MVP) za prvu CP i drugi MVP za drugu CP na osnovu susednih blokova trenutnog bloka, izvodi prvu razliku vektora pokreta (MVD) za prvu CP i razliku između dve MVD vrednosti (DMVD) za drugu CP, i entropijski koder koji kodira informacije o slici, uključujući informacije o prvoj MVD i informacije o DMVD za drugu CP, radi generisanja protoka bitova, pri čemu DMVD za drugu CP predstavlja razliku između prve i druge MVD vrednosti za drugu CP.
[0016] Prema ovom otkrivanju, moguće je izvesti tačnije vektore pokreta po jedinici uzorka za trenutni blok i značajno povećati efikasnost inter predikcije.
[0017] Prema ovom otkrivanju, vektori pokreta za uzorke trenutnog bloka mogu se efikasno izvesti na osnovu vektora pokreta kontrolnih tačaka za trenutni blok.
[0018] Prema ovom otkrivanju, moguće je ukloniti ili smanjiti količinu podataka za vektore pokreta kontrolnih tačaka prenošenjem razlike između razlika vektora pokreta i/ili samih razlika vektora pokreta za kontrolne tačke trenutnog bloka, čime se može poboljšati ukupna efikasnost kodiranja.
KRATAK OPIS CRTEŽA
[0019]
FIG.1 predstavlja blok dijagram koji šematski ilustruje uređaj za video kodiranje prema jednom načinu ostvarivanja ovog otkrivanja.
FIG.2 predstavlja blok dijagram koji šematski ilustruje uređaj za video dekodiranje prema jednom načinu ostvarivanja ovog otkrivanja.
FIG.3 ilustrativno predstavlja sistem za strimovanje sadržaja prema jednom načinu ostvarivanja ovog otkrivanja.
FIG.4 je dijagram toka koji ilustruje postupak izvođenja vrednosti predikcije vektora pokreta iz susednog bloka prema jednom načinu ostvarivanja ovog otkrivanja.
FIG.5 ilustrativno predstavlja model afinog pokreta prema jednom načinu ostvarivanja ovog otkrivanja.
FIG.6 ilustrativno predstavlja model pojednostavljenog afinog pokreta prema jednom načinu ostvarivanja ovog otkrivanja.
FIG.7 predstavlja dijagram za opisivanje postupka izvođenja prediktora vektora pokreta na kontrolnoj tački prema jednom načinu ostvarivanja ovog otkrivanja.
FIG.8 ilustrativno predstavlja dve CP za 4-parameterski model afinog pokreta prema jednom načinu ostvarivanja ovog otkrivanja.
FIG.9 ilustrativno predstavlja slučaj gde se vrednost medijane dodatno koristi u 4-parametarskom modelu afinog pokreta prema jednom načinu ostvarivanja ovog otkrivanja. FIG.10 ilustrativno predstavlja tri CP za 6-parametarski model afinog pokreta prema jednom načinu ostvarivanja ovog otkrivanja.
FIG.11 šematski predstavlja postupak video kodiranja uređajem kodiranja prema ovom otkrivanju.
FIG.12 šematski ilustruje postupak inter-predikcije uređajem za dekodiranje prema ovom otkrivanju.
OPIS PRIMERA NAČINA OSTVARIVANJA
[0020] Ovaj pronalazak je definisan u stavovima [0168, 0169] ovog opisa, pri čemu su dodatni detalji otkriveni u stavovima [0183, 0184].
[0021] Iako se ovo otkrivanje može modifikovati u različitim oblicima, konkretni načini ostvarivanja biće opisani detaljno i ilustrovani crtežima. Međutim, nije namera da se ograniči ovo otkrivanje na konkretan način ostvarivanja. Izrazi korišćeni u ovom opisu služe isključivo za opisivanje određenih načina ostvarivanja i ne treba ih tumačiti kao ograničenje tehničke ideje ovog otkrivanja. Jednina može podrazumevati množinu, osim ako iz konteksta jasno ne proizilazi suprotno. Izrazi poput „uključuje (ili obuhvata)“, „ima (ili je opremljen sa)“ i slični namenjeni su da označe da osobine, brojevi, koraci, operacije, komponente, delovi ili njihove kombinacije pomenuti u opisu postoje, i ne treba ih tumačiti kao isključenje mogućnosti postojanja ili dodavanja jedne ili više različitih osobina, brojeva, faza, operacija, komponenti, delova ili njihovih kombinacija unapred.
[0022] U međuvremenu, konfiguracije prikazane na crtežima u ovom otkrivanju su zasebno prikazane u uređaju za kodiranje video zapisa/uređaju za dekodiranje radi praktičnosti u objašnjenju različitih konkretnih funkcija, ali to ne znači da su te konfiguracije ostvarene kao nezavisni hardver ili nezavisni softver. Na primer, dve ili više konfiguracija mogu biti kombinovane u jednu konfiguraciju, a jedna konfiguracija može biti podeljena na više konfiguracija. Načini ostvarivanja u kojima se konfiguracije kombinuju i/ili dele takođe spadaju u okvir ovog otkrivanja, bez odstupanja od njegove suštine.
[0023] U ovom otkrivanju, termini „/” i „,” treba da se tumače kao „i/ili.” Na primer, izraz „A/B” može značiti „A i/ili B”, a „A, B” može da označava „A i/ili B.” Dalje, „A/B/C” može da označava „najmanje jedno od A, B i/ili C.” Takođe, „A, B, C” može da označava „najmanje jedno od A, B i/ili C.”
[0024] Takođe, u ovom otkrivanju, izraz „ili” treba da se tumači kao „i/ili.” Na primer, izraz „A ili B” može obuhvatati: 1) samo A, 2) samo B, i/ili 3) i A i B. Drugim rečima, izraz „ili” u ovom dokumentu može se tumačiti kao „dodatno ili alternativno.”
[0025] Ovo otkrivanje može biti modifikovano u različitim oblicima, a specifični načini ostvarivanja biće opisani i prikazani na crtežima. Međutim, ti načini ostvarivanja nisu namenjeni da ograniče ovo otkrivanje. Izrazi korišćeni u narednom opisu služe isključivo za opisivanje konkretnih načina ostvarivanja i ne treba ih tumačiti kao ograničenje otkrivanja. Izraz u jednini obuhvata i množinu, osim ako iz konteksta jasno ne proizlazi drugačije. Izrazi poput „uključuje“ i „ima“ su predviđeni da označavaju da osobine, brojevi, koraci, operacije, elementi, komponente ili njihove kombinacije opisane u nastavku postoje, te se shodno tome ne sme tumačiti da se unapred isključuje mogućnost postojanja ili dodavanja jedne ili više različitih osobina, brojeva, faza, operacija, elemenata, komponenti ili njihovih kombinacija.
[0026] U međuvremenu, elementi prikazani na crtežima u ovom otkrivanju su zasebno nacrtani radi praktičnosti pri objašnjavanju različitih konkretnih funkcija i ne znače da su ti elementi ostvareni kao nezavisni hardver ili nezavisni softver. Na primer, dva ili više elemenata mogu biti kombinovani u jedan element, ili jedan element može biti podeljen na više elemenata. Načini ostvarivanja u kojima su elementi kombinovani i/ili podeljeni takođe spadaju u ovo otkrivanje, bez odstupanja od njegove suštine.
[0027] Sledeći opis može se primeniti u tehničkoj oblasti koja se bavi video zapisima, slikama ili fotografijama. Na primer, postupak ili primer načina ostvarivanja otkriven u narednom opisu može biti povezan sa sadržajem otkrivenim u standardu za svestrano kodiranje video zapisa (VVC), (ITU-T preporuka H.266), standardu za kodiranje video/slikovnih sadržaja nove generacije nakon WC, ili standardima koji su prethodili VVC (na primer, standard za visokoefikasno kodiranje video zapisa (HEVC), (ITU-T Rec. H.265) ili slični).
[0028] U nastavku će primeri ovog načina ostvarivanja biti detaljno opisani uz pozivanje na prateće crteže. Takođe, iste oznake referenci koriste se za označavanje istih elemenata na svim crtežima, pa će ponovljeni opisi istih elemenata biti izostavljeni.
[0029] U ovom otkrivanju, video zapis može označavati skup niza slika u skladu s protokom vremena. Uopšteno, slika predstavlja jedinicu koja prikazuje sliku u određenom trenutku, dok je isečak jedinica koja čini deo te slike. Jedna slika može se sastojati od više isečaka, a pojmovi slika i isečak mogu se koristiti naizmenično, u zavisnosti od konteksta.
[0030] Piksel ili pel može predstavljati najmanju jedinicu koja čini jednu sliku. Takođe, izraz uzorak može se koristiti kao termin koji odgovara pikselu. Uzorak može generalno predstavljati piksel ili vrednost piksela, može označavati samo piksel luma komponente ili samo piksel hroma komponente.
[0031] Jedinica označava osnovnu jedinicu za obradu slike. Jedinica može uključivati bar jedno od sledećeg: određenu oblast i informacije o toj oblasti. Po potrebi, izraz jedinica može se koristiti naizmenično sa pojmovima poput blok, oblast i sličnim. Uobičajeno, M·N blok označava skup uzoraka ili koeficijenata transformacije raspoređenih u M kolona i N redova.
[0032] FIG.1 predstavlja blok dijagram koji ukratko ilustruje strukturu uređaja za kodiranje prema jednom načinu ostvarivanja ovog otkrivanja. U daljem tekstu, uređaj za kodiranje/ dekodiranje može obuhvatati uređaj za video kodiranje/dekodiranje i/ili uređaj za kodiranje/dekodiranje slike, pri čemu se uređaj za video kodiranje/dekodiranje može koristiti kao pojam koji obuhvata uređaj za kodiranje/dekodiranje slike, ili se uređaj za kodiranje/dekodiranje slike može koristiti kao pojam koji obuhvata uređaj za video kodiranje/dekodiranje.
[0033] Vezano za FIG.1, uređaj 100 za video kodiranje može uključivati razdelnik 105 slike, prediktor 110, procesor ostatka 120, entropijski koder 130, sabirač 140, filter 150 i memoriju 160. Procesor ostatka 120 može obuhvatati oduzimač 121, transformator 122, kvantizator 123, preuređivač 124, dekvantizator 125 i inverzni transformator 126.
[0034] Razdelnik 105 slike može da podeli ulaznu sliku na najmanje jednu procesnu jedinicu.
[0035] U jednom primeru, procesna jedinica može se nazivati jedinicom za kodiranje (CU). U tom slučaju, jedinica za kodiranje može se rekurzivno deliti iz najveće jedinica za kodiranje (LCU) prema strukturi binarnog stabla kvadratnog stabla (QTBT). Na primer, jedna jedinica za kodiranje može biti podeljena na više jedinica za kodiranje dublje dubine na osnovu kvadratnog stabla, binarnog stabla i/ili ternarnog stabla. U tom slučaju, na primer, najpre se može primeniti struktura kvad-stabla, a zatim strukture binarnog i ternarnog stabla. Alternativno, struktura binarnog/ternarnog stabla može se primeniti prva. Postupak kodiranja prema ovom načinu ostvarivanja može se izvoditi na osnovu konačne jedinica za kodiranje koja se dalje ne deli. U tom slučaju, najveća jedinica za kodiranje može biti korišćena kao konačna jedinica za kodiranje na osnovu efikasnosti kodiranja ili sličnih faktora, u zavisnosti od karakteristika slike, ili se jedinica za kodiranje može rekurzivno deliti na jedinice manje dubine po potrebi, a kao konačna jedinica za kodiranje može se koristiti ona optimalne veličine. Ovde postupak kodiranja može uključivati faze kao što su predikcija, transformacija i rekonstrukcija, koje će biti opisane u nastavku.
[0036] U drugom primeru, jedinica obrade može obuhvatati jedinicu za kodiranje (CU), jedinicu za predikciju (PU) ili transformacionu jedinicu (TU). Jedinica za kodiranje može biti podeljena iz najveće jedinica za kodiranje (LCU) u jedinica za kodiranje veće dubine prema strukturi kvadratnog stabla. U tom slučaju, najveća jedinica za kodiranje može biti direktno korišćena kao konačna jedinica za kodiranje na osnovu efikasnosti kodiranja ili sličnih faktora, u zavisnosti od karakteristika slike, ili se jedinica za kodiranje može rekurzivno deliti u jedinica za kodiranje veće dubine po potrebi, a kao konačna jedinica za kodiranje može se koristiti ona optimalne veličine. Kada je postavljena najmanja jedinica za kodiranje (SCU), jedinica za kodiranje se ne može deliti na jedinica za kodiranje manje od najmanje jedinica za kodiranje. Ovde, konačna jedinica za kodiranje odnosi se na jedinicu za kodiranje koja je particionisana ili podeljena na jedinicu za predikciju ili transformacionu jedinicu. Jedinica za predikciju je jedinica koja se deli iz jedinica za kodiranje i može predstavljati jedinicu za predikciju uzoraka. Jedinica za predikciju može dalje biti podeljena na pod-blokove. Transformaciona jedinica može biti podeljena iz jedinica za kodiranje prema strukturi kvadratnog stabla i može predstavljati jedinicu za izvođenje koeficijenata transformacije i/ili jedinicu za izvođenje signala ostatka iz koeficijenata transformacije. U nastavku, jedinica za kodiranje može se nazivati blok za kodiranje (CB), jedinica za predikciju kao predikcioni blok (PB), a transformaciona jedinica kao transformacioni blok (TB). Predikcioni blok ili jedinica za predikciju može označavati određeni prostor u obliku bloka u slici i sadržati niz predikcionih uzoraka. Takođe, transformacioni blok ili transformaciona jedinica može označavati određeni prostor u obliku bloka u slici i sadržati koeficijente transformacije ili niz uzoraka ostatka.
[0037] Prediktor 110 može da izvrši predikciju nad blokom koji je cilj obrade (u daljem tekstu može predstavljati trenutni blok ili blok ostatka), i može da generiše predikcioni blok koji sadrži predikcione uzorke za trenutni blok. Jedinica predikcije koju koristi prediktor 110 može biti blok za kodiranje, transformacioni blok ili blok za predikciju.
[0038] Prediktor 110 može da odredi da li se na trenutni blok primenjuje intra-predikcija ili inter-predikcija. Na primer, prediktor 110 može da odredi da li se intra-predikcija ili interpredikcija primenjuje u jedinici CU.
[0039] U slučaju intra-predikcije, prediktor 110 može da izvede predikcioni uzorak za trenutni blok na osnovu referentnog uzorka izvan trenutnog bloka u slici kojoj trenutni blok pripada (u daljem tekstu: trenutna slika). U tom slučaju, prediktor 110 može da izvede predikcioni uzorak na osnovu proseka ili interpolacije susednih referentnih uzoraka trenutnog bloka (slučaj (i)), ili može da izvede predikcioni uzorak na osnovu referentnog uzorka koji postoji u specifičnom (predikcionom) pravcu u odnosu na predikcioni uzorak među susednim referentnim uzorcima trenutnog bloka (slučaj (ii)). Slučaj (i) može se nazvati ne-direkcionim režimom ili neugaonim režimom, dok se slučaj (ii) može nazvati direkcionim režimom ili ugaonim režimom. Kod intrapredikcije, režimi predikcije mogu uključivati, na primer, 33 direkciona režima i najmanje dva nedirekciona režima. Ne-direkcioni režimi mogu da uključuju DC režim i planarni režim. Prediktor 110 može da odredi režim predikcije koji će se primeniti na trenutni blok korišćenjem režima predikcije primenjenog na susedni blok.
[0040] U slučaju inter-predikcije, prediktor 110 može da izvede predikcija uzorak za trenutni blok na osnovu uzorka određenog vektorom pokreta na referentnoj slici. Prediktor 110 može da izvede predikcija uzorak za trenutni blok primenom bilo kog od režima preskakanja, režima spajanja i režima predikcije vektora pokreta (MVP).U slučaju režima preskakanja i režima spajanja, prediktor 110 može da koristi informaciju o kretanju susednog bloka kao informaciju o kretanju trenutnog bloka. U slučaju režima preskakanja, za razliku od režima spajanja, razlika (ostatak) između predikcija uzorka i originalnog uzorka se ne prenosi. U slučaju MVP režima, vektor pokreta susednog bloka koristi se kao prediktor vektora pokreta da bi se izveo vektor pokreta trenutnog bloka.
[0041] U slučaju inter-predikcije, susedni blok može uključivati prostorni susedni blok koji postoji u trenutnoj slici i vremenski susedni blok koji postoji u referentnoj slici. Referentna slika koja uključuje vremenski susedni blok može se takođe nazvati kolocirana slika (colPic).
Informacije o pokretu mogu uključivati vektor pokreta i indeks referentne slike. Informacije kao što su informacije o režimu predikcije i informacije o pokretu mogu biti (entropijski) kodirane, a zatim izlaziti u obliku protoka bitova.
[0042] Kada se informacije o pokretu vremenskog susednog bloka koriste u režimu preskakanja i režimu spajanja, najviša slika u listi referentnih slika može se koristiti kao referentna slika.
Referentne slike uključene u listu referentnih slika mogu biti poravnate na osnovu razlike u broju redosleda slike (POC) između trenutne slike i odgovarajuće referentne slike. POC odgovara redosledu prikaza i može se razlikovati od redosleda kodiranja.
[0043] Oduzimač 121 generiše uzorak ostatka koji predstavlja razliku između originalnog uzorka i uzorka predikcije. Ako je primenjen režim preskakanja, uzorak ostatka se možda neće generisati, kao što je prethodno opisano.
[0044] Transformator 122 transformiše uzorke ostatka u jedinicama transformacionog bloka da bi generisao koeficijente transformacije. Transformator 122 može izvršiti transformaciju na osnovu veličine odgovarajućeg transformacionog bloka i režima predikcije primenjenog na kodni blok ili predikcioni blok koji prostorno preklapa transformacioni blok. Na primer, uzorci ostatka mogu biti transformisani korišćenjem diskretne sinusne transformacije (DST) ako je primenjena intra-predikcija na blok za kodiranje ili predikcioni blok koji se preklapa sa transformacionim blokom i transformacioni blok je niz 4×4, a u ostalim slučajevima se koristi diskrétna kosinusna transformacija (DCT).
[0045] Kvantizator 123 može kvantizovati koeficijente transformacije kako bi generisao kvantizovane koeficijente transformacije.
[0046] Preuređivač 124 preuređuje kvantizovane koeficijente transformacije. Preuređivač 124 može preurediti kvantizovane koeficijente u obliku bloka u jednodimenzionalni vektor kroz postupak skeniranja koeficijenata. Iako je preuređivač 124 opisan kao poseban deo, on može biti deo kvantizatora 123.
[0047] Entropijski koder 130 može izvršiti entropijsko kodiranje kvantizovanih koeficijenata transformacije. Entropijsko kodiranje može uključivati postupak kodiranja, na primer, eksponencijalni Golomb, kontekst-adaptivno kodiranje promenljive dužine (CAVLC), kontekstadaptivno binarno aritmetičko kodiranje (CABAC) ili slično. Entropijski koder 130 može izvršiti kodiranje, prema entropijskom kodiranju ili prema prethodno konfigurisanim postupcima, zajedno ili zasebno na informacijama (npr. vrednosti sintaksnog elementa ili slično) potrebnim za rekonstrukciju videa, pored kvantizovanih koeficijenata transformacije. Entropijski kodirani podaci mogu biti preneti ili čuvani u jedinici mrežnog apstraktnog sloja (NAL) u obliku protoka bitova. Protok bitova može biti prenet putem mreže ili čuvan na digitalnom medijumu za čuvanje podataka. Ovde, mreža može uključivati emitersku mrežu ili komunikacionu mrežu, dok digitalni medijum za čuvanje može uključivati razne medijume za čuvanje kao što su USB, SD, CD, DVD, Blu-ray, HDD, SSD i slično.
[0048] Dekvantizator 125 dekvantizuje vrednosti (koeficijente transformacije) kvantizovane od strane kvantizatora 123, a inverzni transformator 126 vrši inverznu transformaciju vrednosti dekvantizovanih od strane dekvantizatora 125 kako bi generisao uzorak ostatka.
[0049] Sabirač 140 dodaje uzorak ostatka predikcionom uzorku kako bi rekonstruisao sliku. Uzorak ostatka može biti dodat predikcionom uzorku u jedinicama bloka da bi se generisao rekonstruisani blok. Iako je sabirač 140 opisan kao poseban deo, sabirač 140 može biti deo prediktora 110. Istovremeno, sabirač 140 može biti nazvan rekonstruktor ili generator rekonstruisanih blokova.
[0050] Filter 150 može primeniti deblokirajuće filtriranje i/ili adaptivni ofset uzorka na rekonstruisanu sliku. Artefakti na granici bloka u rekonstruisanoj slici ili distorzija izazvani kvantizacijom mogu biti ispravljeni kroz deblokirajuće filtriranje i/ili adaptivni ofset uzorka. Adaptivni ofset uzorka može se primeniti u jedinicama uzorka nakon završetka deblokirajućeg filtriranja. Filter 150 može primeniti adaptivni petljasti filter (ALF) na rekonstruisanu sliku. ALF može biti primenjen na rekonstruisanu sliku na koju je prethodno primenjeno deblokirajuće filtriranje i/ili adaptivni ofset uzorka.
[0051] Memorija 160 može da čuva rekonstruisanu sliku (dekodiranu sliku) ili informacije neophodne za kodiranje/dekodiranje. Ovde, rekonstruisana slika može biti slika koja je filtrirana od strane filtera 150. Čuvana rekonstruisana slika može se koristiti kao referentna slika za (inter) predikciju drugih slika. Na primer, memorija 160 može da čuva (referentne) slike koje se koriste za inter-predikciju. Ovde, slike koje se koriste za inter-predikciju mogu biti određene prema skupu referentnih slika ili listi referentnih slika.
[0052] FIG.2 predstavlja blok dijagram koji ukratko ilustruje strukturu uređaja za dekodiranje video zapisa/slike prema jednom načinu ostvarivanja ovog otkrivanja.
[0053] U daljem tekstu, video uređaj za dekodiranje može uključivati uređaj za dekodiranje slike.
[0054] Vezano za FIG.2, uređaj 200 za video dekodiranje može da uključuje entropijski dekoder 210, procesor ostatka 220, prediktor 230, sabirač 240, filter 250 i memoriju 260. Procesor ostatka 220 može da uključuje preuređivač 221, dekvantizator 222 i inverzni transformator 223.
[0055] Dalje, iako nije prikazano, uređaj 200 za video dekodiranje može da uključuje prijemnik za prijem protoka bitova koji uključuje video informacije. Prijemnik može biti konfigurisán kao poseban modul ili može biti uključen u entropijski dekoder 210.
[0056] Kada se unese protok bitova koji uključuje informacije o video zapisu/slici, uređaj 200 za video dekodiranje može da rekonstruiše video zapis/sliku/kadar u vezi sa postupkom kojim se video informacije obrađuju u uređaju za video kodiranje.
[0057] Na primer, uređaj 200 za video dekodiranje može da izvrši video dekodiranje pomoću procesna jedinice primenjenu u uređaju za video kodiranje. Dakle, blok procesne jedinice video dekodiranja može biti, na primer, jedinica za kodiranje, a u drugom primeru, jedinica za kodiranje, jedinica za predikciju ili transformator. Jedinica za kodiranje može biti podeljena iz najveće jedinica za kodiranje u skladu sa kvadratnim stablom i/ili binarnim stablom i/ili ternarnim stablom.
[0058] Jedinica za predikciju i transformator mogu se dodatno koristiti u nekim slučajevima, i u tom slučaju, blok za predikciju je blok izveden ili podeljen iz jedinica za kodiranje i može predstavljati jedinicu uzorkovanja predikcije. Ovde, jedinica za predikciju može biti podeljena na podblokove. Transformator može biti podeljen iz jedinica za kodiranje prema kvadratnom stablu i može predstavljati jedinicu koja izvodi koeficijent transformacije ili jedinicu koja izvodi signal ostatka iz koeficijenta transformacije.
[0059] Entropijski dekoder 210 može da raščlani protok bitova kako bi izdao informacije neophodne za rekonstrukciju videa ili slike. Na primer, entropijski dekoder 210 može da dekodira informacije iz protoka bitova na osnovu postupka kodiranja kao što su eksponencijalno Golombovo kodiranje, CAVLC, CABAC ili slično, i može da izda vrednost sintaksnog elementa potrebnog za rekonstrukciju videa i kvantizovanu vrednost koeficijenta transformacije u vezi sa ostatkom.
[0060] Tačnije, CABAC entropijski postupak dekodiranja može da primi bin koji odgovara svakom sintaksnom elementu u protoku bitova, da odredi kontekstualni model koristeći informacije o sintaksnom elementu koji je meta dekodiranja i informacije o dekodiranju susednih blokova i bloka koji je meta dekodiranja, ili informacije o simbolu/binu dekodiranom u prethodnoj fazi, da predvidi verovatnoću generisanja bina na osnovu određenog kontekstualnog modela i da izvrši aritmetičko dekodiranje bina kako bi generisao simbol koji odgovara vrednosti svakog sintaksnog elementa. Ovde, CABAC entropijski postupak dekodiranja može da ažurira kontekstualni model koristeći informacije o simbolu/binu koji je dekodiran za kontekstualni model narednog simbola/bina nakon određivanja kontekstualnog modela.
[0061] Informacije o predikciji među informacijama dekodiranim u entropijskom dekoderu 210 mogu biti prosleđene prediktoru 250, a vrednosti ostatka, odnosno kvantizovani koeficijenti transformacije na koje je izvršeno entropijsko dekodiranje od strane entropijskog dekodera 210, mogu biti prosleđene preuređivaču 221.
[0062] Preuređivač 221 može da preuredi kvantizovane koeficijente transformacije u dvodimenzionalni blok. Preuređivač 221 može da izvrši preuređivanje koje odgovara skeniranju koeficijenata koje je izvršio uređaj za kodiranje. Iako je preuređivač 221 opisan kao poseban element, on može biti deo dekvantizatora 222.
[0063] Dekvantizator 222 može da dekvantizuje kvantizovane koeficijente transformacije na osnovu (de)kvantizacionog parametra kako bi proizveo koeficijente transformacije. U tom slučaju, informacije za izvođenje kvantizacionog parametra mogu biti signalizirane od strane uređaja za kodiranje.
[0064] Inverzni transformator 223 može da izvrši inverznu transformaciju koeficijenata transformacije kako bi izveo uzorke ostatka.
[0065] Prediktor 230 može da izvrši predikciju nad trenutnim blokom i da generiše predviđeni blok koji sadrži predikcione uzorke za trenutni blok. Jedinica predikcije koju koristi prediktor 230 može biti blok za kodiranje, ili transformacioni blok, ili blok predikcije.
[0066] Prediktor 230 može da odredi da li će se primeniti intra-predikcija ili inter-predikcija na osnovu informacija o predikciji. U tom slučaju, jedinica za određivanje da li će se koristiti intra- ili inter-predikcija može biti različita od jedinice za generisanje predikcionog uzorka. Pored toga, jedinica za generisanje predikcionog uzorka takođe može da se razlikuje u inter-predikciji i intrapredikciji. Na primer, može se odlučiti da li će biti primenjena inter-predikcija ili intra-predikcija u jedinici CU. Dalje, na primer, u inter-predikciji, predikcioni uzorak može biti generisan određivanjem predikcionog režima u jedinici PU, a u intra-predikciji, predikcioni uzorak može biti generisan u jedinici TU određivanjem predikcionog režima u jedinici PU.
[0067] U slučaju intra-predikcije, prediktor 230 može da izvede uzorak predikcije za trenutni blok na osnovu susednog referentnog uzorka u trenutnoj slici. Prediktor 230 može da izvede uzorak predikcije za trenutni blok primenom direkcionog režima ili nedirekcionog režima na osnovu susednog referentnog uzorka trenutnog bloka. U tom slučaju, režim predikcije koji će se primeniti na trenutni blok može biti određen pomoću intra-predikcionog režima susednog bloka.
[0068] U slučaju inter-predikcije, prediktor 230 može da izvede uzorak predikcije za trenutni blok na osnovu uzorka određenog u referentnoj slici u skladu sa vektorom pokreta. Prediktor 230 može da izvede uzorak predikcije za trenutni blok pomoću jednog od sledećih režima: režim preskakanja, režim spajanja i MVP režim. Ovde, informacije o pokretu koje su potrebne za interpredikciju trenutnog bloka, a koje obezbeđuje uređaj za video kodiranje, na primer, vektor pokreta i informacije o indeksu referentne slike, mogu biti pribavljene ili izvedene na osnovu informacija o predikciji.
[0069] U režimu preskakanja i režimu spajanja, informacije o pokretu susednog bloka mogu se koristiti kao informacije o pokretu trenutnog bloka. Ovde, susedni blok može da obuhvata prostorni susedni blok i vremenski susedni blok.
[0070] Prediktor 230 može da konstruiše listu kandidata za spajanje koristeći informacije o pokretu dostupnih susednih blokova i da koristi informacije označene pomoću indeksa za spajanje na listi kandidata za spajanje kao vektor pokreta trenutnog bloka. Indeks za spajanje može da signalizira uređaj za kodiranje. Informacije o pokretu mogu da uključuju vektor pokreta i referentnu sliku. U režimu preskakanja i režimu spajanja, najpre navedena slika na listi referentnih slika može da se koristiti kao referentna slika kada se koriste informacije o pokretu vremenskog susednog bloka.
[0071] U slučaju režima preskakanja, razlika (ostatak) između uzorka predikcije i originalnog uzorka se ne prenosi, za razliku od režima spajanja.
[0072] U slučaju MVP režima, vektor pokreta trenutnog bloka može biti izveden korišćenjem vektora pokreta susednog bloka kao prediktora vektora pokreta. Ovde, susedni blok može da obuhvata prostorni susedni blok i vremenski susedni blok.
[0073] Kada se primeni režim spajanja, na primer, lista kandidata za spajanje može biti generisana pomoću vektora pokreta rekonstruisanog prostornog susednog bloka i/ili vektora pokreta koji odgovara Col bloku, koji je vremenski susedni blok. Vektor pokreta bloka kandidata izabranog iz liste kandidata za spajanje koristi se kao vektor pokreta trenutnog bloka u režimu spajanja. Gorepomenute informacije o predikciji mogu da obuhvataju indeks spajanja koji označava blok kandidata sa najboljim vektorom pokreta izabranim iz blokova kandidata u listi kandidata za spajanje. Ovde, prediktor 230 može da izvede vektor pokreta trenutnog bloka koristeći indeks spajanja.
[0074] Kada se MVP (vektor pokreta predikcija) režim primeni kao drugi primer, lista kandidata za prediktor vektora pokreta može biti generisana korišćenjem vektora pokreta rekonstruisanog prostornog susednog bloka i/ili vektora pokreta koji odgovara Col bloku koji je vremenski susedni blok. Odnosno, vektor pokreta rekonstruisanog prostornog susednog bloka i/ili vektor pokreta koji odgovara Col bloku, koji je vremenski susedni blok, može biti korišćen kao kandidat za vektor pokreta. Gorepomenute informacije o predikciji mogu da uključuju indeks predikcije vektora pokreta koji označava najbolji vektor pokreta izabran iz kandidata za vektor pokreta u listi. Ovde, prediktor 230 može da izabere predikciju vektora pokreta trenutnog bloka iz kandidata za vektor pokreta u listi kandidata koristeći indeks vektora pokreta. Prediktor uređaja za kodiranje može da dobije razliku vektora pokreta (MVD) između vektora pokreta trenutnog bloka i prediktora vektora pokreta, kodira MVD i izlazno predstavi kodirani MVD u formi protoka bitova. Odnosno, MVD može biti dobijen oduzimanjem prediktora vektora pokreta od vektora pokreta trenutnog bloka. Ovde, prediktor 230 može da pribavi vektor pokreta uključen u informacije o predikciji i da izvede vektor pokreta trenutnog bloka dodavanjem razlike vektora pokreta na prediktor vektora pokreta. Pored toga, prediktor može da pribavi ili izvede indeks referentne slike koji označava referentnu sliku iz gorepomenutih informacija o predikciji.
[0075] Sabirač 240 može da doda uzorak ostatka na uzorak predikcije kako bi rekonstruisao trenutni blok ili trenutnu sliku. Sabirač 240 može da rekonstruiše trenutnu sliku dodavanjem uzorka ostatka na uzorak predikcije po blokovima. Kada se primenjuje režim preskakanja, ostatak se ne prenosi, pa uzorak predikcije može postati rekonstruisani uzorak. Iako je sabirač 240 opisan kao posebna komponenta, sabirač 240 može biti deo prediktora 230. U međuvremenu, sabirač 240 može da se nazove i rekonstruktor ili generator rekonstruisanog bloka.
[0076] Filter 250 može da primeni deblokirajuće filtriranje, adaptivni ofset uzorka i/ili ALF na rekonstruisanu sliku. Adaptivni ofset uzorka može biti primenjen po uzorcima nakon deblokirajućeg filtriranja. ALF može biti primenjen nakon deblokirajućeg filtriranja i/ili nakon primene adaptivnog ofseta uzorka.
[0077] Memorija 260 može da čuva rekonstruisanu sliku (dekodiranu sliku) ili informacije neophodne za dekodiranje. Rekonstruisana slika može biti slika filtrirana pomoću filtera 250. Na primer, memorija 260 može da čuva slike koje se koriste za inter-predikciju. Te slike mogu biti određene prema skupu referentnih slika ili listi referentnih slika. Rekonstruisana slika može se koristiti kao referentna slika za druge slike. Memorija 260 može da šalje rekonstruisane slike u redosledu za izlaz.
[0078] U međuvremenu, kao što je prethodno opisano, tokom video kodiranja primenjuje se predikcija radi poboljšanja efikasnosti kompresije. Na taj način, može da se generiše predikcioni blok koji uključuje uzorke predikcije za trenutni blok, koji predstavlja blok koji treba da se kodira (ciljni blok kodiranja). Predikcioni blok uključuje uzorke predikcije u prostornom domenu (ili piksel domenu). Predikcioni blok se izvodi na isti način u uređaju za kodiranje i uređaju za dekodiranje, i uređaj za kodiranje može da signalizira informacije o ostatku (informacije o razlici) između originalnog bloka i predikcionog bloka, umesto originalne vrednosti uzoraka iz originalnog bloka, uređaju za dekodiranje, čime se povećava efikasnost kodiranja slike. Uređaj za dekodiranje može da izvede blok ostatka koji uključuje uzorke ostatka na osnovu informacija o ostatku, doda blok ostatka i predikcioni blok kako bi generisao rekonstruisane blokove koji sadrže rekonstruisane uzorke, i generiše rekonstruisanu sliku koja uključuje te rekonstruisane blokove.
[0079] Informacije o ostatku mogu biti generisane kroz postupak transformacije i kvantizacije. Na primer, uređaj za kodiranje može da izvede blok ostatka između originalnog bloka i predikcionog bloka, da primeni postupak transformacije na uzorke ostatka (niz uzoraka ostatka) sadržane u bloku ostatka radi izvođenja koeficijenata transformacije, da izvrši postupak kvantizacije nad tim koeficijentima radi izvođenja kvantizovanih koeficijenata transformacije, i da signalizira povezane informacije o ostatku uređaju za dekodiranje (putem protoka bitova). Ovde, informacije o ostatku mogu uključivati informacije o vrednostima kvantizovanih koeficijenata transformacije, informacije o lokaciji, tehniku transformacije, jezgro transformacije, kvantizacioni parametar i slično. Uređaj za dekodiranje može da izvrši dekvantizaciju i inverznu transformaciju na osnovu informacija o ostatku i izvede uzorke ostatka (ili blokove ostatka). Uređaj za dekodiranje zatim može da generiše rekonstruisanu sliku na osnovu predikcionog bloka i bloka ostatka. Takođe, kao referencu za inter-predikciju naredne slike, uređaj za kodiranje može da izvrši dekvantizaciju i inverznu transformaciju kvantizovanih koeficijenata transformacije kako bi izveo blok ostatka i na osnovu njega generisao rekonstruisanu sliku.
[0080] FIG.3 ilustrativno predstavlja sistem za strimovanje sadržaja prema jednom načinu ostvarivanja ovog otkrivanja.
[0081] Vezano za FIG.3, načini ostvarivanja opisani u ovom otkrivanju mogu biti realizovani i izvršavani na procesoru, mikroprocesoru, kontroleru ili čipu. Na primer, funkcionalne jedinice prikazane na svakoj slici mogu biti realizovane i izvršavane na računaru, procesoru, mikroprocesoru, kontroleru ili čipu. U tom slučaju, informacije (npr. informacije o instrukcijama) ili algoritam za način ostvarivanja mogu ad se čuvaju na digitalnom medijumu za čuvanje podataka.
[0082] Dalje, uređaj za dekodiranje i uređaj za kodiranje na koje se ovo otkrivanje primenjuje mogu biti uključeni u uređaj za multimedijalni prenos sa mogućnošću prijema i slanja, terminal za mobilnu komunikaciju, video uređaj za kućni bioskop, video uređaj za digitalni bioskop, nadzornu kameru, uređaj za video čet, uređaj za komunikaciju u realnom vremenu kao što je video komunikacija, uređaj za mobilni striming, sredstvo za čuvanje podataka, kameru, uređaj za pružanje usluge video na zahtev (VoD), video uređaj za OTT, uređaj za pružanje usluge internet striminga, trodimenzionalni (3D) video uređaj, video uređaj za video telefoniju i medicinski video uređaj, i mogu se koristiti za obradu video signala ili signala podataka. Na primer, OTT video uređaj može da uključuje konzolu za igrice, Blu-ray plejer, televizor sa pristupom internetu, kućni bioskopski sistem, pametni telefon, tablet računar, digitalni video rekorder (DVR) i slično.
[0083] Pored toga, postupak obrade na koji se ovo otkrivanje primenjuje može biti realizovan u obliku programa koji se izvršava na računaru i može da se čuva na medijum za snimanje podataka čitljivom na računaru. Multimedijalni podaci sa strukturom podataka prema ovom otkrivanju takođe mogu da se čuvaju na medijumu za snimanje podataka čitljivom na računaru. Medijum za snimanje podataka čitljiv na računaru obuhvata sve vrste uređaja za čuvanje podataka i distribuirane uređaje za čuvanje podataka na kojima se čuvaju podaci čitljivi na računaru. Medijum za snimanje podataka čitljiv na računaru može uključivati, na primer, Blu-ray disk (BD), univerzalnu serijsku magistralu (USB), ROM, PROM, EPROM, EEPROM, RAM, CD-ROM, magnetnu traku, diskete i optički uređaj za čuvanje podataka. Pored toga, medijum za snimanje podataka čitljiv na računaru obuhvata medijume ostvarene u obliku talasa nosača (na primer, prenos putem interneta). Takođe, protok bitova generisan postupkom kodiranja može da se čuva na medijumu za snimanje podataka čitljivom na računaru ili da se prenese putem žične ili bežične komunikacione mreže.
[0084] Dodatno, načini ostvarivanja ovog otkrivanja mogu biti ostvareni kao računarski programski proizvod putem programskih kodova, a programski kodovi mogu da se izvršavaju na računaru u skladu sa načinom ostvarivanja ovog otkrivanja. Programske kodove moguće je čuvati na nosaču podataka čitljivom na računaru.
[0085] Sistem za strimovanje sadržaja na koji se ovo otkrivanje primenjuje može u osnovi obuhvatiti server za kodiranje, server za strimovanje, veb server, memoriju za medije, korisničku opremu i uređaj za unos multimedijalnog sadržaja.
[0086] Server za kodiranje ima funkciju da kompresuje u digitalne podatke sadržaj koji je unet sa multimedijalnih uređaja za unos, kao što su pametni telefon, kamera, kamkorder i slično, kako bi generisao protok bitova i preneo ga serveru za strimovanje. Kao drugi primer, u slučaju kada multimedijalni uređaj za unos, poput pametnog telefona, kamere, kamkordera ili sličnog, direktno generiše protok bitova, server za kodiranje može biti izostavljen.
[0087] Protok bitova može biti generisan postupkom kodiranja ili postupkom generisanja protoka bitova na koji se ovo otkrivanje primenjuje. Server za strimovanje može privremeno da čuva protok bitova tokom postupka prenosa ili prijema protoka bitova.
[0088] Server za strimovanje prenosi multimedijalne podatke korisničkoj opremi na osnovu korisnikovog zahteva putem veb servera, koji ima funkciju instrumenta za informisanje korisnika o dostupnim uslugama. Kada korisnik zatraži željenu uslugu, veb server prosleđuje zahtev serveru za strimovanje, a server za strimovanje prenosi multimedijalne podatke korisniku. U tom smislu, sistem za strimovanje sadržaja može obuhvatiti poseban kontrolni server, koji u tom slučaju ima funkciju da upravlja komandama/odgovorima između različitih komponenti u sistemu za strimovanje sadržaja.
[0089] Server za strimovanje može da prima sadržaj iz memorije za medijume i/ili sa servera za kodiranje. Na primer, u slučaju kada se sadržaj prima sa servera za kodiranje, sadržaj može biti primljen u realnom vremenu. U tom slučaju, server za strimovanje može da čuva protok bitova tokom unapred određenog vremenskog perioda kako bi usluga strimovanja bila obezbeđena nesmetano.
[0090] Na primer, korisnička oprema može da obuhvata mobilni telefon, pametni telefon, laptop računar, terminal za digitalno emitovanje, lični digitalni asistent (PDA), prenosivi multimedijalni plejer (PMP), uređaj za navigaciju, „slate“ PC, tablet računar, ultrabuk, nosivi uređaj (npr. terminal u obliku sata – pametni sat, terminal u obliku naočara – pametne naočare, uređaj montiran na glavu – HMD), digitalni TV, stoni računar, digitalnu signalizaciju ili slično.
[0091] Svaki od servera u sistemu za strimovanje sadržaja može da funkcioniše kao distribuirani server, a u tom slučaju podaci koje primi svaki server mogu biti obrađeni na distribuiran način.
[0092] U nastavku će detaljno biti opisan postupak inter-predikcije opisan uz pozivanje na FIG.1 i 2.
[0093] FIG.4 je dijagram toka koji ilustruje postupak izvođenja vrednosti prediktora vektora pokreta iz susednog bloka prema jednom načinu ostvarivanja ovog otkrivanja.
[0094] U režimu predikcije vektora pokreta (MVP), koder predviđa vektor pokreta u skladu sa tipom bloka za predikciju i prenosi dekoderu vrednost razlike između optimalnog vektora pokreta i vrednosti predikcije. U tom slučaju, koder prenosi vrednost razlike vektora pokreta, informacije o susednom bloku, indeks referentne slike i slično dekoderu. Ovaj režim MVP može se nazivati i režim napredne predikcije vektora pokreta (AMVP).
[0095] Koder može da konstruiše listu kandidata za predikciju vektora pokreta, a ta lista može da uključuje najmanje jednog prostornog kandidata i/ili jednog vremenskog kandidata.
[0096] Prvo, koder može da pretraži prostorni kandidatski blok za predikciju vektora pokreta i da ga ubaci u listu kandidata za predikciju (S410). Na postupak konstruisanja prostornog kandidatskog bloka može se primeniti postupak konstruisanja konvencionalnog prostornog kandidata za spajanje u inter-predikciji prema režimu spajanja.
[0097] Koder može da proveri da li je broj prostornih kandidatskih blokova manji od dva (S420).
[0098] U slučaju da je broj prostornih kandidatskih blokova manji od dva, kao rezultat provere, koder može da pretraži vremenski kandidatski blok i da ga ubaci u listu kandidata za predikciju (S430). U tom slučaju, ako nije dostupan nijedan vremenski kandidatski blok, koder može da koristi nula vektor pokreta kao vrednost predikcije vektora pokreta (S440). Na postupak konstruisanja vremenskog kandidatskog bloka može se primeniti postupak konstruisanja konvencionalnog vremenskog kandidata za spajanje u inter-predikciji prema režimu spajanja.
[0099] S druge strane, u slučaju kada je broj prostornih kandidatskih blokova jednak ili veći od dva, kao rezultat provere, koder može da završi konstituisanje liste kandidata za predikciju i da izabere blok sa najmanjim troškom među kandidatskim blokovima. Koder može da odredi vektor pokreta izabranog kandidatskog bloka kao vrednost predikcije vektora pokreta trenutnog bloka i da izvede razliku vektora pokreta korišćenjem vrednosti predikcije vektora pokreta. Tako izvedena vrednost razlike vektora pokreta može biti poslata dekoderu.
[0100] FIG.5 ilustrativno predstavlja model afinog pokreta prema jednom načinu ostvarivanja ovog otkrivanja.
[0101] Afini režim može biti jedan od različitih režima predikcije u inter-predikciji, i afini režim se može takođe nazivati režimom afine pokretne kompenzacije ili režimom predikcije pokreta po podblokovima. Afini režim se može odnositi na režim u kojem se postupak afine predikcije pokreta izvodi korišćenjem modela afinog pokreta.
[0102] Postupak afine predikcije pokreta može da izvede vektor pokreta za uzorke u jedinici bloka korišćenjem dva ili više vektora pokreta u trenutnom bloku. Drugim rečima, postupak afine predikcije pokreta može da poboljša efikasnost kodiranja određivanjem vektora pokreta ne u jedinici bloka već u jedinici uzorka.
[0103] Opšti model pokreta može da uključuje translacioni model, a procena pokreta (ME) i kompenzacija pokreta (MC) su se izvodile na osnovu translacionog modela koji je efikasan za predstavljanje jednostavnog pokreta. Međutim, translacioni model može biti neefikasan za primenu na složene pokrete u prirodnim video zapisima, kao što su zumiranje (uvećano zumiranje, umanjeno zumiranje), rotacija i drugi neregularni pokreti. Shodno tome, jedan način ostvarivanja ovog otkrivanja može da koristi model afinog pokreta koji se može efikasno primeniti na složene pokrete.
[0104] Vezano za FIG.5, model afinog pokreta može da uključuje četiri modela pokreta, ali ovi modeli su dati samo kao primer i opseg ovog otkrivanja nije ograničen na njih. Navedena četiri pokreta mogu da obuhvataju translaciju, skaliranje, rotaciju i struganje. Ovde se model pokreta za translaciju, skaliranje i rotaciju može nazvati modelom pojednostavljenog afinog pokreta.
[0105] FIG.6 ilustrativno prikazuje model pojednostavljenog afinog pokreta prema jednom načinu ostvarivanja ovog otkrivanja.
[0106] U okviru afine predikcije pokreta, može da se definiše kontrolna tačka (CP) kako bi se koristio model afinog pokreta, i moguće je odrediti vektor pokreta za podblok ili jedinicu uzorka unutar bloka korišćenjem dva ili više vektora pokreta kontrolne tačke (CPMV). Ovde se skup vektora pokreta jedinice uzorka ili skup vektora pokreta podbloka može nazvati afino polje vektora pokreta (afino MVF).
[0107] U vezi sa FIG.6, pojednostavljeni model afinog pokreta može označavati model za određivanje vektora pokreta uzorka ili podbloka korišćenjem CPMV-ova prema CP, i može se takođe nazivati afini režim sa četiri parametra. Na FIG.6, v0i v1mogu predstavljati dva CPMV-a, a svaka strelica u podbloku može predstavljati vektor pokreta jedinice podbloka.
[0108] Drugim rečima, u postupku kodiranja/dekodiranja, afino polje vektora pokreta može se određivati u jedinici uzorka ili jedinici podbloka. Ovde jedinica uzorka može označavati piksel, dok jedinica podbloka može označavati prethodno definisanu blok-jedinicu. Kada se afino polje vektora pokreta određuje na nivou uzorka, vektor pokreta može se dobiti na osnovu vrednosti svakog piksela, a u slučaju blok-jedinice, vektor pokreta odgovarajućeg bloka može se dobiti na osnovu vrednosti centralnog piksela tog bloka.
[0109] FIG.7 je dijagram koji prikazuje postupak izvođenja prediktora vektora pokreta u kontrolnoj tački prema jednom načinu ostvarivanja ovog otkrivanja.
[0110] Afini režim može uključivati afini režim spajanja i režim afine predikcije vektora pokreta (MVP). Afini režim spajanja može se nazivati režimom spajanja podbloka, a režim afine MVP predikcije može se nazivati afini inter režim.
[0111] U režimu afine MVP predikcije, CPMV trenutnog bloka može biti izveden na osnovu prediktora vektora pokreta u kontrolnoj tački (CPMVP) i razlike vektora pokreta u kontrolnoj tački. Drugim rečima, uređaj za kodiranje može da odredi CPMVP za CPMV trenutnog bloka, izvede CPMVD koji predstavlja razliku između CPMV i CPMVP trenutnog bloka i da signalizira informaciju o CPMVP i informaciju o CPMVD uređaju za dekodiranje. Ovde režim afine MVP predikcije može da konstruiše listu kandidata afine MVP predikcije na osnovu susednog bloka, a lista kandidata afine MVP predikcije može se nazivati lista kandidata CPMVP. Pored toga, informacija o CPMVP može uključivati indeks koji označava blok ili vektor pokreta na koji se poziva iz liste kandidata afine MVP predikcije.
[0112] Vezano za FIG.7, vektor pokreta kontrolne tačke na poziciji gornje leve tačke uzorka trenutnog bloka može biti predstavljen kao v0, vektor pokreta kontrolne tačke na poziciji gornje desne tačke uzorka može biti predstavljen kao v1, vektor pokreta kontrolne tačke na poziciji donje leve tačke uzorka može biti predstavljen kao v2, a vektor pokreta kontrolne tačke na poziciji donje desne tačke uzorka može biti predstavljen kao v3.
[0113] Na primer, ako se dve kontrolne tačke koriste u afinom režimu i te dve kontrolne tačke se nalaze na pozicijama gornje leve tačke uzorka i gornje desne tačke uzorka, vektor pokreta jedinice uzorka ili jedinice podbloka može biti izveden na osnovu vektora pokreta v0i v1.
[0114] Vektor pokreta v0može biti izvedena na osnovu najmanje jednog vektora pokreta susednih blokova A, B, i C pozicije gornjeg levog uzorka. Ovde, susedni blok A može da predstavlja blok koji se nalazi gore levo od pozicije gornjeg levog uzorka trenutnog bloka, pri čemu taj susedni blok B može da predstavlja blok koji se nalazi gore od pozicije gornjeg levog uzorka trenutnog bloka, a susedni blok C može da predstavlja blok koji se nalazi levo od pozicije gornjeg levog uzorka trenutnog bloka.
[0115] Vektor pokreta v1može biti izveden na osnovu najmanje jednog vektora pokreta susednih blokova D i E pozicije gornjeg desnog uzorka. Ovde, susedni blok D može da predstavlja blok koji se nalazi gore od pozicije gornjeg desnog uzorka trenutnog bloka, a susedni blok E može da predstavlja blok koji se nalazi gore desno od pozicije gornjeg desnog uzorka trenutnog bloka.
[0116] Na primer, ako se tri kontrolne tačke koriste u afinom režimu i te tri kontrolne tačke se nalaze na pozicijama gornje leve tačke uzorka, gornje desne tačke uzorka i donje leve tačke uzorka, vektor pokreta jedinice uzorka ili jedinice podbloka može biti izveden na osnovu vektora pokreta v0, v1i v2. Drugim rečima, vektor pokreta v2može se dodatno koristiti.
[0117] Vektor pokreta v2može biti izveden na osnovu najmanje jednog vektora pokreta susednih blokova F i G na poziciji donje leve tačke uzorka. Ovde susedni blok F može da predstavlja blok koji se nalazi levo od donje leve tačke uzorka trenutnog bloka, a susedni blok G može da predstavlja blok koji se nalazi donje levo od donje leve tačke uzorka trenutnog bloka.
[0118] Režim afine MVP predikcije može da izvede listu kandidata CPMVP na osnovu susednih blokova i da izabere par CPMVP sa najvećom korelacijom iz te liste kao CPMV trenutnog bloka. Informacija o CPMVP opisana iznad može da uključuje indeks koji označava izabrani par CPMVP iz liste kandidata CPMVP.
[0119] FIG.8 ilustrativno predstavlja dve kontrolne tačke za 4-parametarski model afinog pokreta prema jednom načinu ostvarivanja ovog otkrivanja.
[0120] Jedan način ostvarivanja ovog otkrivanja može koristiti dve kontrolne tačke. Te dve kontrolne tačke mogu tim redom biti locirane na poziciji gornje leve tačke uzorka i poziciji gornje desne tačke uzorka trenutnog bloka. Ovde kontrolna tačka locirana na poziciji gornje leve tačke uzorka može biti označena kao CP0, a kontrolna tačka locirana na poziciji gornje desne tačke uzorka može biti označena kao CP1. Vektor pokreta u tački CP0može biti označen kao mv0, a vektor pokreta u tački CP1kao mv1. Koordinate (CPi) svake kontrolne tačke mogu biti definisane kao (xi, yi), i = 0, 1, a vektor pokreta u svakoj kontrolnoj tački može biti predstavljen kao mvi = (vxi, vyi), i = 0, 1.
[0121] U jednom načinu ostvarivanja ovog otkrivanja, kontrolna tačka locirana na poziciji gornje leve tačke uzorka može biti predstavljena kao CP1, a kontrolna tačka locirana na poziciji gornje desne tačke uzorka kao CP0. U tom slučaju, sledeći postupak može se na sličan način izvršiti uzimajući u obzir zamenjene pozicije CP0i CP1.
[0122] Na primer, ako je širina trenutnog bloka W, a njegova visina H, pod pretpostavkom da su koordinate donje leve tačke uzorka trenutnog bloka (0, 0), tada koordinate tačke CP0mogu biti predstavljene kao (0, H), a koordinate tačke CP1kao (W, H). Ovde, W i H mogu imati različite vrednosti, ali mogu imati i istu vrednost, a referentna tačka (0, 0) može biti postavljena drugačije.
[0123] Kao što je prikazano na FIG.8, pošto model afinog pokreta koji koristi dva vektora pokreta prema dve kontrolne tačke u postupku afine predikcije pokreta koristi četiri parametra u skladu sa ta dva vektora pokreta, može se nazivati 4-parametarskim modelom afinog pokreta ili modelom pojednostavljenog afinog pokreta.
[0124] U jednom načinu ostvarivanja ovog otkrivanja, vektor pokreta jedinice uzorka može biti određen afinim poljem vektora pokreta (afino MVF) i pozicijom i jedinicom uzorka. Afino polje vektora pokreta može predstavljati vektor pokreta jedinice uzorka na osnovu dva vektora pokreta prema dve kontrolne tačke. Drugim rečima, afino polje vektora pokreta može da izvede vektor pokreta (vx, vy) odgovarajućeg uzorka kada je pozicija uzorka (x, y), kao što je prikazano u jednačini 1.
[0125] U jednačini 1, v0x i v0y mogu označavati (x, y) komponente koordinata vektora pokreta mv0u tački CP0, a v1x i v1y mogu označavati (x, y) komponente koordinata vektora pokreta mv1u tački CP1. Takođe, w može označavati širinu trenutnog bloka.
[0126] U međuvremenu, jednačina 1 koja predstavlja model afinog pokreta je samo primer, i jednačina za predstavljanje modela afinog pokreta nije ograničena na jednačinu 1. Na primer, znak svakog koeficijenta otkriven u jednačini 1 može biti promenjen u odnosu na znak u jednačini 1 u nekim slučajevima.
[0127] Drugim rečima, prema jednom načinu ostvarivanja ovog otkrivanja, referentni blok među vremenskim i/ili prostornim susednim blokovima u odnosu na trenutni blok može biti određen, vektor pokreta tog referentnog bloka može se koristiti kao prediktor vektora pokreta trenutnog bloka, a vektor pokreta trenutnog bloka može se izraziti pomoću prediktora vektora pokreta i razlike vektora pokreta. Pored toga, jedan način ostvarivanja ovog otkrivanja može signalizirati indeks za prediktor vektora pokreta i razliku vektora pokreta.
[0128] Prema jednom načinu ostvarivanja ovog otkrivanja, dve razlike vektora pokreta prema dve CP mogu biti izvedene na osnovu dva vektora pokreta prema dve CP i dva prediktora vektora pokreta prema dve CP prilikom kodiranja, a dva vektora pokreta prema dve CP mogu biti izvedena na osnovu dva prediktora vektora pokreta prema dve CP i dve razlike vektora pokreta prema dve CP prilikom dekodiranja. Drugim rečima, vektor pokreta na svakoj CP može biti sastavljen kao zbir prediktora vektora pokreta i razlike vektora pokreta, kao što je prikazano u jednačini 2, i može biti sličan načinu kada se koristi režim predikcije vektora pokreta (MVP) ili režim napredne predikcije vektora pokreta (AMVP).
[0129] U jednačini 2, mvp0i mvp1mogu predstavljati prediktor vektora pokreta (MVP) na svakoj od CP0i CP1, a mvd0i mvd1mogu predstavljati razliku vektora pokreta (MVD) na svakoj od CP0i CP1. Ovde se mvp može nazivati CPMVP, a mvd se može nazivati CPMVD.
[0130] Shodno tome, postupak inter predikcije prema afinom režimu, prema jednom načinu ostvarivanja ovog otkrivanja, može da kodira i dekodira indeks i razliku vektora pokreta (mvd0i mvd1) na svakoj CP. Drugim rečima, prema jednom načinu ostvarivanja ovog otkrivanja, vektori pokreta na CP0i CP1mogu biti izvedeni na osnovu mvd0i mvd1na svakoj od CP0i CP1trenutnog bloka i mvp0i mvp1prema indeksu, a inter predikcija se može izvršiti izvođenjem vektora pokreta jedinice uzorka na osnovu vektora pokreta na CP0i CP1.
[0131] Postupak inter predikcije prema afinom režimu, prema drugom načinu ostvarivanja ovog otkrivanja, može koristiti jednu od razlika vektora pokreta prema dve CP i razliku između dva MVD (DMVD). Drugim rečima, u drugom načinu ostvarivanja, kada postoje mvd0i mvd1prema CP0i CP1, inter predikcija se može izvršiti kodiranjem i dekodiranjem jednog od mvd0i mvd1, razlike između mvd0i mvd1, i indeksa na svakoj CP. Tačnije, u drugom načinu ostvarivanja ovog otkrivanja, mvd0i DMVD (mvd0− mvd1) mogu biti signaliziran, kao i mvd1i DMVD (mvd0− mvd1).
[0132] Odnosno, u drugom načinu ostvarivanja ovog otkrivanja, razlike vektora pokreta (mvd0i mvd1) na CP0i CP1mogu biti izvedene, tim redom, na osnovu razlike vektora pokreta (mvd0ili mvd1) na CP0ili CP1i razlike između razlika vektora pokreta (mvd0i mvd1) na CP0i CP1, a vektori pokreta na CP0i CP1mogu biti izvedeni, tim redom, na osnovu prediktora vektora pokreta (mvp0i mvp1) na CP0i CP1označenih putem indeksa, zajedno sa tim razlikama vektora pokreta, i inter predikcija se može izvršiti izvođenjem vektora pokreta jedinice uzorka na osnovu vektora pokreta na CP0i CP1.
[0133] Ovde, pošto su podaci o razlici između dve razlike vektora pokreta (DMVD) bliži nultom vektoru pokreta (nulti MV) od podataka o uobičajenoj razlici vektora pokreta, moguće je obaviti kodiranje efikasnije nego u slučaju prema drugim načinima ostvarivanja ovog otkrivanja.
[0134] FIG.9 ilustrativno predstavlja slučaj u kojem se srednja vrednost dodatno koristi u 4-parametarskom modelu afinog pokreta prema jednom načinu ostvarivanja ovog otkrivanja.
[0135] U inter predikciji prema afinom režimu, prema jednom načinu ostvarivanja ovog otkrivanja, može se obaviti adaptivno kodiranje vektora pokreta korišćenjem srednjeg prediktora prediktora vektora pokreta.
[0136] Vezano za FIG.9, prema jednom načinu ostvarivanja ovog otkrivanja, dve CP mogu biti korišćene, a informacija o CP na drugoj lokaciji može biti izvedena na osnovu te dve CP. Ovde informacija koja se odnosi na dve CP može biti ista kao za dve CP sa FIG.8. Pored toga, CP na drugoj lokaciji izvedena na osnovu te dve CP može se nazivati CP2i može biti locirana na poziciji donje leve tačke uzorka trenutnog bloka.
[0137] Informacija o CP na drugoj lokaciji može uključivati prediktor vektora pokreta (mvp2) za CP2, a mvp2može biti izvedena na dva načina.
[0138] Jedan postupak izvođenja mvp2je sledeći. mvp2može biti izvedena na osnovu prediktora vektora pokreta mvp0 za CP0i prediktora vektora pokreta mvp1za CP1, i može biti izvedena kao što je prikazano u jednačini 3.
[0139] U jednačini 3, mvp0xi mvp0ymogu značiti (x, y) koordinatne komponente prediktora vektora pokreta (mvp0) na CP0, mvp1xi mvp1ymogu značiti (x, y) koordinatne komponente prediktora vektora pokreta (mvp1) na CP1, a mvp2xi mvp2ymogu značiti (x, y) koordinatne komponente prediktora vektora pokreta (mvp2) na CP2. Pored toga, h može predstavljati visinu trenutnog bloka, a w širinu trenutnog bloka.
[0140] Drugi postupak izvođenja mvp2je sledeći. mvp2može biti izvedena na osnovu susednih blokova CP2. Vezano za FIG.9, CP2može biti locirana na donjoj levoj tački uzorka trenutnog bloka, i mvp2može biti izvedena na osnovu susednog bloka A ili susednog bloka B CP2.
Preciznije, mvp2može biti izabrana kao jedan od vektora pokreta susednog bloka A ili vektora pokreta susednog bloka B.
[0141] U jednom načinu ostvarivanja ovog otkrivanja, mvp2 može biti izvedena, a medijana vrednost može biti izvedena na osnovu mvp0, mvp1i mvp2. Ovde vrednost medijane znači vrednost koja se nalazi u sredini po veličini među više vrednosti. Dakle, vrednost medijane može biti izabrana kao jedna od mvp0, mvp1i mvp2.
[0142] Prema jednom načinu ostvarivanja ovog otkrivanja, kada je vrednost medijane jednaka mvp0, razlika vektora pokreta (mvd0) za CP0i DMVD (mvd0− mvd1) mogu biti signalizirani za inter predikciju, a kada je vrednost medijane jednaka mvp1, razlika vektora pokreta (mvd1) za CP1i DMVD (mvd0− mvd1) mogu biti signalizirani za inter predikciju. Kada je vrednost medijane jednaka mvp2, može se slediti ili slučaj kada je vrednost medijane jednaka mvp0ili slučaj kada je vrednost medijane jednaka mvp1, a to može biti prethodno definisano.
[0143] Ovde se gore opisani postupak može izvršiti za svaku od x i y komponenti prediktora vektora pokreta. Drugim rečima, vrednost medijane može biti izvedena za x komponentu i za y komponentu, tim redom. U tom slučaju, kada je x komponenta vrednosti medijane ista kao x komponenta mvp0, samo x komponenta vektora pokreta može biti kodirana i dekodirana prema gore opisanom slučaju kada je vrednost medijane jednaka mvp0, a kada je y komponenta vrednosti medijane ista kao y komponenta mvp1, samo y komponenta vektora pokreta može biti kodirana i dekodirana prema gore opisanom slučaju kada je vrednost medijane jednaka mvp1. Ako su x i/ili y komponente vrednosti medijane jednake x i/ili y komponentama mvp2, x i/ili y komponente vektora pokreta mogu biti kodirane i dekodirane prema bilo kojem od gore opisanih slučajeva kada je vrednost medijane jednaka mvp0 ili kada je vrednost medijane jednaka mvp1, što može biti prethodno definisano.
[0144] FIG.10 ilustrativno prikazuje tri CP za 6-parametarski model afinog pokreta prema jednom načinu ostvarivanja ovog otkrivanja.
[0145] Jedan način ostvarivanja ovog otkrivanja može koristiti tri CP. Te tri CP mogu biti pozicionirane na gornjoj levoj tački uzorka, gornjoj desnoj tački uzorka i donjoj levoj tački uzorka trenutnog bloka, tim redom. Ovde, CP koja se nalazi na gornjoj levoj tački uzorka može biti označena kao CP0, CP koja se nalazi na gornjoj desnoj tački uzorka može biti označena kao CP1, a CP koja se nalazi na donjoj levoj tački uzorka može biti označena kao CP2. Vektor pokreta na CP0može biti označen kao mv0, vektor pokreta na CP1kao mv1, a vektor pokreta na CP2kao mv2. Koordinate (CPi) svake CP mogu biti definisane kao (xi, yi), i = 0, 1, 2, a vektor pokreta na svakoj CP može biti predstavljen kao mvi = (vxi, vyi), i = 0, 1, 2.
[0146] U jednom načinu ostvarivanja ovog otkrivanja, tri CP mogu biti raspoređene na gornjoj levoj, gornjoj desnoj i donjoj levoj tački uzorka, tim redom, ali pozicije tri CP mogu biti i drugačije. Na primer, CP0može biti locirana na gornjoj desnoj tački uzorka, CP1na gornjoj levoj tački uzorka, a CP2na donjoj levoj tački uzorka — ali njihove pozicije nisu ograničene na to. U tom slučaju, naredni postupak može se sličnim načinom primeniti, uzimajući u obzir stvarne pozicije svake CP.
[0147] Na primer, ako je širina trenutnog bloka W, a visina H, i ako se pretpostavi da su koordinate donje leve tačke uzorka trenutnog bloka (0, 0), tada koordinate za CP0mogu biti predstavljene kao (0, H), koordinate za CP1kao (W, H), a koordinate za CP2kao (0, 0). Ovde, W i H mogu imati različite vrednosti, ali mogu imati i istu vrednost, a referentna tačka (0, 0) može biti postavljena drugačije.
[0148] Kao što je prikazano na FIG.10, pošto model afinog pokreta koji koristi tri vektora pokreta prema tri CP u postupku afine predikcije pokreta koristi šest parametara u skladu sa ta tri vektora pokreta, može se nazivati 6-parametarskim modelom afinog pokreta.
[0149] U jednom načinu ostvarivanja ovog otkrivanja, vektor pokreta jedinice uzorka može biti određen afinim poljem vektora pokreta (afino MVF) i pozicijom i jedinicom uzorka. Afino polje vektora pokreta može predstavljati vektor pokreta jedinice uzorka na osnovu tri vektora pokreta prema tri CP.
[0150] Prema jednom načinu ostvarivanja ovog otkrivanja, referentni blok među vremenskim i/ili prostornim susednim blokovima u odnosu na trenutni blok može biti određen, vektor pokreta tog referentnog bloka može se koristiti kao prediktor vektora pokreta trenutnog bloka, a vektor pokreta trenutnog bloka može biti predstavljen pomoću prediktora vektora pokreta i razlike vektora pokreta. Pored toga, jedan način ostvarivanja ovog otkrivanja može da signalizira indeks za prediktor vektora pokreta i razliku vektora pokreta.
[0151] Prema jednom načinu ostvarivanja ovog otkrivanja, tri razlike vektora pokreta prema tri CP mogu biti izvedene na osnovu tri vektora pokreta prema tri CP i tri prediktora vektora pokreta prema tri CP prilikom kodiranja, a tri vektora pokreta prema tri CP mogu biti izvedena na osnovu tri prediktora vektora pokreta prema tri CP i tri razlike vektora pokreta prema tri CP prilikom dekodiranja. Drugim rečima, vektor pokreta na svakoj CP može biti sastavljen kao zbir prediktora vektora pokreta i razlike vektora pokreta, kao što je prikazano u jednačini 4.
[0152] U jednačini 4, mvp0, mvp1i mvp2mogu predstavljati prediktor vektora pokreta (MVP) na svakoj od CP0, CP1i CP2, a mvd0, mvd1i mvd2mogu predstavljati razliku vektora pokreta (MVD) na svakoj od CP0, CP1i CP2. Ovde se mvp može nazivati CPMVP, a mvd se može nazivati CPMVD.
[0153] Shodno tome, postupak inter predikcije prema afinom režimu, prema jednom načinu ostvarivanja ovog otkrivanja, može da kodira i dekodira indeks i razlike vektora pokreta (mvd0, mvd1i mvd2) na svakoj CP. Drugim rečima, prema jednom načinu ostvarivanja ovog otkrivanja, vektori pokreta na CP0, CP1i CP2mogu biti izvedeni na osnovu mvd0, mvd1i mvd2na svakoj od CP0, CP1i CP2trenutnog bloka i mvp0, mvp1i mvp2prema indeksu, a inter predikcija se može izvršiti izvođenjem vektora pokreta jedinice uzorka na osnovu vektora pokreta na CP0, CP1i CP2.
[0154] Postupak afine predikcije pokreta prema drugom načinu ostvarivanja ovog otkrivanja može koristiti jednu razliku vektora pokreta od tri razlike vektora pokreta, razliku između te jedne razlike vektora pokreta i druge razlike vektora pokreta (DMVD, razlika između dva MVD), i razliku između te jedne razlike vektora pokreta i još jedne druge razlike vektora pokreta (DMVD).
[0155] Konkretnije, u drugom načinu ostvarivanja ovog otkrivanja, kada su mvd0, mvd1i mvd2izvedene u skladu sa tri CP, inter predikcija može biti izvedena signaliziranjem mvd0i dve DMVD (mvd0- mvd1, i mvd0- mvd2), signaliziranjem mvd1i dve DMVD (mvd0- mvd1, i mvd1-mvd2), ili signaliziranjem mvd2i dve DMVD (mvd0- mvd2, i mvd1- mvd2). Ovde, radi praktičnosti, jedna od dve DMVD može se označiti kao prva DMVD (DMVD1), dok se druga može označiti kao druga DMVD (DMVD2). Pored toga, prilikom kodiranja i dekodiranja mvd0i dve DMVD (mvd0– mvd1i mvd0– mvd2), mvd0 se može označiti kao MVD za CP0, DMVD (mvd0– mvd1) kao DMVD za CP1, a DMVD (mvd0– mvd2) kao DMVD za CP2.
[0156] Odnosno, prema drugom načinu ostvarivanja ovog otkrivanja, tri MVD (npr., mvd0, mvd1i mvd2) mogu biti izvedene na osnovu jedne mvd i dve DMVD, a vektor pokreta u svakoj od tri kontrolne tačke (CP) može biti izveden na osnovu prediktora vektora pokreta u skladu sa indeksom za tri CP (npr. CP0, CP1i CP2), zajedno sa navedenim MVD. Inter predikcija se zatim može izvršiti izvođenjem vektora pokreta na nivou uzorka na osnovu vektora pokreta u tri CP.
[0157] U drugom načinu ostvarivanja ovog otkrivanja, opisanom uz pozivanje na FIG.10, postupak koji koristi medijanu prediktora, opisan uz pozivanje na FIG.9, može se adaptivno primeniti radi efikasnog kodiranja vektora pokreta. U tom slučaju, postupak izvođenja mvp2 može biti izostavljen iz postupka opisanog uz pozivanje na FIG.9.
[0158] Dalje u nastavku, u opisu ovog otkrivanja, CP0, CP1, i CP2mogu biti predstavljeni kao prva CP, druga CP, i treća CP, tim redom, a vektor pokreta (MV), prediktor vektora pokreta (MVP), i razlika vektora pokreta (MVD) prema svakoj CP takođe mogu biti predstavljeni na s ličan način kao prethodno pomenuti.
[0159] FIG.11 šematski predstavlja postupak video kodiranja uređajem kodiranja prema ovom otkrivanju.
[0160] Postupak otkriven na slici 11 može biti izveden od strane uređaja za kodiranje otkrivenog na Fig.1. Na primer, faze S1100 do S1120 na Fig.11 mogu biti izvedene od strane prediktora uređaja za kodiranje, a faza S1130 može biti izvedena od strane entropijskog kodera uređaja za kodiranje.
[0161] Uređaj za kodiranje izvodi kontrolne tačke (CP) za trenutni blok (S1100). Kada se na trenutni blok primeni afina predikcija pokreta, uređaj za kodiranje može da izvede CP, a broj CP može biti dva ili tri u zavisnosti od načina ostvarivanja.
[0162] Na primer, kada postoje dve CP, CP mogu biti pozicionirane na gornjoj levoj i gornjoj desnoj poziciji uzorka trenutnog bloka, tim redom, i ako su visina i širina trenutnog bloka H i W, tim redom, a koordinatna komponenta donje leve pozicije uzorka je (0, 0), tada koordinatne komponente CP mogu biti (0, H) i (W, H), tim redom.
[0163] Na primer, kada postoje tri CP, CP mogu biti pozicionirane na gornjoj levoj, gornjoj desnoj i donjoj levoj poziciji uzorka trenutnog bloka, tim redom, i ako su visina i širina trenutnog bloka H i W, tim redom, a koordinatna komponenta donje leve pozicije uzorka je (0, 0), tada koordinatne komponente CP mogu biti (0, H), (W, H) i (0, 0), tim redom.
[0164] Uređaj za kodiranje izvodi MVP za CP (S1110). Na primer, kada je broj izvedenih CP dve, uređaj za kodiranje može da dobije dva vektora pokreta. Na primer, kada je broj izvedenih CP tri, uređaj za kodiranje može da dobije tri vektora pokreta. MVP za CP može biti izveden na osnovu susednih blokova, a detaljan opis toga je dat iznad uz pozivanje na FIG.7 i 9.
[0165] Na primer, kada su prva CP i druga CP izvedene, uređaj za kodiranje može da izvede prvi MVP za prvu CP i drugi MVP za drugu CP na osnovu susednih blokova trenutnog bloka, a kada je treća CP dodatno podeljena, uređaj za kodiranje može dodatno da izvede treći MVP na osnovu susednih blokova trenutnog bloka.
[0166] Na primer, kada su izvedene prva CP, druga CP i treća CP, uređaj za kodiranje može da izvede treći MVP za treću CP na osnovu prvog MVP za prvu CP i drugog MVP za drugu CP, i da izvede treći MVP na osnovu vektora pokreta susednog bloka treće CP.
[0167] Uređaj za kodiranje izvodi razliku vektora pokreta (MVD) i najmanje jednu razliku između dve MVD (DMVD) (S1120). Razlika vektora pokreta (MVD) može biti izvedena na osnovu vektora pokreta (MV) i prediktora vektora pokreta (MVP), i za ovu svrhu uređaj za kodiranje može takođe izvesti vektor pokreta za svaku CP. Razlika između razlika vektora pokreta (DMVD) može biti izvedena na osnovu više razlika vektora pokreta.
[0168] Na primer, kada postoje dve CP, uređaj za kodiranje može izvesti jednu MVD i jednu DMVD. Uređaj za kodiranje može izvesti dve MVD na osnovu vektora pokreta za dve CP i dva MVP. Pored toga, može biti izabrana jedna od dve MVD koje će biti kodirane, i razlika između dve MVD (DMVD) može biti izvedena na osnovu izabrane MVD.
[0169] Na primer, kada su prva CP i druga CP izvedene, uređaj za kodiranje može da izvede prvu MVD za prvu CP i DMVD za drugu CP. Ovde, DMVD za drugu CP može da predstavlja razliku između prve MVD i druge MVD za drugu CP, i pri čemu prva MVD može predstavljati referencu.
[0170] Na primer, kada postoje tri CP, uređaj za kodiranje može da izvede jednu MVD i dve DMVD. Uređaj za kodiranje može da izvede tri MVD od tri MVP prema vektoru pokreta tri CP i referentnom bloku, a od ta tri MVD, može se izabrati bilo koji jedan MVD koji će biti kodiran. Pored toga, uređaj za kodiranje može da izvede razliku između izabranog MVD i drugog MVD (DMVD1), kao i razliku između izabranog MVD i još jednog drugog MVD (DMVD2).
[0171] Na primer, kada je treća CP dodatno izvedena, uređaj za kodiranje može da izvede prvu MVD za prvu CP, DMVD za drugu CP, i DMVD za treću CP. Ovde, DMVD za drugu CP može da predstavlja razliku između prve MVD i druge MVD za drugu CP, i DMVD za treću CP može da predstavlja razliku između prve MVD i treće MVD za treću CP, i pri čemu prva MVD može predstavljati referencu.
[0172] Na primer, kada je treća CP dodatno podeljena, uređaj za kodiranje može da izvede vrednost medijane na osnovu prve MVP, druge MVP, i treće MVP, i u ovom slučaju, treća MVD i DMVD za treću CP možda neće biti izvedena. Njen detaljan opis je prethodno dat uz pozivanje na FIG.9.
[0173] Uređaj za kodiranje kodira na osnovu jedne MVD i najmanje jedne DMVD i izdvaja protok bitova (S1130). Za inter predikciju, uređaj za kodiranje može da generiše i izdvoji protok bitova za trenutni blok koji uključuje jednu MVD, najmanje jednu DMVD i indeks za prediktor vektora pokreta.
[0174] Na primer, kada postoje dve CP, uređaj za kodiranje može da generiše protok bitova za trenutni blok koji uključuje indeks za prediktor vektora pokreta za dve CP i razliku vektora pokreta za bilo koju od dve CP, kao i razliku između razlika vektora pokreta za dve CP.
[0175] Na primer, kada su prva CP i druga CP izvedene, uređaj za kodiranje može da generiše protok bitova kodiranjem informacija o slici koje uključuju informacije o prvom MVD i informacije o DMVD za drugu CP.
[0176] Na primer, ako postoje tri CP, uređaj za kodiranje može da generiše protok bitova za trenutni blok koji uključuje indeks za prediktor vektora pokreta za tri CP, razliku vektora pokreta za jednu od tri CP, razliku između razlike vektora pokreta za tu CP i razlike vektora pokreta za drugu CP, kao i razliku između razlike vektora pokreta za tu CP i razlike vektora pokreta za još jednu CP.
[0177] Na primer, kada je treća CP dodatno podeljena, uređaj za kodiranje može dodatno da uključuje informacije o DMVD za treću CP u informacije o slici, i može da kodira informacije o slici da bi generisao protok bitova.
[0178] Na primer, kada je treća CP dodatno podeljena i vrednost medijane je izvedena, uređaj za kodiranje može da generiše protok bitova kodiranjem informacija o slici koje uključuju informacije o prvom MVD i informacije o DMVD za drugu CP, i može da ne uključi dodatne informacije o DMVD za treću CP u informacije o slici.
[0179] Protok bitova generisan i izdat od strane uređaja za kodiranje može biti prenet uređaju za dekodiranje putem mreže ili medijuma za čuvanje.
[0180] FIG.12 šematski ilustruje postupak inter-predikcije uređajem za dekodiranje prema ovom otkrivanju.
[0181] Postupak prikazan na FIG.12 može biti izveden uređajem za dekodiranje prikazanim na FIG.2. Na primer, faze S1200, S1210, S1230 i S1240 na slici 12 mogu biti izvedene prediktorom uređaja za dekodiranje, dok faza S1220 može biti izvedena entropijskim dekoderom uređaja za dekodiranje. Ovde, faza S1220 može biti izvedena pre faze S1200 i S1210.
[0182] Uređaj za dekodiranje izvodi kontrolne tačke (CP) za trenutni blok (S1200). Kada se na trenutni blok primeni afina predikcija pokreta, uređaj za dekodiranje može da izvede CP, a broj CP može biti dva ili tri u zavisnosti od načina ostvarivanja.
[0183] Na primer, kada postoje dve CP, CP mogu biti locirane na pozicijama gornje-levo i gornjedesno uzorka trenutnog bloka, tim redom, i ako su visina i širina trenutnog bloka H i W, tim redom, a koordinatna komponenta donje-leve pozicije uzorka je (0, 0), tada koordinatne komponente CP mogu biti (0, H) i (W, H), tim redom.
[0184] Na primer, kada postoje tri CP, CP mogu biti locirane na pozicijama gornje-levo, gornjedesno i donje-levo uzorka trenutnog bloka, tim redom, i ako su visina i širina trenutnog bloka H i W, tim redom, a koordinatna komponenta donje-leve pozicije uzorka je (0, 0), tada koordinatne komponente CP mogu biti (0, H), (W, H) i (0, 0), tim redom.
[0185] Uređaj za dekodiranje izvodi MVP za CP (S1210). Na primer, kada je broj izvedenih CP dve, uređaj za dekodiranje može da dobije dva vektora pokreta. Na primer, kada je broj izvedenih CP tri, uređaj za dekodiranje može da dobije tri vektora pokreta. MVP za CP može biti izveden na osnovu susednih blokova, a detaljan opis toga je prethodno dat uz pozivanje na FIG.
7 i 9.
[0186] Na primer, kada su prva CP i druga CP izvedene, uređaj za dekodiranje može da izvede prvi MVP za prvu CP i drugi MVP za drugu CP na osnovu susednih blokova trenutnog bloka, a kada je treća CP dodatno podeljena, uređaj za dekodiranje može dodatno da izvede treći MVP na osnovu susednih blokova trenutnog bloka.
[0187] Na primer, kada su izvedene prva CP, druga CP i treća CP, uređaj za dekodiranje može da izvede treći MVP za treću CP na osnovu prve MVP za prvu CP i drugog MVP za drugu CP, i da izvede treći MVP na osnovu vektora pokreta susednog bloka treće CP.
[0188] Uređaj za dekodiranje dekodira jednu MVD i najmanje jednu DMVD (S1220). Uređaj za dekodiranje može da dobije jednu MVD i najmanje jednu DMVD dekodiranjem jedne MVD i najmanje jedne DMVD na osnovu primljenog protoka bitova. Ovde, protok bitova može da sadrži indeks za prediktor vektora pokreta za CP. Protok bitova može biti primljen od uređaja za kodiranje putem mreže ili medijuma za čuvanje.
[0189] Na primer, kada postoje dve CP, uređaj za dekodiranje može da dekodira jednu MVD i jednu DMVD, a kada postoje tri CP, uređaj za dekodiranje može da dekodira jednu MVD i dve DMVD. Ovde, DMVD može da predstavlja razliku između dve MVD.
[0190] Na primer, kada su prva CP i druga CP izvedene, uređaj za dekodiranje može da dekodira prvi MVD za prvu CP i da dekodira DMVD za drugu CP. Ovde, DMVD za drugu CP može da predstavlja razliku između prve MVD i druge MVD za drugu CP.
[0191] Na primer, kada je treća CP dodatno izvedena, uređaj za dekodiranje može da dekodira prvi MVD za prvu CP i da dekodira DMVD za drugu CP i DMVD za treću CP. Ovde, DMVD za drugu CP može da predstavlja razliku između prve MVD i druge MVD za drugu CP, a DMVD za treću CP može da predstavlja razliku između prve MVD i treće MVD za treću CP.
[0192] Na primer, ako je treća CP dodatno izvedena i koristi se vrednost medijane, tada uređaj za dekodiranje može da dekodira prvi MVD za prvu CP i da dekodira DMVD za drugu CP. Ovde, DMVD za treću CP može da se ne dekodira.
[0193] Uređaj za dekodiranje izvodi vektore pokreta za CP na osnovu MVP za CP, jedne MVD i najmanje jedne DMVD (S1230). Vektori pokreta za CP mogu biti izvedeni na osnovu razlike vektora pokreta (MVD) i prediktora vektora pokreta (MVP), a razlika vektora pokreta može biti izvedena na osnovu razlike između razlika vektora pokreta (DMVD).
[0194] Na primer, kada postoje dve CP, uređaj za dekodiranje može da primi jednu MVD i jednu DMVD i, na osnovu njih, može da izvede dve MVD u skladu sa dve CP. Uređaj za dekodiranje može da primi indekse za dve CP zajedno i, na osnovu njih, može da izvede dve MVP. Uređaj za dekodiranje može da izvede vektore pokreta za dve CP pojedinačno, na osnovu dve MVD i dve MVP.
[0195] Na primer, kada su prva CP i druga CP izvedene, uređaj za dekodiranje može da izvede prvi MV na osnovu MVD i prvog MVP, drugi MVD za drugu CP na osnovu MVD i DMVD za drugu CP i drugi MV na osnovu druge MVD i drugog MVP.
[0196] Na primer, kada postoje tri CP, uređaj za dekodiranje može da primi jednu MVD i dve DMVD, i na osnovu njih, može da izvede tri MVD prema te tri CP. Uređaj za dekodiranje može da prima indekse za tri CP zajedno, i na osnovu njih, može da izvede tri MVP. Uređaj za dekodiranje može da izvede tim redom vektore pokreta za tri CP na osnovu tri MVD i tri MVP.
[0197] Na primer, ako je treća CP dodatno izvedena i treći MVP je izveden, uređaj za dekodiranje može da izvede treću MVD za treću CP na osnovu MVD i DMVD za treću CP i da izvede treći MV na osnovu treće MVD i trećeg MVP.
[0198] Na primer, ako je treća CP dodatno izvedena i vrednost medijane je ista kao prvi MVP, tada uređaj za dekodiranje može da izvede prvi MV na osnovu MVD i prvog MVP, drugu MVD za drugu CP na osnovu MVD i DMVD za drugu CP, i drugi MV na osnovu druge MVD i druge MVP.
[0199] Na primer, ako je treća CP dodatno izvedena i vrednost medijane je ista kao druga MVP, tada uređaj za dekodiranje može da izvede drugi MV na osnovu druge MVD i druge MVP, da izvede prvu MVD za prvu CP na osnovu druge MVD i DMVD za prvu CP, i da izvede prvi MV na osnovu prve MVD i prve MVP.
[0200] Na primer, ako je treća kontrolna tačka dodatno izvedena i medijana ima istu vrednost kao treći MVP, tada uređaj za dekodiranje može da izvede prvi vektor pokreta i drugi vektor pokreta u skladu sa bilo kojim od sledećih slučajeva: slučaj kada je medijana ista kao prvi MVP i slučaj kada je medijana ista kao drugi MVP. Određivanje bilo kog od ta dva slučaja može biti unapred definisano. Detaljan opis toga je prethodno opisan uz pozivanje na FIG.9.
[0201] Uređaj za dekodiranje generiše predikcioni blok za trenutni blok na osnovu vektora pokreta (S1240). Uređaj za dekodiranje može da izvede afini vektorski pokretni sloj (afino MVF) na osnovu vektora pokreta odgovarajućih CP, i na osnovu njih može da izvede vektor pokreta jedinice uzorka radi izvođenja inter predikcije.
[0202] U gore opisanim načinima ostvarivanja, postupci su objašnjeni na osnovu dijagrama toka pomoću niza faza ili blokova, ali ovo otkrivanje nije ograničeno redosledom faza, i određena faza može da se izvede po redosledu ili fazi koja se razlikuje od prethodno opisane, ili istovremeno sa drugom fazom. Dodatno, stručnjaku iz ove oblasti biće jasno da prikazane faze u dijagramu toka nisu isključive, i da se dodatna faza može uključiti ili da se jedna ili više faza iz dijagrama toka mogu ukloniti bez uticaja na opseg ovog otkrivanja.
[0203] Gore opisani postupci prema ovom otkrivanju mogu biti realizovani u obliku softvera, a uređaj za kodiranje i/ili uređaj za dekodiranje prema ovom otkrivanju može biti uključen u uređaj za obradu slike, kao što su televizor, računar, pametni telefon, set-top boks, uređaj za prikazivanje ili slično.
[0204] Kada se načini ostvarivanja u ovom otkrivanju realizuju softverski, gore opisani postupci mogu biti ostvareni kao moduli (procesi, funkcije ili slično) za izvršavanje prethodno opisanih funkcija. Moduli mogu biti sačuvani u memoriji i mogu ih izvršavati procesori. Memorija može biti unutar procesora ili izvan njega i može biti povezana sa procesorom na različite dobro poznate načine. Procesor može uključivati specijalizovani integrisani sklop (ASIC), drugi čipset, logički sklop i/ili uređaj za obradu podataka. Memorija može uključivati memoriju samo za čitanje (ROM), memoriju sa slučajnim pristupom (RAM), fleš memoriju, memorijsku karticu, medijum za čuvanje i/ili neki drugi uređaj za čuvanje.
Claims (2)
1. Uređaj za dekodiranje za dekodiranje slika, pri čemu taj uređaj za dekodiranje obuhvata: memoriju; i
najmanje jedan procesor povezan sa memorijom, pri čemu je taj najmanje jedan procesor konfigurisan tako da:
izvodi prvi prediktor vektora pokreta, MVP, za prvu kontrolnu tačku, CP, drugi MVP za drugu CP i treći MVP za treću CP trenutnog bloka na osnovu susednih blokova trenutnog bloka, pri čemu se prva CP nalazi na gornjoj levoj poziciji trenutnog bloka, druga CP se nalazi na gornjoj desnoj poziciji trenutnog bloka a treća CP se nalazi na donjoj levoj poziciji trenutnog bloka; dekodira informacije o razlici prvog vektora pokreta, MVD, za prvu CP kako bi se izvela prva MVD;
dekodira informacije o razlici dve MVD, DMVD, za drugu CP i informacije o DMVD za treću CP kako bi se izvela DMVD za drugu CP i DMVD za treću CP;
izvodi prvi vektor pokreta, MV, za prvu CP na osnovu prvog MVP i prve MVD;
izvodi drugi MV za drugu CP na osnovu drugog MVP i DMVD za drugu CP;
izvodi treći MV za treću CP na osnovu trećeg MVP i DMVD za treću CP; i
generiše predviđeni blok za trenutni blok na osnovu prvog MV, drugog MV i trećeg MV, pri čemu je najmanje jedan procesor dodatno konfigurisan tako da:
izvodi drugu MVD za drugu CP pomoću prve MVD i DMVD za drugu CP, pri čemu ta DMVD za drugu CP predstavlja razliku između prve MVD i druge MVD; i
izvodi drugi MV za drugu CP dodavanjem drugog MVP i druge MVD koja je izvedena na osnovu DMVD za drugu CP, i
pri čemu je najmanje jedan procesor dodatno konfigurisan tako da:
izvodi treću MVD za treću CP pomoću prve MVD i DMVD za treću CP, pri čemu DMVD za treću CP predstavlja razliku između prve MVD i treće MVD; i
izvodi treći MV za treću CP dodavanjem trećeg MVP i treće MVD koja je izvedena na osnovu DMVD za treću CP.
2. Uređaj za kodiranje za kodiranje slika, pri čemu taj uređaj za kodiranje obuhvata: memoriju; i
najmanje jedan procesor povezan sa memorijom, pri čemu je taj najmanje jedan procesor konfigurisan tako da:
izvodi prvi prediktor vektora pokreta, MVP, za prvu kontrolnu tačku, CP, drugi MVP za drugu CP i treći MVP za treću CP trenutnog bloka na osnovu susednih blokova trenutnog bloka, pri čemu se prva CP nalazi na gornjoj levoj poziciji trenutnog bloka, druga CP se nalazi na gornjoj desnoj poziciji trenutnog bloka a treća CP se nalazi na donjoj levoj poziciji trenutnog bloka; izvodi razliku prvog vektora pokreta, MVD, za prvu CP;
izvodi razliku dva MVD, DMVD, za drugu CP;
izvodi DMVD za treću CP; i
kodira informacije o slici uključujući informacije o prvoj MVD, informacije o DMVD za drugu CP i informacije o DMVD za treću CP radi izlaza protoka bitova,
pri čemu je najmanje jedan procesor dodatno konfigurisan tako da:
izvodi drugu MVD za drugu CP oduzimanjem drugog MVP za drugu CP od drugog vektora pokreta, MV, za drugu CP; i
izvodi DMVD za drugu CP pomoću razlike između druge MVD i prve MVD, i
pri čemu je najmanje jedan procesor dodatno konfigurisan tako da:
izvodi treću MVD za treću CP oduzimanjem trećeg MVP za treću CP od trećeg MV za treću CP; i
izvodi DMVD za treću CP pomoću razlike između treće MVD i prve MVD.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201862657013P | 2018-04-13 | 2018-04-13 | |
| EP24159675.8A EP4351146B1 (en) | 2018-04-13 | 2019-04-11 | Method and apparatus for inter prediction in video processing system |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| RS67030B1 true RS67030B1 (sr) | 2025-08-29 |
Family
ID=68163626
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| RS20250689A RS67030B1 (sr) | 2018-04-13 | 2019-04-11 | Postupak i uređaj za inter predikciju u sistemu za obradu video zapisa |
Country Status (12)
| Country | Link |
|---|---|
| US (4) | US11102478B2 (sr) |
| EP (3) | EP4351146B1 (sr) |
| KR (4) | KR102817113B1 (sr) |
| CN (4) | CN112136328B (sr) |
| ES (2) | ES3038069T3 (sr) |
| FI (1) | FI3780616T3 (sr) |
| HR (2) | HRP20250893T1 (sr) |
| HU (2) | HUE072377T2 (sr) |
| PL (2) | PL3780616T3 (sr) |
| RS (1) | RS67030B1 (sr) |
| SI (1) | SI3780616T1 (sr) |
| WO (1) | WO2019199067A1 (sr) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP7840263B2 (ja) * | 2019-12-24 | 2026-04-03 | インターディジタル・シーイー・パテント・ホールディングス・ソシエテ・パ・アクシオンス・シンプリフィエ | 空間予測子走査順序 |
Family Cites Families (23)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101318869B1 (ko) * | 2009-08-28 | 2013-10-16 | 에스케이텔레콤 주식회사 | 동영상 부호화를 위한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치 |
| KR101626688B1 (ko) * | 2010-04-13 | 2016-06-01 | 지이 비디오 컴프레션, 엘엘씨 | 샘플 영역 병합 |
| US10536701B2 (en) * | 2011-07-01 | 2020-01-14 | Qualcomm Incorporated | Video coding using adaptive motion vector resolution |
| US20140241434A1 (en) * | 2011-10-11 | 2014-08-28 | Mediatek Inc | Method and apparatus of motion and disparity vector derivation for 3d video coding and hevc |
| US10516894B2 (en) * | 2012-09-28 | 2019-12-24 | Sony Corporation | Image processing device and method |
| CN103297778B (zh) * | 2013-05-27 | 2017-04-19 | 华为技术有限公司 | 一种对图像进行编、解码的方法及设备 |
| CN104244002B (zh) * | 2013-06-14 | 2019-02-05 | 北京三星通信技术研究有限公司 | 一种视频编/解码中运动信息的获取方法及装置 |
| US10531116B2 (en) * | 2014-01-09 | 2020-01-07 | Qualcomm Incorporated | Adaptive motion vector resolution signaling for video coding |
| US20160337662A1 (en) * | 2015-05-11 | 2016-11-17 | Qualcomm Incorporated | Storage and signaling resolutions of motion vectors |
| CN109005407B (zh) * | 2015-05-15 | 2023-09-01 | 华为技术有限公司 | 视频图像编码和解码的方法、编码设备和解码设备 |
| CN107925758B (zh) * | 2015-08-04 | 2022-01-25 | Lg 电子株式会社 | 视频编译系统中的帧间预测方法和设备 |
| CN108965869B (zh) * | 2015-08-29 | 2023-09-12 | 华为技术有限公司 | 图像预测的方法及设备 |
| WO2017052000A1 (ko) * | 2015-09-24 | 2017-03-30 | 엘지전자 주식회사 | 영상 코딩 시스템에서 움직임 벡터 정제 기반 인터 예측 방법 및 장치 |
| US20190082192A1 (en) * | 2016-03-16 | 2019-03-14 | Mediatek Inc. | Method and apparatus of pattern-based motion vector derivation for video coding |
| KR102638991B1 (ko) * | 2016-03-24 | 2024-02-21 | 엘지전자 주식회사 | 비디오 코딩 시스템에서 인터 예측 방법 및 장치 |
| 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 |
| US12063387B2 (en) * | 2017-01-05 | 2024-08-13 | Hfi Innovation Inc. | Decoder-side motion vector restoration for video coding |
| US10856003B2 (en) * | 2017-10-03 | 2020-12-01 | Qualcomm Incorporated | Coding affine prediction motion information for video coding |
| US11877001B2 (en) * | 2017-10-10 | 2024-01-16 | Qualcomm Incorporated | Affine prediction in video coding |
| US20190116376A1 (en) * | 2017-10-12 | 2019-04-18 | Qualcomm Incorporated | Motion vector predictors using affine motion model in video coding |
| US10757417B2 (en) * | 2018-01-20 | 2020-08-25 | Qualcomm Incorporated | Affine motion compensation in video coding |
| CN112042191B (zh) * | 2019-01-01 | 2024-03-19 | Lg电子株式会社 | 以基于历史的运动矢量为基础预测处理视频信号的方法和设备 |
-
2019
- 2019-04-11 KR KR1020237041316A patent/KR102817113B1/ko active Active
- 2019-04-11 HR HRP20250893TT patent/HRP20250893T1/hr unknown
- 2019-04-11 HU HUE24159675A patent/HUE072377T2/hu unknown
- 2019-04-11 PL PL19784666.0T patent/PL3780616T3/pl unknown
- 2019-04-11 EP EP24159675.8A patent/EP4351146B1/en active Active
- 2019-04-11 WO PCT/KR2019/004334 patent/WO2019199067A1/ko not_active Ceased
- 2019-04-11 HR HRP20240462TT patent/HRP20240462T1/hr unknown
- 2019-04-11 EP EP25179251.1A patent/EP4604549A3/en active Pending
- 2019-04-11 HU HUE19784666A patent/HUE066616T2/hu unknown
- 2019-04-11 ES ES24159675T patent/ES3038069T3/es active Active
- 2019-04-11 SI SI201930730T patent/SI3780616T1/sl unknown
- 2019-04-11 FI FIEP19784666.0T patent/FI3780616T3/fi active
- 2019-04-11 CN CN201980032706.7A patent/CN112136328B/zh active Active
- 2019-04-11 RS RS20250689A patent/RS67030B1/sr unknown
- 2019-04-11 ES ES19784666T patent/ES2974947T3/es active Active
- 2019-04-11 KR KR1020207029365A patent/KR102513585B1/ko active Active
- 2019-04-11 EP EP19784666.0A patent/EP3780616B1/en active Active
- 2019-04-11 CN CN202411239708.2A patent/CN120343283A/zh active Pending
- 2019-04-11 CN CN202411238681.5A patent/CN120343281A/zh active Pending
- 2019-04-11 CN CN202411239398.4A patent/CN120343282A/zh active Pending
- 2019-04-11 PL PL24159675.8T patent/PL4351146T3/pl unknown
- 2019-04-11 KR KR1020257005929A patent/KR20250030014A/ko active Pending
- 2019-04-11 KR KR1020237009616A patent/KR102610110B1/ko active Active
-
2020
- 2020-10-13 US US17/069,486 patent/US11102478B2/en active Active
-
2021
- 2021-07-12 US US17/373,153 patent/US11601643B2/en active Active
-
2023
- 2023-02-01 US US18/104,477 patent/US12081738B2/en active Active
-
2024
- 2024-07-26 US US18/785,438 patent/US20240388696A1/en active Pending
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11516490B2 (en) | Method and device for inter predicting on basis of DMVR | |
| JP7592911B2 (ja) | 画像符号化システムにおいてアフィンmvp候補リストを使用するアフィン動き予測に基づいた画像デコード方法及び装置 | |
| KR102362840B1 (ko) | 영상 코딩 시스템에서 서브 블록 단위의 움직임 예측에 기반한 영상 디코딩 방법 및 장치 | |
| KR102490854B1 (ko) | 영상 코딩 시스템에서 어파인 움직임 예측에 기반한 영상 디코딩 방법 및 장치 | |
| CN114303375A (zh) | 使用双向预测的视频解码方法和用于该方法的装置 | |
| RS66891B1 (sr) | Postupak za dekodiranje slike i uređaj baziran na afinoj predikciji pokreta pomoću konstruisanog kandidata afine mvp u sistemu za kodiranje slika | |
| US20240388696A1 (en) | Method and apparatus for inter prediction in video processing system | |
| RU2800679C2 (ru) | Способ и устройство декодирования изображения на основе предсказания аффинного движения с использованием списка кандидатов аффинного mvp в системе кодирования изображения |