RS67060B1 - Kodiranje slike na osnovu transformacije - Google Patents
Kodiranje slike na osnovu transformacijeInfo
- Publication number
- RS67060B1 RS67060B1 RS20250756A RSP20250756A RS67060B1 RS 67060 B1 RS67060 B1 RS 67060B1 RS 20250756 A RS20250756 A RS 20250756A RS P20250756 A RSP20250756 A RS P20250756A RS 67060 B1 RS67060 B1 RS 67060B1
- Authority
- RS
- Serbia
- Prior art keywords
- block
- lfnst
- transformation
- transform
- equal
- 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/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
- H04N19/122—Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
-
- 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/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/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/18—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 a set of transform coefficients
-
- 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/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- 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)
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Description
Opis
POZADINA OVOG OTKRIVANJA
Oblast ovog otkrivanja
[0001] Ovo otkrivanje se odnosi na tehniku kodiranja slike, a posebno na uređaj za kodiranje slike na osnovu transformacije u sistemu za kodiranje slike.
Stanje tehnike
[0002] Danas se potražnja za slikama/video zapisima visoke rezolucije i visokog kvaliteta, kao što su 4K, 8K ili više, u ultra visokoj definiciji (UHD), povećava u različitim oblastima. Kako podaci slike/video zapisa postaju veće rezolucije i višeg kvaliteta, količina prenetih informacija, odnosno količina bitova, povećava se u poređenju sa konvencionalnim slikovnim podacima. Zbog toga, kada se slikovni podaci prenose putem medijuma kao što je konvencionalna žična/bežična širokopojasna linija ili se slikovni/video podaci čuvaju korišćenjem postojećeg medijuma za čuvanje, troškovi prenosa i troškovi čuvanja se povećavaju.
[0003] Pored toga, danas raste interesovanje i potražnja za imerzivnim medijima, kao što su virtuelna realnost (VR), veštačka realnost (AR) sadržaji ili hologrami, i slično, a povećava se i emitovanje slika/video zapisa koji imaju slikovne karakteristike različite od stvarnih slika, kao što su slike iz video-igara.
[0004] Shodno tome, postoji potreba za visoko efikasnom tehnikom kompresije slike/video zapisa radi efikasnog komprimovanja, prenosa ili čuvanja, i reprodukcije informacija o slikama/video zapisima visoke rezolucije i visokog kvaliteta, koji poseduju različite karakteristike kao što je prethodno opisano. Dokumenti "Algorithm description for Versatile Video Coding and Test Model 5 (VTM 5)", br. JVET-N1002, (20190611), strane 1 - 76, od JIANLE CHEN ET AL, i "Versatile Video Coding (Draft 5)", br. JVET-N1001, (20190702), strane 1 - 406, od BROSS B ET AL, su do danas podneti na 14. SASTANKU JVET MEETING; 20190319 - 20190327; u ŽENEVI.
KRATAK SADRŽAJ OVOG OTKRIVANJA
Tehnički ciljevi
[0005] Tehnički aspekt ovog otkrivanja jeste da obezbedi uređaj za povećanje efikasnosti kodiranja slike.
[0006] Drugi tehnički aspekt ovog otkrivanja jeste da obezbedi uređaj za povećanje efikasnosti u kodiranju indeksa transformacije.
[0007] Još jedan tehnički aspekt ovog otkrivanja jeste da obezbedi uređaj za kodiranje slike koji koristi MTS (višestruki izbor transformacija).
[0008] Još jedan tehnički aspekt ovog otkrivanja jeste da obezbedi uređaj za kodiranje slike koji primenjuje MTS na transformacioni blok podparticije.
Tehnička rešenja
[0009] Ovaj pronalazak definišu priloženi patentni zahtevi. U ovom opisu i crtežima, svi primeri i tehnički opisi uređaja, proizvoda i/ili postupaka koji nisu obuhvaćeni patentnim zahtevima treba da se smatraju pozadinskom tehnikom ili primerima korisnim za razumevanje ovog pronalaska.
EFEKTI OVOG OTKRIVANJA
[0010] Prema ovom otkrivanju, moguće je povećati ukupnu efikasnost kompresije slike/video zapisa.
[0011] Prema ovom otkrivanju, moguće je povećati efikasnost kodiranja indeksa transformacije.
[0012] Prema ovom otkrivanju, moguće je povećati ukupnu efikasnost kompresije slike/video zapisa.
[0013] Prema ovom otkrivanju, moguće je povećati efikasnost kodiranja indeksa transformacije.
[0014] Tehnički aspekt ovog otkrivanja može obezbediti uređaj za kodiranje slike koji koristi MTS.
[0015] Tehnički aspekt ovog otkrivanja može obezbediti uređaj za kodiranje slike koji primenjuje MTS na transformacioni blok podparticije.
[0016] Efekti koji se mogu ostvariti kroz konkretne primere iz ove specifikacije nisu ograničeni na gore navedene efekte. Na primer, mogu postojati različiti tehnički efekti koje stručnjak iz odgovarajuće oblasti može razumeti ili izvesti iz ove specifikacije. Shodno tome, konkretni efekti ove specifikacije nisu ograničeni samo na one eksplicitno opisane u njoj, već mogu uključivati i različite efekte koje je moguće razumeti ili izvesti iz tehničkih karakteristika specifikacije.
KRATAK OPIS CRTEŽA
[0017]
FIG.1 šematski ilustruje primer sistema za kodiranje video zapisa/slike na koji se ovo otkrivanje može primeniti.
FIG.2 predstavlja šematski dijagram koji ilustruje konfiguraciju uređaja za kodiranje videa/slike na koji se ovo otkrivanje može primeniti.
FIG.3 predstavlja šematski dijagram koji ilustruje konfiguraciju uređaja za dekodiranje videa/slike na koji se ovo otkrivanje može primeniti.
FIG.4 je dijagram strukture sistema za strimovanje sadržaja na koji se primenjuje ova specifikacija.
FIG.5 šematski ilustruje tehniku višestruke transformacije prema jednom načinu ostvarivanja ove specifikacije.
FIG.6 prikazuje primer unutrašnjih (intra) direkcionih režima sa 65 pravaca predikcije.
FIG.7 predstavlja dijagram koji ilustruje RST (rešenje na osnovu prostornih transformacija) prema jednom načinu ostvarivanja ove specifikacije.
FIG.8 predstavlja dijagram koji ilustruje sekvencu raspoređivanja izlaznih podataka primarne direktne transformacije u jednodimenzionalni vektor prema jednom primeru.
FIG.9 predstavlja dijagram koji ilustruje sekvencu raspoređivanja izlaznih podataka sekundarne direktne transformacije u dvodimenzionalni blok prema jednom primeru.
FIG.10 predstavlja dijagram koji ilustruje režime intra predikcije širokog ugla prema jednom načinu ostvarivanja ove specifikacije.
FIG.11 predstavlja dijagram koji ilustruje oblik bloka na koji se primenjuje LFNST.
FIG.12 predstavlja dijagram koji ilustruje raspored izlaznih podataka od primarne LFNST prema jednom primeru.
FIG.13 prikazuje da je broj izlaznih podataka za primarnu LFNST ograničen na najviše 16 prema jednom primeru.
FIG.14 predstavlja dijagram koji ilustruje postavljanje vrednosti na nulu u bloku na koji se primenjuje 4x4 LFNST prema jednom primeru.
FIG.15 predstavlja dijagram koji ilustruje postavljanje vrednosti na nulu u bloku na koji se primenjuje 8x8 LFNST prema jednom primeru.
FIG.16 predstavlja dijagram koji ilustruje postavljanje vrednosti na nulu u bloku na koji se primenjuje 8x8 LFNST prema drugom primeru.
FIG.17 ilustruje primer pod-blokova na koje je podeljen blok za kodiranje.
FIG.18 ilustruje drugi primer pod-blokova na koje je podeljen blok za kodiranje.
FIG.19 predstavlja dijagram koji ilustruje simetriju između Mx2 (Mx1) blokova i 2xM (1xM) blokova prema jednom primeru.
FIG.20 predstavlja dijagram koji ilustruje primer transponovanja 2xM bloka prema jednom primeru.
FIG.21 ilustruje redosled skeniranja za 8x2 ili 2x8 oblasti prema jednom primeru.
FIG.22 predstavlja dijagram koji prikazuje raspored 36 koeficijenata prema 16x36 LFNST jezgru prema jednom primeru.
FIG.23 predstavlja tok postupka koji ilustruje rad uređaja za dekodiranje videa prema jednom načinu ostvarivanja ove specifikacije.
FIG.24 predstavlja tok postupka koji ilustruje rad uređaja za kodiranje videa prema jednom načinu ostvarivanja ove specifikacije.
OPIS PRIMERA NAČINA OSTVARIVANJA
[0018] Iako ovo otkrivanje može biti podložno raznim izmenama i može obuhvatati različite primere ostvarivanja, konkretni primeri ostvarivanja prikazani su na crtežima radi ilustracije i sada će biti detaljno opisani. Međutim, nije predviđeno da se ovo otkrivanje ograniči na konkretne primere prikazane ovde. Terminologija korišćena u ovom opisu služi isključivo za opisivanje konkretnih primera ostvarivanja i nije predviđeno da ograničava tehničku suštinu ovog otkrivanja. Jednina može podrazumevati množinu, osim ako kontekst jasno ne ukazuje na suprotno. Pojmovi poput „uključuje“ i „ima“ upotrebljeni su u smislu da označe da određene karakteristike, brojevi, faze, operacije, elementi, komponente ili njihove kombinacije koji se pominju u nastavku teksta postoje, i samim tim ne bi trebalo da se tumače kao da isključuju, u pogledu postojanja ili dodavanja jednu ili više različitih karakteristika, brojeva, faza, operacija, elemenata, komponenti ili njihovih kombinacija unapred.
[0019] U međuvremenu, svaki element na crtežima prikazanim u ovom dokumentu ilustrovan je zasebno radi praktičnosti objašnjavanja karakterističnih funkcija koje se međusobno razlikuju, ali to ne znači da je svaki element realizovan kao poseban hardver ili softver. Na primer, bilo koji dva ili više ovih elemenata mogu biti objedinjeni u jednu komponentu, a bilo koji pojedinačan element može biti podeljen na više komponenti. Načini ostvarivanja u kojima su elementi objedinjeni i/ili podeljeni potpadaju pod obim prava iz ovog otkrivanja, sve dok ne odstupaju od suštine ovog otkrivanja.
[0020] U nastavku teksta, poželjni načini ostvarivanja ovog otkrivanja biće detaljnije objašnjeni uz upućivanje na priložene crteže. Takođe, isti referentni brojevi korišćeni su za iste elemente na crtežima, a ponavljanja opisa istih elemenata biće izostavljena.
[0021] Ovaj dokument se odnosi na kodiranje video zapisa/slike. Na primer, postupak ili primer prikazan u ovom dokumentu može se odnositi na VVC (Versatile Video Coding) standard (ITU-T Rec. H.266), standard za kodiranje videa sledeće generacije posle VVC, ili druge standarde za kodiranje videa/slike (npr. HEVC (High Efficiency Video Coding) standard (ITU-T Rec. H.265), EVC (Essential Video Coding) standard, AVS2 standard itd.).
[0022] U ovom dokumentu može biti obezbeđen niz načina ostvarivanja koji se odnose na kodiranje video zapisa/slike, i, osim ako nije drugačije navedeno, načini ostvarivanja mogu se međusobno kombinovati i izvoditi.
[0023] U ovom dokumentu, video može značiti skup niza slika kroz vreme. Generalno, slika označava jedinicu koja predstavlja sliku u određenom vremenskom trenutku, a isečak/pločica je jedinica koja čini deo slike. Isečak/pločica može da uključuje jednu ili više jedinica kodirajućeg stabla (CTU). Jedna slika može biti sastavljena od jednog ili više isečaka/pločica. Jedna slika može biti sastavljena od jedne ili više grupa pločica. Jedna grupa pločica može da uključuje jednu ili više pločica.
[0024] Piksel ili pel može značiti najmanju jedinicu koja čini jednu sliku. Takođe, uzorak se može koristiti kao izraz koji odgovara pikselu. Uzorak generalno može predstavljati piksel ili vrednost piksela, i može predstavljati samo piksel/vrednost piksela luma komponente ili samo piksel/vrednost piksela hroma komponente. Alternativno, uzorak se može odnositi na vrednost piksela u prostornom domenu, ili, kada se ta vrednost piksela konvertuje u frekvencijski domen, može se odnositi na koeficijent transformacije u frekvencijskom domenu.
[0025] Jedinica može da predstavlja osnovnu jedinicu obrade slike. Jedinica može da uključuje bar jedno od: određenu oblast i informacije koje se odnose na tu oblast. Jedna jedinica može da uključuje jedan luma blok i dva hroma bloka (npr. cb, cr). Pojam jedinica i pojmovi kao što su blok, oblast i slično mogu se koristiti naizmenično u zavisnosti od okolnosti. U opštem slučaju, M × N blok može da uključuje skup (ili niz) uzoraka (ili niz uzoraka) ili koeficijenata transformacije koji se sastoje od M kolona i N redova.
[0026] U ovom dokumentu, simboli „/“ i „,“ treba da se tumače kao „i/ili“. Na primer, izraz „A/B“ može značiti „A i/ili B.“ Dalje, „A, B“ može značiti „A i/ili B.“ Takođe, „A/B/C“ može značiti „najmanje jedno od A, B, i/ili C.“ Takođe, „A/B/C“ može značiti „najmanje jedno od A, B, i/ili C.“
[0027] Dalje, u ovom dokumentu, pojam "ili" treba tumačiti kao "i/ili." Na primer, izraz "A ili B" može da uključuje 1) samo A, 2) samo B, i/ili 3) i A i B. Drugim rečima, pojam "ili" u ovom dokumentu treba tumačiti kao "dodatno ili alternativno."
[0028] U ovom otkrivanju, „najmanje jedno od A i B“ može značiti „samo A“, „samo B“ ili „i A i B“. Pored toga, u ovom otkrivanju, izraz „najmanje jedno od A ili B“ ili „najmanje jedno od A i/ili B“ može se tumačiti kao „najmanje jedno od A i B“.
[0029] Pored toga, u ovom otkrivanju, „najmanje jedno od A, B i C“ može značiti „samo A“, „samo B“, „samo C“ ili „bilo koja kombinacija A, B i C“. Pored toga, „najmanje jedno od A, B ili C“ ili „najmanje jedno od A, B i/ili C“ može značiti „najmanje jedno od A, B
[0030] Pored toga, zagrada koja se koristi u ovom otkrivanju može da znači „na primer“.
Konkretno, kada je navedeno kao „predikcija (intra predikcija)“, to može da znači da je „intra predikcija“ predložena kao primer „predikcije“. Drugim rečima, „predikcija“ iz ovog otkrivanja nije ograničena na „intra predikciju“, a „intra predikcija“ može biti predložena kao primer „predikcije“. Pored toga, kada je navedeno kao „predikcija (tj., intra predikcija)“, to takođe može značiti da je „intra predikcija“ predložena kao primer „predikcije“.
[0031] Tehničke karakteristike koje su pojedinačno opisane na jednom crtežu u ovom otkrivanju mogu biti pojedinačno primenjene ili mogu biti istovremeno primenjene.
[0032] FIG.1 šematski ilustruje primer sistema za kodiranje video zapisa/slike na koji se ovo otkrivanje može primeniti.
[0033] Pozivajući se na FIG.1, sistem za kodiranje video zapisa/slike može da uključuje prvi uređaj (izvorni uređaj) i drugi uređaj (uređaj za prijem). Izvorni uređaj može da isporuči kodirane informacije ili podatke o video zapisu/slici u obliku fajla ili striminga uređaju za prijem preko digitalnog sredstva za čuvanje ili mreže.
[0034] Izvorni uređaj može da uključuje izvor video zapisa, uređaj za kodiranje i predajnik.
Uređaj za prijem može da uključuje prijemnik, uređaj za dekodiranje i prikazivač. Uređaj za kodiranje može se nazivati uređajem za kodiranje video zapisa/slike, a uređaj za dekodiranje može se nazivati uređajem za dekodiranje video zapisa/slike. Predajnik može biti uključen u uređaj za kodiranje. Prijemnik može biti uključen u uređaj za dekodiranje. Prikazivač može da uključuje displej, a displej može biti konfigurisan kao poseban uređaj ili kao spoljašnja komponenta.
[0035] Izvor video zapisa može da dobije video/sliku kroz postupak snimanja, sinteze ili generisanja video zapisa/slike. Izvor video zapisa može da uključuje uređaj za snimanje video zapisa/slike i/ili uređaj za generisanje video zapisa/slike. Uređaj za snimanje video zapisa/slike može da uključuje, na primer, jednu ili više kamera, arhive video zapisa/slika koje sadrže prethodno snimljene video zapise/slike, ili slično. Uređaj za generisanje video zapisa/slike može da uključuje, na primer, računar, tablet i pametni telefon, i može (elektronski) da generiše video zapis/sliku. Na primer, virtuelni video zapis/slika može biti generisana pomoću računara ili sličnog uređaja. U tom slučaju, postupak snimanja video zapisa/slike može biti zamenjen postupkom generisanja odgovarajućih podataka.
[0036] Uređaj za kodiranje može da kodira ulazni video zapis/sliku. Uređaj za kodiranje može da izvrši niz postupaka kao što su predikcija, transformacija i kvantizacija radi kompresije i efikasnosti kodiranja. Kodirani podaci (informacije o kodiranom video zapisu/slici) mogu biti izlaz u obliku protoka bitova.
[0037] Predajnik može da prenese informacije ili podatke o kodiranom video zapisu/slici koji su izlaz u obliku protoka bitova prijemniku uređaja za prijem putem digitalnog sredstva za čuvanje ili mreže u obliku fajla ili striminga. Digitalno sredstvo za čuvanje može da uključuje različita sredstva za čuvanje kao što su USB, SD, CD, DVD, Blu-ray, HDD, SSD i slično. Predajnik može da uključuje element za generisanje medijskog fajla kroz unapred definisani fajl format i može da uključuje element za prenos putem emiterske/komunikacione mreže. Prijemnik može da primi/izvuče protok bitova i prenese primljeni/izvučeni protok bitova uređaju za dekodiranje.
[0038] Uređaj za dekodiranje može da dekodira video zapis/sliku izvršavanjem niza postupaka kao što su dekvantizacija, inverzna transformacija, predikcija i slično, koji odgovaraju radu uređaja za kodiranje.
[0039] Prikazivač može da generiše dekodirani video zapis/sliku. Generisani video zapis/slika može biti prikazan putem displeja.
[0040] FIG.2 predstavlja dijagram šematski koji ilustruje konfiguraciju uređaja za kodiranje video zapisa/slike na koji se ovo otkrivanje može primeniti. U nastavku teksta, ono što se naziva uređajem za video kodiranje može da uključuje uređaj za kodiranje slike.
[0041] Uz pozivanje na FIG.2, uređaj 200 za kodiranje može da uključuje razdelnik 210 slike, prediktor 220, preostali procesor 230, entropijski koder 240, sabirač 250, filter 260 i memoriju 270. Prediktor 220 može da uključuje inter prediktor 221 i intra prediktor 222. Preostali procesor 230 može da uključuje transformator 232, kvantizator 233, dekvantizator 234 i inverzni transformator 235. Preostali procesor 230 može dodatno da uključuje oduzimač 231. Sabirač 250 može se nazvati rekonstruktorem ili generatorom rekonstruisanog bloka. Razdelnik 210 slike, prediktor 220, preostali procesor 230, entropijski koder 240, sabirač 250 i filter 260, koji su prethodno opisani, mogu biti sačinjeni od jedne ili više hardverskih komponenti (npr. koderski čipseti ili procesori) prema jednom načinu ostvarivanja. Pored toga, memorija 270 može da uključuje bafer dekodirane slike (DPB), i može biti sačinjena od digitalnog sredstva za čuvanje. Hardverska komponenta može dodatno da uključuje memoriju 270 kao internu/eksternu komponentu.
[0042] Razdelnik 210 slike može da particioniše ulaznu sliku (ili sliku ili kadar) unetu u uređaj 200 za kodiranje na jednu ili više jedinica za obradu. Kao jedan primer, jedinica za obradu može se nazivati jedinicom za kodiranje (CU). U tom slučaju, počevši od jedinice stabla kodiranja (CTU) ili najveće jedinice za kodiranje (LCU), kodirajuća jedinica može se rekurzivno particionisati prema strukturi kvadratnog stabla binarnog-stabla ternarnog-stabla (QTBTTT). Na primer, jedna kodirajuća jedinica može biti podeljena na više kodirajuća jedinica dublje dubine na osnovu kvadratnog stabla, binarnog stabla i/ili ternarnog stabla. U tom slučaju, na primer, najpre se može primeniti struktura kvadratnog stabla, a zatim struktura binarnog i/ili ternarnog stabla. Alternativno, najpre se može primeniti struktura binarnog stabla. Postupak kodiranja prema ovom otkrivanju može se izvesti na osnovu konačne jedinice za kodiranje koja se više ne particioniše. U tom slučaju, maksimalna kodirajuća jedinica može se neposredno koristiti kao konačna kodirajuća jedinica na osnovu efikasnosti kodiranja u skladu sa karakteristikama slike. Alternativno, kodirajuća jedinica može se rekurzivno particionisati u jedinice za kodiranje još dublje dubine, prema potrebi, tako da se kodirajuća jedinica optimalne veličine može koristiti kao konačna kodirajuća jedinica. Ovde, postupak kodiranja može da uključuje postupke kao što su predikcija, transformacija i rekonstrukcija, koji će biti opisani kasnije. Kao drugi primer, jedinica za obradu može dodatno da uključuje predikcionu jedinicu (PU) ili transformacionu jedinicu (TU). U tom slučaju, predikciona jedinica i transformaciona jedinica mogu biti izdvojene ili particionisane iz gore opisane konačne jedinice za kodiranje. Predikciona jedinica može biti jedinica za uzorak predikcije, a transformaciona jedinica može biti jedinica za izvođenje koeficijenta transformacije i/ili jedinica za izvođenje preostalog signala iz koeficijenta transformacije.
[0043] Jedinica i pojmovi kao što su blok, oblast ili slično mogu se koristiti naizmenično u zavisnosti od okolnosti. U opštem slučaju, M × N blok može predstavljati skup uzoraka ili koeficijenata transformacije koji se sastoje od M kolona i N redova. Uzorak može generalno predstavljati piksel ili vrednost piksela, i može predstavljati samo piksel/vrednost piksela luma komponente ili samo piksel/vrednost piksela hroma komponente. Uzorak se može koristiti kao izraz koji odgovara pikselu ili pelu jedne slike.
[0044] Oduzimač 231 oduzima predikcioni signal (prediktivni blok, niz uzoraka predikcije) koji izlazi iz prediktora 220 od ulaznog slikovnog signala (originalni blok, niz originalnih uzoraka) kako bi generisao preostali signal (preostali blok, niz preostalih uzoraka), i generisani preostali signal se prenosi u transformator 232. Prediktor 220 može da izvrši predikciju nad blokom koji je cilj obrade (u nastavku teksta naziva se „trenutni blok“) i može da generiše prediktivni blok koji sadrži uzorke predikcije za trenutni blok. Prediktor 220 može da odredi da li se na osnovu trenutnog bloka ili CU primenjuje intra predikcija ili inter predikcija. Kao što će biti razmatrano kasnije u opisu svakog režima predikcije, prediktor može da generiše različite informacije koje se odnose na predikciju, kao što su informacije o režimu predikcije, i da prenese generisane informacije entropijskom koderu 240. Informacije o predikciji mogu biti kodirane u entropijskom koderu 240 i izlazne u obliku protoka bitova.
[0045] Intra prediktor 222 može da predvidi trenutni blok pozivanjem na uzorke u trenutnoj slici. Pozvani uzorci mogu biti locirani u blizini trenutnog bloka ili udaljeni od njega, u zavisnosti od režima predikcije. U intra predikciji, režimi predikcije mogu da uključuju više nedirekcionih režima i više direkcionih režima. Nedirekcioni režimi mogu da uključuju, na primer, DC režim i planarni režim. Direkcioni režim može da uključuje, na primer, 33 direkciona režima predikcije ili 65 direkcionih režima predikcije, u zavisnosti od stepena detalja smera predikcije. Međutim, ovo je samo primer, i više ili manje direkcionih režima predikcije može biti korišćeno u zavisnosti od podešavanja. Intra prediktor 222 može da odredi režim predikcije koji se primenjuje na trenutni blok korišćenjem režima predikcije koji je primenjen na susedni blok.
[0046] Inter prediktor 221 može da izvede prediktivni blok za trenutni blok na osnovu referentnog bloka (niza referentnih uzoraka) određenog vektorom pokreta na referentnoj slici. U tom slučaju, kako bi se smanjila količina informacija o pokretu koje se prenose u inter režimu predikcije, informacije o pokretu mogu da se predviđaju na nivou bloka, podbloka ili uzorka, na osnovu korelacije informacija o pokretu između susednog bloka i trenutnog bloka. Informacije o pokretu mogu da uključuju vektor pokreta i indeks referentne slike. Informacije o pokretu mogu dodatno da uključuju informacije o smeru inter predikcije (L0 predikcija, L1 predikcija, Bi predikcija itd.). U slučaju inter predikcije, susedni blok može da uključuje prostorno susedni blok koji postoji u trenutnoj slici i vremenski susedni blok koji postoji u referentnoj slici. Referentna slika koja uključuje referentni blok i referentna slika koja uključuje vremenski susedni blok mogu da budu iste ili različite. Vremenski susedni blok može da se naziva kolocirani referentni blok, kolocirani CU i slično, a referentna slika koja uključuje vremenski susedni blok može da se naziva kolocirana slika. Na primer, inter prediktor 221 može da konfiguriše listu kandidata za informacije o pokretu na osnovu susednih blokova i da generiše informaciju koja ukazuje na to koji kandidat se koristi za izvođenje vektora pokreta i/ili indeksa referentne slike trenutnog bloka. Inter predikcija može da se izvršava na osnovu različitih režima predikcije. Na primer, u slučaju režima preskakanja i režima spajanja, inter prediktor 221 može da koristi informacije o pokretu susednog bloka kao informacije o pokretu trenutnog bloka. U režimu preskakanja, za razliku od režima spajanja, preostali signal se ne prenosi. U slučaju režima predikcije informacija o pokretu, vektor pokreta susednog bloka može da se koristi kao prediktor vektora pokreta, a vektor pokreta trenutnog bloka može da se označi signaliziranjem razlike vektora pokreta.
[0047] Prediktor 220 može da generiše predikcioni signal na osnovu različitih postupaka predikcije. Na primer, prediktor može da primeni intra predikciju ili inter predikciju za predikciju nad jednim blokom, i takođe može da primeni intra predikciju i inter predikciju istovremeno. Ovo se može nazvati kombinovana inter i intra predikcija. Dalje, prediktor može da se zasniva na režimu predikcije kopiranja bloka u okviru slike ili režimu palete kako bi izvršio predikciju nad blokom. Režim kopiranja bloka u okviru slike ili režim palete može da se koristi za kodiranje sadržaja slike ili videa iz igara ili sličnog. Iako režim kopiranja u okviru slike u osnovi vrši predikciju u okviru trenutnog bloka, može da se izvede slično kao inter predikcija jer izvodi referentni blok unutar trenutnog bloka. Dakle, režim kopiranja u okviru slike može da koristi barem jednu od tehnika inter predikcije opisanih u ovom otkrivanju.
[0048] Predikcioni signal generisan putem inter prediktora 221 i/ili intra prediktora 222 može da se koristi za generisanje rekonstruisanog signala ili za generisanje preostalog signala.
Transformator 232 može da generiše koeficijente transformacije primenom transformacione tehnike na preostali signal. Na primer, transformaciona tehnika može da uključuje bar jednu od sledećih: diskretna kosinusna transformacija, diskretna sinusna transformacija, Karhunen-Loève transformacija, transformacija zasnovana na grafikonu ili uslovno nelinearna transformacija. Ovde, transformacija zasnovana na grafikonu označava transformaciju dobijenu iz grafikona kada su informacije o odnosima između piksela predstavljene grafikonom. Uslovno nelinearna transformacija označava transformaciju dobijenu na osnovu predikcionog signala generisanog korišćenjem svih prethodno rekonstruisanih piksela. Pored toga, transformacioni proces može da se primenjuje na kvadratne blokove piksela iste veličine ili na blokove promenljive veličine, a ne kvadratne.
[0049] Kvantizator 233 može da kvantizuje koeficijente transformacije i prosledi ih entropijskom koderu 240, a entropijski koder 240 može da kodira kvantizovani signal (informacije o kvantizovanim koeficijentima transformacije) i da izlazno kodirani signal isporuči u obliku protoka bitova. Informacije o kvantizovanim koeficijentima transformacije mogu se nazivati preostalim informacijama. Kvantizator 233 može da prerasporedi kvantizovane koeficijente transformacije u obliku bloka u jednodimenzionalni vektor na osnovu redosleda skeniranja koeficijenata i da generiše informacije o kvantizovanim koeficijentima transformacije na osnovu kvantizovanih koeficijenata u obliku jednodimenzionalnog vektora. Entropijski koder 240 može da primeni različite postupke kodiranja kao što su, na primer, eksponencijalni Golomb, kodiranje promenljive dužine zasnovano na kontekstu (CAVLC), binarno aritmetičko kodiranje zasnovano na kontekstu (CABAC) i slično. Entropijski koder 240 može da kodira informacije potrebne za rekonstrukciju videa/slike osim kvantizovanih koeficijenata transformacije (npr. vrednosti sintaksnih elemenata), zajedno ili odvojeno. Kodirane informacije (npr. kodirane informacije o video zapisu/slici) mogu da se prenesu ili sačuvaju po jedinici sloja apstrakcije mreže (NAL) u obliku protoka bitova. Informacije o video zapisu/slici mogu dodatno da uključuju informacije o različitim skupovima parametara, kao što su skup adaptivnih parametara (APS), skup parametara slike (PPS), skup parametara sekvence (SPS), skup video parametara (VPS) i slično. Takođe, informacije o video zapisu/slici mogu dodatno da uključuju informacije o opštim ograničenjima. U ovom otkrivanju, informacije i/ili sintaksni elementi koji se prenose ili signaliziraju uređaju za dekodiranje iz uređaja za kodiranje mogu biti uključeni u informacije o video zapisu/slici.
Informacije o video zapisu/slici mogu biti kodirane kroz prethodno opisani postupak kodiranja i uključene u protok bitova. Protok bitova može da se prenese putem mreže ili sačuva na digitalnom medijumu za čuvanje. Ovde, mreža može da uključuje emisionu mrežu, komunikacionu mrežu i slično, a digitalni medijum za čuvanje može da uključuje različite medijume kao što su USB, SD, CD, DVD, Blu-ray, HDD, SSD i slično. Predajnik (nije prikazan) koji prenosi signal iz entropijskog kodera 240 i/ili memorija (nije prikazana) koja ga čuva može biti konfigurisana kao unutrašnji/spoljni element uređaja 200 za kodiranje, ili predajnik može biti deo entropijskog kodera 240.
[0050] Kvantizovani koeficijenti transformacije koji izlaze iz kvantizatora 233 mogu da se koriste za generisanje predikcionog signala. Na primer, primenom dekvantizacije i inverzne transformacije na kvantizovane koeficijente transformacije preko dekvantizatora 234 i inverznog transformatora 235, može da se rekonstruiše preostali signal (preostali blok ili preostali uzorci). Sabirač 155 dodaje rekonstruisani preostali signal na predikcioni signal koji dolazi iz inter prediktora 221 ili intra prediktora 222, tako da se može generisati rekonstruisani signal (rekonstruisana slika, rekonstruisani blok, niz rekonstruisanih uzoraka). Kada ne postoji preostali signal za blok koji je predmet obrade, kao u slučaju kada se primenjuje režim preskakanja, prediktivni blok može da se koristi kao rekonstruisani blok. Sabirač 250 može da se naziva rekonstruktorom ili generatorom rekonstruisanog bloka. Generisani rekonstruisani signal može da se koristi za intra predikciju sledećeg bloka koji je predmet obrade u trenutnom bloku, i, kao što će kasnije biti opisano, može da se koristi za inter predikciju sledeće slike putem filtriranja.
[0051] U međuvremenu, u postupku kodiranja slike i/ili postupku rekonstrukcije može da se primeni mapiranje luma komponente sa skaliranjem hroma komponente (LMCS).
[0052] Filter 260 može poboljšati subjektivni/objektivni kvalitet videa primenom filtriranja na rekonstruisani signal. Na primer, filter 260 može generisati izmenjenu rekonstruisanu sliku primenom različitih postupaka filtriranja na rekonstruisanu sliku i može čuvati izmenjenu rekonstruisanu sliku u memoriji 270, tačnije u DPB-u memorije 270. Različiti postupci filtriranja mogu da uključuju, na primer, deblokirajući filter, uzorak adaptivnog pomeraja, filter adaptivne petlje, bilateralni filter ili slične. Kao što će kasnije biti objašnjeno u opisu svakog postupka filtriranja, filter 260 može da generiše različite informacije u vezi s filtriranjem i da prenese generisane informacije entropijskom koderu 240. Informacije o filtriranju mogu biti kodirane u entropijskom koderu 240 i izlazno predstavljene u obliku protoka bitova.
[0053] Izmenjena rekonstruisana slika koja je preneta u memoriju 270 može se koristiti kao referentna slika u inter prediktoru 221. Na taj način, uređaj za kodiranje može da izbegne neslaganje u predikciji između uređaja za kodiranje 100 i uređaja za dekodiranje kada se primenjuje inter predikcija, kao i da poboljša efikasnost kodiranja.
[0054] DPB memorije 270 može da čuva izmenjenu rekonstruisanu sliku radi korišćenja kao referentne slike u inter prediktoru 221. Memorija 270 može da čuva informacije o pokretu bloka u trenutnoj slici, iz koje su informacije o pokretu izvedene (ili kodirane), i/ili informacije o pokretu blokova u već rekonstruisanoj slici. Sačuvane informacije o pokretu mogu se preneti inter prediktoru 221 da bi se koristile kao informacije o pokretu susednog bloka ili vremenski susednog bloka. Memorija 270 može takođe da čuva rekonstruisane uzorke rekonstruisanih blokova u trenutnoj slici i da ih prenese intra prediktoru 222.
[0055] FIG.3 predstavlja šematski dijagram koji ilustruje konfiguraciju uređaja za dekodiranje video zapisa/slike na koji se ovo otkrivanje može primeniti.
[0056] Uz pozivanje na sliku 3, video uređaj 300 za dekodiranje može da uključuje entropijski dekoder 310, procesor za preostali signal 320, prediktor 330, sabirač 340, filter 350 i memoriju 360. Prediktor 330 može da uključuje inter prediktor 331 i intra prediktor 332. Procesor za preostali signal 320 može da uključuje dekvantizator 321 i inverzni transformator 322.
Entropijski dekoder 310, procesor za preostali signal 320, prediktor 330, sabirač 340 i filter 350, koji su gore opisani, mogu biti realizovani pomoću jednog ili više hardverskih komponenata (npr. dekoderski čipsetovi ili procesori), prema jednom načinu ostvarivanja. Pored toga, memorija 360 može da uključuje bafer za dekodirane slike (DPB) i može biti realizovana kao medijum za čuvanje digitalnih podataka. Hardverska komponenta može dodatno da uključuje memoriju 360 kao internu ili eksternu komponentu.
[0057] Kada se unese protok bitova koji uključuje informacije o video zapisu/slici, uređaj 300 za dekodiranje može rekonstruisati sliku u skladu sa postupkom kojim su informacije o video zapisu/slici obrađene u uređaju za kodiranje sa FIG.2. Na primer, uređaj 300 za dekodiranje može da izvede jedinice/blokove na osnovu informacija o particionisanju bloka dobijenih iz protoka bitova. Uređaj 300 za dekodiranje može da izvrši dekodiranje korišćenjem jedinice za obradu koja je primenjena u uređaju za kodiranje. Dakle, jedinica za obradu pri dekodiranju može biti, na primer, kodirajuća jedinica, koja može biti particionisana po kvadratnoj strukturi, binarnoj strukturi i/ili ternarnoj strukturi, počev od jedinice stabla kodiranja ili najveće kodirajuće jedinice. Jedna ili više transformacionih jedinica mogu biti izvedene iz kodirajuće jedinice. Rekonstruisani signal slike, koji je dekodiran i izvezen putem uređaja 300 za dekodiranje, može se reprodukovati putem uređaja za reprodukciju.
[0058] Uređaj 300 za dekodiranje može da primi signal koji je izvezen iz uređaja za kodiranje sa FIG.2 u obliku protoka bitova, a primljeni signal može biti dekodiran putem entropijskog dekodera 310. Na primer, entropijski dekoder 310 može da parsira protok bitova kako bi izveo informacije (npr. informacije o video zapisu/slici) koje su potrebne za rekonstrukciju slike.
Informacije o video zapisu/slici mogu dodatno da uključuju informacije o različitim skupovima parametara, kao što su skup adaptivnih parametara (APS), skup parametara slike (PPS), skup parametara sekvence (SPS), skup video parametara (VPS) ili slično. Pored toga, informacije o video zapisu/slici mogu dalje uključivati opšte informacije o ograničenjima. Uređaj za dekodiranje može da dekodira sliku dodatno na osnovu informacija o skupu parametara i/ili opštim informacijama o ograničenjima. U ovom otkrivanju, signalizirane/primljene informacije i/ili sintaksni elementi, koji će biti opisani kasnije, mogu biti dekodirani putem postupka dekodiranja i dobijeni iz protoka bitova. Na primer, entropijski dekoder 310 može da dekodira informacije u protoku bitova na osnovu postupka kodiranja kao što su eksponencijalno Golombovo kodiranje, CAVLC, CABAC ili slično, i može da izvede vrednosti sintaksnih elemenata neophodnih za rekonstrukciju slike i kvantizovane vrednosti koeficijenata transformacije u vezi s preostalim signalom. Preciznije, CABAC postupak entropijskog dekodiranja može da primi bin koji odgovara svakom sintaksnom elementu u protoku bitova, da odredi kontekstualni model koristeći informacije o ciljanom sintaksnom elementu za dekodiranje i informacije o dekodiranju susednih i ciljnih blokova, ili informacije o simbolu/binu dekodiranom u prethodnoj fazi, da predvidi verovatnoću generisanja bina prema određenom kontekstualnom modelu i da izvrši aritmetičko dekodiranje bina kako bi generisala simbol koji odgovara vrednosti sintaksnog elementa. Ovaj CABAC postupak entropijskog dekodiranja može da ažurira kontekstualni model koristeći informacije o simbolu/binu koji je dekodiran, za kontekstualni model narednog simbola/bina nakon što je kontekstualni model određen. Informacije o predikciji među informacijama dekodiranim u entropijskom dekoderu 310 mogu biti prosleđene prediktoru (inter prediktoru 332 i intra prediktoru 331), dok kvantizovani koeficijenti transformacije, na koje je primenjeno entropijsko dekodiranje u entropijskom dekoderu 310, i povezane informacije o parametrima mogu biti prosleđeni procesoru za preostali signal 320. Procesor za preostali signal 320 može da izvede preostali signal (preostali blok, preostali uzorci, niz preostalih uzoraka). Dodatno, informacije o filtriranju među informacijama dekodiranim u entropijskom dekoderu 310 mogu biti prosleđene filteru 350. U međuvremenu, prijemnik (nije prikazan), koji prima signal izvezen iz uređaja za kodiranje, može dodatno činiti deo uređaja 300 za dekodiranje kao interna ili eksterna komponenta, i prijemnik može biti komponenta entropijskog dekodera 310. Takođe, uređaj za dekodiranje prema ovom otkrivanju može se nazivati uređajem za kodiranje videa/slike/slikovnog sadržaja, i uređaj za dekodiranje može biti klasifikovan na dekoder informacija (dekoder informacija o videu/slici) i dekoder uzoraka (dekoder uzoraka videa/slike). Dekoder informacija može da uključuje entropijski dekoder 310, a dekoder uzoraka može da uključuje najmanje jednu od sledećih komponenti: dekvantizator 321, inverzni transformator 322, sabirač 340, filter 350, memoriju 360, inter prediktor 332 i intra prediktor 331.
[0059] Dekvantizator 321 može da izvede koeficijente transformacije dekvantizacijom kvantizovanih koeficijenata transformacije. Dekvantizator 321 može da rasporedi kvantizovane koeficijente transformacije u obliku dvodimenzionalnog bloka. U tom slučaju, raspoređivanje se može izvršiti na osnovu redosleda skeniranja koeficijenata koji je primenjen u uređaju za kodiranje. Dekvantizator 321 može da izvrši dekvantizaciju kvantizovanih koeficijenata transformacije korišćenjem parametra kvantizacije (npr. informacije o veličini kvantizacione faze), i da dobije koeficijente transformacije.
[0060] Inverzni transformator 322 dobija preostali signal (preostali blok, niz preostalih uzoraka) inverznom transformacijom koeficijenata transformacije.
[0061] Prediktor može da izvrši predikciju nad trenutnim blokom i da generiše prediktivni blok koji sadrži uzorke predikcije za taj trenutni blok. Prediktor može da odredi da li se na trenutni blok primenjuje intra predikcija ili inter predikcija na osnovu informacija o predikciji iz entropijskog dekodera 310, i konkretnije može da odredi intra/inter režim predikcije.
[0062] Prediktor može da generiše predikcioni signal na osnovu različitih postupaka predikcije. Na primer, prediktor može da primeni intra predikciju ili inter predikciju za predikciju jednog bloka, a može i istovremeno da primeni i intra predikciju i inter predikciju. Ovo se može nazvati kombinovana inter i intra predikcija (CIIP). Pored toga, prediktor može da izvrši kopiranje unutar bloka (IBC) radi predikcije bloka. IBC se može koristiti za kodiranje slike/videa sa sadržajem kao što su igre, odnosno kodiranje ekranskog sadržaja (SCC). Iako IBC u osnovi vrši predikciju unutar trenutnog bloka, može se primeniti na sličan način kao inter predikcija jer izvodi referentni blok iz trenutnog bloka. Dakle, IBC može da koristi najmanje jedan od postupaka inter predikcije opisanih u ovom otkrivanju.
[0063] Intra prediktor 331 može da izvrši predikciju trenutnog bloka uz pozivanje na uzorke u trenutnoj slici. Pozvani uzorci mogu biti locirani u blizini trenutnog bloka ili udaljeni od njega, u zavisnosti od režima predikcije. U intra predikciji, režimi predikcije mogu da uključuju više neusmerenih režima i više usmerenih režima. Intra prediktor 331 može da odredi režim predikcije koji se primenjuje na trenutni blok korišćenjem režima predikcije primenjenog na susedni blok.
[0064] Inter prediktor 332 može da izvede prediktivni blok za trenutni blok na osnovu referentnog bloka (niza referentnih uzoraka) određenog vektorom pokreta na referentnoj slici. U ovom slučaju, kako bi se smanjila količina informacija o pokretu koje se prenose u inter režimu predikcije, informacije o pokretu mogu da se predviđaju na nivou bloka, podbloka ili uzorka, na osnovu korelacije informacija o pokretu između susednog bloka i trenutnog bloka. Informacije o pokretu mogu da uključuju vektor pokreta i indeks referentne slike. Pored toga, informacije o pokretu mogu da uključuju i informacije o pravcu inter predikcije (L0 predikcija, L1 predikcija, Bi predikcija itd.). U slučaju inter predikcije, susedni blok može da uključuje prostorni susedni blok koji postoji u trenutnoj slici i vremenski susedni blok koji postoji u referentnoj slici. Na primer, inter prediktor 332 može da konfiguriše listu kandidata za informacije o pokretu na osnovu susednih blokova i da izvede vektor pokreta i/ili indeks referentne slike za trenutni blok na osnovu primljenih informacija o izboru kandidata. Inter predikcija može da se izvrši na osnovu različitih režima predikcije, a informacije o predikciji mogu da uključuju podatke koji ukazuju na režim inter predikcije za trenutni blok.
[0065] Sabirač 340 može da generiše rekonstruisani signal (rekonstruisana slika, rekonstruisani blok, niz rekonstruisanih uzoraka) sabiranjem dobijenog preostalog signala sa predikcionim signalom (prediktivni blok, niz uzoraka predikcije) koji je izlaz iz prediktora 330. Kada ne postoji preostali signal za blok koji je cilj obrade, kao u slučaju kada je primenjen režim preskakanja, prediktivni blok može da se koristi kao rekonstruisani blok.
[0066] Sabirač 340 se može nazivati rekonstruktor ili generator rekonstruisanog bloka.
Generisani rekonstruisani signal može da se koristi za intra predikciju narednog bloka koji je cilj obrade u okviru trenutnog bloka, i kao što će kasnije biti opisano može biti prosleđen kroz filtriranje ili korišćen za inter predikciju naredne slike.
[0067] U postupku dekodiranja slike može se primeniti luma mapiranje sa hroma skaliranjem (LMCS).
[0068] Filter 350 može da poboljša subjektivni/objektivni kvalitet videa primenom filtriranja na rekonstruisani signal. Na primer, filter 350 može da generiše modifikovanu rekonstruisanu sliku primenom različitih postupaka filtriranja na rekonstruisanu sliku i da prosledi modifikovanu rekonstruisanu sliku u memoriju 360, tačnije u DPB memorije 360. Različiti postupci filtriranja mogu da uključuju, na primer, deblokirajući filter, adaptivni pomeraj uzorka, filter adaptivne petlje, bilateralni filter, i slično.
[0069] (Modifikovana) rekonstruisana slika koja je sačuvana u DPB memorije 360 može da se koristi kao referentna slika u okviru inter prediktora 332. Memorija 360 može da čuva informacije o pokretu bloka u trenutnoj slici, iz koje su informacije o pokretu izvedene (ili dekodirane), i/ili informacije o pokretu blokova u već rekonstruisanoj slici. Sačuvane informacije o pokretu mogu se proslediti inter prediktoru 260 da bi bile korišćene kao informacije o pokretu susednog bloka ili vremenski susednog bloka. Memorija 360 može da čuva rekonstruisane uzorke rekonstruisanih blokova u trenutnoj slici i da ih prosledi intra prediktoru 331.
[0070] U ovoj specifikaciji, primeri opisani za prediktor 330, dekvantizator 321, inverzni transformator 322 i filter 350 uređaja 300 za dekodiranje mogu da se primene na sličan ili odgovarajući način na prediktor 220, dekvantizator 234, inverzni transformator 235 i filter 260 uređaja 200 za kodiranje.
[0071] Kao što je gore opisano, predikcija se vrši radi povećanja efikasnosti kompresije prilikom obrade kodiranja videa. Na taj način može da se generiše prediktivni blok koji uključuje uzorke predikcije za trenutni blok, koji je cilj kodiranja. Ovde prediktivni blok uključuje uzorke predikcije u prostornom domenu (ili piksel domenu). Prediktivni blok može da se identično izvede u uređaju za kodiranje i uređaju za dekodiranje, a uređaj za kodiranje može da poveća efikasnost kodiranja slike tako što umesto originalne vrednosti uzorka originalnog bloka šalje uređaju za dekodiranje informaciju o razlici (informaciju o preostalom signalu) između originalnog bloka i prediktivnog bloka. Uređaj za dekodiranje može da izvede preostali blok koji uključuje preostale uzorke na osnovu informacije o preostalom signalu, da generiše rekonstruisani blok koji uključuje rekonstruisane uzorke sabiranjem preostalog bloka i prediktivnog bloka, i da generiše rekonstruisanu sliku koja uključuje rekonstruisane blokove.
[0072] Informacije o preostalom signalu mogu da se generišu putem postupaka transformacije i kvantizacije. Na primer, uređaj za kodiranje može da izvede preostali blok između originalnog bloka i prediktivnog bloka, da izvede koeficijente transformacije izvođenjem postupka transformacije nad preostalim uzorcima (niz preostalih uzoraka) koji su uključeni u preostali blok, i da izvede kvantizovane koeficijente transformacije izvođenjem postupka kvantizacije nad koeficijentima transformacije, kako bi signalizirao odgovarajuće informacije o preostalom signalu uređaju za dekodiranje (putem protoka bitova). Ovde informacije o preostalom signalu mogu da uključuju informacije o vrednosti, informacije o poziciji, tehniku transformacije, transformacioni jezgro, parametar kvantizacije ili slično u vezi sa kvantizovanim koeficijentima transformacije. Uređaj za dekodiranje može da izvede postupke kvantizacije/dekvantizacije i da izvede preostale uzorke (ili blok preostalih uzoraka) na osnovu informacija o preostalom signalu. Uređaj za dekodiranje može da generiše rekonstruisani blok na osnovu prediktivnog bloka i preostalog bloka. Uređaj za kodiranje može da izvede preostali blok dekvantizacijom i inverznom transformacijom kvantizovanih koeficijenata transformacije radi reference za inter predikciju naredne slike i može da generiše rekonstruisanu sliku na osnovu toga.
[0073] FIG.4 ilustruje strukturu sistema za strimovanje sadržaja na koji se ovo otkrivanje primenjuje.
[0074] Dalje, sistem za strimovanje sadržaja na koji se ovo otkrivanje primenjuje može da obuhvata u osnovi: server za kodiranje, server za strimovanje, veb server, medijsku memoriju, korisničku opremu, i uređaj za unos multimedije.
[0075] Server za kodiranje ima funkciju da kompresuje u digitalne podatke sadržaj unet sa uređaja za unos multimedije, kao što su pametni telefon, kamera, kamkorder i slično, kako bi generisao protok bitova, i da ga prenese serveru za strimovanje. Kao drugi primer, u slučaju kada uređaj za unos multimedije, kao što su pametni telefon, kamera, kamkorder ili slično, direktno generiše protok bitova, server za kodiranje može da bude izostavljen. Protok bitova može da se generiše pomoću postupka kodiranja ili postupka generisanja protoka bitova na koji se ovo otkrivanje primenjuje. Server za strimovanje može privremeno da sačuva protok bitova tokom prenosa ili prijema protoka bitova.
[0076] Server za strimovanje prenosi multimedijalne podatke korisničkoj opremi na osnovu korisničkog zahteva putem veb servera, koji funkcioniše kao instrument koji obaveštava korisnika o tome koja usluga je dostupna. Kada korisnik zatraži uslugu koju želi, veb server prosleđuje zahtev serveru za strimovanje, a server za strimovanje prenosi multimedijalne podatke korisniku. U tom pogledu, sistem za strimovanje sadržaja može da uključuje poseban server za kontrolu, a u tom slučaju server za kontrolu ima funkciju upravljanja komandama/odgovorima između različitih komponenti u sistemu za strimovanje sadržaja.
[0077] Server za strimovanje može da prima sadržaje iz medijuma za čuvanje i/ili servera za kodiranje. Na primer, u slučaju kada se sadržaji primaju sa servera za kodiranje, sadržaji mogu biti primani u realnom vremenu. U tom slučaju, server za strimovanje može da čuva protok bitova tokom unapred određenog vremenskog perioda kako bi se usluga strimovanja pružala nesmetano.
[0078] Na primer, korisnička oprema može da uključuje mobilni telefon, pametni telefon, laptop računar, terminal za digitalno emitovanje, lični digitalni asistent (PDA), prenosivi multimedijalni plejer (PMP), navigacioni uređaj, „slate“ PC, tablet računar, ultrabuk, nosivi uređaj (npr. terminal u obliku sata (pametni sat), terminal u obliku naočara (pametne naočare), ekran montiran na glavu (HMD)), digitalni TV, stoni računar, digitalna oglasna tabla ili slično. Svaki od servera u sistemu za strimovanje sadržaja može da funkcioniše kao distribuirani server, a u tom slučaju podaci primljeni od strane svakog servera mogu biti obrađivani na distribuirani način.
[0079] FIG.5 šematski ilustruje višestruki transformacioni postupak prema jednom načinu ostvarivanja ovog otkrivanja.
[0080] Uz pozivanje na FIG.5, transformator može da odgovara transformatoru u uređaju za kodiranje sa prethodne FIG.2, a inverzni transformator može da odgovara inverznom transformatoru u uređaju za kodiranje sa prethodne FIG.2, ili inverznom transformatoru u uređaju za dekodiranje sa FIG.3.
[0081] Transformator može da izvede (primarne) koeficijente transformacije izvođenjem primarnog transformacionog postupka na osnovu preostalih uzoraka (niza preostalih uzoraka) u preostalom bloku (S510). Ovaj primarni transformacioni postupak može se nazvati osnovnom transformacijom. Ovde primarna transformacija može biti zasnovana na izboru višestrukih transformacija (MTS), i kada se višestruka transformacija primeni kao primarna transformacija, može se nazvati višestrukom osnovnom transformacijom.
[0082] Višestruka osnovna transformacija može da predstavlja postupak transformacije dodatnom upotrebom diskretne kosinusne transformacije (DCT) tipa 2 i diskretne sinusne transformacije (DST) tipa 7, DCT tipa 8 i/ili DST tipa 1. Drugim rečima, višestruka osnovna transformacija može da predstavlja postupak transformacije preostalog signala (ili preostalog bloka) iz prostornog domena u koeficijente transformacije (ili primarne koeficijente transformacije) u frekvencijskom domenu, na osnovu više jezgara transformacije izabranih između DCT tipa 2, DST tipa 7, DCT tipa 8 i DST tipa 1. Ovde se primarni koeficijenti transformacije mogu nazivati privremenim koeficijentima transformacije iz ugla transformatora.
[0083] Drugim rečima, kada se primeni konvencionalni transformacioni postupak, koeficijenti transformacije mogu biti generisani primenom transformacije iz prostornog domena u frekvencijski domen na preostali signal (ili preostali blok) na osnovu DCT tipa 2. Za razliku od toga, kada se primeni višestruka osnovna transformacija, koeficijenti transformacije (ili primarni koeficijenti transformacije) mogu biti generisani primenom transformacije iz prostornog domena u frekvencijski domen na preostali signal (ili preostali blok) na osnovu DCT tipa 2, DST tipa 7, DCT tipa 8 i/ili DST tipa 1. Ovde se DCT tip 2, DST tip 7, DCT tip 8 i DST tip 1 mogu nazivati tip transformacije, jezgro transformacije ili osnov transformacije. Ove DCT/DST transformacije mogu biti definisane na osnovu baznih funkcija.
[0084] Kada se izvrši višestruka osnovna transformacija, vertikalno jezgro transformacije i horizontalno jezgro transformacije za ciljni blok mogu se izabrati iz skupa jezgara transformacije, pri čemu se vertikalna transformacija može izvršiti na ciljnom bloku na osnovu vertikalnog jezgra, a horizontalna transformacija na osnovu horizontalnog jezgra. Ovde horizontalna transformacija označava transformaciju horizontalnih komponenti ciljnog bloka, a vertikalna transformacija označava transformaciju vertikalnih komponenti ciljnog bloka.
Vertikalno/horizontalno jezgro transformacije može biti adaptivno određeno na osnovu režima predikcije i/ili indeksa transformacije za ciljni blok (CU ili podblok) koji uključuje preostali blok.
[0085] Dalje, prema jednom primeru, ako se primarni transformacioni postupak izvršava primenom MTS, odnos mapiranja za jezgra transformacije može biti podešen tako što se specifične bazne funkcije postave na unapred određene vrednosti i kombinuju bazne funkcije koje će se primeniti u vertikalnoj i horizontalnoj transformaciji. Na primer, kada se horizontalno jezgro transformacije izražava kao trTypeHor, a vertikalno jezgro transformacije kao trTypeVer, vrednost trTypeHor ili trTypeVer jednaka 0 može označavati DCT2, vrednost 1 može označavati DST7, a vrednost 2 može označavati DCT8.
[0086] U tom slučaju, informacija o MTS indeksu može biti kodirana i signalizirana uređaju za dekodiranje da bi se naznačilo jedno od više jezgara transformacije. Na primer, MTS indeks 0 može označavati da su i trTypeHor i trTypeVer jednaki 0, indeks 1 da su oba jednaka 1, indeks 2 da je trTypeHor jednak 2 a trTypeVer jednak 1, indeks 3 da je trTypeHor jednak 1 a trTypeVer jednak 2, a indeks 4 da su oba jednaka 2.
[0087] U jednom primeru, skupovi jezgara transformacije u skladu sa informacijama o MTS indeksu prikazani su u sledećoj tabeli.
[Tabela 1]
tu_mts_ids[ x0 ][ y0 ] 0 1 2 3 4
trTypeHor 0 1 2 1 2
trTypeVer 0 1 1 2 2
[0088] Transformator može da izvrši sekundarni transformacioni postupak na osnovu (primarnih) koeficijenata transformacije kako bi izveo modifikovane (sekundarne) koeficijente transformacije (S520). Primarni transformacioni postupak predstavlja transformaciju iz prostorne oblasti u frekvencijsku oblast, dok se sekundarni transformacioni postupak odnosi na transformaciju u kompaktniji izraz korišćenjem korelacije koja postoji između (primarnih) koeficijenata transformacije. Sekundarni transformacioni postupak može da uključuje neodvojivi postupak transformacije. U tom slučaju, sekundarni transformacioni postupak može se nazivati neodvojivi sekundarni transformacioni postupak (NSST) ili od režima zavisan neodvojivi sekundarni transformacioni postupak (MDNSST). NSST može da predstavlja transformacioni postupak kojim se sekundarno transformišu (primarni) koeficijenti transformacije dobijeni primarnim transformacionim postupkom na osnovu neodvojive transformacione matrice kako bi se generisali modifikovani koeficijenti transformacije (ili sekundarni koeficijenti transformacije) za preostali signal. Ovde se transformacija primenjuje odjednom, bez razdvajanja (ili nezavisnog primenjivanja horizontalne/vertikalne transformacije) vertikalnog i horizontalnog postupka na (primarne) koeficijente transformacije, na osnovu neodvojive transformacione matrice. Drugim rečima, NSST se ne primenjuje odvojeno na (primarne) koeficijente transformacije u vertikalnom i horizontalnom pravcu, već može da predstavlja, na primer, transformacioni postupak kojim se dvodimenzionalni signali (koeficijenti transformacije) reorganizuju u jednodimenzionalni signal kroz određeni unapred definisani pravac (npr. pravac redova ili pravac kolona), a zatim se modifikovani koeficijenti transformacije (ili sekundarni koeficijenti transformacije) generišu na osnovu neodvojive transformacione matrice. Na primer, raspored po redovima podrazumeva postavljanje u liniju redom: prvi red, drugi red,..., N-ti red za M×N blokove, dok raspored po kolonama podrazumeva postavljanje u liniju redom: prva kolona, druga kolona,..., M-ta kolona za M×N blokove. NSST može biti primenjen na gornju levu oblast bloka (u nastavku teksta, označen kao blok koeficijenata transformacije) koji je formiran od (primarnih) koeficijenata transformacije. Na primer, kada su i širina W i visina H bloka koeficijenata transformacije 8 ili više, može se primeniti NSST dimenzija 8×8 na gornju levu oblast veličine 8×8 tog bloka. Dalje, kada su i širina (W) i visina (H) bloka koeficijenata transformacije 4 ili više, a širina (W) ili visina (H) manja od 8, može se primeniti NSST dimenzija 4×4 na gornju levu oblast dimenzija min(8,W)×min(8,H). Međutim, način ostvarivanja nije ograničen na navedeno, i na primer, čak i ako je ispunjen samo uslov da su širina W ili visina H bloka koeficijenata transformacije 4 ili više, može se primeniti NSST dimenzija 4×4 na gornju levu oblast krajnjih dimenzija min(8,W)×min(8,H) bloka koeficijenata transformacije.
[0089] U konkretnom primeru, kada se koristi ulazni blok dimenzija 4×4, neodvojivi sekundarni transformacioni postupak može se izvesti na sledeći način.
[0090] 4×4 ulazni blok X može biti predstavljen na sledeći način.
[0091] Ako je X predstavljeno u obliku vektora, taj vektor X može biti predstavljen na sledeći način.
[0092] U jednačini 2, vektor X predstavlja jednodimenzionalni vektor dobijen preraspodelom dvodimenzionalnog bloka X iz jednačine 1 u skladu sa redosledom prvog reda.
[0093] U ovom slučaju, sekundardna neodvojiva transformacija može biti izračunata na sledeći način.
[0094] U ovoj jednačini, F predstavlja vektor koeficijenata transformacije, a T predstavlja 16×16 (neodvojivu) transformacionu matricu.
[0095] Kroz prethodno prikazanu Jednačinu 3, može se izvesti 16×1 vektor koeficijenata transformacije F, a taj F se zatim može reorganizovati u 4×4 blok prema određenom redosledu skeniranja (horizontalnom, vertikalnom, dijagonalnom i slično). Međutim, gore opisan proračun je samo primer, i transformacija hiper-kocke-Givens (HyGT) ili sličan postupak može se koristiti za računanje neodvojive sekundarne transformacije u cilju smanjenja računarske složenosti neodvojive sekundarne transformacije.
[0096] U vezi sa neodvojivom sekundarnom transformacijom, transformaciono jezgro (ili jezgro transformacije, tip transformacije) može se izabrati tako da zavisi od režima. U tom slučaju, režim može da uključuje režim intra predikcije i/ili režim inter predikcije.
[0097] Kao što je prethodno opisano, neodvojiva sekundarna transformacija može se izvršiti na osnovu 8×8 transformacije ili 4×4 transformacije, određene na osnovu širine (W) i visine (H) bloka koeficijenata transformacije. 8×8 transformacija odnosi se na transformaciju koja se primenjuje na 8×8 oblast unutar bloka koeficijenata transformacije kada su i W i H veći ili jednaki 8, pri čemu ta 8×8 oblast može biti gornja leva 8×8 oblast bloka. Slično, 4×4 transformacija odnosi se na transformaciju koja se primenjuje na 4×4 oblast unutar bloka kada su i W i H veći ili jednaki 4, a 4×4 oblast može biti gornja leva 4×4 oblast u bloku koeficijenata transformacije. Na primer, matrica 8×8 transformacionog jezgra može biti 64×64 ili 16×64 matrica, dok matrica 4×4 transformacionog jezgra može biti 16×16 ili 8×16 matrica.
[0098] Ovde, radi izbora transformacionog jezgra koje zavisi od režima, mogu se konfigurisati po dva jezgra neodvojive sekundarne transformacije po skupu transformacije za i 8×8 i 4×4 transformaciju, pri čemu može postojati ukupno četiri skupa transformacije. Drugim rečima, četiri skupa transformacije mogu biti konfigurisana za 8×8 transformaciju, i četiri skupa za 4×4 transformaciju. U tom slučaju, svaki od četiri skupa za 8×8 transformaciju može da uključuje dva jezgra 8×8 transformacije, a svaki od četiri skupa za 4×4 transformaciju može da uključuje dva jezgra 4×4 transformacije.
[0099] Međutim, kako veličina transformacije, odnosno veličina oblasti na koji se transformacija primenjuje, može biti, na primer, veličina drugačija od 8×8 ili 4×4, broj skupova može biti n, a broj jezgara po skupu može biti k.
[0100] Skup transformacija može se nazivati NSST skupom ili LFNST skupom. Konkretan skup među dostupnim transformacionim skupovima može se izabrati, na primer, na osnovu režima intra predikcije tekućeg bloka (CU ili podbloka). Niskofrekventna neodvojiva transformacija (LFNST) može predstavljati primer pojednostavljene neodvojive transformacije i odnosi se na transformaciju za niskofrekventnu komponentu.
[0101] Radi informacije, na primer, režim intra predikcije može da uključuje dva nedirekciona (ili neugaona) režima intra predikcije i 65 direkcionih (ugaonih) režima intra predikcije. Nedirekcioni režimi intra predikcije mogu da uključuju planarni režim pod brojem 0 i DC režim pod brojem 1, dok direkcioni režimi mogu da uključuju 65 režima sa brojevima od 2 do 66. Ipak, ovo je samo primer i ova specifikacija može se primeniti i kada broj režima intra predikcije varira. U nekim slučajevima, dodatno se može koristiti i režim intra predikcije broj 67, koji može predstavljati linearni model (LM) režim.
[0102] FIG.6 primera radi prikazuje intra direkcione režime 65 direkcija predikcije.
[0103] Uz pozivanje na FIG.6, na osnovu režima intra predikcije 34, koji ima smer predikcije nagore ulevo dijagonalno, režimi intra predikcije mogu se podeliti na režime sa horizontalnom usmerenosti i režime sa vertikalnom usmerenosti. NA FIG.6, H i V označavaju horizontalnu, odnosno vertikalnu usmerenost, a brojevi od -32 do 32 označavaju pomeraje u jedinicama od 1/32 na mreži uzoraka. Ovi brojevi mogu predstavljati ofset vrednost za indeks režima.
Režimi intra predikcije od 2 do 33 imaju horizontalnu usmerenost, dok režimi od 34 do 66 imaju vertikalnu usmerenost. Strogo govoreći, režim intra predikcije 34 se može smatrati ni horizontalnim ni vertikalnim, ali se svrstava u kategoriju sa horizontalnom usmerenosti prilikom određivanja transformacionog skupa za sekundarnu transformaciju. Razlog za to je što se ulazni podaci transponuju da bi se koristili u režimu sa vertikalnom orijentacijom koji je simetričan u odnosu na režim intra predikcije 34, i pri tom se koristi način poravnanja ulaznih podataka koji se primenjuje za horizontalne režime. Transponovanje ulaznih podataka znači da se redovi i kolone dvodimenzionalnih M×N blokova podataka zamene, čime se dobija N×M matrica. Režim intra predikcije 18 i režim intra predikcije 50 mogu predstavljati horizontalni, odnosno vertikalni režim intra predikcije, redom. Pored toga, režim intra predikcije 2 se može nazvati režimom predikcije nadesno nagore dijagonalno, jer koristi leve referentne piksele i vrši predikciju u smeru nagore nadesno. Slično tome, režim intra predikcije 34 može se nazvati režimom predikcije nadesno nadole dijagonalno, a režim intra predikcije 66 može se nazvati režimom predikcije nalevo nadole dijagonalno.
[0104] Prema jednom primeru, četiri transformaciona skupa prema režimu intra predikcije mogu biti mapirana, na primer, kao što je prikazano u sledećoj tabeli.
[Tabela 2]
lfnstPredModeIntra lfnstTrSetIdx
lfnstPredModeIntra < 0 1
0 <= 1fnstPredModeIntra <= 1 0
2 <= lfnstPredModeIntra <= 12 1
13 <= 1fnstPredModeIntra <= 23 2
24 <= lfnstPredModeIntra <= 44 3
45 <= lfnstPredModeIntra <= 55 2
56 <= lfnstPredModeIntra <= 80 1
81 <= 1fnstPredModeIntra <= 83 0
[0105] Kao što je prikazano u tabeli 2, bilo koji od četiri transformaciona skupa, tj. lfnstTrSetIdx, može biti mapiran na bilo koji od četiri indeksa, tj. od 0 do 3, u zavisnosti od režima intra predikcije.
[0106] Kada se utvrdi da se određeni skup koristi za neodvojivu transformaciju, jedno od k transformacionih jezgara u tom skupu može se izabrati pomoću indeksa neodvojive sekundarne transformacije. Uređaj za kodiranje može da izvede indeks neodvojive sekundarne transformacije koji označava konkretno transformaciono jezgro na osnovu provere kompromisa između izobličenja brzine (RD) i može signalizirati taj indeks uređaju za dekodiranje. Uređaj za dekodiranje može izabrati jedno od k transformacionih jezgara u konkretnom skupu na osnovu indeksa neodvojive sekundarne transformacije. Na primer, lfnst indeks sa vrednošću 0 može da označava prvo jezgro neodvojive sekundarne transformacije, vrednost 1 drugo jezgro, a vrednost 2 treće jezgro. Alternativno, indeks vrednost 0 može da označava da neodvojiva sekundarna transformacija nije primenjena na ciljni blok, dok vrednosti od 1 do 3 mogu označavati tri različita transformaciona jezgra.
[0107] Transformator može da izvrši neodvojivu sekundarnu transformaciju na osnovu izabranog transformacionog jezgra i može da dobije modifikovane (sekundarne) koeficijente transformacije. Kao što je prethodno opisano, modifikovani koeficijenti transformacije mogu biti izvedeni kao kvantizovani koeficijenti transformacije putem kvantizatora, i mogu biti kodirani i signalizirani uređaju za dekodiranje, kao i prosleđeni dekvantizatoru/inverznom transformatoru u uređaju za kodiranje.
[0108] U međuvremenu, kao što je prethodno opisano, ako se sekundarna transformacija izostavi, (primarni) koeficijenti transformacije, koji predstavljaju izlaz primarne (separabilne) transformacije, mogu se izvesti kao kvantizovani koeficijenti transformacije pomoću kvantizatora, kao što je prethodno opisano, i mogu biti kodirani, signalizirani uređaju za dekodiranje i prosleđeni dekvantizatoru/inverznom transformatoru u uređaju za kodiranje.
[0109] Inverzni transformator može da izvrši niz postupaka po obrnutom redosledu od onog u kome su sprovedeni u prethodno opisanom transformatoru. Inverzni transformator može da primi (dekvantizovane) koeficijente transformacije i da izvede (primarne) koeficijente transformacije primenom sekundarne (inverzne) transformacije (S550), a zatim može da dobije preostali blok (preostale uzorke) primenom primarne (inverzne) transformacije na te (primarne) koeficijente transformacije (S560). U tom kontekstu, primarni koeficijenti transformacije mogu se nazvati modifikovanim koeficijentima transformacije iz ugla posmatranja inverznog transformatora. Kao što je prethodno opisano, uređaj za kodiranje i uređaj za dekodiranje mogu da generišu rekonstruisani blok na osnovu preostalog bloka i prediktivnog bloka, i mogu da generišu rekonstruisanu sliku na osnovu rekonstruisanog bloka.
[0110] Uređaj za dekodiranje može dalje da uključuje determinator primene sekundarne inverzne transformacije (ili element za odlučivanje da li da se primeni sekundarna inverzna transformacija) i determinator sekundarne inverzne transformacije (ili element za odlučivanje o vrsti sekundarne inverzne transformacije). Determinator primene sekundarne inverzne transformacije može da odluči da li da primeni sekundarnu inverznu transformaciju. Na primer, sekundarna inverzna transformacija može biti NSST, RST ili LFNST, a determinator primene može da donese odluku na osnovu zastavice sekundarne transformacije dobijene parsiranjem protoka bitova. U drugom primeru, determinator primene sekundarne inverzne transformacije može doneti odluku na osnovu koeficijenata transformacije preostalog bloka.
[0111] Determinator sekundarne inverzne transformacije može da odredi sekundarnu inverznu transformaciju. U tom slučaju, determinator sekundarne inverzne transformacije može da odredi sekundarnu inverznu transformaciju koja se primenjuje na trenutni blok na osnovu LFNST (NSST ili RST) transformacionog skupa određenog u skladu sa režimom intra predikcije. U jednom načinu ostvarivanja, postupak određivanja sekundarne transformacije može da zavisi od postupka određivanja primarne transformacije. Različite kombinacije primarnih i sekundarnih transformacija mogu biti određene u zavisnosti od režima intra predikcije. Dalje, u jednom primeru, determinator sekundarne inverzne transformacije može da odredi oblast na koju se primenjuje sekundarna inverzna transformacija na osnovu veličine trenutnog bloka.
[0112] U međuvremenu, kao što je prethodno opisano, ako se sekundarna (inverzna) transformacija izostavi, mogu se primiti (dekvantizovani) koeficijenti transformacije, može se izvršiti primarna (separabilna) inverzna transformacija, i može se dobiti preostali blok (ili preostali uzorci). Kao što je prethodno opisano, uređaj za kodiranje i uređaj za dekodiranje mogu da generišu rekonstruisani blok na osnovu preostalog bloka i prediktivnog bloka, i mogu da generišu rekonstruisanu sliku na osnovu rekonstruisanog bloka.
[0113] U međuvremenu, u ovom otkrivanju, može se primeniti redukovana sekundarna transformacija (RST) u kojoj je veličina transformacione matrice (jezgra) smanjena, u okviru koncepta NSST, radi smanjenja količine računanja i memorije potrebne za neodvojivu sekundarnu transformaciju.
[0114] U međuvremenu, transformaciono jezgro, transformaciona matrica i koeficijent koji čini matricu transformacionog jezgra, tj. koeficijent jezgra ili koeficijent matrice, opisani u ovom otkrivanju, mogu biti izraženi u 8 bitova. Ovo može biti uslov za realizaciju u uređaju za dekodiranje i uređaju za kodiranje, i može smanjiti količinu memorije potrebne za čuvanje transformacionog jezgra uz prihvatljivo smanjenje performansi u poređenju sa postojećim prikazom u 9 ili 10 bita. Pored toga, izražavanje matrice jezgra u 8 bitova može omogućiti korišćenje malog umnoživača, i može biti pogodnije za instrukcije višestruke podatke pojedinačne instrukcije (SIMD) koji se koriste za optimalnu softversku implementaciju.
[0115] U ovoj specifikaciji, pojam „RST“ može da označava transformaciju koja se vrši nad preostalim uzorcima za ciljni blok na osnovu transformacione matrice čija je veličina smanjena u skladu sa faktorom redukcije. U slučaju primene redukovane transformacije, količina računanja potrebna za transformaciju može biti smanjena zbog smanjenja veličine transformacione matrice. Drugim rečima, RST se može koristiti za rešavanje problema računarske složenosti koji se javlja pri neodvojivoj transformaciji ili pri transformaciji bloka velike veličine.
[0116] RST se može označavati različitim izrazima, kao što su redukovana transformacija, redukovana sekundarna transformacija, transformacija sa redukcijom, pojednostavljena transformacija, jednostavna transformacija, i slično, a naziv kojim se RST označava nije ograničen na navedene primere. Alternativno, pošto se RST uglavnom primenjuje u niskofrekventnom domenu koji uključuje nulte i nenulte koeficijente u okviru transformacionog bloka, može se nazvati niskofrekventna neodvojiva transformacija (LFNST). Indeks transformacije može se označavati kao LFNST indeks.
[0117] U slučaju kada se sekundarna inverzna transformacija vrši na osnovu RST, inverzni transformator 235 uređaja 200 za kodiranje i inverzni transformator 322 uređaja 300 za dekodiranje može da uključuje inverzni redukovani sekundarni transformator, koji izvodi modifikovane koeficijente transformacije na osnovu inverzne RST transformacije koeficijenata transformacije, i inverzni primarni transformator, koji izvodi preostale uzorke za ciljni blok na osnovu inverzne primarne transformacije modifikovanih koeficijenata transformacije.
Inverzna primarna transformacija se odnosi na inverznu transformaciju primarne transformacije koja je primenjena na preostale uzorke. U ovom otkrivanju, izvođenje koeficijenata transformacije na osnovu transformacije podrazumeva izvođenje koeficijenata transformacije primenom transformacije.
[0118] FIG.7 predstavlja dijagram koji ilustruje RST prema jednom načinu ostvarivanja ovog otkrivanja.
[0119] U ovom otkrivanju, "ciljani blok" može da se odnosi na trenutni blok koji se kodira, preostali blok, ili transformacioni blok.
[0120] U RST prema jednom primeru, N-dimenzioni vektor može biti preslikan u R-dimenzioni vektor koji se nalazi u drugom prostoru, tako da se može odrediti redukovana transformaciona matrica, pri čemu je R manje od N. N može da označava kvadrat dužine stranice bloka na koji se primenjuje transformacija, ili ukupan broj koeficijenata transformacije koji odgovaraju bloku na koji se transformacija primenjuje, a faktor redukcije može da označava odnos R/N. Faktor redukcije se može označavati kao faktor redukcije, faktor pojednostavljenja, pojednostavljeni faktor, jednostavni faktor ili drugim različitim izrazima. S druge strane, R se može označavati kao redukovani koeficijent, ali u zavisnosti od konteksta, faktor redukcije može da označava R.
Takođe, u određenim okolnostima, faktor redukcije može da označava N/R.
[0121] U jednom primeru, faktor redukcije ili redukovani koeficijent može biti signaliziran kroz protok bitova, ali primer nije ograničen na to. Na primer, unapred određena vrednost za faktor redukcije ili redukovani koeficijent može da se čuva u svakom od uređaja 200 za kodiranje i uređaja 300 za dekodiranje, i u tom slučaju, faktor redukcije ili redukovani koeficijent ne mora biti posebno signaliziran.
[0122] Veličina redukovane transformacione matrice prema jednom primeru može biti RxN, što je manje od N×N, veličine konvencionalne transformacione matrice, i može biti definisana kao u jednačini 4 u nastavku.
[0123] Matrica T u bloku Redukovana transformacija prikazanom na (a) FIG.7 može da označava matricu TRxNiz jednačine 4. Kao što je prikazano na s (a) FIG.7, kada se redukovana transformaciona matrica TRxNpomnoži sa preostalim uzorcima za ciljani blok, mogu se izvesti koeficijenti transformacije za ciljani blok.
[0124] U jednom primeru, ako je veličina bloka na koji se primenjuje transformacija 8x8, a R = 16 (tj. R/N = 16/64 = 1/4), tada se RST prema (a) na FIG.7 može izraziti kao matrica operacija kao što je prikazano u jednačini 5 ispod. U ovom slučaju, memorija i broj množenja mogu biti smanjeni na približno 1/4 zahvaljujući redukovanom faktoru.
[0125] U ovom otkrivanju, operacija matrice može da se razume kao operacija množenja kolone vektora matricom koja je postavljena levo od kolone vektora, pri čemu se dobija kolona vektora.
[0126] U jednačini 5, r1do r64mogu predstavljati preostale uzorke za ciljani blok i mogu konkretno biti koeficijenti transformacije generisani primenom primarne transformacije. Kao rezultat izračunavanja jednačine 5, koeficijenti transformacije ciza ciljani blok mogu biti izvedeni, a proces izvođenja cimože biti kao što je prikazano u jednačini 6.
[0127] Kao rezultat izračunavanja jednačine 6, koeficijenti transformacije c1do cRza ciljani blok mogu biti izvedeni. Odnosno, kada je R=16, koeficijenti transformacije c1do c16za ciljani blok mogu biti izvedeni. Ako se, umesto RST, primeni regularna transformacija i transformaciona matrica veličine 64x64 (N x N) pomnoži sa preostalim uzorcima veličine 64x1 (N x 1), tada se izvodi samo 16 (R) koeficijenata transformacije za ciljani blok jer je primenjen RST, iako bi se inače izvelo 64 (N) koeficijenata transformacije za ciljani blok. Pošto je ukupan broj koeficijenata transformacije za ciljani blok smanjen sa N na R, količina podataka koja se prenosi od uređaja 200 za kodiranje ka uređaju 300 za dekodiranje se smanjuje, pa se efikasnost prenosa između uređaja 200 za kodiranje i uređaja 300 za dekodiranje može poboljšati.
[0128] Posmatrano sa stanovišta veličine transformacione matrice, veličina regularne transformacione matrice iznosi 64x64 (N x N), dok je veličina redukovane transformacione matrice smanjena na 16x64 (R x N), tako da se upotreba memorije u slučaju primene RST može smanjiti za odnos R/N u poređenju sa slučajem primene regularne transformacije. Pored toga, u poređenju sa brojem množenja N x N u slučaju korišćenja regularne transformacione matrice, upotreba redukovane transformacione matrice može smanjiti broj množenja za odnos R/N (R x N).
[0129] U jednom primeru, transformator 232 uređaja 200 za kodiranje može da izvede koeficijente transformacije za ciljani blok primenom primarne transformacije i sekundarne transformacije zasnovane na RST-u na preostale uzorke za ciljani blok. Ti koeficijenti transformacije mogu biti preneseni u inverzni transformator uređaja 300 za dekodiranje, a inverzni transformator 322 uređaja 300 za dekodiranje može da izvede modifikovane koeficijente transformacije na osnovu inverzne redukovane sekundarne transformacije (RST) za koeficijente transformacije, i može da izvede preostale uzorke za ciljani blok na osnovu inverzne primarne transformacije za modifikovane koeficijente transformacije.
[0130] Veličina inverzne RST matrice TN×Rprema jednom primeru iznosi N×R što je manje od veličine N×N regularne inverzne transformacione matrice, i nalazi se u transponovanom odnosu sa redukovanom transformacionom matricom TR×Nprikazanom u jednačini 4.
[0131] Matrica Tt u bloku za redukovanu inverznu transformaciju prikazanom na (b) FIG.7 može da označava inverznu RST matricu TRxN<T>(slovo T kao eksponent označava transponovanje). Kada se inverzna RST matrica TRxN<T>pomnoži sa koeficijentima transformacije za ciljani blok, kao što je prikazano na (b) FIG.7, mogu se dobiti modifikovani koeficijenti transformacije za ciljani blok ili preostali uzorci za trenutni blok. Inverzna RST matrica TRxN<T>može biti izražena kao (TRxN) TNxR.
[0132] Konkretnije, kada se inverzna RST primenjuje kao sekundarna inverzna transformacija, modifikovani koeficijenti transformacije za ciljani blok mogu se dobiti kada se inverzna RST matrica TRxN<T>pomnoži sa koeficijentima transformacije za ciljani blok. S druge strane, inverzna RST može se primeniti i kao primarna inverzna transformacija, i u tom slučaju, preostali uzorci za ciljani blok mogu se dobiti kada se inverzna RST matrica TRxN<T>pomnoži sa koeficijentima transformacije za ciljani blok.
[0133] U jednom primeru, ako je veličina bloka na koji se primenjuje inverzna transformacija 8×8 i R = 16 (tj. R/N = 16/64 = 1/4), tada se RST prema (b) FIG.7 može izraziti kao matrična operacija prikazana u jednačini 7 u nastavku.
[0134] U jednačini 7, c1do c16mogu da predstavljaju koeficijente transformacije za ciljani blok. Kao rezultat računanja iz jednačine 7, rikoji predstavlja modifikovane koeficijente transformacije za ciljani blok ili preostali uzorci za ciljani blok mogu biti izvedeni, i postupak izvođenja rimože biti kao u jednačini 8.
[0135] Kao rezultat računanja iz jednačine 8, vrednosti od r1do rN, koje predstavljaju modifikovane koeficijente transformacije za ciljani blok ili preostale uzorke za ciljani blok, mogu biti izvedene. Kada se posmatra sa stanovišta dimenzije inverzne transformacione matrice, dimenzija regularne inverzne transformacione matrice je 64×64 (NxN), ali je dimenzija redukovane inverzne transformacione matrice smanjena na 64×16 (RxN), tako da se upotreba memorije u slučaju izvođenja inverzne RST može smanjiti za odnos R/N u poređenju sa slučajem izvođenja regularne inverzne transformacije. Pored toga, u poređenju sa brojem množenja N×N u slučaju korišćenja regularne inverzne transformacione matrice, upotreba redukovane inverzne transformacione matrice može da smanji broj množenja za odnos R/N (NxR).
[0136] Konfiguracija skupa transformacija prikazana u Tabeli 2 može takođe biti primenjena na 8 × 8 RST. Odnosno, 8 × 8 RST može biti primenjena u skladu sa skupom transformacija iz tabele 2. Pošto jedan skup transformacija uključuje dve ili tri transformacije (jezgra) u zavisnosti od režima intra predikcije, može biti konfigurisan tako da se bira jedna od do četiri transformacije, uključujući i slučaj kada se sekundarna transformacija ne primenjuje. U transformaciji gde se sekundarna transformacija ne primenjuje, može se smatrati da se primenjuje matrica identiteta. Pod pretpostavkom da su indeksi 0, 1, 2 i 3 dodeljeni za četiri transformacije (npr. indeks 0 može biti dodeljen za slučaj kada se primenjuje matrica identiteta, tj. kada se sekundarna transformacija ne primenjuje), indeks transformacije ili LFNST indeks kao sintaksni element može biti signaliziran za svaki blok koeficijenata transformacije, čime se određuje transformacija koja će se primeniti. To jest, za gornji levi 8 × 8 blok, putem indeksa transformacije moguće je odrediti 8 × 8 RST u okviru RST konfiguracije ili odrediti 8 × 8 LFNST kada se LFNST primenjuje. Transformacije 8 × 8 LFNST i 8 × 8 RST odnose se na transformacije koje se primenjuju na 8 × 8 oblast unutar bloka koeficijenata transformacije kada su i širina (W) i visina (H) ciljanog bloka koji se transformiše veći ili jednaki od 8, a ta 8 × 8 oblast može biti gornja leva 8 × 8 oblast u bloku koeficijenata transformacije. Slično, 4 × 4 LFNST i 4 × 4 RST odnose se na transformacije koje se primenjuju na 4 × 4 oblast unutar bloka koeficijenata transformacije kada su i širina (W) i visina (H) ciljanog bloka veći ili jednaki od 4, a ta 4 × 4 oblast može biti gornja leva 4 × 4 oblast u bloku koeficijenata transformacije.
[0137] Prema jednom načinu ostvarivanja ovog otkrivanja, za transformaciju u postupku kodiranja može biti izabrano samo 48 podataka, i na njih se može primeniti maksimalno 16 × 48 matrica jezgra transformacije, umesto da se na 64 podatka koja čine oblast dimenzija 8 × 8 primenjuje matrica jezgra transformacije dimenzija 16 × 64. Ovde „maksimalno” znači da m ima maksimalnu vrednost 16 u m × 48 matrici jezgra transformacije koja generiše m koeficijenata. Odnosno, kada se RST izvršava primenom matrice jezgra transformacije dimenzija m × 48 (gde je m ≤ 16) na oblast 8 × 8, kao ulaz se koristi 48 podataka i generiše se m koeficijenata. Kada je m jednako 16, 48 podataka se koristi kao ulaz i generiše se 16 koeficijenata. To jest, pod pretpostavkom da 48 podataka formira vektor dimenzija 48 × 1, matrica dimenzija 16 × 48 i vektor dimenzija 48 × 1 se množe redom, čime se dobija vektor dimenzija 16 × 1. Ovde se 48 podataka koji čine oblast 8 × 8 mogu pravilno rasporediti kako bi se formirao vektor 48 × 1. Na primer, vektor 48 × 1 može se konstruisati na osnovu 48 podataka koji čine oblast iz koje je isključena donja desna oblast dimenzija 4 × 4 u okviru 8 × 8 oblasti. Kada se matrična operacija izvrši primenom maksimalne matrice jezgra transformacije dimenzija 16 × 48, generiše se 16 modifikovanih koeficijenata transformacije, koji se mogu rasporediti u gornju levu oblast dimenzija 4 × 4 prema redosledu skeniranja, dok se gornja desna oblast 4 × 4 i donja leva oblast 4 × 4 mogu popuniti nulama.
[0138] Za inverznu transformaciju u postupku dekodiranja može se koristiti transponovana matrica prethodno opisane matrice jezgra transformacije. Odnosno, kada se inverzna RST ili LFNST primenjuje u postupku inverzne transformacije koju izvodi uređaj za dekodiranje, ulazni podaci koeficijenata na koje se primenjuje inverzna RST formiraju se u jednodimenzionalni vektor prema unapred definisanom redosledu raspoređivanja, a modifikovani vektor koeficijenata dobijen množenjem jednodimenzionalnog vektora i odgovarajuće inverzne RST matrice (koja se nalazi levo od vektora) može se rasporediti u dvodimenzionalni blok prema unapred definisanom redosledu raspoređivanja.
[0139] Ukratko, u postupku transformacije, kada se RST ili LFNST primenjuje na oblast dimenzija 8 × 8, izvodi se operacija matrice 48 koeficijenata transformacije iz gornje leve, gornje desne i donje leve oblasti 8 × 8 oblasti, isključujući donju desnu oblast, i matrice jezgra transformacije dimenzija 16 × 48. Za ovu operaciju matrice, 48 koeficijenata transformacije unosi se kao jednodimenzionalni niz. Kada se operacija matrice izvrši, dobija se 16 modifikovanih koeficijenata transformacije, koji se mogu rasporediti u gornjoj levoj oblasti 8 × 8 oblasti.
[0140] Suprotno tome, u postupku inverzne transformacije, kada se inverzna RST ili LFNST primenjuje na oblast dimenzija 8 × 8, 16 koeficijenata transformacije koji odgovaraju gornjoj levoj oblasti unutar 8 × 8 oblasti mogu se uneti kao jednodimenzionalni niz prema redosledu skeniranja i mogu biti podvrgnuti operaciji matrice sa matricom jezgra transformacije dimenzija 48 × 16. Odnosno, operacija matrice može biti izražena kao: (matrica 48 × 16) × (vektor koeficijenata transformacije 16 × 1) = (modifikovani vektor koeficijenata transformacije 48 × 1). Ovde se vektor dimenzija n × 1 može tumačiti kao matrica dimenzija n × 1, i stoga može da se izrazi kao nx1 vektor kolone. Takođe, simbol * označava množenje matrica. Kada se operacija matrice izvrši, može se dobiti 48 modifikovanih koeficijenata transformacije, koji se zatim mogu rasporediti u gornju levu, gornju desnu i donju levu oblast 8 × 8 oblasti, pri čemu se donja desna oblast izostavlja.
[0141] Kada je sekundarna inverzna transformacija zasnovana na RST-u, inverzni transformator 235 u uređaju 200 za kodiranje i inverzni transformator 322 u uređaju 300 za dekodiranje može da uključuje inverzni redukovani sekundarni transformator radi izvođenja modifikovanih koeficijenata transformacije na osnovu inverzne RST nad koeficijentima transformacije, i inverzni primarni transformator za izvođenje preostalih uzoraka za ciljani blok na osnovu inverzne primarne transformacije nad modifikovanim koeficijentima transformacije. Inverzna primarna transformacija odnosi se na inverznu transformaciju primarne transformacije koja je primenjena na ostatak. U ovom otkrivanju, izvođenje koeficijenta transformacije na osnovu transformacije može da se odnosi na izvođenje koeficijenta transformacije primenom transformacije.
[0142] Prethodno opisana nerazdvojena transformacija, LFNST, biće detaljno opisana u nastavku. LFNST može da uključuje direktnu transformaciju od strane uređaja za kodiranje i inverznu transformaciju od strane uređaja za dekodiranje.
[0143] Uređaj za kodiranje prima rezultat (ili deo rezultata) dobijen nakon primene primarne (osnovne) transformacije kao ulaz i primenjuje direktnu sekundarnu transformaciju (sekundarnu transformaciju).
[0144] U jednačini 9, x i y predstavljaju ulazne i izlazne vrednosti sekundarne transformacije, redom, a G je matrica koja predstavlja sekundarnu transformaciju, pri čemu su osnovni vektori transformacije sastavljeni od vektora kolona. U slučaju inverzne LFNST, kada se dimenzija transformacione matrice G izražava kao [broj redova × broj kolona], u slučaju direktne LFNST, transponovana matrica G ima dimenziju G<T>.
[0145] Za inverznu LFNST, dimenzije matrice G su [48 × 16], [48 × 8], [16 × 16], [16 × 8], pri čemu su matrica [48 × 8] i matrica [16 × 8] parcijalne matrice koje uzorkuju 8 osnovnih vektora transformacije s leve strane matrice [48 × 16], odnosno matrice [16 × 16].
[0146] S druge strane, za direktnu LFNST, dimenzije matrice G<T>su [16 × 48], [8 × 48], [16 × 16], [8 × 16], pri čemu su matrica [8 × 48] i matrica [8 × 16] parcijalne matrice dobijene uzorkovanjem 8 osnovnih vektora transformacije s vrha matrice [16 × 48], odnosno matrice [16 × 16].
[0147] Dakle, u slučaju direktne LFNST, kao ulazni vektor x moguće je koristiti vektor dimenzija [48 × 1] ili [16 × 1], dok kao izlazni vektor y može biti vektor dimenzija [16 × 1] ili [8 × 1]. U kodiranju i dekodiranju video sadržaja, izlaz direktne primarne transformacije su dvodimenzionalni (2D) podaci, pa da bi se konstruisao vektor [48 × 1] ili [16 × 1] kao ulaz x, mora se formirati jednodimenzionalni vektor pravilnim raspoređivanjem 2D podataka koji predstavljaju izlaz direktne transformacije.
[0148] FIG.8 predstavlja dijagram koji ilustruje redosled raspoređivanja izlaznih podataka direktne primarne transformacije u jednodimenzionalni vektor prema jednom primeru. Levi dijagrami pod (a) i (b) na FIG.8 prikazuju redosled za konstruisanje vektora dimenzija [48 × 1], dok desni dijagrami pod (a) i (b) na FIG.8 prikazuju redosled za konstruisanje vektora dimenzija [16 × 1]. U slučaju LFNST, jednodimenzionalni vektor x može se dobiti sekvencijalnim raspoređivanjem dvodimenzionalnih podataka istim redosledom kao pod (a) i (b) na FIG.8.
[0149] Pravac raspoređivanja izlaznih podataka direktne primarne transformacije može biti određen u skladu sa režimom intra predikcije trenutnog bloka. Na primer, kada je režim intra predikcije trenutnog bloka u horizontalnom pravcu u odnosu na dijagonalni pravac, izlazni podaci direktne primarne transformacije mogu se rasporediti redosledom prikazanim pod (a) na FIG.8. S druge strane, kada je režim intra predikcije trenutnog bloka u vertikalnom pravcu u odnosu na dijagonalni pravac, izlazni podaci direktne primarne transformacije mogu se rasporediti redosledom prikazanim pod (b) na FIG.8.
[0150] Prema jednom primeru, može se primeniti redosled raspoređivanja koji se razlikuje od redosleda prikazanih pod (a) i (b) na FIG.8, a da bi se dobio isti rezultat (y vektor) kao kada se primenjuju redosledi iz (a) i (b) na FIG.8, kolone matrice G mogu se prerasporediti u skladu sa tim redosledom raspoređivanja. Odnosno, moguće je prerasporediti kolone matrice G tako da se svaki element koji čini x vektor uvek množi istim osnovnim vektorom transformacije.
[0151] Pošto je izlazni vektor y izveden iz jednačine 9 jednodimenzionalni vektor, kada su dvodimenzionalni podaci potrebni kao ulazni podaci u postupku korišćenja rezultata direktne sekundarne transformacije kao ulaza — na primer, u postupku kvantizacije ili kodiranja ostatka — izlazni vektor y iz jednačine 9 mora ponovo biti pravilno raspoređen kao dvodimenzionalni podatak.
[0152] FIG.9 predstavlja dijagram koji ilustruje redosled raspoređivanja izlaznih podataka direktne sekundarne transformacije u dvodimenzionalni blok prema jednom primeru.
[0153] U slučaju LFNST-a, izlazne vrednosti mogu biti raspoređene u 2D blok prema unapred definisanom redosledu skeniranja. Deo (a) FIG.9 prikazuje da, kada je izlazni vektor y dimenzija [16 × 1], izlazne vrednosti se raspoređuju na 16 pozicija u 2D bloku prema dijagonalnom redosledu skeniranja. Deo (b) FIG.9 prikazuje da, kada je izlazni vektor y dimenzija [8 × 1], izlazne vrednosti se raspoređuju na 8 pozicija u 2D bloku prema dijagonalnom redosledu skeniranja, dok se preostalih 8 pozicija popunjava nulama. Oznaka X pod (b) FIG.9 označava da je pozicija popunjena nulom.
[0154] Prema drugom primeru, pošto redosled kojim se izlazni vektor y obrađuje tokom kvantizacije ili kodiranja ostatka može biti unapred određen, izlazni vektor y ne mora biti raspoređen u 2D blok kao što je prikazano na FIG.9. Međutim, u slučaju kodiranja ostatka, kodiranje podataka može se obavljati u jedinicama dvodimenzionalnih blokova (npr.4 × 4), kao što je CG (grupa koeficijenata), i u tom slučaju podaci se raspoređuju prema određenom redosledu, kao što je dijagonalni redosled skeniranja prikazan na FIG.9.
[0155] U međuvremenu, uređaj za dekodiranje može da formira jednodimenzionalni ulazni vektor y tako što raspoređuje dvodimenzionalne podatke dobijene kroz postupak dekvantizacije ili sličan proces, u skladu sa unapred definisanim redosledom skeniranja za inverznu transformaciju. Ulazni vektor y može da se izvede kao izlazni vektor x pomoću sledeće jednačine.
[Jednačina 10]
X = Gy
[0156] U slučaju inverzne LFNST, izlazni vektor x može da se izvede množenjem ulaznog vektora y, koji je [16 x 1] vektor ili [8 x 1] vektor, sa matricom G. Za inverznu LFNST, izlazni vektor x može biti [48 x 1] vektor ili [16 x 1] vektor.
[0157] Izlazni vektor x se raspoređuje u dvodimenzionalni blok prema redosledu prikazanom na FIG.8 i organizuje se kao dvodimenzionalni podaci, a ti dvodimenzionalni podaci postaju ulazni podaci (ili deo ulaznih podataka) za inverznu primarnu transformaciju.
[0158] Shodno tome, inverzna sekundarna transformacija predstavlja suprotan proces u odnosu na direktnu sekundarnu transformaciju u celini, i u slučaju inverzne transformacije, za razliku od direktnog smera, inverzna sekundarna transformacija se primenjuje prva, a zatim se primenjuje inverzna primarna transformacija.
[0159] U inverznoj LFNST, može se izabrati jedna od osam [48 x 16] matrica i osam [16 x 16] matrica kao transformaciona matrica G. Da li će se primeniti [48 x 16] matrica ili [16 x 16] matrica zavisi od veličine i oblika bloka.
[0160] Pored toga, 8 matrica može da se izvede iz četiri transformacione grupe kao što je prikazano u Tabeli 2 iznad, pri čemu svaka transformaciona grupa može da se sastoji od dve matrice. Koja transformaciona grupa će se koristiti među četiri grupe određuje se u skladu sa režimom intra predikcije, a konkretnije, transformaciona grupa se određuje na osnovu vrednosti režima intra predikcije proširene uzimajući u obzir intra predikciju širokog ugla (WAIP). Koja matrica će se izabrati među dve matrice koje čine izabranu transformacionu grupu određuje se pomoću signalizacije indeksa. Konkretno, moguće je preneti indeks vrednosti 0, 1 ili 2 — pri čemu 0 može označavati da se LFNST ne primenjuje, dok 1 i 2 mogu označavati bilo koju od dve transformacione matrice koje čine transformacionu grupu izabranu na osnovu vrednosti režima intra predikcije.
[0161] FIG.10 predstavlja dijagram koji ilustruje režime intra predikcije širokog ugla prema jednom načinu ostvarivanja ove specifikacije.
[0162] Opšta vrednost režima intra predikcije može imati vrednosti od 0 do 66 i od 81 do 83, dok vrednost režima intra predikcije proširena zbog WAIP može imati vrednosti od –14 do 83, kao što je prikazano. Vrednosti od 81 do 83 označavaju CCLM (pravolinijski model unakrsne komponente) režim, dok vrednosti od –14 do –1 i vrednosti od 67 do 80 označavaju režime intra predikcije proširene kao rezultat primene WAIP.
[0163] Kada je širina trenutnog bloka za predikciju veća od visine, gornji referentni pikseli su obično bliži pozicijama unutar bloka koji se predviđa. Zbog toga može biti preciznije predvideti u donje-levom pravcu nego u gornjem desnom pravcu. Suprotno tome, kada je visina bloka veća od širine, levi referentni pikseli su obično bliži pozicijama unutar bloka koji se predviđa. Stoga može biti preciznije predvideti u gornjem desnom pravcu nego u donjem levom pravcu. Zbog toga može biti korisno primeniti remapiranje, odnosno modifikaciju indeksa režima, na indeks režima intra predikcije širokog ugla.
[0164] Kada se primeni intra predikcija širokog ugla, informacije o postojećoj intra predikciji mogu biti signalizirane, a nakon što se te informacije parsiraju, one se mogu ponovo mapirati na indeks režima intra predikcije širokog ugla. Zbog toga se ukupan broj režima intra predikcije za određeni blok (npr. ne-kvadratni blok specifične veličine) ne menja, odnosno ukupni broj režima intra predikcije ostaje 67, a kodiranje režima intra predikcije za određeni blok ne menja se.
[0165] Tabela 3 ispod prikazuje postupak izvođenja modifikovanog režima intra predikcije remapiranjem režima intra predikcije u režim intra predikcije širokog ugla.
[Tabela 3]
Inputi za ovaj postupak su sledeći:
- varijabla predModeIntra koja označava režim intra predikcije,
- varijabla nThW koja označava širinu transformacionog bloka,
- varijabla nThH koja označava visinu transformacionog bloka,
- varijabla cIdx koja označava komponentu boje trenutnog bloka.
Izlaz ovog postupka je modifikovani režim intra predikcije predModeIntra.
Varijable nW i nH su izvedene na sledeći način:
- Ako je IntraSubPartittons Split Type jednak ISP_NO_SPLIT ili cIdx nije jednak 0, primenjuje se sledeće:
- U drugom slučaju ( IntraSubPartitionsSplitType nije jednak ISP_NO_SPLIT i cIdx je jednak 0 ), primenjuje se sledeće:
Varijabla whRatio je podešena da bude jednaka Abs( Log2( nW / nH ) ).
Za nekvadratne blokove (nW nije jednaka nH), režim intra predikcije predModeIntra je modifikovan na sledeći način:
- Ako su svi sledeći uslovi tačni, predModelntra je podešena tako da bude jednaka ( predModeIntra 65 ).
- nW je veća od nH
- predModeIntra je veća od ili je jednaka 2
- predModeIntra je manja od ( whRatio > 1) ? ( 8 2 * whRatio ) : 8
- U drugom slučaju, ako su svi od sledećih uslova tačni, predModeIntra se podešava da bude jednaka ( predModeIntra- 67 ).
- nH je veća od nW
- predModeIntra je manja od ili jednaka 66
- predModeIntra je veća od ( whRatio > 1 ) ? ( 60 - 2 * whratio ) : 60
[0166] U tabeli 3, proširena vrednost režima intra predikcije se na kraju čuva u promenljivoj predModeIntra, a ISP_NO_SPLIT označava da CU blok nije podeljen na podparticije tehnikom Intra Sub Partitions (ISP), koja je trenutno usvojena u VVC standardu. Vrednosti promenljive cIdx od 0, 1 i 2 označavaju slučajeve komponenata luma, Cb i Cr, redom. Funkcija Log2 prikazana u tabeli 3 vraća logaritam sa bazom 2, a funkcija Abs vraća apsolutnu vrednost.
[0167] Promenljiva predModeIntra, koja označava režim intra predikcije, kao i visina i širina bloka za transformaciju, itd., koriste se kao ulazne vrednosti u postupku mapiranja režima širokokutne intra predikcije, a izlazna vrednost je modifikovani režim intra predikcije predModeIntra. Visina i širina bloka za transformaciju ili bloka za kodiranje mogu biti visina i širina trenutnog bloka koji se koristi za ponovno mapiranje režima intra predikcije. U tom slučaju, promenljiva whRatio, koja odražava odnos širine prema visini, može se postaviti na Abs( Log2( nW / nH ) ).
[0168] Za nekvadratni blok, režim intra predikcije može se podeliti na dva slučaja i modifikovati.
[0169] Prvo, ako su svi sledeći uslovi (1)–(3) ispunjeni, (1) širina trenutnog bloka je veća od visine, (2) režim intra predikcije pre modifikacije je veći ili jednak 2, (3) režim intra predikcije je manji od vrednosti izvedene iz izraza (8 2 * whRatio) kada je promenljiva whRatio veća od 1, i manji od 8 kada je whRatio manja ili jednaka 1 [odnosno: predModeIntra < (whRatio > 1 ? (8 2 * whRatio) : 8)], režim intra predikcije se postavlja na vrednost za 65 veću od prethodne vrednosti režima intra predikcije [predModeIntra = predModeIntra 65].
[0170] Ako je situacija drugačija, tj. ako su sledeći uslovi (1)–(3) ispunjeni, (1) visina trenutnog bloka je veća od širine, (2) režim intra predikcije pre modifikacije je manji ili jednak 66,
(3) režim intra predikcije je veći od vrednosti izvedene iz izraza (60 - 2 * whRatio) kada je whRatio veći od 1, i veći od 60 kada je whRatio manji ili jednak 1 [odnosno: predModeIntra > (whRatio > 1 ? (60 - 2 * whRatio) : 60)], režim intra predikcije se postavlja na vrednost za 67 manju od prethodne vrednosti [predModeIntra = predModeIntra - 67].
[0171] Tabela 2 iznad prikazuje način odabira skupa transformacija na osnovu vrednosti režima intra predikcije proširene pomoću WAIP u okviru LFNST. Kao što je prikazano na FIG.10, režimi od 14 do 33 i režimi od 35 do 80 su simetrični u odnosu na pravac predikcije oko režima 34. Na primer, režimi 14 i 54 su simetrični u odnosu na pravac koji odgovara režimu 34. Zbog toga se isti skup transformacija primenjuje na režime koji se nalaze u međusobno simetričnim pravcima, a ova simetrija je takođe prikazana u tabeli 2.
[0172] U međuvremenu, pretpostavlja se da su ulazni podaci za prednji LFNST kod režima 54 simetrični sa ulaznim podacima za prednju LFNST kod režima 14. Na primer, za režime 14 i 54, dvodimenzionalni podaci se reorganizuju u jednodimenzionalne podatke prema redosledu rasporeda prikazanom na FIG. (a) FIG.8, odnosno slici (b) FIG.8. Pored toga, može se uočiti da su obrasci u redosledu prikazanom pod (a) i (b) FIG.8 simetrični u odnosu na pravac (dijagonalni pravac) koji je označen režimom 34.
[0173] U međuvremenu, kao što je prethodno opisano, to koja transformaciona matrica — od matrice dimenzija [48 × 16] ili matrice dimenzija [16 × 16] — se primenjuje u okviru LFNST-a, određuje se na osnovu veličine i oblika transformacionog ciljanog bloka.
[0174] FIG.11 predstavlja dijagram koji ilustruje oblik bloka na koji se primenjuje LFNST.
(a) Na FIG.11 prikazuje blokove dimenzija 4 × 4, (b) prikazuje blokove 4 × 8 i 8 × 4, (c) prikazuje blokove 4 × N ili N × 4, pri čemu je N veće ili jednako 16, (d) prikazuje blokove 8 × 8, (e) prikazuje blokove M × N gde je M ≥ 8, N ≥ 8, i N > 8 ili M > 8.
[0175] Na FIG.11, blokovi sa podebljanim ivicama označavaju oblasti na koje se primenjuje LFNST. Za blokove prikazane na (a) i (b) FIG.11, LFNST se primenjuje na gornju levu oblast dimenzija 4 × 4. Za blok prikazan na (c) FIG.11, LFNST se primenjuje pojedinačno na dve uzastopno raspoređene gornje leve oblasti dimenzija 4 × 4. Pod (a), (b) i (c) FIG.11, pošto se LFNST primenjuje u jedinicama oblasti 4 × 4, ovaj LFNST će se u nastavku teksta nazivati „LFNST 4 × 4“. Na osnovu dimenzije matrice G, može se primeniti matrica dimenzija [16 × 16] ili [16 × 8].
[0176] Konkretno, matrica dimenzija [16 × 8] primenjuje se na blok 4 × 4 (TU 4 × 4 ili CU 4 × 4) iz (a) FIG.11, dok se matrica dimenzija [16 × 16] primenjuje na blokove pod (b) i (c) FIG.11.
Ovo je urađeno kako bi se prilagodila računarska složenost najgorem slučaju, ograničavajući je na 8 množenja po uzorku.
[0177] U vezi sa (d) i (e) iz FIG.11, LFNST se primenjuje na gornju levu oblast dimenzija 8 × 8, i ovaj LFNST će se u nastavku teksta nazivati „LFNST 8 × 8“. Kao odgovarajuća transformaciona matrica može se primeniti matrica dimenzija [48 × 16] ili [48 × 8]. U slučaju direktnog LFNST-a, pošto se kao ulazni podaci unosi vektor dimenzija [48 × 1] (x vektor u jednačini 9), sve vrednosti uzoraka iz gornje leve oblasti 8 × 8 se ne koriste kao ulazne vrednosti za direktni LFNST.
Odnosno, kao što se može videti iz redosleda sa leve strane slike (a) sa FIG.8 ili sa leve strane slike (b) sa FIG.8, vektor dimenzija [48 × 1] može se konstruisati na osnovu uzoraka koji pripadaju preostalim trima blokovima 4 × 4, dok se donji desni blok 4 × 4 ostavlja nepromenjenim.
[0178] Matrica dimenzija [48 × 8] može se primeniti na blok 8 × 8 (TU 8 × 8 ili CU 8 × 8) pod (d) FIG.11, dok se matrica dimenzija [48 × 16] može primeniti na blok 8 × 8 pod (e) FIG.11.
Ovo je takođe urađeno kako bi se prilagodila računarska složenost najgorem slučaju na 8 množenja po uzorku.
[0179] U zavisnosti od oblika bloka, kada se primenjuje odgovarajući direktni LFNST (LFNST 4 × 4 ili LFNST 8 × 8), generiše se 8 ili 16 izlaznih podataka (y vektor u jednačini 9, tj. vektor dimenzija [8 × 1] ili [16 × 1]). U direktnom LFNST, broj izlaznih podataka je manji ili jednak broju ulaznih podataka, što je posledica karakteristika matrice GT.
[0180] FIG.12 predstavlja dijagram koji ilustruje raspored izlaznih podataka direktnog LFNST prema jednom primeru i prikazuje blok u kojem su izlazni podaci direktnog LFNST raspoređeni u skladu sa oblikom bloka.
[0181] Senčena oblast u gornjem levom delu bloka prikazanog na FIG.12 odgovara oblasti u kojoj se nalaze izlazni podaci direktnog LFNST, pozicije označene nulom (0) označavaju uzorke koji su popunjeni vrednošću 0, a preostala oblast predstavlja oblasti koje direktni LFNST ne menja. U oblasti koju LFNST ne menja, izlazni podaci direktne primarne transformacije ostaju nepromenjeni.
[0182] Kao što je prethodno opisano, pošto dimenzija primenjene transformacione matrice varira u zavisnosti od oblika bloka, broj izlaznih podataka takođe varira. Kao što je prikazano na FIG.12, izlazni podaci direktnog LFNST možda neće u potpunosti popuniti gornji levi blok dimenzija 4 × 4. U slučaju pod (a) i (d) sa FIG.12, matrica [16 × 8] i matrica [48 × 8] se primenjuju na blok označen podebljanim okvirom ili na određeni deo unutar bloka, i kao rezultat se generiše vektor [8 × 1] kao izlaz direktnog LFNST. Odnosno, prema redosledu skeniranja prikazanom pod (b) FIG.9, samo 8 izlaznih podataka može biti popunjeno kao što je prikazano pod (a) i (d) FIG.12, dok se preostalih 8 pozicija popunjava nulama. U slučaju bloka na koji se primenjuje LFNST iz (d) FIG.11, kao što je prikazano pod (d) FIG.12, dva bloka 4 × 4 koja se nalaze u gornjem desnom i donjem levom delu, u susedstvu sa gornjim levim blokom 4 × 4, takođe se popunjavaju vrednošću 0.
[0183] Kao što je prethodno opisano, u osnovi se signalizacijom LFNST indeksa određuje da li se LFNST primenjuje i koja transformaciona matrica se koristi. Kao što je prikazano na FIG.12, kada se LFNST primeni, pošto broj izlaznih podataka direktnog LFNST-a može biti jednak ili manji od broja ulaznih podataka, javlja se oblast koja se popunjava nulama, i to na sledeći način:
1) Kao što je prikazano pod (a) FIG.12, uzorci od osme pozicije dalje prema redosledu skeniranja u gornjem levom bloku 4 × 4, tj. uzorci od 9. do 16.
2) Kao što je prikazano pod (d) i (e) FIG.12, kada se primenjuje matrica [48 × 16] ili [48 × 8], dva bloka 4 × 4 u blizini gornjeg levog bloka 4 × 4, ili drugi i treći blok 4 × 4 prema redosledu skeniranja.
[0184] Dakle, ako u oblastima 1) i 2) postoji podatak različit od nule, to je siguran pokazatelj da LFNST nije primenjen, te se signalizacija odgovarajućeg LFNST indeksa može izostaviti.
[0185] Prema jednom primeru, na primer, u slučaju LFNST postupka usvojenog u VVC standardu, pošto se signalizacija LFNST indeksa vrši nakon kodiranja ostatka, uređaj za kodiranje može znati da li postoje podaci različiti od nule (značajni koeficijenti) za sve pozicije unutar TU ili CU bloka na osnovu rezultata kodiranja ostatka. U skladu s tim, uređaj za kodiranje može odlučiti da li da izvrši signalizaciju LFNST indeksa na osnovu postojanja podataka različitih od nule, a uređaj za dekodiranje može odlučiti da li da parsira LFNST indeks. Kada podaci različiti od nule ne postoje u oblastima označenim pod 1) i 2), signalizacija LFNST indeksa se vrši.
[0186] Pošto se skraćeni unarni kod koristi kao postupak binarizacije za LFNST indeks, LFNST indeks se sastoji od najviše dva bina, pri čemu se binarni kodovi 0, 10 i 11 dodeljuju za moguće vrednosti LFNST indeksa 0, 1 i 2, redom. U slučaju LFNST postupka trenutno usvojenog u okviru VVC standarda, za prvi bin se primenjuje CABAC kodiranje zasnovano na kontekstu (regularno kodiranje), dok se za drugi bin primenjuje kodiranje bez konteksta. Ukupan broj konteksta za prvi bin je 2 kada se primenjuje (DCT-2, DCT-2) kao primarni par transformacija za horizontalni i vertikalni pravac, i kada se luma komponenta i hroma komponenta kodiraju u tipu dvojnog stabla, jedan kontekst se dodeljuje tom slučaju, dok se drugi kontekst koristi za sve preostale slučajeve. Kodiranje LFNST indeksa prikazano je u sledećoj tabeli.
[Tabela 4]
[0187] U međuvremenu, za usvojenu LFNST transformaciju mogu se primeniti sledeći postupak pojednostavljenja.
(i) Prema jednom primeru, broj izlaznih podataka za prednju LFNST transformaciju može biti ograničen na najviše 16.
[0188] U slučaju prikazanom na FIG.11 (c), 4x4 LFNST može biti primenjena na dva susedna 4x4 oblasta u gornjem levom delu, pri čemu može biti generisano najviše 32 izlazna podatka LFNST-a. Kada je broj izlaznih podataka za unaprednu LFNST ograničen na maksimalno 16, u slučaju blokova dimenzija 4xN ili Nx4 (N ≥ 16) (TU ili CU), 4x4 LFNST se primenjuje samo na jedan 4x4 oblast u gornjem levom uglu, pa se LFNST može primeniti samo jednom na sve blokove prikazane na FIG.11. Time se pojednostavljuje implementacija kodiranja slike.
[0189] FIG.13 prikazuje primer u kome je broj izlaznih podataka za prednju LFNST ograničen na najviše 16. Kao na FIG.13, kada se LFNST primeni na najgornji levi 4x4 oblast u bloku dimenzija 4xN ili Nx4 gde je N ≥ 16, izlazni podaci prednje LFNST su ograničeni na 16.
[0190] (ii) Prema jednom primeru, dodatno se može primeniti popunjavanje nulama na oblast kome LFNST nije primenjena. U ovom dokumentu, popunjavanjem nulama znači popunjavanje svih pozicija u određenoj oblasti vrednošću 0. To znači da se popunjavanje nulama može primeniti na oblast koja nije promenjena primenom LFNST-a i koji zadržava rezultat prednje primarne transformacije. Kao što je prethodno opisano, pošto se LFNST deli na 4x4 LFNST i 8x8 LFNST, popunjavanje nulama može biti podeljeno na dve vrste ((ii)-(A) i (ii)-(B)) kako sledi.
[0191] (ii)-(A) Kada se primeni 4x4 LFNST, oblast na koju se 4x4 LFNST ne primenjuje može biti popunjena nulama. FIG.14 predstavlja dijagram koji ilustruje popunjavanje nulama u bloku na koji se primenjuje 4x4 LFNST prema jednom primeru.
[0192] Kao što je prikazano na FIG.14, u odnosu na blok na koji se primenjuje 4x4 LFNST, tj. za sve blokove na (a), (b) i (c) FIG.12, cela oblast na koju se LFNST ne primenjuje može biti popunjena nulama.
[0193] S druge strane, (d) FIG.14 pokazuje da kada je maksimalan broj izlaznih podataka prednje LFNST ograničen na 16, kao što je prikazano na FIG.13, popunjavanje nulama se vrši u preostalim blokovima na koje se 4x4 LFNST ne primenjuje.
[0194] (ii)-(B) Kada se primeni 8x8 LFNST, oblast na koju se 8x8 LFNST ne primenjuje može biti popunjen nulama. FIG.15 predstavlja dijagram koji ilustruje popunjavanje nulama u bloku na koji se primenjuje 8x8 LFNST prema jednom primeru.
[0195] Kao što je prikazano na FIG.15, u odnosu na blok na koji se primenjuje 8x8 LFNST, tj. za sve blokove na (d) i (e) FIG.12, cela oblast na koju se LFNST ne primenjuje može biti popunjena nulama.
[0196] (iii) Zbog popunjavanja nulama predstavljenog pod (ii) iznad, oblast popunjena nulama može biti različita kada se primenjuje LFNST. Shodno tome, moguće je proveriti da li postoje nenulti podaci u skladu sa popunjavanjem nulama predloženim pod (ii) u širem opsegu nego u slučaju LFNST prikazanom na FIG.12.
[0197] Na primer, kada se primeni (ii)-(B), nakon provere postojanja nenultih podataka u oblastima popunjenim nulama prikazanim na (d) i (e) FIG.12, pored dodatno popunjenih nula na FIG.15, signalizacija za LFNST indeks može da se izvrši samo kada nenulti podaci ne postoje.
[0198] Naravno, čak i ako se primeni popunjavanje nulama prema (ii), moguće je proveriti postojanje nenultih podataka na isti način kao kod postojeće signalizacije LFNST indeksa. To jest, nakon provere postojanja nenultih podataka u bloku popunjenom nulama na FIG.12, može se primeniti signalizacija LFNST indeksa. U tom slučaju, uređaj za kodiranje vrši samo popunjavanje nulama, a uređaj za dekodiranje ne pretpostavlja popunjavanje nulama, tj. proverava samo postojanje nenultih podataka u oblastima eksplicitno označenim nulama na FIG.12 i može izvršiti parsiranje LFNST indeksa.
[0199] Alternativno, prema drugom primeru, popunjavanje nulama može biti izvršeno kao što je prikazano na FIG.16. FIG.16 predstavlja dijagram koji ilustruje popunjavanje nulama u bloku na koji se primenjuje 8x8 LFNST prema drugom primeru.
[0200] Kao što je prikazano na FIG.14 i FIG.15, popunjavanje nulama može biti primenjeno na sve oblasti osim oblasti na koji se primenjuje LFNST, ili popunjavanje nulama može biti primenjeno samo na delimičnu oblast kao što je prikazano na FIG.16. Popunjavanje nulama se primenjuje samo na oblasti osim gornje leve 8x8 oblasti sa FIG.16, dok popunjavanje nulama možda nije primenjeno na donje desni 4x4 blok unutar gornje leve 8x8 oblasti.
[0201] Moguće je izvesti različite načine ostvarivanja u kojima se primenjuju kombinacije postupaka pojednostavljivanja ((i), (ii)-(A), (ii)-(B), (iii)) za LFNST. Naravno, kombinacije navedenih postupaka pojednostavljivanja nisu ograničene na sledeće načine ostvarivanja, i bilo koja kombinacija može biti primenjena na LFNST.
Način ostvarivanja
[0202]
− Ograničiti broj izlaznih podataka za prednji LFNST na najviše 16 → (i)
− Kada se primenjuje 4x4 LFNST, sve oblasti na koje se 4x4 LFNST ne primenjuje podležu popunjavanju nulama → (ii)-(A)
− Kada se primenjuje 8x8 LFNST, sve oblasti na koje se 8x8 LFNST ne primenjuje podležu popunjavanju nulama → (ii)-(B)
− Nakon provere da li postoje nenulti podaci kako u postojećoj oblasti ispunjenoj nulama, tako i u oblastima popunjenim nulama dodatnim postupcima ((ii)-(A), (ii)-(B)), signalizacija LFNST indeksa se vrši samo ako ne postoje nenulti podaci → (iii)
[0203] U slučaju načina ostvarivanja, kada se primenjuje LFNST, oblast u kojoj mogu postojati nenulti izlazni podaci ograničena je na unutrašnjost gornje levo 4x4 oblasti. Detaljnije, u slučaju pod (a) na FIG.14 i (a) na FIG.15, osma pozicija u redosledu skeniranja je poslednja pozicija na kojoj mogu postojati nenulti podaci. U slučaju pod (b) i (c) na FIG.14 i (b) na FIG.15, šesnaesta pozicija u redosledu skeniranja (tj. pozicija na dole desnoj ivici gornje levo 4x4 bloka) predstavlja poslednju poziciju na kojoj podaci različiti od nule mogu postojati.
[0204] Dakle, kada se primenjuje LFNST, nakon provere da li postoje nenulti podaci na pozicijama na kojima nije dozvoljen postupak kodiranja preostalog signala (na pozicijama iza poslednje pozicije), može se odrediti da li će LFNST indeks biti signaliziran.
[0205] U slučaju postupka popunjavanja nulama koji je predložen u tački (ii), budući da je broj podataka koji se na kraju generišu manji kada se primene i primarna transformacija i LFNST, količina potrebnih proračuna za izvršavanje celokupnog postupka transformacije može se smanjiti. Naime, kada se primenjuje LFNST, pošto se popunjavanje nulama primenjuje na izlazne podatke primarne transformacije u smeru kodiranja koji se nalaze u oblasti na koju se LFNST ne primenjuje, nije potrebno generisati podatke za oblast koja će biti popunjena nulama tokom izvršavanja primarne transformacije u smeru kodiranja. Shodno tome, moguće je smanjiti količinu proračuna potrebnu za generisanje tih podataka. Dodatni efekti postupka popunjavanja nulama predloženog u tački (ii) mogu se sumirati na sledeći način.
[0206] Prvo, kao što je prethodno opisano, količina proračuna potrebna za izvršavanje celokupnog postupka transformacije se smanjuje.
[0207] Posebno, kada se primeni tačka (ii)-(B), količina proračuna u najgorem slučaju se smanjuje, čime se postupak transformacije može olakšati. Drugim rečima, uopšteno govoreći, za izvršavanje primarne transformacije velikih dimenzija potrebna je velika količina proračuna. Primenom tačke (ii)-(B), broj podataka dobijenih kao rezultat primene LFNST transformacije u smeru kodiranja može se smanjiti na 16 ili manje. Pored toga, kako se veličina celog bloka (TU ili CU) povećava, efekat smanjenja količine transformacionih operacija dodatno se povećava.
[0208] Drugo, količina proračuna potrebna za izvršavanje celokupnog postupka transformacije može se smanjiti, čime se smanjuje i potrošnja energije potrebna za izvršavanje transformacije.
[0209] Treće, kašnjenje uključeno u postupak transformacije se smanjuje.
[0210] Sekundarna transformacija, kao što je LFNST, dodaje dodatno opterećenje u proračunu uz postojeću primarnu transformaciju, čime povećava ukupno vreme kašnjenja u toku izvršavanja transformacije. Posebno, u slučaju intra predikcije, budući da se rekonstruisani podaci susednih blokova koriste u postupku predikcije, tokom kodiranja povećanje kašnjenja usled sekundarne transformacije dovodi do povećanja kašnjenja do trenutka rekonstrukcije. Ovo može dovesti do povećanja ukupnog kašnjenja intra predikcionog kodiranja.
[0211] Međutim, ako se primeni postupak popunjavanja nulama predložen u tački (ii), vreme kašnjenja za izvršavanje primarne transformacije može se znatno smanjiti kada se primenjuje LFNST, a ukupno vreme kašnjenja postupka transformacije ostaje isto ili se smanjuje, tako da se uređaj za kodiranje može jednostavnije realizovati.
[0212] U konvencionalnoj intra predikciji, blok koji se trenutno kodira posmatra se kao jedna enkodirajuća jedinica i kodiranje se vrši bez deobe. Međutim, kodiranje uz intra podpartiicije (ISP) podrazumeva izvršavanje intra predikcionog kodiranja tako što se blok koji se trenutno kodira deli u horizontalnom ili vertikalnom pravcu. U tom slučaju, rekonstruisani blok može biti generisan vršenjem kodiranja/dekodiranja u jedinicama podeljenih blokova, a rekonstruisani blok može se koristiti kao referentni blok za sledeći podeljeni blok. Prema jednom načinu ostvarivanja, u ISP kodiranju, jedan blok za kodiranje može se podeliti na dve ili četiri podblok jedinice koje se potom kodiraju, a u ISP režimu, u jednom podbloku se intra predikcija vrši u odnosu na rekonstruisane vrednosti piksela podbloka koji se nalazi sa susedne leve ili gornje strane. U nastavku teksta, izraz „kodiranje“ može se koristiti kao pojam koji obuhvata i kodiranje koje vrši uređaj za kodiranje i dekodiranje koje vrši uređaj za dekodiranje.
[0213] Tabela 5 prikazuje broj podblokova na koje se vrši deoba u zavisnosti od veličine bloka kada se primenjuje ISP, a podparticije dobijene primenom ISP mogu se označiti kao transformacioni blokovi (TU).
[Tabela 5]
Veličina bloka (CU) Broj deoba
4x4 Nie primenivo
[0214] ISP podrazumeva deobu bloka koji je predviđen kao luma intra na dve ili četiri podpartiicije u vertikalnom ili horizontalnom pravcu, u zavisnosti od veličine bloka. Na primer, minimalna veličina bloka na koju se ISP može primeniti je 4 × 8 ili 8 × 4. Kada je veličina bloka veća od 4 × 8 ili 8 × 4, blok se deli na četiri podpartiicije.
[0215] FIG.17 i FIG.18 ilustruju primer podbloka na koji je jedan blok za kodiranje podeljen, a preciznije, FIG.17 ilustruje primer deobe u slučaju kada je blok za kodiranje (širina (W) × visina (H)) blok dimenzija 4 × 8 ili 8 × 4, dok FIG.18 ilustruje primer deobe u slučaju kada blok za kodiranje nije dimenzija 4 × 8, 8 × 4 ili 4 × 4.
[0216] Kada se primenjuje ISP, podblokovi se kodiraju sekvencijalno, na primer, horizontalno ili vertikalno, s leva na desno ili odozgo nadole, u zavisnosti od tipa deobe, i nakon što se izvrši postupak rekonstrukcije putem inverzne transformacije i intra predikcije za jedan podblok, može se izvršiti kodiranje narednog podbloka. Za krajnje levi ili gornji podblok, koristi se rekonstruisani piksel već kodiranog bloka za kodiranje, kao u konvencionalnom postupku intra predikcije. Dalje, kada nijedna strana narednog unutrašnjeg podbloka nije susedna prethodnom podbloku, da bi se izveli referentni pikseli susedni odgovarajućoj strani, koriste se rekonstruisani pikseli već kodiranog susednog bloka za kodiranje, kao u konvencionalnom postupku intra predikcije.
[0217] U ISP režimu kodiranja, svi podblokovi mogu biti kodirani istim režimom intra predikcije, pri čemu se signaliziraju zastavica koja pokazuje da li se koristi ISP kodiranje i zastavica koja pokazuje da li je deoba izvršena horizontalno ili vertikalno. Kao što je prikazano na FIG.17 i FIG.
18, broj podblokova može biti podešen na 2 ili 4 u zavisnosti od oblika bloka, a kada je veličina (širina × visina) jednog podbloka manja od 16, može postojati ograničenje koje onemogućava deobu na taj podblok ili uopšte primenu ISP kodiranja.
[0218] U slučaju ISP režima predikcije, jedna jedinica za kodiranje deli se na dva ili četiri particiona bloka, odnosno podblokova, koji se zatim predviđaju, pri čemu se isti režim intra predikcije primenjuje na podeljene dva ili četiri particiona bloka.
[0219] Kao što je prethodno opisano, moguća su oba pravca deobe: horizontalni (kada se MxN jedinica za kodiranje, sa horizontalnom dužinom M i vertikalnom dužinom N, deli horizontalno — ako se MxN jedinica podeli na dva dela, svaki blok ima dimenzije Mx(N/2), a ako se podeli na četiri, dimenzije su Mx(N/4)) i vertikalni (kada se MxN jedinica deli vertikalno — ako se podeli na dva dela, dimenzije svakog bloka su (M/2)xN, a ako se podeli na četiri, dimenzije su (M/4)xN). Kada se MxN jedinica deli horizontalno, particioni blokovi se kodiraju odozgo na dole, a kada se deli vertikalno, kodiranje ide sleva na desno. Trenutno kodirani particioni blok može se predvideti koristeći rekonstruisane vrednosti piksela gornjeg (levog) particionog bloka u slučaju deobe u horizontalnom (vertikalnom) smeru.
[0220] Na preostali signal koji se generiše ISP postupkom predikcije može se primeniti transformacija u jedinicama particionih blokova. Tehnologija višestrukog izbora transformacije (MTS) zasnovana na kombinaciji DST-7/DCT-8, kao i postojeća DCT-2, može se primeniti kao primarna transformacija (jezgro transformacije) u smeru kodiranja, dok se na koeficijente transformacije dobijene primarnom transformacijom može primeniti neodvojiva transformacija niskih frekvencija (LFNST) u smeru kodiranja kako bi se generisali konačni modifikovani koeficijenti transformacije.
[0221] Dakle, LFNST može biti primenjena na particione blokove dobijene primenom ISP režima predikcije, pri čemu se isti režim intra predikcije primenjuje na podeljene particione blokove, kao što je prethodno opisano. Shodno tome, kada se izabere LFNST skup izveden na osnovu režima intra predikcije, taj izvedeni LFNST skup može se primeniti na sve particione blokove. Drugim rečima, budući da se isti režim intra predikcije primenjuje na sve particione blokove, isti LFNST skup može se primeniti na sve njih.
[0222] Prema jednom načinu ostvarivanja, LFNST može biti primenjena samo na transformacione blokove koji imaju i horizontalnu i vertikalnu dužinu od 4 ili više. Stoga, kada je horizontalna ili vertikalna dužina podeljenog particionog bloka prema ISP postupku manja od 4, LFNST se ne primenjuje i LFNST indeks se ne signalizira. Dalje, kada se LFNST primenjuje na svaki particioni blok, taj particioni blok može se smatrati jednim transformacionim blokom. Kada se ISP postupak predikcije ne primenjuje, LFNST može biti primenjena na blok za kodiranje.
[0223] Postupak primene LFNST na svaki particioni blok biće detaljno opisan.
[0224] Prema jednom načinu ostvarivanja, nakon što se na pojedinačne particione blokove primeni LFNST u smeru kodiranja, u gornjem levom 4x4 delu po redosledu skeniranja koeficijenata transformacije ostaje maksimalno 16 (8 ili 16) koeficijenata, dok se na preostalim pozicijama i oblastima primenjuje popunjavanje nulama, tj. sve te pozicije se popunjavaju vrednošću 0.
[0225] Alternativno, prema jednom načinu ostvarivanja, kada je dužina jedne strane particionog bloka 4, LFNST se primenjuje samo na gornji levi 4x4 deo, a kada je dužina obe strane particionog bloka, tj. širina i visina, 8 ili više, LFNST se može primeniti na preostalih 48 koeficijenata, izuzev donjeg desnog 4x4 dela unutar gornjeg levog 8x8 dela.
[0226] Alternativno, prema jednom načinu ostvarivanja, kako bi se složenost proračuna u najgorem slučaju prilagodila na 8 množenja po uzorku, kada je svaki particioni blok dimenzija 4x4 ili 8x8, nakon primene LFNST u smeru kodiranja može se izvesti samo 8 koeficijenata transformacije. Drugim rečima, kada je particioni blok 4x4, kao transformaciona matrica može se primeniti matrica dimenzija 8x16, a kada je particioni blok 8x8, kao transformaciona matrica može se primeniti matrica dimenzija 8x48.
[0227] U trenutnom VVC standardu, signalizacija LFNST indeksa vrši se u jedinicama kodiranja. Stoga, u ISP režimu predikcije i kada se LFNST primenjuje na sve particione blokove, ista vrednost LFNST indeksa može se primeniti na odgovarajuće particione blokove. Drugim rečima, kada se vrednost LFNST indeksa prenese jednom na nivou jedinice kodiranja, ta vrednost može se primeniti na sve particione blokove unutar te jedinice. Kao što je prethodno opisano, vrednost LFNST indeksa može biti 0, 1 ili 2, gde 0 predstavlja slučaj kada LFNST nije primenjena, dok 1 i 2 označavaju dve transformacione matrice koje postoje u jednom LFNST skupu kada je LFNST primenjena.
[0228] Kao što je prethodno objašnjeno, LFNST skup određuje režim intra predikcije, i u slučaju ISP režima predikcije, pošto se svi particioni blokovi u jedinici kodiranja predviđaju istim režimom intra predikcije, particioni blokovi mogu koristiti isti LFNST skup.
[0229] Kao još jedan primer, signalizacija LFNST indeksa i dalje se vrši u jedinicama kodiranja, ali u slučaju ISP režima predikcije nije određeno da li se LFNST jednako primenjuje na sve particione blokove, već se za svaki particioni blok može pojedinačno odlučiti da li se primenjuje vrednost LFNST indeksa signalizirana na nivou jedinice kodiranja ili se LFNST ne primenjuje. Ova posebna odluka može se signalizirati u vidu zastavice za svaki particioni blok kroz protok bitova, gde, kada je vrednost zastavice 1, primenjuje se LFNST indeks signaliziran na nivou jedinice kodiranja, a kada je vrednost zastavice 0, LFNST se ne primenjuje.
[0230] U jedinici za kodiranje na koju se primenjuje ISP režim, primer primene LFNST transformacije kada je dužina jedne strane particionog bloka manja od 4 opisan je kako sledi.
[0231] Prvo, kada je veličina particionog bloka Nx2 (2xN), LFNST može biti primenjena na gornju levu oblast dimenzija Mx2 (2xM), (gde je M < N). Na primer, kada je M = 8, gornja leva oblast postaje 8x2 (ili 2x8), i tako oblast u kojoj postoji 16 preostalih signala može biti ulaz u LFNST u smeru kodiranja, pri čemu se može primeniti transformaciona matrica u smeru kodiranja dimenzija Rx16 (gde je R ≤ 16).
[0232] Ovde, LFNST matrica u smeru kodiranja može biti posebna dodatna matrica, različita od matrica koje su uključene u aktuelni VVC standard. Dalje, radi kontrole složenosti u najgorem slučaju, za transformaciju se može koristiti matrica dimenzija 8x16, u kojoj su uzorkovani samo gornjih 8 rednih vektora iz matrice 16x16. Postupak kontrole složenosti biće detaljno opisan kasnije.
[0233] Drugo, kada je veličina particionog bloka Nx1 (1xN), LFNST se može primeniti na gornju levu oblast dimenzija Mx1 (1xM), gde je M ≤ N. Na primer, kada je M = 16, gornja leva oblast postaje 16x1 (ili 1x16), pa oblast u kojoj postoji 16 preostalih signala može biti ulaz za LFNST u smeru kodiranja, uz primenu transformacione matrice u smeru kodiranja dimenzija Rx16 (gde je R ≤ 16).
[0234] Ovde, odgovarajuća LFNST matrica u smeru kodiranja može takođe biti posebna dodatna matrica, različita od matrica uključenih u aktuelni VVC standard. Takođe, radi kontrole složenosti u najgorem slučaju, može se koristiti matrica 8x16, u kojoj su uzorkovani samo gornjih 8 rednih vektora matrice 16x16. Postupak kontrole složenosti biće detaljno opisan kasnije.
[0235] Prvi i drugi način ostvarivanja mogu se primeniti istovremeno, ili se može primeniti samo jedan od ta dva načina. Posebno, u slučaju drugog načina ostvarivanja, budući da se u LFNST uzima u obzir primarna transformacija, kroz eksperimente je uočeno da je poboljšanje performansi kompresije koje se može postići pomoću postojeće LFNST relativno malo u poređenju sa troškom signalizacije LFNST indeksa. Međutim, u slučaju prvog načina ostvarivanja, uočeno je poboljšanje performansi kompresije slično onome koje se može postići konvencionalnom LFNST transformacijom. Drugim rečima, u slučaju ISP režima, kroz eksperimente je utvrđeno da primena LFNST transformacije na blokove dimenzija 2xN i Nx2 doprinosi stvarnom poboljšanju performansi kompresije.
[0236] U okviru LFNST transformacije u aktuelnom VVC standardu, primenjuje se simetrija između režima intra predikcije. Isti LFNST skup se primenjuje na dva pravca predikcije raspoređena oko režima 34 (predikcija u dijagonalnom pravcu od 45 stepeni ka dole desno), na primer, ista LFNST grupa se primenjuje na režim 18 (režim predikcije u horizontalnom pravcu) i režim 50 (režim predikcije u vertikalnom pravcu). Međutim, kod režima od 35 do 66, kada se primenjuje LFNST transformacija u smeru kodiranja, ulazni podaci se transponuju, pa se zatim primenjuje LFNST.
[0237] VVC podržava režim intra predikcije širokog ugla (WAIP), a LFNST grupa se izvodi na osnovu izmenjenog režima intra predikcije, uzimajući u obzir WAIP režim. Za režime koji su prošireni pomoću WAIP, LFNST grupa se određuje korišćenjem simetrije, kao kod opšteg režima intra predikcije. Na primer, budući da je režim -1 simetričan sa režimom 67, primenjuje se ista LFNST grupa; i kako je režim -14 simetričan sa režimom 80, primenjuje se ista LFNST grupa. Kod režima 67 do 80, LFNST transformacija se primenjuje nakon transponovanja ulaznih podataka, pre primene LFNST u smeru kodiranja.
[0238] U slučaju kada se LFNST primenjuje na gornje levo Mx2 (Mx1) blok, budući da je blok na koji se LFNST primenjuje nepravilnog, odnosno nekvadratnog oblika, simetrija LFNST ne može da se primeni. Zbog toga, umesto da se primenjuje simetrija zasnovana na režimu intra predikcije, kao u LFNST iz tabele 2, može se primeniti simetrija između Mx2 (Mx1) bloka i 2xM (1xM) bloka.
[0239] FIG.19 predstavlja dijagram koji ilustruje simetriju između Mx2 (Mx1) blokova i 2xM (1xM) blokova prema jednom načinu ostvarivanja.
[0240] Kao što je prikazano na FIG.19, budući da se može smatrati da je režim 2 u bloku Mx2 (Mx1) simetričan sa režimom 66 u bloku 2xM (1xM), ista LFNST grupa se može primeniti na oba bloka – i 2xM (1xM) i Mx2 (Mx1).
[0241] U tom slučaju, da bi se LFNST grupa koja se primenjuje na blok Mx2 (Mx1) mogla primeniti na blok 2xM (1xM), LFNST grupa se bira na osnovu režima 2 umesto režima 66.
Odnosno, pre primene LFNST u smeru kodiranja transformacije, nakon transponovanja ulaznih podataka iz bloka 2xM (1xM), može se primeniti LFNST transformacija.
[0242] FIG.20 predstavlja dijagram koji ilustruje primer transponovanja 2xM bloka prema jednom načinu ostvarivanja.
[0243] (a) FIG.20 predstavlja dijagram koji ilustruje da se LFNST može primeniti čitanjem ulaznih podataka po kolonama za 2xM blok, a (b) FIG.20 predstavlja dijagram koji ilustruje da se LFNST može primeniti čitanjem ulaznih podataka po redovima za Mx2 (Mx1) blok. Postupak primene LFNST-a na gornji levo Mx2 (Mx1) ili 2xM (Mx1) blok opisan je kako sledi.
1. Prvo, kao što je prikazano na (a) i (b) FIG.20, ulazni podaci se raspoređuju radi formiranja ulaznog vektora za primenu direktne LFNST transformacije. Na primer, uz pozivanje na FIG.19, za Mx2 blok predviđen u režimu 2, prati se redosled iz (b) FIG.20, a za 2xM blok predviđen u režimu 66, ulazni podaci se raspoređuju po redosledu iz (a) FIG.
20, nakon čega se može primeniti LFNST skup za režim 2.
2. Za Mx2 (Mx1) blok, LFNST skup se određuje na osnovu modifikovanog režima intra predikcije uzimajući u obzir WAIP. Kao što je prethodno opisano, unapred definisan odnos mapiranja je uspostavljen između režima intra predikcije i LFNST skupa, koji može biti predstavljen tabelom mapiranja kao što je prikazano u tabeli 2.
[0244] Za 2xM (1xM) blok, simetričan režim oko režima predikcije (režim 34 u slučaju VVC standarda) u dijagonalnom pravcu od 45 stepeni nadole u odnosu na modifikovani režim intra predikcije uzimajući u obzir WAIP se određuje, a zatim se LFNST skup određuje na osnovu odgovarajućeg simetričnog režima i tabele mapiranja. Simetričan režim (y) u odnosu na režim 34 može se izvesti pomoću sledeće jednačine. Tabela mapiranja biće detaljnije opisana u nastavku.
[0245] 3. Kada se primeni LFNST u smeru kodiranja, koeficijenti transformacije mogu biti izvedeni množenjem ulaznih podataka pripremljenih u postupku 1 sa LFNST jezgrom. LFNST jezgro može biti izabrano iz LFNST skupa određenog u postupku 2 i unapred određenog LFNST indeksa.
[0246] Na primer, kada je M = 8 i kao LFNST jezgro se primeni matrica dimenzija 16x16, može se generisati 16 koeficijenata transformacije množenjem matrice sa 16 ulaznih podataka.
Generisani koeficijenti transformacije mogu biti raspoređeni u gornjoj levoj 8x2 ili 2x8 oblasti u redosledu skeniranja koji se koristi u VVC standardu.
[0247] FIG.21 ilustruje redosled skeniranja za 8x2 ili 2x8 oblasti prema jednom načinu ostvarivanja.
[0248] Sve oblasti osim gornje leve 8x2 ili 2x8 oblasti mogu biti popunjene nulama (popunjavanje nulama) ili postojeći koeficijenti transformacije na koje je primenjena primarna transformacija mogu ostati nepromenjeni. Unapred određeni LFNST indeks može biti jedna od vrednosti LFNST indeksa (0, 1, 2) koje se isprobavaju prilikom izračunavanja RD troška dok se menja vrednost LFNST indeksa u procesu kodiranja.
[0249] U slučaju (na primer, 8 množenja po uzorku) konfiguracije koja podešava složenost proračuna u najgorem slučaju na određeni nivo ili niže, na primer, nakon generisanja samo 8 koeficijenata transformacije množenjem matrice 8x16, koja uzima samo gornjih 8 redova matrice 16x16, 8 koeficijenata transformacije može biti raspoređeno u redosledu skeniranja sa FIG.21, a popunjavanje nulama može biti primenjeno na preostale oblasti koeficijenata.
Kontrola složenosti za najgori slučaj biće detaljnije opisana kasnije.
[0250] 4. Kada se primeni inverzna LFNST, unapred određen broj (na primer, 16) koeficijenata transformacije se postavlja kao ulazni vektor, a zatim se biraju LFNST skup dobijen u postupku 2 i LFNST jezgro (na primer, matrica 16x16) izvedeno iz parsiranog LFNST indeksa, i množenjem LFNST jezgra i odgovarajućeg ulaznog vektora može biti izveden izlazni vektor.
[0251] U slučaju Mx2 (Mx1) bloka, izlazni vektori mogu biti raspoređeni redosledom po redovima kao na (b) FIG.20, a u slučaju 2xM (1xM) bloka, izlazni vektori mogu biti raspoređeni redosledom po kolonama kao na (a) FIG.20.
[0252] Preostale oblasti, osim oblasti u kojoj je raspoređen odgovarajući izlazni vektor unutar gornje leve Mx2 (Mx1) ili 2xM (Mx1) oblasti i oblasti van gornje leve Mx2 (Mx1) ili 2xM (Mx1) oblasti u podbloku, mogu biti popunjene nulama ili mogu biti konfigurisane da zadrže rekonstruisane koeficijente transformacije kakvi jesu kroz postupke kodiranja ostataka i inverzne kvantizacije.
[0253] Prilikom konfigurisanja ulaznog vektora, kao u tački 3, ulazni podaci mogu biti raspoređeni u redosledu skeniranja sa FIG.21, a u cilju kontrole složenosti izračunavanja u najgorem slučaju na određeni nivo ili niže, ulazni vektor može biti konfigurisan smanjenjem broja ulaznih podataka (npr.8 umesto 16).
[0254] Na primer, kada je M = 8, ako se koristi 8 ulaznih podataka, može se uzeti samo leva 16x8 matrica iz odgovarajuće matrice 16x16 i pomnožiti da bi se dobilo 16 izlaznih podataka. Kontrola složenosti za najgori slučaj biće detaljnije opisana kasnije.
[0255] U prethodno navedenom načinu ostvarivanja, kada se primenjuje LFNST, prikazan je slučaj kada se simetrija primenjuje između Mx2 (Mx1) bloka i 2xM (1xM) bloka, ali prema drugom primeru, različiti LFNST skupovi mogu biti primenjeni na svaki od dva oblika bloka.
[0256] U nastavku teksta biće opisani različiti primeri konfiguracije LFNST skupa za ISP režim i postupak mapiranja koristeći režim intra predikcije.
[0257] U slučaju ISP režima, konfiguracija LFNST skupa može biti različita od postojeće konfiguracije LFNST skupa. Drugim rečima, mogu se primeniti jezgra različita od postojećih LFNST jezgara, a može se primeniti i tabela mapiranja različita od tabele mapiranja između indeksa režima intra predikcije koji se primenjuje u trenutnom VVC standardu i LFNST skupa. Tabela mapiranja primenjena u trenutnom VVC standardu može biti ista kao u tabeli 2.
[0258] U tabeli 2, vrednost preModeIntra označava vrednost režima intra predikcije promenjenu uzimajući u obzir WAIP, a vrednost lfnstTrSetIdx predstavlja indeks koji ukazuje na određeni LFNST skup. Svaki LFNST skup je konfigurisan sa dva LFNST jezgra.
[0259] Kada se primeni ISP režim predikcije, ako su i horizontalna i vertikalna dužina svakog podbloka jednaki ili veći od 4, može se primeniti isto jezgro kao LFNST jezgro koje se koristi u trenutnom VVC standardu, a tabela mapiranja može se primeniti bez izmena. Moguće je primeniti i tabelu mapiranja i LFNST jezgro različite od onih u trenutnom VVC standardu.
[0260] Kada se primeni ISP režim predikcije, a horizontalna ili vertikalna dužina svakog podbloka je manja od 4, mogu se primeniti tabela mapiranja i LFNST jezgro različiti od onih u trenutnom VVC standardu. U nastavku teksta, tabele 6 do 8 predstavljaju tabele mapiranja između vrednosti režima intra predikcije (vrednost režima intra predikcije promenjena uzimajući u obzir WAIP) i LFNST skupa, koje se mogu primeniti na Mx2 (Mx1) blok ili 2xM (1xM) blok.
[Tabela 6]
predModeIntra lfnstTrSetIdx
predModeIntra < 0 1
0 <= predModeIntra <= 1 0
2 <= predModeIntra <= 12 1
13 <= predModeIntra <= 23 2
24 <= predModeIntra <= 34 3
35 <= predModeIntra <= 44 4
45 <= predModeIntra <= 55 5
56 <= predModeIntra <= 66 6
67 <= predModeIntra <= 80 6
81 <= predModeIntra <= 83 0
[Tabela 7]
predModeIntra lfnstTrSetIdx
predModeIntra < 0 1
0 <= predModeIntra <= 1 0
2 <= predModeIntra <= 23 1
24 <= predModeIntra <= 44 2
45 <= predModeIntra <= 66 3
67 <= predModeIntra <= 80 3
81 <= predModeIntra <= 83 0
[Tabela 8]
predModeIntra lfnstTrSetIdx
[0261] Prva tabela mapiranja iz tabele 6 konfigurisana je sa sedam LFNST skupova, tabela mapiranja iz tabele 7 konfigurisana je sa četiri LFNST skupa, a tabela mapiranja iz tabele 8 konfigurisana je sa dva LFNST skupa. Kao drugi primer, kada je konfiguracija izvedena sa jednim LFNST skupom, vrednost lfnstTrSetIdx može biti fiksirana na 0 u odnosu na vrednost preModeIntra.
[0262] U nastavku teksta biće opisan postupak održavanja računarske složenosti u najgorem slučaju kada se LFNST primenjuje na ISP režim.
[0263] U slučaju ISP režima, kada se primenjuje LFNST, kako bi se broj množenja po uzorku (ili po koeficijentu, po poziciji) održao na određenoj vrednosti ili nižoj, primena LFNST-a može biti ograničena. U zavisnosti od veličine bloka particije, broj množenja po uzorku (ili po koeficijentu, po poziciji) može se održati na 8 ili manje primenom LFNST-a na sledeći način:
1. Kada su i horizontalna i vertikalna dužina bloka particije 4 ili više, može se primeniti isti postupak kao postupak kontrole složenosti izračunavanja u najgorem slučaju za LFNST u trenutnom VVC standardu.
[0264] Odnosno, kada je blok particije blok veličine 4x4, umesto 16x16 matrice može se primeniti 8x16 matrica dobijena uzorkovanjem gornjih 8 redova iz 16x16 matrice u smeru unapred, dok se u obrnutom smeru može primeniti 16x8 matrica dobijena uzorkovanjem levih 8 kolona iz 16x16 matrice. Dalje, kada su blokovi particije veličine 8x8, u smeru unapred, umesto 16x48 matrice primenjuje se 8x48 matrica dobijena uzorkovanjem gornjih 8 redova iz 16x48 matrice, a u obrnutom smeru, umesto 48x16 matrice, može se primeniti 48x8 matrica dobijena uzorkovanjem levih 8 kolona iz 48x16 matrice.
[0265] U slučaju bloka veličine 4xN ili Nx4 (N > 4), kada se izvodi transformacija u smeru kodiranja, 16 koeficijenata generisanih primenom 16x16 matrice samo na gornji levi 4x4 blok može biti raspoređeno u gornjoj levoj 4x4 oblasti, a ostale oblasti mogu biti popunjene nulama. Dalje, kada se vrši inverzna transformacija, 16 koeficijenata lociranih u gornjem levom 4x4 bloku raspoređuju se redosledom skeniranja radi formiranja ulaznog vektora, a zatim se množenjem sa 16x16 matricom može generisati 16 izlaznih podataka. Generisani izlazni podaci mogu biti raspoređeni u gornjoj levoj 4x4 oblasti, a preostale oblasti, osim gornje leve 4x4 oblasti, mogu biti popunjene nulama.
[0266] U slučaju bloka veličine 8xN ili Nx8 (N > 8), kada se izvodi transformacija u pravcu kodiranja, 16 koeficijenata generisanih primenom 16x48 matrice samo na ROI oblast (preostale oblasti isključujući donje desne 4x4 blokove iz gornjih levih 8x8 blokova) unutar gornjih levih 8x8 blokova može biti raspoređeno u gornjoj levoj 4x4 oblasti, a sve ostale oblasti mogu biti popunjene nulama. Dalje, kada se vrši inverzna transformacija, 16 koeficijenata lociranih u gornjem levom 4x4 bloku raspoređuju se redosledom skeniranja radi formiranja ulaznog vektora, a zatim se množenjem tog ulaznog vektora sa 48x16 matricom može generisati 48 izlaznih podataka. Generisani izlazni podaci mogu biti popunjeni u ROI oblasti, a sve ostale oblasti mogu biti popunjene nulama.
[0267] 2. Kada je veličina bloka particije Nx2 ili 2xN i kada se LFNST primenjuje na gornju levu Mx2 ili 2xM oblast (M ≤ N), može se primeniti matrica uzorkovana u skladu sa vrednošću N.
[0268] U slučaju M = 8, za blok particije veličine N = 8, tj. blok 8x2 ili 2x8, umesto 16x16 matrice u slučaju transformacije unapred može se primeniti 8x16 matrica dobijena uzorkovanjem gornjih 8 redova iz 16x16 matrice, a u slučaju inverzne transformacije, umesto 16x16 matrice može se primeniti 16x8 matrica dobijena uzorkovanjem levih 8 kolona iz 16x16 matrice.
[0269] Kada je N veće od 8, 16 izlaznih podataka generisanih primenom matrice 16×16 na gornje levo 8×2 ili 2×8 blok u slučaju direktne transformacije raspoređuju se u gornji levi 8×2 ili 2×8 blok, a preostale oblasti mogu biti popunjene vrednošću 0. U slučaju inverzne transformacije, 16 koeficijenata koji se nalaze u gornjem levom 8×2 ili 2×8 bloku raspoređuju se redosledom skeniranja kako bi formirali ulazni vektor, a zatim se 16 izlaznih podataka može generisati množenjem matricom 16×16. Generisani izlazni podaci mogu se rasporediti u gornji levi 8×2 ili 2×8 blok, a sve preostale oblasti mogu biti popunjene vrednošću 0.
[0270] 3. Kada je veličina bloka particije Nx1 ili 1xN i kada se LFNST primenjuje na gornju levu oblast Mx1 ili 1xM (gde je M ≤ N), može se primeniti matrica uzorkovana u zavisnosti od vrednosti N.
[0271] Kada je M = 16, za blok particije dimenzija N = 16, tj. blok 16×1 ili 1×16, umesto matrice 16×16 može se primeniti matrica 8×16 dobijena uzorkovanjem gornjih 8 redova iz matrice 16×16 u slučaju direktne transformacije, a u slučaju inverzne transformacije, umesto matrice 16×16 može se primeniti matrica 16×8 dobijena uzorkovanjem levih 8 kolona iz matrice 16×16.
[0272] Kada je N veće od 16, 16 izlaznih podataka generisanih primenom matrice 16×16 na gornji levi 16×1 ili 1×16 blok u slučaju direktne transformacije može se rasporediti u gornji levi 16×1 ili 1×16 blok, a preostale oblasti mogu biti popunjene vrednošću 0. U slučaju inverzne transformacije, 16 koeficijenata koji se nalaze u gornjem levom 16×1 ili 1×16 bloku mogu se rasporediti redosledom skeniranja kako bi formirali ulazni vektor, a zatim se 16 izlaznih podataka može generisati množenjem matricom 16×16. Generisani izlazni podaci mogu se rasporediti u gornji levi 16×1 ili 1×16 blok, a sve preostale oblasti mogu biti popunjene vrednošću 0.
[0273] Kao još jedan primer, kako bi se broj množenja po uzorku (ili po koeficijentu, po poziciji) održao na određenoj vrednosti ili ispod nje, broj množenja po uzorku (ili po koeficijentu, po poziciji) može se ograničiti na 8 ili manje na osnovu veličine ISP kodirajuće jedinice, a ne na osnovu veličine ISP bloka particije. Kada samo jedan blok među ISP blokovima particije zadovoljava uslov za primenu LFNST-a, izračunavanje složenosti za najgori slučaj LFNST-a može se izvršiti na osnovu veličine odgovarajuće kodirajuće jedinice, a ne veličine bloka particije. Na primer, luma blok kodiranja jedne kodirajuće jedinice (CU) podeljen je (ili particionisan) u četiri bloka particije, od kojih svaki ima dimenzije 4×4. Ako, među ta četiri bloka particije, ne postoji nenulti koeficijent transformacije za dva bloka, svaki od preostala dva bloka particije može biti konfigurisana tako da ima po 16 koeficijenata transformacije umesto 8, generisanih u njima (na osnovu kodera).
[0274] U nastavku teksta biće opisan postupak signalizacije LFNST indeksa u slučaju ISP režima.
[0275] Kao što je prethodno opisano, LFNST indeks može imati vrednost 0, 1 ili 2, pri čemu 0 označava da se LFNST ne primenjuje, a 1 i 2 označavaju po jednu od dve LFNST matrice jezgra koje su uključene u izabrani LFNST skup. LFNST se primenjuje na osnovu LFNST matrice jezgra koja je izabrana pomoću LFNST indeksa. U aktuelnom VVC standardu, postupak prema kojem se LFNST prenosi opisan je na sledeći način:
1. LFNST indeks može biti prenet jednom po svakoj kodirajućoj jedinici (CU), a u slučaju dvostrukog stabla, LFNST indeks može biti zasebno signaliziran za svaki od luma bloka i hroma bloka.
2. Kada LFNST indeks nije signaliziran, pretpostavlja se da je njegova vrednost 0, što je podrazumevana vrednost. Slučajevi u kojima se vrednost LFNST indeksa pretpostavlja kao 0 biće opisani u nastavku:
A. Kada režim odgovara režimu u kojem se transformacija ne primenjuje (npr. preskakanje transformacije, BDPCM, beskorisno kodiranje i slično)
B. Kada primarna transformacija nije DCT-2 (već DST7 ili DCT8), tj. kada horizontalna transformacija ili vertikalna transformacija nije DCT-2
C. Kada horizontalna ili vertikalna dužina luma bloka kodirajuće jedinice premašuje maksimalnu dozvoljenu veličinu luma transformacije, npr. kada je maksimalna dozvoljena veličina luma transformacije jednaka 64, a kada je veličina luma bloka jedinice za kodiranje jednaka 128×16, LFNST se ne može primeniti.
[0276] U slučaju dvostrukog stabla, određuje se da li je maksimalna veličina luma transformacije prekoračena za svaku od kodirajućih jedinica za luma komponentu i kodirajućih jedinica za hroma komponentu. Odnosno, proverava se da li je prekoračena maksimalna veličina luma transformacije koja je dostupna za transformaciju za luma blok, i proverava se da li su horizontalna/vertikalna dužina i maksimalna veličina luma transformacije koja je dostupna za transformaciju odgovarajućeg luma bloka prekoračene za hroma blok. Na primer, kada je kolorni format 4:2:0, svaka od horizontalne/vertikalne dužine odgovarajućeg luma bloka postaje dvostruko veća od dužine odgovarajućeg hroma bloka, i veličina transformacije odgovarajućeg luma bloka postaje dvostruko veća od veličine odgovarajućeg hroma bloka. Kao još jedan primer, kada je kolorni format 4:4:4, horizontalne/vertikalne dužine i veličina transformacije odgovarajućeg luma bloka su iste kao i kod odgovarajućeg hroma bloka.
[0277] Transformacija dužine 64 ili transformacija dužine 32 znači da se transformacija primenjuje na horizontalnu ili vertikalnu dužinu od 64 ili 32, redom. Takođe, „veličina transformacije“ može da označava odgovarajuću dužinu od 64 ili 32.
[0278] U slučaju jednostrukog stabla, nakon provere da li horizontalna ili vertikalna dužina luma bloka premašuje maksimalnu veličinu luma transformacionog bloka koja je dostupna za transformaciju, ako ta dužina premašuje dozvoljenu veličinu, signalizacija LFNST indeksa može biti preskočena (ili izostavljena).
[0279] D. LFNST indeks može biti prenet samo kada su i horizontalna i vertikalna dužina kodirajuće jedinice jednake 4 ili više.
[0280] U slučaju dvostrukog stabla, LFNST indeks može biti signaliziran samo kada su i horizontalna i vertikalna dužina odgovarajuće komponente (tj. luma ili hroma element) jednake 4 ili više.
[0281] U slučaju jednostrukog stabla, LFNST indeks može biti signaliziran kada su i horizontalna i vertikalna dužina za luma komponentu jednake 4 ili više.
[0282] E. Kada pozicija poslednjeg nenultog koeficijenta nije DC pozicija (gornja leva pozicija u bloku), ako je blok luma blok tipa dvostrukog stabla, i ako pozicija poslednjeg nenultog koeficijenta nije DC pozicija, LFNST indeks se prenosi. Ako je blok hroma blok tipa dvostrukog stabla, i ako najmanje jedna od pozicije poslednjeg nenultog koeficijenta za Cb i pozicije poslednjeg nenultog koeficijenta za Cr nije DC pozicija, odgovarajući LFNST indeks se prenosi.
[0283] U slučaju tipa jednostrukog stabla, za bilo koju od komponenti – luma (luma), Cb ili Cr – ako odgovarajuća pozicija poslednjeg nenultog koeficijenta nije DC pozicija, LFNST indeks se prenosi.
[0284] Ovde, kada je vrednost zastavice kodiranog bloka (CBF), koja označava prisustvo ili odsustvo koeficijenta transformacije za jedan transformacioni blok, jednaka 0, radi određivanja da li treba izvršiti signalizaciju LFNST indeksa, pozicija poslednjeg nenultog koeficijenta za odgovarajući transformacioni blok se ne proverava. Odnosno, kada je odgovarajuća CBF vrednost jednaka 0, jer transformacija nije primenjena na odgovarajući blok, prilikom provere uslova za signalizaciju LFNST indeksa, pozicija poslednjeg nenultog koeficijenta se može zanemariti.
[0285] Na primer, 1) u slučaju tipa dvostrukog stabla i luma komponente, ako je odgovarajuća CBF vrednost jednaka 0, LFNST indeks se ne signalizira, 2) u slučaju tipa dvostrukog stabla i hroma komponente, ako je CBF vrednost za Cb jednaka 0 a CBF vrednost za Cr jednaka 1, proverava se samo pozicija poslednjeg nenultog koeficijenta za Cr kako bi se preneo odgovarajući LFNST indeks, i 3) u slučaju tipa jednostrukog stabla, proverava se samo pozicija poslednjeg nenultog koeficijenta za luma element, Cb ili Cr element od kojih svaki ima vrednost jednaku 1.
[0286] F. Kada se utvrdi da koeficijent transformacije postoji na poziciji van opsega pozicija na kojima može postojati LFNST koeficijent transformacije, signalizacija LFNST indeksa može se preskočiti (ili izostaviti). U slučaju transformacionog bloka veličine 4×4 i 8×8, prema redosledu skeniranja koeficijenata transformacije u standardu VVC, LFNST koeficijent transformacije može postojati na 8 pozicija počevši od DC pozicije, dok sve preostale pozicije mogu biti popunjene nulama. Dodatno, u slučaju kada transformacioni blok nije blok veličine 4×4 ili 8×8, prema redosledu skeniranja koeficijenata transformacije u standardu VVC, LFNST koeficijent transformacije može postojati na 16 pozicija počevši od DC pozicije, dok sve preostale pozicije mogu biti popunjene nulama.
[0287] Dakle, nakon izvršene kodifikacije preostalog signala, kada nenulti koeficijent transformacije postoji u oblasti koja bi trebalo da bude popunjena isključivo nulama, signalizacija LFNST indeksa može se preskočiti (ili izostaviti).
[0288] U međuvremenu, ISP režim može se primenjivati samo na luma blok ili i na luma i na hroma blok. Kao što je prethodno opisano, kada se primenjuje ISP predikcija, predikcija se izvršava nakon deobe (ili particionisanja) odgovarajuće kodirajuće jedinice na 2 ili 4 particione blokove, i transformacija se takođe može primenjivati na svaki od odgovarajućih particionih blokova. Dakle, čak i kada se razmatraju uslovi za signalizaciju LFNST indeksa po kodirajućim jedinicama, treba imati u vidu da se LFNST može primeniti na svaki od odgovarajućih particionih blokova. Dodatno, kada se ISP režim predikcije primenjuje samo na određenu komponentu (npr. luma blok), LFNST indeks treba signalizirati uzimajući u obzir da se kodirajuća jedinica deli na particione blokove samo za tu komponentu. Postupci signalizacije LFNST indeksa koji su dostupni za ISP režim biće opisani u nastavku.
1. LFNST indeks može biti prenesen jednom po kodirajućoj jedinici (CU), a u slučaju režima dvostrukog stabla, LFNST indeks može biti signaliziran posebno za luma blok i za hroma blok.
2. Kada LFNST indeks nije signaliziran, indeks se podrazumevano pretpostavlja kao 0.
Slučajevi u kojima se vrednost LFNST indeksa pretpostavlja kao 0 opisani su u nastavku. A. Kada režim odgovara režimu u kojem se transformacija ne primenjuje (npr.
preskakanje transformacije, BDPCM, beskorisno kodiranje i slično)
B. Kada horizontalna ili vertikalna dužina luma bloka kodirajuće jedinice premašuje maksimalnu veličinu luma transformacije koja je dostupna za primenu transformacije, npr. kada je maksimalna veličina luma transformacije jednaka 64, a veličina luma bloka kodirajućeg bloka jednaka 128×16, LFNST se ne može primeniti.
[0289] Da li će se izvršiti signalizacija LFNST indeksa može se odrediti na osnovu veličine particionog bloka, umesto na osnovu kodirajuće jedinice. Odnosno, kada horizontalna ili vertikalna dužina particionog bloka za odgovarajući luma blok premašuje maksimalnu veličinu luma transformacije dostupnu za primenu transformacije, signalizacija LFNST indeksa može se preskočiti (ili izostaviti), a vrednost LFNST indeksa može se pretpostaviti kao 0.
[0290] U slučaju režima dvostrukog stabla, određuje se da li je maksimalna veličina transformacionog bloka premašena za svaku kodirajuću jedinicu ili particioni blok za luma komponentu i za svaku kodirajuću jedinicu ili particioni blok za hroma komponentu. Odnosno, upoređivanjem horizontalne i vertikalne dužine kodirajuće jedinice ili particionog bloka za luma komponentu sa maksimalnom veličinom luma transformacije, i kada se utvrdi da je najmanje jedna od dužina veća od maksimalne veličine luma transformacije, LFNST se ne primenjuje. U slučaju kodirajuće jedinice ili particionog bloka za hroma komponentu, horizontalne/vertikalne dužine odgovarajućeg luma bloka u formatu boje se upoređuju sa maksimalnom veličinom luma transformacije dostupnom za transformaciju. Na primer, kada je format boje 4:2:0, svaka od horizontalnih/vertikalnih dužina odgovarajućeg luma bloka postaje dva puta veća od dužina odgovarajućeg hroma bloka, i veličina transformacije odgovarajućeg luma bloka postaje dva puta veća od veličine odgovarajućeg hroma bloka. Kao drugi primer, kada je format boje 4:4:4, horizontalne/vertikalne dužine i veličina transformacije odgovarajućeg luma bloka iste su kao kod odgovarajućeg hroma bloka.
[0291] U slučaju režima jednog stabla, nakon provere da li horizontalna ili vertikalna dužina za luma blok (kodirajuća jedinica ili particioni blok) premašuje maksimalnu veličinu transformacionog bloka dostupnu za transformaciju, ako dužina premašuje veličinu transformacionog bloka, signalizacija LFNST indeksa može se preskočiti (ili izostaviti).
[0292] C. Ako se primenjuje LFNST koji je uključen u trenutni VVC standard, LFNST indeks može se prenositi samo kada su i horizontalna i vertikalna dužina particionog bloka jednake 4 ili više.
[0293] Nezavisno od LFNST-a koji je uključen u trenutni VVC standard, ako se primenjuje LFNST za blok veličine 2×M (1×M) ili M×2 (M×1), LFNST indeks može se prenositi samo u slučaju kada je veličina particionog bloka jednaka ili veća od bloka 2×M (1×M) ili M×2 (M×1). Ovde, kada je blok veličine P×Q jednak ili veći od bloka veličine R×S, to znači da je P ≥ R i Q ≥ S.
[0294] Ukratko, LFNST indeks može da se prenosi samo u slučaju kada je veličina particionog bloka jednaka ili veća od minimalne veličine na koju se LFNST može primeniti. U slučaju dvostrukog stabla režima, LFNST indeks može se signalizirati samo u slučaju kada je veličina particionog bloka za luma ili hroma element jednaka ili veća od minimalne veličine na koju se LFNST može primeniti. U slučaju režima jednog stabla, LFNST indeks može se signalizirati samo u slučaju kada je veličina particionog bloka za luma element jednaka ili veća od minimalne veličine na koju se LFNST može primeniti.
[0295] U ovoj specifikaciji, kada je blok M×N jednak ili veći od bloka K×L, to znači da je M jednako ili veće od K i da je N jednako ili veće od L. Kada je blok M×N veći od bloka K×L, to znači da je M jednako ili veće od K i da je N jednako ili veće od L, dok je M veće od K ili je N veće od L. Kada je blok M×N manji od ili jednak bloku K×L, to znači da je M manja od ili jednaka K i da je N manja od ili jednaka L. A kada je blok M×N manji od bloka K×L, to znači da je M manja od ili jednaka K i da je N manja od ili jednaka L, dok je M manje od K ili je N manje od L.
[0296] D. Kada pozicija poslednjeg nenultog koeficijenta nije DC pozicija (gornje levo mesto u bloku), ako je blok tipa dvostrukog stabla i odnosi se na luma blok, i ako odgovarajuća pozicija poslednjeg nenultog koeficijenta makar jednog od svih particionih blokova nije DC pozicija, LFNST indeks može se preneti. Ako je blok tipa dvostrukog stabla i odnosi se na hroma blok, i ako makar jedna od pozicija poslednjeg nenultog koeficijenta svih particionih blokova za Cb (kada se ISP režim ne primenjuje na hroma komponentu, uzima se da je broj particionih blokova jednak 1) i pozicija poslednjeg nenultog koeficijenta svih particionih blokova za Cr (kada se ISP režim ne primenjuje na hroma komponentu, uzima se da je broj particionih blokova jednak 1) nije DC pozicija, odgovarajući LFNST indeks može se preneti.
[0297] U slučaju tipa jednog stabla, za bilo koji od luma, Cb ili Cr elemenata, ako je odgovarajuća pozicija poslednjeg nenultog koeficijenta makar jednog od svih particionih blokova različita od DC pozicije, LFNST indeks može se preneti.
[0298] Ovde, kada je vrednost zastavice kodiranog bloka (CBF), koja označava prisustvo ili odsustvo koeficijenata transformacije za svaki particioni blok, jednaka 0, kako bi se utvrdilo da li će se izvršiti signalizacija LFNST indeksa, pozicija poslednjeg nenultog koeficijenta za odgovarajući particioni blok ne proverava se. Odnosno, kada je odgovarajuća CBF vrednost jednaka 0, jer se transformacija ne primenjuje na odgovarajući blok, prilikom provere uslova za signalizaciju LFNST indeksa, pozicija poslednjeg nenultog koeficijenta tog particionog bloka ne uzima se u obzir.
[0299] Na primer, 1) u slučaju tipa dvostrukog stabla i luma elementa, ako je odgovarajuća vrednost CBF za svaki particioni blok jednaka 0, odgovarajući particioni blok se isključuje prilikom određivanja da li da se izvrši signalizacija LFNST indeksa; 2) u slučaju tipa dvostrukog stabla i hroma elementa, ako je vrednost CBF za Cb jednaka 0, a vrednost CBF za Cr jednaka 1 za svaki particioni blok, proverava se samo pozicija poslednjeg nenultog koeficijenta za Cr, kako bi se utvrdilo da li da se izvrši odgovarajuća signalizacija LFNST indeksa; i 3) u slučaju tipa jednog stabla, proveravaju se samo pozicije poslednjih nenultih koeficijenata za luma, Cb ili Cr elemente koji imaju vrednost CBF jednaku 1 za sve particione blokove, kako bi se utvrdilo da li da se izvrši signalizacija LFNST indeksa.
[0300] U slučaju ISP režima, informacije o slici mogu biti konfigurisane tako da se pozicija poslednjeg nenultog koeficijenta ne proverava, a odgovarajući načini ostvarivanja biće opisani u nastavku.
i. U slučaju ISP režima, provera pozicije poslednjeg nenultog koeficijenta za luma i hroma blokove se preskače, i signalizacija LFNST indeksa može biti dozvoljena. To jest, čak i ako je pozicija poslednjeg nenultog koeficijenta za sve particione blokove DC pozicija ili ako je odgovarajuća vrednost CBF jednaka 0, signalizacija LFNST indeksa može biti dozvoljena.
ii. U slučaju ISP režima, provera pozicije poslednjeg nenultog koeficijenta se preskače samo za luma blok, dok se za hroma blok provera vrši u skladu sa prethodno opisanim postupkom. Na primer, u slučaju tipa dvostrukog stabla i luma bloka, provera pozicije poslednjeg nenultog koeficijenta se ne sprovodi i signalizacija LFNST indeksa može biti dozvoljena. A u slučaju tipa dvostrukog stabla i hroma bloka, prisustvo ili odsustvo DC pozicije koja odgovara poslednjem nenultom koeficijentu proverava se u skladu sa prethodno opisanim postupkom, radi određivanja da li da se izvrši signalizacija odgovarajućeg LFNST indeksa.
iii. U slučaju ISP režima i tipa jednog stabla, može se primeniti postupak pod brojem i ili postupak pod brojem ii. To jest, ako se na ISP režim i tip jednog stabla primeni postupak i, provera pozicije poslednjeg nenultog koeficijenta za luma i hroma blokove može se preskočiti i signalizacija LFNST indeksa može biti dozvoljena. Alternativno, primenom postupka ii, može se preskočiti provera pozicije poslednjeg nenultog koeficijenta za particione blokove luma elementa, dok se provera za particione blokove hroma elementa (ako se ISP režim ne primenjuje na hroma element, može se smatrati da je broj particionih blokova jednak 1) može izvršiti u skladu sa prethodno opisanim postupkom, radi određivanja da li da se izvrši odgovarajuća signalizacija LFNST indeksa.
[0301] E. kada se potvrdi da koeficijent transformacije postoji na poziciji koja nije među onima na kojima može postojati LFNST koeficijent transformacije, čak i za jedan od svih particionih blokova, signalizacija LFNST indeksa može se preskočiti (ili izostaviti).
[0302] Na primer, u slučaju 4×4 particionog bloka i 8×8 particionog bloka, prema redosledu skeniranja koeficijenata transformacije standarda VVC, LFNST koeficijenti transformacije mogu postojati na 8 pozicija počevši od DC pozicije, a sve preostale pozicije mogu biti popunjene nulama. Dodatno, u slučaju kada je particioni blok jednak ili veći od 4×4, i u slučaju kada particioni blok nije 4×4 ni 8×8, prema redosledu skeniranja koeficijenata transformacije standarda VVC, LFNST koeficijenti transformacije mogu postojati na 16 pozicija počevši od DC pozicije, a sve preostale pozicije mogu biti popunjene nulama.
[0303] Shodno tome, nakon izvršene kodifikacije preostalog signala, kada koeficijent transformacije različit od nule postoji u oblasti koja treba da bude popunjena samo vrednostima nula, signalizacija LFNST indeksa može se preskočiti (ili izostaviti).
[0304] Ako se LFNST može primeniti čak i u slučaju kada je veličina particionog bloka jednaka 2×M (1×M) ili M×2 (M×1), oblast u kojoj LFNST koeficijenti transformacije mogu biti pozicionirani može biti određena kako je opisano u nastavku. Oblast van te oblasti u kojoj LFNST koeficijenti transformacije mogu biti pozicionirani može biti popunjena nulama. Takođe, kada se pretpostavi da je LFNST primenjen, ako koeficijent transformacije različit od nule postoji u oblasti koja treba da bude popunjena nulama, signalizacija LFNST indeksa može se preskočiti. i. Kada se LFNST može primeniti na blok veličine 2×M ili M×2, i kada je M = 8, može se generisati samo 8 LFNST koeficijenata transformacije za 2×8 ili 8×2 particioni blok. Kada su koeficijenti transformacije raspoređeni prema redosledu skeniranja prikazanom na FIG.20, 8 koeficijenata transformacije se raspoređuje u tom redosledu počevši od DC pozicije, a preostalih 8 pozicija može biti popunjeno nulama.
Za 2×N ili N×2 (N > 8) particioni blok može se generisati 16 LFNST koeficijenata transformacije. Kada su koeficijenti transformacije raspoređeni u redosledu skeniranja prikazanom na FIG.20, 16 koeficijenata transformacije se raspoređuje počevši od DC pozicije, a preostala oblast može biti popunjena nulama. To jest, u 2×N ili N×2 (N > 8) particionom bloku, oblast izvan gornje leve oblasti 2×8 ili 8×2 može biti popunjena nulama. Umesto 8 LFNST koeficijenata transformacije, može se generisati i 16 koeficijenata za blok 2×8 ili 8×2, i u tom slučaju ne postoji oblast koja treba biti popunjena nulama. Kao što je prethodno opisano, kada se primeni LFNST, i kada se otkrije da koeficijent transformacije različit od nule postoji u oblasti koja treba biti popunjena nulama makar i u jednom particionom bloku, signalizacija LFNST indeksa može se preskočiti, a LFNST indeks može se zaključiti kao 0.
ii. Kada se LFNST može primeniti na blok veličine 1×M ili M×1, i kada je M = 16, može se generisati samo 8 LFNST koeficijenata transformacije za particioni blok 1×16 ili 16×1. Kada su koeficijenti transformacije raspoređeni u redosledu skeniranja s leva na desno ili od vrha ka dnu, 8 koeficijenata transformacije se raspoređuje u odgovarajućem redosledu počevši od DC pozicije, a preostalih 8 pozicija može biti popunjeno nulama.
[0305] Za particioni blok veličine 1×N ili N×1 (N > 16), može se generisati 16 LFNST koeficijenata transformacije. Kada su koeficijenti transformacije raspoređeni u redosledu skeniranja s leva na desno ili od vrha ka dnu, 16 koeficijenata transformacije se raspoređuje u odgovarajućem redosledu počevši od DC pozicije, a preostala oblast može biti popunjena nulama. To jest, u particionom bloku veličine 1×N ili N×1 (N > 16), oblast izvan gornje leve oblasti 1×16 ili 16×1 može biti popunjena nulama.
[0306] Umesto 8 LFNST koeficijenata transformacije, može se takođe generisati 16 koeficijenata za particioni blok veličine 1×16 ili 16×1, i u tom slučaju ne postoji oblast koja treba biti popunjena nulama. Kao što je prethodno opisano, kada se LFNST primeni, i kada se otkrije da koeficijent transformacije različit od nule postoji u oblasti koja je određena da bude popunjena nulama, čak i u jednom particionom bloku, signalizacija LFNST indeksa može se preskočiti, a LFNST indeks može se zaključiti kao 0.
[0307] U međuvremenu, u slučaju ISP režima, u važećem VVC standardu, primenom nezavisnog (ili odvojenog) pozivanja na uslov dužine za horizontalni i vertikalni pravac, primenjuje se DST-7 umesto DCT-2, bez vršenja signalizacije za MTS indeks. U zavisnosti od toga da li su horizontalna ili vertikalna dužina jednake ili veće od 4 i manje ili jednake 16, određuje se jezgro primarne transformacije. Shodno tome, u slučaju ISP režima i kada se LFNST može primeniti, sledeće kombinacije transformacija mogu biti konfigurisane kako je opisano u nastavku.
1. U slučaju kada je LFNST indeks 0 (uključujući slučaj kada se LFNST indeks zaključuje kao 0), može se slediti uslov koji određuje primarnu transformaciju koja odgovara ISP režimu i koja je sadržana u važećem VVC standardu. To jest, nezavisnim (ili odvojenim) proveravanjem da li je ispunjen uslov dužine (tj. uslov da je dužina jednaka ili veća od 4 i manja ili jednaka 16) za horizontalni i vertikalni pravac, ako je uslov ispunjen, primenjuje se DST-7 za primarnu transformaciju umesto DCT-2. A ako uslov nije ispunjen, može se primeniti DCT-2.
2. U slučaju kada je LFNST indeks veći od 0, moguće su sledeće dve konfiguracije za primarnu transformaciju:
A. DCT-2 se može primeniti za oba pravca – horizontalni i vertikalni.
B. Može se slediti uslov koji određuje primarnu transformaciju koja odgovara ISP režimu i koja je sadržana u važećem VVC standardu. To jest, nezavisnim (ili odvojenim) proveravanjem da li je ispunjen uslov dužine (tj. uslov da je dužina jednaka ili veća od 4 i manja ili jednaka 16) za horizontalni i vertikalni pravac, ako je uslov ispunjen, primenjuje se DST-7 umesto DCT-2. A ako uslov nije ispunjen, može se primeniti DCT-2.
[0308] U slučaju ISP režima, informacije o slici mogu biti konfigurisane tako da se LFNST indeks može prenositi za svaki particioni blok, umesto da se prenosi za svaku kodirajuću jedinicu. U tom slučaju, prethodno opisani postupak signalizacije LFNST indeksa pretpostavlja da unutar jedinice kroz koju se prenosi LFNST indeks postoji samo jedan particioni blok, i može se odrediti da li da se izvrši signalizacija LFNST indeksa.
[0309] Prethodno opisani načini ostvarivanja primene LFNST-a u ISP režimu mogu se sumirati na sledeći način:
(1) Kada se LFNST primenjuje u ISP režimu, jedinica transformacije koja je podeljena (ili particionisana) treba da ima minimalnu veličinu 4×4 ili veću.
(2) Može se koristiti LFNST jezgro koje je isto kao konvencionalno LFNST jezgro koje se primenjuje na kodirajuću jedinicu na koju se ne primenjuje ISP režim.
(3) Sve jedinice transformacije treba da zadovolje uslov maksimalne (ili najveće) vrednosti poslednje pozicije (tj. uslov pozicije poslednjeg nenultog značajnog koeficijenta). Ako jedna ili više jedinica transformacije ne zadovoljavaju uslov maksimalne poslednje pozicije, LFNST se ne koristi, a LFNST indeks se ne parsira.
(4) Kada se primenjuje ISP režim, konfiguracija koja dozvoljava primenu LFNST-a u slučaju da značajan koeficijent postoji na poziciji različitoj od DC pozicije može se zanemariti (ili ignorisati). (5) Ako se LFNST primenjuje, DCT-2 se koristi za primarnu transformaciju jedinice transformacije na koju se primenjuje ISP režim.
[0310] Tabela 9 prikazana u nastavku prikazuje sintaksne elemente uključujući prethodno opisane detalje.
[Tabela 9]
LfnstDcOnly = 1
LfnstZeroOutSigCoeffFlag = 1
transform_tree( x0, y0, cbWidth, cbHeight, treeType )
lfnstWidth = (treeType = = DUAL_TREE_HROMA ) ? cbWidth / SubWidthC
: (( IntraSubPartitionsSplitType = = ISP_VER_SPLIT) ? cbWidth / NumIntraSubPartitions : cbWidth)
IfnstHeight = ( treeType = = DUAL_TREE_HROMA ) ? cbHeight / SubHeightC
: (( IntraSubPartitionsSplitType = = ISP_HOR_SPLIT) ? cbHeight / NumIntraSubPartitions : cbHeight)
if( ( IntraSubPartitionsSplitType ! = ISP_NO_SPLIT | | LfnstDcOnly = = 0) && LfnstZeroOutSigCoeffFlag = = 1)
[0311] Tabela 9 određuje širinu i visinu oblasti na koju se primenjuje LFNST u zavisnosti od tipa stabla i navodi uslove za prenos LFNST indeksa. Sintaksni elementi iz tabele 9 mogu se signalizirati na nivou kodirajuće jedinice (CU). U slučaju dvostrukog stabla, poseban LFNST indeks može se signalizirati za svaki od luma i hroma blokova.
[0312] Najpre, ako je tip stabla kodirajuće jedinice dvostruko stablo – hroma, širina oblasti na koju se primenjuje LFNST (lfnstWidth) može se postaviti na vrednost koja odražava kolorni format, izračunatu iz širine kodirajuće jedinice ((treeType == DUAL_TREE_HROMA) ? cbWidth / SubWidthC).
[0313] Suprotno tome, ako tip stabla kodirajuće jedinice nije dvostruko stablo – hroma, tj. u slučaju dvostrukog stabla – luma ili jednog stabla, širina oblasti na koju se primenjuje LFNST (lfnstWidth) može se postaviti na vrednost dobijenu deljenjem kodirajuće jedinice brojem potjedinica u zavisnosti od toga da li je kodirajuća jedinica podeljena (ili particionisana) ISP-om, ili na širinu kodirajuće jedinice:
((IntraSubPartitionsSplitType == ISP_VER_SPLIT) ? cbWidth / NumIntraSubPartitions : cbWidth). To jest, ako je kodirajuća jedinica podeljena ISP-om u vertikalnom pravcu (IntraSubPartitionsSplitType == ISP_VER_SPLIT), širina oblasti na koju se primenjuje LFNST može se postaviti na vrednost dobijenu deljenjem širine kodirajuće jedinice brojem pot-jedinica (cbWidth / NumIntraSubPartitions). Ako kodirajuća jedinica nije podeljena, širina odgovarajuće oblasti može se postaviti na širinu kodirajuće jedinice (cbWidth).
[0314] Slično tome, ako je tip stabla kodirajuće jedinice dvostruko stablo – hroma, visina oblasti na koju se primenjuje LFNST (lfnstHeight) može se postaviti na visinu koja odražava kolorni format, izračunatu iz visine kodirajuće jedinice ((treeType == DUAL_TREE_HROMA) ? cbHeight / SubHeightC).
[0315] Suprotno tome, ako tip stabla kodirajuće jedinice nije dvostruko stablo – hroma, tj. u slučaju dvostrukog stabla – luma ili jednog stabla, visina oblasti na koju se primenjuje LFNST (lfnstHeight) može se postaviti na vrednost dobijenu deljenjem kodirajuće jedinice brojem potjedinica u zavisnosti od toga da li je kodirajuća jedinica podeljena ISP-om, ili na visinu kodirajuće jedinice: ((IntraSubPartitionsSplitType == ISP_HOR_SPLIT) ? cbHeight / NumIntraSubPartitions : cbHeight). To jest, ako je kodirajuća jedinica podeljena ISP-om u horizontalnom pravcu (IntraSubPartitionsSplitType == ISP_HOR_SPLIT), visina oblasti na koju se primenjuje LFNST može se postaviti na vrednost dobijenu deljenjem visine kodirajuće jedinice brojem pot-jedinica (cbHeight / NumIntraSubPartitions). Ako kodirajuća jedinica nije podeljena, visina odgovarajuće oblasti može se postaviti na visinu kodirajuće jedinice (cbHeight).
[0316] Radi omogućavanja primene LFNST-a kao što je prethodno opisano, širina i visina oblasti na koju se primenjuje LFNST treba da budu jednake ili veće od 4 (Min(lfnstWidth, lfnstHeight) ≥ 4). To jest, u slučaju kodiranja sa dvostrukim stablom, LFNST indeks može biti signaliziran samo ako su i horizontalna i vertikalna dužina odgovarajućeg elementa (tj. luma ili hroma elementa) jednake ili veće od 4. U slučaju jednog stabla, LFNST indeks može biti signaliziran ako su i horizontalna i vertikalna dužina luma elementa jednake ili veće od 4.
[0317] U slučaju kada se ISP primenjuje na kodirajuću jedinicu, LFNST indeks može biti prenesen samo ako su i horizontalna i vertikalna dužina particionog bloka jednake ili veće od 4.
[0318] Dodatno, ako horizontalna ili vertikalna dužina luma bloka kodirajuće jedinice premašuje maksimalnu veličinu luma transformacije koja je dostupna za transformaciju (kada uslov Max(cbWidth, cbHeight) ≤ MaxTbSizeY nije zadovoljen), LFNST se ne može primeniti i LFNST indeks se ne prenosi.
[0319] Takođe, LFNST indeks može biti signaliziran samo kada pozicija poslednjeg nenultog koeficijenta nije DC pozicija (gornja leva pozicija u bloku).
[0320] U slučaju luma bloka tipa dvostrukog stabla, ako pozicija poslednjeg nenultog koeficijenta nije DC pozicija, LFNST indeks se prenosi. U slučaju hroma bloka dvostrukog stabla, čak i ako je pozicija poslednjeg nenultog koeficijenta za Cb ili pozicija poslednjeg nenultog koeficijenta za Cr različita od DC pozicije, odgovarajući LFNST indeks se prenosi. U slučaju tipa sa jednim stablom, ako je pozicija poslednjeg nenultog koeficijenta makar za jedan od luma, Cb ili Cr elemenata različita od DC pozicije, LFNST indeks može biti prenesen.
[0321] U međuvremenu, kada se ISP primenjuje na kodirajuću jedinicu, LFNST indeks može biti signaliziran bez provere pozicije poslednjeg nenultog koeficijenta (IntraSubPartitionsSplitType != ISP_NO_SPLIT || LfnstDcOnly == 0). To jest, čak i ako su pozicije poslednjeg nenultog koeficijenta za sve particione blokove na DC poziciji, signalizacija LFNST indeksa može biti dozvoljena.
[0322] Konačno, kada se utvrdi da koeficijent transformacije postoji na poziciji van opsega pozicija na kojima LFNST koeficijent transformacije može da postoji, signalizacija LFNST indeksa može biti preskočena (LfnstZeroOutSigCoeffFlag == 1).
[0323] Kada se ISP primenjuje na kodirajuću jedinicu, ako se utvrdi da koeficijent transformacije postoji na poziciji van opsega pozicija na kojima LFNST koeficijent transformacije može da postoji, čak i za jedan particioni blok među svim particionim blokovima, signalizacija LFNST indeksa može biti preskočena.
[0324] U nastavku teksta, kada se ISP režim primenjuje, biće opisan primer korišćenja matrice 16×36 prilikom upotrebe 8×8 LFNST-a.
[0325] U slučaju ISP režima i kada se primenjuje LFNST, ako su i horizontalna i vertikalna dužina particionog bloka jednake ili veće od 8, može se koristiti matrica 16×36 (na osnovu LFNST-a u smeru kodiranja) umesto matrice 16×48 (na osnovu LFNST-a u smeru kodiranja).
[0326] Kao što je prethodno opisano, kada se primenjuje obrnuti 8×8 LFNST, 48 koeficijenata može biti izvedeno primenom LFNST jezgra dimenzija 48×16 na 16 koeficijenata. Dobijeni 48 koeficijenata može biti raspoređeno u jedinici transformacije kao što je prikazano na FIG.8.
[0327] U skladu sa jednim načinom ostvarivanja, može biti predloženo LFNST jezgro dimenzija 36×16 koje izvodi 36 koeficijenata, umesto 48 koeficijenata.
[0328] FIG.22 predstavlja dijagram koji prikazuje raspored 36 koeficijenata u skladu sa LFNST jezgrom dimenzija 16×36 prema jednom primeru.
[0329] Pozicije 36 koeficijenata mogu biti određene u skladu sa LFNST indeksom. Na primer, ako je LFNST indeks 1, 36 koeficijenata može biti raspoređeno kao što je prikazano na (a) FIG.22, a ako je LFNST indeks 2, 36 koeficijenata može biti raspoređeno kao što je prikazano na (b) FIG.
22.
[0330] Naredni crteži su dati radi opisa konkretnih primera ovog otkrivanja. Pošto su konkretne oznake uređaja ili oznake specifičnih signala/poruka/polja prikazane u crtežima date radi ilustracije, tehničke karakteristike ovog otkrivanja nisu ograničene na konkretne oznake korišćene u narednim crtežima.
[0331] FIG.23 predstavlja tok postupka koji ilustruje rad video uređaja za dekodiranje prema jednom načinu ostvarivanja ovog dokumenta.
[0332] Svaka faza prikazana na FIG.23 zasnovana je na nekim od sadržaja opisanih na FIG.4 do 22. U skladu s tim, detaljni opisi koji se preklapaju sa prethodno opisanim na FIG.3 do 22 biće izostavljeni ili pojednostavljeni.
[0333] Uređaj 300 za dekodiranje prema ovom načinu ostvarivanja može da primi preostale informacije iz protoka bitova (S2310).
[0334] Konkretnije, uređaj 300 za dekodiranje može da dekodira informacije o kvantizovanim koeficijentima transformacije za ciljani blok iz protoka bitova i može da izvede kvantizovane koeficijente transformacije za trenutni blok na osnovu informacija o kvantizovanim koeficijentima transformacije za trenutni blok. Informacije o kvantizovanim koeficijentima transformacije za ciljani blok mogu biti uključene u skup parametara sekvence (SPS) ili zaglavlje isečka i mogu da uključuju najmanje jednu od sledećih informacija: da li je primenjena redukovana transformacija (RST), informaciju o faktoru pojednostavljenja, informaciju o minimalnoj veličini transformacije na koju se RST primenjuje, informaciju o maksimalnoj veličini transformacije na koju se RST primenjuje, veličinu redukovane inverzne transformacije, i informaciju o indeksu transformacije koji ukazuje na jednu od matrica jezgra transformacije koje su uključene u skup transformacija.
[0335] Pored toga, uređaj za dekodiranje može dodatno da primi informacije o režimu intra predikcije za trenutni blok i informacije o tome da li je ISP primenjen na trenutni blok. Prijemom i analizom informacije zastavice koja označava da li se ISP kod ili ISP režim primenjuje, uređaj za dekodiranje može da izvede zaključak o tome da li je trenutni blok podeljen (ili rastavljen ili particionisan) na unapred određeni broj transformacionih blok-podparticija. Ovde trenutni blok može biti kodirajući blok. Štaviše, uređaj za dekodiranje može da izvede veličine i broj podeljenih podparticionih blokova na osnovu informacije zastavice koja označava u kom pravcu treba da se podeli (ili particioniše) trenutni blok.
[0336] Na primer, kao što je prikazano na FIG.17, kada je veličina (širina × visina) trenutnog bloka 8×4, trenutni blok može biti vertikalno podeljen na dva podbloka, a kada je veličina trenutnog bloka 4×8, može biti horizontalno podeljen na dva podbloka. Alternativno, kao što je prikazano na FIG.18, kada je veličina (širina × visina) trenutnog bloka veća od 4×8 ili 8×4, to jest, kada je veličina trenutnog bloka 1) 4×N ili N×4 (N ≥ 16) ili 2) M×N (M ≥ 8, N ≥ 8), trenutni blok može biti podeljen na 4 podbloka u horizontalnom ili vertikalnom pravcu.
[0337] Isti režim intra predikcije primenjuje se na podparticione blokove koji su podeljeni (ili particionisani) iz trenutnog bloka, i uređaj za dekodiranje može da izvede predikcioni uzorak po svakom podparticionom bloku. To jest, u skladu sa formatom podeljenog podparticionog bloka, na primer, uređaj za dekodiranje sekvencijalno sprovodi intra predikciju horizontalno ili vertikalno, s leva na desno, ili od vrha ka dnu. Za krajnje levi ili krajnje desni podblok, koristi se referenca na rekonstruisane piksele kodirajućeg bloka koji je već dekodiran, isto kao u opštem postupku intra predikcije. Pored toga, kada prethodni podparticioni blok nije neposredno uz svaku stranu narednog unutrašnjeg podparticionog bloka, radi izvođenja referentnih piksela koji su susedni odgovarajućoj strani, koristi se referenca na rekonstruisane piksele susednog kodirajućeg bloka koji je već dekodiran, kao i u opštem postupku intra predikcije.
[0338] Uređaj 300 za dekodiranje može da izvede preostale informacije za trenutni blok, tj. da izvede koeficijente transformacije vršenjem dekvantizacije kvantizovanih koeficijenata transformacije (S2320).
[0339] Izvedeni koeficijenti transformacije mogu biti raspoređeni (ili poravnati) u skladu sa obrnutim dijagonalnim redosledom skeniranja u 4×4 blok jedinicama, a koeficijenti transformacije unutar 4×4 bloka takođe mogu biti raspoređeni prema obrnutom dijagonalnom redosledu skeniranja. Drugim rečima, koeficijenti transformacije obrađeni dekvantizacijom mogu biti raspoređeni prema obrnutom redosledu skeniranja koji se primenjuje u video kodecima kao što su VVC ili HEVC.
[0340] Koeficijenti transformacije izvedeni na osnovu takvih preostalih informacija mogu biti dekvantizovani koeficijenti transformacije, kao što je prethodno opisano. Drugim rečima, dovoljno je da koeficijent transformacije predstavlja podatak koji omogućava proveru da li je koeficijent nenulti podatak u trenutnom bloku, bez obzira na to da li je kvantizacija izvršena ili ne.
[0341] Prema jednom primeru, uređaj za dekodiranje može da izvede koeficijente transformacije koji su izmenjeni (ili korigovani) primenom LFNST-a na te koeficijente
transformacije.
[0342] Za razliku od primarne transformacije koja zasebno transformiše koeficijente koji su predmet transformacije duž vertikalnog ili horizontalnog pravca, LFNST je neodvojiva transformacija koja primenjuje transformaciju bez razdvajanja koeficijenata po određenom pravcu. Takva neodvojiva transformacija može biti niskofrekventna neodvojiva transformacija koja primenjuje naprednu transformaciju samo u niskofrekventnoj oblasti, a ne na celu oblast bloka.
[0343] Informacija o LFNST indeksu se prima kao sintaksna informacija, a sintaksna informacija može biti primljena kao binarizovani niz bitova koji uključuje 0 i 1.
[0344] Sintaksni element LFNST indeksa, prema ovom načinu ostvarivanja, može da označava da li se primenjuje inverzna LFNST ili inverzna neodvojiva transformacija, kao i jednu od matrica jezgra transformacije koje su deo skupa transformacija. Kada skup transformacija uključuje dve matrice jezgra transformacije, u indeksu transformacije mogu postojati 3 različite vrednosti sintaksnog elementa.
[0345] Drugim rečima, prema ovom načinu ostvarivanja, vrednosti sintaksnog elementa za LFNST indeks mogu da uključuju: 0 – što označava slučaj kada se inverzna LFNST ne primenjuje na ciljani blok; 1 – što označava prvu matricu jezgra transformacije od dve dostupne; i 2 – što označava drugu matricu jezgra transformacije od te dve.
[0346] Informacija o režimu intra predikcije i informacija o LFNST indeksu može biti signalizirana na nivou kodirajuće jedinice.
[0347] Pored toga, uređaj za dekodiranje, prema ovom načinu ostvarivanja, može dodatno da odredi da li koeficijent transformacije postoji u drugoj oblasti koja isključuje gornju levu prvu oblast trenutnog bloka. Ako koeficijent transformacije ne postoji u toj drugoj oblasti, LFNST indeks može biti parsiran.
[0348] Izvođenjem promenljive koja označava da li značajan koeficijent postoji u drugoj oblasti, koja isključuje gornju levu prvu oblast trenutnog bloka, može se proveriti da li je izvršeno popunjavanje nulama za tu drugu oblast.
[0349] Ta promenljiva može biti promenljiva LfnstZeroOutSigCoeffFlag, koja označava da je popunjavanje nulama izvršeno prilikom primene LFNST-a. Promenljiva LfnstZeroOutSigCoeffFlag može biti inicijalno postavljena na 1, a ako postoji značajan koeficijent u drugoj oblasti, promenljiva može biti promenjena na 0.
[0350] Promenljiva LfnstZeroOutSigCoeffFlag može biti izvedena kao 0 kada je indeks podbloka u kojem postoji poslednji nenulti koeficijent veći od 0 i kada su i širina i visina bloka transformacije jednaki ili veći od 4, ili kada je poslednja pozicija nenultog koeficijenta unutar podbloka u kojem postoji poslednji nenulti koeficijent veća od 7, a veličina bloka transformacije je 4×4 ili 8×8.
[0351] Odnosno, kada se nenulti koeficijent izvede iz oblasti druge osim gornje leve oblasti u kojoj LFNST koeficijent transformacije može postojati u bloku transformacije, ili kada nenulti koeficijent postoji van 8. pozicije u redosledu skeniranja za 4×4 i 8×8 blokove, promenljiva LfnstZeroOutSigCoeffFlag se postavlja na 0.
[0352] Prema jednom primeru, kada se ISP primenjuje na kodirajuću jedinicu, popunjavanje nulama za drugu oblast LFNST-a može biti primenjeno na sve podparticione blokove. U tom slučaju, ako se potvrdi da postoji koeficijent transformacije u poziciji različitoj od one u kojoj LFNST koeficijent može postojati, makar u jednom podparticionom bloku, signalizacija LFNST indeksa može biti preskočena.
[0353] Uređaj za dekodiranje može da izvede preostale uzorke za trenutni blok na osnovu primarne inverzne transformacije za korigovani (ili izmenjeni) koeficijent transformacije ili koeficijent transformacije izveden iz preostalih informacija, a kada je trenutni blok podeljen na podparticione blokove, uređaj za dekodiranje može da izvede transformaciono jezgro za inverznu primarnu transformaciju koja se primenjuje na podparticioni blok na osnovu horizontalne ili vertikalne dužine podparticionog bloka (S2330).
[0354] Kao što je prethodno opisano, kada je trenutni blok podeljen na podparticione blokove, za inverznu primarnu transformaciju ne moraju biti signalizirani višestruki MTS indeksi. U tom slučaju može biti primenjen implicitni MTS na podparticioni blok, a transformaciono jezgro može biti izvedeno na osnovu horizontalne ili vertikalne dužine podparticionog bloka.
[0355] Prema jednom primeru, transformaciono jezgro može biti izvedeno na osnovu toga da li je horizontalna ili vertikalna dužina podparticionog bloka jednaka ili veća od 4 i manja ili jednaka 16.
[0356] Ako su i horizontalna i vertikalna dužina podparticionog bloka jednake ili veće od 4 i manje ili jednake 16, transformaciono jezgro može biti izvedeno kao DST-7. U suprotnom, tj. ako horizontalna i vertikalna dužina podparticionog bloka ne zadovoljavaju uslov da budu jednake ili veće od 4 i manje ili jednake 16, transformaciono jezgro može biti izvedeno kao DCT-2.
[0357] Pored toga, uređaj za dekodiranje može da odredi veličinu bloka bez popunjavanja nulama, na koji se primenjuje transformaciono jezgro i koji označava oblast u kojoj može postojati značajan koeficijent transformacije unutar podparticionog bloka, i uređaj za dekodiranje može da izvede preostali uzorak na osnovu veličine takvog bloka bez popunjavanja nulama.
[0358] Pošto su i horizontalna i vertikalna dužina podparticionog bloka jednake ili veće od 4 i manje ili jednake 16, ako se DST-7 koristi kao transformaciono jezgro, širina i visina bloka bez popunjavanja nulama mogu biti postavljene na 16.
[0359] U međuvremenu, ako horizontalna i vertikalna dužina podparticionog bloka ne zadovoljavaju uslov da budu jednake ili veće od 4 i manje ili jednake 16, i zbog toga se DCT-2 koristi kao transformaciono jezgro, širina i visina bloka bez popunjavanja nulama mogu biti postavljene na najviše 32.
[0360] Odnosno, prema jednom primeru, kada se primenjuje višestruki izbor transformacije (kada se mogu primeniti DST-7 ili DCT-8), uređaj za dekodiranje može da postavi širinu ili visinu bloka bez popunjavanja nulama na 16. A kada se višestruki izbor transformacije ne primenjuje, uređaj za dekodiranje može da postavi širinu ili visinu bloka bez popunjavanja nulama na najviše 32.
[0361] Kao što je prethodno opisano, kada se ISP primenjuje na trenutni blok, MTS indeks koji označava transformaciono jezgro ne mora biti signaliziran.
[0362] U međuvremenu, prethodno opisani LFNST može se primeniti na trenutni blok, i u tom slučaju, može se izvršiti popunjavanje nulama druge oblasti koja odgovara LFNST-u na podparticionom bloku.
[0363] Kada je LFNST indeks jednak 0 ili kada se pretpostavi da je LFNST indeks jednak 0 zbog neuspešnog prijema, DCT-2 se može koristiti kao transformaciono jezgro inverzne primarne transformacije u podparticionom bloku, a širina ili visina bloka bez popunjavanja nulama može biti postavljena na najviše 32.
[0364] Ako se LFNST primeni dodeljivanjem vrednosti 1 ili 2 za LFNST indeks umesto 0, DCT-2 se može primeniti na modifikovani koeficijent transformacije za koji je izvršeno popunjavanje nulama u drugoj oblasti. I u ovom slučaju, širina ili visina bloka bez popunjavanja nulama može biti postavljena na najviše 32. Odnosno, preostali uzorak može se izvesti uzimajući u obzir popunjavanje nulama u skladu sa primarnom transformacijom.
[0365] Uređaj za dekodiranje može da izvede preostale uzorke za trenutni blok iz koeficijenata transformacije primenom izvedenog transformacionog jezgra (S2340).
[0366] Zatim, uređaj 300 za dekodiranje može da generiše rekonstruisane uzorke na osnovu preostalih uzoraka za trenutni blok i predikcionih uzoraka za trenutni blok (S2350).
[0367] Sledeći crteži su dati radi opisivanja konkretnih primera ovog otkrivanja. Pošto su konkretne oznake uređaja ili oznake konkretnih signala/poruka/polja prikazane na crtežima date radi ilustrovanja, tehničke karakteristike ovog otkrivanja nisu ograničene na konkretne oznake koje se koriste na sledećim crtežima.
[0368] FIG.24 predstavlja tok postupka koji ilustruje rad uređaja za video kodiranje prema jednom načinu ostvarivanja ovog dokumenta.
[0369] Svaka faza prikazana na FIG.24 zasnovana je na nekim od prethodno opisanih sadržaja na FIG.4 do 22. Shodno tome, detaljni opisi koji se preklapaju sa onima datim na FIG.2 i FIG.4 do 22 biće izostavljeni ili pojednostavljeni.
[0370] Uređaj 200 za kodiranje prema ovom načinu ostvarivanja može najpre da izvede predikcioni uzorak za trenutni blok na osnovu režima intra predikcije koji se primenjuje na trenutni blok.
[0371] Uređaj za kodiranje može da izvrši predikciju po transformacionom bloku podparticije kada se ISP primenjuje na trenutni blok.
[0372] Uređaj za kodiranje može da odredi da li da primeni ISP kodiranje ili ISP režim na trenutni blok, tj. na kodirajući blok, da odredi pravac u kojem će trenutni blok biti podeljen u skladu sa rezultatom te odluke, kao i da izvede veličinu i broj podeljenih podblokova.
[0373] Na primer, kada je veličina (širina x visina) trenutnog bloka 8x4, kao što je prikazano na FIG.17, trenutni blok može biti podeljen vertikalno i podeljen u dva podbloka, a kada je veličina (širina x visina) trenutnog bloka 4x8, trenutni blok može biti podeljen horizontalno i podeljen u dva podbloka. Alternativno, kao što je prikazano na FIG.18, kada je veličina (širina x visina) trenutnog bloka veća od 4x8 ili 8x4, tj. kada je veličina trenutnog bloka 1) 4xN ili Nx4 (N ≥ 16) ili 2) M x N (M ≥ 8, N ≥ 8), trenutni blok može biti podeljen u 4 podbloka u horizontalnom ili vertikalnom pravcu.
[0374] Isti režim intra predikcije može se primeniti na transformacioni blok podparticije koji je podeljen iz trenutnog bloka, i uređaj za kodiranje može da izvede predikcioni uzorak za svaki transformacioni blok podparticije. Odnosno, uređaj za kodiranje sekvencijalno izvodi intra predikciju, na primer, horizontalno ili vertikalno, s leva na desno ili od vrha ka dnu, u skladu sa oblikom podele transformacionih blokova podparticija. Za krajnje levi ili krajnje gornji podblok koristi se rekonstruisani piksel već kodiranog kodirajućeg bloka, kao u uobičajenom postupku intra predikcije. Dalje, za svaku stranu naredne unutrašnje transformacione blok podparticije, kada nije susedna prethodnoj transformacionoj blok podparticiji, radi izvođenja referentnih piksela koji su susedni odgovarajućoj strani, koristi se rekonstruisani piksel već kodiranog susednog kodirajućeg bloka, kao u uobičajenom postupku intra predikcije.
[0375] Uređaj 200 za kodiranje može da izvede preostale uzorke trenutnog bloka na osnovu predikcionih uzoraka (S2410).
[0376] Dodatno, uređaj 200 za kodiranje može da izvede koeficijente transformacije za trenutni blok na osnovu primarne transformacije preostalog uzorka. Tačnije, kada je trenutni blok podeljen na podparticione blokove, uređaj 200 za kodiranje izvodi jezgro transformacije za primarnu transformaciju koja se primenjuje na podparticione blokove, na osnovu horizontalne ili vertikalne dužine podparticionog bloka (S2420). Zatim, uređaj 200 za kodiranje može da izvede koeficijent transformacije na osnovu jezgra transformacije (S2430).
[0377] Primarna transformacija može se izvesti pomoću više jezgara transformacije, i u tom slučaju jezgro transformacije može se odabrati na osnovu režima intra predikcije.
[0378] Prema jednom primeru, kada je trenutni blok podeljen na podparticione blokove, implicitna višestruka selekcija transformacije (MTS) može se primeniti na podparticioni blok, a jezgro transformacije može se izvesti na osnovu horizontalne ili vertikalne dužine podparticionog bloka.
[0379] Prema jednom primeru, jezgro transformacije može se izvesti na osnovu toga da li je horizontalna ili vertikalna dužina podparticionog bloka jednaka ili veća od 4 i manja ili jednaka 16.
[0380] Ako je horizontalna ili vertikalna dužina podparticionog bloka jednaka ili veća od 4 i manja ili jednaka 16, jezgro transformacije može se izvesti kao DST-7. U suprotnom, tj. ako horizontalna ili vertikalna dužina podparticionog bloka ne zadovoljava taj uslov, jezgro transformacije može se izvesti kao DCT-2.
[0381] Dodatno, uređaj za kodiranje može da definiše veličinu bloka bez popunjavanja nulama, na koji se primenjuje jezgro transformacije i koji označava oblast u okviru podparticionog bloka u kojoj može da postoji značajan koeficijent transformacije, i uređaj za kodiranje može da izvede koeficijent transformacije na osnovu veličine takvog bloka bez popunjavanja nulama.
[0382] Pošto su i horizontalna i vertikalna dužina podparticionog bloka jednake ili veće od 4 i manje ili jednake 16, ako se kao jezgro transformacije koristi DST-7, širina i visina bloka bez popunjavanja nulama mogu da se postave na 16.
[0383] U suprotnom, ako ni horizontalna ni vertikalna dužina podparticionog bloka ne zadovoljavaju uslov da budu jednake ili veće od 4 i manje ili jednake 16, i stoga se kao jezgro transformacije koristi DCT-2, širina i visina bloka bez popunjavanja nulama mogu da se postave na najviše 32 ili manje.
[0384] Odnosno, prema jednom primeru, kada se primenjuje višestruki izbor transformacije (kada se može primeniti DST-7 ili DCT-8), uređaj za kodiranje može da postavi širinu ili visinu bloka bez popunjavanja nulama na 16. A kada se višestruki izbor transformacije ne primenjuje, uređaj za kodiranje može da postavi širinu ili visinu bloka bez popunjavanja nulama na 32 ili manje.
[0385] Kao što je prethodno opisano, kada se ISP primenjuje na trenutni blok, MTS indeks koji ukazuje na jezgro transformacije ne mora da se signalizira.
[0386] U međuvremenu, prethodno opisani LFNST može da se primeni na trenutni blok, i u tom slučaju, popunjavanje nulama druge oblasti koja odgovara LFNST-u može da se izvrši na podparticionom bloku.
[0387] Kada se LFNST ne primenjuje, DCT-2 može da se koristi kao jezgro transformacije primarne transformacije u podparticionom bloku, a širina ili visina bloka bez popunjavanja nulama može da se postavi na 32 ili manje.
[0388] Kada se LFNST primenjuje, ako se LFNST primenjuje na koeficijent transformacije na koji je već izvršeno popunjavanje nulama prema primarnoj transformaciji, nakon primene LFNST-a, druga oblast može ponovo da se obradi popunjavanjem nulama. I u ovom slučaju, DCT-2 može da se koristi kao jezgro transformacije primarne transformacije u podparticionom bloku, a širina ili visina bloka bez popunjavanja nulama može da se postavi na 32 ili manje.
[0389] Uređaj 200 za kodiranje može da odredi da li da izvrši sekundarnu transformaciju, odnosno neodvojivu transformaciju, konkretnije, LFNST, za koeficijente transformacije trenutnog bloka, i može da izvede modifikovane koeficijente transformacije primenom LFNST-a na koeficijente transformacije.
[0390] Za razliku od primarne transformacije koja zasebno transformiše koeficijente koji su ciljevi transformacije duž vertikalnog ili horizontalnog smera, LFNST je neodvojiva transformacija koja primenjuje transformaciju bez razdvajanja koeficijenata duž određenog smera. Takva neodvojiva transformacija može da bude niskofrekventna neodvojiva transformacija koja se primenjuje samo u niskofrekventnoj oblasti, a ne na ceo ciljani blok koji je cilj transformacije.
[0391] Dodatno, prema jednom primeru, uređaj za kodiranje može da izvrši popunjavanje nulama druge oblasti izuzev gornje leve prve oblasti podparticionog bloka ili trenutnog bloka, kao što je prikazano na FIG.14 i FIG.15.
[0392] Uređaj za kodiranje može da izvede modifikovane koeficijente transformacije za trenutni blok ili kvantizovane koeficijente transformacije vršenjem kvantizacije na osnovu koeficijenata transformacije, i može da kodira informacije o slici uključujući informacije o kvantizovanim koeficijentima transformacije (S2440).
[0393] To znači da uređaj za kodiranje može da generiše preostale informacije koje uključuju informacije o kvantizovanim koeficijentima transformacije. Preostale informacije mogu da uključuju prethodno opisane informacije/sintaksne elemente vezane za transformaciju. Uređaj za kodiranje može da kodira informacije o slici/video zapisu koje uključuju preostale informacije i da izlazne kodirane informacije o slici/video zapisu emitira u obliku protoka bitova.
[0394] Konkretno, uređaj 200 za kodiranje može da generiše informacije o kvantizovanim koeficijentima transformacije i da kodira informacije o generisanim kvantizovanim koeficijentima transformacije.
[0395] Kada informacije o slici mogu da primene LFNST, informacije o slici mogu da uključuju LFNST indeks koji pokazuje na LFNST matricu.
[0396] Sintaksni element LFNST indeksa prema ovom načinu ostvarivanja može da označava da li se primenjuje (inverzna) LFNST i bilo koja od LFNST matrica uključenih u LFNST skup, a kada skup LFNST uključuje dve matrice jezgra transformacije, mogu postojati tri vrednosti sintaksnog elementa LFNST indeksa.
[0397] Prema jednom načinu ostvarivanja, kada je struktura stabla podele za trenutni blok tipa dvostrukog stabla, LFNST indeks može biti kodiran za svaki luma blok i hroma blok.
[0398] Prema jednom načinu ostvarivanja, vrednost sintaksnog elementa za indeks transformacije može biti izvedena kao 0, što označava slučaj kada se (inverzna) LFNST ne primenjuje na trenutni blok, 1 što označava prvu LFNST matricu među LFNST matricama, i 2 što označava drugu LFNST matricu među LFNST matricama.
[0399] U ovom otkrivanju, najmanje jedan od postupaka kvantizacije/dekvantizacije i/ili transformacije/inverzne transformacije može biti izostavljen. Kada se kvantizacija/dekvantizacija izostavi, kvantizovani koeficijent transformacije može se smatrati koeficijentom transformacije. Kada se transformacija/inverzna transformacija izostavi, koeficijent transformacije može se nazivati koeficijentom ili preostalim koeficijentom, ili i dalje može biti nazivan koeficijentom transformacije radi konzistentnosti izraza.
[0400] Pored toga, u ovom otkrivanju, kvantizovani koeficijent transformacije i koeficijent transformacije mogu se označavati kao koeficijent transformacije i skalirani koeficijent transformacije, redom. U tom slučaju, preostale informacije mogu da uključuju informacije o koeficijentima transformacije, a informacije o koeficijentima transformacije mogu biti signalizirane kroz sintaksu kodiranja ostatka. Koeficijenti transformacije mogu biti izvedeni na osnovu preostalih informacija (ili informacija o koeficijentima transformacije), a skalirani koeficijenti transformacije mogu biti izvedeni pomoću inverzne transformacije (skaliranja) koeficijenata transformacije. Preostali uzorci mogu biti izvedeni na osnovu inverzne transformacije (transformacije) skaliranih koeficijenata transformacije. Ovi detalji mogu biti primenjeni ili iskazani i u drugim delovima ovog otkrivanja.
[0401] U prethodno opisanim načinima ostvarivanja, postupci su objašnjeni na osnovu dijagrama toka pomoću niza faza ili blokova, ali ovo otkrivanje nije ograničeno na redosled faza, i određena faza može biti izvedena u drugom redosledu ili istovremeno sa nekom drugom fazom. Takođe, može se razumeti od strane stručnjaka da faze prikazane u dijagramu toka nisu isključive, i da se mogu uključiti dodatne faze ili ukloniti jedna ili više faza iz dijagrama toka, a da to ne utiče na obim ovog otkrivanja.
[0402] Prethodno opisani postupci prema ovom otkrivanju mogu biti implementirani 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 TV, računar, pametni telefon, set-top boks, uređaj za prikazivanje ili slično.
[0403] Kada se načini ostvarivanja u ovom otkrivanju realizuju softverski, prethodno opisani postupci mogu biti predstavljeni kao moduli (postupci, funkcije ili slično) za izvođenje prethodno opisanih funkcija. Moduli mogu da se čuvaju u memoriji i mogu se izvršavati pomoću procesora. Memorija može biti unutar ili van procesora i može biti povezana sa procesorom na različite, dobro poznate načine. Procesor može uključivati specifičan integrisani krug za aplikacije (ASIC), drugi čipset, logički krug 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 podataka i/ili druge uređaje za čuvanje. Dakle, načini ostvarivanja opisani u ovom otkrivanju mogu biti realizovani i izvršavani na procesoru, mikroprocesoru, kontroleru ili čipu. Na primer, funkcijske jedinice prikazane na svakom crtežu mogu biti realizovane i izvršavane na računaru, procesoru, mikroprocesoru, kontroleru ili čipu.
[0404] Dalje, uređaj za dekodiranje i uređaj za kodiranje na koje se ovo otkrivanje primenjuje mogu biti uključeni u multimedijalni primopredajnik, mobilni komunikacioni terminal, uređaj za kućni bioskop, digitalni bioskopski uređaj, nadzornu kameru, uređaj za video ćaskanje, uređaj za komunikaciju u realnom vremenu poput video komunikacije, uređaj za mobilni striming, medijum za čuvanje, kamkorder, uređaj za pružanje video usluge na zahtev (VoD), uređaj za emitovanje video sadržaja direktno putem interneta (OTT), uređaj za pružanje usluga striminga preko interneta, uređaj za trodimenzionalni video sadržaj (3D), video uređaj za telekomunikacije, medicinski video uređaj i mogu se koristiti za obradu videosignala ili signala podataka. Na primer, uređaj za emitovanje video sadržaja direktno putem interneta (OTT) video
Claims (3)
- može uključivati konzolu za igrice, Blu-ray plejer, pristup TV putem interneta, kućni bioskopski sistem, pametni telefon, tablet računar, digitalni video rekorder (DVR) i slično.[0405] Pored toga, postupak obrade na koji se primenjuje ovo otkrivanje može biti realizovan u obliku programa koji izvršava računar i može biti sačuvan na medijumu za snimanje čitljivom na računaru. Multimedijalni podaci koji imaju strukturu podataka prema ovom otkrivanju takođe mogu biti sačuvani na medijumu za snimanje čitljivom na računaru. Medijum za snimanje čitljiv na računaru uključuje sve vrste uređaja za čuvanje i distribuiranih uređaja za čuvanje u kojima su sačuvani podaci koje računar može da pročita. Medijum za snimanje čitljiv na računaru može da uključuje, na primer, Blu-ray disk (BD), univerzalnu serijsku magistralu (USB), ROM, PROM, EPROM, EEPROM, RAM, CD-ROM, magnetnu traku, disketu i optički uređaj za čuvanje podataka. Dalje, medijum za snimanje čitljiv na računaru uključuje medijume izvedene u obliku talasanosača (na primer, prenosi putem interneta). Pored toga, protok bitova generisan postupkom kodiranja može biti sačuvan na medijumu za snimanje čitljivom na računaru ili prenet putem žične ili bežične komunikacione mreže. Dodatno, načini ostvarivanja ovog otkrivanja mogu biti ostvareni kao računarski programski proizvod putem programskih kodova, a programski kodovi mogu biti izvršeni na računaru korišćenjem načina ostvarivanja ovog otkrivanja. Programski kodovi mogu biti sačuvani na nosaču koji je čitljiv na računaru.[0406] Ovde otkriveni patentni zahtevi mogu da se kombinuju na razne načine. Na primer, tehničke karakteristike iz postupaka prema patentnim zahtevima ovog otkrivanja mogu se kombinovati radi ostvarivanja ili izvršavanja u okviru uređaja, a tehničke karakteristike iz uređaja prema patentnim zahtevima mogu da se kombinuju radi ostvarivanja ili izvršavanja u okviru postupka. Dalje, tehničke karakteristike iz patentnih zahteva koje se odnose na postupak iz patentnih zahteva koji se odnose na uređaje mogu se kombinovati radi primene ili izvođenja u okviru uređaja, kao i radi primene ili izvođenja u okviru postupka.Patentni zahtevi1. Uređaj za dekodiranje za dekodiranje slika, pri čemu taj uređaj za dekodiranje obuhvata: memoriju; inajmanje jedan procesor povezan sa memorijom, pri čemu je taj najmanje jedan procesor konfigurisan tako da:dobije preostale informacije i indeks neodvojive transformacije niskih frekvencija (LFNST) iz protoka bitova;izvodi koeficijente transformacije za trenutni blok iz preostalih informacija;izvodi preostale uzorke za trenutni blok izvođenjem inverzne primarne transformacije na koeficijentima transformacije pomoću transformacionih jezgara za vertikalne i horizontalne smerove; igeneriše rekonstruisanu sliku dodavanjem predikcionih uzoraka za trenutni blok i preostalih uzoraka,naznačen time, štokao odgovor na to što je trenutni blok podeljen na podparticione blokove primenom intra podparticije, ISP, i što je LFNST indeks jednak 0, transformaciono jezgro za vertikalni smer se određuje proverom vertikalne dužine podparticionog bloka podeljenog iz trenutnog bloka, a transformaciono jezgro za horizontalni smer se određuje proverom horizontalne dužine podparticionog bloka,pri čemu se transformaciono jezgro za vertikalni smer određuje kao DST-7 za podparticioni blok čija se vertikalna dužina provera da li je jednaka ili veća od 4 i manja od ili jednaka 16, a transformaciono jezgro za vertikalni smer se određuje kao DCT-2 za podparticioni blok čija se vertikalna dužina proverava da ne bude jednaka ili veća od 4 i manja od ili jednaka 16, pri čemu se transformaciono jezgro za horizontalni smer određuje kao DST-7 za podparticioni blok čija se horizontalna dužina proverava da bude jednaka ili veća od 4 i manja od ili jednaka 16, a transformaciono jezgro za horizontalni smer se određuje kao DCT-2 za podparticioni blok čija se horizontalna dužina provera da ne bude jednaka ili veća od 4 i manja od ili jednaka 16, i pri čemu kao odgovor na to što je trenutni blok podeljen na podparticione blokove primenom ISP i što je LFNST indeks veći od 0, transformaciona jezgra za vertikalne i horizontalne smerove se redom određuju kao DCT-2.
- 2. Uređaj za kodiranje za kodiranje slika, pri čemu taj uređaj za kodiranje obuhvata: memoriju; inajmanje jedan procesor povezan sa memorijom, pri čemu je taj najmanje jedan procesor konfigurisan tako da:izvodi preostale uzorke za trenutni blok;izvodi koeficijente transformacije izvođenjem primarne transformacije na preostalim uzorcima pomoću transformacionih jezgara za vertikalne i horizontalne smerove; ikodira LFNST indeks i preostale informacije uključujući informacije o koeficijentimatransformacije,naznačen time, štokao odgovor na to što je trenutni blok podeljen na podparticione blokove primenom intra podparticije, ISP, i što je LFNST indeks jednak 0, transformaciono jezgro za vertikalni smer se određuje proverom vertikalne dužine podparticionog bloka podeljenog iz trenutnog bloka, a transformaciono jezgro za horizontalni smer se određuje proverom horizontalne dužine podparticionog bloka,pri čemu se transformaciono jezgro za vertikalni smer određuje kao DST-7 za podparticioni blok čija se vertikalna dužina provera da li je jednaka ili veća od 4 i manja od ili jednaka 16, a transformaciono jezgro za vertikalni smer se određuje kao DCT-2 za podparticioni blok čija se vertikalna dužina proverava da ne bude jednaka ili veća od 4 i manja od ili jednaka 16, pri čemu se transformaciono jezgro za horizontalni smer određuje kao DST-7 za podparticioni blok čija se horizontalna dužina provera da bude jednaka ili veća od 4 i manja od ili jednaka 16, a transformaciono jezgro za horizontalni smer se određuje kao DCT-2 za podparticioni blok čija se horizontalna dužina provera da ne bude jednaka ili veća od 4 i manja od ili jednaka 16, i pri čemu kao odgovor na to što je trenutni blok podeljen na podparticione blokove primenom ISP i što je LFNST indeks veći od 0, transformaciona jezgra za vertikalne i horizontalne smerove se redom određuju kao DCT-2.
- 3. Uređaj za prenos podataka za sliku, pri čemu taj uređaj obuhvata:najmanje jedan procesor konfigurisan tako da se dobije protok bitova za sliku, pri čemu je taj protok bitova generisan na osnovu izvođenja preostalih uzoraka za trenutni blok, izvođenja koeficijenata transformacije izvođenjem primarne transformacije na preostalim uzorcima pomoću transformacionih jezgara za horizontalne i vertikalne smerove, i kodiranja LFNST indeksa i preostalih informacija uključujući informacije o koeficijentima transformacije; i predajnik konfigurisan tako da prenosi podatke koje obuhvataju protok bitova,naznačen time, štokao odgovor na to što je trenutni blok podeljen na podparticione blokove primenom intra podparticije, ISP, i što je LFNST indeks jednak 0, transformaciono jezgro za vertikalni smer se određuje proverom vertikalne dužine podparticionog bloka podeljenog iz trenutnog bloka, a transformaciono jezgro za horizontalni smer se određuje proverom horizontalne dužine podparticionog bloka,pri čemu se transformaciono jezgro za vertikalni smer određuje kao DST-7 za podparticioni blok čija se vertikalna dužina proverava da li je jednaka ili veća od 4 i manja od ili jednaka 16, a transformaciono jezgro za vertikalni smer se određuje kao DCT-2 za podparticioni blok čija se vertikalna dužina proverava da ne bude jednaka ili veća od 4 i manja od ili jednaka 16, pri čemu se transformaciono jezgro za horizontalni smer određuje kao DST-7 za podparticioni blok čija se horizontalna dužina provera da bude jednaka ili veća od 4 i manja od ili jednaka 16, a transformaciono jezgro za horizontalni smer se određuje kao DCT-2 za podparticioni blok čija se horizontalna dužina provera da ne bude jednaka ili veća od 4 i manja od ili jednaka 16, i pri čemu kao odgovor na to što je trenutni blok podeljen na podparticione blokove primenom ISP i što je LFNST indeks veći od 0, transformaciona jezgra za vertikalne i horizontalne smerove se redom određuju kao DCT-2.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201962903823P | 2019-09-21 | 2019-09-21 | |
| US201962904636P | 2019-09-23 | 2019-09-23 | |
| EP24176203.8A EP4395318B1 (en) | 2019-09-21 | 2020-09-21 | Transform-based image coding |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| RS67060B1 true RS67060B1 (sr) | 2025-08-29 |
Family
ID=74884126
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| RS20250756A RS67060B1 (sr) | 2019-09-21 | 2020-09-21 | Kodiranje slike na osnovu transformacije |
Country Status (14)
| Country | Link |
|---|---|
| US (2) | US12262015B2 (sr) |
| EP (3) | EP4395318B1 (sr) |
| KR (2) | KR102864727B1 (sr) |
| CN (5) | CN119484822A (sr) |
| CA (2) | CA3258398A1 (sr) |
| ES (2) | ES3038093T3 (sr) |
| FI (1) | FI4017008T3 (sr) |
| HR (2) | HRP20240943T1 (sr) |
| HU (2) | HUE067613T2 (sr) |
| MX (5) | MX2022003322A (sr) |
| PL (2) | PL4395318T3 (sr) |
| RS (1) | RS67060B1 (sr) |
| SI (1) | SI4017008T1 (sr) |
| WO (1) | WO2021054798A1 (sr) |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP7840263B2 (ja) * | 2019-12-24 | 2026-04-03 | インターディジタル・シーイー・パテント・ホールディングス・ソシエテ・パ・アクシオンス・シンプリフィエ | 空間予測子走査順序 |
| JP7446046B2 (ja) * | 2020-03-27 | 2024-03-08 | 三星電子株式会社 | 映像の復号化方法及び装置 |
| US11902531B2 (en) * | 2021-04-12 | 2024-02-13 | Qualcomm Incorporated | Low frequency non-separable transform for video coding |
| CN119968849A (zh) * | 2022-10-16 | 2025-05-09 | Lg 电子株式会社 | 图像编码/解码方法和设备及其上存储比特流的记录介质 |
| WO2024085565A1 (ko) * | 2022-10-16 | 2024-04-25 | 엘지전자 주식회사 | 영상 인코딩/디코딩 방법 및 장치, 그리고 비트스트림을 저장한 기록 매체 |
| WO2025073658A1 (en) * | 2023-10-02 | 2025-04-10 | Interdigital Ce Patent Holdings, Sas | Isp combination with nspt |
Family Cites Families (25)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20100095992A (ko) | 2009-02-23 | 2010-09-01 | 한국과학기술원 | 비디오 부호화에서의 분할 블록 부호화 방법, 비디오 복호화에서의 분할 블록 복호화 방법 및 이를 구현하는 기록매체 |
| KR101292093B1 (ko) | 2010-07-02 | 2013-08-08 | (주)휴맥스 | 화면내 예측 부호화를 위한 영상 부호화/복호화 장치 및 방법 |
| KR101762294B1 (ko) * | 2011-10-18 | 2017-07-28 | 주식회사 케이티 | 영상 부호화 방법, 영상 복호화 방법, 영상 부호화기 및 영상 복호화기 |
| US9247254B2 (en) | 2011-10-27 | 2016-01-26 | Qualcomm Incorporated | Non-square transforms in intra-prediction video coding |
| CN108200439B (zh) | 2013-06-14 | 2020-08-21 | 浙江大学 | 提高数字信号变换性能的方法及数字信号变换方法和装置 |
| KR102638991B1 (ko) | 2016-03-24 | 2024-02-21 | 엘지전자 주식회사 | 비디오 코딩 시스템에서 인터 예측 방법 및 장치 |
| FR3050598B1 (fr) | 2016-04-26 | 2020-11-06 | Bcom | Procede de decodage d'une image numerique, procede de codage, dispositifs, et programmes d'ordinateurs associes |
| KR20180001485A (ko) | 2016-06-24 | 2018-01-04 | 한국전자통신연구원 | 변환 기반의 영상 부호화/복호화 방법 및 장치 |
| US10880564B2 (en) * | 2016-10-01 | 2020-12-29 | Qualcomm Incorporated | Transform selection for video coding |
| WO2018066990A1 (ko) | 2016-10-04 | 2018-04-12 | 김기백 | 영상 데이터 부호화/복호화 방법 및 장치 |
| WO2019009618A1 (ko) * | 2017-07-04 | 2019-01-10 | 삼성전자 주식회사 | 영상 부호화 방법 및 장치, 영상 복호화 방법 및 장치 |
| RU2762873C2 (ru) | 2017-12-15 | 2021-12-23 | ЭлДжи ЭЛЕКТРОНИКС ИНК. | Способ кодирования изображений на основе преобразования и устройство для этого |
| KR102489149B1 (ko) | 2017-12-21 | 2023-01-17 | 엘지전자 주식회사 | 선택적 변환에 기반한 영상 코딩 방법 및 그 장치 |
| WO2020162737A1 (ko) * | 2019-02-08 | 2020-08-13 | 주식회사 윌러스표준기술연구소 | 이차 변환을 이용하는 비디오 신호 처리 방법 및 장치 |
| US11539952B2 (en) * | 2019-03-12 | 2022-12-27 | Qualcomm Incorporated | Implicit transform selection in video coding |
| KR102845344B1 (ko) * | 2019-04-16 | 2025-08-11 | 엘지전자 주식회사 | 영상 코딩에서 매트릭스 기반의 인트라 예측을 위한 변환 |
| MX2021016011A (es) | 2019-06-25 | 2022-02-22 | Fraunhofer Ges Forschung | Decodificador, codificador y metodos que comprenden una codificacion para intra-subparticiones. |
| WO2021032045A1 (en) * | 2019-08-17 | 2021-02-25 | Beijing Bytedance Network Technology Co., Ltd. | Context modeling of side information for reduced secondary transforms in video |
| US11206400B2 (en) * | 2019-09-26 | 2021-12-21 | Qualcomm Incorporated | Low-frequency non-separable transform (LFNST) simplifications |
| US20220394255A1 (en) * | 2019-10-06 | 2022-12-08 | Hyundai Motor Company | Method and device for performing an inverse transform on transform coefficients of a current block |
| US20230142928A1 (en) * | 2020-04-02 | 2023-05-11 | Lg Electronics Inc. | Transform-based image coding method and device therefor |
| CN115668923A (zh) * | 2020-05-27 | 2023-01-31 | 抖音视界有限公司 | 编解码视频中多重变换矩阵的指示 |
| US11924471B2 (en) * | 2020-11-12 | 2024-03-05 | Qualcomm Incorporated | Context-based transform index signaling in video coding |
| KR20230169985A (ko) * | 2021-04-12 | 2023-12-18 | 엘지전자 주식회사 | 저주파 비분리 변환 설계 방법 및 장치 |
| US12108031B2 (en) * | 2021-04-16 | 2024-10-01 | Tencent America LLC | Harmonized design among multiple reference line intra prediction, transform partitioning and transform kernels |
-
2020
- 2020-09-21 RS RS20250756A patent/RS67060B1/sr unknown
- 2020-09-21 CN CN202411947416.4A patent/CN119484822A/zh active Pending
- 2020-09-21 ES ES24176203T patent/ES3038093T3/es active Active
- 2020-09-21 HR HRP20240943TT patent/HRP20240943T1/hr unknown
- 2020-09-21 HR HRP20250935TT patent/HRP20250935T1/hr unknown
- 2020-09-21 CN CN202411947410.7A patent/CN119484821A/zh active Pending
- 2020-09-21 WO PCT/KR2020/012707 patent/WO2021054798A1/ko not_active Ceased
- 2020-09-21 CN CN202411947413.0A patent/CN119496894A/zh active Pending
- 2020-09-21 CN CN202411947405.6A patent/CN119484820A/zh active Pending
- 2020-09-21 KR KR1020227008836A patent/KR102864727B1/ko active Active
- 2020-09-21 FI FIEP20866694.1T patent/FI4017008T3/fi active
- 2020-09-21 MX MX2022003322A patent/MX2022003322A/es unknown
- 2020-09-21 ES ES20866694T patent/ES2983826T3/es active Active
- 2020-09-21 EP EP24176203.8A patent/EP4395318B1/en active Active
- 2020-09-21 EP EP20866694.1A patent/EP4017008B1/en active Active
- 2020-09-21 CA CA3258398A patent/CA3258398A1/en active Pending
- 2020-09-21 US US17/762,150 patent/US12262015B2/en active Active
- 2020-09-21 KR KR1020257031706A patent/KR20250150656A/ko active Pending
- 2020-09-21 CN CN202080072344.7A patent/CN114586353B/zh active Active
- 2020-09-21 SI SI202030461T patent/SI4017008T1/sl unknown
- 2020-09-21 HU HUE20866694A patent/HUE067613T2/hu unknown
- 2020-09-21 CA CA3155433A patent/CA3155433C/en active Active
- 2020-09-21 EP EP25181028.9A patent/EP4589947A3/en active Pending
- 2020-09-21 PL PL24176203.8T patent/PL4395318T3/pl unknown
- 2020-09-21 HU HUE24176203A patent/HUE072498T2/hu unknown
- 2020-09-21 PL PL20866694.1T patent/PL4017008T3/pl unknown
-
2022
- 2022-03-17 MX MX2025009829A patent/MX2025009829A/es unknown
- 2022-03-17 MX MX2025009823A patent/MX2025009823A/es unknown
- 2022-03-17 MX MX2025009824A patent/MX2025009824A/es unknown
- 2022-03-17 MX MX2025009828A patent/MX2025009828A/es unknown
-
2025
- 2025-02-13 US US19/053,222 patent/US20250184495A1/en active Pending
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR102935856B1 (ko) | 변환에 기반한 영상 코딩 방법 및 그 장치 | |
| AU2024203027B2 (en) | Transform-based image coding method, and apparatus therefor | |
| AU2024203191B2 (en) | Transform-based image coding method and device therefor | |
| AU2024202291B2 (en) | Transform-based image coding method, and device therefor | |
| RS67060B1 (sr) | Kodiranje slike na osnovu transformacije | |
| RS66616B1 (sr) | Postupak video kodiranja na osnovu sekundarne transformacije, i uređaj za to | |
| US12256088B2 (en) | Transform-based image coding method and apparatus for same | |
| KR20220127937A (ko) | 변환에 기반한 영상 코딩 방법 및 그 장치 | |
| KR20220061182A (ko) | 변환에 기반한 영상 코딩 방법 및 그 장치 | |
| KR102867127B1 (ko) | 변환에 기반한 영상 코딩 방법 및 그 장치 | |
| KR20220066351A (ko) | 변환에 기반한 영상 코딩 방법 및 그 장치 | |
| KR20220045049A (ko) | 변환에 기반한 영상 코딩 방법 및 그 장치 | |
| KR20220050966A (ko) | 변환에 기반한 영상 코딩 방법 및 그 장치 | |
| KR102886479B1 (ko) | 변환에 기반한 영상 코딩 방법 및 그 장치 | |
| EP4017009A1 (en) | Image coding method based on transform, and device therefor | |
| KR20220061181A (ko) | 변환에 기반한 영상 코딩 방법 및 그 장치 | |
| US20220046246A1 (en) | Transform-based image coding method and device therefor | |
| CN121000870A (zh) | 基于变换的图像编码方法及其装置 | |
| KR102838957B1 (ko) | 변환에 기반한 영상 코딩 방법 및 그 장치 | |
| CN121728269A (zh) | 基于变换的图像编码方法及其装置 | |
| KR102959158B1 (ko) | 변환에 기반한 영상 코딩 방법 및 그 장치 | |
| RU2806283C2 (ru) | Способ кодирования изображения на основе преобразования и устройство для его осуществления | |
| RU2803457C2 (ru) | Способ кодирования изображения на основе преобразования и устройство для его осуществления | |
| RU2799629C1 (ru) | Способ кодирования изображения на основе преобразования и устройство для его осуществления | |
| KR20220097520A (ko) | 변환에 기반한 영상 코딩 방법 및 그 장치 |