RS63025B1 - Particionisanje blokova svetlosti i boje - Google Patents

Particionisanje blokova svetlosti i boje

Info

Publication number
RS63025B1
RS63025B1 RS20220265A RSP20220265A RS63025B1 RS 63025 B1 RS63025 B1 RS 63025B1 RS 20220265 A RS20220265 A RS 20220265A RS P20220265 A RSP20220265 A RS P20220265A RS 63025 B1 RS63025 B1 RS 63025B1
Authority
RS
Serbia
Prior art keywords
coding
color
subtree
samples
coding tree
Prior art date
Application number
RS20220265A
Other languages
English (en)
Inventor
Yin Zhao
Haitao Yang
Jianle Chen
Jiali Fu
Original Assignee
Huawei Tech Co 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 Huawei Tech Co Ltd filed Critical Huawei Tech Co Ltd
Publication of RS63025B1 publication Critical patent/RS63025B1/sr

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/186Methods 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 colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/1883Methods 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 relating to sub-band structure, e.g. hierarchical level, directional tree, e.g. low-high [LH], high-low [HL], high-high [HH]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods 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/96Tree coding, e.g. quad-tree coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Color Television Systems (AREA)

Description

Opis
OBLAST TEHNIKE
[0001] Predmetno obelodanjenje se generalno odnosi na kodiranje video zapisa, a posebno se odnosi na generisanje stabala kodiranja za particionisanje blokova kodiranja svetlosti i boje pri kodiranju video zapisa.
STANJE TEHNIKE
[0002] Količina podataka video zapisa koja je potrebna za prikazivanje čak i relativno kratkog video zapisa može biti znatna, što može dovesti do poteškoća kada se podaci strimuju ili na drugi način prenose preko komunikacione mreže sa ograničenim kapacitetom propusnog opsega. Dakle, podaci video zapisa se generalno kompresuju pre nego što se prenose preko savremenih telekomunikacionih mreža. Veličina video zapisa takođe može biti problem kada se video zapis čuva na uređaju za skladištenje jer memorijski resursi mogu biti ograničeni. Uređaji za kompresiju video zapisa često koriste softver i/ili hardver na izvoru kako bi kodirali podatke video zapisa pre prenosa ili skladištenja, čime se smanjuje količina podataka potrebnih za predstavljanje digitalnih video slika. Kompresovani podaci se zatim primaju na odredište pomoću uređaja za dekompresiju video zapisa koji dekodira podatke video zapisa. Sa ograničenim mrežnim resursima i sve većim patentnim zahtevima za višim kvalitetom video zapisa, poželjne su poboljšane tehnike kompresije i dekompresije koje poboljšavaju odnos kompresije uz malo ili nimalo žrtvovanja kvaliteta slike.
[0003] Naredni dokumenti navedeni ovde se takođe odnose na particionisanje blokova kodiranja svetlosti i boje pri kodiranju video zapisa:
CHEN J ET Al: „JVET-G1001-Algorithm description of Joint Exploration Test Model 7 (JEM7)“, JOINT VIDEO EXPLORATION TEAM (JEVT) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11, 7TH MEETING, 13-7-2017; TORINO, 19. avgust 2017. (2017-08-19), stranice i-iv, 1, XP030150980, preuzeto sa interneta: URL: https://jvetexperts.org/;
NEXTSOFTWARE: AN ALTERNATIVE IMPLEMENTATION OF THE JOINT EXPLORATION MODEL (JEM): „Nextsoftware: An alternative implementation of the Joint Exploration Model (JEM)“, 8. JVET MEETING; 18-10-2017 -25-10-2017; MACAU; (THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16); URL: https://jvet-experts.org/, no. JVET-H0084-V4, decembar 2017. (2017-12-06), XP030151086;
URBAN F ET AL: „Decoupled Luma/Chroma Transform Trees for Intra“, 3, JVET Meeting; 26-5-2016 - 1-6-2016; GENEVA; (THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16); https://jvet-experts.org/, no. JVET-C0039, 17. maj 2016. (2016-05-17), XP030150129;
WO 2017/137311 A1.
SAŽETAK
[0004] Pronalazak je definisan u nezavisnim patentnim zahtevima. Dodatne karakteristike pronalaska su date u zavisnim patentnim zahtevima. U nastavku, delovi opisa i crteža koji se odnose na otelotvorenja koja nisu obuhvaćena patentnim zahtevima nisu predstavljeni kao otelotvorenja pronalaska, već kao primeri korisni za razumevanje pronalaska.
[0005] U jednom otelotvorenju, obelodanjenje uključuje postupak implementiran u uređaj za kodiranje video zapisa. Postupak obuhvata dobijanje, od strane procesora uređaja za kodiranje video zapisa, jedinicu stabla kodiranja uključujući čvor stabla kodiranja. Postupak dalje obuhvata particionisanje, od strane procesora, uzoraka svetlosti i uzoraka boje u prvom čvoru stabla kodiranja jedinice stabla kodiranja prema zajedničkom stablu kodiranja kada veličina prvog čvora stabla kodiranja premašuje prag. Postupak dalje obuhvata particionisanje, od strane procesora, uzoraka svetlosti u drugom čvoru stabla kodiranja jedinice stabla kodiranja sa podstablom kodiranja svetlosti kada je veličina drugog čvora stabla kodiranja jednaka ili manja od praga. Postupak dalje obuhvata particionisanje, od strane procesora, uzoraka boje u drugom čvoru stabla kodiranja jedinice stabla kodiranja sa podstablom kodiranja boje kada je veličina drugog čvora stabla kodiranja jednaka ili manja od praga. Kada je uređaj za kodiranje video zapisa enkoder, postupak dalje obuhvata kodiranje uzoraka boje i uzoraka svetlosti u tok bitova na osnovu zajedničkog stabla kodiranja, podstabla kodiranja svetlosti i podstabla kodiranja boje. Kada je uređaj za kodiranje video zapisa dekoder, postupak dalje obuhvata rekonstrukciju podataka o boji i svetlosti primljenih iz toka bitova u deo kadra video zapisa na osnovu zajedničkog stabla kodiranja, podstabla kodiranja svetlosti i podstabla kodiranja boje.
[0006] U ovom otelotvorenju, isto stablo kodiranja se koristi za uzorke i svetlosti i boje za veće blokove (npr. Iznad praga) dok se deli na različita stabla kodiranja (npr. podstabla) za manje blokove (npr. manje od ili jednako pragu). Zasebna stabla omogućavaju različito particionisanje za uzorke svetlosti i boje, i stoga se mogu prilagoditi za povećanje ukupne efikasnosti kodiranja. Međutim, korišćenje zasebnih stabala umesto jednog stabla zahteva više resursa za obradu i rezultuje korišćenjem više memorijskog prostora u konačnom kodiranju. Razdvajanje zajedničkog stabla kodiranja na različita podstabla ispod praga omogućava da se celokupno stablo iz bloka svetlosti ponovo koristi za većinu bloka boje (npr. smanjenje složenosti i upotrebe memorije) dok se podstabla prilagođavaju za manje blokove svetlosti i boje (npr. povećanje efikasnosti kodiranja).
[0007] Opciono, u bilo kom od prethodnih aspekata, pruža se druga implementacija aspekta, gde prag iznosi četiri hiljade devedeset šest piksela ili šest u logaritamskom domenu sa 2 kao osnovom.
[0008] Opciono, u bilo kom od prethodnih aspekata, pruža se druga implementacija aspekta, gde je jedinica stabla kodiranja u kadru intra-predviđanja (I).
[0009] Opciono, u bilo kom od prethodnih aspekata, pruža se druga implementacija aspekta, gde uzorci boje uključuju uzorke boje plave razlike (Cb) i uzorke boje crvene razlike (Cr), i gde su Cb uzorci i Cr uzorci particionisani zajedničkim podstablom kodiranja boje.
[0010] Opciono, u bilo kom od prethodnih aspekata, pruža se druga implementacija aspekta, gde je uređaj za kodiranje video zapisa enkoder. Postupak dalje obuhvata kodiranje u tok bitova luma_chroma_separate oznake kako bi se ukazalo na razdvajanje između podstabla kodiranja svetlosti i podstabla kodiranja boje. Luma_chroma_separate oznaka pruža mehanizam koji ukazuje dekoderu da se koriste različita podstabla kodiranja svetlosti i boje.
[0011] Opciono, u bilo kom od prethodnih aspekata, pruža se druga implementacija aspekta, gde je uređaj za kodiranje video zapisa dekoder. Postupak dalje obuhvata prijem luma_chroma_separate oznake iz toka bitova. Luma_chroma_separate oznaka označava razdvajanje između podstabla kodiranja svetlosti i podstabla kodiranja boje. Uzorci svetlosti i uzorci boje su particionisani zasebnim podstablima kodiranja na osnovu vrednosti luma_chroma_separate oznake. Luma_chroma_separate oznaka pruža mehanizam koji ukazuje dekoderu da se koriste različita podstabla kodiranja svetlosti i boje.
[0012] U jednom otelotvorenju, obelodanjenje uključuje enkoder video zapisa koji sadrži procesor konfigurisan da dobije jedinicu stabla kodiranja uključujući čvor stabla kodiranja. Procesor je takođe konfigurisan da particioniše uzorke svetlosti i uzorke boje u prvom čvoru stabla kodiranja jedinice stabla kodiranja prema zajedničkom stablu kodiranja kada veličina prvog čvora stabla kodiranja premašuje prag. Procesor je takođe konfigurisan da deli uzorke svetlosti u drugom čvoru stabla kodiranja jedinice stabla kodiranja sa podstablom kodiranja svetlosti kada je veličina drugog čvora stabla kodiranja jednaka ili manja od praga. Procesor je takođe konfigurisan da particioniše uzorke boje u drugom čvoru stabla kodiranja jedinice stabla kodiranja sa podstablom kodiranja boje kada je veličina drugog čvora stabla kodiranja jednaka ili manja od praga. Procesor je takođe konfigurisan da kodira uzorke boje i uzorke svetlosti u tok bitova na osnovu zajedničkog stabla kodiranja, podstabla kodiranja svetlosti i podstabla kodiranja boje. Enkoder video zapisa takođe uključuje predajnik povezan sa procesorom. Predajnik je konfigurisan da prenosi tok bitova kako bi podrža rekonstrukciju uzoraka boje i uzoraka svetlosti za prikaz pomoću dekodera video zapisa. U ovom otelotvorenju, isto stablo kodiranja se koristi za uzorke i svetlosti i boje za veće blokove (npr. Iznad praga) dok se deli na različita stabla kodiranja (npr. podstabla) za manje blokove (npr. manje od ili jednako pragu). Zasebna stabla omogućavaju različito particionisanje za uzorke svetlosti i boje, i stoga se mogu prilagoditi za povećanje ukupne efikasnosti kodiranja.
Međutim, korišćenje zasebnih stabala umesto jednog stabla zahteva više resursa za obradu i rezultuje korišćenjem više memorijskog prostora u konačnom kodiranju. Razdvajanje zajedničkog stabla kodiranja na različita podstabla ispod praga omogućava da se celokupno stablo od svetlosti ponovo koristi za veći deo boje (npr. smanjenje složenosti i upotrebe memorije) dok se podstabla prilagođavaju manjim blokovima svetlosti i boje (npr. povećanje efikasnosti kodiranja).
[0013] Opciono, u bilo kom od prethodnih aspekata, pruža se druga implementacija aspekta, gde prag iznosi četiri hiljade devedeset šest piksela ili šest u logaritamskom domenu sa 2 kao osnovom.
[0014] Opciono, u bilo kom od prethodnih aspekata, pruža se druga implementacija aspekta, gde je jedinica stabla kodiranja u I kadru.
[0015] Opciono, u bilo kom od prethodnih aspekata, pruža se druga implementacija aspekta, gde uzorci boje uključuju Cb uzorke i Cr uzorke, i gde su Cb uzorci i Cr uzorci particionisani zajedničkim podstablom kodiranja boje.
[0016] Opciono, u bilo kom od prethodnih aspekata, pruža se druga implementacija aspekta, gde je procesor dalje konfigurisan da kodira luma_chroma_separate oznaku u tok bitova kako bi ukazao na razdvajanje između podstabla kodiranja svetlosti i podstabla kodiranja boje. Luma_chroma_separate oznaka pruža mehanizam koji ukazuje dekoderu da su u upotrebi različita podstabla kodiranja svetlosti i boje.
[0017] U jednom otelotvorenju, obelodanjenje uključuje dekoder video zapisa koji sadrži prijemnik za prijemnik za prijem toka bitova uključujući jedinicu stabla kodiranja uključujući podatke o svetlosti i podatke o boji. Dekoder video zapisa dalje sadrži procesor povezan sa prijemnikom. Procesor je konfigurisan da deli podatke o svetlosti i boji sa zajedničkim stablom kodiranja kada veličina prvog čvora stabla kodiranja premaši prag. Procesor je dalje konfigurisan da deli podatke o svetlosti sa podstablom kodiranja svetlosti kada je veličina drugog čvora stabla kodiranja jednaka ili manja od praga. Procesor je dalje konfigurisan da deli podatke o boji sa podstablom kodiranja boje kada je veličina trećeg čvora stabla kodiranja jednaka ili manja od praga, gde podstablo kodiranja svetlosti sadrži drugačiji skup režima razdvajanja od podstabla kodiranja boje. Procesor je dalje konfigurisan da rekonstruiše podatke o boji i podatke o svetlosti u isečak kadra video zapisa na osnovu zajedničkog stabla kodiranja, podstabla kodiranja svetlosti i podstabla kodiranja boje.
Procesor je dalje konfigurisan da prosleđuje kadar video zapisa ka ekranu. U ovom otelotvorenju, isto stablo kodiranja se koristi za uzorke i svetlosti i boje za veće blokove (npr. Iznad praga) dok se deli na različita stabla kodiranja (npr. podstabla) za manje blokove (npr. manje od ili jednako pragu). Zasebna stabla omogućavaju različito particionisanje za uzorke svetlosti i boje, i stoga se mogu prilagoditi za povećanje ukupne efikasnosti kodiranja.
Međutim, korišćenje zasebnih stabala umesto jednog stabla zahteva više resursa za obradu i rezultuje korišćenjem više memorijskog prostora u konačnom kodiranju. Razdvajanje zajedničkog stabla kodiranja na različita podstabla ispod praga omogućava da se celokupno stablo od svetlosti ponovo koristi za veći deo boje (npr. smanjenje složenosti i upotrebe memorije) dok se podstabla prilagođavaju manjim blokovima svetlosti i boje (npr. povećanje efikasnosti kodiranja).
[0018] Opciono, u bilo kom od prethodnih aspekata, pruža se druga implementacija aspekta, gde prag iznosi četiri hiljade devedeset šest piksela ili šest u logaritamskom domenu sa 2 kao osnovom.
[0019] Opciono, u bilo kom od prethodnih aspekata, pruža se druga implementacija aspekta, gde su podaci o svetlosti i podaci o boji particionisani različitim podstablima kodiranja kada je jedinica stabla kodiranja uključena u isečak I tipa iz kadra video zapisa.
[0020] Opciono, u bilo kom od prethodnih aspekata, pruža se druga implementacija aspekta, gde podaci o boji uključuju Cb podatke i Cr podatke, i gde su Cb podaci i Cr podaci particionisani zajedničkim podstablom kodiranja boje.
[0021] Opciono, u bilo kom od prethodnih aspekata, pruža se druga implementacija aspekta, gde je procesor dalje konfigurisan da dobije luma_chroma_separate oznaku iz toka bitova, gde luma_chroma_separate oznaka ukazuje na razdvajanje između podstabla kodiranja svetlosti i podstabla kodiranja boje, i gde su podaci o svetlosti i podaci o boji particionisani različitim podstablima kodiranja na osnovu vrednosti luma_chroma_separate oznake.
Luma_chroma_separate oznaka pruža mehanizam koji ukazuje dekoderu da se koriste različita podstabla kodiranja svetlosti i boje.
[0022] U jednom aspektu, obelodanjenje uključuje neprolazni računarski čitljiv medijum koji sadrži računarski programski proizvod za upotrebu od strane uređaja za kodiranje video zapisa, gde računarski programski proizvod sadrži računarski izvršne instrukcije uskladištene na neprolaznom računarski čitljivom medijumu tako da kada se izvršava od strane procesora dovode do toga da dekoder video zapisa izvrši postupak bilo kog od prethodnih aspekata.
[0023] U jednom aspektu, obelodanjenje uključuje uređaj za kodiranje video zapisa koji sadrži način preuzimanja za dobijanje jedinice stabla kodiranja uključujući čvor stabla kodiranja. Uređaj za kodiranje video zapisa takođe uključuje zajednički način za particionisanje stabla za particionisanje uzoraka svetlosti i uzoraka boje u prvom čvoru stabla kodiranja jedinice stabla kodiranja prema zajedničkom stablu kodiranja kada veličina prvog čvora stabla kodiranja premašuje prag. Uređaj za kodiranje video zapisa takođe uključuje način za particionisanje podstabla kodiranja svetlosti za particionisanje uzoraka svetlosti u drugom čvoru stabla kodiranja jedinice stabla kodiranja sa podstablom kodiranja svetlosti kada je veličina drugog čvora stabla kodiranja jednaka ili manja od praga. Uređaj za kodiranje video zapisa takođe uključuje način za particionisanje podstabla kodiranja boje za particionisanje uzoraka boje u drugom čvoru stabla kodiranja jedinice stabla kodiranja sa podstablom kodiranja boje kada je veličina drugog čvora stabla kodiranja jednaka ili manja od praga. U ovom otelotvorenju, isto stablo kodiranja se koristi za uzorke i svetlosti i boje za veće blokove (npr. Iznad praga) dok se deli na različita stabla kodiranja (npr. podstabla) za manje blokove (npr. manje od ili jednako pragu). Zasebna stabla omogućavaju različito particionisanje za uzorke svetlosti i boje, i stoga se mogu prilagoditi za povećanje ukupne efikasnosti kodiranja. Međutim, korišćenje zasebnih stabala umesto jednog stabla zahteva više resursa za obradu i rezultuje korišćenjem više memorijskog prostora u konačnom kodiranju. Razdvajanje zajedničkog stabla kodiranja na različita podstabla ispod praga omogućava da se celokupno stablo od svetlosti ponovo koristi za veći deo boje (npr. smanjenje složenosti i upotrebe memorije) dok se podstabla prilagođavaju manjim blokovima svetlosti i boje (npr. povećanje efikasnosti kodiranja).
[0024] Opciono, u bilo kom od prethodnih aspekata, pruža se druga implementacija aspekta gde su načini preuzimanja, načini za particionisanje zajedničkog drveta, načini za particionisanje podstabla svetlosti i načini za particionisanje podstabla boje dati za izvođenje postupka bilo kog prethodnih aspekata.
[0025] U jednom otelotvorenju, obelodanjenje uključuje postupak koja obuhvata određivanje da je jedinica stabla kodiranja u I kadru. Kada prvi čvor stabla kodiranja u stablu kodiranja koje odgovara jedinici stabla kodiranja ima veličinu veću od praga, razdvaja blok kodiranja uzoraka svetlosti i blok kodiranja uzoraka boje povezane sa prvim čvorom stabla kodiranja sa zajedničkim stablom kodiranja. Kada drugi čvor stabla kodiranja u stablu kodiranja ima veličinu jednaku ili manju od praga, razdvaja blok kodiranja uzoraka svetlosti povezanih sa drugim čvorom stabla kodiranja sa stablom kodiranja svetlosti, i razdvaja blok kodiranja uzoraka boje povezan sa drugim čvorom stabla kodiranja sa stablom kodiranje boje.
[0026] Opciono, u bilo kom od prethodnih aspekata, pruža se druga implementacija aspekta, gde prag iznosi 4096 uzoraka svetlosti ili 2048 uzoraka svetlosti.
[0027] Opciono, u bilo kom od prethodnih aspekata, pruža se druga implementacija aspekta, gde je zajedničko stablo kodiranja razdvojeno na četiri stabla.
[0028] Opciono, u bilo kom od prethodnih aspekata, pruža se druga implementacija aspekta, gde je režim razdvajanja prvog čvora stabla kodiranja impliciran kada čvor stabla kodiranja ima veličinu veću od praga.
[0029] Opciono, u bilo kom od prethodnih aspekata, pruža se druga implementacija aspekta, gde je veličina predstavljena sa log2CbSize, a prag je jednak 6.
[0030] U jednom aspektu, obelodanjenje uključuje uređaj za kodiranje video zapisa koji sadrži procesor konfigurisan da izvrši bilo koji od prethodnih aspekata.
[0031] Ove i druge karakteristike će biti jasnije shvaćene iz narednog detaljnog opisa u vezi sa priloženim slikama i patentnim zahtevima.
KRATAK OPIS SLIKA
[0032] Za potpunije razumevanje ovog otkrića, sada se upućuje na sledeći kratak opis, uzet u vezi sa pratećim crtežima i detaljnim opisom, gde slični referentni brojevi predstavljaju slične delove.
SLIKA 1 je dijagram toka primera postupka kodiranja video signala.
SLIKA 2 je šematski dijagram primera sistema za kodiranje i dekodiranje (kodek) za kodiranje video zapisa.
SLIKA 3 je šematski dijagram koji ilustruje primer enkodera video zapisa koji može da particioniše blokove svetlosti i boje.
SLIKA 4 je šematski dijagram koji ilustruje primer dekodera video zapisa koji može da particioniše blokove svetlosti i boje.
SLIKA 5 je šematski dijagram koji ilustruje primer mehanizma particionisanja jedinice stabla kodiranja (CTU) na jedinice kodiranja (CU) koje sadrže blokove kodiranja (CB) svetlosti i CB boje.
SLIKA 6 ilustruje primer stabla kodiranja primenjenog na CTU.
SLIKA 7 je šematski dijagram koji ilustruje primer skupa režima razdvajanja koji se koriste u stablima kodiranja.
SLIKA 8 je dijagram toka primera postupka particionisanja CTU sa zajedničkim stablom kodiranja za CB iznad veličine praga i sa razdvojenim podstablima za CB sa veličinom jednakom ili manjom od veličine praga.
SLIKA 9 je šematski dijagram primera uređaja za kodiranje video zapisa.
SLIKA 10 je šematski dijagram primera sistema za particionisanje CTU sa zajedničkim stablom kodiranja za CB iznad veličine praga i sa razdvojenim podstablima za CB veličine jednake ili manje od veličine praga.
SLIKA 11 je dijagram toka primera postupka particionisanja CTU sa zajedničkim stablom kodiranja za CB iznad veličine praga i sa razdvojenim podstablima za CB sa veličinom jednakom ili manjom od veličine praga.
DETALJAN OPIS
[0033] Trebalo bi shvatiti na početku da iako je ilustrativna implementacija jednog ili više otelotvorenja data u nastavku, obelodanjeni sistemi i/ili postupci mogu biti implementirani korišćenjem mnoštva tehnika, bilo da su trenutno poznate ili postoje. Obelodanjenje ni na koji način ne bi trebalo da bude ograničeno na ilustrativne implementacije, slike i tehnike ilustrovane u nastavku, uključujući primere dizajna i implementacije ilustrovane i opisane ovde, ali može biti modifikovano u okviru priloženih patentnih zahteva.
[0034] Kodiranje video zapisa uključuje particionisanje kadrova video zapisa na blokove i kodiranje blokova putem intra-predviđanja i inter-predviđanja radi kompresije veličine video datoteke. Predmetno obelodanjenje se odnosi na poboljšanja u procesu particionisanja. Kadar video zapisa se prvo deli na jedinice stabla kodiranja (CTU). CTU sadrže podatke o pikselima izražene kao uzorci svetlosti (npr. vrednosti svetla naspram tame) i vrednosti boje (npr. Boja). CTU je particionisan sa jednim ili više stabala kodiranja kako bi se kreirali blokovi kodiranja (CB) koji se zatim mogu kodirati (npr. kodirati kada su u enkoderu ili dekodirati kada su u dekoderu). U nekim sistemima, jedno stablo kodiranja se koristi za particionisanje uzoraka i svetlosti i boje. Problem sa takvim sistemom su uzorci svetlosti u CTU i uzorci boje u CTU mogu da sadrže značajno različite obrasce. Kao takvo, stablo kodiranja koje podržava efikasno kodiranje za komponente svetlosti može rezultovati neefikasnim kodiranjem za komponente boje, i obrnuto. Dakle, takav sistem može da kreira
1
kompresovane video datoteke sa suboptimalnom efikasnošću kodiranja (npr. smanjena kompresija i veća veličina datoteke).
[0035] U alternativnom sistemu, različita stabla kodiranja se koriste za uzorke svetlosti i uzorke boje. Takav sistem rezultuje povećanom efikasnošću kodiranja za kodiranje bloka. Međutim, određivanje zasebnog stabla kodiranja svetlosti i stabla kodiranja boje za svaku CTU značajno povećava složenost procesa kodiranja. Na primer, takav pristup može udvostručiti količinu resursa za obradu koji se koriste tokom dela kodiranja za particionisanje pošto se bira dvostruki broj stabala kodiranja. Dalje, izabrana stabla kodiranja su kodirana u tok bitova kao podaci o particionisanju. Stoga, korišćenje zasebnih stabala za kodiranje svetlosti i stabala za kodiranje boje za svaku CTU može povećati količinu podataka particionisanja uskladištenih u kodiranju (npr. udvostručiti broj kodiranih stabala), što poništava neke od efikasnosti kodiranja dobijene kodiranjem bloka.
[0036] Ovde su obelodanjeni mehanizmi za poboljšanje CTU particionisanja. Uobičajeno stablo kodiranja se koristi za kodiranje i uzoraka svetlosti i uzoraka boje sve dok su odgovarajući CB veći od unapred definisanog praga (npr. četiri hiljade devedeset šest piksela). CB svetlosti i CB boje koji su jednaki ili manji od veličine praga su particionisani podstablom kodiranja svetlosti i podstablom kodiranja boje, respektivno. Podstablo kodiranja svetlosti i podstablo kodiranja boje mogu se razlikovati. Dakle, podstabla se mogu odabrati da povećaju efikasnost kodiranja na osnovu varijacija između uzoraka svetlosti i uzoraka boje. Dalje, zajedničko stablo kodiranja sa razdvojenim podstablima kodiranja svetlosti i podstablima za kodiranje boje koristi manje podataka od dva potpuno zasebna stabla kodiranja. Dakle, stablo kodiranja sa razdvojenim podstablima povećava efikasnost kodiranja u odnosu na zasebna stabla kodiranja. Pored toga, odabir stabla kodiranja sa razdvojenim podstablima je manje složen od odabira dva zasebna stabla kodiranja, pa stoga koristi manje resursa za obradu. Na primer, proces odabira stabla kodiranja sa razdvojenim podstablima može se desiti brže od procesa izbora para stabala kodiranja za CTU. Mehanizam razdvojenog podstabla koji je ovde obelodanjen može se primeniti na intra-predviđene (I) isečke (npr. isečke tipa I) u kadru video zapisa. Mehanizam razdvojenog podstabla se takođe može primeniti na isečke predviđanja (P) i dvosmernog predviđanja (B) (npr. isečke na P tipu i B tipu, respektivno). U jednom primeru, mehanizam razdvojenog podstabla se može podrazumevati i stoga generalno koristiti (npr. na I isečcima). U drugom primeru, luma_chroma_separate oznaka može biti postavljena u sintaksi vezanoj za CTU u tok bitova kako bi se ukazalo da li su razdvojena podstabla korišćena za odgovarajući CTU. Shodno tome, mehanizam razdvojenog podstabla koji je ovde opisan može da se koristi od strane enkodera kada particioniše CTU za kodiranje i odgovarajućeg dekodera kada particioniše CTU za dekodiranje.
[0037] SLIKA 1 je dijagram toka primera operativnog postupka 100 kodiranja video signala. Konkretno, video signal je kodiran u enkoderu. Proces kodiranja kompresuje video signal upotrebom različitih mehanizama za smanjenje veličine video datoteke. Manja veličina datoteke omogućava da se kompresovana video datoteka prenese ka korisniku uz smanjenje povezanog propusnog opsega. Dekoder zatim dekodira kompresovanu video datoteku kako bi rekonstruisao originalni video signal za prikaz krajnjem korisniku. Proces dekodiranja generalno odražava proces kodiranja kako bi omogućio dekoderu da dosledno rekonstruiše video signal.
[0038] U koraku 101, video signal se unosi u enkoder. Na primer, video signal može biti nekompresovana video datoteka sačuvana u memoriji. Kao drugi primer, video datoteka može biti snimljena uređajem za snimanje video zapisa, kao što je video kamera, i kodirana da podrži striming video zapisa uživo. Video datoteka može da sadrži i audio komponentu i video komponentu. Video komponenta sadrži niz kadrova slike koji, kada se gledaju u nizu, daju vizuelni utisak kretanja. Kadrovi sadrže piksele koji su izraženi u smislu svetlosti, koji se ovde pominju kao komponente svetlosti (ili uzorci svetlosti), i boje, koji se nazivaju komponente boje (ili uzorci boje). U nekim primerima, kadrovi mogu takođe da sadrže vrednosti dubine kako bi podržali trodimenzionalno gledanje.
[0039] U koraku 103, video zapis se deli na blokove. Particionisanje uključuje podelu piksela u svakom kadru na kvadratne i/ili pravougaone blokove radi kompresije. Na primer, u visokoefikasnom kodiranju video zapisa (High Efficiency Video Coding - HEVC) (takođe poznat kao H.265 i MPEG-H Part 2) kadar se prvo može podeliti na jedinice stabla kodiranja (CTU), koje su blokovi unapred definisane veličine (npr. šezdeset četiri piksela sa šezdeset četiri piksela). CTU sadrže uzorke i svetlosti i boje. Stabla kodiranja se mogu koristiti za podelu CTU na blokove, a zatim se blokovi rekurzivno dele dok se ne postignu konfiguracije koje podržavaju dalje kodiranje. Na primer, komponente svetlosti kadra mogu se deliti sve dok pojedinačni blokovi ne sadrže relativno homogene vrednosti osvetljenja. Dalje, komponente boje kadra mogu se deliti sve dok pojedinačni blokovi ne sadrže relativno homogene vrednosti boje. Shodno tome, mehanizmi particionisanja variraju u zavisnosti od sadržaja kadrova video zapisa.
[0040] U koraku 105, koriste se različiti mehanizmi kompresije za kompresovanje blokova slike particionisanih u koraku 103. Na primer, može se koristiti inter-predviđanje i/ili intrapredviđanje. Inter-predviđanje je dizajnirano da iskoristi činjenicu da se objekti u zajedničkoj sceni obično pojavljuju u uzastopnim kadrovima. Shodno tome, blok koji prikazuje objekat u referentnom kadru ne mora biti više puta opisan u susednim kadrovima. Konkretno, objekat, kao što je sto, može ostati u konstantnoj poziciji u više kadrova. Stoga je sto opisan jednom i susedni kadrovi mogu da pozivaju referentni kadar. Mehanizmi za podudaranje uzoraka mogu se koristiti za uparivanje objekata u više kadrova. Dalje, pokretni objekti mogu biti predstavljeni u više kadrova, na primer zbog pomeranja objekta ili kretanja kamere. Kao poseban primer, video može prikazati automobil koji se kreće po ekranu u više kadrova. Vektori kretanja se mogu koristiti za opisivanje takvog kretanja. Vektor kretanja je dvodimenzionalni vektor koji pruža pomak od koordinata objekta u kadru do koordinata objekta u referentnom kadru. Kao takvo, inter-predviđanje može da kodira blok slike u trenutnom kadru kao skup vektora kretanja koji ukazuju na pomak od odgovarajućeg bloka u referentnom kadru.
[0041] Intra-predviđanje kodira blokove u zajednički kadar. Intra-predviđanje koristi prednost činjenice da komponente svetlosti i boje imaju tendenciju da se grupišu u kadru. Na primer, deo zelene boje u delu drveta ima tendenciju da bude pozicioniran pored sličnih zelenih delova. Intra-predviđanje koristi višestruke usmerene režime predviđanja (npr. trideset tri u HEVC), planarni režim i režim jednosmerne struje (DC). Usmereni režimi pokazuju da je trenutni blok sličan/isti kao uzorci susednog bloka u odgovarajućem pravcu. Planarni režim označava da se niz blokova duž reda/kolone (npr. Ravan) može interpolirati na osnovu susednih blokova na ivicama reda. Planarni režim, u stvari, ukazuje na glatku tranziciju svetlosti/boje preko reda/kolone koristeći relativno konstantan nagib u promenljivim vrednostima. DC režim se koristi za izravnavanje granica i ukazuje da je blok sličan/isti kao prosečna vrednost povezana sa uzorcima svih susednih blokova povezanih sa ugaonim pravcima režima usmerenog predviđanja. Shodno tome, blokovi intra-predviđanja mogu predstaviti blokove slike kao različite vrednosti režima relacionog predviđanja umesto stvarnih vrednosti. Dalje, inter-predviđeni blokovi mogu predstavljati blokove slike kao vrednosti vektora kretanja umesto stvarnih vrednosti. U oba slučaja, blokovi predviđanja možda neće tačno predstavljati blokove slike u nekim slučajevima. Sve razlike se čuvaju u
1
rezidualnim blokovima. Transformacije se mogu primeniti na rezidualne blokove radi daljeg kompresovanja datoteke.
[0042] U koraku 107, mogu se primeniti različite tehnike filtriranja. U HEVC, filteri se primenjuju prema šemi filtriranja u petlji. Predviđanje zasnovano na blokovima o kom je razmatrano iznad može rezultovati stvaranjem blokova slika u dekoderu. Dalje, šema predviđanja zasnovana na bloku može kodirati blok i zatim rekonstruisati kodirani blok za kasniju upotrebu kao referentni blok. Šema filtriranja u petlji iterativno primenjuje filtere za suzbijanje šuma, filtere za deblokiranje, filtere adaptivne petlje i filtere adaptivnog pomeranja uzorka (SAO) na blokove/kadrove. Ovi filteri ublažavaju takve artefakte blokiranja tako da se kodirana datoteka može precizno rekonstruisati. Dalje, ovi filteri ublažavaju artefakte u rekonstruisanim referentnim blokovima tako da je manja verovatnoća da će artefakti stvoriti dodatne artefakte u narednim blokovima koji su kodirani na osnovu rekonstruisanih referentnih blokova.
[0043] Jednom kada je video signal particionisan, kompresovan i filtriran, rezultujući podaci se kodiraju u tok bitova u koraku 109. Tok bitova uključuje podatke o kojima se je bilo reči iznad, kao i sve signalne podatke koji su namenjeni da podrže pravilnu rekonstrukciju video signala u dekoderu. Na primer, takvi podaci mogu uključivati podatke o particionisanju, podatke predviđanja, rezidualne blokove i različite oznake koje daju uputstva za kodiranje dekoderu. Tok podataka može biti sačuvan u memoriji za prenos ka dekoderu na zahtev. Tok podataka se takođe može emitovati i/ili višestruko prenositi prema većem broju dekodera. Kreiranje bitova je iterativni proces. Shodno tome, koraci 101, 103, 105, 107 i 109 se mogu odvijati kontinuirano i/ili istovremeno u mnogim kadrovima i blokovima. Redosled prikazan na SLICI 1 je predstavljen radi jasnoće i lakoće diskusije i nema za cilj da ograniči proces kodiranja video zapisa na određeni redosled.
[0044] Dekoder prima tok bitova i počinje proces dekodiranja u koraku 111. Konkretno, dekoder koristi entropijsku šemu dekodiranja da konvertuje tok bitova u odgovarajuću sintaksu i podatke video zapisa. Dekoder koristi podatke sintakse iz toka bitova kako bi odredio particije za kadrove u koraku 111. Particionisanje bi trebalo da odgovara rezultatima particionisanja bloka u koraku 103. Entropijsko kodiranje/dekodiranje kao što je korišćeno u koraku 111 je sada opisano. Enkoder pravi mnoge izbore tokom procesa kompresije, kao što je biranje šema za particionisanje blokova između nekoliko mogućih izbora na osnovu prostornog pozicioniranja vrednosti na ulaznoj slici. Signalizacija tačnih izbora može koristiti veliki broj binova. Kako se ovde koristi, bin je binarna vrednost koja se tretira kao promenljiva (npr. vrednost bita koja može da varira u zavisnosti od konteksta). Entropijsko kodiranje omogućava enkoderu da odbaci sve opcije koje očigledno nisu održive za određeni slučaj, ostavljajući skup dozvoljenih opcija. Svakoj dozvoljenoj opciji se tada dodeljuje kodna reč. Dužina kodnih reči je zasnovana na broju dozvoljenih opcija (npr., jedna korpa za dve opcije, dve korpe za tri do četiri opcije, itd.). Enkoder zatim kodira kodnu reč za izabranu opciju. Ova šema smanjuje veličinu kodnih reči pošto su kodne reči onoliko velike koliko je potrebno da jedinstveno ukažu na izbor iz malog podskupa dozvoljenih opcija za razliku od jedinstvenog označavanja izbora od potencijalno velikog skupa svih mogućih opcija.
Dekoder zatim dekodira izbor određivanjem skupa dozvoljenih opcija na sličan način kao enkoder. Određivanjem skupa dozvoljenih opcija, dekoder može pročitati kodnu reč i odrediti izbor koji je izvršio enkoder.
[0045] U koraku 113, dekoder izvodi blok dekodiranje. Konkretno, dekoder koristi obrnute transformacije za generisanje rezidualnih blokova. Zatim dekoder koristi rezidualne blokove i odgovarajuće blokove predviđanja da rekonstruiše blokove slike u skladu sa particionisanjem. Blokovi predviđanja mogu uključivati i blokove intra-predviđanja i blokove inter-predviđanja kako su generisani u enkoderu u koraku 105. Rekonstruisani blokovi slike se zatim postavljaju u kadrove rekonstruisanog video signala u skladu sa podacima o particionisanju utvrđenim u koraku 111. Sintaksa za korak 113 se takođe može signalizirati u tok bitova putem entropijskog kodiranja kao što je razmatrano iznad.
[0046] U koraku 115, filtriranje se izvodi na kadrovima rekonstruisanog video signala na način sličan koraku 107 u enkoderu. Na primer, filteri za suzbijanje šuma, filteri za deblokiranje, filteri adaptivne petlje i SAO filteri se mogu primeniti na kadrove kako bi se uklonili artefakti blokiranja. Kada se kadrovi filtriraju, video signal se može emitovati na ekran u koraku 117 radi pregleda od strane krajnjeg korisnika.
[0047] Predmetno obelodanjenje se odnosi na modifikacije kako bi se pružila povećana efikasnost kodiranja (npr. smanjenje veličine datoteke) i/ili smanjena složenost kodiranja (npr. smanjena upotreba procesorskih resursa) prilikom particionisanja CTU. Stoga, predmetno obelodanjenje poboljšava funkcionalnost particionisanja bloka u koraku 103 u enkoderu i određivanja particija u koraku 111 u enkoderu. Konkretno, u koracima 103 i 111,
1
zajedničko stablo kodiranja se koristi za particionisanje i uzoraka svetlosti i uzoraka boje u CTU sve dok su odgovarajući CB veličine veće od praga. Za CB koji su jednaki ili manji od praga, stablo kodiranja se deli na podstabla kodiranja svetlosti i podstabla kodiranja boje koja mogu da obavljaju različito particionisanje na CB svetlosti i CB hroma ispod praga, respektivno.
[0048] SLIKA 2 je šematski dijagram primera sistema za kodiranje i dekodiranje (kodek) 200 za kodiranje video zapisa. Konkretno, sistem kodeka 200 pruža funkcionalnost za podršku implementacije operativnog postupka 100. Sistem kodeka 200 je generalizovan da prikaže komponente koje se koriste i u enkoderu i u dekoderu. Kodek sistem 200 prima i deli video signal kao što je razmatrano u vezi sa koracima 101 i 103 u operativnom postupku 100, što rezultuje particionisanim video signalom 201. Sistem kodeka 200 zatim kompresuje particionisani video signal 201 u kodirani tok bitova kada deluje kao enkoder kao što je razmatrano u vezi sa koracima 105, 107 i 109 u postupku 100. Kada deluje kao dekoder, kodek sistem 200 generiše izlazni video signal iz toka bitova kao što je razmatrano u vezi sa koracima 111, 113, 115 i 117 u operativnom postupku 100. Sistem kodeka 200 uključuje opštu komponentu kontrole enkodera 211, komponentu skaliranja i kvantizacije transformacije 213, komponentu intra-procene slike 215, komponentu intra-predviđanja slike 217, komponentu kompenzacije kretanja 219, komponentu procene kretanja 221, komponentu skaliranja i inverzne transformacije 229, komponentu analize kontrole filtera 227, komponentu filtera u petlji 225, komponentu bafera dekodirane slike 223 i komponentu formatiranja zaglavlja i kontekstno adaptivnog binarnog aritmetičkog kodiranja (CABAC) 231. Takve komponente su uparene kao što je prikazano na SLICI 2, gde crne linije označavaju kretanje podataka koji se kodiraju/dekodiraju, dok isprekidane linije označavaju kretanje kontrolnih podataka koji kontrolišu rad drugih komponenti. Sve komponente kodek sistema 200 mogu biti prisutne u enkoderu. Dekoder može uključivati podskup komponenti kodek sistema 200. Na primer, dekoder može uključivati komponentu intra-predviđanja slike 217, komponentu kompenzacije kretanja 219, komponentu skaliranja i inverzne transformacije 229, komponentu filtera u petlji 225, i komponentu bafera dekodirane slike 223. Ove komponente su sada opisane.
[0049] Particionisani video signal 201 je snimljena video sekvenca koja je particionisana na blokove piksela pomoću stabla kodiranja. Stablo kodiranja koristi različite režime razdvajanja kako bi podelilo blok piksela na manje blokove piksela. Ovi blokovi se zatim mogu dalje
1
podeliti na manje blokove. Blokovi se mogu nazvati čvorovima na stablu kodiranja. Veći roditeljski čvorovi se dele na manje podređene čvorove. Broj puta koliko je čvor podeljen naziva se dubinom stabla čvora/kodiranja. Podeljeni blokovi mogu biti uključeni u jedinice kodiranja (CU) u nekim slučajevima. Na primer, CU može biti pod-deo CTU koji sadrži blok svetlosti, blokove boje crvene razlike (Cr) i blokove boje plave razlike (Cb) zajedno sa odgovarajućim sintaktičkim uputstvima za CU. Režimi razdvajanja mogu uključivati binarno stablo (BT), trostruko stablo (TT) i četvorostruko stablo (QT) koje se koriste za particionisanje čvora na dva, tri ili četiri podređena čvora, respektivno, različitih oblika u zavisnosti od upotrebljenog režima razdvajanja. Particionisani video signal 201 se prosleđuje opštoj kontrolnoj komponenti enkodera 211, komponenti za skaliranje i kvantizaciju transformacije 213, komponenti intra-procene slike 215, komponenti analize kontrole filtera 227 i komponenti procene kretanja 221 za kompresiju.
[0050] Opšta kontrolna komponenta enkodera 211 je konfigurisana da donosi odluke koje se odnose na kodiranje slika video sekvence u tok bitova u skladu sa ograničenjima prijave. Na primer, opšta kontrolna komponenta enkodera 211 upravlja optimizacijom brzine protoka/veličine toka bitova u odnosu na kvalitet rekonstrukcije. Takve odluke se mogu doneti na osnovu dostupnosti prostora za skladištenje/propusnog opsega i zahteva za rezolucijom slike. Opšta kontrolna komponenta enkodera 211 takođe upravlja korišćenjem bafera u smislu brzine prenosa kako bi ublažila probleme sa nedostatkom i prekoračenjem bafera. Za upravljanje ovim problemima, opšta kontrolna komponenta enkodera 211 upravlja particionisanjem, predviđanjem i filtriranjem od strane drugih komponenti. Na primer, opšta kontrolna komponenta enkodera 211 može dinamički povećati složenost kompresije kako bi povećala rezoluciju i povećala upotrebu propusnog opsega ili smanjila složenost kompresije kako bi smanjila rezoluciju i korišćenje propusnog opsega. Stoga, opšta kontrolna komponenta enkodera 211 kontroliše druge komponente kodek sistema 200 kako bi uravnotežila kvalitet rekonstrukcije video signala sa problemima brzine protoka. Opšta kontrolna komponenta enkodera 211 kreira kontrolne podatke, koji kontrolišu rad ostalih komponenti. Kontrolni podaci se takođe prosleđuju komponenti formatiranja zaglavlja i CABAC 231 kako bi se kodirali u tok bitova kako bi signalizirali parametre za dekodiranje u dekoderu.
[0051] Particionisani video signal 201 se takođe šalje komponenti procene kretanja 221 i komponenti kompenzacije kretanja 219 za inter-predviđanje. Kadar ili isečak particionisanog
1
video signala 201 može biti podeljen na više blokova video zapisa. Komponenta procene kretanja 221 i komponenta kompenzacije kretanja 219 izvode inter-predviđeno kodiranje primljenog bloka video zapisa u odnosu na jedan ili više blokova u jednom ili više referentnih kadrova kako bi pružili vremensko predviđanje. Kodek sistem 200 može da izvrši višestruke prolaze kodiranja, na primer, da odabere odgovarajući režim kodiranja za svaki blok podataka video zapisa.
[0052] Komponenta procene kretanja 221 i komponenta kompenzacije kretanja 219 mogu biti visoko integrisane, ali su ilustrovane zasebno u konceptualne svrhe. Procena kretanja, koju vrši komponenta procene kretanja 221, je proces generisanja vektora kretanja, koji procenjuju kretanje za blokove video zapisa. Vektor kretanja, na primer, može ukazivati na pomeranje kodiranog objekta u odnosu na blok predviđanja. Blok predviđanja je blok za koji je utvrđeno da se blisko podudara sa blokom koji se kodira, u smislu razlike u pikselima. Blok predviđanja se takođe može nazvati referentnim blokom. Takva razlika u pikselima može biti određena zbirom apsolutne razlike (SAD), zbirom kvadratne razlike (SSD) ili drugim metrikama razlike. HEVC koristi nekoliko kodiranih objekata uključujući CTU, blokove stabla kodiranja (CTB) i CU. Na primer, CTU se može podeliti na CTB, koji se zatim može podeliti na CB radi uključivanja u CU. CU se može kodirati kao jedinica za predviđanje (PU) koja sadrži podatke predviđanja i/ili jedinica transformacije (TU) koja sadrži transformisane rezidualne podatke za CU. Komponenta procene kretanja 221 generiše vektore kretanja, PU i TU korišćenjem analize brzine i distorzije kao dela procesa optimizacije distorzije brzine. Na primer, komponenta procene kretanja 221 može da odredi više referentnih blokova, više vektora kretanja, itd. za trenutni blok/kadar, i može da izabere referentne blokove, vektore kretanja, itd. koji imaju najbolje karakteristike distorzije brzine. Najbolje karakteristike brzine i distorzije balansiraju i kvalitet video rekonstrukcije (npr. količina gubitka podataka kompresijom) i efikasnost kodiranja (npr. veličina konačnog kodiranja).
[0053] U nekim primerima, sistem kodeka 200 može izračunati vrednosti za pod-celobrojnog položaja piksela referentnih slika uskladištenih u komponenti bafera dekodiranih slika 223. Na primer, sistem video kodeka 200 može da interpolira vrednosti položaja jedne četvrtine piksela, položaja jedne osmine piksela, ili druge razlomačne položaje piksela referentne slike. Prema tome, komponenta procene kretanja 221 može da izvrši pretragu kretanja u odnosu na pune položaje piksela i delimične položaje piksela i da prikaže vektor kretanja sa delimičnom preciznošću piksela. Komponenta procene kretanja 221 izračunava vektor kretanja za PU
1
bloka video zapisa u inter-kodiranom isečku upoređivanjem položaja PU sa položajem bloka predviđanja referentne slike. Komponenta procene kretanja 221 daje izračunati vektor kretanja kao podatke o kretanju u komponentu formatiranja zaglavlja i CABAC 231 za kodiranje i kretanje komponenti kompenzacije kretanja 219.
[0054] Kompenzacija kretanja, koju vrši komponenta kompenzacije kretanja 219, može uključivati preuzimanje ili generisanje bloka predviđanja na osnovu vektora kretanja određenog komponentom procene kretanja 221. Opet, komponenta procene kretanja 221 i komponenta kompenzacije kretanja 219 mogu biti funkcionalno integrisane u nekim primerima. Po prijemu vektora kretanja za PU trenutnog bloka video zapisa, komponenta kompenzacije kretanja 219 može da locira blok predviđanja na koji vektor kretanja pokazuje. Rezidualni blok video zapisa se zatim formira oduzimanjem vrednosti piksela bloka predviđanja od vrednosti piksela trenutnog bloka video zapisa koji se kodira, formirajući vrednosti razlike piksela. Uopšteno, komponenta procene kretanja 221 vrši procenu kretanja u odnosu na komponente svetlosti, a komponenta kompenzacije kretanja 219 koristi vektore kretanja izračunate na osnovu komponenti svetlosti i za komponente boje i za komponente svetlosti. Blok predviđanja i rezidualni blok se prosleđuju komponenti skaliranja i kvantizacije transformacije 213.
[0055] Particionisani video signal 201 se takođe šalje komponenti intra-procene slike 215 i komponenti intra-predviđanja slike 217. Kao i kod komponente procene kretanja 221 i komponente kompenzacije kretanja 219, komponenta intra-procene slike 215 i komponenta intra-predviđanja slike 217 mogu biti visoko integrisane, ali su ilustrovane zasebno u konceptualne svrhe. Komponenta intra-procene slike 215 i komponenta intra-predviđanja slike 217 intra-predviđaju trenutni blok u odnosu na blokove u trenutnom kadru, kao alternativa inter-predviđanju koje obavljaju komponenta procene kretanja 221 i komponenta kompenzacije kretanja 219 između kadrova, kao što je gore opisano. Konkretno, komponenta intra-procene slike 215 određuje režim intra-predviđanja koji će se koristiti za kodiranje trenutnog bloka. U nekim primerima, komponenta intra-procene slike 215 bira odgovarajući režim intra-predviđanja kako bi kodirala trenutni blok iz više testiranih režima intrapredviđanja. Izabrani režimi intra-predviđanja se zatim prosleđuju u komponentu formatiranja zaglavlja i CABAC 231 za kodiranje.
[0056] Na primer, komponenta intra-procene slike 215 izračunava vrednosti distorzije brzine
1
korišćenjem analize brzine i distorzije za različite testirane režime intra-predviđanja i bira režim intra-predviđanja koji ima najbolje karakteristike distorzije brzine među testiranim režimima. Analiza distorzije brzine generalno određuje količinu distorzije (ili greške) između kodiranog bloka i originalnog nekodiranog bloka koji je kodiran da proizvede kodirani blok, kao i brzinu protoka (npr. broj bitova) koja se koristi za proizvodnju kodiranog bloka.
Komponenta intra-procene slike 215 izračunava odnose iz distorzije i brzine za različite kodirane blokove kako bi odredila koji režim intra-predviđanja pokazuje najbolju vrednost distorzije brzine za blok. Pored toga, komponenta intra-procene slike 215 može biti konfigurisana da kodira blokove dubine od mape dubine korišćenjem režima modeliranja dubine (DMM) zasnovanog na optimizaciji brzine i distorzije (RDO).
[0057] Komponenta intra-predviđanja slike 217 može da generiše rezidualni blok iz bloka predviđanja na osnovu izabranih režima intra-predviđanja određenih komponentom intraprocene slike 215 kada se implementira na enkoder ili čita rezidualni blok iz toka bitova kada se implementira na dekoder. Rezidualni blok uključuje razliku u vrednostima između bloka predviđanja i originalnog bloka, predstavljen kao matrica. Rezidualni blok se zatim prosleđuje komponenti skaliranja i kvantizacije transformacije 213. Komponenta intraprocene slike 215 i komponenta intra-predviđanja slike 217 mogu da rade i na komponenti svetla i na komponenti boje.
[0058] Komponenta skaliranja i kvantizacije transformacije 213 je konfigurisana da dalje kompresuje rezidualni blok. Komponenta skaliranja i kvantizacije transformacije 213 primenjuje transformaciju, kao što je diskretna kosinusna transformacija (DCT), diskretna sinusna transformacija (DST) ili konceptualno slična transformacija, na rezidualni blok, proizvodeći blok video zapisa koji sadrži rezidualne vrednosti koeficijenta transformacija. Talasne transformacije, celobrojne transformacije, transformacije pod-opsega ili druge vrste transformacija takođe se mogu koristiti. Transformacija može da konvertuje preostale informacije iz domena vrednosti piksela u domen transformacije, kao što je frekvencijski domen. Komponenta skaliranja i kvantizacije transformacije 213 je takođe konfigurisana da skalira transformisanu rezidualnu informaciju, na primer na osnovu frekvencije. Takvo skaliranje uključuje primenu faktora skaliranja na preostale informacije tako da se različite informacije o frekvenciji kvantiziraju na različitim granularnostima, što može uticati na konačni vizuelni kvalitet rekonstruisanog video zapisa. Komponenta skaliranja i kvantizacije transformacije 213 je takođe konfigurisana da kvantizuje koeficijente transformacije kako bi dalje smanjila brzinu protoka. Proces kvantizacije može smanjiti dubinu bita povezanu sa
2
nekim ili svim koeficijentima. Stepen kvantizacije se može modifikovati podešavanjem parametra kvantizacije. U nekim primerima, komponenta skaliranja i kvantizacije transformacije 213 može zatim da izvrši skeniranje matrice uključujući kvantizovane koeficijente transformacije. Kvantizovani koeficijenti transformacije se prosleđuju komponenti formatiranja zaglavlja i CABAC 231 kako bi se kodirali u tok bitova.
[0059] Komponenta skaliranja i inverzne transformacije 229 primenjuje obrnutu operaciju komponente skaliranja i kvantizacije transformacije 213 kako bi podržala procenu kretanja. Komponenta skaliranja i inverzne transformacije 229 primenjuje inverzno skaliranje, transformaciju i/ili kvantizaciju kako bi rekonstruisala rezidualni blok u domenu piksela, na primer, za kasniju upotrebu kao referentni blok koji može postati blok predviđanja za drugi trenutni blok. Komponenta procene kretanja 221 i/ili komponenta kompenzacije kretanja 219 mogu izračunati referentni blok dodavanjem preostalog bloka nazad u odgovarajući blok za predviđanje za upotrebu u proceni kretanja kasnijeg bloka/kadra. Filteri se primenjuju na rekonstruisane referentne blokove kako bi se ublažili artefakti stvoreni tokom skaliranja, kvantizacije i transformacije. Takvi artefakti bi inače mogli uzrokovati netačno predviđanje (i stvoriti dodatne artefakte) kada se predviđaju naredni blokovi.
[0060] Komponenta analize kontrole filtera 227 i komponenta filtera u petlji 225 primenjuju filtere na rezidualne blokove i/ili na rekonstruisane blokove slike. Na primer, transformisani rezidualni blok iz komponente skaliranja i inverzne transformacije 229 može se kombinovati sa odgovarajućim blokom predviđanja iz komponente intra-predviđanja slike 217 i/ili komponente kompenzacije kretanja 219 kako bi se rekonstruisao originalni blok slike. Filteri se zatim mogu primeniti na rekonstruisani blok slike. U nekim primerima, filteri se umesto toga mogu primeniti na rezidualne blokove. Kao i kod drugih komponenti na SLICI 2, komponenta za analizu kontrole filtera 227 i komponenta filtera u petlji 225 su visoko integrisane i mogu se implementirati zajedno, ali su prikazane zasebno u konceptualne svrhe. Filteri primenjeni na rekonstruisane referentne blokove primenjuju se na određene prostorne regione i uključuju više parametara za podešavanje načina na koji se takvi filteri primenjuju. Komponenta analize kontrole filtera 227 analizira rekonstruisane referentne blokove kako bi odredila gde takvi filteri treba da se primenjuju i postavlja odgovarajuće parametre. Takvi podaci se prosleđuju komponenti formatiranja zaglavlja i CABAC 231 kao kontrolni podaci filtera za kodiranje. Komponenta filtera u petlji 225 primenjuje takve filtere na osnovu kontrolnih podataka filtera. Filteri mogu uključivati filter za deblokiranje, filter za suzbijanje buke, SAO filter i filter adaptivne petlje. Takvi filteri se mogu primeniti u prostornom/pikselskom domenu (npr. na rekonstruisanom bloku piksela) ili u frekvencijskom domenu, u zavisnosti od primera.
[0061] Kada radi kao enkoder, filtrirani blok rekonstruisane slike, rezidualni blok i/ili blok predviđanja se čuvaju u komponenti bafera dekodirane slike 223 za kasniju upotrebu u proceni kretanja kao što je razmatrano gore. Kada radi kao dekoder, komponenta bafera dekodirane slike 223 skladišti i prosleđuje rekonstruisane i filtrirane blokove ka ekranu kao deo izlaznog video signala. Komponenta bafera dekodirane slike 223 može biti bilo koji memorijski uređaj sposoban da skladišti blokove predviđanja, rezidualne blokove i/ili rekonstruisane blokove slike.
[0062] Komponenta formatiranja zaglavlja i CABAC 231 prima podatke od različitih komponenti kodek sistema 200 i kodira takve podatke u kodirani tok bitova za prenos ka dekoderu. Konkretno, komponenta formatiranja zaglavlja i CABAC 231 generiše različita zaglavlja za kodiranje kontrolnih podataka, kao što su opšti kontrolni podaci i kontrolni podaci filtera. Dalje, podaci predviđanja, uključujući intra-predviđanje i podatke o kretanju, kao i rezidualni podaci u obliku kvantizovanih podataka o koeficijentu transformacije su svi kodirani u tok bitova. Konačni tok bitova uključuje sve informacije koji trebaju dekoderu kako bi rekonstruisao originalni particionisani video signal 201. Takve informacije mogu takođe uključivati tabele indeksa režima intra-predviđanja (takođe se nazivaju tabele mapiranja kodnih reči), definicije konteksta kodiranja za različite blokove, indikacije za najverovatnije režime intra-predviđanja, indikaciju informacija o particiji, itd. Takvi podaci mogu biti kodirani korišćenjem entropijskog kodiranja. Na primer, informacije mogu biti kodirane upotrebom kontekstualno adaptivnog kodiranja promenljive dužine (CAVLC), CABAC, binarnog aritmetičkog kodiranja zasnovanog na sintaksi (SBAC), entropijskog kodiranja za particionisanje intervala verovatnoće (PIPE) ili druge tehnike entropijskog kodiranja. Nakon entropijskog kodiranja, kodirani tok bitova se može preneti na drugi uređaj (npr. Dekoder video zapisa) ili arhivirati za kasniji prenos ili preuzimanje.
[0063] Predmetno obelodanjenje uključuje modifikacije kako bi se pružila povećana efikasnost kodiranja (npr. smanjenje veličine datoteke) i/ili smanjena složenost kodiranja (npr. smanjena upotreba procesorskih resursa) prilikom particionisanja CTU. Stoga, predmetno obelodanjenje poboljšava funkcionalnost kodek sistema 200 kada generiše particionisani video signal 201 za kodiranje i/ili dekodiranje od strane ostatka kodek sistema 200, u zavisnosti od primera. Konkretno, kada se generiše particionisani video signal 201, zajedničko stablo kodiranja se koristi za particionisanje i uzoraka svetlosti i uzoraka boje u CTU sve dok odgovarajući CB imaju veličinu veću od praga. Za CB koji su jednaki ili manji od praga, stablo kodiranja se deli na podstabla kodiranja svetlosti i podstabla kodiranja boje koja mogu da obavljaju različito particionisanje na CB svetlosti i CB hroma ispod praga, respektivno.
[0064] SLIKA 3 je blok dijagram koji ilustruje primer enkodera video zapisa 300 koji može da particioniše blokove svetlosti i boje. Enkoder video zapisa 300 se može koristiti za implementaciju funkcija kodiranja kodek sistema 200 i/ili implementaciju koraka 101, 103, 105, 107 i/ili 109 operativnog postupka 100. Enkoder 300 particioniše ulazni video signal, što rezultuje particionisanim video signalom 301, koji je u suštini sličan particionisanom video signalu 201. Particionisani video signal 301 se zatim kompresuje i kodira u tok bitova pomoću komponenti enkodera 300.
[0065] Konkretno, particionisani video signal 301 se prosleđuje komponenti intrapredviđanja slike 317 za intra-predviđanje. Komponenta intra-predviđanja slike 317 može biti u suštini slična komponenti intra-procene slike 215 i komponenti intra-predviđanja slike 217. Particionisani video signal 301 se takođe prosleđuje komponenti za kompenzaciju kretanja 321 za inter-predviđanje zasnovano na referentnim blokovima u komponenti bafera dekodirane slike 323. Komponenta kompenzacije kretanja 321 može biti u suštini slična komponenti procene kretanja 221 i komponenti kompenzacije kretanja 219. Blokovi predviđanja i rezidualni blokovi iz komponente intra-predviđanja slike 317 i komponente kompenzacije kretanja 321 su prosleđeni komponenti transformacije i kvantizacije 313 za transformaciju i kvantizaciju rezidualnih blokova. Komponenta transformacije i kvantizacije 313 može biti u suštini slična komponenti skaliranja i kvantizacije transformacije 213.
Transformisani i kvantizovani rezidualni blokovi i odgovarajući blokovi predviđanja (zajedno sa povezanim kontrolnim podacima) se prosleđuju komponenti entropijskog kodiranja 331 radi kodiranja u tok bitova. Komponenta entropijskog kodiranja 331 može biti u suštini slična komponenti formatiranja zaglavlja i CABAC 231.
[0066] Transformisani i kvantizovani rezidualni blokovi i/ili odgovarajući blokovi predviđanja se takođe prosleđuju iz komponente transformacije i kvantizacije 313 u
2
komponentu inverzne transformacije i kvantizacije 329 za rekonstrukciju u referentnih blokova radi korišćenja od strane komponente kompenzacije kretanja 321. Komponenta inverzne transformacije i kvantizacije 329 može biti u suštini slična komponenti skaliranja i inverzne transformacije 229. Filteri u petlji u komponenti filtera u petlji 325 se takođe primenjuju na rezidualne blokove i/ili rekonstruisane referentne blokove, u zavisnosti od primera. Komponenta filtera u petlji 325 može biti u suštini slična komponenti analize kontrole filtera 227 i komponenti filtera u petlji 225. Komponenta filtera u petlji 325 može uključivati više filtera kao što je razmatrano u vezi sa komponentom filtera u petlji 225. Filtrirani blokovi se zatim čuvaju u komponenti bafera dekodirane slike 323 za korišćenje kao referentnih blokova od strane komponente kompenzacije kretanja 321. Komponenta bafera dekodirane slike 323 može biti suštinski slična komponenti bafera dekodirane slike 223.
[0067] Enkoder video zapisa 300 prima i particioniše seriju kadrova video zapisa u particionisani video signal 301 za dalju kompresiju preko drugih komponenti kao što je razmatrano iznad. Kadrovi video zapisa su razdvojeni na isečke. Konkretno, delovi kadrova se biraju za jednosmerno inter-predviđanje pomoću komponente kompenzacije kretanja 321 i uključuju se u jedan ili više P isečaka. Drugi delovi kadra se biraju za dvosmerno interpredviđanje pomoću komponente kompenzacije kretanja 321 i uključuju se u jedan ili više B isečaka. Dalji delovi kadrova se biraju za intra-predviđanje pomoću komponente intrapredviđanja slike 317 i uključuju u jedan ili više I isečaka. Dok su obelodanjeni mehanizmi operativni za P i B isečke, efikasnost kodiranja je značajno povećana za I isečke u mnogim primerima. Dakle, obelodanjeni mehanizmi su opisani prvenstveno u odnosu na I isečke.
[0068] Isečci u kadru video zapisa su dalje podeljeni na CTU. CTU sadrži uzorke i svetlosti i boje. Zatim se bira stablo kodiranja i primenjuje na svaku CTU. CTU se može nazvati CTB za potrebe particionisanja. Stablo kodiranja za CTB primenjuje izabrane režime razdvajanja kako bi podelio CTB na CB svetlosti. Stablo kodiranja za CTB zatim primenjuje izabrane režime razdvajanja da podeli CTB na CB boje. CB svetlosti i odgovarajući CB boje (npr. i Cr i Cb) su svi uključeni u CU sa odgovarajućim informacijama o sintaksi. CU čine particionisani video signal 301, koji se prosleđuje komponenti kompenzacije kretanja 321, komponenti intra-predviđanja slike 317 i/ili komponenti transformacije i kvantizacije 313 za kompresiju.
[0069] Obelodanjeni mehanizmi primenjuju isto stablo kodiranja (ovde se takođe pominje kao zajedničko stablo kodiranja) na sve uzorke u CTU. Međutim, sistem enkodera 300 primenjuje prag za primenu stabla kodiranja na CTU. Blokovi kodiranja svetlosti i blokovi kodiranja boje koji imaju veličinu koja premašuje prag razdvajaju se istim stablom kodiranja, i stoga su razdvojeni istim režimima razdvajanja što rezultuje istim particionisanjem. Stablo kodiranja se deli na podstablo kodiranja svetlosti i podstablo kodiranja boje za blokove kodiranje svetlosti i boje, respektivno, koji su veličine jednake ili manje od praga. Shodno tome, konačna particija za blokove svetlosti je ista kao i za blokove boje sve dok se ne dostigne prag. Zatim se particije razilaze, što omogućava podstablima kodiranja da izaberu režime razdvajanja kako bi optimizovali efikasnost kodiranja uzimajući u obzir razlike između uzoraka svetlosti i uzoraka boje. Na ovaj način ukupna efikasnost kodiranja se povećava u odnosu na korišćenje jednog stabla kodiranja za sve uzorke u CTU. Dalje, deljeno stablo kodiranja se izračunava samo jednom za CTU i samo jednom se čuva (npr. u sintaksi u tok bitova). Podstabla se izračunavaju zasebno i čuvaju zasebno (npr. kao razlika između podstabala). Međutim, povećanje računarske složenosti i veličine kodiranja za različita podstabla je znatno manje od složenosti i veličine kodiranja za zasebna stabla kodiranja. Otuda, obelodanjeni mehanizam povećava ukupnu efikasnost kodiranja smanjenjem veličine datoteke konačnog toka bitova, kao i smanjuje složenost, i samim tim i korišćenje resursa procesora u odnosu na druge mehanizme particionisanja.
[0070] SLIKA 4 je blok dijagram koji ilustruje primer dekodera video zapisa 400 koji može da particioniše blokove svetlosti i boje. Dekoder video zapisa 400 se može koristiti za implementaciju funkcija dekodiranja kodek sistema 200 i/ili implementaciju koraka 111, 113, 115 i/ili 117 operativnog postupka 100. Dekoder 400 prima tok bitova, na primer od enkodera 300, i generiše rekonstruisani izlazni video signal zasnovan na toku bitova za prikaz krajnjem korisniku.
[0071] Komponenta entropijskog dekodiranja 433 prima tok bitova. Komponenta entropijskog dekodiranja 433 je konfigurisana da implementira šemu entropijskog dekodiranja, kao što su CAVLC, CABAC, SBAC, PIPE kodiranje ili druge tehnike entropijskog kodiranja. Na primer, komponenta 433 entropijskog dekodiranja može da koristi informacije zaglavlja da pruži kontekst za tumačenje dodatnih podataka kodiranih kao kodne reči u tok bitova. Dekodirane informacije uključuju bilo koju informaciju željenu za
2
dekodiranje video signala, kao što su opšti kontrolni podaci, kontrolni podaci filtera, informacije o particiji, podaci o kretanju, podaci predviđanja i kvantizovani koeficijenti transformacije iz rezidualnih blokova. Kvantizovani koeficijenti transformacije se prosleđuju komponenti inverzne transformacije i kvantizacije 429 za rekonstrukciju u rezidualne blokove. Komponenta inverzne transformacije i kvantizacije 429 može biti slična komponenti inverzne transformacije i kvantizacije 329.
[0072] Rekonstruisani rezidualni blokovi i/ili blokovi predviđanja se prosleđuju komponenti intra-predviđanja slike 417 radi rekonstrukcije na blokove slike na osnovu operacija intrapredviđanja. Komponenta intra-predviđanja slike 417 može biti slična komponenti intraprocene slike 215 i komponenti intra-predviđanja slike 217. Konkretno, komponenta intrapredviđanja slike 417 koristi režime predviđanja da locira referentni blok u kadru i primenjuje rezidualni blok na rezultat kako bi rekonstruisala intra-predviđene blokove slike. Rekonstruisani intra-predviđeni blokovi slike i/ili rezidualni blokovi i odgovarajući podaci inter-predviđanja se prosleđuju komponenti bafera dekodirane slike 423 preko komponente filtera u petlji 425, koja može biti suštinski slična komponenti dekodiranog bafera slike 223 i komponenti filtera u petlji 225, respektivno. Komponenta filtera u petlji 425 filtrira rekonstruisane blokove slike, rezidualne blokove i/ili blokove predviđanja, i takve informacije se čuvaju u komponenti bafera dekodirane slike 423. Rekonstruisani blokovi slike iz komponente bafera dekodirane slike 423 se prosleđuju komponenti kompenzacije kretanja 421 za inter-predviđanje. Komponenta kompenzacije kretanja 421 može biti u suštini slična komponenti procene kretanja 221 i/ili komponenti kompenzacije kretanja 219.
Konkretno, komponenta kompenzacije kretanja 421 koristi vektore kretanja iz referentnog bloka da generiše blok predviđanja i primenjuje rezidualni blok na rezultat kako bi rekonstruisala blok slike. Rezultujući rekonstruisani blokovi mogu takođe biti prosleđeni preko komponente filtera u petlji 425 u komponentu bafera dekodirane slike 423.
Komponenta bafera dekodirane slike 423 nastavlja da skladišti dodatne rekonstruisane blokove slike, koji se mogu rekonstruisati u kadrove preko informacija o particiji. Takvi kadrovi se takođe mogu postaviti u nizu. Niz se emituje prema ekranu kao rekonstruisani izlazni video signal.
[0073] Poput enkodera video zapisa 300, dekoder video zapisa 400 vrši particionisanje primenom zajedničkog stabla kodiranja za blokove svetlosti i blokove boje sa veličinama iznad praga, i primenom razdvojenih podstabala kodiranja za blokove svetlosti i blokove boje
2
sa veličinama jednakim ili ispod praga. Konkretno, komponenta entropijskog dekodiranja 433 dekodera 400 dobija zajedničko stablo kodiranja, podstablo kodiranja svetlosti i podstablo kodiranja boje iz sintakse za CTU. Za svaku CTU, uobičajeno stablo kodiranja se primenjuje kako bi se uzorci svetlosti podelili na blokove kodiranja svetlosti u jedinici praga. Zatim se podstablo kodiranja svetlosti primenjuje kako bi se blokovi kodiranja svetlosti podelili na veličine koje su jednake/manje od praga. Dalje, uobičajeno stablo kodiranja se primenjuje kako bi se uzoraka boje podelili u blokove kodiranja boje dok se ne dostigne prag. Zatim se podstablo kodiranja boje primenjuje kako bi se blokovi kodiranje boje podelili na veličine koje su jednake/manje od praga. Isto stablo kodiranja i podstablo kodiranja boje mogu se primeniti i na Cr i Cb uzorke. Dobijeni blokovi kodiranja mogu se kombinovati u CU i prosleđivati komponenti kompenzacije kretanja 421, komponenti intra-predviđanja slike 417 i/ili komponenti inverzne transformacije i kvantizacije 429 za dekodiranje u konačni kadar video zapisa za prikaz korisniku kao deo izlaznog video signala.
[0074] Korišćenje zajedničkog stabla kodiranja i razdvojenih podstabala smanjuje veličinu datoteke toka bitova i stoga povećava efikasnost kodiranja u sistemu dekodera 400 kao u sistemu kodiranja 300. Dalje, smanjenje složenosti se takođe može postići kad se zajedničko stablo kodiranja primenjuje na i uzorke svetlosti i uzorke boje sve dok se ne dostigne prag, što može zahtevati manje resursa za obradu nego primena zasebnih stabala kodiranja.
Mehanizam particionisanja koji koristi zajedničko stablo kodiranja i razdvojena podstabla, kao što se koristi u postupku 100, sistemu kodeka 200, sistemu enkodera 300 i sistemu dekodera 400, razmatra se detaljnije u odnosu na SLIKE u nastavku.
[0075] SLIKA 5 je šematski dijagram koji ilustruje primer mehanizma 500 particionisanja CTU na jedinice kodiranja (CU) koje sadrže CB svetla i CB boje. Mehanizam 500 mogu da koriste postupak 100, sistem kodeka 200, sistem enkodera 300 i/ili sistem dekodera 400 prilikom particionisanja kadra video zapisa.
[0076] Kadar video zapisa se prima i deli na jedan ili više isečaka 540. Isečak 540 je prostorno različit region kadrova koji je kodiran odvojeno od drugih regiona u istom kadru. Regioni kadrova se dodeljuju isečcima 540 na osnovu dodeljenog mehanizma kodiranja za odgovarajući region. Regioni kadrova koji su određeni za jednosmerno inter-predviđanje i dvosmerno inter-predviđanje dodeljuju se P i B isečcima 540, respektivno. Regioni kadrova koji su određeni za intra-predviđanje su dodeljeni I isečcima 540.
2
[0077] Isečci 540 su podeljeni na CTU 541. CTU 541 je najveći blok piksela koji može da prihvati primenu kompletnog stabla kodiranja 547 (npr., stablo kodiranja 547 se generalno ne prostire preko granica CTU 541). Veličina CTU 541 je definisana sintaksom i može biti, na primer, šezdeset četiri piksela sa šezdeset četiri piksela, trideset dva piksela sa trideset dva piksela, šesnaest piksela sa šesnaest piksela, itd. CTU 541 takođe može biti pravougaonik u nekim primerima. CTU 541 sadrži i uzorke svetlosti 542 i uzorke boje 544. Uzorak svetlosti 542 je vrednost svetlosti, i uzorak boje 544 je vrednost boje. Uzorci boje 544 mogu uključivati i vrednosti Cb i vrednosti Cr. Treba napomenuti da se uzorak svetlosti 542 i uzorak boje 544 takođe mogu nazvati podacima o svetlosti i podacima o boji, respektivno, u nekim kontekstima.
[0078] Stablo kodiranja 547, podstablo kodiranja svetlosti 548 i podstablo kodiranja boje 550 se primenjuju na uzorke svetlosti 542 i uzorke boje 544 na osnovu praga 549. Stablo kodiranja 547 je lista čvorova odlučivanja povezanih po podređen i/ili roditelj odnosu. Svaki čvor je povezan sa režimom razdvajanja koji deli odgovarajuće uzorke. Prvi čvor (npr. korenski čvor) stabla kodiranja 547 primenjuje režim razdvajanja kako bi particionisao uzorke svetlosti 542 ili uzorke boje 544 na odgovarajuće blokove. Podređeni čvorovi rekurzivno primenjuju dalje režime razdvajanja kako bi podelili odgovarajuće delove blokova na manje blokove dok se ne dosegnu grane stabla kodiranja 547.
[0079] Kao što je navedeno iznad, stablo kodiranja 547 se primenjuje i na uzorke svetlosti 542 i na uzorke boje 544 dok se odgovarajući blokovi ne podele na veličinu naznačenu pragom 549. Prag 549 je definisana numerička vrednost veličine. Na primer, prag 549 može biti četiri hiljade devedeset šest piksela, dve hiljade četrdeset osam piksela, hiljadu dvadeset četiri piksela, itd. Prag 549 takođe može biti izražen kao vrednost zasnovana na logaritmu u nekim slučajevima, kao što je log2Cbsize, gde je log2Cbsize logaritam 2 pomnožen sa veličinom bloka kodiranja (npr. šest piksela) koja iznosi četiri hiljade devedeset šest piksela.
[0080] Podstablo 548 kodiranje svetlosti i podstablo kodiranja boje 550 se primenjuju na blokove kodiranja koji su razdvojeni na veličinu koja je jednaka ili manja od praga 549. Konkretno, blokovi kodiranja svetlosti 543 i blokovi kodiranja boje 545 sadrže podskup uzoraka svetlosti 542 i uzoraka boje 544, respektivno, za CTU 541. Shodno tome, podstablo kodiranja svetlosti 548 i podstablo kodiranja boje 550 se primenjuju na blokove kodiranja
2
svetlosti 543 i blokove kodiranja boje 545 za dalje particionisanje uzoraka svetlosti 542 i uzoraka boje 544, respektivno, kada je veličina takvih blokova ispod praga. Podstablo kodiranja je stablo kodiranja sa korenskim čvorom koji je podređen stablu kodiranja 547. Podstablo kodiranja uključuje podstablo kodiranja svetlosti 548 za primenu na uzorke svetlosti 542 i podstablo kodiranja boje 550 za primenu na uzorke boje 544. Podstablo kodiranja svetlosti 548 i podstablo kodiranja boje 550 mogu biti različito, što dozvoljava različite pod-particije uzoraka svetlosti 542 i uzoraka boje 544 iako veće particije dele i uzorci svetlosti 542 i uzorci boje 544. Dakle, uzorci svetlosti 542 i uzorci boje 544 se razdvajaju istim režimima razdvajanja prema stablu kodiranja 547 dok se ne dostigne prag 549. Zatim se blokovi svetlosti i blokovi boje, kako ih kreira stablo kodiranja 547, podvrgavaju različitim režimima razdvajanja na osnovu različitog podstabla kodiranja svetlosti 548 i podstabla kodiranje boje 550.
[0081] Stablo kodiranja 547 i podstablo kodiranja svetlosti 548 razdvajaju uzorke svetlosti 542 na blokove kodiranja svetlosti 543. Stablo kodiranja 547 i podstablo kodiranja boje 550 razdvajaju uzorke boje 544 na blokove kodiranja boje 545. Blok kodiranja svetlosti 543 je particionisana grupa uzoraka svetlosti 542 namenjenih za dalju kompresiju. Blok kodiranja boje 545 je particionisana grupa uzoraka boje 544 namenjenih za dalju kompresiju. Blok kodiranja svetlosti 543 i srodni blokovi kodiranja boje 545 mogu biti dodeljeni jedinici kodiranja 546. Jedinica kodiranja 546 je grupa povezanih vrednosti uzorka piksela koje se prosleđuju za video kompresiju putem inter-predviđanja i/ili intra-predviđanja. Kada isečak 540 jeste I isečak 540, jedinica kodiranja 546 se prosleđuje za intra-predviđanje. Kada isečak 540 jeste P isečak 540 ili B isečak 540, jedinica kodiranja 546 se prosleđuje radi interpredviđanja. Jedinica kodiranja 546 može da sadrži jedan blok kodiranja svetlosti 543 i blokove kodiranja boje 545 uključujući Cr blok kodiranja boje 551 sa vrednostima Cr uzorka, i Cb blok kodiranja boje 552 sa vrednostima Cb uzorka.
[0082] SLIKA 6 ilustruje primer stabla kodiranja 600 primenjenog na CTU, koje može biti suštinski slično stablu kodiranja 547 i CTU 541, respektivno. Shodno tome, stablo kodiranja 600 mogu da koriste postupak 100, sistem kodeka 200, sistem enkodera 300, sistem dekodera 400 i/ili mehanizam500 prilikom particionisanja kadra video zapisa. Na primer, stablo kodiranja 600 može uključivati uobičajeno stablo kodiranja 613 sa podstablima kodiranja svetlosti i/ili boje 614, koje može implementirati stablo kodiranja 547, podstablo kodiranja svetlosti 548 i/ili podstablo kodiranja boje 550.
2
[0083] Stablo kodiranja 600 se koristi za particionisanje CTU na CB koji čine CU. Stablo kodiranja 600 uključuje mnoštvo čvorova, na primer uključujući korenski čvor 611, čvorove drugog sloja 615, čvorove trećeg sloja 617 i čvorove četvrtog sloja 619 u ilustrovanom primeru. Treba napomenuti da, iako su prikazana četiri sloja čvorova, može se koristiti bilo koji broj slojeva u zavisnosti od veličine CTU i minimalne veličine bloka. Čvorovi 611, 615, 617 i 619 su prikazani na SLICI 6 kao crna tačka. Čvor stabla kodiranja 600, kako se ovde koristi, je blok piksela odgovarajuće veličine na koji se može primeniti režim razdvajanja kako bi se blok particionisano na više manjih blokova piksela. U prikazanom primeru, čvorovi koriste četvorostruki režim razdvajanja stabla koji deli odgovarajući blok na četiri manja bloka. Ovaj proces se može nastaviti sve dok se ne postigne unapred definisani uslov. Takvi unapred definisani uslovi mogu uključiti minimalnu veličinu bloka i/ili karakteristike signala bloka (npr. koeficijente podataka u bloku u frekvencijskom domenu). Na primer, na osnovnom čvoru 611, režim razdvajanja se može primeniti kako bi se blok, u ovom slučaju CTU, particionsao na manje blokove. Odabran je režim razdvajanja sa odgovarajućim particionisanjem da razdvoji piksele sa različitim vrednostima na različite blokove i grupiše piksele sa sličnim vrednostima u zajedničke blokove. Blokovi particionisani u korenskom čvoru 611 rezultuju čvorovima drugog sloja 615. Na svakom čvoru, blok se proverava za karakteristike signala i veličinu bloka. Kada karakteristike signala ukazuju da blok sadrži piksele relativno sličnih vrednosti, blok se neće dalje razdvajati. Takođe, kada blokovi dostignu minimalnu veličinu, blokovi se neće dalje razdvajati. U prikazanom primeru, tri čvora drugog sloja 615 se dalje razdvajaju primenom dodatnih režima razdvajanja sa odgovarajućim particionisanjem što rezultuje čvorovima trećeg sloja 617. U ovom primeru, jedan od čvorova drugog sloja 615 nije dalje razdvojen, na primer zato što signalne karakteristike koje se odnose na uzorke u bloku (npr. koeficijenti u frekvencijskom domenu) ukazuju da blok sadrži piksele relativno sličnih vrednosti. Slično, čvorovi trećeg sloja 617 mogu se zatim razdvojiti na čvorove četvrtog sloja 619 u ovom primeru.
[0084] Shodno tome, kada se stablo kodiranja 600 primeni na CTU, stablo kodiranja 600 primenjuje korenski čvor 611 sa odgovarajućim režimom razdvajanja na ceo CTU kako bi particionisao CTU na blokove. Stablo kodiranja 600 zatim primenjuje čvorove 615, 617 i/ili 619 progresivno manjih veličina da rekurzivno particioniše svaki sloj blokova na manje blokove, poštujući minimalne veličine bloka i ograničenja signalnih karakteristika. Dok su režimi četvorostrukog stabla prikazani na SLICI 6, mnogi režimi razdvajanja se mogu koristiti kao što je objašnjeno u nastavku.
[0085] Kao što je navedeno iznad, signalne karakteristike komponenti svetlosti i komponenti boje mogu biti značajno različite. Shodno tome, efikasan režim razdvajanja za blok svetlosti može biti drugačiji od efikasnog režima razdvajanja za blok boje na istoj lokaciji. Kao takvo, zajedničko stablo kodiranja 613 može se koristiti za čvorove 611 i 615 i odgovarajuće blokove koji su veći od praga. Zasebna podstabla kodiranja 614 svetlosti i boje mogu se koristiti za razdvajanje čvorova i odgovarajućih blokova koji su jednaki ili manji od praga, u ovim slučajevima da se razdvoje čvorovi trećeg sloja 617 na čvorove četvrtog sloja 619. Podstablo kodiranja 614 je stablo kodiranja sa korenskim čvorom koji je podređen zajedničkom stablu kodiranja 613. Zajedničko stablo kodiranja 613 je prikazano punim linijama, a podstabla kodiranja 614 su prikazana isprekidanim linijama. Konkretno, kada su čvorovi 611 i 615 povezani sa veličinom koja je veća od praga, tada se čvorovi 611 i 615 postavljaju na zajedničko stablo kodiranja 613. Kada su čvorovi 617 i 619 jednaki ili manji od praga, čvorovi 617 i 619 se postavljaju na podstablo kodiranja 614. Čvorovi i odgovarajući režimi razdvajanja izabrani za podstablo kodiranja svetlosti 614 mogu biti zamenjeni različitim čvorovima i/ili režimima razdvajanja kada se određuje podstablo kodiranja boje 614. U ovom slučaju, čvorovi 617 u podstablu kodiranje svetlosti mogu da koriste različite režime razdvajanja od čvorova 617 u podstablu kodiranje boje, što rezultuje različitim čvorovima 619 za različita podstabla kodiranja 614. Ovo omogućava blokovima kodiranja svetlosti i blokovima kodiranja boje da zadrže slično ukupno particionisanje uz korišćenje različitih particija malih zrna.
[0086] SLIKA 7 je šematski dijagram koji ilustruje primer skupa režima razdvajanja 700 koji se koriste u stablima kodiranja, kao što je stablo kodiranja 547, podstablo kodiranja svetlosti 548, podstablo kodiranja boje 550, stablo kodiranja 600, zajedničko stablo kodiranja 613 i podstablo kodiranja 614. Kao takav, skup režima razdvajanja 700 može da se koristi u mehanizmu 500 kada operativni postupak 100, sistem kodeka 200, sistem enkodera 300 i/ili sistem dekodera 400 particionišu kadrove video zapisa. Skup režima razdvajanja 700 uključuje četvorostruko stablo (QT) 701, vertikalno binarno stablo (VBT) 703, horizontalno binarno stablo (HBT) 705, vertikalno trostruko stablo (VTT) 707 i horizontalno trostruko stablo (HTT) 709. Svaki čvor stabla kodiranja (i svaki čvor podstabla kodiranja) primenjuje jedan od skupova režima razdvajanja 700 na blok uzoraka. Dakle, roditeljski čvor u stablu
1
kodiranja/podstablu primenjuje režim razdvajanja na grupu uzoraka da stvori dva, tri ili četiri bloka (u zavisnosti od režima razdvajanja). Zatim podređeni čvorovi primenjuju više režima razdvajanja kako bi dalje podelili blokove koje je kreirao roditeljski čvor. Podređeni čvorovi od podređenih čvorova mogu dalje podeliti takve blokove dok se ne dođe do kraja stabla kodiranja/podstabla. Režim razdvajanja za određeni čvor se bira iz skupa režima razdvajanja 700 (npr. RDO procesom u enkoderu) kako bi se grupisali uzorci sa sličnim vrednostima kako bi se podržala efikasna kompresija intra-predviđanjem i/ili inter-predviđanjem. U dekoderu, stablo kodiranja, podstabla i režimi razdvajanja mogu se odrediti iz toka bitova, na primer kao uskladišteni u sintaksi u skupu parametara za isečak, CTU i/ili odgovarajućoj jedinici kodiranja.
[0087] QT 701 je režim razdvajanja koji deli blok kodiranja na četiri jednaka podbloka. Dakle, QT 701 deli blok uzoraka svetlosti na četiri bloka uzoraka svetlosti jednake veličine. Dalje, QT 701 deli blok uzoraka boje na četiri manja bloka uzoraka boje jednake veličine.
[0088] VBT 703 je režim razdvajanja koji deli blok kodiranja na dva podbloka jednake veličine. Takvi podblokovi imaju istu visinu i polovinu širine originalnog bloka kodiranja. Dakle, VBT 703 razdvaja roditeljski blok uzoraka svetlosti na dva podređena bloka uzoraka svetlosti jednake veličine sa istom visinom i polovinom širine roditeljskog bloka uzoraka svetlosti. Dalje, VBT 703 razdvaja roditeljski blok uzoraka boje na dva podređena bloka uzoraka boje jednake veličine sa istom visinom i polovinom širine roditeljskog bloka uzoraka boje.
[0089] HBT 705 je režim razdvajanja koji deli blok kodiranja na dva podbloka jednake veličine. Takvi podblokovi imaju istu širinu i polovinu visine originalnog bloka kodiranja. Dakle, HBT 705 razdvaja roditeljski blok uzoraka svetlosti na dva podređena bloka uzoraka svetlosti jednake veličine sa istom širinom i polovinom visine kao roditeljski blok uzoraka svetlosti. Dalje, HBT 705 razdvaja roditeljski blok uzoraka boje na dva podređena bloka uzoraka boje jednake veličine sa istom širinom i polovinom visine roditeljskog bloka uzoraka boje.
[0090] VTT 707 je režim razdvajanja koji deli blok kodiranja na tri podbloka. Takvi podblokovi imaju istu visinu kao originalni blok kodiranja. Jedan od podblokova ima polovinu širine originalnog bloka kodiranja, a dva podbloka imaju širinu od jedne četvrtine
2
originalnog bloka kodiranja. Dakle, VTT 707 razdvaja roditeljski blok uzoraka svetlosti na tri podređena bloka uzoraka svetlosti sa istom visinom kao i roditeljski blok uzoraka svetlosti i sa jednom četvrtinom, jednom polovinom i jednom četvrtinom širine roditeljskog bloka uzoraka svetlosti, respektivno. Dalje, VTT 707 razdvaja roditeljski blok uzoraka boje na tri podređena bloka uzoraka boje sa istom visinom kao i roditeljski blok uzoraka boje i sa jednom četvrtinom, polovinom i jednom četvrtinom širine roditeljskog bloka uzoraka boje, respektivno.
[0091] HTT 709 je režim razdvajanja koji deli blok kodiranja na tri podbloka. Takvi podblokovi imaju istu širinu kao originalni blok kodiranja. Jedan od podblokova ima polovinu visine originalnog bloka kodiranja, a dva podbloka imaju visinu od jedne četvrtine originalnog bloka kodiranja. Dakle, HTT 709 razdvaja roditeljski blok uzoraka svetlosti na tri podređena bloka uzoraka svetlosti iste širine kao i roditeljski blok uzoraka svetlosti i sa jednom četvrtinom, polovinom i jednom četvrtinom visine roditeljskog bloka uzoraka svetlosti, respektivno. Dalje, HTT 709 razdvaja roditeljski blok uzoraka boje na tri podređena bloka uzoraka boje sa istom širinom kao i roditeljski blok uzoraka boje i sa jednom četvrtinom, jednom polovinom i jednom četvrtinom visine roditeljskog bloka uzoraka boje, respektivno.
[0092] SLIKA 8 je dijagram toka primera postupka 800 particionisanja CTU, kao što je CTU 541, sa zajedničkim stablom kodiranja, kao što je stablo kodiranja 547 i/ili 613, za čvorove stabla kodiranja iznad veličine praga, kao što je prag 549, i sa razdvojenim podstablima, kao što je podstablo kodiranja svetlosti 548, podstablo kodiranja boje 550 i/ili podstabla kodiranja 614, za kodiranje čvorova stabla sa veličinom jednakom ili manjom od veličine praga.
Postupak 800 se može koristiti za implementaciju mehanizma 500 korišćenjem skupa režima razdvajanja 700. Postupak 800 mogu koristiti postupak 100, sistem kodeka 200, sistem enkodera 300 i/ili sistem dekodera 400 za particionisanje uzoraka iz kadra video zapisa na blokove kodiranja.
[0093] Opcioni korak 801 se može pojaviti kada se postupak 800 koristi u dekoderu. U nekim primerima, particionisanje pomoću zajedničkog stabla kodiranja i razdvojenih podstabala za kodiranje svetlosti/boje je opciono. U takvim primerima, enkoder može da kodira luma_chroma_separate oznaku. Luma_chroma_separate oznaka može biti postavljena (npr. na jedan) kako bi se naznačilo da se zasebna podstabla kodiranja koriste za blokove kodiranja svetlosti i blokove za kodiranje boje. Luma_chroma_separate oznaka se može poništiti (npr.
postaviti na nulu) kako bi se ukazalo da blokovi svetlosti i boje ne koriste zasebna podstabla kodiranja. Shodno tome, u nekim primerima dekoder može da dobije/primi luma_chroma_separate oznaku iz toka bitova kako bi odredio da li treba koristiti zasebna podstabla kodiranja za particionisanje. Kada luma_chroma_separate oznaka ukazuje na razdvajanje između podstabla kodiranja svetlosti i podstabla kodiranja boje, dekoder se može pripremiti da particioniše uzorke svetlosti i uzorke boje različitim podstablima kodiranja na osnovu vrednosti luma_chroma_separate oznake. U drugim primerima, postupak 800 se primenjuje na sve CTU u I isečcima. U takvom primeru, uzorci svetlosti i uzorci boje su particionisani različitim podstablima kodiranja kada je jedinica stabla kodiranja uključena u I isečak u kadru video zapisa. U takvom slučaju, korak 801 može biti izostavljen jer je upotreba razdvojenih podstabala implicitna u takvim primerima.
[0094] U koraku 803, dobija se jedinica stabla kodiranja. Kao što je razmatrano, jedinica stabla kodiranja uključuje i uzorke svetlosti i uzorke boje. Kada radi na enkoderu, jedinica stabla kodiranja se dobija iz memorije i/ili se dobija iz isečka kadra video zapisa. Kada radi na dekoderu, jedinica stabla kodiranja se dobija iz toka bitova primljenog od enkodera.
[0095] U koraku 805, uzorci svetlosti i uzorci boje se dele u skladu sa uobičajenim stablom kodiranja za čvorove stabla kodiranja (npr., prvi čvor stabla kodiranja) sa veličinom koja prelazi prag. Veličina čvora stabla kodiranja je veličina trenutnog bloka kodiranja koji se deli na odgovarajućem čvoru stabla kodiranja. Prag može biti sačuvan u sintaksi ili unapred definisan. Na primer, prag može biti četiri hiljade devedeset šest piksela, dve hiljade četrdeset osam piksela, hiljadu dvadeset četiri piksela, itd. Treba napomenuti da je korak 805 razdvojen od koraka 807 i 809 radi jasnoće diskusije. U primeru implementacije, korak 805 i korak 807 se izvode na uzorcima svetlosti, a zatim se korak 805 i korak 809 izvode na uzorcima boje. Stoga je redosled koraka uključen radi jasnoće diskusije i ne treba ga smatrati ograničavajućim.
[0096] U koraku 807, uzorci svetlosti povezani sa čvorovima stabla kodiranja (npr., drugi čvor stabla kodiranja) sa veličinom jednakom ili manjom od praga se particionišu sa podstablom kodiranja svetlosti. U koraku 809, uzorci boje povezani sa čvorovima stabla kodiranja (npr. treći čvor stabla kodiranja) sa veličinom jednakom ili manjom od praga se particionišu sa podstablom kodiranja boje. Podstablo kodiranja svetlosti u koraku 807 sadrži drugačije particionisanje od podstabla kodiranja boje iz koraka 809. Stoga su ukupne particije
4
(npr. veće/roditeljske particije) za blokove svetlosti i blokove boje slične zbog korišćenja zajedničkog stabla kodiranja u koraku 805. Međutim, manje/podređene particije za blokove kodiranje svetlosti i blokove boje mogu biti različite i blokovi boje mogu biti prilagođeni razlikama u signalu svetlosti i signalu boje radi povećane efikasnosti kodiranja. Ovo je usled razlika između podstabla kodiranja svetlosti u koraku 807 i podstabla kodiranja boje iz koraka 809. Treba napomenuti da uzorci boje mogu uključivati i Cb uzorke i Cr uzorke. Cb uzorci i Cr uzorci su particionisani zajedničkim podstablom kodiranja boje u koraku 809.
[0097] Opcioni korak 811 se može koristiti u enkoderu ili dekoderu. Kada postupak 800 radi na enkoderu, blokovi kodiranje svetlosti i blokovi kodiranje boje koji su rezultat particionisanja se kompresuju, na primer kao jedinice kodiranja, i kodiraju u tok bitova. Stablo kodiranja, podstablo kodiranja svetlosti i podstablo kodiranja boje takođe se kodiraju u tok bitova. Na primer, uobičajeno stablo kodiranja može biti kodirano u tok bitova kao TREE_L_C, podstablo kodiranja svetlosti može biti kodirano u tok bitova kao TREE_L, i podstablo kodiranja boje može biti kodirano u tok bitova kao TREE_C. Tok bitova se zatim prenosi ka dekoderu kako bi se podržala rekonstrukcija blokova kodiranje boje i blokova kodiranja svetlosti za prikaz u dekoderu video zapisa.
[0098] Dalje, u primerima gde su zasebna podstabla kodiranja svetlosti i podstabla kodiranja boje izabrana po diskrecionom nahođenju enkodera, enkoder može da kodira luma_chroma_separate oznaku u tok bitova (kao sintaksu) kako bi dekoderu u koraku 811 ukazao na razdvajanje između podstabla kodiranja svetlosti i podstabla kodiranja boje. U slučajevima kada se razdvojena podstabla koriste za sve CTU iz I rezova, luma_chroma_separate oznaka može biti izostavljena.
[0099] Kada se postupak 800 koristi u dekoderu, dekoder rekonstruiše blokove svetlosti i blokove boje (npr. putem intra-predviđanja od inter-predviđanja) u koraku 811. Dekodirani blokovi se zatim mogu rasporediti u deo kadra video zapisa na osnovu zajedničkog stabla kodiranja, podstabla kodiranja svetlosti i podstabla kodiranja boje. Isečak se može rasporediti u kadar video zapisa, koji se zatim može uključiti u video sekvencu. Kadar video zapisa/video sekvenca se zatim prosleđuje ka ekranu za prikaz krajnjem korisniku.
[0100] Tabela 1 u nastavku je primer sintakse koja implementira postupak 800 kada je upotreba razdvojenih podstabala kodiranja implicitna za CTU I isečka.
Tabela 1
[0101] Coding_tree_unit označava da je preostali kod specifičan za jedinicu stabla kodiranja. Kada je tip isečka (tip od isečka) I isečak i postavljena je qtbtt_dual_tree_intra_flag, jedinica stabla kodiranja implicitno koristi razdvojena stabla kodiranja kao što je naznačeno dual_tree_implicit_qt_split funkcijom. Qtbtt dual_tree_intra_flag je podešen da označi da je za I isečke svaka CTU razdvojena na jedinice kodiranja sa šezdeset četiri sa šezdeset četiri uzorka svetlosti koristeći implicitno razdvajanje četvorostrukog stabla i da su ove jedinice kodiranja koren dve zasebne coding_quadtree sintaksne strukture za svetlost i boju.
Dual_tree_implicit_qt_split funkcija koristi funkciju za kreiranje zajedničkog stabla kodiranja svetlosti/boje (označeno kao TREE_L_C status) kada log2Cbsize iznosi više od šest (npr. četiri hiljade devedeset šest piksela). Konkretno, blok kodiranja X je razdvojen na podređene blokove kodiranja. Blok kodiranja X je razdvojen na osnovu lokacije gornjeg levog uzorka (x0, y0) i donjeg desnog uzorka (x1,y1) pozicioniranog na osnovu veličine bloka kodiranja X, označeno kao log2CbSize. Podređeni blokovi kodiranja mogu imati veličinu log2CbSize - 1, što je polovina veličine bloka kodiranja X. To je zato što je veličina bloka kodiranja izražena u log2, i stoga je log2CbSize -1 polovina veličine log2CbSize. Funkcija dual_tree_implicit_qt_split je rekurzivna funkcija koja se može pozvati jedan do četiri puta, u zavisnosti od provere uslova, što rezultuje jednim do četiri podređena bloka kodiranja.
Dual_tree_implicit_qt_split funkcija se prvo poziva na osnovu veličine podređenog bloka log2CbSize -1 i gornjeg levog uzorka (x0, y0) kako bi se kreirao gornji levi podređeni blok kodiranja. Ako je horizontalan položaj donjeg desnog uzorka x1 unutar slike, kao što je označeno sa pic_width_in_luma_samples, onda se funkcija dual_tree_implicit_qt_split poziva na osnovu veličine podređenog bloka log2CbSize -1 i gornjeg desnog uzorka (x1, y0) kako bi se kreirao gornji desni podređeni blok kodiranja. Ako je vertikalan položaj donjeg levog uzorka y1 unutar slike, kao što je označeno sa pic_height_in_luma_samples, tada se poziva dual_tree_implicit_qt_split funkcija na osnovu veličine podređenog bloka log2CbSize -1 i donjeg levog uzorka (x0, y1) kako bi se kreirao donji levi podređeni blok kodiranja. Ako su horizontalan položaj donjeg desnog uzorka x1 i vertikalan položaj donjeg levog uzorka y1 unutar slike, kao što je označeno sa pic_width_in_luma_samples i pic_height_in_luma_samples, onda se dual_tree_implicit_qt_split funkcija poziva na osnovu veličine podređenog bloka log2CbSize -1 i donjeg desnog uzorka (x1, y1) kako bi se kreirao donji desni podređeni blok kodiranja. Na primer, kada je donji desni uzorak (x1, y1) izabran izvan slike usled položaja bloka kodiranja X blizu desne ivice ili donje ivice slike, tada se kreiraju manje od četiri podređena bloka kodiranja (npr. Dva podređena bloka kodiranja). U suprotnom, kreiraju se četiri podređena bloka kodiranja. Dual_tree_implicit_qt_split funkcija prati trenutnu dubinu stabla kodiranja povećavajući dubinu četvorostrukog stabla (cqtDepth) za svaki podređeni blok kodiranja kreiran na osnovu cqtDepth roditeljskog bloka kodiranja.
[0102] Kada log2Cbsize (veličina bloka kodiranja X) ne iznosi više od šest (npr., drugi broj), podstablo kodiranja svetlosti (DUAL_TREE_LUMA) se koristi za blokove svetlosti, a podstablo kodiranja boje (DUAL_TREE_CHROMA) se koristi za blokove boje. Konkretno, poziva se coding_quadtree funkcija, koja razdvaja blok kodiranja X na osnovu gornjeg levog uzorka (x0, y0), veličine bloka kodiranja log2CbSize i odgovarajućeg podstabla kodiranja svetlosti ili podstabla kodiranja boje, DUAL_TREE_LUMA ili DUAL_TREE_CHROMA, respektivno. Funkcija četvorostrukog stabla kodiranja takođe prati dubinu bloka kodiranja sa vrednošću cqtDepth kao što je objašnjeno iznad.
[0103] Tabela 2 u nastavku je primer sintakse koja implementira postupak 800 kada je upotreba razdvojenih podstabala kodiranja diskreciona za enkoder.
Tabela 2
[0104] U Tabeli 2, coding_tree_node(x, y, w, h, tree_status) je struktura sintakse koja opisuje informacije o particionisanju trenutnog čvora, gde su x i y koordinate gornjeg levog ugla trenutnog čvora, respektivno, w i h su širina i visina trenutnog čvora, respektivno, a tree_status je status stabla trenutnog čvora. Treba imati na umu da se w i h takođe mogu zameniti sa log2(v) i log2(h) kao još jedan primer. Slično, coding_unit(x, y, w, h, tree_status) je struktura sintakse koja opisuje informacije o jedinici kodiranja, kao što su informacije o predviđanju, informacije o transformaciji i tako dalje. U desnoj koloni, ae(v) označava da je element sintakse kodiran binarnim aritmetičkim kodiranjem prilagođenim kontekstu (CABAC).
[0105] Kada je tree_status trenutnog čvora TREE_L_C i čvor je veći od praga T, čvor koristi TREE_L_C status. U ovom slučaju, luma_chorma_separate oznaka nije predstavljena u tok bitova i njena vrednost je izvedena kao nula. Kada je tree_status trenutnog čvora TREE_L_C i čvor je veći od praga T, luma_chroma_separate oznaka se signalizira u tok bitova. Kada tree_status nije TREE_L_C, luma_chroma_separate oznaka se izvodi kao nula.
[0106] Kada luma_chroma_separate iznosi nula, analizira se samo jedan režim razdvajanja (kao što je naznačeno elementom sintakse split_mode). U skladu sa režimom razdvajanja, čvor je određen kao CU ili je podeljen na N podređenih čvorova, gde derive_child_node (split_mode, N, x_c, y_c, w_c, h_c) označava obradu izvođenja koordinate, širine i visine N podređenih čvorova zasnovanih na režimu razdvajanja. Podređeni čvorovi nasleđuju status stabla trenutnog čvora.
[0107] Kada luma_chroma_separate iznosi jedan, particionisanje za blok svetlosti i blokove boje u trenutnom čvoru je odvojeno, i dva režima razdvajanja se raščlanjuju (kao što je naznačeno elementima sintakse split_mode i split_mode_2nd). Jedan režim razdvajanja se koristi za particionisanje bloka svetlosti, i drugi se koristi za particionisanje dva bloka boje. Status stabla podređenih čvorova bloka svetlosti je modifikovan u TREE_L dok je status stabla podređenih čvorova blok bojeova modifikovan u TREE_C. Status stabla se takođe prosleđuje jedinici kodiranja kako bi se naznačilo da li su blok svetlosti i/ili dva bloka boje sadržani u jedinici kodiranja.
[0108] SLIKA 9 je šematski dijagram primera uređaja za kodiranje video zapisa 900. Uređaj za kodiranje video zapisa 900 je pogodan za implementaciju obelodanjenih primera/otelotvorenja kako je ovde opisano. Uređaj za kodiranje video zapisa 900 sadrži nizvodne portove 920, uzvodne portove 950 i/ili primopredajne jedinice (Tx/Rx) 910, uključujući predajnike i/ili prijemnike za komunikaciju podataka uzvodno i/ili nizvodno preko mreže. Uređaj za kodiranje video zapisa 900 takođe uključuje procesor 930 uključujući logičku jedinicu i/ili centralnu procesorsku jedinicu (CPU) za obradu podataka i memoriju 932 za skladištenje podataka. Uređaj za kodiranje video zapisa 900 može takođe da sadrži optičko-električne (OE) komponente, električno-optičke (EO) komponente i/ili komponente bežične komunikacije povezane sa uzvodnim portovima 950 i/ili nizvodnim portovima 920 za komunikaciju podataka preko optičkih ili bežičnih komunikacionih mreža. Uređaj za kodiranje video zapisa 900 može takođe uključiti ulazne i/ili izlazne (I/O) uređaje 960 za prenošenje podataka do i od korisnika. I/O uređaji 960 mogu uključivati izlazne uređaje kao
4
što su ekran za prikazivanje podataka video zapisa, zvučnici za izlaz audio podataka, itd. I/O uređaji 960 mogu takođe uključivati ulazne uređaje, kao što su tastatura, miš, trackball itd., i/ili odgovarajući interfejsi za interakciju sa takvim izlaznim uređajima.
[0109] Procesor 930 je implementiran hardverom i softverom. Procesor 930 može biti implementiran kao jedan ili više CPU čipova, jezgara (npr. kao višejezgarni procesor), gejtovskih polja koja se programiraju „na terenu“ (FPGA), specifičnih integrisanih kola (ASIC) i procesora digitalnih signala (DSP). Procesor 930 je u komunikaciji sa nizvodnim portovima 920, Tx/Rx 910, uzvodnim portovima 950 i memorijom 932. Procesor 930 sadrži modul za kodiranje 914. Modul za kodiranje 914 implementira obelodanjena otelotvorenja opisana iznad, kao što su postupci 100 i 800 i mehanizam 500, koji koriste stablo kodiranja 600, skup režima razdvajanja 700 i/ili bilo koji drugi postupak/mehanizam opisan ovde. Dalje, modul za kodiranje 914 može da implementira sistem kodeka 200, enkoder 300 i/ili dekoder 400. Na primer, modul za kodiranje 914 može da se koristi za particionisanje jedinice stabla kodiranja. Konkretno, modul za kodiranje 914 može primeniti zajedničko stablo kodiranja na uzorke svetlosti i uzorke boje u blokovima koji su veći od praga. Modul za kodiranje 914 takođe može primeniti različita podstabla kodiranja svetlosti i podstabla kodiranja boje na blokove svetlosti i boje blokove, respektivno, čija veličina je jednaka ili manja od praga. Prema tome, modul za kodiranje 914 uzrokuje da uređaj za kodiranje video zapisa 900 radi sa većom efikasnošću kodiranja i/ili deli jedinice stabla kodiranja koristeći manje resursa za obradu. Kao takav, modul za kodiranje 914 poboljšava funkcionalnost uređaja za kodiranje video zapisa 900, i takođe rešava probleme koji su specifični za struku kodiranja video zapisa. Dalje, modul za kodiranje 914 utiče na transformaciju uređaja za kodiranje video zapisa 900 u drugo stanje. Alternativno, modul za kodiranje 914 može biti implementiran kao instrukcije uskladištene u memoriji 932 koje izvršava procesor 930 (npr. kao računarski programski proizvod koji se čuva na neprolaznom medijumu).
[0110] Memorija 932 se sastoji od jednog ili više tipova memorije kao što su diskovi, drajvovi trake, SSD uređaji, memorija samo za čitanje (ROM), memorija sa slučajnim pristupom (RAM), fleš memorija, ternarna memorija sa adresibilnim sadržajem (TCAM), statička memorija sa slučajnim pristupom (SRAM), itd. Memorija 932 može da se koristi kao uređaj za skladištenje podataka sa prekomernim protokom, za skladištenje programa kada su takvi programi izabrani za izvršenje, i za skladištenje instrukcija i podataka koji se čitaju tokom izvršavanja programa.
[0111] SLIKA 10 je šematski dijagram primera sistema 1000 za particionisanje CTU sa zajedničkim stablom kodiranja za blokove kodiranja iznad veličine praga i sa razdvojenim podstablima za blokove kodiranja sa veličinom jednakom ili manjom od veličine praga.
Sistem 1000 uključuje enkoder video zapisa 1002 i dekoder video zapisa 1010, koji mogu implementirati operativni postupak 100, mehanizam 500, postupak 800, sistem kodeka 200, enkoder 300, dekoder 400 i/ili uređaj za kodiranje video zapisa 900. Dalje, enkoder video zapisa 1002 i dekoder video zapisa 1010 mogu da izvrše particionisanje sa stablima kodiranja 613 i podstablima kodiranja 614 korišćenjem skupa režima razdvajanja 700.
[0112] Enkoder video zapisa 1002 uključuje modul za preuzimanje 1001 za dobijanje jedinice stabla kodiranja uključujući čvor stabla kodiranja. Uređaj za kodiranje video zapisa takođe sadrži modul za particionisanje zajedničkog stabla 1003 za particionisanje uzoraka svetlosti i uzoraka boje sa zajedničkim stablom kodiranja kada prvi čvor stabla kodiranja premaši prag. Uređaj za kodiranje video zapisa takođe sadrži modul za particionisanje podstabla kodiranja svetlosti 1005 za particionisanje uzoraka svetlosti u drugom čvoru stabla kodiranja jedinice stabla kodiranja sa podstablom kodiranja svetlosti kada je veličina drugog čvora stabla kodiranja jednaka ili manja od praga. Uređaj za kodiranje video zapisa takođe sadrži modul za particionisanje podstabla kodiranja boje 1007 za particionisanje uzoraka boje u drugom čvoru stabla kodiranja jedinice stabla kodiranja sa podstablom kodiranja boje kada je veličina drugog čvora stabla kodiranja jednaka ili manja od praga. Kao što je navedeno iznad, podstablo kodiranja svetlosti može da sadrži drugačije particionisanje, i samim tim i različite režime razdvajanja od podstabla kodiranja boje. Uzorci boje i uzorci svetlosti su kodirani u tok bitova na osnovu zajedničkog stabla kodiranja, podstabla kodiranja svetlosti i podstabla kodiranja boje. Enkoder video zapisa 1002 takođe uključuje predajnik 1009 za prenos toka bitova da podrži rekonstrukciju uzoraka boje i uzoraka svetlosti za prikaz na dekoderu video zapisa 1010.
[0113] Dekoder video zapisa 1010 uključuje prijemnik 1017 za prijem toka bitova uključujući jedinicu stabla kodiranja uključujući podatke o svetlosti i podatke o boji. Dekoder video zapisa 1010 takođe uključuje modul za preuzimanje 1011 za dobijanje jedinice stabla kodiranja uključujući čvor stabla kodiranja. Dekoder video zapisa 1010 takođe uključuje zajednički modul za particionisanje stabla 1013 za particionisanje podataka o jačini svetlosti i boje sa zajedničkim stablom kodiranja kada prvi čvor stabla kodiranja premaši prag. Dekoder video zapisa 1010 takođe uključuje modul za particionisanje podstabla svetlosti 1015 za particionisanje podataka o svetlosti u drugom čvoru stabla kodiranja jedinice stabla kodiranja sa podstablom kodiranja svetlosti kada je veličina drugog čvora stabla kodiranja jednaka ili manja od praga. Dekoder video zapisa 1010 takođe uključuje modul za particionisanje podstabla boje 1019 za particionisanje podataka o boji u drugom čvoru stabla kodiranja jedinice stabla kodiranja sa podstablom kodiranja boje kada je veličina drugog čvora stabla kodiranja jednaka ili manja od praga. Kao što je navedeno iznad, podstablo kodiranja svetlosti sadrži drugačije particionisanje, i samim tim i različite režime razdvajanja, od podstabla kodiranja boje. Dekoder video zapisa 1010 može zatim da rekonstruiše podatke o boji i podatke o svetlosti u isečak kadra video zapisa na osnovu zajedničkog stabla kodiranja, podstabla kodiranja svetlosti i podstabla kodiranja boje. Dekoder video zapisa 1010 takođe može da prosledi kadar video zapisa ka ekranu.
[0114] SLIKA 11 je dijagram toka primera postupka 1100 particionisanja CTU kao što je CTU 541, sa zajedničkim stablom kodiranja, kao što je stablo kodiranja 547 i/ili 613, za CB iznad veličine praga, kao što je prag 549, i sa razdvojenim podstablima, kao što je podstablo kodiranja svetlosti 548, podstablo kodiranja boje 550, i/ili podstablo kodiranja 614, za CB veličine jednake ili manje od veličine praga. Postupak 1100 se može koristiti za implementaciju mehanizma 500 korišćenjem skupa režima razdvajanja 700. Postupak 1100 mogu koristiti postupak 100, sistem kodeka 200, sistem enkodera 300 i/ili sistem dekodera 400 za particionisanje uzoraka iz kadra video zapisa na blokove kodiranja.
[0115] Postupak 1100 uključuje utvrđivanje da je jedinica stabla kodiranja u I isečku u koraku 1101. Na primer, dekoder može da analizira stablo kodiranja, podstablo kodiranja svetlosti i/ili podstablo kodiranja boje kako bi se režim razdvajanja primenjeno za particionisanje jedinice stabla kodiranja uključujući uzorke svetlosti i uzorke boje na blokove svetlosti i blokove boje, respektivno. Postupak 1100 se tada može primeniti ako/kada je jedinica stabla kodiranja sadržana u I isečku kadra video zapisa.
[0116] U koraku 1103, jedinica kada prvi čvor stabla kodiranja u stablu kodiranja ima veličinu veću od praga, blokovi kodiranja uzoraka svetlosti i blokovi kodiranja uzoraka boje koji su povezani sa prvim čvorom stabla kodiranja se dele zajedničkim stablom kodiranja. Na primer, prag može da iznosi četiri hiljade devedeset šest uzoraka svetlosti ili dve hiljade četrdeset osam uzoraka svetlosti. Režim razdvajanja može biti razdvajanje na četiri stabla
4
kada čvor stabla kodiranja ima veličinu veću od praga. U nekim primerima, režim razdvajanja može biti implicitno signaliziran kada čvor stabla kodiranja ima veličinu veću od praga.
[0117] U koraku 1107, kada drugi čvor stabla kodiranja u stablu kodiranja ima veličinu jednaku ili manju od praga, blokovi kodiranja uzoraka svetlosti jedinice stabla kodiranja koji su povezani sa drugim čvorom stabla kodiranja mogu se razdvojiti prema stablu kodiranja svetlosti. Podstablo kodiranja svetlosti može se u nekim kontekstima nazvati i stablom kodiranja svetlosti. Dalje, kada drugi čvor stabla kodiranja stabla kodiranja ima veličinu jednaku ili manju od praga, blokovi kodiranja uzoraka boje jedinice stabla kodiranja povezani sa drugim čvorom stabla kodiranja mogu se razdvojiti prema stablu kodiranja boje. Treba napomenuti da za YUV4:2:0 podatke, šezdeset četiri sa šezdeset četiri blok kodiranja svetlosti odgovara trideset dva sa trideset dva Cb bloku kodiranje boje i trideset dva sa trideset dva Cr bloku kodiranje boje. Međutim, kada se označava veličina čvora stabla kodiranja, čvor stabla kodiranja može se meriti korišćenjem uzoraka svetlosti. Na primer, čvor stabla kodiranja koji sadrži samo dva trideset dva sa trideset dva bloka boje može se meriti kao šezdeset četiri sa šezdeset četiri čvor stabla kodiranja.
[0118] Postupak 1100 se može implementirati prema sledećoj sintaksi:
[0119] Tamo gde je prag predstavljen sa log2CbSize > 6, DUAL_TREE_LUMA označava stablo kodiranja svetlosti, a DUAL_TREE _CHROMA označava stablo kodiranja boje.
[0120] Prva komponenta je direktno povezana sa drugom komponentom kada nema komponenti koje se nalaze između njih, osim linije, traga ili drugog medijuma između prve komponente i druge komponente. Prva komponenta je indirektno povezana sa drugom komponentom kada između prve komponente i druge komponente postoje komponente osim linije, traga ili drugog medijuma. Izraz „povezane“ i njegove varijante obuhvataju i direktno povezane i indirektno povezane. Upotreba izraza „oko“ označava raspon koji uključuje ±10% narednog broja osim ako nije drugačije navedeno.
[0121] Predmetne primere treba smatrati ilustrativnim, a ne ograničavajućim, i namera nije da se ograniči na ovde date detalje. Na primer, različiti elementi ili komponente se mogu kombinovati ili integrisati u drugi sistem ili određene karakteristike mogu biti izostavljene, ili mogu da ne budu implementirane.
4

Claims (16)

Patentni zahtevi
1. Postupak implementiran u uređaju za kodiranje video zapisa, gde postupak sadrži: dobijanje (803), od strane procesora uređaja za kodiranje video zapisa, jedinice stabla kodiranja koja uključuje čvor stabla kodiranja;
naznačen time da postupak dalje obuhvata:
particionisanje (805), od strane procesora, uzoraka svetlosti i uzoraka boje u prvom čvoru stabla kodiranja jedinice stabla kodiranja prema zajedničkom stablu kodiranja kada veličina prvog čvora stabla kodiranja premašuje prag;
particionisanje (807), od strane procesora, uzoraka svetlosti u drugom čvoru stabla kodiranja jedinice stabla kodiranja sa podstablom kodiranja svetlosti kada je veličina drugog čvora stabla kodiranja jednaka ili manja od praga; i
particionisanje (809), od strane procesora, uzoraka boje u drugom čvoru stabla kodiranja jedinice stabla kodiranja sa podstablom kodiranja boje kada je veličina drugog čvora stabla kodiranja jednaka ili manja od praga,
gde kada je uređaj za kodiranje video zapisa enkoder, postupak dalje obuhvata kodiranje uzoraka boje i uzoraka svetlosti u tok bitova na osnovu zajedničkog stabla kodiranja, podstabla kodiranja svetlosti i podstabla kodiranja boje; i
gde kada je uređaj za kodiranje video zapisa dekoder, postupak dalje obuhvata rekonstrukciju podataka o boji i svetlosti primljenih iz toka bitova u isečak kadra video zapisa na osnovu zajedničkog stabla kodiranja, podstabla kodiranja svetlosti i podstabla kodiranja boje.
2. Postupak prema patentnom zahtevu 1, gde prag iznosi četiri hiljade devedeset šest piksela ili šest u logaritamskom domenu sa dva kao osnovom.
3. Postupak prema bilo kom patentnom zahtevu 1-2, gde se jedinica stabla kodiranja nalazi u slici/kadru intra-predviđanja (I).
4. Postupak prema bilo kom patentnom zahtevu 1-3, gde uzorci boje uključuju uzorke boje plave razlike (Cb) i uzorke boje crvene razlike (Cr), i gde su Cb uzorci i Cr uzorci particionisani zajedničkim podstablom kodiranja boje.
5. Postupak prema bilo kom patentnom zahtevu 1-4, gde uređaj za kodiranje video zapisa jeste enkoder, koji dalje sadrži kodiranje luma_chroma_separate oznake u tok bitova kako bi
4
se ukazalo na razdvajanje između podstabla kodiranja svetlosti i podstabla kodiranja boje.
6. Postupak prema bilo kom patentnom zahtevu 1-4, gde uređaj za kodiranje video zapisa jeste dekoder, koji dalje obuhvata prijem luma_chroma_separate oznake iz toka bitova, gde luma_chroma_separate oznaka ukazuje na razdvajanje između podstabla kodiranja svetlosti i podstabla kodiranja boje, gde su uzorci svetlosti i uzorci boje particionisani zasebnim podstablima kodiranja na osnovu vrednosti luma_chroma_separate oznake.
7. Enkoder video zapisa (1002) koji sadrži:
procesor konfigurisan da:
dobije jedinicu stabla kodiranja uključujući čvor stabla kodiranja;
naznačen time da je procesor dalje konfigurisan da: particioniše uzorke svetlosti i uzorke boje u prvom čvoru stabla kodiranja jedinice stabla kodiranja prema zajedničkom stablu kodiranja kada veličina prvog čvora stabla kodiranja premašuje prag; particioniše uzorke svetlosti u drugom čvoru stabla kodiranja jedinice stabla kodiranja sa podstablom kodiranja svetlosti kada je veličina drugog čvora stabla kodiranja jednaka ili manja od praga;
particioniše uzorke boje u drugom čvoru stabla kodiranja jedinice stabla kodiranja sa podstablom kodiranja boje kada je veličina drugog čvora stabla kodiranja jednaka ili manja od praga; i
kodira uzorke boje i uzorke svetlosti u tok bitova na osnovu zajedničkog stabla kodiranja, podstabla kodiranja svetlosti i podstabla kodiranja boje; i enkoder video zapisa (1002) dalje sadrži:
predajnik (1009) povezan sa procesorom, predajnik je konfigurisan da prenosi tok bitova da podrži rekonstrukciju uzoraka boje i svetlosti za prikaz pomoću dekodera video zapisa.
8. Enkoder video zapisa prema patentnom zahtevu 7, gde prag iznosi četiri hiljade devedeset šest piksela ili šest u logaritamskom domenu sa dva kao osnovom.
9. Enkoder video zapisa prema bilo kom patentnom zahtevu 7-8, gde se jedinica stabla kodiranja nalazi u slici/kadru intra-predviđanja (I).
10. Enkoder video zapisa prema bilo kom patentnom zahtevu 7-9, gde uzorci boje uključuju uzorke boje plave razlike (Cb) i uzorke boje crvene razlike (Cr), gde su Cb uzorci i Cr uzorci
4
particionisani zajedničkim podstablom kodiranja boje.
11. Enkoder video zapisa prema bilo kom patentnom zahtevu 7-10, gde je procesor dalje konfigurisan da kodira luma_chroma_separate oznaku u tok bitova, gde luma_chroma_separate oznaka ukazuje na razdvajanje između podstabla kodiranja svetlosti i podstabla kodiranja boje, i gde su uzorci svetlosti i uzorci boje particionisani zasebnim podstablima kodiranja na osnovu vrednosti luma_chroma_separate oznake.
12. Dekoder video zapisa (1010) koji sadrži:
prijemnik (1017) za primanje toka bitova koji uključuje jedinicu stabla kodiranja uključujući podatke o svetlosti i podatke o boji;
naznačen time da dekoder video zapisa dalje sadrži:
procesor povezan sa prijemnikom, gde je procesor konfigurisan da:
particioniše podatke o svetlosti i podatke o boji sa zajedničkim stablom kodiranja kada veličina prvog čvora stabla kodiranja premašuje prag;
particioniše podatke o svetlosti sa podstablom kodiranja svetlosti kada je veličina drugog čvora stabla kodiranja jednaka ili manja od praga;
particioniše podatke o boji sa podstablom kodiranja boje kada je veličina trećeg čvora stabla kodiranja jednaka ili manja od praga, gde podstablo kodiranja svetlosti sadrži drugačiji skup režima razdvajanja od podstabla kodiranja boje;
rekonstruiše podatke o boji i podatke o svetlosti u isečak kadra video zapisa na osnovu zajedničkog stabla kodiranja, podstabla kodiranja svetlosti i podstabla kodiranja boje;
i prosledi kadar video zapisa ka ekranu.
13. Dekoder video zapisa prema patentnom zahtevu 12, gde prag iznosi četiri hiljade devedeset šest piksela.
14. Dekoder video zapisa prema bilo kom patentnom zahtevu 12-13, gde su podaci o svetlosti i podaci o boji particionisani različitim podstablima kodiranja kada je jedinica stabla kodiranja uključena u isečak/sliku tipa Intra-predviđanja (I) u kadru video zapisa.
15. Dekoder video zapisa prema bilo kom patentnom zahtevu 12-14, gde podaci o boji obuhvataju podatke o boji plave razlike (Cb) i podatke o boji crvene razlike (Cr), i gde su Cb
4
podaci i Cr podaci particionisani zajedničkim podstablom kodiranja boje.
16. Dekoder video zapisa prema bilo kom patentnom zahtevu 12-15, gde je procesor dalje konfigurisan da dobije luma_chroma_separate oznaku iz toka bitova, gde luma_chroma_separate oznaka ukazuje na razdvajanje između podstabla kodiranja svetlosti i podstabla kodiranja boje, i gde su podaci o svetlosti i podaci o boji particionisani različitim podstablima kodiranja na osnovu vrednosti luma_chroma_separate oznake.
RS20220265A 2018-04-19 2019-03-05 Particionisanje blokova svetlosti i boje RS63025B1 (sr)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862660121P 2018-04-19 2018-04-19
US201862732675P 2018-09-18 2018-09-18
PCT/US2019/020740 WO2019203940A1 (en) 2018-04-19 2019-03-05 Luma and chroma block partitioning
EP19712649.3A EP3738315B1 (en) 2018-04-19 2019-03-05 Luma and chroma block partitioning

Publications (1)

Publication Number Publication Date
RS63025B1 true RS63025B1 (sr) 2022-04-29

Family

ID=65861713

Family Applications (1)

Application Number Title Priority Date Filing Date
RS20220265A RS63025B1 (sr) 2018-04-19 2019-03-05 Particionisanje blokova svetlosti i boje

Country Status (13)

Country Link
US (2) US11109026B2 (sr)
EP (2) EP3738315B1 (sr)
JP (2) JP7279074B2 (sr)
KR (1) KR102410200B1 (sr)
CN (1) CN112385239A (sr)
CY (1) CY1125341T1 (sr)
DK (1) DK3738315T3 (sr)
ES (1) ES2909309T3 (sr)
HU (1) HUE057767T2 (sr)
PL (1) PL3738315T3 (sr)
PT (1) PT3738315T (sr)
RS (1) RS63025B1 (sr)
WO (1) WO2019203940A1 (sr)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110999291B (zh) * 2017-08-03 2023-09-26 夏普株式会社 用于划分视频数据的帧间预测片段中的视频块的系统和方法
KR102247664B1 (ko) * 2018-05-10 2021-05-03 삼성전자주식회사 영상의 부호화 및 복호화를 위한 영상의 분할 방법 및 장치
US11483559B2 (en) * 2018-05-29 2022-10-25 Interdigital Vc Holdings, Inc. Method and apparatus for video encoding and decoding with partially shared luma and chroma coding trees
TWI829721B (zh) * 2018-07-15 2024-01-21 大陸商北京字節跳動網絡技術有限公司 跨分量幀內預測模式導出
US11509931B2 (en) * 2019-06-07 2022-11-22 Tencent America LLC Method and apparatus for video coding
MX2021012503A (es) * 2019-06-21 2021-11-12 Panasonic Ip Corp America Sistema y metodo de codificacion de video.
WO2021023262A1 (en) * 2019-08-06 2021-02-11 Beijing Bytedance Network Technology Co., Ltd. Using screen content coding tool for video encoding and decoding
CN117714683A (zh) 2019-09-02 2024-03-15 北京字节跳动网络技术有限公司 基于色彩格式的视频区分割
KR102649584B1 (ko) 2019-09-21 2024-03-21 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 크로마 인트라 모드에 기초한 크기 제한
BR112022020449A2 (pt) 2020-04-10 2022-11-29 Beijing Bytedance Network Tech Co Ltd Método e aparelho para processar dados de vídeo, e, meios de armazenamento e de gravação legíveis por computador não transitórios
US11432018B2 (en) * 2020-05-11 2022-08-30 Tencent America LLC Semi-decoupled partitioning for video coding
US11876970B2 (en) * 2021-07-22 2024-01-16 Tencent America LLC Non-interleaved separate tree
US12452423B2 (en) * 2021-12-03 2025-10-21 Intel Corporation Low frequency non-separable transform and multiple transform selection deadlock prevention
WO2024220952A1 (en) * 2023-04-21 2024-10-24 Tencent America LLC Inherited transform type in a merge candidate list
US20250159207A1 (en) * 2023-11-09 2025-05-15 Tencent America Llc. Systems and methods for improved recursive intra region partitioning
US12556732B2 (en) 2023-11-27 2026-02-17 Tencent America LLC Systems and methods for transform partitioning in a recursive intra region
US12610041B2 (en) * 2023-11-29 2026-04-21 Tencent America LLC Systems and methods for chroma mode coding in recursive intra/inter region
US12445630B2 (en) 2023-11-29 2025-10-14 Tencent America LLC Systems and methods for implicit derivation in a recursive intra region
US12526410B2 (en) * 2024-03-21 2026-01-13 Tencent America LLC Systems and methods for recursive inter region partitioning
WO2026005437A1 (ko) * 2024-06-24 2026-01-02 경희대학교 산학협력단 영상 부호화/복호화 방법 및 장치
WO2026005498A1 (ko) * 2024-06-26 2026-01-02 경희대학교 산학협력단 영상 부호화/복호화 방법 및 장치
CN119420938A (zh) * 2024-10-31 2025-02-11 湖南国科微电子股份有限公司 一种图像编码方法、装置、终端设备及解码方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9462275B2 (en) 2012-01-30 2016-10-04 Qualcomm Incorporated Residual quad tree (RQT) coding for video coding
WO2016074147A1 (en) * 2014-11-11 2016-05-19 Mediatek Singapore Pte. Ltd. Separated coding tree for luma and chroma
WO2016090568A1 (en) * 2014-12-10 2016-06-16 Mediatek Singapore Pte. Ltd. Binary tree block partitioning structure
US11109045B2 (en) * 2016-02-11 2021-08-31 Interdigital Vc Holdings, Inc. Method and device for encoding/decoding an image unit comprising image data represented by a luminance channel and at least one chrominance channel
CA3025488A1 (en) * 2016-05-25 2017-11-30 Arris Enterprises Llc Weighted angular prediction for intra coding
WO2017205704A1 (en) * 2016-05-25 2017-11-30 Arris Enterprises Llc General block partitioning method
US11039175B2 (en) * 2016-05-27 2021-06-15 Sharp Kabushiki Kaisha Systems and methods for varying quantization parameters
US11025903B2 (en) * 2017-01-13 2021-06-01 Qualcomm Incorporated Coding video data using derived chroma mode
US11272202B2 (en) * 2017-01-31 2022-03-08 Sharp Kabushiki Kaisha Systems and methods for scaling transform coefficient level values

Also Published As

Publication number Publication date
JP2021523590A (ja) 2021-09-02
DK3738315T3 (da) 2022-04-11
EP4072146A1 (en) 2022-10-12
JP2023052640A (ja) 2023-04-11
EP3738315B1 (en) 2022-01-26
PT3738315T (pt) 2022-03-30
JP7279074B2 (ja) 2023-05-22
ES2909309T3 (es) 2022-05-06
CN112385239A (zh) 2021-02-19
PL3738315T3 (pl) 2022-05-09
WO2019203940A1 (en) 2019-10-24
JP7485803B2 (ja) 2024-05-16
CY1125341T1 (el) 2024-02-16
KR102410200B1 (ko) 2022-06-16
US11109026B2 (en) 2021-08-31
HUE057767T2 (hu) 2022-06-28
EP3738315A1 (en) 2020-11-18
US20210037242A1 (en) 2021-02-04
US20210368174A1 (en) 2021-11-25
KR20200112958A (ko) 2020-10-05

Similar Documents

Publication Publication Date Title
RS63025B1 (sr) Particionisanje blokova svetlosti i boje
US11877006B2 (en) Intra-prediction using a cross-component linear model in video coding
US20180295364A1 (en) Noise Suppression Filter
AU2022204213B2 (en) Filter flags for subpicture deblocking
US12495168B2 (en) Constrained coding tree for video coding