RS68185B1 - Postupak za kodiranje/dekodiranje signala slike i aparat za sprovođenje istog - Google Patents

Postupak za kodiranje/dekodiranje signala slike i aparat za sprovođenje istog

Info

Publication number
RS68185B1
RS68185B1 RS20260691A RSP20260691A RS68185B1 RS 68185 B1 RS68185 B1 RS 68185B1 RS 20260691 A RS20260691 A RS 20260691A RS P20260691 A RSP20260691 A RS P20260691A RS 68185 B1 RS68185 B1 RS 68185B1
Authority
RS
Serbia
Prior art keywords
triangular
block
affine
prediction
pattern
Prior art date
Application number
RS20260691A
Other languages
English (en)
Inventor
Bae Keun Lee
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Publication of RS68185B1 publication Critical patent/RS68185B1/sr

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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • 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/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
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103—Selection of coding mode or of prediction mode
    • H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103—Selection of coding mode or of prediction mode
    • H04N19/109—Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103—Selection of coding mode or of prediction mode
    • H04N19/11—Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • 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/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
    • H04N19/139—Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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/182—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 pixel
    • 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/46—Embedding additional information in the video signal during the compression process
    • H04N19/463—Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51—Motion estimation or motion compensation
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51—Motion estimation or motion compensation
    • H04N19/513—Processing of motion vectors
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51—Motion estimation or motion compensation
    • H04N19/513—Processing of motion vectors
    • H04N19/517—Processing of motion vectors by encoding
    • H04N19/52—Processing of motion vectors by encoding by predictive encoding
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51—Motion estimation or motion compensation
    • H04N19/537—Motion estimation other than block-based
    • H04N19/54—Motion estimation other than block-based using feature points or meshes
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive 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/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • 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
    • 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/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic 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/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96—Tree coding, e.g. quad-tree coding

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, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Reduction Or Emphasis Of Bandwidth Of Signals (AREA)

Description

[0001] Opis
[0002] TEHNIČKA OBLAST
[0003] Predmetni pronalazak se odnosi na postupak kodiranja ili dekodiranja video-signala i aparat za sprovođenje tog postupka.
[0005] POZADINA PRONALASKA
[0006] Sa trendom da ekrani postaju sve veći i veći, tražene su video-usluge visoke definicije. Najveći problem video-usluga visoke definicije je to što se količina podataka značajno povećava, a da bi se rešio ovaj problem, aktivno su sprovođena istraživanja radi poboljšanja stope kompresije videa. Kao reprezentativan primer, Zajednički kolaborativni tim za videokodiranje (JCT-VC) osnovan je u Ekspertskoj grupi za video-kodiranje (VCEG) pod Međunarodnom unijom za telekomunikacije-Sektor za standardizaciju telekomunikacija (ITU-T) i Grupom eksperata za pokretne slike (MPEG) 2009. godine. JCT-VC je predložio visokoefikasno video-kodiranje (HEVC), što je standard video-kompresije čije su performanse kompresije oko dva puta veće od H.264/AVC, i odobren je kao standard 25. januara 2013. godine. Sa brzim razvojem video-usluga visoke definicije, performanse HEVC postepeno pokazuju svoja ograničenja.
[0008] R.-L LIAO (PANASONIC) ET AL: "CE10.3.1.b: Triangular prediction unit mode", 12. JVET MEETING; 20181003 - 20181012; MACAO; (THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ) obezbeđuje rezultate ispitivanja za režim trouglaste jedinice za predikciju.
[0010] BLÄSER (RWTH-AACHEN) M ET AL: "Description of SDR and 360° video coding technology proposal by RWTH Aachen University", 10. JVET MEETING; 20180410 -20180420; SAN DIEGO; (THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ), XP030248151 dopisuje alate za kodiranje specifične za SDR i alate za kodiranje specifične za 360° video.
[0011] TOMA (PANASONIC) T ET AL: "Description of SDR video coding technology proposal by Panasonic", 10. JVET MEETING; 20180410 - 20180420; SAN DIEGO; (THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16), XP030248129 je odgovor kompanije Panasonic na poziv za podnošenje predloga o video-kodiranju sa mogućnostima izvan HEVC u SDR kategoriji.
[0013] SAŽETAK PRONALASKA
[0015] TEHNIČKI PROBLEM
[0016] Predmetni pronalazak je usmeren na obezbeđivanje postupka za deljenje bloka kodiranja na mnoštvo blokova predikcije prilikom kodiranja ili dekodiranja video-signala i aparata za sprovođenje istog.
[0018] Predmetni pronalazak je usmeren na obezbeđivanje postupka za izvođenje informacija o kretanju za svaki od mnoštva blokova predikcije prilikom kodiranja ili dekodiranja videosignala i aparata za sprovođenje istog.
[0020] Predmetni pronalazak je usmeren na obezbeđivanje postupka za izvođenje kandidata za spajanje korišćenjem tabele informacija o kretanju između regiona prilikom kodiranja ili dekodiranja video-signala i aparata za sprovođenje postupka.
[0022] Tehnički problemi koje predmetni pronalazak ima za cilj da reši nisu ograničeni na gorepomenute probleme, a drugi tehnički problemi koji ovde nisu opisani treba da budu jasno razumljivi stručnjacima u predmetnoj oblasti iz sledećeg opisa.
[0024] TEHNIČKO REŠENJE
[0025] Dok je pronalazak definisan u nezavisnim patentnim zahtevima, dalji aspekti pronalaska su izloženi u zavisnim patentnim zahtevima, crtežima i sledećem opisu.
[0027] KORISNI EFEKTI
[0028] Prema predmetnom pronalasku, deljenjem bloka kodiranja na mnoštvo blokova predikcije i izvođenjem informacija o kretanju za svaki od blokova predikcije, moguće je poboljšati efikasnost inter-predikcije.
[0029] Prema predmetnom pronalasku, obezbeđivanjem postupka za izvođenje kandidata za spajanje korišćenjem tabele informacija o kretanju između regiona, moguće je poboljšati efikasnost inter-predikcije.
[0031] Korisni efekti pronalaska nisu ograničeni na gorepomenute efekte, a drugi korisni efekti koji ovde nisu opisani treba da budu jasno razumljivi stručnjacima u predmetnoj oblasti iz sledećeg opisa.
[0033] KRATAK OPIS CRTEŽA
[0034]
[0035] Slika 1 je blok-dijagram kodera prema jednom otelotvorenju predmetnog pronalaska.
[0036] Slika 2 je blok-dijagram dekodera prema jednom otelotvorenju predmetnog pronalaska.
[0037] Slika 3 je dijagram koji prikazuje osnovnu jedinicu stabla kodiranja prema jednom otelotvorenju predmetnog pronalaska.
[0038] Slika 4 je dijagram koji prikazuje različite tipove deljenja bloka kodiranja.
[0039] Slika 5 je dijagram koji ilustruje aspekt deljenja jedinice stabla kodiranja.
[0040] Slika 6 je dijagram toka postupka inter-predikcije prema jednom otelotvorenju predmetnog pronalaska.
[0041] Slika 7 je dijagram koji ilustruje nelinearno kretanje objekta.
[0042] Slika 8 je dijagram toka postupka inter-predikcije na osnovu afinog modela kretanja prema jednom otelotvorenju predmetnog pronalaska.
[0043] Slika 9 je dijagram koji ilustruje afini početni vektor za svaki afini model kretanja.
[0044] Slika 10 je dijagram koji ilustruje afine vektore podblokova pod 4-parametarskim modelom kretanja.
[0045] Slika 11 je dijagram koji prikazuje susedne blokove koji se mogu koristiti za izvođenje kandidata za spajanje.
[0046] Slika 12 je dijagram koji prikazuje primer izvođenja afinog početnog vektora tekućeg bloka na osnovu afinog početnog vektora afinog susednog bloka.
[0047] Slika 13 je dijagram koji prikazuje primer podešavanja vektora kretanja podbloka kao afinog početnog vektora afinog susednog bloka.
[0048] Slike 14 do 16 su dijagrami koji prikazuju lokaciju referentnog uzorka.
[0049] Slika 17 je dijagram koji prikazuje primer u kome je primenjen izmenjeni postupak izvođenja afinog vektora spajanja.
[0050] Slika 18 je dijagram koji prikazuje primer izvođenja afinog početnog vektora afinog kandidata za spajanje na osnovu vektora kretanja podblokova koji pripadaju susednom bloku. Slika 19 je dijagram koji prikazuje primer izvođenja afinih početnih vektora afinog kandidata za spajanje na osnovu vektora kretanja podblokova koji se nalaze levo od tekućeg bloka. Slika 20 je dijagram koji prikazuje primer izvođenja afinih početnih vektora afinog kandidata za spajanje na osnovu informacija o kretanju susednog bloka ili nesusednog bloka koji se nalazi levo od tekućeg bloka.
[0051] Slika 21 je dijagram koji prikazuje lokaciju bloka za izvođenje afinog početnog vektora afinog kandidata za spajanje.
[0052] Slika 22 je dijagram za opisivanje primera kombinovanja vektora kretanja mnoštva susednih blokova radi izvođenja kombinovanog kandidata za spajanje.
[0053] Slika 23 je dijagram koji prikazuje nedostupan susedni blok.
[0054] Slika 24 je dijagram toka postupka izvođenja informacija o kretanju tekućeg bloka u režimu spajanja.
[0055] Slika 25 je dijagram za opisivanje aspekta ažuriranja tabele informacija o kretanju između regiona.
[0056] Slika 26 je dijagram koji prikazuje aspekt ažuriranja tabele kandidata za spajanje između regiona.
[0057] Slika 27 je dijagram koji prikazuje primer u kome je indeks unapred uskladištenog kandidata za spajanje između regiona ažuriran.
[0058] Slika 28 je dijagram koji prikazuje lokaciju reprezentativnog podbloka.
[0059] Slika 29 prikazuje primer u kome je tabela informacija o kretanju između regiona generisana za svaki režim inter-predikcije.
[0060] Slika 30 je dijagram koji prikazuje primer u kome je kandidat za spajanje između regiona uključen u dugoročnu tabelu informacija o kretanju dodat na listu kandidata za spajanje. Slika 31 je dijagram koji prikazuje primer u kome je provera redundantnosti izvršena na samo nekim kandidatima za spajanje.
[0061] Slika 32 je dijagram koji prikazuje primer u kome je provera redundantnosti na specifičnom kandidatu za spajanje izostavljena.
[0062] Slika 33 je dijagram koji prikazuje primer deljenja bloka kodiranja na mnoštvo blokova predviđanja korišćenjem dijagonalne linije.
[0063] Slika 34 je dijagram koji prikazuje primer deljenja bloka kodiranja na dve jedinice predviđanja.
[0064] Slika 35 prikazuje primere u kojima je blok kodiranja podeljen na mnoštvo blokova predviđanja različitih veličina.
[0065] Slika 36 je dijagram koji prikazuje susedne blokove koji se koriste za izvođenje trouglastog kandidata za spajanje.
[0066] Slika 37 je dijagram za opisivanje primera određivanja dostupnosti susednog bloka za svaku trouglastu jedinicu predviđanja.
[0067] Slike 38 i 39 su dijagrami koji prikazuju primer izvođenja uzorka predikcije na osnovu operacije ponderisane sume prvog uzorka predikcije i drugog uzorka predikcije.
[0068] Slika 40 je dijagram toka postupka intra-predikcije prema jednom otelotvorenju predmetnog pronalaska.
[0069] Slika 41 je dijagram koji prikazuje režime intra-predikcije.
[0070] Slike 42 i 43 su dijagrami koji prikazuju primer jednodimenzionalnog niza u kome su referentni uzorci raspoređeni u liniji.
[0071] Slika 44 je dijagram koji ilustruje uglove formirane između prave linije paralelne sa x-osom i smernih režima intra-predikcije. Slika 45 je dijagram koji prikazuje aspekt u kome je uzorak predikcije dobijen kada tekući blok nije kvadratnog oblika.
[0072] Slika 46 je dijagram koji prikazuje širokougaone režime intra-predikcije.
[0073] Slika 47 je dijagram toka koji prikazuje postupak određivanja jačine blokiranja.
[0074] Slika 48 prikazuje unapred definisane kandidate za filtriranje.
[0076] DETALJNI OPIS
[0077] U nastavku teksta će otelotvorenja predmetnog pronalaska biti detaljno opisana sa osvrtom na prateće crteže.
[0079] Slika se kodira i dekodira u jedinicama blokova. Kao primer, obrada kodiranja i dekodiranja kao što je transformacija, kvantizacija, predikcija, filtriranje u petlji ili rekonstrukcija može se izvršiti na bloku kodiranja, bloku transformacije ili bloku predikcije.
[0081] U nastavku teksta, blok koji treba da se kodira ili dekodira nazivaće se „tekući blok”. Kao primer, tekući blok može da označava blok kodiranja, blok transformacije ili blok predikcije, u zavisnosti od tekućeg koraka za obradu kodiranja ili dekodiranja.
[0083] [0018] Pored toga, termin „jedinica” koji se ovde koristi može se razumeti tako da označava osnovnu jedinicu za sprovođenje specifičnog procesa kodiranja i dekodiranja, a termin „blok” se može razumeti tako da označava niz uzoraka unapred određene veličine. Osim ako nije drugačije navedeno, termini „blok” i „jedinica” mogu se koristiti naizmenično. Kao primer, u sledećim otelotvorenjima može se razumeti da blok kodiranja i jedinica kodiranja imaju ekvivalentna značenja.
[0085] Slika 1 je blok-dijagram kodera prema jednom otelotvorenju predmetnog pronalaska.
[0087] Sa osvrtom na sliku 1, aparat za kodiranje videa 100 može da uključi razdelnik slike 110, prediktore 120 i 125, transformator 130, kvantizer 135, element za preuređivanje 160, entropijski koder 165, inverzni kvantizer 140, inverzni transformator 145, filter 150 i memoriju 155.
[0089] Elementi na slici 1 su prikazani nezavisno kako bi predstavljali različite karakteristične funkcije u aparatu za kodiranje videa, i nije predviđeno da svaki od elemenata bude konfigurisan u zasebnoj hardverskoj jedinici ili kao jedna softverska jedinica. Drugim rečima, elementi su nezavisno raspoređeni radi jednostavnosti opisa. Radi sprovođenja funkcija, najmanje dva elementa se mogu kombinovati u jedan element, ili se jedan element može podeliti na mnoštvo elemenata. U ovom slučaju, otelotvorenje za kombinaciju elemenata i otelotvorenje za deljenje elementa obuhvaćeni su obimom predmetnog pronalaska bez odstupanja od suštine predmetnog pronalaska.
[0091] Takođe, neki od elemenata možda nisu suštinski elementi za sprovođenje suštinskih funkcija u predmetnom pronalasku i mogu biti samo opcioni elementi za poboljšanje performansi. Predmetni pronalazak se može implementirati uključivanjem samo elemenata neophodnih za implementaciju suštine predmetnog pronalaska, pre nego elemenata koji se koriste samo za poboljšanje performansi. Čak i struktura koja uključuje samo suštinske elemente, pre nego opcione elemente koji se koriste samo za poboljšanje performansi, obuhvaćena je obimom predmetnog pronalaska.
[0093] [0023] Razdelnik slike 110 može podeliti ulaznu sliku na najmanje jednu jedinicu obrade. U ovom slučaju, jedinica obrade može biti jedinica predikcije (PU), jedinica transformacije (TU) ili jedinica kodiranja (CU). Razdelnik slike 110 može podeliti jednu sliku na mnoštvo kombinacija jedinica kodiranja, jedinica predikcije i jedinica transformacije i može izabrati jednu kombinaciju jedinica kodiranja, jedinica predikcije i jedinica transformacije prema unapred određenom kriterijumu (npr. funkciji cene) radi kodiranja slike.
[0095] Na primer, jedna slika se može podeliti na mnoštvo jedinica kodiranja. Rekurzivna struktura stabla, kao što je struktura kvad-stabla, može se koristiti za deljenje slike na jedinice kodiranja. Jedinica kodiranja koja je podeljena na druge jedinice kodiranja korišćenjem jedne slike ili najveće jedinice kodiranja kao korena može imati broj čvorova naslednika koji odgovara broju podeljenih jedinica kodiranja. Jedinica kodiranja koja se više ne deli usled unapred određenog ograničenja služi kao lisni čvor. To jest, kada se pretpostavi da je za jednu jedinicu kodiranja moguće samo kvadratno deljenje, jedna jedinica kodiranja se može podeliti na do četiri druge jedinice kodiranja.
[0097] U sledećim otelotvorenjima predmetnog pronalaska, jedinica kodiranja može se odnositi na jedinicu konfigurisanu za sprovođenje kodiranja ili jedinicu konfigurisanu za sprovođenje dekodiranja.
[0099] Jedna jedinica kodiranja se može podeliti na najmanje jednu ili više jedinica predikcije iste veličine kvadratnog ili pravougaonog oblika i može se podeliti na jedinice predikcije tako da se jedna od jedinica predikcije razlikuje od druge jedinice predikcije po obliku i/ili veličini.
[0101] Kada se generiše jedinica predikcije podvrgnuta intra-predikciji na osnovu jedinice kodiranja, a jedinica kodiranja nije minimalna jedinica kodiranja, intra-predikcija se može sprovesti bez deljenja jedinice kodiranja na mnoštvo N×N jedinica predikcije.
[0103] Prediktori 120 i 125 mogu uključivati inter-prediktor 120 konfigurisan za sprovođenje inter-predikcije i intra-prediktor 125 konfigurisan za sprovođenje intra-predikcije. Prediktori 120 i 125 mogu odrediti da li će se na jedinicama predikcije sprovesti intra-predikcija ili će se koristiti inter-predikcija i mogu odrediti detaljne informacije (npr. režim intra-predikcije, vektor kretanja, referentnu sliku i slično) koje odgovaraju svakom postupku
[0104] predikcije. U ovom slučaju, jedinica obrade u kojoj se sprovodi predikcija može biti različita od jedinice obrade u kojoj se određuju postupak predikcije i specifični detalji. Na primer, postupak predikcije, režim predikcije i slično mogu se odrediti jedinicom predikcije, a predikcija se može sprovesti jedinicom transformacije. Rezidualna vrednost (rezidualni blok) između generisanog bloka predikcije i originalnog bloka može se dovesti u transformator 130. Takođe, informacije o vektoru kretanja, informacije o režimu predikcije i slično, koje se koriste za predikciju, pored rezidualne vrednosti mogu se kodirati entropijskim koderom 165 i isporučiti dekoderu. Kada se koristi specifičan režim kodiranja, originalni blok se može u potpunosti kodirati i preneti dekoderu bez generisanja bloka predikcije.
[0106] Inter-prediktor 120 može predvideti jedinicu predikcije na osnovu informacija o najmanje jednoj od prethodne slike ili naredne slike u odnosu na tekuću sliku, a u nekim slučajevima, jedinica predikcije se može predvideti na osnovu informacija o delimičnom regionu tekuće slike gde je kodiranje završeno. Inter-prediktor 120 može uključivati interpolator referentne slike, prediktor kretanja i kompenzator kretanja.
[0108] Interpolator referentne slike može primati informacije o referentnoj slici iz memorije 155 i može generisati informacije o pikselima koji su manji od celobrojnih piksela ili jednaki njima iz referentne slike. U slučaju piksela luminanse, može se koristiti DCT-zasnovan 8-kraki interpolacioni filter koji ima različite koeficijente filtera za generisanje informacija o pikselima manjim od celobrojnih piksela ili jednakim njima u jedinicama od 1/4 piksela. U slučaju signala hrominanse, može se koristiti DCT-zasnovan 4-kraki interpolacioni filter koji ima različite koeficijente filtera za generisanje informacija o pikselima manjim od celobrojnih piksela ili jednakim njima u jedinicama od 1/8 piksela.
[0110] Prediktor kretanja može sprovesti predikciju kretanja na osnovu referentne slike interpolirane interpolatorom referentne slike. Kao postupak za izračunavanje vektora kretanja mogu se koristiti različiti postupci kao što su algoritam upoređivanja blokova na osnovu potpune pretrage (FBMA), algoritam pretrage u tri koraka (TSS) i novi algoritam pretrage u tri koraka (NTS). Vektor kretanja može imati vrednost vektora kretanja u jedinicama od 1/2 ili 1/4 piksela na osnovu interpoliranih piksela. Jedinica za predikciju kretanja može predvideti tekuću jedinicu predikcije korišćenjem različitog postupka predikcije kretanja. Kao postupak predikcije kretanja mogu se koristiti različiti postupci kao što su postupak preskakanja, postupak spajanja, postupak napredne predikcije vektora kretanja (AMVP) i postupak kopiranja unutar bloka.
[0112] [0032] Intra-prediktor 125 može generisati jedinicu predikcije na osnovu informacija o referentnom pikselu u blizini tekućeg bloka, što predstavlja informacije o pikselima u tekućoj slici. Kada je obližnji blok tekuće jedinice predikcije blok podvrgnut inter-predikciji i stoga je referentni piksel, piksel podvrgnut inter-predikciji, informacije o referentnom pikselu obližnjeg bloka podvrgnutog intra-predikciji mogu se koristiti umesto referentnog piksela uključenog u blok podvrgnut inter-predikciji. To jest, kada referentni piksel nije dostupan, najmanje jedan dostupan referentni piksel može se koristiti umesto informacija o nedostupnom referentnom pikselu.
[0114] Režimi predikcije u intra-predikciji mogu uključivati usmereni režim predikcije koji koristi informacije o referentnom pikselu u zavisnosti od smera predikcije i neusmereni režim koji ne koristi informacije o usmerenosti prilikom sprovođenja predikcije. Režim za predviđanje informacija o luminansi i režim za predviđanje informacija o hrominansi mogu biti različiti, a informacije o režimu intra-predikcije koje se koriste za predviđanje informacija o luminansi ili informacije o predviđenom signalu luminanse mogu se iskoristiti za predviđanje informacija o hrominansi.
[0116] Kada se sprovodi intra-predikcija i jedinica predikcije je jedna po veličini jedinici transformacije, intra-predikcija se može sprovesti na jedinici predikcije na osnovu piksela koji se nalaze levo od jedinice predikcije, piksela koji se nalaze u gornjem levom uglu jedinice predikcije i piksela koji se nalaze na vrhu jedinice predikcije. Međutim, kada se sprovodi intra-predikcija i jedinica predikcije se razlikuje po veličini od jedinice transformacije, intra-predikcija se može sprovesti korišćenjem referentnog piksela na osnovu jedinice transformacije. Takođe, može se koristiti intra-predikcija koja koristi N×N deljenje samo za minimalnu jedinicu kodiranja.
[0118] [0035] U postupku intra-predikcije, blok predikcije se može generisati nakon primene adaptivnog intra-filtera za izravnavanje (AIS) na referentni piksel u zavisnosti od režima predikcije. Tip AIS filtera primenjenog na referentni piksel može varirati. Radi sprovođenja postupka intra-predikcije, režim intra-predikcije tekuće jedinice predikcije može se predvideti iz režima intra-predikcije jedinice predikcije u blizini tekuće jedinice predikcije. Kada se režim predikcije tekuće jedinice predikcije predviđa korišćenjem informacija o režimu predviđenih iz obližnje jedinice predikcije, informacije koje ukazuju na to da tekuća jedinica predikcije i obližnja jedinica predikcije imaju isti režim predikcije mogu se preneti korišćenjem unapred određene informacije zastavice kada je režim intra-predikcije tekuće jedinice predikcije isti kao režim intra-predikcije obližnje jedinice predikcije, a entropijsko kodiranje se može sprovesti radi kodiranja informacija o režimu predikcije tekućeg bloka kada se režim predikcije tekuće jedinice predikcije razlikuje od režima predikcije obližnje jedinice predikcije.
[0120] Takođe, rezidualni blok koji uključuje informacije o rezidualnoj vrednosti, koja predstavlja razliku između jedinice predikcije podvrgnute predikciji i originalnog bloka te jedinice predikcije, može se generisati na osnovu jedinica predikcije koje su generisane prediktorima 120 i 125. Generisani rezidualni blok može se dovesti u transformator 130.
[0122] Transformator 130 može transformisati rezidualni blok koji uključuje informacije o rezidualnoj vrednosti između originalnog bloka i jedinica predikcije generisanih prediktorima 120 i 125 korišćenjem postupka transformacije kao što je diskretna kosinusna transformacija (DCT) ili diskretna sinusna transformacija (DST). Ovde jezgro DCT transformacije uključuje najmanje jedno od DCT2 ili DCT8, a jezgro DST transformacije uključuje DST7. Da li će se primeniti DCT ili DST za transformaciju rezidualnog bloka može se odrediti na osnovu informacija o režimu intra-predikcije jedinice predikcije koja je korišćena za generisanje rezidualnog bloka. Transformacija rezidualnog bloka se može preskočiti. Zastavica koja ukazuje na to da li treba preskočiti transformaciju rezidualnog bloka može se kodirati.
[0123] Preskakanje transformacije može biti dozvoljeno za rezidualne blokove veličine manje od granične vrednosti ili jednake njoj, komponentu osvetljenosti ili komponentu hrominantnosti pod strukturom 4:4:4.
[0125] Kvantizer 135 može kvantizovati vrednosti koje su transformisane u frekvencijski domen transformatorom 130. Koeficijenti kvantizacije mogu varirati u zavisnosti od bloka ili važnosti slike. Vrednosti koje izračuna kvantizer 135 mogu se dostaviti inverznom kvantizeru 140 i elementu za preuređivanje 160.
[0127] Element za preuređivanje 160 može izvršiti preuređivanje vrednosti koeficijenata na kvantizovanim rezidualnim vrednostima.
[0129] [0040] Element za preuređivanje 160 može promeniti koeficijente iz dvodimenzionalnog oblika bloka u jednodimenzionalni oblik vektora putem postupka skeniranja koeficijenata. Na primer, element za preuređivanje 160 može skenirati DC koeficijente, pa čak i visokofrekventne koeficijente korišćenjem postupka cik-cak skeniranja kako bi promenio koeficijente u jednodimenzionalni oblik vektora. U zavisnosti od režima intra-predikcije i veličine jedinice transformacije, umesto cik-cak skeniranja može se koristiti vertikalno skeniranje, u kome se koeficijenti dvodimenzionalnog tipa bloka skeniraju u smeru kolone, ili horizontalno skeniranje, u kome se koeficijenti dvodimenzionalnog tipa bloka skeniraju u smeru reda. To jest, element za preuređivanje može odrediti postupak skeniranja koji će se koristiti između cik-cak skeniranja, vertikalnog skeniranja i horizontalnog skeniranja u zavisnosti od veličine jedinice transformacije i režima intra-predikcije.
[0131] Entropijski koder 165 može sprovesti entropijsko kodiranje na osnovu vrednosti koje je izračunao element za preuređivanje 160. Entropijsko kodiranje može koristiti, na primer, različite postupke kodiranja kao što su eksponencijalni Golomb, kontekstno adaptivno kodiranje sa promenljivom dužinom (CAVLC) i kontekstno adaptivno binarno aritmetičko kodiranje (CABAC).
[0133] Entropijski koder 165 može kodirati različite informacije kao što su informacije o koeficijentima rezidualne vrednosti i informacije o tipu bloka jedinice kodiranja, informacije o režimu predikcije, informacije o deljenju, informacije o jedinici predikcije, informacije o jedinici prenosa, informacije o vektoru kretanja, informacije o referentnom okviru, informacije o interpolaciji bloka i informacije o filtriranju dobijene od elementa za preuređivanje 160 i prediktora 120 i 125.
[0135] Entropijski koder 165 može sprovesti entropijsko kodiranje na vrednostima koeficijenata jedinice kodiranja koje su dovedene iz elementa za preuređivanje 160.
[0137] Inverzni kvantizer 140 može inverzno kvantizovati vrednosti koje je kvantizovao kvantizer 135, a inverzni transformator 145 može inverzno transformisati vrednosti koje je transformisao transformator 130. Rezidualna vrednost generisana inverznim kvantizerom 140 i inverznim transformatorom 145 može se kombinovati sa jedinicom predikcije koja je predviđena putem prediktora kretanja, kompenzatora kretanja i intra-prediktora iz prediktora 120 i 125 kako bi se generisao rekonstruisani blok.
[0139] Filter 150 može primeniti najmanje jedno od deblokirajućeg filtera, korektora pomeraja i adaptivnog filtera petlje.
[0140] Deblokirajući filter može ukloniti izobličenje bloka koje je nastalo usled granice između blokova iz rekonstruisane slike. Radi određivanja da li treba sprovesti deblokiranje, da li će se deblokirajući filter primeniti na tekući blok može se odrediti na osnovu piksela uključenih u nekoliko redova ili kolona u bloku. Kada se deblokirajući filter primeni na blok, može se primeniti jak filter ili slab filter u zavisnosti od zahtevane jačine deblokirajućeg filtriranja. Takođe, kada se primeni deblokirajući filter, vertikalno filtriranje i horizontalno filtriranje mogu se sprovesti tako da se horizontalno filtriranje i vertikalno filtriranje obrađuju paralelno.
[0142] Korektor pomeraja može ispraviti pomeraj u odnosu na originalnu sliku u slici podvrgnutoj deblokiranju u jedinicama piksela. Postupak klasifikacije piksela uključenih u sliku na određeni broj regiona, određivanja regiona koji treba podvrgnuti pomeraju i primene pomeraja na određeni region, ili postupak primene pomeraja uz uzimanje u obzir informacija o ivicama svakog piksela može se koristiti za sprovođenje korekcije pomeraja na određenoj slici.
[0144] Adaptivno filtriranje petlje (ALF) može se sprovesti na osnovu vrednosti dobijenih upoređivanjem filtrirane rekonstruisane slike i originalne slike. Klasifikacijom piksela uključenih u sliku u unapred određene grupe i određivanjem filtera koji će se primeniti na svaku od grupa, može se sprovesti diferencijalno filtriranje za svaku grupu. Informacije o tome da li treba primeniti ALF mogu se preneti za svaku jedinicu kodiranja (CU), a oblik i koeficijenti filtera ALF filtera koji će se primeniti mogu varirati u zavisnosti od bloka.
[0145] Takođe, ALF filter u istom obliku (fiksnom obliku) može se primeniti bez obzira na karakteristiku bloka koji treba podvrgnuti filtriranju.
[0147] Memorija 155 može skladištiti rekonstruisani blok ili sliku izračunatu kroz filter 150. Uskladišteni rekonstruisani blok ili slika mogu se dostaviti prediktorima 120 i 125 kada se sprovodi inter-predikcija.
[0149] Slika 2 je blok-dijagram dekodera prema jednom otelotvorenju predmetnog pronalaska.
[0150] Sa osvrtom na sliku 2, dekoder 200 može da uključi entropijski dekoder 210, element za preuređivanje 215, inverzni kvantizer 220, inverzni transformator 225, prediktore 230 i 235, filter 240 i memoriju 245.
[0152] Kada se video-tok bitova dovede iz kodera, ulazni tok bitova se može dekodirati u postupku obrnutom od postupka kodera.
[0154] Entropijski dekoder 210 može sprovesti entropijsko dekodiranje u postupku obrnutom od postupka u kome entropijski koder kodera sprovodi entropijsko kodiranje. Na primer, različiti postupci kao što su eksponencijalni Golomb, kontekstno adaptivno kodiranje sa promenljivom dužinom (CAVLC) i kontekstno adaptivno binarno aritmetičko kodiranje (CABAC) mogu se primeniti tako da odgovaraju postupku koji sprovodi koder.
[0156] Entropijski dekoder 210 može dekodirati informacije koje se odnose na intrapredikciju i inter-predikciju sprovedenu koderom.
[0158] Element za preuređivanje 215 može izvršiti preuređivanje na toku bitova podvrgnutom entropijskom dekodiranju entropijskim dekoderom 210 na osnovu postupka preuređivanja koji je koristio koder. Element za preuređivanje 215 može rekonstruisati koeficijente izražene u jednodimenzionalnom obliku vektora u koeficijente dvodimenzionalnog tipa bloka radi preuređivanja koeficijenata dvodimenzionalnog tipa bloka. Element za preuređivanje 215 može primati informacije povezane sa skeniranjem koeficijenata koje je sproveo koder i izvršiti preuređivanje putem postupka inverznog skeniranja na osnovu redosleda skeniranja kodera.
[0160] Inverzni kvantizer 220 može sprovesti inverznu kvantizaciju na osnovu preuređenih vrednosti koeficijenata bloka i parametara kvantizacije koje je obezbedio koder.
[0162] [0057] Inverzni transformator 225 može sprovesti inverznu DCT ili inverznu DST na rezultatu kvantizacije koju je sproveo koder, pri čemu je inverzna DCT ili inverzna DST inverzna transformacija u odnosu na transformaciju koju je sprovela jedinica transformacije, to jest DCT ili DST. Ovde jezgro DCT transformacije može uključivati najmanje jedno od DCT2 ili DCT8, a jezgro DST transformacije može uključivati DST7. Alternativno, kada je transformacija preskočena u koderu, inverzni transformator 225 ne mora sprovesti inverznu transformaciju. Inverzna transformacija se može sprovesti na osnovu jedinice prenosa koju je odredio koder. U inverznom transformatoru 225 dekodera, tehnike transformacije (npr. DCT i DST) mogu se selektivno sprovoditi u zavisnosti od mnoštva informacija kao što su postupak predikcije, veličina tekućeg bloka i smer predikcije.
[0164] Prediktori 230 i 235 mogu generisati blok predikcije na osnovu informacija povezanih sa generisanjem bloka predikcije, koje obezbeđuje entropijski dekoder 210, i informacija o prethodno dekodiranom bloku ili slici, koje obezbeđuje memorija 245.
[0166] Kao što je gore opisano, kada se intra-predikcija sprovodi na isti način kao i u koderu, a jedinica predikcije je jednaka po veličini jedinici transformacije, intra-predikcija se može sprovesti na jedinici predikcije na osnovu piksela koji se nalaze levo od jedinice predikcije, piksela koji se nalaze u gornjem levom uglu jedinice predikcije i piksela koji se nalaze na vrhu jedinice predikcije. Sa druge strane, kada se sprovodi intra-predikcija i jedinica predikcije se razlikuje po veličini od jedinice transformacije, intra-predikcija se može sprovesti korišćenjem referentnog piksela na osnovu jedinice transformacije. Takođe, može se koristiti intra-predikcija koja koristi N×N deljenje samo za minimalnu jedinicu kodiranja.
[0168] Prediktori 230 i 235 mogu uključivati element za određivanje jedinice predikcije, inter-prediktor i intra-prediktor. Element za određivanje jedinice predikcije može primati različite informacije kao što su informacije o jedinici predikcije, informacije o režimu predikcije za postupak intra-predikcije i informacije povezane sa predikcijom kretanja za postupak inter-predikcije od entropijskog dekodera 210, klasifikovati jedinicu predikcije u tekućoj jedinici kodiranja i odrediti da li jedinica predikcije sprovodi inter-predikciju ili intrapredikciju. Korišćenjem informacija neophodnih za inter-predikciju tekuće jedinice predikcije koje je obezbedio koder, inter-prediktor 230 može sprovesti inter-predikciju na tekućoj jedinici predikcije na osnovu informacija uključenih u najmanje jednu od slike koja prethodi tekućoj slici koja uključuje tekuću jedinicu predikcije ili slike koja sledi nakon tekuće slike. Alternativno, inter-predikcija se može sprovesti na osnovu informacija o nekim unapred rekonstruisanim regionima u tekućoj slici koja uključuje tekuću jedinicu predikcije.
[0170] [0061] Inter-prediktor 230 može odrediti da li je postupak predikcije kretanja za jedinicu predikcije uključenu u odgovarajuću jedinicu kodiranja režim preskakanja, režim spajanja, AMVP režim ili režim kopiranja unutar bloka na osnovu jedinice kodiranja radi sprovođenja inter-predikcije.
[0172] Intra-prediktor 235 može generisati blok predikcije na osnovu informacija o pikselima u tekućoj slici. Kada je jedinica predikcije jedinica predikcije podvrgnuta intra-predikciji, intra-prediktor 235 može sprovesti intra-predikciju na osnovu informacija o režimu intrapredikcije jedinice predikcije koje je obezbedio koder. Intra-prediktor 235 može uključivati AIS filter, interpolator referentnog piksela i DC filter. AIS filter, koji predstavlja deo koji sprovodi filtriranje na referentnom pikselu tekućeg bloka, može odrediti da li treba primeniti filter u zavisnosti od režima predikcije tekuće jedinice predikcije. AIS filter može sprovesti AIS filtriranje na referentnom pikselu tekućeg bloka korišćenjem informacija o AIS filteru i režima predikcije jedinice predikcije koje je obezbedio koder. Kada je režim predikcije tekućeg bloka režim u kome se ne sprovodi AIS filtriranje, AIS filter se ne mora primeniti.
[0174] Kada je režim predikcije jedinice predikcije režim predikcije u kome se intrapredikcija sprovodi na osnovu vrednosti piksela dobijene interpolacijom referentnog piksela, interpolator referentnog piksela može interpolirati referentni piksel radi generisanja referentnog piksela u jedinici piksela manjoj od celobrojnog piksela ili jednakoj njemu. Kada je režim predikcije tekuće jedinice predikcije režim predikcije u kome se blok predikcije generiše bez interpolacije referentnog piksela, referentni piksel se ne mora interpolirati. Kada je režim predikcije tekućeg bloka DC režim, DC filter može generisati blok predikcije putem filtriranja.
[0176] Rekonstruisani blok ili slika mogu se dostaviti filteru 240. Filter 240 može uključivati deblokirajući filter, korektor pomeraja i ALF filter.
[0178] Filter 240 može primati informacije o tome da li se deblokirajući filter primenjuje na odgovarajući blok ili sliku ili informacije o tome da li se primenjuje jak filter ili slab filter kada se primenjuje deblokirajući filter od kodera. Deblokirajući filter dekodera može primati informacije povezane sa deblokirajućim filterom koje je obezbedio koder, a dekoder može sprovesti deblokirajuće filtriranje na odgovarajućem bloku.
[0179] Korektor pomeraja može sprovesti korekciju pomeraja na rekonstruisanoj slici na osnovu tipa korekcije pomeraja, informacija o vrednosti pomeraja i slično, koji su primenjeni na sliku prilikom kodiranja.
[0181] ALF se može primeniti na jedinicu kodiranja na osnovu informacija o tome da li treba primeniti ALF, informacija o koeficijentima ALF i slično, koje su obezbeđene od kodera. ALF informacije se mogu obezbediti tako što su uključene u specifičan skup parametara.
[0183] Memorija 245 može skladištiti rekonstruisanu sliku ili blok tako da se slika ili blok mogu koristiti kao referentna slika ili referentni blok i takođe može dostaviti rekonstruisanu sliku izlaznoj jedinici.
[0185] Slika 3 je dijagram koji prikazuje osnovnu jedinicu stabla kodiranja prema jednom otelotvorenju predmetnog pronalaska.
[0187] Jedinica kodiranja najveće veličine može se definisati kao blok stabla kodiranja. Jedna slika se deli na mnoštvo jedinica stabla kodiranja (CTU). Jedinica stabla kodiranja, koja predstavlja jedinicu kodiranja najveće veličine, može se nazvati najvećom jedinicom kodiranja (LCU). Slika 3 prikazuje primer u kome je jedna slika podeljena na mnoštvo jedinica stabla kodiranja.
[0189] Veličina jedinice stabla kodiranja može se definisati na nivou slike ili nivou sekvence. U tu svrhu, informacije koje ukazuju na veličinu jedinice stabla kodiranja mogu se signalizirati kroz skup parametara slike ili skup parametara sekvence.
[0191] Kao primer, veličina jedinice stabla kodiranja za celu sliku u sekvenci može se postaviti na 128×128. Alternativno, jedna od veličina 128×128 ili 256×256 može se odrediti kao veličina jedinice stabla kodiranja na nivou slike. Kao primer, veličina jedinice stabla kodiranja u prvoj slici može se postaviti na 128×128, a veličina jedinice stabla kodiranja u drugoj slici može se postaviti na 256×256.
[0193] [0073] Jedinica stabla kodiranja se može podeliti radi generisanja bloka kodiranja. Blok kodiranja ukazuje na osnovnu jedinicu za obradu kodiranja ili dekodiranja. Kao primer, predikcija ili transformacija se mogu sprovesti za svaki blok kodiranja, ili se režim prediktivnog kodiranja može odrediti za svaki blok kodiranja. Ovde režim prediktivnog kodiranja ukazuje na postupak generisanja slike predikcije. Kao primer, režim prediktivnog kodiranja može uključivati intra-predikciju, inter-predikciju, referenciranje tekuće slike (CPR) (ili kopiranje unutar bloka (IBC)) ili kombinovanu predikciju. Blok predikcije za blok kodiranja može se generisati korišćenjem najmanje jednog režima prediktivnog kodiranja među intra-predikcijom, inter-predikcijom, referenciranjem tekuće slike ili kombinovanom predikcijom za blok kodiranja.
[0195] Informacije koje ukazuju na režim prediktivnog kodiranja tekućeg bloka mogu se signalizirati u toku bitova. Kao primer, informacije mogu biti 1-bitna zastavica koja ukazuje na to da li je režim prediktivnog kodiranja intra-režim ili inter-režim. Referenciranje tekuće slike ili kombinovana predikcija mogu biti dostupni samo kada se odredi da je režim prediktivnog kodiranja tekućeg bloka inter-režim.
[0197] Referenciranje tekuće slike služi za postavljanje tekuće slike kao referentne slike i dobijanje bloka predikcije tekućeg bloka iz regiona tekuće slike gde je kodiranje ili dekodiranje završeno. Ovde se tekuća slika odnosi na sliku koja uključuje tekući blok.
[0198] Informacije koje ukazuju na to da je referenciranje tekuće slike primenjeno na tekući blok mogu se signalizirati u toku bitova. Kao primer, informacije mogu biti 1-bitna zastavica. Može se odrediti da je režim prediktivnog kodiranja tekućeg bloka referenciranje tekuće slike kada je zastavica postavljena na true, a može se odrediti da je režim predikcije tekućeg bloka inter-predikcija kada je zastavica postavljena na false.
[0200] Alternativno, režim prediktivnog kodiranja tekućeg bloka može se odrediti na osnovu indeksa referentne slike. Kao primer, kada indeks referentne slike ukazuje na tekuću sliku, može se odrediti da je režim prediktivnog kodiranja tekućeg bloka referenciranje tekuće slike. Kada indeks referentne slike ukazuje na sliku koja nije tekuća slika, može se odrediti da je režim prediktivnog kodiranja tekućeg bloka inter-predikcija. To jest, referenciranje tekuće slike je postupak predikcije koji koristi informacije o regionu tekuće slike gde je kodiranje ili dekodiranje završeno, a inter-predikcija je postupak predikcije koji koristi informacije o drugoj slici gde je kodiranje ili dekodiranje završeno.
[0202] [0077] Kombinovana predikcija ukazuje na režim kodiranja dobijen kombinovanjem dva ili više od intra-predikcije, inter-predikcije i referenciranja tekuće slike. Kao primer, kada se primeni kombinovana predikcija, prvi blok predikcije se može generisati na osnovu jednog od intra-predikcije, inter-predikcije ili referenciranja tekuće slike, a drugi blok predikcije se može generisati na osnovu drugog od njih. Kada se generišu prvi blok predikcije i drugi blok predikcije, konačni blok predikcije se može generisati putem operacije usrednjavanja ili operacije ponderisane sume između prvog bloka predikcije i drugog bloka predikcije.
[0203] Informacije koje ukazuju na to da li je kombinovana predikcija primenjena mogu se signalizirati u toku bitova. Informacije mogu biti 1-bitna zastavica.
[0205] Slika 4 je dijagram koji prikazuje različite tipove deljenja bloka kodiranja.
[0207] Blok kodiranja se može podeliti na mnoštvo blokova kodiranja na osnovu deljenja po kvad-stablu, deljenja po binarnom stablu ili deljenja po ternarnom stablu. Blok kodiranja dobijen putem deljenja može se ponovo podeliti na mnoštvo blokova kodiranja na osnovu deljenja po kvad-stablu, deljenja po binarnom stablu ili deljenja po ternarnom stablu.
[0209] Deljenje po kvad-stablu ukazuje na tehniku deljenja kojom se tekući blok deli na četiri bloka. Kao rezultat deljenja po kvad-stablu, tekući blok se može podeliti na četiri kvadratna dela (videti „SPLIT_QT” na slici 4A).
[0211] Deljenje po binarnom stablu ukazuje na tehniku deljenja kojom se tekući blok deli na dva bloka. Deljenje tekućeg bloka na dva bloka u vertikalnom smeru (to jest, korišćenjem vertikalne linije preko tekućeg bloka) može se nazvati vertikalnim deljenjem po binarnom stablu, a deljenje tekućeg bloka na dva bloka u horizontalnom smeru (to jest, korišćenjem horizontalne linije preko tekućeg bloka) može se nazvati horizontalnim deljenjem po binarnom stablu. Kao rezultat deljenja po binarnom stablu, tekući blok se može podeliti na dva nekvadratna dela. Na slici 4B, „SPLIT_BT_VER” predstavlja rezultat vertikalnog deljenja po binarnom stablu. Na slici 4C, „SPLIT_BT_HOR” predstavlja rezultat horizontalnog deljenja po binarnom stablu.
[0213] [0082] Deljenje po ternarnom stablu ukazuje na tehniku deljenja kojom se tekući blok deli na tri bloka. Deljenje tekućeg bloka na tri bloka u vertikalnom smeru (to jest, korišćenjem dve vertikalne linije preko tekućeg bloka) može se nazvati vertikalnim deljenjem po ternarnom stablu, a deljenje tekućeg bloka na tri bloka u horizontalnom smeru (to jest, korišćenjem dve horizontalne linije preko tekućeg bloka) može se nazvati horizontalnim deljenjem po ternarnom stablu. Kao rezultat deljenja po ternarnom stablu, tekući blok se može podeliti na tri nekvadratna dela. U ovom slučaju, širina ili visina dela koji se nalazi u centru tekućeg bloka može biti dvostruko veća od širine ili visine ostalih delova. Na slici 4D, „SPLIT_TT_VER” predstavlja rezultat vertikalnog deljenja po ternarnom stablu. Na slici 4E, „SPLIT_TT_HOR” predstavlja rezultat horizontalnog deljenja po ternarnom stablu.
[0215] Broj deljenja jedinice stabla kodiranja može se definisati kao dubina deljenja (ili dubina podele). Maksimalna dubina deljenja jedinice stabla kodiranja može se odrediti na nivou sekvence ili nivou slike. Prema tome, maksimalna dubina deljenja jedinice stabla kodiranja može varirati u zavisnosti od sekvence ili slike.
[0217] Alternativno, maksimalna dubina deljenja može se odrediti pojedinačno za svaku tehniku deljenja. Kao primer, maksimalna dubina deljenja dozvoljena za deljenje po kvadstablu može se razlikovati od maksimalne dubine deljenja dozvoljene za deljenje po binarnom stablu i/ili deljenje po ternarnom stablu.
[0219] Koder može signalizirati informacije koje ukazuju na najmanje jedan od tipova deljenja ili dubinu deljenja tekućeg bloka u toku bitova. Dekoder može odrediti tip deljenja i dubinu deljenja jedinice stabla kodiranja na osnovu informacija koje su parsirane iz toka bitova.
[0221] Slika 5 je dijagram koji ilustruje aspekt deljenja jedinice stabla kodiranja.
[0223] Deljenje bloka kodiranja korišćenjem tehnike deljenja kao što je deljenje po kvadstablu, deljenje po binarnom stablu i/ili deljenje po ternarnom stablu može se nazvati deljenjem po više-stabalnom modelu (deljenje po više-stabalnom modelu).
[0225] Blokovi kodiranja generisani primenom deljenja po više-stabalnom modelu na blok kodiranja mogu se nazvati nižim blokovima kodiranja. Kada je dubina deljenja bloka kodiranja k, dubina deljenja nižih blokova kodiranja postavlja se na k+1.
[0227] Nasuprot tome, u odnosu na blokove kodiranja sa dubinom deljenja k+1, blok kodiranja sa dubinom deljenja k može se nazvati višim blokom kodiranja.
[0228] Tip deljenja tekućeg bloka kodiranja može se odrediti na osnovu najmanje jednog od tipova deljenja višeg bloka kodiranja ili tipa deljenja susednog bloka kodiranja. Ovde je susedni blok kodiranja susedan tekućem bloku kodiranja i može uključivati najmanje jedan od susednog bloka koji se nalazi iznad tekućeg bloka kodiranja, susednog bloka koji se nalazi levo od tekućeg bloka kodiranja ili susednog bloka koji je susedan gornjem levom uglu tekućeg bloka kodiranja. Ovde tip deljenja može uključivati najmanje jedno od prisustva deljenja po kvad-stablu, prisustva deljenja po binarnom stablu, smera deljenja po binarnom stablu, prisustva deljenja po ternarnom stablu ili smera deljenja po ternarnom stablu.
[0230] Radi određivanja tipa deljenja bloka kodiranja, informacije koje ukazuju na to da li je blok kodiranja podeljen mogu se signalizirati u toku bitova. Te informacije su 1-bitna zastavica „split_cu_flag”, pri čemu zastavica koja je postavljena na true ukazuje na to da je blok kodiranja podeljen tehnikom deljenja po više-stabalnom modelu.
[0232] Kada je split_cu_flag postavljeno na true, informacije koje ukazuju na to da li je blok kodiranja podeljen putem deljenja po kvad-stablu mogu se signalizirati u toku bitova. Te informacije su 1-bitna zastavica „split_qt_flag”, i kada je ta zastavica postavljena na true, blok kodiranja se može podeliti na četiri bloka.
[0234] Na primer, na slici 5 je prikazano da se generišu četiri bloka kodiranja sa dubinom deljenja jedan jer je jedinica stabla kodiranja podeljena putem deljenja po kvad-stablu.
[0235] Takođe je prikazano da se deljenje po kvad-stablu ponovo primenjuje na prvi blok kodiranja i četvrti blok kodiranja među četiri bloka kodiranja generisana sprovođenjem deljenja po kvadstablu. Kao rezultat, mogu se generisati četiri bloka kodiranja sa dubinom deljenja dva.
[0237] Takođe, ponovnom primenom deljenja po kvad-stablu na blok kodiranja sa dubinom deljenja dva, može se generisati blok kodiranja sa dubinom deljenja tri.
[0239] [0095] Kada se deljenje po kvad-stablu ne primeni na blok kodiranja, to da li će se na bloku kodiranja sprovesti deljenje po binarnom stablu ili deljenje po ternarnom stablu može se odrediti uzimajući u obzir najmanje jedno od veličine bloka kodiranja, toga da li se blok kodiranja nalazi na ivici slike, maksimalne dubine deljenja ili aspekta deljenja susednog bloka. Kada se odredi da se na bloku kodiranja sprovodi deljenje po binarnom stablu ili deljenje po ternarnom stablu, informacije koje ukazuju na smer deljenja mogu se signalizirati u toku bitova. Te informacije mogu biti 1-bitna zastavica mtt_split_cu_vertical_flag. Na osnovu te zastavice može se odrediti da li je smer deljenja vertikalni ili horizontalni. Pored toga, informacije koje ukazuju na to koje se od deljenja po binarnom stablu i deljenja po ternarnom stablu primenjuje na blok kodiranja mogu se signalizirati u toku bitova. Te informacije mogu biti 1-bitna zastavica mtt_split_cu_binary_flag. Na osnovu te zastavice može se odrediti da li se na blok kodiranja primenjuje deljenje po binarnom stablu ili deljenje po ternarnom stablu.
[0241] Na primer, na slici 5 je prikazano da je vertikalno deljenje po binarnom stablu primenjeno na blok kodiranja sa dubinom deljenja jedan, vertikalno deljenje po ternarnom stablu je primenjeno na levi blok kodiranja među blokovima kodiranja generisanim kao rezultat vertikalnog deljenja po binarnom stablu, a vertikalno deljenje po binarnom stablu je primenjeno na desni blok kodiranja.
[0243] Inter-predikcija je režim prediktivnog kodiranja u kome se tekući blok predviđa korišćenjem informacija o prethodnoj slici. Kao primer, blok uključen u prethodnu sliku i postavljen na istu lokaciju kao i tekući blok (u nastavku teksta nazvan kolocirani blok) može se postaviti kao blok predikcije tekućeg bloka. Blok predikcije generisan na osnovu bloka postavljenog na istu lokaciju kao i tekući blok nazivaće se kolocirani blok predikcije.
[0245] Sa druge strane, kada se objekat prisutan u prethodnoj slici pomeri na drugu lokaciju u tekućoj slici, tekući blok se može efikasno predvideti korišćenjem kretanja tog objekta. Na primer, kada se smer kretanja i veličina objekta mogu pronaći upoređivanjem prethodne slike sa tekućom slikom, blok predikcije (ili slika predikcije) tekućeg bloka može se generisati uzimajući u obzir informacije o kretanju tog objekta. U nastavku teksta, blok predikcije generisan korišćenjem informacija o kretanju može se nazvati blokom predikcije kretanja.
[0247] Rezidualni blok se može generisati oduzimanjem bloka predikcije od tekućeg bloka. U tom trenutku, kada je kretanje objekta prisutno, moguće je smanjiti energiju rezidualnog bloka, i shodno tome moguće je poboljšati performanse kompresije rezidualnog bloka korišćenjem bloka predikcije kretanja umesto kolociranog bloka predikcije.
[0248] Kao što je gore opisano, generisanje bloka predikcije korišćenjem informacija o kretanju može se nazvati predikcijom sa kompenzacijom kretanja. U većini inter-predikcija, blok predikcije se može generisati na osnovu predikcije sa kompenzacijom kretanja.
[0250] Informacije o kretanju mogu uključivati najmanje jedno od vektora kretanja, indeksa referentne slike, smera predikcije ili indeksa dvosmerne težine. Vektor kretanja ukazuje na smer kretanja i veličinu objekta. Indeks referentne slike specifikuje referentnu sliku tekućeg bloka među referentnim slikama uključenim u listu referentnih slika. Smer predikcije ukazuje na jedno od jednosmerne L0 predikcije, jednosmerne L1 predikcije ili dvosmerne predikcije (L0 predikcija i L1 predikcija). Najmanje jedna od informacija o kretanju u smeru L0 ili informacija o kretanju u smeru L1 može se koristiti u zavisnosti od smera predikcije tekućeg bloka. Indeks dvosmerne težine specifikuje težinu koja se primenjuje na L0 blok predikcije i težinu koja se primenjuje na L1 blok predikcije.
[0252] Slika 6 je dijagram toka postupka inter-predikcije prema jednom otelotvorenju predmetnog pronalaska.
[0254] Sa osvrtom na sliku 6, postupak inter-predikcije uključuje određivanje režima interpredikcije tekućeg bloka (S601), dobijanje informacija o kretanju tekućeg bloka u skladu sa određenim režimom inter-predikcije (S602) i sprovođenje predikcije sa kompenzacijom kretanja na tekućem bloku na osnovu dobijenih informacija o kretanju (S603).
[0256] Ovde režim inter-predikcije, koji predstavlja različite tehnike za određivanje informacija o kretanju tekućeg bloka, može uključivati režim inter-predikcije koji koristi informacije o translacionom kretanju i režim inter-predikcije koji koristi informacije o afinom kretanju. Kao primer, režim inter-predikcije koji koristi informacije o translacionom kretanju može uključivati režim spajanja i režim predikcije vektora kretanja, a režim inter-predikcije koji koristi informacije o afinom kretanju može uključivati afini režim spajanja i afini režim predikcije vektora kretanja. Informacije o kretanju tekućeg bloka mogu se odrediti na osnovu informacija koje su parsirane iz toka bitova ili blokova koji su susedni tekućem bloku u skladu sa režimom inter-predikcije.
[0258] Postupak inter-predikcije koji koristi informacije o afinom kretanju biće detaljno opisan u nastavku teksta.
[0259] Slika 7 je dijagram koji ilustruje nelinearno kretanje objekta.
[0261] Kretanje objekta na slici može se javiti nelinearno. Na primer, kao u primeru prikazanom na slici 7, može se javiti nelinearno kretanje objekta, kao što je uvećanje, umanjenje, rotacija i afina transformacija. Kada se javi nelinearno kretanje objekta, translacioni vektor kretanja ne može efikasno da predstavi kretanje objekta. Shodno tome, moguće je poboljšati efikasnost kodiranja korišćenjem afinog kretanja u delu gde se javilo nelinearno kretanje objekta umesto translacionog kretanja.
[0263] Slika 8 je dijagram toka postupka inter-predikcije na osnovu afini modela kretanja prema jednom otelotvorenju predmetnog pronalaska.
[0265] To da li se tehnika inter-predikcije zasnovana na afini modelu kretanja primenjuje na tekući blok može se odrediti na osnovu informacija parsiranih iz toka bitova. Detaljnije, to da li se tehnika inter-predikcije zasnovana na afini modelu kretanja primenjuje na tekući blok može se odrediti na osnovu najmanje jedne od zastavice koja ukazuje na to da li se afini režim spajanja primenjuje na tekući blok ili zastavice koja ukazuje na to da li se afini režim predikcije vektora kretanja primenjuje na tekući blok.
[0267] Kada se tehnika inter-predikcije zasnovana na afini modelu kretanja primeni na tekući blok, može se odrediti afini model kretanja tekućeg bloka (S801). Najmanje jedan od 6-parametarskog afini modela kretanja ili 4-parametarskog afini modela kretanja može se odrediti kao afini model kretanja. 6-parametarski afini model kretanja izražava afini model korišćenjem šest parametara, a 4-parametarski afini model kretanja izražava afini model korišćenjem četiri parametra.
[0269] Jednačina 1 izražava afini kretanje korišćenjem šest parametara. Afini kretanje predstavlja translaciono kretanje za dati region određeno afini početnim vektorima.
[0271]
[0274] [0112] Kada se afini kretanje izrazi korišćenjem šest parametara, može se izraziti složeno kretanje, ali se broj bitova potrebnih za kodiranje parametara može povećati, čime se smanjuje efikasnost kodiranja. Shodno tome, afini kretanje se može izraziti korišćenjem četiri parametra. Jednačina 2 izražava afini kretanje korišćenjem četiri parametra.
[0276]
[0279] Informacije za određivanje afini modela kretanja tekućeg bloka mogu se kodirati i signalizirati u toku bitova. Kao primer, informacije mogu biti 1-bitna zastavica „affine_type_flag”. Vrednost zastavice koja je 0 može ukazivati na to da se primenjuje 4-parametarski afini model kretanja, a vrednost zastavice koja je 1 može ukazivati na to da se primenjuje 6-parametarski afini model kretanja. Zastavica se može kodirati u jedinicama isečaka, pločica ili blokova (npr. blokova kodiranja ili jedinica stabla kodiranja). Kada se zastavica signalizira na nivou isečka, afini model kretanja određen na nivou isečka može se primeniti na sve blokove koji pripadaju tom isečku.
[0281] Alternativno, afini model kretanja tekućeg bloka može se odrediti na osnovu afinog režima inter-predikcije tekućeg bloka. Kao primer, kada se primeni afini režim spajanja, može se odrediti da je afini model kretanja tekućeg bloka 4-parametarski model kretanja. Sa druge strane, kada se primeni afini režim predikcije vektora kretanja, informacije za određivanje afini modela kretanja tekućeg bloka mogu se kodirati i signalizirati u toku bitova. Kao primer, kada se afini režim predikcije vektora kretanja primeni na tekući blok, afini model kretanja tekućeg bloka može se odrediti na osnovu 1-bitne zastavice „affine_type_flag”.
[0283] Zatim se može izvesti afini početni vektor tekućeg bloka (S802). Kada se izabere 4-parametarski afini model kretanja, mogu se izvesti vektori kretanja u dve kontrolne tačke tekućeg bloka. Sa druge strane, kada se izabere 6-parametarski afini model kretanja, mogu se izvesti vektori kretanja u tri kontrolne tačke tekućeg bloka. Vektor kretanja u kontrolnoj tački može se nazvati afini početnim vektorom. Kontrolna tačka može uključivati najmanje jedno od gornjeg levog ugla, gornjeg desnog ugla ili donjeg levog ugla tekućeg bloka.
[0285] Slika 9 je dijagram koji ilustruje afini početni vektor za svaki afini model kretanja.
[0286] U 4-parametarskom afini modelu kretanja, afini početni vektori mogu se izvesti za dva od gornjeg levog ugla, gornjeg desnog ugla ili donjeg levog ugla. Na primer, kao u primeru prikazanom na slici 9A, kada se izabere 4-parametarski afini model kretanja, afini vektor se može izvesti korišćenjem afinog početnog vektora sv<0>za gornji levi ugao tekućeg bloka (npr. gornji levi uzorak (x<0>, y<0>)) i afinog početnog vektora sv<1>za gornji desni ugao tekućeg bloka (npr. gornji desni uzorak (x<1>, y<1>)). Afini početni vektor za donji levi ugao može se koristiti umesto afinog početnog vektora za gornji levi ugao, ili se afini početni vektor za donji levi ugao može koristiti umesto afinog početnog vektora za gornji desni ugao.
[0288] U 6-parametarskom afini modelu kretanja, afini početni vektori mogu se izvesti za gornji levi ugao, gornji desni ugao i donji levi ugao. Na primer, kao u primeru prikazanom na slici 9B, kada se izabere 6-parametarski afini model kretanja, afini vektor se može izvesti korišćenjem afinog početnog vektora sv<0>za gornji levi ugao tekućeg bloka (npr. gornji levi uzorak (x<0>, y<0>)), afinog početnog vektora sv<1>za gornji desni ugao tekućeg bloka (npr. gornji desni uzorak (x<1>, y<1>)) i afinog početnog vektora sv<2>za donji levi ugao tekućeg bloka (npr. donji levi uzorak (x<2>, y<2>)).
[0290] U sledećem otelotvorenju, pod 4-parametarskim afinim modelom kretanja, afini početni vektori za gornju levu kontrolnu tačku i gornju desnu kontrolnu tačku nazivaće se prvim afinim početnim vektorom i drugim afinim početnim vektorom, respektivno. U sledećim otelotvorenjima u kojima se koriste prvi afini početni vektor i drugi afini početni vektor, najmanje jedan od prvog afinog početnog vektora i drugog afinog početnog vektora može se zameniti afinim početnim vektorom (trećim afinim početnim vektorom) za donju levu kontrolnu tačku ili afinim početnim vektorom (četvrtim afinim početnim vektorom) za donju desnu kontrolnu tačku.
[0292] Takođe, pod 6-parametarskim afinim modelom kretanja, afini početni vektori gornje leve kontrolne tačke, gornje desne kontrolne tačke i donje leve kontrolne tačke nazivaće se prvim afinim početnim vektorom, drugim afinim početnim vektorom i trećim afinim početnim vektorom, respektivno. U sledećim otelotvorenjima u kojima se koriste prvi afini početni vektor, drugi afini početni vektor i treći afini početni vektor, najmanje jedan od prvog afinog početnog vektora, drugog afinog početnog vektora i trećeg afinog početnog vektora može se zameniti afinim početnim vektorom (četvrtim afinim početnim vektorom) za donju desnu kontrolnu tačku.
[0293] Afini vektor se može izvesti za svaki podblok korišćenjem afinih početnih vektora (S803). Ovde afini vektor ukazuje na translacioni vektor kretanja izveden na osnovu afinih početnih vektora. Afini vektor podbloka može se nazvati afinim vektorom kretanja podbloka ili vektorom kretanja podbloka.
[0295] Slika 10 je dijagram koji ilustruje afine vektore podblokova pod 4-parametarskim modelom kretanja.
[0297] Afini vektor podbloka može se izvesti na osnovu lokacije kontrolne tačke, lokacije podbloka i afinog početnog vektora. Kao primer, jednačina 3 prikazuje primer izvođenja afinog vektora podbloka.
[0299]
[0302] U jednačini 3, (x, y) predstavlja lokaciju podbloka. Ovde lokacija podbloka ukazuje na lokaciju referentnog uzorka uključenog u podblok. Referentni uzorak može biti uzorak koji se nalazi u gornjem levom uglu podbloka ili uzorak u kome se najmanje jedna od xkoordinate ili y-koordinate nalazi u centru. (x<0>, y<0>) predstavlja lokaciju prve kontrolne tačke, a (sv<0x>, sv<0y>) predstavlja prvi afini početni vektor. Takođe, (x<1>, y<1>) predstavlja lokaciju druge kontrolne tačke, a (sv<1x>, sv<1y>) predstavlja drugi afini početni vektor.
[0304] Kada prva kontrolna tačka i druga kontrolna tačka odgovaraju gornjem levom uglu i gornjem desnom uglu tekućeg bloka, respektivno, x<1>-x<0>se može postaviti na istu vrednost kao i širina tekućeg bloka.
[0306] Potom se predikcija sa kompenzacijom kretanja može sprovesti za svaki podblok korišćenjem afinog vektora odgovarajućeg podbloka (S804). Kao rezultat sprovođenja predikcije sa kompenzacijom kretanja, može se generisati blok predikcije za svaki podblok. Blokovi predikcije podblokova mogu se postaviti kao blok predikcije tekućeg bloka.
[0307] Afini početni vektor tekućeg bloka može se izvesti na osnovu afinog početnog vektora bloka koji je susedan tekućem bloku. Kada je režim inter-predikcije tekućeg bloka afini režim spajanja, afini početni vektor kandidata za spajanje uključenog u listu kandidata za spajanje može se odrediti kao afini početni vektor tekućeg bloka. Takođe, kada je režim interpredikcije tekućeg bloka afini režim spajanja, informacije o kretanju koje uključuju najmanje jedno od indeksa referentne slike, zastavice predikcije specifičnog smera ili dvosmerne težine tekućeg bloka takođe se mogu postaviti da budu iste kao i za kandidata za spajanje.
[0309] Kandidat za spajanje može se izvesti na osnovu susednog bloka tekućeg bloka.
[0310] Susedni blok može uključivati najmanje jedan od prostorno susednog bloka koji je prostorno susedan tekućem bloku i vremenski susednog bloka koji je uključen u sliku različitu od tekuće slike.
[0312] Slika 11 je dijagram koji prikazuje susedne blokove koji se mogu koristiti za izvođenje kandidata za spajanje.
[0314] Susedni blok tekućeg bloka može uključivati najmanje jedan od susednog bloka (A) koji je susedan levoj strani tekućeg bloka, susednog bloka (B) koji je susedan vrhu tekućeg bloka, susednog bloka (C) koji je susedan gornjem desnom uglu tekućeg bloka, susednog bloka (D) koji je susedan donjem levom uglu tekućeg bloka ili susednog bloka (E) koji je susedan gornjem levom uglu tekućeg bloka. Kada gornji levi uzorak tekućeg bloka ima koordinate (x<0>, y<0>), levi susedni blok A uključuje uzorak koji se nalazi na (x<0>-1, y<0>+H-1), a gornji susedni blok B uključuje uzorak koji se nalazi na (x<0>+W-1, y<0>-1). Ovde W i H predstavljaju širinu i visinu tekućeg bloka, respektivno. Gornji desni susedni blok C uključuje uzorak koji se nalazi na (x<0>+W, y<0>-1), a donji levi susedni blok D uključuje uzorak koji se nalazi na (x<0>-1, y<0>+H). Gornji levi susedni blok E uključuje uzorak koji se nalazi na (x<0>-1, y<0>-1).
[0316] Kada je susedni blok kodiran u afinom režimu inter-predikcije, afini početni vektor kandidata za spajanje može se izvesti na osnovu afinog početnog vektora odgovarajućeg susednog bloka. U nastavku teksta, susedni blok kodiran u afinom režimu inter-predikcije nazivaće se afinim susednim blokom, a kandidat za spajanje izveden iz afinog susednog bloka nazivaće se afinim kandidatom za spajanje.
[0317] Susedni blokovi se mogu otkrivati po unapred definisanom redosledu skeniranja radi generisanja afinog kandidata za spajanje za tekući blok. Redosled skeniranja može biti unapred definisan u koderu i dekoderu. Kao primer, susedni blokovi se mogu otkrivati po redosledu A, B, C, D i E. Takođe, afini kandidati za spajanje mogu se sekvencijalno izvoditi iz otkrivenih afinih susednih blokova. Alternativno, redosled skeniranja se može adaptivno odrediti na osnovu najmanje jednog od veličine, oblika ili afinog modela kretanja tekućeg bloka. To jest, redosledi skeniranja za blokove koji se razlikuju po najmanje jednom od veličine, oblika ili afinog modela kretanja mogu se međusobno razlikovati.
[0319] Alternativno, blokovi koji se nalaze na vrhu tekućeg bloka mogu se sekvencijalno otkrivati radi izvođenja jednog afinog kandidata za spajanje iz afinog susednog bloka koji je prvi otkriven, a blokovi koji se nalaze levo od tekućeg bloka mogu se sekvencijalno otkrivati radi izvođenja jednog afinog kandidata za spajanje iz afinog susednog bloka koji je prvi pronađen. Ovde susedni blokovi koji se nalaze na vrhu tekućeg bloka mogu uključivati najmanje jedan od susednog bloka E, susednog bloka B ili susednog bloka C, a blokovi koji se nalaze levo od tekućeg bloka mogu uključivati najmanje jedan od bloka A ili bloka D. U ovom slučaju, susedni blok E može se klasifikovati kao blok koji se nalazi levo od tekućeg bloka.
[0321] Iako nije prikazano, afini kandidat za spajanje može se izvesti iz vremenski susednog bloka tekućeg bloka. Ovde vremenski susedni blok može uključivati blok postavljen na istu lokaciju u kolociranoj slici kao i tekući blok ili blok koji je susedan tom bloku. Detaljnije, kada je vremenski susedni blok tekućeg bloka kodiran u afinom režimu inter-predikcije, afini kandidat za spajanje može se izvesti na osnovu afinog početnog vektora vremenskog afinog kandidata za spajanje.
[0323] Lista kandidata za spajanje koja uključuje afine kandidate za spajanje može se generisati, a afini početni vektor jednog od kandidata za spajanje uključenih u listu kandidata za spajanje može se odrediti kao afini početni vektor tekućeg bloka. U tu svrhu, informacije o indeksu radi identifikovanja jednog od kandidata za spajanje mogu se kodirati i preneti u toku bitova.
[0324] Kao drugi primer, dok se susedni blokovi otkrivaju po redosledu skeniranja, afini početni vektor tekućeg bloka može se izvesti iz afinog početnog vektora afinog susednog bloka koji je prvi pronađen.
[0326] Afini početni vektor tekućeg bloka može se izvesti korišćenjem afinog početnog vektora susednog bloka u afinom režimu spajanja.
[0328] Kada je režim inter-predikcije tekućeg bloka afini režim predikcije vektora kretanja, afini početni vektor kandidata za predikciju vektora kretanja uključenog u listu kandidata za predikciju vektora kretanja može se odrediti kao predviđena vrednost afinog početnog vektora tekućeg bloka. Dodavanjem vrednosti razlike afinog početnog vektora na predviđenu vrednost afinog početnog vektora, može se izvesti afini početni vektor tekućeg bloka.
[0330] Kandidat za predikciju afinog početnog vektora može se izvesti na osnovu susednog bloka tekućeg bloka. Detaljnije, susedni blokovi koji se nalaze iznad tekućeg bloka otkrivaju se po unapred određenom redosledu skeniranja, i prvi kandidat za predikciju afinog početnog vektora može se izvesti iz afinog susednog bloka koji je prvi pronađen. Takođe, susedni blokovi koji se nalaze levo od tekućeg bloka otkrivaju se po unapred određenom redosledu skeniranja, i drugi kandidat za predikciju afinog početnog vektora može se izvesti iz afinog susednog bloka koji je prvi pronađen.
[0332] Informacije za određivanje vrednosti razlike afinog početnog vektora mogu se kodirati i preneti u toku bitova. Te informacije mogu uključivati informacije o veličini koje ukazuju na veličinu vrednosti razlike afinog početnog vektora i informacije o znaku koje ukazuju na znak vrednosti razlike afinog početnog vektora. Vrednost razlike afinog početnog vektora za svaku kontrolnu tačku može se postaviti na istu vrednost. Alternativno, vrednost razlike afinog početnog vektora može se postaviti različito u zavisnosti od kontrolne tačke.
[0334] [0141] Kao što je gore opisano, afini početni vektor afinog kandidata za spajanje ili kandidata za predikciju afinog početnog vektora izvodi se iz afinog početnog vektora afinog susednog bloka, a afini početni vektor tekućeg bloka može se izvesti korišćenjem izvedenog afinog početnog vektora afinog kandidata za spajanje ili kandidata za predikciju afinog početnog vektora. Alternativno, nakon što se afini susedni blokovi otkriju po unapred određenom redosledu skeniranja, afini početni vektor tekućeg bloka može se izvesti iz afinog početnog vektora afinog susednog bloka koji je prvi pronađen.
[0336] Postupak izvođenja afinog početnog vektora tekućeg bloka, afinog kandidata za spajanje ili kandidata za predikciju afinog početnog vektora iz afinog početnog vektora afinog susednog bloka biće detaljno opisan u nastavku teksta. U sledećim otelotvorenjima, izvođenje afinog početnog vektora tekućeg bloka takođe se može razumeti kao izvođenje afinog početnog vektora afinog kandidata za spajanje ili izvođenje afinog početnog vektora kandidata za predikciju afinog početnog vektora.
[0338] Slika 12 je dijagram koji prikazuje primer izvođenja afinog početnog vektora tekućeg bloka na osnovu afinog početnog vektora afinog susednog bloka.
[0340] Kada su prvi afini početni vektor nv<0>za gornju levu kontrolnu tačku i drugi afini početni vektor nv<1>za gornju desnu kontrolnu tačku uskladišteni za afini susedni blok, treći afini početni vektor nv<2>za donju levu kontrolnu tačku afinog susednog bloka može se izvesti na osnovu prvog afinog početnog vektora i drugog afinog početnog vektora. Jednačina 4 prikazuje primer izvođenja trećeg afinog početnog vektora.
[0342]
[0345] U jednačini 4, (nv<0x>, nv<0y>) predstavlja prvi afini početni vektor nv<0>, (nv<1x>, nv<1y>) predstavlja drugi afini početni vektor nv<1>, a (nv<2x>, nv<2y>) predstavlja treći afini početni vektor nv<2>. Takođe, (x<n0>, x<n0>) predstavlja lokaciju prve kontrolne tačke, (x<n1>, x<n1>) predstavlja lokaciju druge kontrolne tačke, a (x<n2>, x<n2>) predstavlja lokaciju treće kontrolne tačke.
[0347] Potom se afini početni vektor tekućeg bloka može izvesti korišćenjem prvog afinog početnog vektora, drugog afinog početnog vektora i trećeg afinog početnog vektora.
[0348] Jednačina 5 prikazuje primer izvođenja prvog afinog početnog vektora v<0>tekućeg bloka, a jednačina 6 prikazuje primer izvođenja drugog afinog početnog vektora v<1>tekućeg bloka.
[0349]
[0352] U jednačini 5 i jednačini 6, (v<0x>, v<0y>) predstavlja prvi afini početni vektor sv<0>tekućeg bloka, a (v<1x>, v<1y>) predstavlja drugi afini početni vektor sv<1>tekućeg bloka. Takođe, (x<0>, y<0>) predstavlja lokaciju prve kontrolne tačke, a (x<1>, y<1>) predstavlja lokaciju druge kontrolne tačke. Kao primer, prva kontrolna tačka ukazuje na gornji levi ugao tekućeg bloka, a druga kontrolna tačka ukazuje na gornji desni ugao tekućeg bloka.
[0354] U goreopisanom primeru opisano je da se afini početni vektori tekućeg bloka izvode korišćenjem tri afina početna vektora za afini susedni blok. Kao drugi primer, afini početni vektori tekućeg bloka mogu se izvesti korišćenjem samo dva od afinih početnih vektora afinog susednog bloka.
[0356] Alternativno, afini početni vektori tekućeg bloka mogu se izvesti korišćenjem četvrtog afinog početnog vektora za donji desni ugao umesto prvog afinog početnog vektora za gornji levi ugao, drugog afinog početnog vektora za gornji desni ugao ili trećeg afinog početnog vektora za donji levi ugao u odnosu na afini susedni blok.
[0358] [0150] Posebno, kada je gornja ivica tekućeg bloka neprekidna sa gornjom ivicom jedinice stabla kodiranja, a namerava se korišćenje afinog početnog vektora za gornju kontrolnu tačku (npr. gornji levi ugao ili gornji desni ugao) afinog susednog bloka koji je susedan vrhu tekućeg bloka (u nastavku teksta nazvan gornji afini susedni blok), ovaj afini početni vektor mora biti unapred uskladišten u memoriji. Shodno tome, može se javiti problem u kome se povećava broj linijskih bafera. Prema tome, kada je gornja ivica tekućeg bloka neprekidna sa gornjom ivicom jedinice stabla kodiranja, može se izvršiti podešavanje tako da se za gornji afini susedni blok koristi afini početni vektor za donju kontrolnu tačku (npr. donji levi ugao ili donji desni ugao) umesto afinog početnog vektora za gornju kontrolnu tačku. Kao primer, afini početni vektori tekućeg bloka mogu se izvesti korišćenjem trećeg afinog početnog vektora za donji levi ugao i četvrtog afinog početnog vektora za donji desni ugao u odnosu na gornji afini susedni blok. U ovom slučaju, afini početni vektori za donje uglove mogu se izvesti kopiranjem afinih početnih vektora za gornje uglove ili iz afinih početnih vektora za gornje uglove. Kao primer, četvrti afini početni vektor za donji desni ugao može se koristiti putem konverzije ili zamene prvog afinog početnog vektora, drugog afinog početnog vektora ili trećeg afinog početnog vektora.
[0360] Jednačina 7 i jednačina 8 prikazuju primere izvođenja prvog afinog početnog vektora i drugog afinog početnog vektora tekućeg bloka korišćenjem trećeg afinog početnog vektora za donju levu kontrolnu tačku susednog afinog vektora i četvrtog afinog početnog vektora za donju desnu kontrolnu tačku susednog afinog vektora.
[0362]
[0365] U jednačini 7 i jednačini 8, (x<n2>, y<n2>) predstavlja koordinate donje leve kontrolne tačke afinog susednog bloka, a (x<n3>, y<n3>) predstavlja koordinate donje desne kontrolne tačke afinog susednog bloka. (x<0>, y<0>) predstavlja koordinate gornje leve kontrolne tačke tekućeg bloka, a (x<1>, y<1>) predstavlja koordinate gornje desne kontrolne tačke tekućeg bloka. (nv<2x>, nv<2y>) predstavlja afini početni vektor za donju levu kontrolnu tačku (to jest, treći afini početni vektor) afinog susednog bloka, a (nv<3x>, nv<3y>) predstavlja afini početni vektor za donju desnu kontrolnu tačku (to jest, četvrti afini početni vektor) afinog susednog bloka. (v<0x>, v<0y>) predstavlja afini početni vektor za gornju levu kontrolnu tačku (to jest, prvi afini početni vektor) tekućeg bloka, a (v<1x>, v<1y>) predstavlja afini početni vektor za gornju desnu kontrolnu tačku (to jest, drugi afini početni vektor) tekućeg bloka.
[0366] Operacija deljenja uključena u jednačinu 7 i jednačinu 8 može se promeniti u operaciju pomeranja bitova. Operacija pomeranja bitova može se sprovesti na osnovu vrednosti izvedene širinom (to jest, x<n3>-x<n2>) između donje leve kontrolne tačke i donje desne kontrolne tačke.
[0368] Kao u gornjem primeru, afini početni vektori tekućeg bloka mogu se izvesti iz afinih početnih vektora afinog susednog bloka gde je kodiranje ili dekodiranje završeno. U tu svrhu, afini početni vektori afinog susednog bloka gde je kodiranje ili dekodiranje završeno treba da budu uskladišteni u memoriji. Međutim, pošto se afini početni vektori afinog susednog bloka skladište u memoriji pored translacionih vektora kretanja (to jest, afinih vektora) podblokova uključenih u afini susedni blok, javlja se problem u kome se povećava iskorišćenost memorije. Da bi se rešio ovaj problem, afini početni vektor tekućeg bloka može se izvesti korišćenjem vektora kretanja podbloka koji je susedan kontrolnoj tački afinog susednog bloka umesto afinog početnog vektora afinog susednog bloka. To jest, vektor kretanja podbloka koji je susedan kontrolnoj tački afinog susednog bloka može se postaviti kao afini početni vektor afinog susednog bloka. Ovde podblok može biti blok sa unapred definisanom veličinom ili oblikom u koderu i dekoderu i može biti blok sa osnovnom veličinom ili oblikom u kome se skladišti vektor kretanja. Kao primer, podblok može biti kvadratni blok dimenzija 4×4. Alternativno, vektor kretanja za specifičnu lokaciju uzorka može se postaviti kao afini početni vektor afinog susednog bloka.
[0370] Slika 13 je dijagram koji prikazuje primer podešavanja vektora kretanja podbloka kao afinog početnog vektora afinog susednog bloka.
[0372] [0156] Vektor kretanja podbloka koji je susedan kontrolnoj tački može se postaviti kao afini početni vektor odgovarajuće kontrolne tačke. Kao primer, kao u primeru prikazanom na slici 13, vektor kretanja (nv<4×>, nv<4y>) podbloka koji je susedan donjem levom uglu (donji levi podblok) afinog susednog bloka može se postaviti kao afini početni vektor (nv<2x>, nv<2x>) za donju levu kontrolnu tačku, a vektor kretanja (nv<5x>, nv<5y>) podbloka koji je susedan donjem desnom uglu (donji desni podblok) može se postaviti kao afini početni vektor (nv<3x>, nv<3y>) za kontrolnu tačku u donjem desnom uglu. Ovde se donji levi podblok može odnositi na podblok koji uključuje uzorak susedan donjoj levoj kontrolnoj tački (x<n2>, y<n2>) u susednom afinom bloku (npr. uzorak koji se nalazi na (x<n2>, y<n2>-1)), a donji desni podblok se može odnositi na blok koji uključuje uzorak susedan donjoj desnoj kontrolnoj tački (x<n3>, y<n3>) u susednom afinom bloku (npr. uzorak koji se nalazi na (x<n3>-1, y<n3>-1)). Kada se afini početni vektori tekućeg bloka izvode na osnovu jednačine 7 i jednačine 8, treći afini početni vektor afinog susednog bloka može se zameniti vektorom kretanja donjeg levog podbloka, a četvrti afini početni vektor može se zameniti vektorom kretanja donjeg desnog podbloka.
[0374] U sledećem otelotvorenju, podblok koji se koristi kao afini početni vektor afinog susednog bloka nazivaće se afinim podblokom.
[0376] Prema jednom otelotvorenju predmetnog pronalaska, afini podblok se može odrediti na osnovu uzorka koji se nalazi na specifičnoj lokaciji. Kao primer, podblok koji uključuje uzorak lociran na specifičnoj lokaciji može se postaviti kao afini podblok. U nastavku teksta, uzorak koji se nalazi na specifičnoj lokaciji nazivaće se referentnim uzorkom. Pored toga, referentni uzorak koji se koristi za određivanje afinog podbloka za donju levu kontrolnu tačku nazivaće se donjim levim referentnim uzorkom, a referentni uzorak koji se koristi za određivanje afinog podbloka za donju desnu kontrolnu tačku nazivaće se donjim desnim referentnim uzorkom.
[0378] Donji levi referentni uzorak i donji desni referentni uzorak mogu se izabrati iz uzoraka uključenih u afini susedni blok. Kao primer, najmanje jedan od gornjeg levog uzorka, donjeg levog uzorka, gornjeg desnog uzorka ili donjeg levog uzorka donjeg levog podbloka postavlja se kao donji levi referentni uzorak, a najmanje jedan od gornjeg levog uzorka, donjeg levog uzorka, gornjeg desnog uzorka ili donjeg levog uzorka donjeg desnog podbloka postavlja se kao donji desni referentni uzorak. Shodno tome, vektori kretanja donjeg levog podbloka koji uključuje donji levi referentni uzorak i donjeg desnog podbloka koji uključuje donji desni referentni uzorak mogu se postaviti kao afini početni vektor za donju levu kontrolnu tačku i afini početni vektor za donju desnu tačku, respektivno.
[0380] Kao drugi primer, najmanje jedan od donjeg levog referentnog uzorka ili donjeg desnog referentnog uzoraka može se postaviti kao uzorak koji se nalazi izvan afinog susednog bloka. Ovo će biti detaljno opisano u nastavku teksta sa osvrtom na slike od 14 do 16.
[0382] Slike od 14 do 16 su dijagrami koji prikazuju lokaciju referentnog uzorka.
[0383] Kao u primeru prikazanom na slici 14A, za donju levu kontrolnu tačku, gornji levi uzorak donjeg levog podbloka može se postaviti kao referentni uzorak (x<n4>, y<n4>). Prema tome, donji levi podblok koji uključuje referentni uzorak (x<n4>, y<n4>) može se postaviti kao afini podblok za donju levu kontrolnu tačku.
[0385] Za donju desnu kontrolnu tačku, uzorak koji se nalazi desno od gornjeg desnog uzorka donjeg desnog podbloka može se postaviti kao referentni uzorak (x<n5>, y<n5>). Prema tome, podblok koji je susedan sa desne strane donjem desnom podbloku koji uključuje referentni uzorak (x<n5>, y<n5>) može se postaviti kao afini podblok za donju desnu kontrolnu tačku.
[0387] Alternativno, kao u primeru prikazanom na slici 14B, za donju levu kontrolnu tačku, uzorak koji se nalazi levo od gornjeg levog uzorka donjeg levog podbloka može se postaviti kao referentni uzorak (x<n4>, y<n4>). Prema tome, podblok koji je susedan sa leve strane donjem levom podbloku koji uključuje referentni uzorak (x<n4>, y<n4>) može se postaviti kao afini podblok za donju levu kontrolnu tačku.
[0389] Za donju desnu kontrolnu tačku, gornji desni uzorak donjeg desnog podbloka može se postaviti kao referentni uzorak (x<n5>, y<n5>). Prema tome, donji desni podblok koji uključuje referentni uzorak (x<n5>, y<n5>) može se postaviti kao afini podblok za donju desnu kontrolnu tačku.
[0391] Alternativno, kao u primeru prikazanom na slici 15A, za donju levu kontrolnu tačku, donji levi uzorak donjeg levog podbloka može se postaviti kao referentni uzorak (x<n4>, y<n4>). Prema tome, donji levi podblok koji uključuje referentni uzorak (x<n4>, y<n4>) može se postaviti kao afini podblok za donju levu kontrolnu tačku.
[0393] Za donju desnu kontrolnu tačku, uzorak koji se nalazi desno od donjeg desnog uzorka donjeg desnog podbloka može se postaviti kao referentni uzorak (x<n5>, y<n5>). Prema tome, podblok koji je susedan sa desne strane donjem desnom podbloku koji uključuje referentni uzorak (x<n5>, y<n5>) može se postaviti kao afini podblok za donju desnu kontrolnu tačku.
[0395] [0168] Alternativno, kao u primeru prikazanom na slici 15B, za donju levu kontrolnu tačku, uzorak koji se nalazi levo od donjeg levog uzorka donjeg levog podbloka može se postaviti kao referentni uzorak (x<n4>, y<n4>). Prema tome, podblok koji je susedan sa leve strane donjem levom podbloku koji uključuje referentni uzorak (x<n4>, y<n4>) može se postaviti kao afini podblok za donju levu kontrolnu tačku.
[0397] Za donju desnu kontrolnu tačku, donji desni uzorak donjeg desnog podbloka može se postaviti kao referentni uzorak (x<n5>, y<n5>). Prema tome, donji desni podblok koji uključuje referentni uzorak (x<n5>, y<n5>) može se postaviti kao afini podblok za donju desnu kontrolnu tačku.
[0399] Alternativno, kao u primeru prikazanom na slici 16A, za donju levu kontrolnu tačku, uzorak koji se nalazi između gornjeg levog uzorka i donjeg levog uzorka donjeg levog podbloka (npr. srednji levi uzorak) može se postaviti kao referentni uzorak (x<n4>, y<n4>). Prema tome, donji levi podblok koji uključuje referentni uzorak (x<n4>, y<n4>) može se postaviti kao afini podblok za donju levu kontrolnu tačku.
[0401] Za donju desnu kontrolnu tačku, uzorak koji se nalazi desno od uzorka lociranog između gornjeg desnog uzorka i donjeg desnog uzorka donjeg desnog podbloka (npr. srednji desni uzorak) može se postaviti kao referentni uzorak (x<n5>, y<n5>). Prema tome, podblok koji je susedan sa desne strane donjem desnom podbloku koji uključuje referentni uzorak (x<n5>, y<n5>) može se postaviti kao afini podblok za donju desnu kontrolnu tačku.
[0403] Alternativno, kao u primeru prikazanom na slici 16B, za donju levu kontrolnu tačku, uzorak koji se nalazi levo od uzorka lociranog između gornjeg levog uzorka i donjeg levog uzorka donjeg levog podbloka može se postaviti kao referentni uzorak (x<n4>, y<n4>). Prema tome, podblok koji je susedan sa leve strane donjem levom podbloku koji uključuje referentni uzorak (x<n4>, y<n4>) može se postaviti kao afini podblok za donju levu kontrolnu tačku.
[0405] Za donju desnu kontrolnu tačku, uzorak koji se nalazi između gornjeg desnog uzorka i donjeg desnog uzorka donjeg desnog podbloka može se postaviti kao referentni uzorak (x<n5>, y<n5>). Prema tome, donji desni podblok koji uključuje referentni uzorak (x<n5>, y<n5>) može se postaviti kao afini podblok za donju desnu kontrolnu tačku.
[0407] [0174] Kada se afini početni vektori tekućeg bloka izvode na osnovu jednačine 7 i jednačine 8, treći afini početni vektor afinog susednog bloka može se zameniti vektorom kretanja afinog podbloka za donju levu kontrolnu tačku, a četvrti afini početni vektor može se zameniti vektorom kretanja afinog podbloka za donju desnu kontrolnu tačku. Takođe, lokacija donje leve kontrolne tačke može se zameniti lokacijom donjeg levog referentnog uzorka, a lokacija donje desne kontrolne tačke može se zameniti lokacijom donjeg desnog referentnog uzorka.
[0409] Za razliku od onoga što je gore opisano sa osvrtom na slike od 14 do 16, podblok koji uključuje uzorak susedan referentnom uzorku može se postaviti kao afini podblok. Detaljnije, uzorak koji se nalazi izvan afinog susednog podbloka može se postaviti kao referentni uzorak, a podblok uključen u afini susedni blok može se postaviti kao afini podblok. Na primer, u primeru prikazanom na slici 14A, uzorak koji se nalazi desno od gornjeg desnog uzorka donjeg desnog podbloka može se postaviti kao referentni uzorak (x<n5>, y<n5>), a donji desni podblok može se postaviti kao afini podblok za donji desni ugao. Alternativno, u primeru prikazanom na slici 14B, uzorak koji se nalazi levo od gornjeg levog uzorka donjeg levog podbloka može se postaviti kao referentni uzorak (x<n4>, y<n4>), a donji levi podblok može se postaviti kao afini podblok za donji levi ugao.
[0411] Goreopisana otelotvorenja mogu se takođe primeniti na slike 15 i 16. To jest, u primeru prikazanom na slici 15A ili 16A, uzorak koji se nalazi desno od donjeg desnog uzorka ili srednjeg desnog uzorka donjeg desnog podbloka može se postaviti kao referentni uzorak (x<n5>, y<n5>), a donji desni podblok može se postaviti kao afini podblok za donji desni ugao. Alternativno, u primeru prikazanom na slici 15B ili 16B, uzorak koji se nalazi levo od donjeg levog uzorka ili srednjeg levog uzorka donjeg levog podbloka može se postaviti kao referentni uzorak (x<n4>, y<n4>), a donji levi podblok može se postaviti kao afini podblok za donji levi ugao.
[0413] Kao u gornjem primeru, afini početni vektor afinog susednog bloka može se izvesti korišćenjem vektora kretanja afinog podbloka. U tu svrhu, u slučaju bloka gde je kodiranje ili dekodiranje završeno, vektor kretanja se može skladištiti u jedinicama podblokova.
[0415] Kao drugi primer, nakon što se minimalni broj afinih početnih vektora uskladišti za afini susedni blok, vektor kretanja afinog podbloka može se izvesti korišćenjem uskladištenih afinih početnih vektora.
[0416] Jednačina 9 i jednačina 10 prikazuju primer izvođenja vektora kretanja afinog podbloka korišćenjem afinih početnih vektora afinog susednog bloka.
[0418]
[0421] U jednačini 9 i jednačini 10, (nv<4×>, nv<4y>) predstavlja vektor kretanja afinog podbloka za donju levu kontrolnu tačku, a (nv<5x>, nv<5y>) predstavlja vektor kretanja afinog podbloka za donju desnu kontrolnu tačku. Pošto se vektor kretanja afinog podbloka i afini početni vektor kontrolne tačke postavljaju da budu međusobno isti, (nv<4×>, nv<4y>) se može zameniti afinim početnim vektorom (nv<2x>, nv<2y>) za donju levu kontrolnu tačku, a (nv<3x>, nv<5y>) se može zameniti afinim početnim vektorom (nv<3x>, nv<3y>) za donju desnu kontrolnu tačku.
[0423] (x<n4>, y<n4>) predstavlja lokaciju referentnog uzorka u odnosu na donji levi podblok. Alternativno, umesto toga se može koristiti centralna lokacija donjeg levog podbloka ili lokacija donje leve kontrolne tačke. (x<n5>, y<n5>) predstavlja lokaciju referentnog uzorka u odnosu na donji desni podblok. Alternativno, umesto toga se može koristiti centralna lokacija donjeg desnog podbloka ili lokacija donje desne kontrolne tačke.
[0425] Jednačina 9 i jednačina 10 mogu se primeniti na slučaj u kome tekući blok nije neprekidan sa ivicom jedinice stabla kodiranja. Kada je tekući blok neprekidan sa gornjom ivicom jedinice stabla kodiranja, translacioni vektor kretanja afinog podbloka određen na osnovu donjeg levog referentnog uzorka može se postaviti kao treći afini početni vektor, a translacioni vektor kretanja afinog podbloka određen na osnovu donjeg desnog referentnog uzorka može se postaviti kao četvrti afini početni vektor umesto korišćenja jednačine 9 i jednačine 10.
[0426] U jednačini 7 i jednačini 8, (x<n3>-x<n2>) predstavlja širinu između donje leve kontrolne tačke i donje desne kontrolne tačke. Kao što je gore opisano, x<n3>se može zameniti lokacijom x<n5>donjeg desnog referentnog uzorka, a x<n2>se može zameniti lokacijom x<n4>donjeg levog referentnog uzorka. U nastavku teksta, (x<n3>-x<n2>) ili vrednost (npr. (x<n5>-x<n4>)) dobijena zamenom lokacije iz gorenavedene jednačine lokacijom referentnih uzoraka definisaće se kao promenljiva W<seed>, i ta promenljiva će se nazvati širinom podpočetnog vektora.
[0428] U zavisnosti od lokacije referentnih uzoraka, širina podpočetnog vektora ne mora biti stepen broja 2 (npr.2<n>). Kao primer, kada se donji levi uzorak donjeg levog podbloka postavi kao donji levi referentni uzorak, a donji desni uzorak donjeg desnog podbloka postavi kao donji desni referentni uzorak, širina podpočetnog vektora nije umnožak broja 2. Kada širina podpočetnog vektora nije stepen broja 2, širina podpočetnog vektora se može transformisati u stepen broja 2. Ta transformacija može uključivati dodavanje pomeraja na širinu podpočetnog vektora ili njegovo oduzimanje od nje, ili korišćenje lokacije uzorka koji je susedan referentnom uzorku umesto lokacije samog referentnog uzorka. Kao primer, transformisana širina podpočetnog vektora može se izvesti dodavanjem broja jedan na širinu između donjeg levog referentnog uzorka i donjeg desnog referentnog uzorka. Alternativno, širina između donjeg levog referentnog uzorka i susednog referentnog uzorka koji je susedan sa desne strane donjem desnom referentnom uzorku može se postaviti kao transformisana širina podpočetnog vektora. Potom se afini početni vektor tekućeg bloka može izvesti primenom transformisane širine podpočetnog vektora na jednačinu 7 i jednačinu 8.
[0430] Operacija deljenja uključena u jednačinu 7 i jednačinu 8 može se promeniti u operaciju pomeranja bitova. Operacija pomeranja bitova može se sprovesti na osnovu vrednosti izvedene pomoću transformisane širine podpočetnog vektora (to jest, vrednosti izražene kao stepen broja 2).
[0432] [0186] Kada referentni uzorak koji se koristi za određivanje afinog podbloka ne pripada afinom susednom bloku, afini početni vektor afinog susednog bloka može se izvesti na osnovu uzorka koji je susedan referentnom uzorku među uzorcima uključenim u afini susedni blok. Specifično, translacioni vektor kretanja podbloka koji uključuje uzorak susedan referentnom uzorku (u nastavku teksta nazvan susedni referentni uzorak) u afinom susednom bloku može se postaviti kao afini početni vektor afinog susednog bloka. Kao što je gore opisano, postupak izvođenja afinog početnog vektora korišćenjem susednog referentnog uzorka može se definisati kao modifikovani postupak izvođenja afinog vektora spajanja.
[0434] Slika 17 je dijagram koji prikazuje primer u kome je primenjen modifikovani postupak izvođenja afinog vektora spajanja.
[0436] Kada donji desni referentni uzorak (x<n5>, y<n5>) afinog susednog bloka E ne pripada afinom obližnjem bloku, afini početni vektor se može izvesti na osnovu uzorka (x<n5>-1, y<n5>) koji je susedan sa leve strane donjem desnom referentnom uzorku među uzorcima uključenim u afini susedni blok. Specifično, translacioni vektor kretanja podbloka koji uključuje susedni referentni uzorak (x<n5>-1, y<n5>) može se postaviti kao afini početni vektor donje desne kontrolne tačke.
[0438] Unutar primera prikazanog na slici 17, prikazano je da je uzorak susedan sa desne strane gornjem desnom uzorku donjeg desnog podbloka zapravo donji desni referentni uzorak. Afini početni vektor se može izvesti na osnovu uzorka koji je susedan sa leve strane susednom referentnom uzorku čak i kada se uzorak susedan sa desne strane donjem desnom uzorku donjeg desnog podbloka ili uzorak susedan sa desne strane srednjem desnom uzorku donjeg desnog podbloka postavi kao donji desni referentni uzorak.
[0440] Takođe, afini početni vektor se može izvesti na osnovu uzorka koji je susedan sa desne strane donjem levom referentnom uzorku u skladu sa gorenavedenim otelotvorenjem čak i kada donji levi referentni uzorak ne pripada afinom susednom bloku.
[0442] Drugačijim podešavanjem lokacije referentnog uzorka i podbloka za izvođenje afinog početnog vektora, širina podpočetnog vektora može se podesiti tako da bude stepen broja 2.
[0444] Alternativno, afini početni vektori mogu se izvesti na osnovu širine susednog bloka dok se koriste vektori kretanja donjeg levog podbloka i donjeg desnog podbloka.
[0446] Slika 18 je dijagram koji prikazuje primer izvođenja afinog početnog vektora afinog kandidata za spajanje na osnovu vektora kretanja podblokova koji pripadaju susednom bloku.
[0447] Kada je gornja ivica tekućeg bloka neprekidna sa ivicom jedinice stabla kodiranja, afini početni vektor afinog kandidata za spajanje može se izvesti na osnovu vektora kretanja donjeg levog podbloka i donjeg desnog podbloka gornjeg susednog bloka koji se nalazi iznad tekućeg bloka. Kada se pretpostavi da je lokacija gornjeg levog uzorka gornjeg susednog bloka (xNb, yNb) i da su širina i visina gornjeg susednog bloka NbW i NbH, respektivno, donji levi podblok može uključivati uzorak koji se nalazi na (xNb, yNb+yNbH-1), a donji desni podblok može uključivati uzorak koji se nalazi na (xNb+NbW-1, yNb+NbH-1).
[0449] Afini početni blokovi afinog kandidata za spajanje mogu se izvesti na osnovu širine susednog bloka i razlike u koordinatama između tekućeg bloka i susednog bloka. Kao primer, afini početni vektori afinog kandidata za spajanje mogu se izvesti na osnovu sledećih jednačina od 11 do 13.
[0451]
[0454] U jednačinama od 11 do 13, (v<0x>, v<0y>) predstavlja prvi afini početni vektor, (v<1x>, v<1y>) predstavlja drugi afini početni vektor, a (v<2x>, v<2y>) predstavlja treći afini početni vektor.
[0455] V<LBx>predstavlja horizontalnu komponentu vektora kretanja donjeg levog podbloka, a V<LBy>predstavlja vertikalnu komponentu vektora kretanja donjeg levog podbloka.
[0456] V<RBx>predstavlja horizontalnu komponentu vektora kretanja donjeg desnog podbloka, a V<RBy>predstavlja vertikalnu komponentu vektora kretanja donjeg desnog podbloka. NbW predstavlja širinu susednog bloka, dok xCbW i xCbH predstavljaju širinu i visinu tekućeg bloka, respektivno. xCb predstavlja x-koordinatu gornjeg levog uzorka tekućeg bloka, a xNb predstavlja x-koordinatu gornjeg levog uzorka susednog bloka.
[0457] Afini kandidat za spajanje može se generisati radi kombinovanja vektora kretanja drugog susednog bloka sa afinim početnim vektorima izvedenim iz prvog susednog bloka. Na primer, u primeru prikazanom na slici 18, treći afini početni vektor afinog kandidata za spajanje može se izvesti na osnovu vektora kretanja podbloka koji se nalazi levo od tekućeg bloka, umesto na osnovu vektora kretanja donjeg levog podbloka i donjeg desnog podbloka.
[0459] Slika 19 je dijagram koji prikazuje primer izvođenja afinih početnih vektora afinog kandidata za spajanje na osnovu vektora kretanja podblokova koji se nalaze levo od tekućeg bloka.
[0461] Afini početni vektori afinog kandidata za spajanje mogu se izvesti na osnovu vektora kretanja donjeg levog podbloka i donjeg desnog podbloka gornjeg susednog bloka koji se nalazi iznad tekućeg bloka. Detaljnije, prvi afini početni vektor i drugi afini početni vektor afinog kandidata za spajanje mogu se izvesti na osnovu vektora kretanja donjeg levog podbloka i donjeg desnog podbloka. Kao primer, prvi afini početni vektor i drugi afini početni vektor afinog kandidata za spajanje mogu se izvesti na osnovu jednačine 11 i jednačine 12.
[0463] Treći afini početni vektor afinog kandidata za spajanje može se izvesti na osnovu vektora kretanja susednog bloka koji je susedan levoj strani tekućeg bloka. Kao primer, vektor kretanja susednog bloka koji je susedan levoj strani tekućeg bloka ili susednog bloka koji je susedan donjem levom uglu tekućeg bloka može se postaviti kao treći afini početni vektor. Susedni blok susedan levoj strani tekućeg bloka može uključivati uzorak koji se nalazi na (xCb-1, yCb+CbH-1), a susedni blok susedan donjem levom uglu tekućeg bloka može uključivati uzorak koji se nalazi na (xCb-1, yCb+CbH). Jednačina 14 i jednačina 15 prikazuju primer podešavanja vektora kretanja susednog bloka koji se nalazi levo od tekućeg bloka kao trećeg afinog početnog vektora.
[0464] U jednačini 14, V<Leftx>predstavlja horizontalni vektor kretanja susednog bloka koji je susedan levoj strani tekućeg bloka, a V<Lefty>predstavlja vertikalni vektor kretanja susednog bloka koji je susedan levoj strani tekućeg bloka. U jednačini 15, V<LBx>predstavlja horizontalni vektor kretanja susednog bloka koji je susedan donjem levom uglu tekućeg bloka, a V<LBy>predstavlja vertikalni vektor kretanja susednog bloka koji je susedan donjem levom uglu tekućeg bloka.
[0466] Treći afini početni vektor može se izvesti korišćenjem vektora kretanja susednog bloka koji je susedan donjem levom uglu tekućeg bloka samo kada vektor kretanja susednog bloka koji je susedan levoj strani tekućeg bloka nije dostupan.
[0468] Postupak izvođenja trećeg afinog početnog vektora afinog kandidata za spajanje može se podesiti različito u zavisnosti od toga da li je vektor kretanja susednog bloka koji se nalazi levo od tekućeg bloka dostupan. Kao primer, kada je vektor kretanja susednog bloka koji se nalazi levo od tekućeg bloka (npr. podbloka koji je susedan levoj strani tekućeg bloka ili podbloka koji je susedan donjem levom uglu tekućeg bloka) dostupan, treći afini početni vektor može se izvesti korišćenjem jednačine 14 ili jednačine 15. Sa druge strane, kada vektor kretanja susednog bloka koji se nalazi levo od tekućeg bloka nije dostupan, treći afini početni vektor može se izvesti korišćenjem jednačine 13.
[0470] Treći afini početni vektor može se izvesti na osnovu vektora kretanja nesusednog bloka koji ima referentni uzorak koji nije susedan tekućem bloku. Radi izvođenja trećeg afinog početnog vektora, to da li će se koristiti vektor kretanja susednog bloka koji ima referentni uzorak susedan tekućem bloku ili će se koristiti vektor kretanja nesusednog bloka koji ima referentni uzorak koji nije susedan tekućem bloku može se odrediti na osnovu lokacije gornjeg susednog bloka koji je korišćen za izvođenje afinog kandidata za spajanje.
[0472] Slika 20 je dijagram koji prikazuje primer izvođenja afinih početnih vektora afinog kandidata za spajanje na osnovu informacija o kretanju susednog bloka ili nesusednog bloka koji se nalazi levo od tekućeg bloka.
[0474] [0206] Upoređivanjem lokacije gornjeg levog uzorka tekućeg bloka sa lokacijom gornjeg levog uzorka gornjeg susednog bloka koji je korišćen za izvođenje afinog kandidata za spajanje, može se odrediti lokacija bloka za izvođenje trećeg afinog početnog vektora. Na primer, kao u primeru prikazanom na slici 20A, kada je x-koordinata (xNb) gornjeg levog uzorka gornjeg susednog bloka manja od x-koordinate (xCb) gornjeg levog uzorka tekućeg bloka, treći afini početni vektor može se izvesti na osnovu vektora kretanja nesusednog bloka koji nije susedan levoj strani tekućeg bloka. Detaljnije, treći afini početni vektor može se izvesti na osnovu vektora kretanja donjeg levog nesusednog bloka koji uključuje uzorak lociran na (xNb, yCb+CbH) ili levog nesusednog bloka koji uključuje uzorak lociran na (xNb, yCb+CbH-1), pri čemu ti uzorci imaju istu x-koordinatu kao i gornji levi uzorak gornjeg susednog bloka. Jednačina 16 i jednačina 17 prikazuju primer izvođenja trećeg afinog početnog vektora na osnovu vektora kretanja nesusednog bloka.
[0476]
[0479] U jednačini 16, V<Left2x>predstavlja horizontalni vektor kretanja levog nesusednog bloka, a V<Left2y>predstavlja vertikalni vektor kretanja levog nesusednog bloka. U jednačini 17, V<LB2x>predstavlja horizontalni vektor kretanja donjeg levog nesusednog bloka, a
[0480] V<LB2y>predstavlja vertikalni vektor kretanja donjeg levog nesusednog bloka.
[0482] Treći afini početni vektor može se izvesti korišćenjem vektora kretanja donjeg levog nesusednog bloka samo kada vektor kretanja levog nesusednog bloka nije dostupan.
[0484] Kao u primeru prikazanom na slici 20B, kada je x-koordinata (xNb) gornjeg levog uzorka gornjeg susednog bloka veća od x-koordinate (xCb) gornjeg levog uzorka tekućeg bloka ili jednaka njoj, treći afini početni vektor može se izvesti na osnovu vektora kretanja susednog bloka koji je susedan donjem levom uglu tekućeg bloka ili levoj strani tekućeg bloka. Detaljnije, treći afini početni vektor može se izvesti na osnovu vektora kretanja levog susednog bloka koji uključuje uzorak (xCb, yCb+CbH-1) susedan levoj strani tekućeg bloka ili donjeg levog susednog bloka koji uključuje uzorak lociran na (xCb, yCb+CbH) susedan donjem levom uglu tekućeg bloka.
[0485] Lokacija referentnog uzorka levog susednog bloka ili levog nesusednog bloka može se podesiti drugačije od onih prikazanih na slikama od 18 do 20. Kao primer, blok koji uključuje uzorak (xCb-1, yCb+subH-1) susedan tekućem bloku može se postaviti kao levi susedni blok, a blok koji uključuje uzorak (xNb, yCb+subH-1) koji nije susedan tekućem bloku može se postaviti kao levi nesusedni blok. Ovde subH predstavlja minimalnu visinu bloka u kome se skladište informacije o kretanju i može biti prirodan broj kao što je 2, 4 ili 8.
[0487] Slika 21 je dijagram koji prikazuje lokaciju bloka za izvođenje afinog početnog vektora afinog kandidata za spajanje.
[0489] Na primer, kao u primeru prikazanom na slici 21A, kada je x-koordinata (xNb) gornjeg levog uzorka gornjeg susednog bloka manja od x-koordinate (xCb) gornjeg levog uzorka tekućeg bloka, treći afini početni vektor može se izvesti na osnovu vektora kretanja nesusednog bloka koji nije susedan levoj strani tekućeg bloka. Detaljnije, treći afini početni vektor može se izvesti na osnovu vektora kretanja levog nesusednog bloka koji uključuje uzorak (xNb, yCb+subH-1) koji ima istu x-koordinatu ako i gornji levi uzorak gornjeg susednog bloka i koji je razmaknut na unapred određeno rastojanje (npr. subH) od donjeg levog uzorka gornjeg susednog bloka. Jednačina 18 prikazuje primer izvođenja trećeg afinog početnog vektora na osnovu vektora kretanja nesusednog bloka.
[0491]
[0494] U jednačini 18, V<LeftT2x>predstavlja horizontalni vektor kretanja levog nesusednog bloka koji uključuje uzorak razmaknut na unapred određeno rastojanje od donjeg levog uzorka gornjeg susednog bloka. V<LeftT2y>predstavlja vertikalni vektor kretanja levog nesusednog bloka koji uključuje uzorak razmaknut na unapred određeno rastojanje od donjeg levog uzorka gornjeg susednog bloka.
[0496] [0214] Alternativno, kao u primeru prikazanom na slici 21B, kada je x-koordinata (xNb) gornjeg levog uzorka gornjeg susednog bloka veća od x-koordinate (xCb) gornjeg levog uzorka tekućeg bloka ili jednaka njoj, treći afini početni vektor može se izvesti na osnovu vektora kretanja levog susednog bloka koji je susedan levoj strani tekućeg bloka i koji uključuje uzorak (xCb-1, yCb+subH-1) horizontalno razmaknut na unapred određeno rastojanje (npr. subH-1) od gornjeg levog uzorka tekućeg bloka. Jednačina 19 prikazuje primer izvođenja trećeg afinog početnog vektora na osnovu vektora kretanja susednog bloka.
[0498]
[0501] U jednačini 19, V<LeftTx>predstavlja horizontalni vektor kretanja levog susednog bloka koji je susedan levoj strani tekućeg bloka i koji uključuje uzorak vertikalno razmaknut na unapred određeno rastojanje od gornjeg levog uzorka tekućeg bloka. V<LeftTy>predstavlja vertikalni vektor kretanja levog susednog bloka koji je susedan levoj strani tekućeg bloka i koji uključuje uzorak vertikalno razmaknut na unapred određeno rastojanje od gornjeg levog uzorka tekućeg bloka.
[0503] Alternativno, referentni uzorak se može postaviti na drugačiju lokaciju od onih prikazanih na slikama od 18 do 21. Kao primer, uzorak (xCb-1, yCb) koji je susedan levoj strani tekućeg bloka i koji ima istu y-koordinatu kao i gornji levi uzorak tekućeg bloka, ili uzorak (xNb, yCb) koji nije susedan levoj strani tekućeg bloka i koji ima istu y-koordinatu kao i gornji levi uzorak tekućeg bloka može se postaviti kao referentni uzorak.
[0505] Kao u opisanom primeru, prvi afini početni vektor i drugi afini početni vektor afinog kandidata za spajanje mogu se izvesti iz susednog bloka koji se nalazi iznad tekućeg bloka, a treći afini početni vektor afinog kandidata za spajanje može se izvesti iz susednog bloka koji se nalazi levo od tekućeg bloka. Prvi afini početni vektor i treći afini početni vektor afinog kandidata za spajanje mogu se izvesti iz susednog bloka koji se nalazi levo od tekućeg bloka, a drugi afini početni vektor afinog kandidata za spajanje može se izvesti iz susednog bloka koji se nalazi iznad tekućeg bloka.
[0507] [0218] U primerima prikazanim u jednačinama od 11 do 13, afini početni vektor afinog kandidata za spajanje može se izvesti na osnovu vrednosti razlike između vektora kretanja V<LB>donjeg levog podbloka gornjeg susednog bloka i vektora kretanja V<RB>donjeg desnog podbloka gornjeg susednog bloka. U ovom slučaju, afini početni vektor afinog kandidata za spajanje može se izvesti korišćenjem vektora kretanja drugog bloka umesto vektora kretanja donjeg levog podbloka ili donjeg desnog podbloka. Kao primer, kada vektor kretanja V<LB>donjeg levog podbloka gornjeg susednog bloka ima istu vrednost kao i vektor kretanja V<RB>donjeg desnog podbloka gornjeg susednog bloka, V<RB>se može zameniti vektorom kretanja bloka koji uključuje uzorak lociran desno od donjeg desnog podbloka ili ispod njega. Kao primer, vektor kretanja afinog kandidata za spajanje može se izvesti korišćenjem vektora kretanja bloka koji uključuje uzorak lociran na (xNb+NbW, yNb+NbH-1) umesto korišćenja vektora kretanja V<RB>donjeg desnog podbloka.
[0509] Alternativno, kada vektor kretanja V<LB>donjeg levog podbloka gornjeg susednog bloka ima istu vrednost kao i vektor kretanja V<RB>donjeg desnog podbloka gornjeg susednog bloka, V<LB>se može zameniti vektorom kretanja bloka koji uključuje uzorak lociran levo od donjeg levog podbloka ili ispod njega. Kao primer, vektor kretanja afinog kandidata za spajanje može se izvesti korišćenjem vektora kretanja bloka koji uključuje uzorak lociran na (xNb, yNb+NbH-1+offset) umesto korišćenja vektora kretanja V<LB>donjeg levog podbloka. Ovde pomeraj može biti ceo broj veći od 1 ili jednak njemu.
[0511] Alternativno, V<RB>se može zameniti vektorom kretanja bloka koji uključuje uzorak lociran levo od donjeg levog podbloka ili ispod njega, ili se V<LB>može zameniti vektorom kretanja bloka koji uključuje uzorak lociran desno od donjeg desnog podbloka ili ispod njega.
[0513] Kandidat za spajanje može se izvesti kombinovanjem vektora kretanja mnoštva susednih vektora koji su susedni tekućem bloku. Kandidat za spajanje generisan kombinovanjem vektora kretanja mnoštva susednih vektora može se nazvati kombinovanim kandidatom za spajanje. Kada se izvede kombinovani kandidat za spajanje, afini početni vektor za kontrolnu tačku može se izvesti iz jednog susednog bloka koji je susedan okolini kontrolne tačke.
[0515] Slika 22 je dijagram za opisivanje primera kombinovanja vektora kretanja mnoštva susednih blokova radi izvođenja kombinovanog kandidata za spajanje.
[0517] [0223]Mnoštvo susednih blokova može uključivati gornje susedne blokove koji se nalaze iznad tekućeg bloka i leve susedne blokove koji se nalaze levo od tekućeg bloka. Gornji susedni blokovi mogu uključivati najmanje jedan od bloka B0 koji uključuje uzorak lociran na (xCb+CbW, yCb-1), bloka B1 koji uključuje uzorak lociran na (xCb+CbW-1, yCb-1) ili bloka B3 koji uključuje uzorak lociran na (xCb, yCb-1). Ovde (xCb, yCb) predstavlja lokaciju gornjeg levog uzorka tekućeg bloka, a CbW predstavlja širinu tekućeg bloka. Levi susedni blokovi mogu uključivati najmanje jedan od bloka A0 koji uključuje uzorak lociran na (xCb-1, yCb+CbH), bloka A1 koji uključuje uzorak lociran na (xCb-1, yCb+CbH-1) ili bloka A2 koji uključuje uzorak lociran na (xCb-1, yCb). Ovde CbH predstavlja visinu tekućeg bloka.
[0519] Takođe, mnoštvo susednih blokova može dalje uključivati vremenski susedne blokove tekućeg bloka.
[0521] Kombinovani kandidat za spajanje može se izvesti kombinovanjem elemenata informacija o kretanju dva ili više od mnoštva susednih blokova. Kombinovani kandidat za spajanje može se izvesti kombinovanjem elemenata informacija o kretanju dva ili tri susedna bloka. Detaljnije, kombinovani kandidat za spajanje može se izvesti kombinovanjem najmanje dva ili više od informacija o kretanju susednog bloka koji je susedan prvoj kontrolnoj tački, informacija o kretanju susednog bloka koji je susedan drugoj kontrolnoj tački ili informacija o kretanju susednog bloka koji je susedan trećoj kontrolnoj tački.
[0523] Kao primer, kombinovani kandidat za spajanje može se izvesti kombinovanjem vektora kretanja najmanje dva ili više od susednog bloka A2, B2 ili B3 susednog gornjoj levoj kontrolnoj tački CP0, susednog bloka B1 ili B0 susednog gornjoj desnoj kontrolnoj tački CP1 ili vremenski susednog bloka T za donju levu kontrolnu tačku CP2.
[0525] U ovom slučaju, vektor kretanja dostupnog susednog bloka koji se prvi pronađe kada se susedni blokovi uz kontrolnu tačku skeniraju po unapred definisanom redosledu skeniranja može se postaviti kao afini početni vektor za tu kontrolnu tačku. Kao primer, prvi afini početni vektor kombinovanog kandidata za spajanje za CP0 može se postaviti da bude vektor kretanja dostupnog susednog bloka koji se prvi pronađe kada se susedni blokovi otkrivaju po redosledu B2, B3 i A2. Drugi afini početni vektor kombinovanog kandidata za spajanje za CP1 može se postaviti da bude vektor kretanja dostupnog susednog bloka koji se prvi pronađe kada se susedni blokovi otkrivaju po redosledu B1 i B0. Treći afini početni vektor kombinovanog kandidata za spajanje za CP2 može se postaviti da bude vektor kretanja dostupnog susednog bloka koji se prvi pronađe kada se susedni blokovi otkrivaju po redosledu A1 i A0.
[0526] Kada se izvede kombinovani kandidat za spajanje, susedni blok kodiran pomoću afinog modela kretanja ili susedni blok izveden kao afini kandidat za spajanje može se postaviti kao nedostupan.
[0528] Slika 23 je dijagram koji prikazuje nedostupan susedni blok.
[0530] Kada se afini kandidat za spajanje izvede iz susednog bloka B1 koji se nalazi iznad tekućeg bloka, može se odrediti da susedni blok B1 nije dostupan za izvođenje kombinovanog kandidata za spajanje. Prema tome, kada se izvodi afini početni vektor kombinovanog kandidata za spajanje za CP1, vektor kretanja bloka B1 se ne može koristiti.
[0532] Alternativno, kada je susedni blok kodiran u afinom modelu kretanja, kombinovani kandidat za spajanje može se izvesti na osnovu afinog vektora podbloka koji uključuje referentni uzorak. Kao primer, kada je susedni blok koji uključuje uzorak lociran na B1 kodiran u afinom modelu kretanja, kombinovani kandidat za spajanje može se izvesti korišćenjem afinog vektora podbloka susednog bloka koji uključuje uzorak lociran na B1.
[0534] Alternativno, redosled skeniranja se može odrediti uzimajući u obzir da li je susedni blok kodiran pomoću afinog modela kretanja ili da li je susedni blok izveden kao afini kandidat za spajanje. Kao primer, susedni blok kodiran pomoću afinog modela kretanja ili susedni blok kodiran pomoću afinog kandidata za spajanje može se podesiti da se skenira poslednji. Kao primer, kada je susedni blok lociran na B1 kodiran pomoću afinog modela kretanja, drugi afini početni vektor kombinovanog kandidata za spajanje za CP2 može se izvesti otkrivanjem susednih blokova po redosledu B0 i B1.
[0536] Kada susedni blokovi imaju različite indekse referentne slike, vektori kretanja se mogu skalirati u odnosu na referentnu sliku sa najvećim indeksom ili referentnu sliku sa najmanjim indeksom. Skaliranje se može sprovesti na osnovu vrednosti razlike broja redosleda slika (POC) između referentne slike i tekuće slike.
[0538] Alternativno, kombinovanje susednih blokova može se izvršiti korišćenjem samo onih susednih blokova koji imaju isti indeks referentne slike među susednim blokovima. Kao primer, kada najmanje jedan od susednih blokova ima različit indeks referentne slike, kombinacija se može podesiti da bude nedostupna kao kombinovani kandidat za spajanje.
[0539] Takođe, dostupnost kombinacije može se odrediti bez obzira na to da li susedni blokovi imaju iste informacije o kretanju ili isti vektor kretanja. Kao primer, kombinovani kandidat za spajanje može se izvesti kombinovanjem susednih blokova koji imaju isti indeks referentne slike čak i kada susedni blokovi imaju isti vektor kretanja (npr. afini početni vektor za CP0 i afini početni vektor za CP1). Alternativno, redosled skeniranja susednih blokova može se odrediti uzimajući u obzir indekse referentne slike susednih blokova. Alternativno, kombinovanje se može izvršiti korišćenjem samo onih susednih blokova koji imaju isti smer predikcije među susednim blokovima.
[0541] Kandidat za spajanje može se generisati po unapred određenom redosledu kombinovanja. Kao primer, redosled kombinovanja može se postaviti na sledeći način:
[0542] 1. {afini početni vektor za CP0, afini početni vektor za CP1, afini početni vektor za CP2}
[0543] 2. {afini početni vektor za CP0, afini početni vektor za CP1, afini početni vektor za CP3}
[0544] 3. {afini početni vektor za CP0, afini početni vektor za CP2, afini početni vektor za CP3}
[0545] 4. {afini početni vektor za CP1, afini početni vektor za CP2, afini početni vektor za CP3}
[0546] 5. {afini početni vektor za CP0, afini početni vektor za CP1}
[0547] 6. {afini početni vektor za CP0, afini početni vektor za CP2}
[0549] Iako je prikazano šest primera kombinovanja, takođe je moguće koristiti manje ili više primera kombinovanja.
[0551] Kombinovani kandidat za spajanje generisan kombinovanjem tri afina početna vektora može se nazvati 6-parametarskim kombinovanim kandidatom za spajanje, a kombinovani kandidat za spajanje generisan kombinovanjem dva afina početna vektora može se nazvati 4-parametarskim kombinovanim kandidatom za spajanje.
[0553] Redosled kombinovanja može biti unapred definisan u koderu i dekoderu.
[0554] Alternativno, redosled kombinovanja može se odrediti na osnovu najmanje jednog od veličine, oblika, oblika deljenja ili afinog modela kretanja tekućeg bloka, lokacije tekućeg bloka u jedinici stabla kodiranja ili POC referentne slike. Kao primer, kada se na tekući blok primenjuje 4-parametarski afini model kretanja, može se izvršiti podešavanje tako da primeri kombinovanja za 4-parametarskog kombinovanog kandidata za spajanje imaju veći prioritet od primera kombinovanja za 6-parametarskog kombinovanog kandidata za spajanje.
[0556] Dok se kombinovani kandidat za spajanje generiše po redosledu kombinovanja, samo se onaj kandidat za spajanje koji je generisan kombinovanjem susednih blokova koji imaju istu referentnu sliku može odrediti kao dostupan. Alternativno, kada najmanje jedan od susednih blokova ima različitu referentnu sliku, vektori kretanja se mogu skalirati u odnosu na referentnu sliku sa najvećim indeksom ili referentnu sliku sa najmanjim indeksom radi izvođenja kandidata za spajanje. Skaliranje se može sprovesti na osnovu POC razlike između referentne slike i tekuće slike. Alternativno, kada dva od susednih blokova imaju istu referentnu sliku, a preostali susedni blok ima različitu referentnu sliku, vektor kretanja susednog bloka koji ima različitu referentnu sliku može se skalirati u odnosu na referentnu sliku koja je zajednički primenjena na ta dva susedna bloka radi izvođenja kombinovanog kandidata za spajanje.
[0558] Broj kombinovanih kandidata za spajanje koji se dodaju na listu kandidata za spajanje može se odrediti na osnovu najmanje jednog od maksimalnog broja kandidata za spajanje ili broja kandidata za spajanje koji su prethodno uključeni u listu kandidata za spajanje.
[0559] Alternativno, u zavisnosti od afinog modela kretanja tekućeg bloka, na listu kandidata za spajanje mogu se dodavati samo 6-parametarski kombinovani kandidati za spajanje, ili se na listu kombinovanih kandidata za spajanje mogu dodavati samo 4-parametarski kombinovani kandidati za spajanje.
[0561] Kao primer, kada je broj kombinovanih kandidata za spajanje koji se dodaju na listu kandidata za spajanje jedan, a na tekući blok se primenjuje 6-parametarski model kretanja, jedan 6-parametarski kombinovani koder za spajanje može se dodati na listu kandidata za spajanje po unapred postavljenom redosledu kombinovanja. Detaljnije, kada su svi od afinog početnog vektora za CP0, afinog početnog vektora za CP1 i afinog početnog vektora za CP2 dostupni, kombinovani kandidat za spajanje {afini početni vektor za CP0, afini početni vektor za CP1 i afini početni vektor za CP2} može se dodati na listu kandidata za spajanje.
[0562] Alternativno, kada afini početni vektor za CP2 nije dostupan, a afini početni vektor za CP3 jeste dostupan, kombinovani kandidat za spajanje {afini početni vektor za CP0, afini početni vektor za CP1 i afini početni vektor za CP3} može se dodati na listu kandidata za spajanje.
[0564] Alternativno, kada je broj kombinovanih kandidata za spajanje koji se dodaju na listu kandidata za spajanje jedan, a na tekući blok se primenjuje 6-parametarski model kretanja, jedan 4-parametarski kombinovani kandidat za spajanje može se dodati na listu kandidata za spajanje po unapred postavljenom redosledu kombinovanja.
[0566] Kao drugi primer, broj kombinovanih kandidata za spajanje koji se dodaju na listu kandidata za spajanje može se podesiti različito u zavisnosti od afinog modela kretanja tekućeg bloka. Kao primer, kada se na tekući blok primenjuje 6-parametarski model kretanja, jedan kombinovani kandidat za spajanje može se dodati na listu kandidata za spajanje. Sa druge strane, kada se na tekući blok primenjuje 4-parametarski model kretanja, dva kombinovana kandidata za spajanje mogu se dodati na listu kandidata za spajanje.
[0568] Kombinovani kandidat za spajanje koji se dodaje na listu kandidata za spajanje može se izabrati u zavisnosti od broja dostupnih afinih kandidata za spajanje. Kao primer, kada je broj dostupnih afinih kandidata za spajanje dva ili više, na listu kandidata za spajanje mogu se dodavati samo 4-parametarski kombinovani kandidati za spajanje. Sa druge strane, kada je broj dostupnih afinih kandidata za spajanje jedan ili manje, na listu kandidata za spajanje mogu se dodavati samo 6-parametarski kombinovani kandidati za spajanje. Alternativno, kada je broj dostupnih afinih kandidata za spajanje jedan ili manje, N 6-parametarskih kombinovanih kandidata za spajanje i M 4-parametarskih kombinovanih kandidata za spajanje mogu se dodati na listu kandidata za spajanje. Ovde su N i M prirodni brojevi, a M se može izvesti na osnovu maksimalnog broja kandidata za spajanje umanjenog za N.
[0569] Alternativno, kada je broj dostupnih afinih kandidata za spajanje jedan ili manje, na listu kandidata za spajanje mogu se dodavati samo 4-parametarski kombinovani kandidati za spajanje.
[0571] Alternativno, redosled kombinovanja može se odrediti na osnovu dostupnosti afinih početnih vektora. Kao primer, kombinovani kandidati za spajanje mogu se dodati na listu kandidata za spajanje uzimajući u obzir dostupnost afinih početnih vektora po sledećem redosledu.
[0572] 1. Slučaj u kome su afini početni vektor za CP0, afini početni vektor za CP1 i afini početni vektor za CP2 dostupni
[0573] 2. {afini početni vektor za CP0, afini početni vektor za CP1, afini početni vektor za CP2}
[0574] 3. Slučaj u kome su afini početni vektor za CP0, afini početni vektor za CP1 i afini početni vektor za CP3 dostupni
[0575] 4. {afini početni vektor za CP0, afini početni vektor za CP1, afini početni vektor za CP3}
[0576] 5. Slučaj u kome su afini početni vektor za CP0, afini početni vektor za CP2 i afini početni vektor za CP3 dostupni
[0577] 6. {afini početni vektor za CP0, afini početni vektor za CP2, afini početni vektor za CP3}
[0578] 7. Slučaj u kome su afini početni vektor za CP1, afini početni vektor za CP2 i afini početni vektor za CP3 dostupni
[0579] 8. {afini početni vektor za CP1, afini početni vektor za CP2, afini početni vektor za CP3}
[0580] 9. Slučaj u kome su afini početni vektor za CP0 i afini početni vektor za CP1 dostupni 10. {afini početni vektor za CP0, afini početni vektor za CP1}
[0581] 11. Slučaj u kome su afini početni vektor za CP0 i afini početni vektor za CP2 dostupni 12. {afini početni vektor za CP0, afini početni vektor za CP2}
[0583] Kada je broj kombinovanih kandidata za spajanje koji se dodaju na listu kandidata za spajanje jedan, kombinovani kandidat za spajanje koji odgovara uslovu koji je prvi ispunjen među uslovima od prvog do šestog može se dodati na listu kandidata za spajanje. Kada nijedan od uslova za kandidate od prvog do šestog nije ispunjen, nijedan kombinovani kandidat za spajanje se ne mora dodati na listu kandidata za spajanje.
[0585] Kao drugi primer, maksimalni broj kombinovanih kandidata za spajanje koji se dodaju na listu kandidata za spajanje može se odrediti u zavisnosti od broja dostupnih afinih kandidata za spajanje.
[0587] [0248] Kada je broj kandidata za spajanje uključenih u listu kandidata za spajanje manji od maksimalnog broja, nulti kandidat za spajanje, koji ima vektor kretanja 0, može se dodati na listu kandidata za spajanje. Prema tome, kandidat za spajanje se može izvesti u afinom režimu spajanja po sledećem redosledu.
[0588] 1. Izvođenje afinog kandidata za spajanje
[0589] 2. Kombinovani kandidat za spajanje
[0590] 3. Nulti kandidat za spajanje
[0592] Zatim će postupak inter-predikcije koji koristi informacije o translacionom kretanju biti detaljno opisan u nastavku teksta.
[0594] Informacije o kretanju tekućeg bloka mogu se izvesti iz informacija o kretanju bloka koji nije tekući blok. Ovde drugi blok može biti blok koji je kodiran ili dekodiran putem inter-predikcije ranije nego tekući blok. Podešavanje informacija o kretanju tekućeg bloka da budu iste kao informacije o kretanju drugog bloka može se definisati kao režim spajanja. Takođe, podešavanje vektora kretanja drugog bloka kao predviđene vrednosti vektora kretanja tekućeg bloka može se definisati kao režim predikcije vektora kretanja.
[0596] Slika 24 je dijagram toka postupka izvođenja informacija o kretanju tekućeg bloka u režimu spajanja.
[0598] Kandidat za spajanje tekućeg bloka može se izvesti (S2401). Kandidat za spajanje tekućeg bloka može se izvesti iz bloka koji je kodiran ili dekodiran putem inter-predikcije ranije nego tekući blok.
[0600] Kandidati za blokove koji se koriste za izvođenje bloka spajanja mogu uključivati susedne blokove koji uključuju uzorak susedan tekućem bloku. Kao primer, kada su koordinate gornjeg levog uzorka tekućeg bloka (0, 0), najmanje jedan od bloka koji uključuje referentni uzorak lociran na (-1, H-1), bloka koji uključuje referentni uzorak lociran na (W-1, -1), bloka koji uključuje referentni uzorak lociran na (W, -1), bloka koji uključuje referentni uzorak lociran na (-1, H) ili bloka koji uključuje referentni uzorak lociran na (-1, -1) može se koristiti kao kandidat za blok.
[0602] [0254] Alternativno, može se podesiti da kandidat za blok koji ne pripada istoj jedinici stabla kodiranja kao tekući blok bude nedostupan kao kandidat za spajanje. Kao primer, kada referentni uzorak odstupa od gornje ivice jedinice stabla kodiranja kojoj tekući blok pripada, kandidat za blok koji uključuje taj referentni uzorak može se podesiti da bude nedostupan kao kandidat za spajanje.
[0604] Kandidat za spajanje može se izvesti iz vremenski susednog bloka uključenog u sliku različitu od tekuće slike. Kao primer, kandidat za spajanje može se izvesti iz kolociranog bloka uključenog u kolociranu sliku. Jedna referentna slika uključena u listu referentnih slika može se postaviti kao kolocirana slika. Informacije o indeksu radi identifikovanja kolocirane slike među referentnim slikama mogu se signalizirati u toku bitova. Alternativno, referentna slika koja ima unapred definisan indeks među referentnim slikama može se odrediti kao kolocirana slika.
[0606] Informacije o kretanju kandidata za spajanje mogu se postaviti da budu iste kao informacije o kretanju kandidata za blok. Kao primer, najmanje jedno od vektora kretanja, indeksa referentne slike, smera predikcije ili indeksa dvosmerne težine kandidata za blok može se postaviti kao informacija o kretanju kandidata za spajanje.
[0608] Lista kandidata za spajanje koja uključuje kandidate za spajanje može se generisati (S2402).
[0610] Indeksi se mogu dodeliti kandidatima za spajanje sa liste kandidata za spajanje po unapred određenom redosledu. Kao primer, indeksi se mogu sekvencijalno dodeliti kandidatu za spajanje izvedenom iz levog susednog bloka, kandidatu za spajanje izvedenom iz gornjeg susednog bloka, kandidatu za spajanje izvedenom iz gornjeg desnog susednog bloka, kandidatu za spajanje izvedenom iz donjeg levog susednog bloka, kandidatu za spajanje izvedenom iz gornjeg levog susednog bloka i kandidatu za spajanje izvedenom iz vremenski susednog bloka.
[0612] Kada je mnoštvo kandidata za spajanje uključeno u listu kandidata za spajanje, najmanje jedan od mnoštva kandidata za spajanje može se izabrati (S2403). Detaljnije, informacije za specifikovanje jednog od mnoštva kandidata za spajanje mogu se signalizirati u toku bitova. Kao primer, informacije merge_idx, koje ukazuju na indeks jednog od kandidata za spajanje uključenih u listu kandidata za spajanje, mogu se signalizirati u toku bitova.
[0613] Kada je broj kandidata za spajanje uključenih u listu kandidata za spajanje manji od pragovne vrednosti, kandidat za spajanje uključen u tabelu informacija o kretanju između regiona može se dodati na listu kandidata za spajanje. Ovde pragovna vrednost može biti maksimalni broj kandidata za spajanje koje lista kandidata za spajanje može da uključi ili vrednost dobijena oduzimanjem pomeraja od maksimalnog broja kandidata za spajanje. Pomeraj može biti prirodan broj kao što je 1 ili 2. Tabela informacija o kretanju između regiona može uključivati kandidata za spajanje izvedenog na osnovu bloka koji je kodiran ili dekodiran ranije nego tekući blok.
[0615] Tabela informacija o kretanju između regiona uključuje kandidata za spajanje izvedenog iz bloka koji je kodiran ili dekodiran na osnovu inter-predikcije u tekućoj slici. Kao primer, informacije o kretanju kandidata za spajanje uključenog u tabelu informacija o kretanju između regiona mogu se postaviti da budu iste kao informacije o kretanju bloka kodiranog ili dekodiranog na osnovu inter-predikcije. Ovde informacije o kretanju mogu uključivati najmanje jedno od vektora kretanja, indeksa referentne slike, smera predikcije ili indeksa dvosmerne težine.
[0617] Radi jednostavnijeg opisa, kandidat za spajanje uključen u tabelu informacija o kretanju između regiona nazivaće se kandidatom za spajanje između regiona.
[0619] Maksimalni broj kandidata za spajanje koji mogu biti uključeni u tabelu informacija o kretanju između regiona može biti unapred definisan u koderu i dekoderu. Kao primer, maksimalni broj kandidata za spajanje koji mogu biti uključeni u tabelu informacija o kretanju između regiona može biti 1, 2, 3, 4, 5, 6, 7, 8 ili više (npr.16).
[0621] Alternativno, informacije koje ukazuju na maksimalni broj kandidata za spajanje u tabeli informacija o kretanju između regiona mogu se signalizirati u toku bitova. Te informacije se mogu signalizirati na nivou sekvence, slike ili isečka.
[0623] Alternativno, maksimalni broj kandidata za spajanje u tabeli informacija o kretanju između regiona može se odrediti u zavisnosti od veličine slike, veličine isečka ili veličine jedinice stabla kodiranja.
[0624] Tabela informacija o kretanju između regiona može se inicijalizovati u jedinicama slika, isečaka, brikova, jedinica stabla kodiranja ili linija jedinica stabla kodiranja (redova i kolona). Kao primer, kada se isečak inicijalizuje, tabela informacija o kretanju između regiona se takođe inicijalizuje i ne mora da uključuje nijednog kandidata za spajanje.
[0626] Alternativno, informacije koje ukazuju na to da li treba inicijalizovati tabelu informacija o kretanju između regiona mogu se signalizirati u toku bitova. Te informacije se mogu signalizirati na nivou isečka, pločice, brika ili bloka. Unapred konfigurisana tabela informacija o kretanju između regiona može se koristiti sve dok te informacije ne ukažu na inicijalizaciju tabele informacija o kretanju između regiona.
[0628] Alternativno, informacije koje se odnose na početnog kandidata za spajanje između regiona mogu se signalizirati kroz skup parametara slike ili zaglavlje isečka. Čak i kada je isečak inicijalizovan, tabela informacija o kretanju između regiona može uključivati početnog kandidata za spajanje između regiona. Shodno tome, kandidat za spajanje između regiona može se koristiti za blok koji treba prvi da se kodira ili dekodira u isečku.
[0630] Blokovi se mogu kodirati ili dekodirati po redosledu kodiranja ili dekodiranja, a blokovi kodirani ili dekodirani na osnovu inter-predikcije mogu se sekvencijalno postaviti kao kandidati za spajanje između regiona po redosledu kodiranja ili dekodiranja.
[0632] Slika 25 je dijagram za opisivanje aspekta ažuriranja tabele informacija o kretanju između regiona.
[0634] Kada se na tekućem bloku sprovede inter-predikcija (S2501), kandidat za spajanje između regiona može se izvesti na osnovu tekućeg bloka (S2502). Informacije o kretanju kandidata za spajanje između regiona mogu se postaviti da budu iste kao informacije o kretanju tekućeg bloka.
[0636] Kada je tabela informacija o kretanju između regiona prazna (S2503), kandidat za spajanje između regiona izveden na osnovu tekućeg bloka može se dodati u tabelu informacija o kretanju između regiona (S2504).
[0637] Kada tabela informacija o kretanju između regiona već uključuje kandidata za spajanje između regiona (S2503), može se sprovesti provera redundantnosti informacija o kretanju tekućeg bloka (ili kandidata za spajanje između regiona izvedenog na osnovu informacija o kretanju) (S2505). Provera redundantnosti služi za određivanje toga da li su informacije o kretanju tekućeg bloka iste kao informacije o kretanju kandidata za spajanje između regiona koji je unapred uskladišten u tabeli informacija o kretanju između regiona. Provera redundantnosti se može sprovesti za sve kandidate za spajanje između regiona koji su unapred uskladišteni u tabeli informacija o kretanju između regiona. Alternativno, provera redundantnosti se može sprovesti na kandidatima za spajanje između regiona koji imaju indekse veće od pragovne vrednosti ili jednake njoj, ili indekse manje od pragovne vrednosti ili jednake njoj, među kandidatima za spajanje između regiona koji su unapred uskladišteni u tabeli informacija o kretanju između regiona.
[0639] Kada nije uključen nijedan kandidat za spajanje sa istim informacijama o kretanju kao tekući blok, kandidat za spajanje između regiona izveden na osnovu tekućeg bloka može se dodati u tabelu informacija o kretanju između regiona (S2508). To da li su kandidati za spajanje identični može se odrediti na osnovu toga da li kandidati za spajanje imaju iste informacije o kretanju (npr. vektor kretanja i/ili indeks referentne slike).
[0641] U ovom slučaju, kada je maksimalni broj kandidata za spajanje između regiona unapred uskladišten u tabeli informacija o kretanju između regiona (S2506), najstariji kandidat za spajanje između regiona se briše (S2507), a kandidat za spajanje između regiona izveden na osnovu tekućeg bloka može se dodati u tabelu informacija o kretanju između regiona (S2508).
[0643] Kandidati za spajanje između regiona mogu se identifikovati preko svojih indeksa. Kada se kandidat za spajanje između regiona izveden iz tekućeg bloka doda u tabelu informacija o kretanju između regiona, tom kandidatu za spajanje između regiona dodeljuje se najniži indeks (npr.0), a indeksi unapred uskladištenih kandidata za spajanje između regiona mogu se povećati za jedan. U ovom slučaju, kada je maksimalni broj kandidata za spajanje unapred uskladišten u tabeli informacija o kretanju između regiona, uklanja se kandidat za spajanje između regiona sa najvećim indeksom.
[0644] Alternativno, kada se kandidat za spajanje između regiona izveden iz tekućeg bloka doda u tabelu informacija o kretanju između regiona, tom kandidatu za spajanje između regiona može se dodeliti najveći indeks. Kao primer, kada je broj kandidata za spajanje koji su unapred uskladišteni u tabeli informacija o kretanju između regiona manji od maksimalne vrednosti, kandidatu za spajanje između regiona može se dodeliti indeks koji ima istu vrednost kao i broj unapred uskladištenih kandidata za spajanje. Alternativno, kada je broj kandidata za spajanje koji su unapred uskladišteni u tabeli informacija o kretanju između regiona jednak maksimalnoj vrednosti, kandidatu za spajanje između regiona može se dodeliti indeks koji ima maksimalnu vrednost umanjenu za 1. Takođe, kandidat za spajanje između regiona sa najmanjim indeksom se uklanja, a indeksi ostalih unapred uskladištenih kandidata za spajanje između regiona smanjuju se za 1.
[0646] Slika 26 je dijagram koji prikazuje aspekt ažuriranja tabele kandidata za spajanje između regiona.
[0648] Pošto se kandidat za spajanje između regiona izveden iz tekućeg bloka dodaje u tabelu kandidata za spajanje između regiona, pretpostavlja se da se tom kandidatu za spajanje između regiona dodeljuje najveći indeks. Takođe, pretpostavlja se da je maksimalni broj kandidata za spajanje između regiona uskladišten u tabeli kandidata za spajanje između regiona.
[0650] Kada se kandidat za spajanje između regiona HmvpCand[n+1], koji je izveden iz tekućeg bloka, doda u tabelu kandidata za spajanje između regiona HmvpCandList, kandidat za spajanje između regiona HmvpCand[0], koji ima najmanji indeks među unapred uskladištenim kandidatima za spajanje između regiona, može se obrisati, a indeksi ostalih kandidata za spajanje između regiona mogu se smanjiti za 1. Takođe, indeks kandidata za spajanje između regiona HmvpCand[n+1], koji je izveden iz tekućeg bloka, može se postaviti kao maksimalna vrednost (n u primeru prikazanom na slici 26).
[0652] Kada je unapred uskladišten kandidat za spajanje između regiona koji je identičan kandidatu za spajanje između regiona izvedenom na osnovu tekućeg bloka (S2505), kandidat za spajanje između regiona izveden na osnovu tekućeg bloka ne mora se dodati u tabelu informacija o kretanju između regiona (S2509).
[0653] Alternativno, dok se kandidat za spajanje između regiona izveden na osnovu tekućeg bloka dodaje u tabelu informacija o kretanju između regiona, unapred uskladišteni kandidat za spajanje između regiona koji je identičan tom kandidatu za spajanje između regiona može se ukloniti. Ovo izaziva isti efekat kao ažuriranje indeksa unapred uskladištenih kandidata za spajanje između regiona.
[0655] Slika 27 je dijagram koji prikazuje primer u kome se indeks unapred uskladištenog kandidata za spajanje između regiona ažurira.
[0657] Kada je indeks unapred uskladištenog kandidata za inter-predikciju koji je identičan kandidatu za spajanje između regiona mvCand, koji je izveden na osnovu tekućeg bloka, jednak hIdx, unapred uskladišteni kandidat za inter-predikciju se može obrisati, a indeksi kandidata za inter-predikciju veći od hIdx mogu se smanjiti za 1. Kao primer, na slici 27 je prikazano da se HmvpCand[2], koji je identičan sa mvCand, briše iz tabele informacija o kretanju između regiona HvmpCandList, i da se indeksi od HmvpCand[3] do HmvpCand[n] smanjuju za 1.
[0659] Takođe, kandidat za spajanje između regiona mvCand, koji je izveden na osnovu tekućeg bloka, može se dodati na kraj tabele informacija o kretanju između regiona.
[0661] Alternativno, indeks dodeljen unapred uskladištenom kandidatu za spajanje između regiona koji je identičan kandidatu za spajanje između regiona izvedenom na osnovu tekućeg bloka može se ažurirati. Na primer, indeks unapred uskladištenog kandidata za spajanje između regiona može se promeniti na minimalnu vrednost ili maksimalnu vrednost.
[0663] Može se izvršiti podešavanje tako da se informacije o kretanju blokova uključenih u unapred određeni region ne dodaju u tabelu informacija o kretanju između regiona. Kao primer, kandidat za spajanje između regiona izveden na osnovu informacija o kretanju bloka uključenog u region za obradu spajanja ne mora se dodati u tabelu informacija o kretanju između regiona. Pošto redosled kodiranja ili dekodiranja nije definisan za blokove uključene u region za obradu spajanja, neadekvatno je koristiti informacije o kretanju jednog od tih blokova radi sprovođenja inter-predikcije na ostalim blokovima. Shodno tome, kandidati za spajanje između regiona izvedeni na osnovu blokova uključenih u region za obradu spajanja ne moraju se dodati u tabelu informacija o kretanju između regiona.
[0664] Kada se predikcija sa kompenzacijom kretanja sprovodi u jedinicama podblokova, kandidat za spajanje između regiona može se izvesti na osnovu informacija o kretanju reprezentativnog podbloka među mnoštvom podblokova uključenih u tekući blok. Kao primer, kada se kandidat za spajanje podblokova koristi za tekući blok, kandidat za spajanje između regiona može se izvesti na osnovu informacija o kretanju reprezentativnog podbloka među tim podblokovima.
[0666] Vektori kretanja podblokova mogu se izvesti po sledećem redosledu. Prvo, jedan kandidat za spajanje može se izabrati između kandidata za spajanje uključenih u listu kandidata za spajanje tekućeg bloka, a početni vektor pomeraja shVector može se izvesti na osnovu vektora kretanja izabranog kandidata za spajanje. Zatim se pomereni podblok koji ima referentni uzorak lociran na (xColSb, yColSb) može izvesti dodavanjem početnog vektora pomeraja na lokaciju (xSb, ySb) referentnog uzoraka (npr. gornjeg levog uzorka ili srednjeg uzorka) svakog podbloka u bloku kodiranja. Jednačina 20 u nastavku ukazuje na jednačinu za izvođenje pomerenog podbloka.
[0668]
[0671] Zatim se vektor kretanja kolociranog bloka koji odgovara centralnoj poziciji podbloka koji uključuje (xColSb, yColSb) može postaviti kao vektor kretanja podbloka koji uključuje (xSb, ySb).
[0673] Reprezentativni podblok se može odnositi na podblok koji uključuje gornji levi uzorak ili centralni uzorak tekućeg bloka.
[0675] Slika 28 je dijagram koji prikazuje lokaciju reprezentativnog podbloka.
[0677] [0293] Slika 28A prikazuje primer u kome se podblok koji se nalazi levo i iznad tekućeg bloka postavlja kao reprezentativni podblok, a slika 28B prikazuje primer u kome se podblok koji se nalazi u centru tekućeg bloka postavlja kao reprezentativni podblok. Kada se predikcija sa kompenzacijom kretanja sprovodi u jedinicama podblokova, kandidat za spajanje između regiona tekućeg bloka može se izvesti na osnovu vektora kretanja podbloka koji uključuje gornji levi uzorak tekućeg bloka ili podbloka koji uključuje centralni uzorak tekućeg bloka.
[0679] To da li će se tekući blok koristiti ako kandidat za spajanje između regiona može se takođe odrediti na osnovu režima inter-predikcije tekućeg bloka. Kao primer, može se podesiti da blok koji je kodiran ili dekodiran na osnovu afinog modela kretanja bude nedostupan kao kandidat za spajanje između regiona. Shodno tome, iako je tekući blok kodiran ili dekodiran putem inter-predikcije, tabela informacija o kretanju kod interpredikcije se ne mora ažurirati na osnovu tekućeg bloka kada je režim inter-predikcije tekućeg bloka afini režim predikcije.
[0681] Alternativno, kandidat za spajanje između regiona može se izvesti na osnovu vektora podbloka za najmanje jedan podblok uključen u blok koji je kodiran ili dekodiran na osnovu afinog modela kretanja. Kao primer, kandidat za spajanje između regiona može se izvesti korišćenjem podbloka koji se nalazi u gornjem levom uglu tekućeg bloka, podbloka koji se nalazi u centru tekućeg bloka ili podbloka koji se nalazi u gornjem desnom uglu tekućeg bloka. Alternativno, prosečna vrednost vektora podblokova za mnoštvo podblokova može se postaviti kao vektor kretanja kandidata za spajanje između regiona.
[0683] Alternativno, kandidat za spajanje između regiona može se izvesti na osnovu prosečne vrednosti afinih početnih vektora bloka koji je kodiran ili dekodiran na osnovu afinog modela kretanja. Kao primer, prosečna vrednost najmanje jednog od prvog afinog početnog vektora, drugog afinog početnog vektora ili trećeg afinog početnog vektora tekućeg bloka može se postaviti kao vektor kretanja kandidata za spajanje između regiona.
[0685] Alternativno, tabela informacija o kretanju između regiona može se konfigurisati za svaki režim inter-predikcije. Kao primer, može se definisati najmanje jedna od tabele informacija o kretanju između regiona za blok kodiran ili dekodiran kopiranjem unutar bloka, tabele informacija o kretanju između regiona za blok kodiran ili dekodiran na osnovu modela translacionog kretanja ili tabele informacija o kretanju između regiona za blok kodiran ili dekodiran na osnovu afinog modela kretanja. Jedna od mnoštva tabela informacija o kretanju između regiona može se izabrati u skladu sa režimom inter-predikcije tekućeg bloka.
[0686] Slika 29 prikazuje primer u kome se tabela informacija o kretanju između regiona generiše za svaki režim inter-predikcije.
[0688] Kada je blok kodiran ili dekodiran na osnovu neafinog modela kretanja, kandidat za spajanje između regiona mvCand, koji je izveden na osnovu tog bloka, može se dodati u neafinu tabelu informacija o kretanju između regiona HmvpCandList. Sa druge strane, kada je blok kodiran ili dekodiran na osnovu afinog modela kretanja, kandidat za spajanje između regiona mvAfCand, koji je izveden na osnovu tog bloka, može se dodati u afinu tabelu informacija o kretanju između regiona HmvpAfCandList.
[0690] Afini početni vektori bloka mogu se skladištiti u kandidatu za spajanje između regiona izvedenom iz bloka koji je kodiran ili dekodiran na osnovu afinog modela kretanja. Shodno tome, kandidat za spajanje između regiona može se koristiti kao kandidat za spajanje radi izvođenja afinog početnog vektora tekućeg bloka.
[0692] Dodatna tabela informacija o kretanju između regiona može se definisati pored goreopisane tabele informacija o kretanju između regiona. Pored goreopisane tabele informacija o kretanju između regiona (u nastavku teksta nazvane prva tabela informacija o kretanju između regiona), može se definisati tabela dugoročnih informacija o kretanju (u nastavku teksta nazvana druga tabela informacija o kretanju između regiona). Ovde tabela dugoročnih informacija o kretanju uključuje dugoročne kandidate za spajanje.
[0694] Kada su i prva tabela informacija o kretanju između regiona i druga tabela informacija o kretanju između regiona prazne, kandidati za spajanje između regiona mogu se prvenstveno dodavati u drugu tabelu informacija o kretanju između regiona. Sve dok broj kandidata za spajanje između regiona dozvoljen za drugu tabelu informacija o kretanju između regiona ne dostigne maksimalni broj, kandidati za spajanje između regiona se ne mogu dodavati u prvu tabelu informacija o kretanju između regiona.
[0696] Alternativno, jedan kandidat za spajanje kod inter-predikcije može se dodati i u prvu tabelu informacija o kretanju između regiona i u drugu tabelu informacija o kretanju između regiona.
[0697] U ovom slučaju, druga tabela informacija o kretanju između regiona u kojoj je konfigurisanje završeno ne mora više vršiti ažuriranje. Alternativno, kada je dekodirani region veći od unapred određenog dela isečka ili jednak njemu, druga tabela informacija o kretanju između regiona se može ažurirati. Alternativno, druga tabela informacija o kretanju između regiona može se ažurirati nakon svakih N linija jedinica stabla kodiranja.
[0699] Sa druge strane, prva tabela informacija o kretanju između regiona može se ažurirati kad god se generiše blok kodiran ili dekodiran kroz inter-predikciju. Međutim, može se izvršiti podešavanje tako da se kandidati za spajanje između regiona dodati u drugu tabelu informacija o kretanju između regiona ne koriste za ažuriranje prve tabele informacija o kretanju između regiona.
[0701] Informacije za izbor jedne od prve tabele informacija o kretanju između regiona ili druge tabele informacija o kretanju između regiona mogu se signalizirati u toku bitova. Kada je broj kandidata za spajanje uključenih u listu kandidata za spajanje manji od pragovne vrednosti, kandidati za spajanje uključeni u tabelu informacija o kretanju između regiona na koju ukazuju te informacije mogu se dodati na listu kandidata za spajanje.
[0703] Alternativno, tabela informacija o kretanju između regiona može se izabrati na osnovu veličine, oblika ili režima inter-predikcije tekućeg bloka, prisustva dvosmerne predikcije, prisustva prečišćavanja vektora kretanja ili prisustva trougaonog deljenja.
[0705] Alternativno, kada je broj kandidata za spajanje uključenih u listu kandidata za spajanje manji od maksimalnog broja spajanja čak i kada su kandidati za spajanje između regiona uključeni u prvu tabelu informacija o kretanju između regiona dodati na listu kandidata za spajanje, kandidati za spajanje između regiona uključeni u drugu tabelu informacija o kretanju između regiona mogu se dodati na listu kandidata za spajanje.
[0707] Slika 30 je dijagram koji prikazuje primer u kome se kandidat za spajanje između regiona uključen u tabelu dugoročnih informacija o kretanju dodaje na listu kandidata za spajanje.
[0709] [0310] Kada je broj kandidata za spajanje uključenih u listu kandidata za spajanje manji od maksimalnog broja, kandidati za spajanje između regiona uključeni u prvu tabelu informacija o kretanju između regiona HmvpCandList mogu se dodati na listu kandidata za spajanje. Kada je broj kandidata za spajanje uključenih u listu kandidata za spajanje manji od maksimalnog broja čak i kada su kandidati za spajanje između regiona uključeni u prvu tabelu informacija o kretanju između regiona dodati na listu kandidata za spajanje, kandidati za spajanje između regiona uključeni u tabelu dugoročnih informacija o kretanju HmvpLTCandList mogu se dodati na listu kandidata za spajanje.
[0711] Tabela 1 prikazuje postupak dodavanja kandidata za spajanje između regiona uključenih u tabelu dugoročnih informacija o kretanju na listu kandidata za spajanje.
[0712] [Tabela 1]
[0714]
[0717] [0312]Može se izvršiti podešavanje tako da kandidat za spajanje između regiona uključuje dodatne informacije kao i informacije o kretanju. Kao primer, informacije o veličini, obliku ili deljenju bloka mogu se dodatno uskladištiti za kandidata za spajanje između regiona. Prilikom konfigurisanja liste kandidata za spajanje tekućeg bloka, mogu se koristiti samo oni kandidati za spajanje kod inter-predikcije koji imaju iste ili slične informacije o veličini, obliku ili deljenju kao tekući blok među kandidatima za inter-predikciju, ili se kandidati za inter-predikciju koji imaju iste ili slične informacije o veličini, obliku ili deljenju kao tekući blok mogu prvenstveno dodati na listu kandidata za spajanje.
[0719] Alternativno, tabela informacija o kretanju između regiona može se generisati za svaku veličinu, oblik ili element informacija o deljenju bloka. Lista kandidata za spajanje tekućeg bloka može se generisati korišćenjem tabele informacija o kretanju između regiona koja odgovara obliku, veličini ili informacijama o deljenju tekućeg bloka među mnoštvom tabela informacija o kretanju između regiona.
[0721] Kada je broj kandidata za spajanje uključenih u listu kandidata za spajanje tekućeg bloka manji od pragovne vrednosti, kandidat za spajanje između regiona uključen u tabelu informacija o kretanju između regiona može se dodati na listu kandidata za spajanje.
[0722] Postupak dodavanja može biti u rastućem ili opadajućem redosledu na osnovu indeksa. Kao primer, kandidat za spajanje između regiona sa najvećim indeksom može se prvenstveno dodati na listu kandidata za spajanje.
[0724] Kada kandidat za spajanje između regiona uključen u tabelu informacija o kretanju između regiona treba da se doda na listu kandidata za spajanje, može se sprovesti provera redundantnosti tog kandidata za spajanje između regiona u odnosu na kandidate za spajanje koji su unapred uskladišteni na listi kandidata za spajanje.
[0726] Kao primer, tabela 2 prikazuje postupak dodavanja kandidata za spajanje između regiona na listu kandidata za spajanje.
[0727] [Tabela 2]
[0729]
[0730]
[0733] Provera redundantnosti se može sprovesti na samo nekim od kandidata za spajanje između regiona uključenih u tabelu informacija o kretanju između regiona. Kao primer, provera redundantnosti se može sprovesti na samo onim kandidatima za spajanje između regiona koji imaju indekse veće od pragovne vrednosti ili jednake njoj, ili indekse manje od pragovne vrednosti ili jednake njoj. Alternativno, provera redundantnosti se može sprovesti na samo N kandidata za spajanje koji imaju najveće indekse ili koji imaju najmanje indekse.
[0735] Alternativno, provera redundantnosti se može sprovesti na samo nekim od kandidata za spajanje koji su unapred uskladišteni na listi kandidata za spajanje. Kao primer, provera redundantnosti se može sprovesti na samo onom kandidatu za spajanje čiji je indeks veći od pragovne vrednosti ili jednak njoj, ili čiji je indeks manji od pragovne vrednosti ili jednak njoj, ili na kandidatu za spajanje izvedenom iz bloka na specifičnoj lokaciji. Ovde specifična lokacija može uključivati najmanje jedan od levog susednog bloka, gornjeg susednog bloka, gornjeg desnog susednog bloka ili donjeg levog susednog bloka tekućeg bloka.
[0737] Slika 31 je dijagram koji prikazuje primer u kome se provera redundantnosti sprovodi na samo nekim kandidatima za spajanje.
[0739] Kada kandidat za spajanje između regiona HmvpCand[j] treba da se doda na listu kandidata za spajanje, provera redundantnosti tog kandidata za spajanje između regiona može se sprovesti u odnosu na dva kandidata za spajanje, mergeCandList[NumMerge-2] i mergeCandList[NumMerge-1], koji imaju najveće indekse. Ovde NumMerge može predstavljati broj dostupnih prostornih kandidata za spajanje i vremenskih kandidata za spajanje.
[0741] [0321] Za razliku od prikazanog primera, kada kandidat za spajanje između regiona HmvpCand[j] treba da se doda na listu kandidata za spajanje, provera redundantnosti tog kandidata za spajanje između regiona može se sprovesti u odnosu na najmanje dva kandidata za spajanje koji imaju najmanje indekse. Na primer, može se proveriti da li su mergeCandList[0] i mergeCandList[1] identični sa HmvpCand[j]. Alternativno, provera redundantnosti se može sprovesti na samo onom kandidatu za spajanje koji je izveden na specifičnoj lokaciji. Kao primer, provera redundantnosti se može sprovesti na najmanje jednom od kandidata za spajanje izvedenog iz obližnjeg bloka koji se nalazi levo od tekućeg bloka ili kandidata za spajanje izvedenog iz obližnjeg bloka koji se nalazi iznad tekućeg bloka. Kada na listi kandidata za spajanje nije prisutan nijedan kandidat za spajanje izveden na specifičnoj lokaciji, kandidati za spajanje između regiona se mogu dodati na listu kandidata za spajanje bez provere redundantnosti.
[0743] Kada se pronađe kandidat za spajanje koji je identičan prvom kandidatu za spajanje između regiona, provera redundantnosti na kandidatu za spajanje koji je identičan prvom kandidatu za spajanje između regiona može se izostaviti dok se sprovodi provera redundantnosti na drugom kandidatu za spajanje između regiona.
[0745] Slika 32 je dijagram koji prikazuje primer u kome se izostavlja provera redundantnosti na specifičnom kandidatu za spajanje.
[0747] Kada kandidat za spajanje između regiona HmvpCand[i] sa indeksom i treba da se doda na listu kandidata za spajanje, može se sprovesti provera redundantnosti između tog kandidata za spajanje između regiona i kandidata za spajanje koji su unapred uskladišteni na listi kandidata za spajanje. U ovom slučaju, kada se pronađe kandidat za spajanje mergeCandList[j] koji je identičan kandidatu za spajanje između regiona HmvpCand[i], kandidat za spajanje između regiona HmvpCand[i] se ne mora dodati na listu kandidata za spajanje, a može se sprovesti provera redundantnosti između kandidata za spajanje između regiona HmvpCand[i-1], koji ima indeks i-1, i kandidata za spajanje. U ovom slučaju, provera redundantnosti između kandidata za spajanje između regiona HmvpCand[i-1] i kandidata za spajanje mergeCandList[j] može se izostaviti.
[0749] Na primer, u primeru prikazanom na slici 32, određeno je da su HmvpCand[i] i mergeCandList[2] međusobno identični. Shodno tome, HmvpCand[i] se ne mora dodati na listu kandidata za spajanje, a provera redundantnosti se može sprovesti na HmvpCand[i-1]. U ovom slučaju, provera redundantnosti između HvmpCand[i-1] i mergeCandList[2] može se izostaviti.
[0750] Kada je broj kandidata za spajanje uključenih u listu kandidata za spajanje tekućeg bloka manji od pragovne vrednosti, najmanje jedan od uparenog kandidata za spajanje ili nultog kandidata za spajanje može se dalje uključiti pored kandidata za spajanje između regiona. Upareni kandidat za spajanje odnosi se na kandidata za spajanje sa vektorom kretanja koji je jednak prosečnoj vrednosti vektora kretanja dva ili više kandidata za spajanje, a nulti kandidat za spajanje odnosi se na kandidata za spajanje sa vektorom kretanja 0.
[0752] Kandidat za spajanje može se dodati na listu kandidata za spajanje tekućeg bloka po sledećem redosledu.
[0754] Prostorni kandidat za spajanje - vremenski kandidat za spajanje - kandidat za spajanje između regiona - (afini kandidat za spajanje između regiona) - upareni kandidat za spajanje -nulti kandidat za spajanje.
[0756] Prostorni kandidat za spajanje odnosi se na kandidata za spajanje izvedenog iz najmanje jednog od susednog bloka ili nesusednog bloka, a vremenski kandidat za spajanje odnosi se na kandidata za spajanje izvedenog iz prethodne referentne slike. Afini kandidat za spajanje između regiona odnosi se na kandidata za spajanje između regiona izvedenog iz bloka koji je kodiran ili dekodiran pomoću afinog modela kretanja.
[0758] Tabela informacija o kretanju između regiona može se koristiti čak i u režimu predikcije vektora kretanja. Kao primer, kada je broj kandidata za predikciju vektora kretanja uključenih u listu kandidata za predikciju vektora kretanja tekućeg bloka manji od pragovne vrednosti, kandidat za spajanje između regiona uključen u tabelu informacija o kretanju između regiona može se postaviti kao kandidat za predikciju vektora kretanja za tekući blok. Detaljnije, vektor kretanja kandidata za spajanje između regiona može se postaviti kao kandidat za predikciju vektora kretanja.
[0760] Kada se izabere jedan od kandidata za predikciju vektora kretanja uključenih u listu kandidata za predikciju vektora kretanja tekućeg bloka, izabrani kandidat se može postaviti kao prediktor vektora kretanja tekućeg bloka. Potom se vektor kretanja tekućeg bloka može dobiti dekodiranjem rezidualne vrednosti vektora kretanja tekućeg bloka i zatim dodavanjem prediktora vektora kretanja i rezidualne vrednosti vektora kretanja.
[0761] Lista kandidata za predikciju vektora kretanja tekućeg bloka može se konfigurisati po sledećem redosledu.
[0763] Prostorni kandidat za predikciju vektora kretanja - vremenski kandidat za predikciju vektora kretanja - kandidat za spajanje između regiona dekodiranja - (afini kandidat za spajanje između regiona dekodiranja) - nulti kandidat za predikciju vektora kretanja.
[0764] Prostorni kandidat za predikciju vektora kretanja odnosi se na kandidata za predikciju vektora kretanja izvedenog iz najmanje jednog od susednog bloka ili nesusednog bloka, a vremenski kandidat za predikciju vektora kretanja odnosi se na kandidata za predikciju vektora kretanja izvedenog iz prethodne referentne slike. Afini kandidat za spajanje između regiona odnosi se na kandidata za predikciju vektora kretanja između regiona izvedenog iz bloka koji je kodiran ili dekodiran pomoću afinog modela kretanja. Nulti kandidat za predikciju vektora kretanja predstavlja kandidata sa vektorom kretanja 0.
[0766] Blok kodiranja se može podeliti na mnoštvo jedinica predikcije, i na jedinicama predikcije se može sprovesti predikcija. Ovde jedinica predikcije ukazuje na osnovnu jedinicu za sprovođenje predikcije.
[0768] Blok kodiranja se može podeliti korišćenjem najmanje jedne od vertikalne linije, horizontalne linije, kose linije ili dijagonalne linije. Informacije za određivanje najmanje jednog od broja, uglova ili lokacija linija koje dele blok kodiranja mogu se signalizirati u toku bitova. Kao primer, informacije koje ukazuju na jedan od mnoštva kandidata za tip deljenja bloka kodiranja mogu se signalizirati u toku bitova, ili se informacije koje specifikuju jednu od mnoštva kandidata za linije koje dele blok kodiranja mogu signalizirati u toku bitova. Alternativno, informacije za određivanje broja ili tipova kandidata za linije koje delimično dele blok kodiranja mogu se signalizirati u toku bitova. Kao primer, to da li će se kao kandidat za liniju koristiti kosa linija koja ima veći ugao od dijagonalne linije i/ili kosa linija koja ima manji ugao od dijagonalne linije može se odrediti korišćenjem 1-bitne zastavice.
[0770] Alternativno, najmanje jedan od broja, uglova ili lokacija linija koje dele blok kodiranja može se adaptivno odrediti na osnovu najmanje jednog od režima inter-predikcije bloka kodiranja, režima inter-predikcije, lokacije dostupnog kandidata za spajanje ili aspekta deljenja susednog bloka.
[0771] Kada je blok kodiranja podeljen na mnoštvo jedinica predikcije, intra-predikcija ili inter-predikcija se mogu sprovesti na jedinicama predikcije.
[0773] Slika 33 je dijagram koji prikazuje primer deljenja bloka kodiranja na mnoštvo jedinica predikcije korišćenjem dijagonalne linije.
[0775] Kao u primerima prikazanim na slikama 33A i 33B, blok kodiranja se može podeliti na dve trougaone jedinice predikcije korišćenjem dijagonalne linije.
[0777] Slike 33A i 33B prikazuju da je blok kodiranja podeljen na dve jedinice predikcije korišćenjem dijagonalne linije koja spaja dva temena bloka kodiranja. Međutim, blok kodiranja se može podeliti na dve jedinice predikcije korišćenjem kose linije koja ima najmanje jedan kraj koji ne prolazi kroz teme bloka kodiranja.
[0779] Slika 34 je dijagram koji prikazuje primer deljenja bloka kodiranja na dve jedinice predikcije.
[0781] Kao u primerima prikazanim na slikama 34A i 34B, blok kodiranja se može podeliti na dve jedinice predikcije korišćenjem kose linije sa oba kraja koja su neprekidna sa gornjom ivicom i donjom ivicom bloka kodiranja.
[0783] Alternativno, kao u primerima prikazanim na slikama 34C i 34D, blok kodiranja se može podeliti na dve jedinice predikcije korišćenjem kose linije sa oba kraja koja su neprekidna sa levom ivicom i desnom ivicom bloka kodiranja.
[0785] Alternativno, blok kodiranja se može podeliti na dva bloka predikcije različitih veličina. Kao primer, postavljanjem kose linije koja deli blok kodiranja tako da bude neprekidna sa dve ivice koje formiraju jedno teme, blok kodiranja se može podeliti na dve jedinice predikcije različitih veličina.
[0787] Slika 35 prikazuje primere u kojima je blok kodiranja podeljen na mnoštvo blokova predikcije različitih veličina.
[0788] Kao u primerima prikazanim na slikama 35A i 35B, postavljanjem dijagonalne linije koja spaja gornji levi deo i donji desni deo bloka kodiranja tako da prolazi kroz levu ivicu, desnu ivicu, gornju ivicu ili donju ivicu bloka kodiranja, umesto da prolazi kroz gornji levi ugao ili donji desni ugao bloka kodiranja, blok kodiranja se može podeliti na dve jedinice predikcije različitih veličina.
[0790] Alternativno, kao u primerima prikazanim na slikama 35C i 35D, postavljanjem dijagonalne linije koja spaja gornji desni deo i donji levi deo bloka kodiranja tako da prolazi kroz levu ivicu, desnu ivicu, gornju ivicu ili donju ivicu bloka kodiranja, umesto da prolazi kroz gornji levi ugao ili donji desni ugao bloka kodiranja, blok kodiranja se može podeliti na dve jedinice predikcije različitih veličina.
[0792] Svaka od jedinica predikcije generisanih deljenjem bloka kodiranja naziva se „N-tom jedinicom predikcije”. Kao primer, u primerima prikazanim na slikama od 33 do 35, PU1 se može definisati kao prva jedinica predikcije, a PU2 se može definisati kao druga jedinica predikcije. Prva jedinica predikcije može se odnositi na jedinicu predikcije koja uključuje uzorak lociran u donjem levom delu bloka kodiranja ili uzorak lociran u gornjem levom delu bloka kodiranja, a druga jedinica predikcije može se odnositi na jedinicu predikcije koja uključuje uzorak lociran u gornjem desnom delu bloka kodiranja ili uzorak lociran u donjem desnom delu bloka kodiranja.
[0794] Obrnuto, jedinica predikcije koja uključuje uzorak lociran u gornjem desnom delu bloka kodiranja ili uzorak lociran u donjem desnom delu bloka kodiranja može se definisati kao prva jedinica predikcije, a jedinica predikcije koja uključuje uzorak lociran u donjem levom delu bloka kodiranja ili uzorak lociran u gornjem levom delu bloka kodiranja može se definisati kao druga jedinica predikcije.
[0796] Sledeća otelotvorenja biće opisana sa fokusom na primer deljenja korišćenjem dijagonalne linije. Posebno, deljenje bloka kodiranja na dve jedinice predikcije korišćenjem dijagonalne linije, u skladu sa pronalaskom iz zahteva, nazivaće se dijagonalnim deljenjem ili trougaonim deljenjem, a jedinica predikcije generisana na osnovu dijagonalnog deljenja nazivaće se trougaonom jedinicom predikcije. Međutim, razumeće se da se sledeća otelotvorenja mogu primeniti čak i na primer deljenja korišćenjem kose linije koja ima ugao različit od ugla vertikalne linije, horizontalne linije ili dijagonalne linije.
[0797] To da li će se na bloku kodiranja primeniti dijagonalno deljenje može se odrediti na osnovu najmanje jednog od tipa isečka, maksimalnog broja kandidata za spajanje koje lista kandidata za spajanje može da uključi, veličine bloka kodiranja, oblika bloka kodiranja, režima prediktivnog kodiranja bloka kodiranja ili aspekta deljenja roditeljskog čvora.
[0799] Kao primer, to da li će se na bloku kodiranja primeniti dijagonalno deljenje može se odrediti na osnovu toga da li je tekući isečak tipa B. Dijagonalno deljenje može biti dozvoljeno samo kada je tekući isečak tipa B.
[0801] Alternativno, to da li će se na bloku kodiranja primeniti dijagonalno deljenje može se odrediti na osnovu toga da li je maksimalni broj kandidata za spajanje uključenih u listu kandidata za spajanje dva ili više. Dijagonalno deljenje može biti dozvoljeno samo kada je maksimalni broj kandidata za spajanje uključenih u listu kandidata za spajanje dva ili više.
[0803] Alternativno, kada je najmanje jedna od širine ili visine veća od 64 u hardverskoj implementaciji, nedostatak je što se jedinici za obradu podataka koja ima veličinu 64×64 pristupa redundantno. Shodno tome, kada je najmanje jedna od širine ili visine bloka kodiranja veća od pragovne vrednosti, bloku kodiranja se ne mora dozvoliti da bude podeljen na mnoštvo blokova predikcije. Kao primer, kada je najmanje jedna od visine ili širine bloka kodiranja veća od 64, dijagonalno deljenje se ne mora koristiti.
[0805] Alternativno, to da li će se na bloku kodiranja primeniti dijagonalno deljenje može se odrediti na osnovu najmanje jednog od toga da li je broj uzoraka uključenih u blok kodiranja manji od prve pragovne vrednosti ili jednak njoj, ili da li je broj uzoraka uključenih u blok kodiranja veći od druge pragovne vrednosti ili jednak njoj. Kao primer, kada je broj uzoraka uključenih u blok kodiranja manji od prve pragovne vrednosti ili jednak njoj, ili kada je broj uzoraka uključenih u blok kodiranja veći od druge pragovne vrednosti ili jednak njoj, može se izvršiti podešavanje tako da se dijagonalno deljenje ne primenjuje na blok kodiranja.
[0806] Alternativno, to da li će se na bloku kodiranja primeniti dijagonalno deljenje može se odrediti na osnovu toga da li je odnos širine i visine bloka kodiranja manji od prve pragovne vrednosti ili da li je odnos širine i visine bloka kodiranja veći od druge pragovne vrednosti. Ovde se odnos širine i visine whRatio bloka kodiranja može odrediti kao odnos između širine CbW i visine CbH bloka kodiranja, kao što je prikazano u jednačini 21 u nastavku.
[0807]
[0810] Druga pragovna vrednost može biti recipročna vrednost prve pragovne vrednosti. Kao primer, kada je prva pragovna vrednost k, druga pragovna vrednost može biti 1/k.
[0812] Dijagonalno deljenje se može primeniti na blok kodiranja samo kada se odnos širine i visine bloka kodiranja nalazi između prve pragovne vrednosti i druge pragovne vrednosti.
[0814] Alternativno, trougaono deljenje se može koristiti samo kada je odnos širine i visine bloka kodiranja manji od prve pragovne vrednosti ili veći od druge pragovne vrednosti. Kao primer, kada je prva pragovna vrednost 16, dijagonalno deljenje ne mora biti dozvoljeno za blok kodiranja sa veličinom 64×4 ili 4×64.
[0816] Alternativno, to da li će se dozvoliti dijagonalno deljenje može se odrediti na osnovu aspekta deljenja roditeljskog čvora. Kao primer, kada je blok kodiranja, koji je roditeljski čvor, podeljen na osnovu deljenja po kvad-stablu, dijagonalno deljenje se može primeniti na blok kodiranja koji je lisni čvor. Sa druge strane, kada je blok kodiranja, koji je roditeljski čvor, podeljen na osnovu deljenja po binarnom stablu ili deljenja po ternarnom stablu, može se izvršiti podešavanje tako da dijagonalno deljenje nije dozvoljeno za blok kodiranja koji je lisni čvor.
[0818] Alternativno, to da li će se dozvoliti dijagonalno deljenje može se odrediti na osnovu režima prediktivnog kodiranja bloka kodiranja. Kao primer, dijagonalno deljenje može biti dozvoljeno samo kada je blok kodiranja kodiran kroz intra-predikciju, kada je blok kodiranja kodiran kroz inter-predikciju ili kada je blok kodiranja kodiran u unapred definisanom režimu inter-predikcije. Ovde definisani režim inter-predikcije može ukazivati na najmanje jedan od režima spajanja, režima predikcije vektora kretanja, afinog režima spajanja ili afinog režima predikcije vektora kretanja.
[0820] Alternativno, to da li će se dozvoliti dijagonalno deljenje može se odrediti na osnovu veličine regiona za paralelnu obradu. Kao primer, kada je veličina bloka kodiranja veća od veličine regiona za paralelnu obradu, dijagonalno deljenje se ne mora koristiti.
[0821] To da li će se na bloku kodiranja primeniti dijagonalno deljenje može se odrediti uzimajući u obzir dva ili više od gorenavedenih uslova.
[0823] Pored toga, informacije koje ukazuju na to da li treba dozvoliti dijagonalno deljenje mogu se signalizirati u toku bitova. Te informacije se mogu signalizirati na nivou sekvence, slike, isečka ili bloka. Te informacije ukazuju na to da je dijagonalno deljenje dozvoljeno, a dijagonalno deljenje se može primeniti na blok kodiranja samo kada je ispunjen najmanje jedan od gorenavedenih uslova.
[0825] Kada se odredi da se na bloku kodiranja primeni dijagonalno deljenje, informacije koje ukazuju na broj ili lokacije linija koje dele blok kodiranja mogu se signalizirati u toku bitova.
[0827] Kao primer, kada je blok kodiranja podeljen dijagonalnom linijom, informacije koje ukazuju na smer dijagonalne linije koja deli blok kodiranja mogu se signalizirati u toku bitova. Kao primer, zastavica triangle_partition_type_flag, koja ukazuje na smer dijagonalne linije, može se signalizirati u toku bitova. Zastavica ukazuje na to da li je blok kodiranja podeljen dijagonalnom linijom koja spaja gornji levi deo i donji desni deo ili dijagonalnom linijom koja spaja gornji desni deo i donji levi deo. Deljenje bloka kodiranja dijagonalnom linijom koja spaja gornji levi deo i donji desni deo može se nazvati tipom levo-trougaonog deljenja, a deljenje bloka kodiranja dijagonalnom linijom koja spaja gornji desni deo i donji levi deo može se nazvati tipom desno-trougaonog deljenja. Kao primer, vrednost zastavice koja je 0 može ukazivati na to da je tip deljenja bloka kodiranja tip levo-trougaonog deljenja, a vrednost zastavice koja je 1 može ukazivati na to da je tip deljenja bloka kodiranja tip desno-trougaonog deljenja.
[0829] Informacije koje ukazuju na tip deljenja bloka kodiranja mogu se signalizirati na nivou bloka kodiranja. Shodno tome, tip deljenja se može odrediti za svaki blok kodiranja na koji se primenjuje dijagonalno deljenje.
[0831] Kao drugi primer, informacije koje ukazuju na tip deljenja za sekvencu, sliku, isečak, pločicu ili jedinicu stabla kodiranja mogu se signalizirati. U ovom slučaju, tip deljenja blokova kodiranja na koje se primenjuje dijagonalno deljenje može se postaviti identično u sekvenci, slici, isečku, pločici ili jedinici stabla kodiranja.
[0832] Alternativno, informacije za određivanje tipa deljenja prve jedinice kodiranja na koju treba primeniti dijagonalno deljenje u jedinici stabla kodiranja mogu se kodirati i signalizirati, a može se izvršiti podešavanje tako da druga i kasnije jedinice kodiranja na koje treba primeniti dijagonalno deljenje koriste isti tip deljenja kao i prva jedinica kodiranja.
[0834] Kao drugi primer, tip deljenja bloka kodiranja može se odrediti na osnovu tipa deljenja susednog bloka. Ovde susedni blok može uključivati najmanje jedan od susednog bloka susednog gornjem levom uglu bloka kodiranja, susednog bloka susednog gornjem desnom uglu bloka kodiranja, susednog bloka susednog donjem levom uglu bloka kodiranja, susednog bloka koji se nalazi iznad bloka kodiranja ili susednog bloka koji se nalazi levo od bloka kodiranja. Kao primer, tip deljenja tekućeg bloka može se postaviti da bude isti kao i tip deljenja susednog bloka. Alternativno, tip deljenja tekućeg bloka može se odrediti na osnovu toga da li je tip levo-trougaonog deljenja primenjen na gornji levi susedni blok ili da li je tip desno-trougaonog deljenja primenjen na gornji desni susedni blok ili donji levi susedni blok.
[0836] Radi sprovođenja kompenzacije predikcije kretanja za prvu trougaonu jedinicu predikcije i drugu trougaonu jedinicu predikcije, mogu se izvesti informacije o kretanju za svaku od prve trougaone jedinice predikcije i druge trougaone jedinice predikcije. U ovom slučaju, informacije o kretanju prve trougaone jedinice predikcije i druge trougaone jedinice predikcije mogu se izvesti iz kandidata za spajanje uključenih u listu kandidata za spajanje. Da bi se opšta lista kandidata za spajanje razlikovala od liste kandidata za spajanje koja se koristi za izvođenje informacija o kretanju trougaonih jedinica predikcije, lista kandidata za spajanje za izvođenje informacija o kretanju trougaonih jedinica predikcije naziva se listom trougaonih kandidata za spajanje, a kandidat za spajanje uključen u listu trougaonih kandidata za spajanje naziva se trougaonim kandidatom za spajanje. Međutim, korišćenje goreopisanog postupka izvođenja kandidata za spajanje i postupka konfigurisanja liste kandidata za spajanje za postupak konfigurisanja trougaonih kandidata za spajanje i liste trougaonih kandidata za spajanje takođe je moguće.
[0838] [0371] Informacije za određivanje maksimalnog broja trougaonih kandidata za spajanje koje lista trougaonih kandidata za spajanje može da uključi mogu se signalizirati u toku bitova. Te informacije mogu ukazivati na razliku između maksimalnog broja kandidata za spajanje koje lista kandidata za spajanje može da uključi i maksimalnog broja trougaonih kandidata za spajanje koje lista trougaonih kandidata za spajanje može da uključi.
[0840] Trougaoni kandidati za spajanje mogu se izvesti iz prostornih susednih blokova i vremenskih susednih blokova bloka kodiranja.
[0842] Slika 36 je dijagram koji prikazuje susedne blokove koji se koriste za izvođenje trougaonog kandidata za spajanje.
[0844] Trougaoni kandidat za spajanje može se izvesti korišćenjem najmanje jednog od susednog bloka koji se nalazi iznad bloka kodiranja, susednog bloka koji se nalazi levo od bloka kodiranja ili kolociranog bloka uključenog u sliku različitu od slike bloka kodiranja. Gornji susedni blok može uključivati najmanje jedan od bloka koji uključuje uzorak (xCb+CbW-1, yCb-1) lociran iznad bloka kodiranja, bloka koji uključuje uzorak (xCb+CbW, yCb-1) lociran iznad bloka kodiranja i bloka koji uključuje uzorak (xCb-1, yCb-1) lociran iznad bloka kodiranja. Levi susedni blok može uključivati najmanje jedan od bloka koji uključuje uzorak (xCb-1, yCb+CbH-1) lociran levo od bloka kodiranja ili bloka koji uključuje uzorak (xCb-1, yCb+CbH) lociran levo od bloka kodiranja. Kolocirani blok se može odrediti pomoću jednog od bloka koji uključuje uzorak (xCb+CbW, yCb+CbH) susedan gornjem desnom uglu bloka kodiranja u kolociranoj slici ili bloka koji uključuje uzorak (xCb/2, yCb/2) lociran u centru bloka kodiranja u kolociranoj slici.
[0846] Susedni blokovi se mogu otkrivati po unapred definisanom redosledu, a trougaoni kandidati za spajanje mogu formirati listu trougaonih kandidata za spajanje po tom unapred definisanom redosledu. Kao primer, trougaoni kandidati za spajanje se mogu otkrivati po redosledu B1, A1, B0, A0, C0, B2 i C1 radi formiranja liste trougaonih kandidata za spajanje.
[0848] Informacije o kretanju trougaonih jedinica predikcije mogu se izvesti na osnovu liste trougaonih kandidata za spajanje. To jest, trougaone jedinice predikcije mogu deliti jednu listu trougaonih kandidata za spajanje.
[0850] [0377] Informacije za specifikovanje najmanje jednog od trougaonih kandidata za spajanje uključenih u listu trougaonih kandidata za spajanje mogu se signalizirati u toku bitova radi izvođenja informacija o kretanju trougaone jedinice za spajanje. Kao primer, informacije o indeksu merge_triangle_idx, koje služe za specifikovanje najmanje jednog od trougaonih kandidata za spajanje, mogu se signalizirati u toku bitova.
[0852] Informacije o indeksu mogu specifikovati kombinaciju kandidata za spajanje prve trougaone jedinice predikcije i kandidata za spajanje druge trougaone jedinice predikcije. Kao primer, tabela 3 predstavlja kombinacije kandidata za spajanje koje odgovaraju informacijama o indeksu merge_triangle_idx.
[0853] [Tabela 3]
[0855]
[0858] Informacije o indeksu merge_triangle_idx koje imaju vrednost 1 predstavljaju da se informacije o kretanju prve trougaone jedinice predikcije izvode iz kandidata za spajanje sa indeksom 1 i da se informacije o kretanju druge trougaone jedinice predikcije izvode iz kandidata za spajanje sa indeksom 0. Kroz informacije o indeksu merge_triangle_idx mogu se odrediti trougaoni kandidat za spajanje za izvođenje informacija o kretanju prve trougaone jedinice predikcije i trougaoni kandidat za spajanje za izvođenje informacija o kretanju druge trougaone jedinice predikcije.
[0859] Tip deljenja bloka kodiranja na koji se primenjuje dijagonalno deljenje može se odrediti informacijama o indeksu. To jest, informacije o indeksu mogu specifikovati kombinaciju kandidata za spajanje prve trougaone jedinice predikcije, kandidata za spajanje druge trougaone jedinice predikcije i smera deljenja bloka kodiranja. Kada se tip deljenja bloka kodiranja određuje informacijama o indeksu, informacije triangle_partition_type_flag, koje ukazuju na smer dijagonalne linije koja deli blok kodiranja, ne moraju se kodirati. Tabela 4 predstavlja tip deljenja bloka kodiranja u informacijama o indeksu merge_triangle_idx.
[0860] [Tabela 4]
[0862]
[0865] Promenljiva TriangleDir sa vrednošću 0 predstavlja da se na blok kodiranja primenjuje tip levo-trougaonog deljenja, a promenljiva TriangleDir sa vrednošću 1 predstavlja da se na blok kodiranja primenjuje tip desno-trougaonog deljenja. U kombinaciji tabele 3 i tabele 4, informacije o indeksu merge_triangle_idx mogu se podesiti tako da specifikuju kombinaciju kandidata za spajanje prve trougaone jedinice predikcije, kandidata za spajanje druge trougaone jedinice predikcije i smera deljenja bloka kodiranja.
[0867] [0382] Kao drugi primer, mogu se signalizirati samo informacije o indeksu za jednu od prve trougaone jedinice predikcije i druge trougaone jedinice predikcije, a indeks trougaonog kandidata za spajanje za onu drugu od prve trougaone jedinice predikcije i druge trougaone jedinice predikcije može se odrediti na osnovu tih informacija o indeksu. Kao primer, trougaoni kandidat za spajanje prve trougaone jedinice predikcije može se odrediti na osnovu informacija o indeksu merge_triangle_idx, koje ukazuju na indeks jednog od trougaonih kandidata za spajanje. Takođe, trougaoni kandidat za spajanje druge trougaone jedinice predikcije može se specifikovati na osnovu merge_triangle_idx. Kao primer, trougaoni kandidat za spajanje druge trougaone jedinice predikcije može se izvesti dodavanjem pomeraja na informacije o indeksu merge_triangle_idx ili njihovim oduzimanjem od njih. Pomeraj može biti ceo broj kao što je 1 ili 2. Kao primer, trougaoni kandidat za spajanje sa indeksom jednakim merge_triangle_idx plus 1 može se odrediti kao trougaoni kandidat za spajanje druge trougaone jedinice predikcije. Kada merge_triangle_idx ukazuje na trougaonog kandidata za spajanje sa najvećom vrednošću indeksa među trougaonim kandidatima za spajanje, informacije o kretanju druge trougaone jedinice predikcije mogu se izvesti iz trougaonog kandidata za spajanje sa indeksom 0 ili trougaonog kandidata za spajanje sa indeksom jednakim merge_triangle_idx minus 1.
[0869] Alternativno, informacije o kretanju druge trougaone jedinice predikcije mogu se izvesti iz trougaonog kandidata za spajanje koji ima istu referentnu sliku kao i trougaoni kandidat za spajanje prve trougaone jedinice predikcije specifikovan informacijama o indeksu. Ovde trougaoni kandidat za spajanje koji ima istu referentnu sliku kao i trougaoni kandidat za spajanje prve trougaone jedinice predikcije može ukazivati na trougaonog kandidata za spajanje u kome je najmanje jedna od referentne slike L0 ili referentne slike L1 ista kao i kod trougaonog kandidata za spajanje prve trougaone jedinice predikcije. Kada postoji mnoštvo trougaonih kandidata za spajanje koji imaju istu referentnu sliku kao i trougaoni kandidat za spajanje prve trougaone jedinice predikcije, jedan od mnoštva trougaonih kandidata za spajanje može se izabrati na osnovu najmanje jednog od toga da li kandidat za spajanje uključuje dvosmerne informacije o kretanju ili vrednosti razlike između informacija o indeksu i indeksa tog kandidata za spajanje.
[0871] [0384] Kao drugi primer, informacije o indeksu mogu se signalizirati za svaku od prve trougaone jedinice predikcije i druge trougaone jedinice predikcije. U skladu sa pronalaskom iz zahteva, prve informacije o indeksu 1st_merge_idx, koje služe za određivanje trougaonog kandidata za spajanje prve trougaone jedinice predikcije, i druge informacije o indeksu 2nd_merge_idx, koje služe za određivanje trougaonog kandidata za spajanje druge trougaone jedinice predikcije, signaliziraju se u toku bitova. Informacije o kretanju prve trougaone jedinice predikcije izvode se iz trougaonog kandidata za spajanje određenog na osnovu prvih informacija o indeksu 1st_merge_idx, a informacije o kretanju druge trougaone jedinice predikcije izvode se iz trougaonog kandidata za spajanje određenog na osnovu drugog informacija o indeksu 2nd_merge_idx.
[0873] Prve informacije o indeksu 1st_merge_idx ukazuju na indeks jednog od trougaonih kandidata za spajanje uključenih u listu trougaonih kandidata za spajanje. Trougaoni kandidat za spajanje prve trougaone jedinice predikcije određuje se kao trougaoni kandidat za spajanje na koji ukazuju prve informacije o indeksu 1st_merge_idx.
[0875] U skladu sa pronalaskom iz zahteva, trougaoni kandidat za spajanje na koji ukazuju prve informacije o indeksu 1st_merge_idx ne može se koristiti kao trougaoni kandidat za spajanje druge trougaone jedinice predikcije. Shodno tome, druge informacije o indeksu 2nd_merge_idx druge trougaone jedinice predikcije ukazuju na indeks jednog od preostalih trougaonih kandidata za spajanje, osim trougaonog kandidata za spajanje na kojeg ukazuju prve informacije o indeksu. Kada je vrednost drugih informacija o indeksu 2nd_merge_idx manja od vrednosti prvih informacija o indeksu 1st_merge_idx, može se odrediti da je trougaoni kandidat za spajanje druge trougaone jedinice predikcije trougaoni kandidat za spajanje koji ima informacije o indeksu na koje ukazuju druge informacije o indeksu 2nd_merge_idx. Sa druge strane, kada je vrednost drugih informacija o indeksu 2nd_merge_idx veća od vrednosti prvih informacija o indeksu 1st_merge_idx ili jednaka njoj, određuje se da je trougaoni kandidat za spajanje druge trougaone jedinice predikcije trougaoni kandidat za spajanje sa indeksom koji ima vrednost dobijenu dodavanjem broja jedan na vrednost drugih informacija o indeksu 2nd_merge_idx.
[0877] [0387] U alternativnom primeru koji nije obuhvaćen pronalaskom iz zahteva, to da li će se signalizirati druge informacije o indeksu može se odrediti u zavisnosti od broja trougaonih kandidata za spajanje uključenih u listu trougaonih kandidata za spajanje. Kao primer, kada maksimalni broj trougaonih kandidata za spajanje koje lista trougaonih kandidata za spajanje može da uključi ne prelazi dva, signaliziranje drugih informacija o indeksu može se izostaviti. Kada se signaliziranje drugih informacija o indeksu izostavi, drugi trougaoni kandidat za spajanje može se izvesti dodavanjem pomeraja na prve informacije o indeksu ili njegovim oduzimanjem od njih. Kao primer, kada je maksimalni broj trougaonih kandidata za spajanje koje lista trougaonih kandidata za spajanje može da uključi dva, a prve informacije o indeksu ukazuju na indeks 0, drugi trougaoni kandidat za spajanje može se izvesti dodavanjem broja jedan na prve informacije o indeksu. Alternativno, kada je maksimalni broj trougaonih kandidata za spajanje koje lista trougaonih kandidata za spajanje može da uključi dva, a prve informacije o indeksu ukazuju na jedan, drugi trougaoni kandidat za spajanje može se izvesti oduzimanjem broja jedan od prvih informacija o indeksu.
[0879] U alternativnom primeru koji nije obuhvaćen pronalaskom iz zahteva, kada se signaliziranje drugih informacija o indeksu izostavi, druge informacije o indeksu se mogu postaviti kao podrazumevana vrednost. Ovde podrazumevana vrednost može biti jednaka nuli. Drugi trougaoni kandidat za spajanje može se izvesti upoređivanjem prvih informacija o indeksu i drugih informacija o indeksu. Kao primer, kandidat za spajanje sa indeksom 0 može se postaviti kao drugi trougaoni kandidat za spajanje kada su druge informacije o indeksu manje od prvih informacija o indeksu, a kandidat za spajanje sa indeksom 1 može se postaviti ako drugi trougaoni kandidat za spajanje kada su druge informacije o indeksu veće od prvih informacija o indeksu ili jednake njima.
[0881] Kada trougaoni kandidat za spajanje ima jednosmerne informacije o kretanju, jednosmerne informacije o kretanju trougaonog kandidata za spajanje mogu se postaviti kao informacije o kretanju trougaone jedinice predikcije. Sa druge strane, kada trougaoni kandidat za spajanje ima dvosmerne informacije o kretanju, samo jedna od informacija o kretanju L0 ili informacija o kretanju L1 može se postaviti kao informacija o kretanju trougaone jedinice predikcije. To da li će se izabrati informacije o kretanju L0 ili informacije o kretanju L1 može se odrediti na osnovu indeksa trougaonog kandidata za spajanje ili informacija o kretanju ostalih trougaonih jedinica predikcije.
[0883] [0390] Kao primer, kada je indeks trougaonog kandidata za spajanje paran broj, informacije o kretanju L0 trougaone jedinice predikcije mogu se postaviti na nulu, a informacije o kretanju L1 trougaonog kandidata za spajanje mogu se postaviti kao informacije o kretanju L1 trougaone jedinice predikcije. Sa druge strane, kada je indeks trougaonog kandidata za spajanje neparan broj, informacije o kretanju L1 trougaone jedinice predikcije mogu se postaviti na nulu, a informacije o kretanju L0 trougaonog kandidata za spajanje mogu se postaviti na nulu. Obrnuto, informacije o kretanju L0 trougaonog kandidata za spajanje mogu se postaviti kao informacije o kretanju L0 trougaone jedinice predikcije kada je indeks trougaonog kandidata za spajanje paran broj, a informacije o kretanju L1 trougaonog kandidata za spajanje mogu se postaviti ako informacije o kretanju L1 trougaone jedinice predikcije kada je indeks trougaonog kandidata za spajanje neparan broj. Alternativno, informacije o kretanju L0 trougaonog kandidata za spajanje mogu se postaviti kao informacije o kretanju L0 prve trougaone jedinice predikcije kada je trougaoni kandidat za spajanje za prvu trougaonu jedinicu predikcije paran broj, a informacije o kretanju L1 trougaonog kandidata za spajanje mogu se postaviti kao informacije o kretanju L1 druge trougaone jedinice predikcije kada je trougaoni kandidat za spajanje za drugu trougaonu jedinicu predikcije neparan broj.
[0885] Alternativno, kada prva trougaona jedinica predikcije ima informacije o kretanju L0, informacije o kretanju L0 druge trougaone jedinice predikcije mogu se postaviti na nulu, a informacije o kretanju L1 trougaonog kandidata za spajanje mogu se postaviti kao informacije L1 druge trougaone jedinice predikcije. Sa druge strane, kada prva trougaona jedinica predikcije ima informacije o kretanju L1, informacije o kretanju L1 druge trougaone jedinice predikcije mogu se postaviti na nulu, a informacije o kretanju L0 trougaonog kandidata za spajanje mogu se postaviti kao informacije o kretanju L0 druge trougaone jedinice predikcije.
[0887] Može se izvršiti podešavanje tako da se lista trougaonih kandidata za spajanje radi izvođenja informacija o kretanju prve trougaone jedinice predikcije razlikuje od liste trougaonih kandidata za spajanje radi izvođenja informacija o kretanju druge trougaone jedinice predikcije.
[0889] Kao primer, kada se trougaoni kandidat za spajanje radi izvođenja informacija o kretanju prve trougaone jedinice predikcije specifikuje iz liste trougaonih kandidata za spajanje na osnovu informacija o indeksu za prvu trougaonu jedinicu predikcije, informacije o kretanju druge trougaone jedinice predikcije mogu se izvesti korišćenjem trougaone liste spajanja koja uključuje preostale trougaone kandidate za spajanje osim trougaonog kandidata za spajanje na kojeg ukazuju informacije o indeksu. Detaljnije, informacije o kretanju druge trougaone jedinice predikcije mogu se izvesti iz jednog od preostalih trougaonih kandidata za spajanje.
[0891] [0394] Shodno tome, maksimalni broj trougaonih kandidata za spajanje koje lista trougaonih kandidata za spajanje prve trougaone jedinice predikcije može da uključi može se razlikovati od maksimalnog broja trougaonih kandidata za spajanje koje lista trougaonih kandidata za spajanje druge trougaone jedinice predikcije može da uključi. Kao primer, kada lista trougaonih kandidata za spajanje prve trougaone jedinice predikcije uključuje M kandidata za spajanje, lista trougaonih kandidata za spajanje druge trougaone jedinice predikcije može uključivati M-1 kandidata za spajanje, osim trougaonog kandidata za spajanje na kojeg ukazuju informacije o indeksu prve trougaone jedinice predikcije.
[0893] Kao drugi primer, dok se kandidati za spajanje trougaonih jedinica predikcije izvode na osnovu susednih blokova koji su susedni bloku kodiranja, dostupnost susednih blokova može se odrediti uzimajući u obzir oblike ili lokacije trougaonih jedinica predikcije.
[0895] Slika 37 je dijagram za opisivanje primera određivanja dostupnosti susednog bloka za svaku trougaonu jedinicu predikcije.
[0897] Susedni blok koji nije susedan prvoj trougaonoj jedinici predikcije može se podesiti da bude nedostupan za prvu trougaonu jedinicu predikcije, a susedni blok koji nije susedan drugoj trougaonoj jedinici predikcije može se podesiti da bude nedostupan za drugu trougaonu jedinicu predikcije.
[0899] Na primer, kao u primeru prikazanom na slici 37A, kada se na blok kodiranja primenjuje tip levo-trougaonog deljenja, može se odrediti da su blokovi A1, A0 i A2, koji su susedni prvoj trougaonoj jedinici predikcije među blokovima koji su susedni blokovima kodiranja, dostupni za prvu trougaonu jedinicu predikcije, a da blokovi B0 i B1 nisu dostupni za prvu trougaonu jedinicu predikcije. Shodno tome, lista trougaonih kandidata za spajanje za prvu trougaonu jedinicu predikcije može uključivati trougaone kandidate za spajanje izvedene iz blokova A1, A0 i A2, ali ne mora uključivati trougaone kandidate za spajanje izvedene iz blokova B0 i B1.
[0901] Kao u primeru prikazanom na slici 37B, kada se na blok kodiranja primenjuje tip levo-trougaonog deljenja, može se odrediti da su blokovi B0 i B1, koji su susedni drugoj trougaonoj jedinici predikcije, dostupni za drugu trougaonu jedinicu predikcije, a da blokovi A1, A0 i A2 nisu dostupni za drugu trougaonu jedinicu predikcije. Shodno tome, lista trougaonih kandidata za spajanje za drugu trougaonu jedinicu predikcije može uključivati trougaone kandidate za spajanje izvedene iz blokova B0 i B1, ali ne mora uključivati trougaone kandidate za spajanje izvedene iz blokova A1, A0 i A2.
[0902] Prema tome, broj ili opseg trougaonih kandidata za spajanje koje trougaona jedinica predikcije može da koristi može se odrediti na osnovu najmanje jednog od lokacije trougaone jedinice predikcije ili tipa deljenja bloka kodiranja.
[0904] Kao drugi primer, režim spajanja se može primeniti na samo jednu od prve trougaone jedinice predikcije i druge trougaone jedinice predikcije. Takođe, informacije o kretanju one druge od prve trougaone jedinice predikcije i druge trougaone jedinice predikcije mogu se postaviti da budu iste kao informacije o kretanju trougaone jedinice predikcije na koju se primenjuje režim spajanja, ili se mogu izvesti prečišćavanjem informacija o kretanju trougaone jedinice predikcije na koju se primenjuje režim spajanja.
[0906] Kao primer, indeks referentne slike i vektor kretanja prve trougaone jedinice predikcije mogu se izvesti na osnovu trougaonog kandidata za spajanje, a vektor kretanja druga trougaone jedinice predikcije može se izvesti prečišćavanjem vektora kretanja prve trougaone jedinice predikcije. Kao primer, vektor kretanja druge trougaone jedinice predikcije može se izvesti dodavanjem vektora prečišćenog kretanja {Rx, Ry} na vektor kretanja {mvD1LXx, mvD1LXy} prve trougaone jedinice predikcije ili njegovim oduzimanjem od njega. Indeks referentne slike druge trougaone jedinice predikcije može se postaviti da bude isti kao indeks referentne slike prve trougaone jedinice predikcije.
[0908] Informacije za određivanje vektora prečišćenog kretanja koji ukazuje na razliku između vektora kretanja prve trougaone jedinice predikcije i vektora kretanja druge trougaone jedinice predikcije mogu se signalizirati u toku bitova. Te informacije mogu uključivati najmanje jedno od informacija koje ukazuju na veličinu vektora prečišćenog kretanja ili informacija koje ukazuju na znak vektora prečišćenog kretanja.
[0910] Alternativno, znak vektora prečišćenog kretanja može se izvesti na osnovu najmanje jednog od tipa deljenja primenjenog na blok kodiranja, lokacije trougaone jedinice predikcije ili indeksa trougaone jedinice predikcije.
[0912] Kao drugi primer, mogu se signalizirati vektor kretanja i indeks referentne slike za jednu od prve trougaone jedinice predikcije i druge trougaone jedinice predikcije. Vektor kretanja one druge od prve trougaone jedinice predikcije i druge trougaone jedinice predikcije može se izvesti prečišćavanjem signaliziranog vektora kretanja.
[0913] Kao primer, indeks referentne slike i vektor kretanja prve trougaone jedinice predikcije mogu se odrediti na osnovu informacija signaliziranih iz toka bitova. Takođe, vektor kretanja druge trougaone jedinice predikcije može se izvesti prečišćavanjem vektora kretanja prve trougaone jedinice predikcije. Kao primer, vektor kretanja druge trougaone jedinice predikcije može se izvesti dodavanjem vektora prečišćenog kretanja {Rx, Ry} na vektor kretanja {mvD1LXx, mvD1LXy} prve trougaone jedinice predikcije ili njegovim oduzimanjem od njega. Indeks referentne slike druge trougaone jedinice predikcije može se postaviti da bude isti kao indeks referentne slike prve trougaone jedinice predikcije.
[0915] Predikcija sa kompenzacijom kretanja može se sprovesti na bloku kodiranja na osnovu informacija o kretanju prve trougaone jedinice predikcije i informacija o kretanju druge trougaone jedinice predikcije. U ovom slučaju, na granici između prve trougaone jedinice predikcije i druge trougaone jedinice predikcije može doći do pogoršanja kvaliteta slike. Kao primer, kontinuitet kvaliteta slike može se pogoršati u blizini ivice koja je prisutna na granici između prve trougaone jedinice predikcije i druge trougaone jedinice predikcije. Da bi se smanjilo pogoršanje kvaliteta slike na granici, prediktivni uzorak se može izvesti kroz ponderisanu predikciju ili filter za glačanje.
[0917] Prediktivni uzorak u bloku kodiranja na koji se primenjuje dijagonalno deljenje može se izvesti na osnovu operacije ponderisane sume prvog prediktivnog uzorka dobijenog na osnovu informacija o kretanju prve trougaone jedinice predikcije i drugog prediktivnog uzorka dobijenog na osnovu informacija o kretanju druge trougaone jedinice predikcije. Alternativno, prediktivni uzorak prve trougaone jedinice predikcije može se izvesti iz prvog prediktivnog bloka određenog na osnovu informacija o kretanju prve trougaone jedinice predikcije, a prediktivni uzorak druge trougaone jedinice predikcije može se izvesti iz drugog prediktivnog bloka određenog na osnovu informacija o kretanju druge trougaone jedinice predikcije. U ovom slučaju, prediktivni uzorak koji se nalazi u graničnom regionu između prve trougaone jedinice predikcije i druge trougaone jedinice predikcije može se izvesti na osnovu operacije ponderisane sume prvog prediktivnog uzorka uključenog u prvi prediktivni blok i drugog prediktivnog uzorka uključenog u drugi prediktivni blok. Kao primer, jednačina 22 u nastavku predstavlja primer izvođenja prediktivnih uzoraka prve trougaone jedinice predikcije i drugog trougaone jedinice predikcije.
[0918]
[0921] U jednačini 22, P1 predstavlja prvi prediktivni uzorak, a P2 predstavlja drugi prediktivni uzorak. w1 predstavlja težinu primenjenu na prvi prediktivni uzorak, a (1-w1) predstavlja težinu primenjenu na drugi prediktivni uzorak. Kao u primeru prikazanom u jednačini 22, težina primenjena na drugi prediktivni uzorak može se izvesti oduzimanjem težine primenjene na prvi prediktivni uzorak od konstantne vrednosti.
[0923] Kada se na blok kodiranja primenjuje tip levo-trougaonog deljenja, granični region može uključivati prediktivne uzorke koji imaju istu x-koordinatu i istu y-koordinatu. Sa druge strane, kada se na blok kodiranja primenjuje tip desno-trougaonog deljenja, granični region može uključivati prediktivne uzorke od kojih svaki ima x-koordinatu i y-koordinatu čiji je zbir veći od prve pragovne vrednosti ili jednak njoj, a manji od druge pragovne vrednosti ili jednak njoj.
[0925] Veličina graničnog regiona može se odrediti na osnovu najmanje jednog od veličine bloka kodiranja, oblika bloka kodiranja, informacija o kretanju trougaonih jedinica predikcije, vrednosti razlike vektora kretanja trougaonih jedinica predikcije, POC referentne slike ili vrednosti razlike između prvog prediktivnog uzorka i drugog prediktivnog uzorka na dijagonalnoj granici.
[0927] Slike 38 i 39 su dijagrami koji prikazuju primer izvođenja prediktivnog uzorka na osnovu operacije ponderisane sume prvog prediktivnog uzorka i drugog prediktivnog uzorka. Slika 38 ilustruje slučaj u kome se na blok kodiranja primenjuje tip levo-trougaonog deljenja, a slika 39 ilustruje slučaj u kome se na blok kodiranja primenjuje tip desno-trougaonog deljenja. Takođe, slike 38A i 39A su dijagrami koji prikazuju aspekt predikcije za luma komponentu, a slike 38B i 39B su dijagrami koji prikazuju aspekt predikcije za hroma komponentu.
[0929] [0413] Na prikazanim crtežima, broj napisan u prediktivnom uzorku koji se nalazi u blizini granice između prve jedinice predikcije i druge jedinice predikcije ukazuje na težinu primenjenu na prvi prediktivni uzorak. Kao primer, kada je broj napisan u prediktivnom uzorku jednak N, prediktivni uzorak se može izvesti primenom težine od N/8 na prvi prediktivni uzorak i primenom težine od 1-(N/8) na drugi prediktivni uzorak.
[0931] U negraničnom regionu, prvi prediktivni uzorak ili drugi prediktivni uzorak može se odrediti kao prediktivni uzorak. Sa osvrtom na primer sa slike 38, u regionu koji pripada prvoj trougaonoj jedinici predikcije među regionima gde je apsolutna razlika između xkoordinate i y-koordinate veća od pragovne vrednosti, prvi prediktivni uzorak izveden na osnovu informacija o kretanju prve trougaone jedinice predikcije može se definisati kao prediktivni uzorak. Sa druge strane, u regionu koji pripada drugoj trougaonoj jedinici predikcije među regionima gde je razlika između x-koordinate i y-koordinate veća od pragovne vrednosti, drugi prediktivni uzorak izveden na osnovu informacija o kretanju druge trougaone jedinice predikcije može se odrediti kao prediktivni uzorak.
[0933] Sa osvrtom na primer sa slike 39, u regionu gde je zbir x-koordinate i y-koordinate manji od prve pragovne vrednosti, prvi prediktivni uzorak izveden na osnovu informacija o kretanju prve trougaone jedinice predikcije može se definisati kao prediktivni uzorak. Sa druge strane, u regionu gde je zbir x-koordinate i y-koordinate veći od druge pragovne vrednosti, drugi prediktivni uzorak izveden na osnovu informacija o kretanju druge trougaone jedinice predikcije može se definisati kao prediktivni uzorak.
[0935] Pragovna vrednost za određivanje negraničnog regiona može se odrediti na osnovu najmanje jednog od veličine bloka kodiranja, oblika bloka kodiranja ili komponente boje. Kao primer, kada se pragovna vrednost za luma komponentu može postaviti na N, pragovna vrednost za hroma komponentu može se postaviti na N/2.
[0937] Prediktivni uzorci uključeni u granični region mogu se izvesti na osnovu operacije ponderisane sume prvog prediktivnog uzorka i drugog prediktivnog uzorka. U ovom slučaju, težina primenjena na prvi prediktivni uzorak i drugi prediktivni uzorak može se odrediti na osnovu najmanje jednog od lokacije prediktivnog uzorka, veličine bloka kodiranja, oblika bloka kodiranja ili komponente boje.
[0939] Na primer, kao u primeru prikazanom na slici 38A, prediktivni uzorci locirani na istoj x-koordinati i istoj y-koordinati mogu se izvesti primenom iste težine na prvi prediktivni uzorak i drugi prediktivni uzorak. Prediktivni uzorci kod kojih je apsolutna razlika između xkoordinate i y-koordinate jednaka jedan mogu se izvesti postavljanjem odnosa između težina primenjenih na prvi prediktivni uzorak i drugi prediktivni uzorak na (3:1) ili (1:3). Takođe, prediktivni uzorci kod kojih je apsolutna razlika između x-koordinate i y-koordinate jednaka dva mogu se izvesti postavljanjem odnosa između težina primenjenih na prvi prediktivni uzorak i drugi prediktivni uzorak na (7:1) ili (1:7).
[0941] Alternativno, kao u primeru prikazanom na slici 38B, prediktivni uzorci locirani na istoj x-koordinati i istoj y-koordinati mogu se izvesti primenom iste težine na prvi prediktivni uzorak i drugi prediktivni uzorak, a prediktivni uzorci kod kojih je apsolutna razlika između x-koordinate i y-koordinate jednaka jedan mogu se izvesti postavljanjem odnosa između težina primenjenih na prvi prediktivni uzorak i drugi prediktivni uzorak na (7:1) ili (1:7).
[0943] Na primer, kao u primeru prikazanom na slici 39A, prediktivni uzorci kod kojih je zbir x-koordinate i y-koordinate za jedan manji od širine ili visine bloka kodiranja mogu se izvesti primenom iste težine na prvi prediktivni uzorak i drugi prediktivni uzorak. Prediktivni uzorci kod kojih je zbir x-koordinate i y-koordinate jednak širini ili visini bloka kodiranja, ili za dva manji od nje, mogu se izvesti postavljanjem odnosa između težina primenjenih na prvi prediktivni uzorak i drugi prediktivni uzorak na (3:1) ili (1:3). Prediktivni uzorci kod kojih je zbir x-koordinate i y-koordinate za jedan veći ili za tri manji od širine ili visine bloka kodiranja mogu se izvesti postavljanjem odnosa između težina primenjenih na prvi prediktivni uzorak i drugi prediktivni uzorak na (7:1) ili (1:7).
[0945] Alternativno, kao u primeru prikazanom na slici 39B, prediktivni uzorci kod kojih je zbir x-koordinate i y-koordinate za jedan manji od širine ili visine bloka kodiranja mogu se izvesti primenom iste težine na prvi prediktivni uzorak i drugi prediktivni uzorak. Prediktivni uzorci kod kojih je zbir x-koordinate i y-koordinate jednak širini ili visini bloka kodiranja, ili za dva manji od nje, mogu se izvesti postavljanjem odnosa između težina primenjenih na prvi prediktivni uzorak i drugi prediktivni uzorak na (7:1) ili (1:7).
[0947] Kao drugi primer, težina se može odrediti uzimajući u obzir lokaciju prediktivnog uzorka ili oblik bloka kodiranja. Jednačine od 23 do 25 prikazuju primere izvođenja težine kada se na blok kodiranja primenjuje tip levo-trougaonog deljenja. Jednačina 23 prikazuje primer izvođenja težine primenjene na prvi prediktivni uzorak kada je blok kodiranja kvadratan.
[0948]
[0951] U jednačini 23, x i y predstavljaju lokaciju prediktivnog uzorka. Kada je blok kodiranja nekvadratan, težina primenjena na prvi prediktivni uzorak može se izvesti korišćenjem jednačine 24 ili jednačine 25 u nastavku. Jednačina 24 predstavlja slučaj u kome je širina bloka kodiranja veća od visine, a jednačina 25 predstavlja slučaj u kome je širina bloka kodiranja manja od visine.
[0953]
[0956] Kada se na blok kodiranja primenjuje tip desno-trougaonog deljenja, težina primenjena na prvi prediktivni uzorak može se odrediti korišćenjem jednačina od 26 do 28. Jednačina 26 prikazuje primer izvođenja težine primenjene na prvi prediktivni uzorak kada je blok kodiranja kvadratan.
[0958]
[0961] U jednačini 26, CbW predstavlja širinu bloka kodiranja. Kada je blok kodiranja nekvadratan, težina primenjena na prvi prediktivni uzorak može se izvesti korišćenjem jednačine 27 ili jednačine 28 u nastavku. Jednačina 27 predstavlja slučaj u kome je širina bloka kodiranja veća od visine, a jednačina 28 predstavlja slučaj u kome je širina bloka kodiranja manja od visine.
[0963]
[0966] U jednačini 27, CbH predstavlja visinu bloka kodiranja.
[0967] Kao u prikazanom primeru, među prediktivnim uzorcima u graničnom regionu, prediktivni uzorak uključen u prvu trougaonu jedinicu predikcije može se izvesti dodeljivanjem veće težine prvom prediktivnom uzorku nego drugom prediktivnom uzorku, a prediktivni uzorak uključen u drugu trougaonu jedinicu predikcije može se izvesti dodeljivanjem veće težine drugom prediktivnom uzorku nego prvom prediktivnom uzorku.
[0969] Kada se na blok kodiranja primenjuje dijagonalno deljenje, može se izvršiti podešavanje tako da se kombinovani režim predikcije, koji predstavlja kombinaciju režima intra-predikcije i režima spajanja, ne primenjuje na blok kodiranja.
[0971] Intra-predikcija služi za predviđanje tekućeg bloka korišćenjem rekonstruisanog uzorka čije je kodiranje ili dekodiranje završeno i koji se nalazi u blizini tekućeg
[0972] bloka. U ovom slučaju, rekonstruisani uzorak pre nego što se primeni filter unutar petlje može se koristiti za intra-predikciju tekućeg bloka.
[0974] Tehnika intra-predikcije uključuje intra-predikciju zasnovanu na matrici i normalnu intra-predikciju koja uzima u obzir usmerenost u odnosu na obližnji rekonstruisani uzorak. Informacije koje ukazuju na tehniku intra-predikcije tekućeg bloka mogu se signalizirati u toku bitova. Informacije mogu biti 1-bitna zastavica. Alternativno, tehnika intra-predikcije tekućeg bloka može se odrediti na osnovu najmanje jednog od lokacije, veličine ili oblika tekućeg bloka ili tehnike intra-predikcije susednog bloka. Kao primer, kada je tekući blok prisutan preko granice slike, može se izvršiti podešavanje tako da se intra-predikcija zasnovana na matrici ne primenjuje na tekući blok.
[0976] Intra-predikcija zasnovana na matrici može biti postupak dobijanja prediktivnog bloka tekućeg bloka na osnovu matričnog proizvoda između matrice unapred uskladištene u koderu i dekoderu i rekonstruisanih uzoraka u blizini tekućeg bloka. Informacije za specifikovanje jedne od mnoštva unapred uskladištenih matrica mogu se signalizirati u toku bitova. Dekoder može odrediti matricu za intra-predikciju tekućeg bloka na osnovu tih informacija i veličine tekućeg bloka.
[0978] [0432] Normalna intra-predikcija je postupak dobijanja prediktivnog bloka za tekući blok na osnovu neusmerenog režima intra-predikcije ili usmerenog režima intra-predikcije. Postupak sprovođenja intra-predikcije na osnovu normalne intra-predikcije biće detaljno opisan u nastavku teksta sa osvrtom na crteže.
[0980] Slika 40 je dijagram toka postupka intra-predikcije prema jednom otelotvorenju predmetnog pronalaska.
[0982] Referentna linija uzoraka tekućeg bloka može se odrediti (S4001). Referentna linija uzoraka odnosi se na skup referentnih uzoraka uključenih u k-tu liniju udaljenu od vrha i/ili leve strane tekućeg bloka. Referentni uzorci se mogu izvesti iz rekonstruisanih uzoraka čije je kodiranje ili dekodiranje završeno i koji se nalaze u blizini tekućeg bloka.
[0984] Informacije o indeksu radi identifikovanja referentne linije uzoraka tekućeg bloka među mnoštvom referentnih linija uzoraka mogu se signalizirati u toku bitova. Kao primer, informacije o indeksu intra_luma_ref_idx, koje služe za specifikovanje referentne linije uzoraka tekućeg bloka, mogu se signalizirati u toku bitova. Informacije o indeksu se mogu signalizirati u jedinicama blokova kodiranja.
[0986] Mnoštvo referentnih linija uzoraka može uključivati najmanje jednu od prve linije, druge linije, treće linije ili četvrte linije od vrha i/ili leve strane tekućeg bloka. Među mnoštvom referentnih linija uzoraka, referentna linija uzoraka koja se sastoji od reda koji je susedan vrhu tekućeg bloka i kolone koja je susedna levoj strani tekućeg bloka može se nazvati susednom referentnom linijom uzoraka, a ostale referentne linije uzoraka mogu se nazvati nesusednim referentnim linijama uzoraka.
[0988] Samo neke od mnoštva referentnih linija uzoraka mogu se izabrati kao referentna linija uzoraka tekućeg bloka. Kao primer, među mnoštvom referentnih linija uzoraka, preostale referentne linije uzoraka osim treće nesusedne referentne linije uzoraka mogu se postaviti kao kandidati za referentne linije uzoraka. Tabela 5 predstavlja indekse dodeljene kandidatima za referentne linije uzoraka.
[0989] [Tabela 5]
[0991]
[0992]
[0995] Moguće je podesiti veći broj kandidata za referentne linije uzoraka ili manji broj kandidata za referentne linije uzoraka od onog koji je opisan gore. Takođe, broj ili lokacije nesusednih referentnih linija uzoraka koje su postavljene kao kandidati za referentne linije uzoraka nisu ograničeni na goreopisani primer. Kao primer, prva nesusedna referentna linija uzoraka i treća nesusedna referentna linija uzoraka mogu se postaviti kao kandidati za referentne linije uzoraka, a druga nesusedna referentna linija uzoraka i treća nesusedna referentna linija uzoraka mogu se postaviti kao kandidati za referentne linije uzoraka.
[0996] Alternativno, sve od prve nesusedne referentne linije uzoraka, druge nesusedne referentne linije uzoraka i treće nesusedne referentne linije uzoraka mogu se postaviti kao kandidati za referentne linije uzoraka.
[0998] Broj ili tipovi kandidata za referentne linije uzoraka mogu se odrediti na osnovu najmanje jednog od veličine, oblika ili lokacije tekućeg bloka, prisustva deljenja na podblokove ili režima intra-predikcije tekućeg bloka.
[1000] Referentna linija uzoraka tekućeg bloka može se odrediti na osnovu najmanje jednog od lokacije, veličine ili oblika tekućeg bloka ili režima prediktivnog kodiranja susednog bloka. Kao primer, kada je tekući blok neprekidan sa ivicom slike, pločice, isečka ili jedinice stabla kodiranja, susedna referentna linija uzoraka može se odrediti kao referentna linija uzoraka tekućeg bloka.
[1002] Alternativno, kada je tekući blok nekvadratan, susedna referentna linija uzoraka može se odrediti kao referentna linija uzoraka tekućeg bloka. Alternativno, kada je odnos širine i visine tekućeg bloka veći od pragovne vrednosti ili jednak njoj, ili manji od pragovne vrednosti ili jednak njoj, susedna referentna linija uzoraka može se odrediti kao referentna linija uzoraka tekućeg bloka.
[1004] [0442] Referentna linija uzoraka može uključivati gornje referentne uzorke koji se nalaze iznad tekućeg bloka i leve referentne uzorke koji se nalaze levo od tekućeg bloka. Gornji referentni uzorci i levi referentni uzorci mogu se izvesti iz rekonstruisanih uzoraka u blizini tekućeg bloka. Rekonstruisani uzorci mogu biti u stanju pre nego što se primeni filter unutar petlje.
[1006] Zatim se može odrediti režim intra-predikcije tekućeg bloka (S4002). Najmanje jedan od neusmerenog režima intra-predikcije ili usmerenog režima intra-predikcije može se odrediti ako režim intra-predikcije tekućeg bloka. Neusmereni režim intra-predikcije uključuje planarni režim i DC režim, a usmerena intra-predikcija uključuje 33 ili 65 režima od dijagonalnog donjeg levog smera do dijagonalnog gornjeg desnog smera.
[1008] Slika 41 je dijagram koji prikazuje režime intra-predikcije.
[1010] Slika 41A prikazuje 35 režima intra-predikcije, a slika 41B prikazuje 67 režima intrapredikcije.
[1012] Može se definisati veći broj režima intra-predikcije ili manji broj režima intrapredikcije od onih koji su prikazani na slici 41.
[1014] Najverovatniji režim (MPM) može se podesiti na osnovu režima intra-predikcije bloka koji je susedan tekućem bloku. Ovde susedni blok može uključivati levi susedni blok koji je susedan levoj strani tekućeg bloka i gornji susedni blok koji je susedan vrhu tekućeg bloka.
[1016] Broj MPM uključenih u MPM listu može biti unapred podešen u koderu i dekoderu. Kao primer, broj MPM može biti tri, četiri, pet ili šest. Alternativno, informacije koje ukazuju na broj MPM mogu se signalizirati u toku bitova. Alternativno, broj MPM može se odrediti na osnovu najmanje jednog od režima prediktivnog kodiranja susednog bloka ili veličine, oblika ili indeksa referentne linije uzoraka tekućeg bloka. Kao primer, N MPM se može koristiti kada se susedna referentna linija uzoraka odredi kao referentna linija uzoraka tekućeg bloka, a M MPM se može koristiti kada se nesusedna referentna linija uzoraka odredi kao referentna linija uzoraka tekućeg bloka. M je prirodan broj manji od N. Kao primer, N može biti šest, a M može biti pet, četiri ili tri. Shodno tome, jedan od šest kandidata za režime intra-predikcije određuje se kao režim intra-predikcije tekućeg bloka kada je indeks referentne linije uzoraka tekućeg bloka jednak nuli i kada je MPM zastavica postavljena na true, a jedan od pet kandidata za režime intra-predikcije određuje se kao režim intrapredikcije tekućeg bloka kada je indeks referentne linije uzoraka tekućeg bloka veći od nule i kada je MPM zastavica postavljena na true.
[1018] Alternativno, fiksni broj (npr. pet ili šest) MPM kandidata može se koristiti bez obzira na indeks referentne linije uzoraka tekućeg bloka.
[1020] Kreira se MPM lista koja uključuje mnoštvo MPM, a informacije koje ukazuju na to da li je MPM identičan režimu intra-predikcije tekućeg bloka uključen u MPM listu mogu se signalizirati u toku bitova. Te informacije su 1-bitna zastavica, i ta zastavica se može nazvati MPM zastavicom. Kada MPM zastavica ukazuje na to da je MPM identičan tekućem bloku uključen u MPM listu, informacije o indeksu radi identifikovanja jednog od MPM mogu se signalizirati u toku bitova. Kao primer, informacije o indeksu intra_luma_ref_idx, koje služe za specifikovanje jednog od mnoštva MPM, mogu se signalizirati u toku bitova. MPM specifikovan informacijama o indeksu može se postaviti kao režim intra-predikcije tekućeg bloka. Kada MPM zastavica ukazuje na to da MPM identičan tekućem bloku nije uključen u MPM listu, informacije o rezidualnom režimu koje ukazuju na jedan od preostalih režima intra-predikcije osim MPM mogu se signalizirati u toku bitova. Informacije o rezidualnom režimu ukazuju na vrednost indeksa koja odgovara režimu intra-predikcije tekućeg bloka kada se indeksi ponovo dodele preostalim režimima intra-predikcije osim MPM. Dekoder može sortirati MPM u rastućem redosledu i uporediti MPM sa informacijama o rezidualnom režimu radi određivanja režima intra-predikcije tekućeg bloka. Kao primer, kada su informacije o rezidualnom režimu manje od MPM ili jednake njemu, režim intra-predikcije tekućeg bloka može se izvesti dodavanjem broja jedan na informacije o rezidualnom režimu.
[1022] Prilikom izvođenja režima intra-predikcije tekućeg bloka, upoređivanje između informacija o rezidualnom režimu i nekih od MPM može se izostaviti. Kao primer, među MPM, MPM koji su neusmereni režimi intra-predikcije mogu se isključiti iz upoređivanja. Kada su neusmereni režimi intra-predikcije postavljeni kao MPM, jasno je da informacije o rezidualnom režimu ukazuju na usmereni režim intra-predikcije. Stoga se režim intrapredikcije tekućeg bloka može izvesti kroz upoređivanje između informacija o rezidualnom režimu i preostalih MPM osim neusmerenih režima intra-predikcije. Umesto isključivanja neusmerenih režima intra-predikcije iz upoređivanja, broj neusmerenog režima intrapredikcije može se dodati na informacije o rezidualnom režimu, te se stoga rezultujuća vrednost može uporediti sa preostalim MPM.
[1023] Umesto postavljanja MPM kao podrazumevanog režima, informacije koje ukazuju na to da li je režim intra-predikcije tekućeg bloka podrazumevani režim mogu se signalizirati u toku bitova. Te informacije mogu biti 1-bitna zastavica, i ta zastavica se može nazvati zastavicom podrazumevanog režima. Zastavica podrazumevanog režima se može signalizirati samo kada MPM zastavica ukazuje na to da je MPM identičan tekućem bloku uključen u MPM listu. Kao što je opisano gore, podrazumevani režim može uključivati najmanje jedan od planarnog režima, DC režima, vertikalnog režima ili horizontalnog režima. Kao primer, kada je planarni režim postavljen kao podrazumevani režim, zastavica podrazumevanog režima može ukazivati na to da li je režim intra-predikcije tekućeg bloka planarni režim. Kada zastavica podrazumevanog režima ukazuje na to da režim intra-predikcije tekućeg bloka nije podrazumevani režim, jedan od MPM na koje ukazuju informacije o indeksu može se postaviti kao režim intra-predikcije tekućeg bloka.
[1025] Kada se koristi zastavica podrazumevanog režima, može se izvršiti podešavanje tako da se režim intra-predikcije koji je identičan podrazumevanom režimu ne postavlja kao MPM. Kao primer, kada zastavica podrazumevanog režima ukazuje na to da li je režim intrapredikcije tekućeg bloka planarni režim, režim intra-predikcije tekućeg bloka može se izvesti korišćenjem pet MPM, isključujući MPM koji odgovara planarnom režimu.
[1027] Kada je mnoštvo režima intra-predikcije postavljeno kao podrazumevani režimi, informacije o indeksu koje ukazuju na jedan od podrazumevanih režima mogu se dalje signalizirati. Režim intra-predikcije tekućeg bloka može se postaviti kao podrazumevani režim na koji ukazuju informacije o indeksu.
[1029] Kada indeks referentne linije uzoraka tekućeg bloka nije nula, može se izvršiti podešavanje tako da se podrazumevani režim ne koristi. Kao primer, kada se nesusedna referentna linija uzoraka odredi kao referentna linija uzoraka tekućeg bloka, može se izvršiti podešavanje tako da se neusmereni režimi intra-predikcije, kao što su DC režim ili planarni režim, ne koriste. Shodno tome, kada indeks referentne linije uzoraka nije nula, zastavica podrazumevanog režima se ne mora signalizirati, a vrednost zastavice podrazumevanog režima može se postaviti na unapred definisanu vrednost (tj. false).
[1030] Kada se odredi režim intra-predikcije tekućeg bloka, prediktivni uzorci za tekući blok mogu se dobiti na osnovu određenog režima intra-predikcije (S4003).
[1032] Kada se izabere DC režim, prediktivni uzorci za tekući blok mogu se generisati na osnovu prosečne vrednosti referentnih uzoraka. Detaljnije, vrednosti svih uzoraka u prediktivnom bloku mogu se generisati na osnovu prosečne vrednosti referentnih uzoraka. Prosečna vrednost se može izvesti korišćenjem najmanje jednog od gornjih referentnih uzoraka lociranih iznad tekućeg bloka i levih referentnih uzoraka lociranih levo od tekućeg bloka.
[1034] Broj ili opseg referentnih uzoraka koji se koriste za izvođenje prosečne vrednosti mogu varirati u zavisnosti od oblika tekućeg bloka. Kao primer, kada je tekući blok nekvadratni blok kod koga je širina veća od visine, prosečna vrednost se može izračunati korišćenjem samo gornjih referentnih uzoraka. Sa druge strane, kada je tekući blok nekvadratni blok kod koga je širina manja od visine, prosečna vrednost se može izračunati korišćenjem samo levih referentnih uzoraka. To jest, kada se širina i visina tekućeg bloka međusobno razlikuju, prosečna vrednost se može izračunati korišćenjem samo referentnih uzoraka koji su susedni dužoj stranici između širine i visine. Alternativno, to da li će se prosečna vrednost izračunati korišćenjem gornjih referentnih uzoraka ili korišćenjem levih referentnih uzoraka može se odrediti na osnovu odnosa širine i visine tekućeg bloka.
[1036] Kada se izabere planarni režim, prediktivni uzorak se može dobiti korišćenjem horizontalnog prediktivnog uzorka i vertikalnog prediktivnog uzorka. Ovde se horizontalni prediktivni uzorak dobija na osnovu levog referentnog uzorka i desnog referentnog uzorka koji se nalaze na istoj horizontalnoj liniji kao i prediktivni uzorak, a vertikalni prediktivni uzorak se dobija na osnovu gornjeg referentnog uzorka i donjeg referentnog uzorka koji se nalaze na istoj vertikalnoj liniji kao i prediktivni uzorak. Ovde se desni referentni uzorak može generisati kopiranjem referentnog uzorka koji je susedan gornjem desnom uglu tekućeg bloka, a donji referentni uzorak se može generisati kopiranjem referentnog uzorka koji je susedan donjem levom uglu tekućeg bloka. Horizontalni prediktivni uzorak može se dobiti na osnovu operacije ponderisane sume levog referentnog uzorka i desnog referentnog uzorka, a vertikalni prediktivni uzorak može se dobiti na osnovu operacije ponderisane sume gornjeg referentnog uzorka i donjeg referentnog uzorka. U ovom slučaju, težina dodeljena svakom referentnom uzorku može se odrediti u zavisnosti od lokacije prediktivnog uzorka.
[1037] Prediktivni uzorak se može dobiti na osnovu operacije usrednjavanja ili operacije ponderisane sume horizontalnog prediktivnog uzorka i vertikalnog prediktivnog uzorka. Kada se sprovodi operacija ponderisane sume, težine dodeljene horizontalnom prediktivnom uzorku i vertikalnom prediktivnom uzorku mogu se odrediti na osnovu lokacije prediktivnog uzorka.
[1039] Kada se izabere usmereni režim predikcije, može se odrediti parametar koji ukazuje na smer predikcije (ili ugao predikcije) izabranog usmerenog režima predikcije. Tabela 6 u nastavku predstavlja parametar unutrašnjeg smera intraPredAng za svaki režim intrapredikcije.
[1040] [Tabela 6]
[1042]
[1045] Tabela 6 predstavlja parametar unutrašnjeg smera za svaki režim intra-predikcije sa indeksom između 2 i 34 kada je definisano 35 režima intra-predikcije. Kada je definisano više od 33 usmerena režima intra-predikcije, tabela 6 se može podeliti radi podešavanja parametara unutrašnjeg smera za svaki usmereni režim intra-predikcije.
[1047] Nakon što se gornji referentni uzorci i levi referentni uzorci tekućeg bloka rasporede u liniju, prediktivni uzorak se može dobiti na osnovu vrednosti parametra unutrašnjeg smera. U ovom slučaju, kada je vrednost parametra unutrašnjeg smera negativna, levi referentni uzorci i gornji referentni uzorci mogu se rasporediti u liniju.
[1049] Slike 42 i 43 su dijagrami koji prikazuju primer jednodimenzionalnog niza u kome su referentni uzorci raspoređeni u liniju.
[1051] [0464] Slika 42 prikazuje primer jednodimenzionalnog vertikalnog niza u kome su referentni uzorci vertikalno raspoređeni, a slika 43 prikazuje primer jednodimenzionalnog horizontalnog niza u kome su referentni uzorci horizontalno raspoređeni. Otelotvorenja sa slika 42 i 43 biće opisana pod pretpostavkom da je definisano 35 režima intra-predikcije.
[1053] Jednodimenzionalni horizontalni niz u kome su gornji referentni uzorci rotirani u smeru suprotnom od kretanja kazaljke na satu može se primeniti kada je indeks režima intrapredikcije između 11 i 18, a jednodimenzionalni vertikalni niz u kome su levi referentni uzorci rotirani u smeru kretanja kazaljke na satu može se primeniti kada je indeks režima intra-predikcije između 19 i 25. Kada se referentni uzorci raspoređuju u liniju, može se uzeti u obzir ugao režima intra-predikcije.
[1055] Parametar za određivanje referentnog uzorka može se odrediti na osnovu parametra unutrašnjeg smera. Parametar za određivanje referentnog uzorka može uključivati indeks referentnog uzorka za specifikovanje referentnog uzorka i parametar težine za određivanje težine koja se primenjuje na referentni uzorak.
[1057] Indeks referentnog uzorka iIdx i parametar težine i<fact>mogu se dobiti kroz jednačine 30 i 31 u nastavku.
[1059]
[1062] U jednačinama 30 i 31, P<ang>predstavlja parametar unutrašnjeg smera. Referentni uzorak specifikovan indeksom referentnog uzorka iIdx odgovara celobrojnom pikselu.
[1064] Da bi se izveo prediktivni uzorak, može se specifikovati najmanje jedan referentni uzorak. Detaljnije, lokacija referentnog uzorka koji će se koristiti za izvođenje prediktivnog uzorka može se specifikovati uzimajući u obzir nagib režima predikcije. Kao primer, referentni uzorak koji će se koristiti za izvođenje prediktivnog uzorka može se specifikovati korišćenjem indeksa referentnog uzorka iIdx.
[1065] U ovom slučaju, kada se nagib režima intra-predikcije ne može izraziti jednim referentnim uzorkom, prediktivni uzorak se može generisati interpolacijom mnoštva referentnih uzoraka. Kao primer, kada je nagib režima intra-predikcije vrednost između nagiba između prediktivnog uzorka i prvog referentnog uzorka i nagiba između prediktivnog uzorka i drugog referentnog uzorka, prediktivni uzorak se može dobiti interpolacijom prvog referentnog uzorka i drugog referentnog uzorka. To jest, ako ugaona linija koja odgovara uglu intra-predikcije ne prolazi kroz referentni uzorak koji se nalazi na celobrojnom pikselu, prediktivni uzorak se može dobiti interpolacijom referentnih uzoraka koji su susedni levoj, desnoj, gornjoj ili donjoj strani lokacije kroz koju ta ugaona linija prolazi.
[1067] Jednačina 32 u nastavku prikazuje primer dobijanja prediktivnog uzorka na osnovu referentnih uzoraka.
[1069]
[1072] U jednačini 32, P predstavlja prediktivni uzorak, a Ref_1D predstavlja jedan od referentnih uzoraka raspoređenih u jednoj dimenziji. U ovom slučaju, lokacija referentnog uzorka može se odrediti indeksom referentnog uzorka iIdx i lokacijom (x, y) prediktivnog uzorka.
[1074] Kada se nagib režima intra-predikcije može izraziti jednim referentnim uzorkom, parametar težine i<fact>može se postaviti na nulu. Shodno tome, jednačina 32 se može pojednostaviti u jednačinu 33 u nastavku.
[1076]
[1079] Intra-predikcija se može sprovesti na tekućem bloku na osnovu mnoštva režima intrapredikcije. Kao primer, režim intra-predikcije se može izvesti za svaki prediktivni uzorak, a prediktivni uzorak se može izvesti na osnovu režima intra-predikcije dodeljenog odgovarajućem prediktivnom uzorku.
[1081] [0475] Alternativno, režim intra-predikcije se može izvesti za svaki region, a intra-predikcija se može sprovesti na odgovarajućem regionu na osnovu režima intra-predikcije dodeljenog odgovarajućem regionu. Ovde region može uključivati najmanje jedan uzorak. Najmanje jedna od veličine ili oblika regiona može se adaptivno odrediti na osnovu najmanje jednog od veličine, oblika ili režima intra-predikcije tekućeg bloka. Alternativno, najmanje jedna od veličine ili oblika regiona može biti unapred definisana u koderu i dekoderu nezavisno od veličine ili oblika tekućeg bloka.
[1083] Alternativno, intra-predikcija se može sprovesti više puta, a krajnji prediktivni uzorak se može izvesti na osnovu operacije usrednjavanja ili operacije ponderisane sume mnoštva prediktivnih uzoraka dobijenih višekratnim sprovođenjem intra-predikcije. Kao primer, prvi prediktivni uzorak može se dobiti sprovođenjem intra-predikcije na osnovu prvog režima intra-predikcije, a drugi prediktivni uzorak može se dobiti sprovođenjem intra-predikcije na osnovu drugog režima intra-predikcije. Potom se krajnji prediktivni uzorak može dobiti na osnovu operacije usrednjavanja ili operacije ponderisane sume između prvog prediktivnog uzorka i drugog prediktivnog uzorka. U ovom slučaju, težine dodeljene prvom prediktivnom uzorku i drugom prediktivnom uzorku mogu se odrediti uzimajući u obzir najmanje jedno od toga da li je prvi režim intra-predikcije neusmereni režim predikcije ili usmereni režim predikcije, da li je drugi režim intra-predikcije neusmereni režim predikcije ili usmereni režim predikcije, ili na osnovu režima intra-predikcije susednog bloka.
[1085] Mnoštvo režima intra-predikcije može biti kombinacija neusmerenog režima intrapredikcije i usmerenog režima intra-predikcije, kombinacija usmerenih režima intrapredikcije ili kombinacija neusmerenih režima intra-predikcije.
[1087] Slika 44 je dijagram koji ilustruje uglove formirane između prave linije paralelne sa xosom i usmerenih režima intra-predikcije.
[1089] U primeru prikazanom na slici 44, usmereni režimi predikcije mogu se kretati od dijagonalnog donjeg levog smera do dijagonalnog gornjeg desnog smera. Kada naredni opis pretpostavlja ugao formiran između x-ose i usmerenog režima predikcije, usmereni režimi predikcije mogu se kretati između 45 stepeni (u dijagonalnom donjem levom smeru) i -135 stepeni (u dijagonalnom gornjem desnom smeru).
[1091] [0480] Kada je tekući blok nekvadratan, prediktivni uzorak se može izvesti korišćenjem referentnog uzorka koji je udaljen od prediktivnog uzorka među referentnim uzorcima lociranim na ugaonoj liniji koja odgovara uglu intra-predikcije, umesto referentnog uzorka koji je blizu prediktivnog uzorka, u zavisnosti od režima intra-predikcije tekućeg bloka.
[1093] Slika 45 je dijagram koji prikazuje aspekt u kome se prediktivni uzorak dobija kada je tekući blok nekvadratan.
[1095] Na primer, kao u primeru prikazanom na slici 45A, pretpostavlja se da tekući blok ima nekvadratni oblik u kome je širina veća od visine i da je režim intra-predikcije tekućeg bloka usmereni režim intra-predikcije koji ima ugao između 0 stepeni i 45 stepeni. U ovom slučaju, prilikom izvođenja prediktivnog uzorka A u blizini desne kolone tekućeg bloka, levi referentni uzorak L koji je udaljen od prediktivnog uzorka među referentnim uzorcima lociranim na ugaonoj liniji koja odgovara tom uglu može se koristiti umesto gornjeg referentnog uzorka T koji je blizu prediktivnog uzorka.
[1097] Kao drugi primer, kao u primeru prikazanom na slici 45B, pretpostavlja se da tekući blok ima nekvadratni oblik u kome je visina veća od širine i da je režim intra-predikcije tekućeg bloka usmereni režim intra-predikcije koji ima ugao između -90 stepeni i -135 stepeni. U ovom slučaju, prilikom izvođenja prediktivnog uzorka A u blizini donjeg reda tekućeg bloka, gornji referentni uzorak T koji je udaljen od prediktivnog uzorka među referentnim uzorcima lociranim na ugaonoj liniji koja odgovara tom uglu može se koristiti umesto levog referentnog uzorka L koji je blizu prediktivnog uzorka.
[1099] Da bi se rešio takav problem, kada je tekući blok nekvadratan, režim intra-predikcije tekućeg bloka može se zameniti režimom intra-predikcije u suprotnom smeru. Prema tome, usmereni režimi predikcije koji imaju veći ili manji ugao od usmerenih režima predikcije prikazanih na slici 41 mogu se koristiti za nekvadratne blokove. Takav usmereni režim intrapredikcije može se definisati kao širokougaoni režim intra-predikcije. Širokougaoni režim intra-predikcije predstavlja usmereni režim intra-predikcije koji ne spada u opseg između 45 stepeni i -135 stepeni.
[1101] Slika 46 je dijagram koji prikazuje širokougaone režime intra-predikcije.
[1102] U primeru prikazanom na slici 46, režimi intra-predikcije sa indeksom između -1 i -14 i režimi intra-predikcije sa indeksom između 67 i 80 ukazuju na širokougaone režime intrapredikcije.
[1104] Na slici 46 ilustrovano je 14 širokougaonih režima intra-predikcije koji imaju ugao veći od 45 stepeni (od -1 do -14) i 14 širokougaonih režima intra-predikcije koji imaju ugao manji od -135 stepeni (od 67 do 80), ali se može definisati veći ili manji broj širokougaonih režima intra-predikcije.
[1106] Kada se koristi širokougaoni režim intra-predikcije, dužina gornjih referentnih uzoraka može se postaviti na 2W+1, a dužina levih referentnih uzoraka može se postaviti na 2H+1.
[1108] Kada se koristi širokougaoni režim intra-predikcije, uzorak A prikazan na slici 45A može se predvideti korišćenjem referentnog uzorka T, a uzorak A prikazan na slici 45B može se predvideti korišćenjem referentnog uzorka L.
[1110] Ukupno se može koristiti 67+N režima intra-predikcije dodavanjem N širokougaonih režima intra-predikcije postojećim režimima intra-predikcije. Kao primer, tabela 7 prikazuje parametre unutrašnjeg smera za režime intra-predikcije kada je definisano 20 širokougaonih režima intra-predikcije.
[1111] [Tabela 7]
[1113]
[1114]
[1117] Kada je tekući blok nekvadratan i kada režim intra-predikcije tekućeg bloka dobijen u S4002 spada u opseg transformacije, režim intra-predikcije tekućeg bloka može se transformisati u širokougaoni režim intra-predikcije. Opseg transformacije može se odrediti na osnovu najmanje jednog od veličine, oblika ili odnosa tekućeg bloka. Ovde odnos može ukazivati na odnos između širine i visine tekućeg bloka.
[1119] Kada tekući blok ima nekvadratni oblik u kome je širina veća od visine, opseg transformacije se može postaviti u opsegu od indeksa režima intra-predikcije za dijagonalni gornji desni smer (npr.66) do indeksa režima intra-predikcije za dijagonalni gornji desni smer umanjenog za N. Ovde se N može odrediti na osnovu odnosa tekućeg bloka. Kada režim intra-predikcije tekućeg bloka spada u opseg transformacije, režim intra-predikcije se može transformisati u širokougaoni režim intra-predikcije. Transformacija može predstavljati oduzimanje unapred definisane vrednosti od režima intra-predikcije, a unapred definisana vrednost može biti ukupan broj (npr.67) režima intra-predikcije, izuzimajući širokougaone režime intra-predikcije.
[1121] Prema gorenavedenom otelotvorenju, režimi intra-predikcije od #66 do #53 mogu se transformisati u širokougaone režime intra-predikcije od #-1 do #-14, respektivno.
[1123] [0494] Kada tekući blok ima nekvadratni oblik u kome je visina veća od širine, opseg transformacije se može postaviti u opsegu od indeksa režima intra-predikcije za dijagonalni donji levi smer (npr.2) do indeksa režima intra-predikcije za dijagonalni donji levi smer uvećanog za M. Ovde se M može odrediti na osnovu odnosa tekućeg bloka. Kada režim intrapredikcije tekućeg bloka spada u opseg transformacije, režim intra-predikcije se može transformisati u širokougaoni režim intra-predikcije. Transformacija može predstavljati dodavanje unapred definisane vrednosti na režim intra-predikcije, a unapred definisana vrednost može biti ukupan broj (npr.65) usmerenih režima intra-predikcije, isključujući širokougaone režime intra-predikcije.
[1125] Prema gorenavedenom otelotvorenju, režimi intra-predikcije od #2 do #15 mogu se transformisati u širokougaone režime intra-predikcije od #67 do #80, respektivno.
[1127] Režimi intra-predikcije koji spadaju u opseg transformacije nazivaće se alternativnim širokougaonim režimima intra-predikcije.
[1129] Opseg transformacije može se odrediti na osnovu odnosa tekućeg bloka. Kao primer, tabela 8 i tabela 9 predstavljaju opseg transformacije kada je definisano 35 režima intrapredikcije, izuzimajući širokougaone režime intra-predikcije, odnosno opseg transformacije kada je definisano 67 režima intra-predikcije.
[1130] [Tabela 8]
[1132]
[1134] [Tabela 9]
[1136]
[1137] U primerima prikazanim u tabeli 8 i tabeli 9, broj alternativnih širokougaonih režima intra-predikcije koji spadaju u opseg transformacije može se razlikovati u zavisnosti od odnosa tekućeg bloka.
[1139] Opseg transformacije, kao što je prikazano u tabeli 10 u nastavku, može se podesiti detaljnijom podelom odnosa tekućeg bloka.
[1140] [Tabela 10]
[1142]
[1145] Kada se nesusedna referentna linija uzoraka odredi kao referentna linija uzoraka tekućeg bloka ili kada se koristi postupak višelinijskog intra-prediktivnog kodiranja za izbor jedne od mnoštva referentnih linija uzoraka, može se izvršiti podešavanje tako da se širokougaoni režim intra-predikcije ne koristi. To jest, čak i kada je tekući blok nekvadratan i kada režim intra-predikcije tekućeg bloka spada u opseg transformacije, režim intrapredikcije tekućeg bloka se ne mora transformisati u širokougaoni režim intra-predikcije.
[1147] Alternativno, kada se režim intra-predikcije tekućeg bloka odredi kao širokougaoni režim intra-predikcije, može se izvršiti podešavanje tako da nesusedne referentne linije uzoraka budu nedostupne kao referentna linija uzoraka tekućeg bloka, ili se može izvršiti podešavanje tako da se ne koristi postupak višelinijskog intra-prediktivnog kodiranja za izbor jedne od mnoštva referentnih linija uzoraka. Kada se postupak višelinijskog intraprediktivnog kodiranja ne koristi, susedna referentna linija uzoraka može se odrediti kao referentna linija uzoraka tekućeg bloka.
[1148] Kada se širokougaoni režim intra-predikcije ne koristi, refW i refH se mogu postaviti na zbir nTbW i nTbH. Shodno tome, izuzimajući gornje leve referentne uzorke, nesusedni referentni uzorak sa rastojanjem i od tekućeg bloka može uključivati (nTbW nTbH offsetX[i]) gornjih referentnih uzoraka i (nTbW nTbH offsetY[i]) levih referentnih uzoraka. To jest, nesusedni referentni uzorak sa rastojanjem i od tekućeg bloka može uključivati (2nTbW 2nTbH offsetX[i] offsetY[i] 1) referentni uzorak. Na primer, kada je vrednost whRatio veća od 1, može se izvršiti podešavanje tako da vrednost offsetX bude veća od vrednosti offsetY. Kao primer, vrednost offsetX može se postaviti na 1, a vrednost offsetY može se postaviti na 0. Sa druge strane, kada je vrednost whRatio manja od 1, može se izvršiti podešavanje tako da vrednost offsetY bude veća od vrednosti offsetX. Kao primer, vrednost offsetX može se postaviti na 0, a vrednost offsetY može se postaviti na 1.
[1150] Kako se širokougaoni režimi intra-predikcije koriste pored postojećih režima intrapredikcije, resursi potrebni za kodiranje širokougaonih režima intra-predikcije mogu se povećati, te se stoga efikasnost kodiranja može smanjiti. Shodno tome, kodiranjem alternativnih režima intra-predikcije za širokougaone režime intra-predikcije, umesto kodiranja širokougaonih režima intra-predikcije kakvi jesu, moguće je poboljšati efikasnost kodiranja.
[1152] Kao primer, kada je tekući blok kodiran u širokougaonom režimu intra-predikcije #67, širokougaoni režim intra-predikcije #2, koji je alternativni širokougaoni režim intrapredikcije za #67, može se kodirati u režim intra-predikcije tekućeg bloka. Takođe, kada je tekući blok kodiran u širokougaonom režimu intra-predikcije #-1, širokougaoni režim intrapredikcije #66, koji je alternativni širokougaoni režim intra-predikcije za #-1, može se kodirati u režim intra-predikcije tekućeg bloka.
[1154] Dekoder može dekodirati režim intra-predikcije tekućeg bloka i može odrediti da li dekodirani režim intra-predikcije spada u opseg transformacije. Kada je dekodirani režim intra-predikcije alternativni širokougaoni režim intra-predikcije, režim intra-predikcije se može transformisati u širokougaoni režim intra-predikcije.
[1156] Alternativno, kada je tekući blok kodiran u širokougaonom režimu intra-predikcije, širokougaoni režim intra-predikcije se može kodirati kakav jeste.
[1157] Kodiranje režima intra-predikcije može se izvršiti na osnovu goreopisane MPM liste. Detaljnije, kada je susedni blok kodiran u širokougaonom režimu intra-predikcije, MPM se može podesiti na osnovu alternativnog širokougaonog režima intra-predikcije koji odgovara tom širokougaonom režimu intra-predikcije.
[1159] Rezidualna slika se može izvesti oduzimanjem prediktivne slike od originalne slike. U ovom slučaju, kada se rezidualna slika promeni u frekvencijski domen, subjektivni kvalitet slike se ne smanjuje značajno čak i ako se komponente visoke frekvencije uklone iz frekvencijskih komponenti. Shodno tome, kada se vrednosti komponenti visoke frekvencije promene u male vrednosti ili kada se vrednosti komponenti visoke frekvencije postave na 0, moguće je povećati efikasnost kompresije bez izazivanja značajnog vizuelnog izobličenja. Uzimajući u obzir gorenavedene karakteristike, tekući blok se može transformisati radi razlaganja rezidualne slike na dvodimenzionalne frekvencijske komponente. Transformacija se može sprovesti korišćenjem tehnike transformacije kao što je diskretna kosinusna transformacija (DCT) ili diskretna sinusna transformacija (DST).
[1161] DCT koristi kosinusnu transformaciju za razlaganje (ili transformisanje) rezidualne slike na dvodimenzionalne frekvencijske komponente, a DST koristi sinusnu transformaciju za razlaganje (ili transformisanje) rezidualne slike na dvodimenzionalne frekvencijske komponente. Kao rezultat transformacije rezidualne slike, frekvencijske komponente se mogu izraziti preko baznog obrasca. Kao primer, kada se DCT sprovodi na N×N bloku, bloku, može se dobiti N<2>komponenti baznog obrasca. Veličina svake od komponenti baznog obrasca uključenih u N×N blok može se dobiti kroz transformaciju. U zavisnosti od korišćene tehnike transformacije, veličina komponente baznog obrasca može se nazvati DCT koeficijentom ili DST koeficijentom.
[1163] U zavisnosti od korišćene tehnike transformacije, veličina komponente baznog obrasca može se nazvati DCT koeficijentom ili DST koeficijentom. Tehnika transformacije DCT uglavnom se koristi za transformisanje slike u kojoj su raspoređene mnoge nenulte komponente niske frekvencije.
[1165] Rezidualna slika se može transformisati korišćenjem tehnike transformacije koja je drugačija od DCT ili DST.
[1166] Transformisanje rezidualne slike u dvodimenzionalne frekvencijske komponente nazivaće se dvodimenzionalnom transformacijom. Pored toga, veličina komponenti baznog obrasca dobijenih kroz rezultat transformacije nazivaće se koeficijentom transformacije. Kao primer, koeficijent transformacije se može odnositi na DCT koeficijent ili DST koeficijent. Kada se primene i prva transformacija i druga transformacija koje će biti opisane u nastavku, koeficijent transformacije se može odnositi na veličinu komponente baznog obrasca generisane kao rezultat druge transformacije.
[1168] Tehnika transformacije se može odrediti u jedinicama blokova. Tehnika transformacije se može odrediti na osnovu najmanje jednog od režima prediktivnog kodiranja tekućeg bloka ili veličine tekućeg bloka. Kao primer, kada je tekući blok kodiran u režimu intra-predikcije i kada je veličina tekućeg bloka manja od N×N, transformacija se može sprovesti korišćenjem tehnike transformacije DST. Sa druge strane, kada gorenavedeni uslov nije ispunjen, transformacija se može sprovesti korišćenjem tehnike transformacije DCT.
[1170] Dvodimenzionalna transformacija se ne mora sprovesti na nekim blokovima rezidualne slike. Nesprovođenje dvodimenzionalne transformacije nazivaće se preskakanjem transformacije. Kada se primeni preskakanje transformacije, kvantizacija se može primeniti na rezidualne vrednosti na kojima transformacija nije sprovedena.
[1172] Nakon što se tekući blok transformiše korišćenjem DCT ili DST, transformisani tekući blok se može ponovo transformisati. U ovom slučaju, transformacija zasnovana na DCT ili DST može se definisati kao prva transformacija, a ponovna transformacija bloka podvrgnutog prvoj transformaciji može se definisati kao druga transformacija.
[1174] Prva transformacija se može sprovesti korišćenjem jednog od mnoštva kandidata za jezgro transformacije. Kao primer, prva transformacija se može sprovesti korišćenjem jednog od DCT2, DCT8 ili DCT7.
[1176] Različita jezgra transformacije mogu se koristiti u horizontalnom smeru i u vertikalnom smeru. Informacije koje ukazuju na kombinaciju vertikalnog jezgra transformacije i horizontalnog jezgra transformacije mogu se signalizirati u toku bitova.
[1177] Prva transformacija i druga transformacija mogu se sprovoditi u različitim jedinicama. Kao primer, prva transformacija se može sprovesti na 8×8 bloku, a druga transformacija se može sprovesti na 4×4 podbloku transformisanog 8×8 bloka. U ovom slučaju, koeficijent transformacije rezidualnih regiona gde druga transformacija nije sprovedena može se postaviti na 0.
[1179] Alternativno, prva transformacija se može sprovesti na 4×4 bloku, a druga transformacija se može sprovesti na regionu 8×8 bloka koji uključuje transformisani 4×4 blok.
[1181] Informacije koje ukazuju na to da li treba sprovesti drugu transformaciju mogu se signalizirati u toku bitova.
[1183] Dekoder može sprovesti inverznu transformaciju druge transformacije (drugu inverznu transformaciju) i može sprovesti inverznu transformaciju prve transformacije (prvu inverznu transformaciju) na rezultatu druge inverzne transformacije. Kao rezultat sprovođenja druge inverzne transformacije i prve inverzne transformacije, mogu se dobiti rezidualni signali za tekući blok.
[1185] Kvantizacija služi za smanjenje energije bloka, a postupak kvantizacije uključuje deljenje koeficijenta transformacije specifičnom konstantnom vrednošću. Konstantna vrednost se može izvesti pomoću parametra kvantizacije, a parametar kvantizacije se može definisati kao vrednost između 1 i 63.
[1187] Kada koder sprovede transformaciju i kvantizaciju, dekoder može dobiti rezidualni blok kroz inverznu kvantizaciju i inverznu transformaciju. Dekoder može dobiti rekonstruisani blok za tekući blok dodavanjem prediktivnog bloka i rezidualnog bloka.
[1189] Kada se dobije rekonstruisani blok tekućeg bloka, gubitak informacija koji nastaje tokom kvantizacije i kodiranja može se smanjiti kroz filtriranje unutar petlje. Filter unutar petlje može uključivati najmanje jedno od deblokirajućeg filtera, filtera sa adaptivnim pomerajem uzoraka (SAO) ili adaptivnog filtera petlje (ALF). Rekonstruisani blok pre nego što se primeni filter unutar petlje nazivaće se prvim rekonstruisanim blokom, a rekonstruisani blok nakon što se primeni filter unutar petlje nazivaće se drugim rekonstruisanim blokom.
[1190] Drugi rekonstruisani blok može se dobiti primenom najmanje jednog od deblokirajućeg filtera, SAO ili ALF na prvi rekonstruisani blok. U ovom slučaju, SAO ili ALF se mogu primeniti nakon što se primeni deblokirajući filter.
[1192] Deblokirajući filter služi za ublažavanje pogoršanja kvaliteta slike (blok-artifakt) koje se javlja na ivici bloka kada se kvantizacija sprovodi u jedinicama blokova. Da bi se primenio deblokirajući filter, može se odrediti jačina deblokiranja (BS) između prvog rekonstruisanog bloka i susednog rekonstruisanog bloka.
[1194] Slika 47 je dijagram toka koji prikazuje postupak određivanja jačine deblokiranja.
[1196] U primeru prikazanom na slici 47, P predstavlja prvi rekonstruisani blok, a Q predstavlja susedni rekonstruisani blok. Ovde susedni rekonstruisani blok može biti blok koji je susedan levoj strani ili vrhu tekućeg bloka.
[1198] U primeru prikazanom na slici 47, prikazano je da se jačina deblokiranja određuje uzimajući u obzir režime prediktivnog kodiranja za P i Q, to da li su uključeni nenulti koeficijenti transformacije, da li se inter-predikcija sprovodi korišćenjem iste referentne slike ili da li je vrednost razlike između vektora kretanja veća od pragovne vrednosti ili jednaka njoj.
[1200] To da li će se primeniti deblokirajući filter može se odrediti na osnovu jačine deblokiranja. Kao primer, filtriranje se ne mora sprovesti kada je jačina deblokiranja 0.
[1202] [0531] SAO služi za ublažavanje artifakta prstenovanja koji se javlja kada se kvantizacija sprovodi u frekvencijskom domenu. SAO se može sprovesti dodavanjem pomeraja određenog uzimajući u obzir obrazac prve rekonstruisane slike ili njegovim oduzimanjem od nje. Postupak određivanja pomeraja uključuje pomeraj ivice (EO) ili pomeraj opsega (BO). Postupak EO ukazuje na postupak određivanja pomeraja tekućeg uzorka u skladu sa obrascem obližnjih piksela. Postupak BO ukazuje na postupak primene zajedničkog pomeraja na skup piksela koji imaju slične vrednosti svetline u regionu. Detaljnije, svetlina piksela je podeljena na 32 jednaka odeljka, a pikseli sa sličnim vrednostima svetline mogu se postaviti kao jedan skup. Kao primer, četiri susedna opsega među 32 opsega mogu se postaviti kao jedna grupa, a ista vrednost pomeraja može se primeniti na uzorke unutar ta četiri opsega.
[1204] ALF je postupak generisanja druge rekonstruisane slike primenom filtera unapred definisane veličine ili oblika na prvu rekonstruisanu sliku ili na rekonstruisanu sliku na koju je primenjen deblokirajući filter. Jednačina 34 u nastavku predstavlja primer primene ALF.
[1206]
[1209] Jedan od unapred definisanih kandidata za filter može se izabrati u jedinicama slika, jedinica stabla kodiranja, blokova kodiranja, blokova predikcije ili blokova transformacije. Kandidati za filter mogu se razlikovati po veličini ili obliku.
[1211] Slika 48 prikazuje unapred definisane kandidate za filter.
[1213] U primeru prikazanom na slici 48, može se izabrati najmanje jedan od oblika romba 5×5, oblika romba 7×7 ili oblika romba 9×9.
[1215] Samo oblik romba 5×5 može se koristiti za hromatsku komponentu.
[1217] Primena otelotvorenja koja su opisana sa fokusom na postupak dekodiranja ili postupak kodiranja na postupak dekodiranja ili postupak kodiranja spada u opseg predmetnog pronalaska. Izmena unapred određenog redosleda, po kome su otelotvorenja opisana, u redosled različit od goreopisanog takođe je moguća.
[1219] [0538] Iako su gorenavedena otelotvorenja opisana na osnovu niza koraka ili tokova, ti koraci ili tokovi ne ograničavaju hronološki redosled pronalaska i mogu se sprovesti istovremeno ili po drugačijem redosledu po potrebi. Takođe, svaka od komponenti (na primer, jedinice, moduli itd.) koje čine blok-dijagram u goreopisanim otelotvorenjima može se implementirati hardverskim uređajem ili softverom, a mnoštvo komponenti se može kombinovati i implementirati jednim hardverskim uređajem ili softverom. Gorenavedena otelotvorenja mogu se implementirati u obliku programskih instrukcija koje se mogu izvršiti kroz različite računarske elemente i snimiti na medijum za snimanje čitljiv na računaru. Medijum za snimanje čitljiv na računaru može uključivati programsku instrukciju, datoteku podataka, strukturu podataka i slično, samostalno ili u kombinaciji. Primeri medijuma za snimanje čitljivog na računaru uključuju magnetne medijume kao što su čvrsti disk, flopi disk i magnetna traka, optičke medijume kao što su kompakt-disk sa memorijom koja se samo čita (CD-ROM) i digitalni svestrani disk (DVD), magneto-optičke medijume kao što je floptički disk, i hardverske uređaje kao što su ROM, memorija sa slučajnim pristupom (RAM) i fleš memorija, koji su specijalno dizajnirani za skladištenje i izvršavanje programskih instrukcija. Hardverski uređaj može biti konfigurisan da radi kao jedan ili više softverskih modula radi sprovođenja operacija predmetnog pronalaska, i obrnuto.
[1221] INDUSTRIJSKA PRIMENLJIVOST
[1222] Predmetni pronalazak se može primeniti na elektronski uređaj za kodiranje ili dekodiranje video-snimaka.

Claims (10)

1. Patentni zahtevi
1. Postupak video-dekodiranja za dekodiranje toka video-bitova, pri čemu video koji treba dekodirati obuhvata mnoštvo slika koje su podeljene na mnoštvo blokova kodiranja, pri čemu postupak obuhvata:
određivanje da li da se tekući blok kodiranja podeli u skladu sa trougaonim deljenjem, čime se izvode dve trougaone jedinice predikcije na osnovu bloka kodiranja u skladu sa jednom od dve dijagonale bloka kodiranja, pri čemu svaka dijagonala odgovara jednom od dva tipa trougaonog deljenja;
izvođenje prvih informacija o kretanju koje se odnose na prvu trougaonu jedinicu predikcije bloka kodiranja i drugih informacija o kretanju koje se odnose na drugu trougaonu jedinicu predikcije bloka kodiranja; i
dobijanje referentnog uzorka za predviđanje bloka kodiranja na osnovu prvih informacija o kretanju i drugih informacija o kretanju,
pri čemu se prve informacije o kretanju koje se odnose na prvu trougaonu jedinicu predikcije izvode iz prvog trougaonog kandidata za spajanje specifikovanog prvim informacijama o indeksu signaliziranim u toku bitova, pri čemu prvi indeks označava jednog kandidata među mnoštvom trougaonih kandidata za spajanje uključenih u listu kandidata za spajanje, i druge informacije o kretanju koje se odnose na drugu trougaonu jedinicu predikcije izvode se iz drugog trougaonog kandidata za spajanje specifikovanog drugim informacijama o indeksu signaliziranim u toku bitova, pri čemu drugi indeks označava jednog kandidata među mnoštvom trougaonih kandidata za spajanje uključenih u listu kandidata za spajanje; pri čemu se referentni uzorak za predviđanje uzorka uključenog u granični region između prve trougaone jedinice predikcije i druge trougaone jedinice predikcije izvodi na osnovu operacije ponderisane sume prvog prediktivnog uzorka izvedenog na osnovu prvih informacija o kretanju i drugog prediktivnog uzorka izvedenog na osnovu drugih informacija o kretanju;
pri čemu je, kada su vrednosti drugih informacija o indeksu veće od vrednosti prvih informacija o indeksu ili jednake njima, indeks drugog trougaonog kandidata za spajanje jednak vrednosti drugih informacija o indeksu plus jedan.
2. Postupak video-dekodiranja prema patentnom zahtevu 1, pri čemu se druga težina primenjena na drugi prediktivni uzorak izvodi oduzimanjem prve težine od vrednosti 1.
3. Postupak video-kodiranja, pri čemu video koji treba kodirati obuhvata mnoštvo slika koje su podeljene na mnoštvo blokova kodiranja, pri čemu postupak obuhvata:
određivanje da li da se tekući blok kodiranja podeli u skladu sa trougaonim deljenjem, čime se izvode dve trougaone jedinice predikcije na osnovu bloka kodiranja u skladu sa jednom od dve dijagonale bloka kodiranja, pri čemu svaka dijagonala odgovara jednom od dva tipa trougaonog deljenja;
izvođenje prvih informacija o kretanju koje se odnose na prvu trougaonu jedinicu predikcije bloka kodiranja i drugih informacija o kretanju koje se odnose na drugu trougaonu jedinicu predikcije bloka kodiranja; i
dobijanje referentnog uzorka za predviđanje bloka kodiranja na osnovu prvih informacija o kretanju i drugih informacija o kretanju,
pri čemu se prve informacije o kretanju koje se odnose na prvu trougaonu jedinicu predikcije izvode iz prvog trougaonog kandidata za spajanje specifikovanog prvim informacijama o indeksu signaliziranim u toku bitova, pri čemu prvi indeks označava jednog kandidata među mnoštvom trougaonih kandidata za spajanje uključenih u listu kandidata za spajanje, druge informacije o kretanju koje se odnose na drugu trougaonu jedinicu predikcije izvode se iz drugog trougaonog kandidata za spajanje specifikovanog drugim informacijama o indeksu signaliziranim u toku bitova, pri čemu drugi indeks označava jednog kandidata među mnoštvom trougaonih kandidata za spajanje uključenih u listu kandidata za spajanje, i prve informacije o indeksu za specifikovanje prvog trougaonog kandidata za spajanje i druge informacije o indeksu za specifikovanje drugog trougaonog kandidata za spajanje se respektivno kodiraju;
pri čemu se referentni uzorak za predviđanje uzorka uključenog u granični region između prve trougaone jedinice predikcije i druge trougaone jedinice predikcije izvodi na osnovu operacije ponderisane sume prvog prediktivnog uzorka izvedenog na osnovu prvih informacija o kretanju i drugog prediktivnog uzorka izvedenog na osnovu drugih informacija o kretanju;
pri čemu se, kada je indeks drugog trougaonog kandidata za spajanje veći od indeksa prvog trougaonog kandidata za spajanje, druge informacije o indeksu kodiraju sa vrednošću dobijenom oduzimanjem broja jedan od indeksa drugog trougaonog kandidata za spajanje.
4. Postupak video-kodiranja prema patentnom zahtevu 3, pri čemu se druga težina primenjena na drugi prediktivni uzorak izvodi oduzimanjem prve težine od vrednosti 1.
5. Postupak video-kodiranja prema patentnom zahtevu 3, pri čemu se veličina graničnog regiona određuje na osnovu najmanje jednog od veličine bloka kodiranja ili oblika bloka kodiranja.
6. Aparat za video-dekodiranje, za dekodiranje toka video-bitova, pri čemu video koji treba dekodirati obuhvata mnoštvo slika koje su podeljene na mnoštvo blokova kodiranja, koji obuhvata:
jedinicu za inter-predikciju konfigurisanu da odredi da li da se tekući blok kodiranja podeli u skladu sa trougaonim deljenjem, čime se izvode dve trougaone jedinice predikcije na osnovu bloka kodiranja u skladu sa jednom od dve dijagonale bloka kodiranja, pri čemu svaka dijagonala odgovara jednom od dva tipa trougaonog deljenja, izvede prve informacije o kretanju koje se odnose na prvu trougaonu jedinicu predikcije bloka kodiranja i druge informacije o kretanju koje se odnose na drugu trougaonu jedinicu predikcije bloka kodiranja, i dobije referentni uzorak za predviđanje bloka kodiranja na osnovu prvih informacija o kretanju i drugih informacija o kretanju,
pri čemu se prve informacije o kretanju koje se odnose na prvu trougaonu jedinicu predikcije izvode iz prvog trougaonog kandidata za spajanje specifikovanog prvim informacijama o indeksu signaliziranim u toku bitova, pri čemu prvi indeks označava jednog kandidata među mnoštvom trougaonih kandidata za spajanje uključenih u listu kandidata za spajanje, i druge informacije o kretanju koje se odnose na drugu trougaonu jedinicu predikcije izvode se iz drugog trougaonog kandidata za spajanje specifikovanog drugim informacijama o indeksu signaliziranim u toku bitova, pri čemu drugi indeks označava jednog kandidata među mnoštvom trougaonih kandidata za spajanje uključenih u listu kandidata za spajanje; pri čemu se referentni uzorak za predviđanje uzorka uključenog u granični region između prve trougaone jedinice predikcije i druge trougaone jedinice predikcije izvodi na osnovu operacije ponderisane sume prvog prediktivnog uzorka izvedenog na osnovu prvih informacija o kretanju i drugog prediktivnog uzorka izvedenog na osnovu drugih informacija o kretanju;
pri čemu je, kada su vrednosti drugih informacija o indeksu veće od vrednosti prvih informacija o indeksu ili jednake njima, indeks drugog trougaonog kandidata za spajanje jednak vrednosti drugih informacija o indeksu plus jedan.
7. Aparat za video-dekodiranje prema patentnom zahtevu 6, pri čemu se druga težina primenjena na drugi prediktivni uzorak izvodi oduzimanjem prve težine od vrednosti 1.
8. Video-koder, pri čemu video koji treba kodirati obuhvata mnoštvo slika koje su podeljene na mnoštvo blokova kodiranja, koji obuhvata:
memoriju koja ima uskladištene instrukcije;
procesor za izvršavanje instrukcija radi:
određivanja da li da se tekući blok kodiranja podeli u skladu sa trougaonim deljenjem, čime se izvode dve trougaone jedinice predikcije na osnovu bloka kodiranja u skladu sa jednom od dve dijagonale bloka kodiranja, pri čemu svaka dijagonala odgovara jednom od dva tipa trougaonog deljenja;
izvođenja prvih informacija o kretanju koje se odnose na prvu trougaonu jedinicu predikcije bloka kodiranja i drugih informacija o kretanju koje se odnose na drugu trougaonu jedinicu predikcije bloka kodiranja; i
dobijanja referentnog uzorka za predviđanje bloka kodiranja na osnovu prvih informacija o kretanju i drugih informacija o kretanju,
pri čemu se prve informacije o kretanju koje se odnose na prvu trougaonu jedinicu predikcije izvode iz prvog trougaonog kandidata za spajanje specifikovanog prvim informacijama o indeksu signaliziranim u toku bitova, pri čemu prvi indeks označava jednog kandidata među mnoštvom trougaonih kandidata za spajanje uključenih u listu kandidata za spajanje, druge informacije o kretanju koje se odnose na drugu trougaonu jedinicu predikcije izvode se iz drugog trougaonog kandidata za spajanje specifikovanog drugim informacijama o indeksu signaliziranim u toku bitova, pri čemu drugi indeks označava jednog kandidata među mnoštvom trougaonih kandidata za spajanje uključenih u listu kandidata za spajanje, i prve informacije o indeksu za specifikovanje prvog trougaonog kandidata za spajanje i druge informacije o indeksu za specifikovanje drugog trougaonog kandidata za spajanje se respektivno kodiraju;
pri čemu se referentni uzorak za predviđanje uzorka uključenog u granični region između prve trougaone jedinice predikcije i druge trougaone jedinice predikcije izvodi na osnovu operacije ponderisane sume prvog prediktivnog uzorka izvedenog na osnovu prvih informacija o kretanju i drugog prediktivnog uzorka izvedenog na osnovu drugih informacija o kretanju;
pri čemu se, kada je indeks drugog trougaonog kandidata za spajanje veći od indeksa prvog trougaonog kandidata za spajanje, druge informacije o indeksu kodiraju sa vrednošću dobijenom oduzimanjem broja jedan od indeksa drugog trougaonog kandidata za spajanje.
9. Video-koder prema patentnom zahtevu 8, pri čemu se druga težina primenjena na drugi prediktivni uzorak izvodi oduzimanjem prve težine od vrednosti 1.
10. Video-koder prema patentnom zahtevu 8, pri čemu se veličina graničnog regiona određuje na osnovu najmanje jednog od veličine bloka kodiranja ili oblika bloka kodiranja.
RS20260691A 2018-11-08 2019-11-07 Postupak za kodiranje/dekodiranje signala slike i aparat za sprovođenje istog RS68185B1 (sr)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20180136255 2018-11-08
KR20180149064 2018-11-27
KR20180148890 2018-11-27
EP23199215.7A EP4274233B1 (en) 2018-11-08 2019-11-07 Method for encoding/decoding image signal, and apparatus therefor

Publications (1)

Publication Number Publication Date
RS68185B1 true RS68185B1 (sr) 2026-06-30

Family

ID=70611034

Family Applications (1)

Application Number Title Priority Date Filing Date
RS20260691A RS68185B1 (sr) 2018-11-08 2019-11-07 Postupak za kodiranje/dekodiranje signala slike i aparat za sprovođenje istog

Country Status (23)

Country Link
US (7) US11470312B2 (sr)
EP (2) EP3876539B1 (sr)
JP (4) JP7430721B2 (sr)
KR (1) KR102981260B1 (sr)
CN (7) CN116248870B (sr)
AU (2) AU2019375315B2 (sr)
BR (1) BR112021008298A2 (sr)
CA (2) CA3207984A1 (sr)
CL (1) CL2021001128A1 (sr)
DK (1) DK3876539T3 (sr)
ES (1) ES2972075T3 (sr)
FI (1) FI3876539T3 (sr)
HU (1) HUE065784T2 (sr)
IL (2) IL282761B2 (sr)
MX (5) MX2021005504A (sr)
MY (1) MY206549A (sr)
PH (1) PH12021550966A1 (sr)
PL (2) PL3876539T3 (sr)
PT (1) PT3876539T (sr)
RS (1) RS68185B1 (sr)
SG (1) SG11202104433RA (sr)
WO (1) WO2020096388A1 (sr)
ZA (1) ZA202103439B (sr)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10742975B2 (en) 2017-05-09 2020-08-11 Futurewei Technologies, Inc. Intra-prediction with multiple reference lines
CN116248870B (zh) * 2018-11-08 2025-07-11 Oppo广东移动通信有限公司 视频信号编码/解码方法以及用于所述方法的设备
US10778977B2 (en) * 2018-12-05 2020-09-15 Qualcomm Incorporated Triangle motion information for video coding
EP4668744A3 (en) * 2018-12-07 2026-03-25 Samsung Electronics Co., Ltd. Video decoding method and device, and video encoding method and device
US12439060B2 (en) * 2018-12-18 2025-10-07 Electronics And Telecommunications Research Institute Image encoding/decoding method and apparatus, and recording media storing bitstream
CN113228640B (zh) * 2018-12-21 2024-07-26 三星电子株式会社 用于对视频进行解码的方法和设备以及用于对视频进行编码的方法和设备
US11671603B2 (en) * 2018-12-28 2023-06-06 Electronics Telecommunications Research Institute Image encoding/decoding method and apparatus, and recording medium storing bitstream
JP2022516091A (ja) * 2018-12-29 2022-02-24 ヴィド スケール インコーポレイテッド 履歴ベースの動きベクトル予測
US11032574B2 (en) * 2018-12-31 2021-06-08 Tencent America LLC Method and apparatus for video coding
US10742972B1 (en) * 2019-03-08 2020-08-11 Tencent America LLC Merge list construction in triangular prediction
MY209882A (en) 2019-03-11 2025-08-08 Apple Inc Method for encoding/decoding video signal,and apparatus therefor
MX2022000234A (es) * 2019-07-05 2022-04-07 Lg Electronics Inc Metodo y dispositivo de codificacion/decodificacion de video para derivar el indice de ponderacion para prediccion bidireccional de candidato de fusion, y metodo para transmitir flujo de bits.
CN120676144A (zh) * 2019-10-10 2025-09-19 北京达佳互联信息技术有限公司 利用三角分区的视频编解码方法和装置
CN113873249B (zh) 2020-06-30 2023-02-28 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
WO2022083631A1 (en) * 2020-10-20 2022-04-28 Beijing Bytedance Network Technology Co., Ltd. Video coding using sample string vector
CN116711311A (zh) 2020-10-21 2023-09-05 抖音视界有限公司 帧内编解码中的样点字符串处理
WO2022177380A1 (ko) 2021-02-18 2022-08-25 현대자동차주식회사 인터 예측 기반의 비디오 부호화 및 복호화
CN117441335A (zh) * 2021-04-08 2024-01-23 Lg电子株式会社 基于多个帧内预测执行图像预测的图像编码/解码方法和装置以及发送比特流的方法
CN118592030A (zh) * 2021-12-28 2024-09-03 株式会社Kt 图像编码/解码方法及装置
US12095984B2 (en) * 2022-02-07 2024-09-17 Tencent America LLC Sub-block based constraint on bi-prediction for out-of-boundary conditions
JP7734111B2 (ja) * 2022-04-12 2025-09-04 Kddi株式会社 画像復号装置、画像復号方法及びプログラム
JP2023156064A (ja) * 2022-04-12 2023-10-24 Kddi株式会社 画像復号装置、画像復号方法及びプログラム
JP7850002B2 (ja) * 2022-04-12 2026-04-22 Kddi株式会社 画像復号装置、画像復号方法及びプログラム
US12348747B2 (en) * 2023-04-25 2025-07-01 Tencent America LLC Implicit masked blending mode
US12477122B2 (en) * 2023-06-20 2025-11-18 Tencent America LLC Implicit masked blending mode improvement
US12284375B2 (en) 2023-06-27 2025-04-22 Tencent America LLC Implicit masked blending mode improvement with high level syntax
US12568242B2 (en) 2023-07-14 2026-03-03 Tencent America LLC Implicit masked blending mode combined with MV refinement methods

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8995776B2 (en) * 2010-06-17 2015-03-31 Sharp Kabushiki Kaisha Image filter device, decoding apparatus, encoding apparatus, and data structure
WO2012074344A2 (ko) * 2010-12-03 2012-06-07 엘지전자 주식회사 움직임 정보 리스트 인덱싱 방법 및 이러한 방법을 사용하는 장치
CN102685479A (zh) * 2011-03-11 2012-09-19 华为技术有限公司 视频编解码处理方法和装置
RU2719308C2 (ru) 2011-04-12 2020-04-17 Сан Пэтент Траст Способ кодирования движущихся изображений, устройство кодирования движущихся изображений, способ декодирования движущихся изображений, устройство декодирования движущихся изображений и устройство кодирования и декодирования движущихся изображений
CN106803956B (zh) * 2011-06-14 2020-05-01 三星电子株式会社 对图像进行解码的方法
KR101423648B1 (ko) * 2011-09-09 2014-07-28 주식회사 케이티 화면 간 예측 수행시 후보 블록 결정 방법 및 이러한 방법을 사용하는 장치
WO2013058583A1 (ko) * 2011-10-18 2013-04-25 주식회사 케이티 영상 부호화 방법, 영상 복호화 방법, 영상 부호화기 및 영상 복호화기
US9571833B2 (en) * 2011-11-04 2017-02-14 Nokia Technologies Oy Method for coding and an apparatus
US20130114717A1 (en) 2011-11-07 2013-05-09 Qualcomm Incorporated Generating additional merge candidates
HUE050755T2 (hu) 2012-04-12 2021-01-28 Jvc Kenwood Corp Videó dekódoló készülék, videó dekódoló eljárás, videó dekódoló program
KR102250092B1 (ko) * 2013-10-14 2021-05-10 삼성전자주식회사 다시점 비디오 부호화 방법 및 장치, 다시점 비디오 복호화 방법 및 장치
US9854237B2 (en) * 2014-10-14 2017-12-26 Qualcomm Incorporated AMVP and merge candidate list derivation for intra BC and inter prediction unification
WO2016078511A1 (en) * 2014-11-18 2016-05-26 Mediatek Inc. Method of bi-prediction video coding based on motion vectors from uni-prediction and merge candidate
US10271064B2 (en) * 2015-06-11 2019-04-23 Qualcomm Incorporated Sub-prediction unit motion vector prediction using spatial and/or temporal motion information
ES2677193B1 (es) * 2015-08-28 2019-06-19 Kt Corp Procedimiento y dispositivo para procesar señales de vídeo
WO2017039117A1 (ko) * 2015-08-30 2017-03-09 엘지전자(주) 영상의 부호화/복호화 방법 및 이를 위한 장치
WO2017069588A1 (ko) * 2015-10-22 2017-04-27 엘지전자(주) 영상의 부호화/복호화 방법 및 이를 위한 장치
JP6491587B2 (ja) * 2015-11-06 2019-03-27 日本電信電話株式会社 映像符号化装置、映像復号装置、映像符号化方法、映像復号方法、映像符号化プログラム及び映像復号プログラム
WO2017086738A1 (ko) * 2015-11-19 2017-05-26 한국전자통신연구원 영상 부호화/복호화 방법 및 장치
KR20170058838A (ko) * 2015-11-19 2017-05-29 한국전자통신연구원 화면간 예측 향상을 위한 부호화/복호화 방법 및 장치
CN108293132A (zh) 2015-11-24 2018-07-17 三星电子株式会社 图像编码方法和装置以及图像解码方法和装置
EP3395072A4 (en) * 2015-12-22 2019-05-22 RealNetworks, Inc. MOTION VECTOR SELECTION AND FORECASTING IN VIDEO PROCESSING SYSTEMS AND METHOD
WO2017123133A1 (en) 2016-01-12 2017-07-20 Telefonaktiebolaget Lm Ericsson (Publ) Video coding using hybrid intra prediction
US10560718B2 (en) 2016-05-13 2020-02-11 Qualcomm Incorporated Merge candidates for motion vector prediction for video coding
US11509930B2 (en) * 2016-07-12 2022-11-22 Electronics And Telecommunications Research Institute Image encoding/decoding method and recording medium therefor
US11381829B2 (en) * 2016-08-19 2022-07-05 Lg Electronics Inc. Image processing method and apparatus therefor
EP3340554B1 (en) * 2016-12-21 2025-06-04 Institut Mines-Telecom Methods and devices for sub-block decoding data signals
US10715827B2 (en) * 2017-01-06 2020-07-14 Mediatek Inc. Multi-hypotheses merge mode
CN116886898A (zh) * 2017-01-16 2023-10-13 世宗大学校产学协力团 影像解码/编码方法以及传送比特流的方法
KR20180084659A (ko) * 2017-01-16 2018-07-25 세종대학교산학협력단 영상의 부호화/복호화 방법 및 장치
CN116193109B (zh) 2017-01-16 2026-07-24 世宗大学校产学协力团 影像编码/解码方法
KR20200097811A (ko) * 2018-02-22 2020-08-19 엘지전자 주식회사 영상 코딩 시스템에서 블록 분할 구조에 따른 영상 디코딩 방법 및 장치
CN117692636A (zh) * 2018-10-27 2024-03-12 华为技术有限公司 图像预测方法及装置
WO2020094049A1 (en) * 2018-11-06 2020-05-14 Beijing Bytedance Network Technology Co., Ltd. Extensions of inter prediction with geometric partitioning
CN116248870B (zh) * 2018-11-08 2025-07-11 Oppo广东移动通信有限公司 视频信号编码/解码方法以及用于所述方法的设备
EP3884670B9 (en) * 2018-11-22 2023-07-19 Huawei Technologies Co., Ltd. Method, apparatus and computer program product for inter prediction
US10778977B2 (en) 2018-12-05 2020-09-15 Qualcomm Incorporated Triangle motion information for video coding
US10893298B2 (en) * 2018-12-12 2021-01-12 Tencent America LLC Method and apparatus for video coding

Also Published As

Publication number Publication date
US20220337832A1 (en) 2022-10-20
US20250071274A1 (en) 2025-02-27
ES2972075T3 (es) 2024-06-11
US11470312B2 (en) 2022-10-11
PL4274233T3 (pl) 2026-08-10
JP7577232B2 (ja) 2024-11-01
CN116248870B (zh) 2025-07-11
JP2024045337A (ja) 2024-04-02
CN113395519B (zh) 2023-04-07
US20210337196A1 (en) 2021-10-28
AU2024205787A1 (en) 2024-09-05
US12184848B2 (en) 2024-12-31
PT3876539T (pt) 2024-02-06
MX2021005504A (es) 2021-06-18
US20260067457A1 (en) 2026-03-05
HUE065784T2 (hu) 2024-06-28
IL307153B1 (en) 2024-06-01
IL282761B1 (en) 2023-12-01
IL307153A (en) 2023-11-01
KR20200054104A (ko) 2020-05-19
CN116248869B (zh) 2026-03-31
DK3876539T3 (da) 2024-02-12
JP2026012870A (ja) 2026-01-27
CA3118269A1 (en) 2020-05-14
WO2020096388A1 (ko) 2020-05-14
MY206549A (en) 2024-12-20
PH12021550966A1 (en) 2021-12-06
EP4274233A3 (en) 2023-11-22
AU2024205787B2 (en) 2026-01-29
AU2019375315B2 (en) 2024-06-06
US20260067459A1 (en) 2026-03-05
SG11202104433RA (en) 2021-05-28
JP7430721B2 (ja) 2024-02-13
CN121309848A (zh) 2026-01-09
EP4274233B1 (en) 2026-04-29
ZA202103439B (en) 2022-07-27
CA3118269C (en) 2023-10-03
CN113395519A (zh) 2021-09-14
US20220337833A1 (en) 2022-10-20
JP7766766B2 (ja) 2025-11-10
JP2025011299A (ja) 2025-01-23
IL282761B2 (en) 2024-04-01
MX2024012528A (es) 2024-11-08
US11882282B2 (en) 2024-01-23
JP2022509024A (ja) 2022-01-20
FI3876539T3 (fi) 2024-02-09
MX2024012527A (es) 2024-11-08
CN116248869A (zh) 2023-06-09
US20260067458A1 (en) 2026-03-05
EP3876539B1 (en) 2023-12-27
IL282761A (en) 2021-06-30
CN121367783A (zh) 2026-01-20
EP3876539A4 (en) 2021-12-29
AU2019375315A1 (en) 2021-06-03
PL3876539T3 (pl) 2024-04-15
MX2024012526A (es) 2024-11-08
IL307153B2 (en) 2024-10-01
BR112021008298A2 (pt) 2021-08-03
CA3207984A1 (en) 2020-05-14
EP3876539A1 (en) 2021-09-08
CN116248870A (zh) 2023-06-09
CN112970260A (zh) 2021-06-15
KR102981260B1 (ko) 2026-06-23
CL2021001128A1 (es) 2021-11-19
MX2024012529A (es) 2024-11-08
EP4274233A2 (en) 2023-11-08
EP4274233C0 (en) 2026-04-29
CN120614466A (zh) 2025-09-09