RS64604B1 - Entropijsko kodiranje razlika vektora kretanja - Google Patents

Entropijsko kodiranje razlika vektora kretanja

Info

Publication number
RS64604B1
RS64604B1 RS20230766A RSP20230766A RS64604B1 RS 64604 B1 RS64604 B1 RS 64604B1 RS 20230766 A RS20230766 A RS 20230766A RS P20230766 A RSP20230766 A RS P20230766A RS 64604 B1 RS64604 B1 RS 64604B1
Authority
RS
Serbia
Prior art keywords
bin
horizontal
vertical components
motion vector
code
Prior art date
Application number
RS20230766A
Other languages
English (en)
Inventor
Valeri George
Benjamin Bross
Heiner Kirchhoffer
Detlev Marpe
Tung Nguyen
Matthias Preiss
Mischa Siekmann
Jan Stegemann
Thomas Wiegand
Original Assignee
Ge Video Compression Llc
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=46319135&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=RS64604(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Ge Video Compression Llc filed Critical Ge Video Compression Llc
Publication of RS64604B1 publication Critical patent/RS64604B1/sr

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4031Fixed length to variable length coding
    • H03M7/4037Prefix coding
    • H03M7/4043Adaptive prefix coding
    • H03M7/4068Parameterized codes
    • H03M7/4075Golomb codes
    • 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
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • H03M7/4012Binary arithmetic codes
    • H03M7/4018Context adapative binary arithmetic codes [CABAC]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3059Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
    • H03M7/3064Segmenting
    • 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/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • 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/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
    • 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/124Quantisation
    • 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/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/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of 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/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/184Methods 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 bits, e.g. of the compressed video stream
    • 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
    • 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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • 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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Diaphragms And Bellows (AREA)
  • Sealing Devices (AREA)

Description

Opis
[0001] Predmetni pronalazak se bavi konceptom entropijskog kodiranja za kodiranje video podataka.
[0002] Mnogi video kodeci su poznati u tehnici. Generalno, ovi kodeci smanjuju količinu podataka potrebnih da bi se predstavio video sadržaj, tj. komprimuju podatke. U kontekstu video kodiranja, poznato je da se kompresija video podataka povoljno postiže sekvencijalnom primenom različitih tehnika kodiranja: predviđanje sa kompenzacijom kretanja koristi se za predviđanje sadržaja slike. Vektori kretanja određeni u predviđanju sa kompenzacijom kretanja, kao i reziduum predviđanja podležu entropijskom kodiranju bez gubitaka. Da bi se dodatno smanjila količina podataka, sami vektori kretanja su podložni predviđanju, tako da samo razlike vektora kretanja, koje predstavljaju reziduum predviđanja vektora kretanja, moraju da budu kodirane entropijski. U H.264, na primer, ovde opisana procedura primenjuje se za prenos informacija o razlikama vektora kretanja. Konkretno, razlike vektora kretanja su binarizovane u bin stringove koji odgovaraju kombinaciji skraćenog unarnog koda i, nadalje od određene vrednosti odsecanja, eksponencijalnom Golomb kodu. Dok se binovi eksponencijalnog Golomb koda lako kodiraju korišćenjem bajpas režima sa jednakom verovatnoćom (eng. equi-probability bypass mode) sa fiksnom verovatnoćom 0,5, za prve binove je obezbeđeno nekoliko konteksta. Vrednost odsecanja je odabrana da bude devet. Shodno tome, obezbeđena je velika količina konteksta za kodiranje razlika vektora kretanja.
[0003] Pružanje velikog broja konteksta, međutim, ne samo da povećava kompleksnost kodiranja, već takođe može negativno da utiče na efikasnost kodiranja: ako se kontekst posećuje suviše retko, prilagođavanje verovatnoće, tj. prilagođavanje estimacije verovatnoće pridružene sa respektivnim kontekstom tokom uzroka entropijskog kodiranja, ne uspeva da funkcioniše efikasno. Shodno tome, primenjene estimacije verovatnoće neadekvatno procenjuju stvarnu statistiku simbola. Štaviše, ako je za određeni bin binarizacije obezbeđeno nekoliko konteksta, izbor između njih može da zahteva pregled susednih binova/vrednosti elemenata sintakse čija potreba može da ometa izvršavanje procesa dekodiranja. S druge strane, ako je premali broj obezbeđenih konteksta, binovi veoma promenljive aktuelne statistike simbola grupišu se zajedno unutar jednog konteksta i shodno tome, estimacija verovatnoće povezana sa tim kontekstom ne uspeva efektivno da kodira binove povezane sa njim.
[0004] Postoji stalna potreba za daljim povećanjem efikasnosti kodiranja za entropijsko kodiranje razlika vektora kretanja.
[0005] Dokument WIEGAND T ET AL: „WD3: Working Draft 3 of High-Efficiency Video Coding“, 20110329, br. JCTVC-E603, 29. marta 2011 (2011-03-39), XSP030009014, ISSN: 0000-0003 opisuje radni nacrt HEVC standarda.
[0006] Shodno tome, cilj predmetnog pronalaska je da obezbedi takav koncept kodiranja.
[0007] Ovaj cilj se postiže kao što je prikazano u pridruženim nezavisnim zahtevima.
[0008] Osnovno otkriće predmetnog pronalaska je da efikasnost kodiranja za entropijsko kodiranje razlike vektora kretanja može dodatno da se poveća smanjenjem vrednosti odsecanja, do koje se koristi skraćeni unarni kod za binarizaciju razlika vektora kretanja, da bude dva, tako da postoje samo dve bin pozicije skraćenog unarnog koda, i ako se za binarizaciju razlika vektora kretanja nadalje od vrednosti odsecanja koristi eksponencijalni Golomb kod prvog reda, i ako je, dodatno, predviđen tačno jedan kontekst dve bin pozicije skraćenog unarnog koda, respektivno, tako da nije neophodan izbor konteksta na osnovu binova ili vrednosti elemenata sintakse susednih blokova slike i izbegava se previše fina klasifikacija binova na tim bin pozicijama u kontekste tako da prilagođavanje verovatnoće radi ispravno, i ako se isti konteksti koriste za horizontalne i vertikalne komponente time se dodatno smanjuju negativni efekti previše fine podele konteksta.
[0009] Dalje, otkriveno je da su ovde pomenuta podešavanja u vezi sa entropijskim kodiranjem razlika vektora kretanja posebno vredna kada se kombinuju sa naprednim metodama predviđanja vektora kretanja i smanjuju potrebnu količinu razlika vektora kretanja koja je potrebna da se prenese. Na primer, može da bude obezbeđeno više prediktora vektora kretanja kako bi se dobila uređena lista prediktora vektora kretanja, a indeks u ovoj listi prediktora vektora kretanja može da se koristi kako bi se odredio stvarni prediktor vektora kretanja čiji je rezidual predviđanja predstavljen dotičnom razlikom vektora kretanja. Iako informacije o korišćenom indeksu liste moraju da budu izvodljive iz toka podataka na strani dekodiranja, ukupan kvalitet predviđanja vektora kretanja se povećava i shodno tome, veličina razlika vektora kretanja dodatno se smanjuje tako da se sveukupna efikasnost kodiranja dalje povećava, a smanjenje vrednosti odsecanja i zajednička upotreba konteksta za horizontalne i vertikalne komponente razlika vektora kretanja odgovaraju takvom poboljšanom predviđanju vektora kretanja. S druge strane, objedinjavanje se može koristiti kako bi se smanjio broj razlika vektora kretanja koje bi se prenosile unutar toka podataka: u tu svrhu informacije o objedinjavanju mogu da se prenesu unutar signala toka podataka signalizirajući dekoderu da se radi o blokovima podele blokova koji su grupisani u grupu blokova. Razlike vektora kretanja tada mogu da se prenose unutar toka podataka u jedinicama ovih objedinjenih grupa umesto u pojedinačnim blokovima, čime se smanjuje broj razlika vektora kretanja koje je potrebno preneti. Kako ovo grupisanje blokova smanjuje interkorelaciju između susednih razlika vektora kretanja, ovde pomenuto izostavljanje pružanja nekoliko konteksta za jednu bin poziciju odvraća šemu entropijskog kodiranja od previše fine klasifikacije u kontekste u zavisnosti od susednih razlika vektora kretanja. Radije, koncept objedinjavanja već iskorišćava interkorelaciju između razlika vektora kretanja susednih blokova i shodno tome je dovoljan jedan kontekst za jednu bin poziciju - isti za horizontalne i vertikalne komponente.
[0010] U daljem tekstu opisana su poželjna izvođenja predmetne prijave sa pozivanjem na slike u kojima
Sl. 1 prikazuje blok dijagram enkodera prema jednom izvođenju;
Sl. 2a-2c šematski prikazuje različite potpodele uzorka niza, poput slike na blokove;
Sl. 3 prikazuje blok dijagram dekodera prema jednom izvođenju;
Sl. 4 detaljnije prikazuje blok dijagram enkodera prema jednom izvođenju;
Sl. 5 detaljnije prikazuje blok dijagram dekodera prema jednom izvođenju;
Sl. 6 šematski ilustruje transformaciju bloka iz prostornog domena u spektralni domen, rezultujući transformacioni blok i njegovu retransformaciju;
Sl. 7 prikazuje blok dijagram enkodera prema jednom izvođenju;
Sl. 8 prikazuje blok dijagram dekodera pogodnog za dekodiranje niza bitova generisanog od strane enkodera sa Sl. 8, prema jednom izvođenju;
Sl. 9 prikazuje šematski dijagram koji ilustruje paket podataka sa multipleksiranim parcijalnim nizovima bitova prema jednom izvođenju;
Sl. 10 prikazuje šematski dijagram koji ilustruje paket podataka sa alternativnom segmentacijom korišćenjem segmenata fiksne veličine prema jednom daljem izvođenju;
Sl. 11 prikazuje dekoder koji podržava prebacivanje režima prema jednom izvođenju; Sl. 12 prikazuje dekoder koji podržava prebacivanje režima prema jednom daljem izvođenju;
Sl. 13 prikazuje enkoder koji odgovara dekoderu sa Sl. 11 prema jednom izvođenju; Sl. 14 prikazuje enkoder koji odgovara dekoderu sa Sl. 12 prema jednom izvođenju; Sl. 15 prikazuje preslikavanje pStateCtx i fullCtxState/256*E*.
Sl. 16 prikazuje dekoder prema jednom izvođenju predmetnog pronalaska; i
Sl. 17 prikazuje enkoder prema jednom izvođenju predmetnog pronalaska.
Sl. 18 šematski prikazuje binarnizaciju razlike vektora kretanja u skladu sa jednim izvođenjem predmetnog pronalaska;
Sl. 19 šematski ilustruje koncept objedinjavanja u skladu sa jednim izvođenjem; i Sl. 20 šematski ilustruje šemu predviđanja vektora kretanja u skladu sa jednim izvođenjem.
[0011] Napominje se da su prilikom opisivanja navedenih slika, elementi koji se pojavljuju na nekoliko slika označeni istom pozivnom oznakom na svakoj od tih slika i da je što se tiče njihove funkcionalnosti radi izbegavanja nepotrebnih ponavljanja izostavljen ponovni opis tih elemenata. Pored toga, funkcionalnosti i opisi prikazani u vezi sa jednom slikom odnose se i na druge slike, osim ako je izričito naznačeno suprotno.
[0012] U nastavku su prvo opisana izvođenja opšteg koncepta video kodiranja, u odnosu na Sl. 1 do 10. Slike 1 do 6 odnose se na deo video kodeka koji radi na nivou sintakse. Slike koje slede 8 do 10 odnose se na izvođenja za deo koda koji se odnosi na konverziju toka elemenata sintakse u tok podataka i obrnuto. Zatim su opisani specifični aspekti i izvođenja predmetnog pronalaska u vidu mogućih rešenja opšteg koncepta koji je reprezentativno predstavljen u odnosu na Sl. 1 do 10.
[0013] Sl. 1 prikazuje primer za enkoder 10 u kojem mogu da se primene aspekti predmetne prijave.
[0014] Enkoder kodira niz uzoraka 20 informacija u tok podataka. Niz uzoraka informacija može da predstavlja uzorke informacija koji odgovaraju, na primer, vrednostima sjajnosti, vrednostima boja, vrednostima lume, vrednostima hrome ili slično. Međutim, uzorci informacija takođe mogu da budu vrednosti dubine u slučaju da je niz uzoraka 20 mapa dubine generisana, na primer, od strane vremena svetlosnog senzora ili slično.
[0015] Enkoder 10 je enkoder zasnovan na blokovima. To jest, enkoder 10 kodira niz uzoraka 20 u tok podataka 30 u jedinicama blokova 40. Kodiranje u jedinicama blokova 40 ne znači nužno da enkoder 10 kodira ove blokove 40 potpuno nezavisno jedan od drugog. Umesto toga, enkoder 10 može da koristi rekonstrukcije prethodno kodiranih blokova kako bi ekstrapolirao ili vršio intra-predikciju preostalih blokova, a može da koristi i granularnost blokova za postavljanje parametara kodiranja, tj. za postavljanje načina na koji se kodira svaki region niza uzoraka koji odgovara respektivnom bloku.
[0016] Dalje, enkoder 10 je transformacioni koder. To jest, enkoder 10 kodira blokove 40 korišćenjem transformacije kako bi preneo uzorke informacija unutar svakog bloka 40 iz prostornog domena u spektralni domen. Može da se koristi dvodimenzionalna transformacija, kao što je DCT od FFT ili slično. Poželjno je da su blokovi 40 kvadratnog ili pravougaonog oblika.
[0017] Podela niza uzoraka 20 na blokove 40 prikazane na Sl. 1 služi samo za svrhe ilustracije. Sl. 1 prikazuje niz uzoraka 20 kao podeljen na pravilan dvodimenzionalni raspored kvadratnih ili pravougaonih blokova 40 koji se naslanjaju jedni na druge bez preklapanja. Veličina blokova 40 može da bude unapred određena. To jest, enkoder 10 ne može da prenese informacije o veličini bloka za blokove 40 unutar toka podataka 30 na stranu za dekodiranje. Na primer, dekoder može da očekuje unapred određenu veličinu blokova.
[0018] Međutim, moguće je nekoliko alternativa. Na primer, blokovi mogu da se preklapaju jedni sa drugima. Preklapanje, međutim, može da se ograniči do te mere da svaki blok ima deo koji se ne preklapa ni sa jednim susednim blokom, ili takve da se svaki uzorak blokova preklapa, maksimalno, sa jednim blokom među susednim blokovima raspoređenim jedan do drugog sa trenutnim blokom duž unapred određenog pravca. Ovo poslednje bi značilo da levi i desni blokovi susedi mogu da se preklapaju sa trenutnim blokom tako da u potpunosti pokriju trenutni blok, ali ne mogu međusobno da se preklope, a isto važi i za susede u vertikalnom i dijagonalnom pravcu.
[0019] Kao dalja alternativa, podela niza uzoraka 20 na blokove 40 može da se prilagođava sadržaju niza uzoraka 20 pomoću enkodera 10, pri čemu se informacije o podeli za korišćenu podelu prenose na stranu dekodera preko niza bitova 30.
[0020] Slike 2a do 2c prikazuju različite primere za podelu niza uzoraka 20 na blokove 40. Sl.2a prikazuje podelu na bazi quadtree niza uzoraka 20 na blokove 40 različitih veličina, pri čemu su reprezentativni blokovi označeni na 40a, 40b, 40c i 40d sa povećanjem veličine. U skladu sa podelom na Sl. 2a, niz uzoraka 20 je prvo podeljen na pravilan dvodimenzionalni raspored blokova 40d stabla koji, zauzvrat, sa sobom imaju pridružene pojedinačne informacije o podelama prema kojima određeni blok 40d stabla može dalje da se podeli prema quadtree strukturi ili ne. Blok stabla levo od bloka 40d je primera radi podeljen na manje blokove u skladu sa quadtree strukturom. Enkoder 10 može da izvrši jednu dvodimenzionalnu transformaciju za svaki od blokova prikazanih punim i isprekidanim linijama na Sl. 2a. Drugim rečima, enkoder 10 može da transformiše niz 20 u jedinice podele bloka.
[0021] Umesto podele na bazi quadtree, može da se koristi opštija podela na bazi multi tree, a broj dece čvorova po nivou hijerarhije može da se razlikuje između različitih nivoa hijerarhije.
[0022] Sl. 2b prikazuje još jedan primer za podelu. U skladu sa Sl. 2b, niz uzoraka 20 je prvo podeljen na makroblokove 40b koji su raspoređeni u pravilnom dvodimenzionalnom rasporedu na način da se međusobno naslanjaju jedni na druge bez preklapanja, pri čemu svaki makroblok 40b sa sobom ima pridruženu informaciju o podeli prema kojoj makroblok nije podeljen, ili, ako je podeljen, podeljen je na pravilan dvodimenzionalan način na podblokove jednake veličine, kako bi se postigle različite granulacije podele za različite makroblokove. Rezultat je podela niza uzoraka 20 na blokove 40 različite veličine sa predstavnicima različitih veličina koji su označeni na 40a, 40b i 40a′. Kao na Sl. 2a, enkoder 10 izvodi dvodimenzionalnu transformaciju na svakom od blokova prikazanih na Sl. 2b punim i isprekidanim linijama. Sl. 2c će biti razmatrana kasnije.
[0023] Sl. 3 prikazuje dekoder 50 koji je u stanju da dekodira tok podataka 30 generisan od strane enkodera 10 da bio rekonstruisao rekonstruisanu verziju 60 niza uzoraka 20. Dekoder 50 izdvaja iz toka podataka 30 blok koeficijenta transformacije za svaki od blokova 40 i rekonstruiše rekonstruisanu verziju 60 vršenjem inverzne transformacije na svakom od blokova koeficijenta transformacije.
[0024] Enkoder 10 i dekoder 50 mogu da budu konfigurisani da izvode entropijsko kodiranje/dekodiranje kako bi se umetnule informacije o blokovima koeficijenata transformacije u, i ekstrahovale te informacije iz toka podataka, respektivno. Detalji u vezi s tim, u skladu sa različitim izvođenima, opisani su kasnije. Treba napomenuti da tok podataka 30 ne mora nužno da sadrži informacije o blokovima koeficijenata transformacije za sve blokove 40 niza uzoraka 20. Umesto toga, podskup blokova 40 može da se kodira u niz bitova 30 na drugi način. Na primer, enkoder 10 može da odluči da se suzdrži od umetanja bloka koeficijenta transformacije za određeni blok od blokova 40 sa umetanjem alternativnih parametara kodiranja u niz bitova 30 koji omogućavaju dekoderu 50 da predvidi ili na drugi način popuni respektivni blok u rekonstruisanoj verziji 60. Na primer, enkoder 10 može da izvrši analizu teksture kako bi locirao blokove unutar niza uzoraka 20 koji bi na strani dekodera mogli da se popune dekoderom putem sinteze teksture i naznači ovo u nizu bitova.
[0025] Kao što je objašnjeno u vezi sa slikama koje slede, blokovi koeficijenata transformacije ne moraju nužno da predstavljaju spektralnu reprezentaciju originalnih uzoraka informacija respektivnog bloka 40 niza uzoraka 20. Radije, takav blok koeficijenta transformacije može da predstavlja prikaz reziduala predviđanja respektivnog bloka 40 u spektralnom domenu. Sl. 4 prikazuje jedno izvođenje za jedan takav enkoder. Enkoder sa Sl.
4 sadrži fazu 100 transformacije, entropijski koder 102, fazu 104 inverzne transformacije, prediktor 106 i oduzimač 108, kao i sabirač 110. Oduzimač 108, faza 100 transformacije i entropijski koder 102 serijski su povezani u spomenutom redosledu između ulaza 112 i izlaza 114 enkodera sa Sl. 4. Faza 104 inverzne transformacije, sabirač 110 i prediktor 106 povezani su u spomenutom redosledu između izlaza faze 100 transformacije i invertujućeg ulaza oduzimača 108, pri čemu je izlaz prediktora 106 takođe spojen na dalji ulaz sabirača 110.
[0026] Koder sa Sl. 4 je koder blokova zasnovan na prediktivnoj transformaciji. To jest, blokovi niza uzoraka 20 koji ulaze na ulaz 112 predviđaju se iz prethodno kodiranih i rekonstruisanih delova istog niza uzoraka 20 ili prethodno kodiranih i rekonstruisanih drugih nizova uzoraka koji mogu da prethode ili da slede za trenutnim nizom uzoraka 20 u vremenu prezentacije. Predviđanje vrši prediktor 106. Oduzimač 108 oduzima predviđanje od takvog originalnog bloka, a faza 100 transformacije izvodi dvodimenzionalnu transformaciju reziduala predviđanja. Sama dvodimenzionalna transformacija ili naknadna mera unutar faze 100 transformacije može da dovede do kvantizacije koeficijenata transformacije unutar blokova koeficijenata transformacije. Kvantizovani blokovi koeficijenata transformacije kodiraju se bez gubitaka, na primer, enropijskim kodiranjem unutar entropijskog enkodera 102, pri čemu rezultujući tok podataka izlazi na izlaz 114. Faza 104 inverzne transformacije rekonstruiše kvantizovani rezidual, a sabirač 110, zauzvrat, kombinuje rekonstruisani rezidual sa odgovarajućim predviđanjem kako bi se dobili rekonstruisani uzorci informacija na osnovu kojih prediktor 106 može da predvidi gore pomenute trenutno kodirane blokove predviđanja. Prediktor 106 može da koristi različite režime predviđanja, kao što su režimi intra predikcije i režimi inter predikcije kako bi vršio predikciju blokova, a parametri predviđanja se prosleđuju entropijskom enkoderu 102 za umetanje u tok podataka. Za svaki blok predviđanja dobijen inter predikcijom, respektivni podaci o kretanju se ubacuju u niz bitova putem entropijskog enkodera 114 kako bi se strani za dekodiranje omogućilo da ponovi predviđanje. Podaci o kretanju za blok predviđanja slike mogu da uključuju deo sintakse koji uključuje element sintakse koji predstavlja razliku vektora kretanja diferencijalno kodirajući vektor kretanja za trenutni blok predviđanja u odnosu na već kodirane blokove predviđanja, koje je prediktor vektora kretanja izveo, na primer, putem propisanog postupka iz vektora kretanja susednih blokova predviđanja.
[0027] To jest, u skladu sa izvođenjem sa Sl. 4, blokovi koeficijenata transformacije predstavljaju spektralnu predstavu reziduala niza uzoraka, umesto njihovih stvarnih uzoraka informacija. To jest, u skladu sa izvođenjem na sa Sl. 4, sekvenca elemenata sintakse može da ulazi u entropijski enkoder 102 radi entropijskog kodiranja u tok 114 podataka. Sekvenca elemenata sintakse može da sadrži elemente sintakse za razliku vektora kretanja za blokove inter predikcije i elemente sintakse koji se tiču mape značaja koji ukazuju na položaje značajnih nivoa koeficijenta transformacije, kao i elemente sintakse koji definišu same nivoe značajnih koeficijenata transformacije, za transformacione blokove.
[0028] Treba da se napomene da postoji nekoliko alternativa za izvođenje sa Sl. 4, pri čemu su neka od njih opisana u uvodnom delu spisa čiji opis je ugrađen u opis za Sl. 4.
[0029] Sl. 5 prikazuje dekoder koji može da dekodira tok podataka generisan od strane enkodera sa Sl. 4. Dekoder sa Sl. 5 sadrži entropijski dekoder 150, fazu 152 inverzne transformacije, sabirač 154 i prediktor 156. Entropijski dekoder 150, faza 152 inverzne transformacije i sabirač 154 serijski su povezani između ulaza 158 i izlaza 160 dekodera sa Sl. 5 u navedenom redosledu. Dalji izlaz entropijskog dekodera 150 povezan je sa prediktorom 156 koji je, zauzvrat, povezan između izlaza sabirača 154 i njegovog daljeg ulaza. Entropijski dekoder 150 iz toka podataka, koji ulazi u dekoder sa Sl. 5 na ulazu 158, ekstrahuje blokove koeficijenta transformacije, pri čemu se inverzna transformacija primenjuje na blokove koeficijenata transformacije u fazi 152 da bi se dobio rezidualni signal. Rezidualni signal se kombinuje sa predviđanjem iz prediktora 156 na sabiraču 154 kako bi se dobio rekonstruisani blok rekonstruisane verzije niza uzoraka na izlazu 160. Na osnovu rekonstruisanih verzija, prediktor 156 generiše predviđanja i na taj način ponovo gradi predviđanja koja izvodi prediktor 106 na strani enkodera. Da bi se dobila ista predviđanja koja se koriste na strani enkodera, prediktor 156 koristi parametre predviđanja koje entropijski dekoder 150 takođe pribavlja iz toka podataka na ulazu 158.
[0030] Treba da se napomene da u gore opisanim izvođenjima prostorne granularnosti pri kojima se izvode predviđanje i transformacija reziduala ne moraju da budu jednake jedna drugoj. Ovo je prikazano na Sl. 2c. Ova slika prikazuje podelu za blokove predviđanja za granularnosti predviđanja sa punim linijama i granularnost reziduala sa isprekidanim linijama. Kao što može da se vidi, enkoder može da izabere delove nezavisno jedan od drugog. Preciznije, sintaksa toka podataka može da omogući definisanje podele reziduala nezavisno od podele predviđanja. Alternativno, podela reziduala može da bude proširenje podele predviđanja tako da je svaki rezidualni blok ili jednak sa ili odgovarajući podskup bloka predviđanja. Ovo je prikazano na Sl. 2a i Sl. 2b, na primer, gde je granularnost predviđanja opet prikazana punim linijama, a granularnost reziduala isprekidanim linijama. To jest, na Sl. 2a-2c, svi blokovi sa pridruženom pozivnom oznakom bili bi rezidualni blokovi za koje bi se izvršila jedna dvodimenzionalna transformacija, dok bi veći blokovi sa punom linijom, koji obuhvataju blokove sa isprekidanom linijom 40a, na primer, bili blokovi predviđanja za koje se postavljanje parametara predviđanja vrši pojedinačno.
[0031] Gore navedena izvođenja imaju zajedničko da je potrebno da se blok (rezidualnih ili originalnih) uzoraka transformiše na strani enkodera u blok koeficijenta transformacije koji će, zauzvrat, inverzno da se transformiše u rekonstruisani blok uzoraka na strani dekodera. Ovo je ilustrovano na Sl. 6. Sl. 6 prikazuje blok uzoraka 200. U slučaju sa Sl. 6, ovaj blok 200 je primera radi kvadratnog oblika i veličine 4x4 uzorka 202. Uzorci 202 su pravilno raspoređeni duž horizontalnog pravca x i vertikalnog pravca y. Gore pomenutom dvodimenzionalnom transformacijom T, blok 200 se transformiše u spektralni domen, naime u blok 204 koeficijenata transformacije 206, pri čemu je blok 204 transformacije iste veličine kao i blok 200. To jest, transformacioni blok 204 ima onoliko transformacionih koeficijenata 206 koliko blok 200 ima uzoraka, i u horizontalnom i vertikalnom pravcu. Međutim, kako je transformacija T spektralna transformacija, pozicije transformacionih koeficijenata 206 unutar transformacionog bloka 204 ne odgovaraju prostornim pozicijama, već spektralnim komponentama sadržaja bloka 200. Naročito, horizontalna osa transformacionog bloka 204 odgovara osi duž koje se spektralna frekvencija u horizontalnom smeru monotono povećava, dok vertikalna osa odgovara osi duž koje se prostorna frekvencija u vertikalnom smeru monotono povećava pri čemu je koeficijent transformacije DC (jednosmerne) komponente pozicioniran u ugao – ovde, primera radi, u gornji levi ugao - bloka 204 tako da je u donjem desnom uglu pozicioniran transformacioni koeficijent 206 koji odgovara najvišoj frekvenciji i u horizontalnom i u vertikalnom pravcu. Zanemarivanjem prostornog pravca, prostorna frekvencija kojoj pripada određeni transformacioni koeficijent 206 generalno se povećava od gornjeg levog ugla do donjeg desnog ugla. Transformacioni blok 204 se inverznom transformacijom T<-1>ponovo prenosi iz spektralnog domena u prostorni domen, tako da se ponovo pribavi kopija 208 bloka 200. U slučaju da tokom transformacije ne bi bili uvedeni kvantizacija/gubitci, rekonstrukcija bi bila savršena.
[0032] Kao što je već gore navedeno, sa Sl. 6 može da se vidi da veće veličine bloka 200 povećavaju spektralnu rezoluciju rezultujuće spektralne reprezentacije 204. S druge strane, šum kvantizacije ima tendenciju da se raširi po celom bloku 208, pa time nagli i veoma lokalizovani objekti unutar blokova 200 imaju tendenciju da dovedu do odstupanja ponovo transformisanog bloka u odnosu na originalni blok 200 zbog šuma kvantizacije. Glavna prednost korišćenja većih blokova je, međutim, što odnos između broja značajnih, odnosno nenultih (kvantizovanih) transformacionih koeficijenata, t.j. nivoa, s jedne strane, i broja beznačajnih transformacionih koeficijenata, s druge strane, može da bude smanjen unutar većih blokova u poređenju sa manjim blokovima čime se omogućava bolja efikasnost kodiranja. Drugim rečima, često se značajni nivoi transformacionih koeficijenata, tj.
transformacionih koeficijenata koji nisu kvantizovani na nulu, raspoređeni raštrkano po transformacionom bloku 204. Zbog toga, u skladu sa izvođenjima koja su detaljnije opisana u nastavku, položaji značajnih nivoa transformacionih koeficijenta signaliziraju se u toku podataka pomoću mape značaja. Vrednosti značajnog transformacionog koeficijenta, tj. nivoa transformacionog koeficijenta u slučaju kvantizacije transformacionih koeficijenata, prenose se odvojeno od toga unutar toka podataka.
[0033] Svi gore opisani enkoderi i dekoderi su, dakle, konfigurisani da se bave određenom sintaksom elemenata sintakse. To jest, pretpostavlja se da su gore pomenuti elementi sintakse, kao što su nivoi transformacionih koeficijenata, elementi sintakse koji se odnose na mapu značaja transformacionih blokova, elementi sintakse podataka o kretanju koji se odnose na blokove inter predikcije i tako dalje, sekvencijalno raspoređeni unutar toka podataka na propisan način. Takav propisan način može da bude predstavljen u obliku pseudo koda kao što je to učinjeno, na primer, u standardu H.264 ili drugim video kodecima.
[0034] Drugim rečima, gornji opis se prvenstveno odnosio na konverziju medijskih podataka, ovde primera radi video podataka, u sekvencu elemenata sintakse u skladu sa unapred definisanom strukturom sintakse koja propisuje određene tipove elemenata sintakse, njihovu semantiku i redosled među njima. Entropijski enkoder i entropijski dekoder sa Sl. 4 i 5 mogu da budu konfigurisani da rade, i mogu da budu strukturirani, kao što navedeno u nastavku. Isti su odgovorni za obavljanje konverzije između sekvence elemenata sintakse i toka podataka, tj. simbola ili niza bitova.
[0035] Entropijski enkoder prema jednom izvođenju ilustrovan je na Sl. 7. Enkoder bez gubitaka pretvara tok 301 elemenata sintakse u skup dva ili više parcijalnih nizova 312 bitova.
[0036] U jednom poželjnom izvođenju pronalaska, svaki element 301 sintakse pridružen je sa kategorijom iz skupa jedne ili više kategorija, tj. tipom elementa sintakse. Na primer, kategorije mogu da specificiraju tip elementa sintakse. U kontekstu hibridnog video kodiranja, zasebna kategorija može da bude povezana sa režimima kodiranja makrobloka, režimima kodiranja blokova, indeksima referentne slike, razlikama vektora kretanja, flegovima podela, flegovima kodiranih blokova, parametrima kvantizacije, nivoima transformacionih koeficijenata itd. U drugim oblastima primene, kao što su audio, govor, tekst, dokument ili opšte kodiranje podataka, moguće su drugačije kategorizacije elemenata sintakse.
[0037] Uopšteno, svaki element sintakse može da ima vrednost konačnog ili prebrojivo beskonačnog skupa vrednosti, gde skup mogućih vrednosti elemenata sintakse može da se razlikuje za različite kategorije elemenata sintakse. Na primer, postoje binarni elementi sintakse, kao i oni sa celobrojnim (eng. integer) vrednostima.
[0038] Radi smanjenja kompleksnosti algoritma kodiranja i dekodiranja i radi omogućavanja opšteg dizajna kodiranja i dekodiranja za različite elemente sintakse i kategorije elemenata sintakse, elementi 301 sintakse se pretvaraju u uređene skupove binarnih odluka i te binarne odluke se zatim obrađuju jednostavnim algoritmima binarnog kodiranja. Stoga, binarizator 302 bijektivno preslikava vrednost svakog elementa 301 sintakse u sekvencu (ili string ili reč) binova 303. Sekvenca binova 303 predstavlja skup uređenih binarnih odluka. Svaki bin 303 ili binarna odluka mogu da uzmu jednu vrednost iz skupa od dve vrednosti, npr. jednu od vrednosti 0 i 1. Šema binarizacije može da bude različita za različite kategorije elemenata sintakse. Šema binarizacije za određenu kategoriju elemenata sintakse može da zavisi od skupa mogućih vrednosti elemenata sintakse i/ili drugih svojstava elementa sintakse za određenu kategoriju.
[0039] Tabela 1 ilustruje tri primera šema binarizacije za prebrojivo beskonačne skupove. Šeme binarizacije za prebrojivo beskonačne skupove mogu da se primene i za konačne skupove vrednosti elemenata sintakse. Naročito za velike konačne skupove vrednosti elemenata sintakse, neefikasnost (koja proizilazi iz neiskorišćenih sekvenci binova) može biti zanemarljiva, ali univerzalnost takvih šema binarizacije daje prednost u smislu kompleksnosti i memorijskih zahteva. Za male konačne skupove vrednosti elemenata sintakse, često je poželjno (u smislu efikasnosti kodiranja) da se šema binarizacije prilagodi broju mogućih vrednosti simbola.
[0040] Tabela 2 ilustruje tri primera šema binarizacije za konačne skupove od 8 vrednosti. Šeme binarizacije za konačne skupove mogu da se izvedu iz univerzalnih šema binarnizacije za prebrojivo beskonačne skupove modifikovanjem nekih sekvenci binova na način tako da konačni skupovi sekvenci binova predstavljaju kod bez redundancije (i potencijalno preuređivanje sekvenci binova). Kao primer, skraćena šema unarne binarizacije u Tabeli 2 napravljena je izmenom sekvence binova za element 7 sintakse od univerzalne unarne binarizacije (videti Tabelu 1). Skraćena i preuređena Exp-Golomb binarizacija nultog reda u Tabeli 2 nastala je izmenom sekvence binova za element 7 sintakse od univerzalne Exp-Golomb binarnizacije nultog reda (videti Tabelu 1) i preuređivanjem sekvenci binova (skraćena sekvenca binova za simbol 7 dodeljena je simbolu 1). Za konačne skupove elemenata sintakse, takođe je moguće da se koriste nesistematske/neuniverzalne šeme binarizacije, kao što je prikazano primerom u poslednjoj koloni Tabele 2.
Tabela 1: Primeri binarizacije za prebrojivo beskonačne skupove (ili velike konačne skupove).
Tabela 2: Primeri binarizacije za konačne skupove.
[0041] Svaki bin 303 iz sekvence binova kreirane pomoću binarizatora 302 unosi se u dodeljivač 304 parametara u sekvencijalnom redosledu. Dodeljivač parametara dodeljuje skup od jednog ili više parametara svakom binu 303 i kao izlaz daje bin sa pridruženim skupom parametara 305. Skup parametara se određuje na potpuno isti način i kod enkodera i kod dekodera. Skup parametara može da se sastoji od jednog ili od više sledećih parametara:
Naročito, dodeljivač 304 parametara može da bude konfigurisan da trenutnom binu 303 dodeli kontekstni model. Na primer, dodeljivač 304 parametara može da izabere jedan od dostupnih kontekstnih indeksa za trenutni bin 303. Dostupni skup konteksta za trenutni bin 303 može da zavisi od tipa bina koji, zauzvrat, može da bude definisan tipom/kategorijom elementa 301 sintakse, od binarizacije čiji je trenutni bin 303 deo, i od pozicije trenutnog bina 303 u okviru potonje binarizacije. Izbor konteksta među dostupnim skupom konteksta može da zavisi od prethodnih binova i elemenata sintakse koji su pridruženi sa ovim potonjim. Svaki od ovih konteksta ima sa sobom pridružen model verovatnoće, tj. meru za estimaciju verovatnoće za jednu od dve moguće vrednosti bina za trenutni bin. Model verovatnoće naročito može da bude mera za estimaciju verovatnoće manje verovatne ili više verovatne vrednosti bina za trenutni bin, sa modelom verovatnoće koji je dodatno definisan identifikatorom koji specificira estimaciju za koju od dve moguće vrednosti bina predstavlja manje verovatnu ili više verovatnu vrednost bina za tekući bin 303. U slučaju da je samo jedan kontekst dostupan za trenutni bin, izbor konteksta može da se izostavi. Kao što će u nastavku biti detaljnije prikazano, dodeljivač 304 parametara takođe može da izvrši prilagođavanje modela verovatnoće kako bi prilagodio modele verovatnoće pridružene sa različitim kontekstima stvarnoj statistici binova respektivnih binova koji pripadaju respektivnim kontekstima.
[0042] Kao što će takođe biti detaljnije opisano u nastavku, dodeljivač 304 parametara može da radi drugačije u zavisnosti od toga da li su aktivirani režim visoke efikasnosti (eng. HE - high efficiency) ili režim niske kompleksnosti (eng. LC - low complexity). U oba režima, model verovatnoće pridružuje trenutni bin 303 bilo kojem od enkodera 310 binova, kao što će biti opisano u nastavku, ali režim rada dodeljivača 304 parametara ima tendenciju da bude manje kompleksan u LC režimu dok se, međutim, efikasnost kodiranja povećava u režimu visoke efikasnosti zbog dodeljivača 304 parametara koji uzrokuje da se pridruživanje pojedinačnih binova 303 pojedinačnim enkoderima 310 preciznije prilagođava statistici binova, čime se optimizuje entropija u odnosu na režim LC.
[0043] Svaki bin sa pridruženim skupom parametara 305 koji se dobijaju na izlazu dodeljivača 304 parametara dovodi se u selektor 306 bafera binova. Selektor 306 bafera binova potencijalno modifikuje vrednost ulaznog bina 305 na osnovu vrednosti ulaznog bina i pridruženih parametara 305 i odvodi izlazni bin 307 - sa potencijalno modifikovanom vrednošću - u jedan od dva ili više bafera 308 binova. Bafer 308 binova do kojeg se šalje izlazni bin 307 određuje se na osnovu vrednosti ulaznog bina 305 i/ili vrednosti pridruženih parametara 305.
[0044] U jednom poželjnom izvođenju pronalaska, selektor 306 bafera binova ne modifikuje vrednost bina, tj. izlazni bin 307 uvek ima istu vrednost kao i ulazni bin 305. U jednom daljem poželjnom izvođenju pronalaska, selektor 306 bafera binova određuje vrednost izlaznog bina 307 na osnovu vrednosti ulaznog bina 305 i pridružene mere za estimaciju verovatnoće za jednu od dve moguće vrednosti bina za trenutni bin. U jednom poželjnom izvođenju pronalaska, vrednost izlaznog bina 307 postavljena je jednaka sa vrednošću ulaznog bina 305 ako je mera za verovatnoću za jednu od dve moguće vrednosti bina za trenutni bin manja (ili manja ili jednaka) od određenog praga; ako je mera za verovatnoću za jednu od dve moguće vrednosti bina za trenutni bin veća ili jednaka (ili veća) od određenog praga, vrednost izlaznog bina 307 se modifikuje (tj. postavlja se na suprotnu od vrednosti ulaznog bina). U jednom daljem poželjnom izvođenju pronalaska, vrednost izlaznog bina 307 postavljena je jednaka sa vrednošću ulaznog bina 305 ako je mera za verovatnoću za jednu od dve moguće vrednosti bina za trenutni bin veća (ili veća ili jednaka) od određenog praga; ako je mera za verovatnoću za jednu od dve moguće vrednosti bina za trenutni bin manja ili jednaka (ili manja) od određenog praga, vrednost izlaznog bina 307 se modifikuje (tj. postavlja se na suprotnu od vrednosti ulaznog bina). U jednom poželjnom izvođenju pronalaska, vrednost praga odgovara vrednosti 0,5 za estimiranu verovatnoću za obe moguće vrednosti bina.
[0045] U jednom daljem poželjnom izvođenju pronalaska, selektor 306 bafera binova određuje vrednost izlaznog bina 307 na osnovu vrednosti ulaznog bina 305 i pridruženog identifikatora koji specificira estimaciju za koju od dve moguće vrednosti bina predstavlja manje verovatnu ili više verovatnu vrednost bina za trenutni bin. U jednom poželjnom izvođenju pronalaska, vrednost izlaznog bina 307 je podešena da bude jednaka sa vrednošću ulaznog bina 305 ako identifikator specificira da prva od dve moguće vrednosti bina predstavlja manje verovatnu (ili više verovatnu) vrednost bina za trenutni bin, a vrednost izlaznog bina 307 se modifikuje (tj. postavlja se na suprotnu od vrednosti ulaznog bina) ako identifikator specificira da druga od dve moguće vrednosti bina predstavlja manje verovatnu (ili više verovatnu) vrednost bina za trenutni bin.
[0046] U jednom poželjnom izvođenju pronalaska, selektor 306 bafera binova određuje bafer 308 binova u koji se šalje izlazni bin 307 na osnovu pridružene mere za estimaciju verovatnoće za jednu od dve moguće vrednosti bina za trenutni bin. U jednom poželjnom izvođenju pronalaska, skup mogućih vrednosti za meru za estimaciju verovatnoće za jednu od dve moguće vrednosti bina je konačan, a selektor 306 bafera binova sadrži tabelu koja pridružuje tačno jedan bafer 308 binova sa svakom mogućom vrednošću za estimaciju verovatnoće za jednu od dve moguće vrednosti bina, gde različite vrednosti za meru za estimaciju verovatnoće za jednu od dve moguće vrednosti bina mogu da budu pridružene sa istim baferom 308 binova. U jednom daljem poželjnom izvođenju pronalaska, opseg mogućih vrednosti za meru za estimaciju verovatnoće za jednu od dve moguće vrednosti bina je particionisan na niz intervala, gde selektor 306 bafera binova određuje indeks intervala za trenutnu meru za estimaciju verovatnoće za jednu od dve moguće vrednosti bina, a selektor 306 bafera binova sadrži tabelu koja pridružuje tačno jedan bafer 308 binova sa svakom mogućom vrednošću za indeks intervala, gde različite vrednosti za indeks intervala mogu da budu pridružene sa istim baferom 308 binova. U jednom poželjnom izvođenju pronalaska, ulazni binovi 305 sa suprotnim merama za estimaciju verovatnoće za jednu od dve moguće vrednosti bina (suprotne mere su one koje predstavljaju estimacije verovatnoće P i 1 - P) dovode se u isti bafer 308 binova. U jednom daljem poželjnom izvođenju pronalaska, pridruživanje mere za estimaciju verovatnoće jedne od dve moguće vrednosti bina za trenutni bin sa određenim baferom binova prilagođava se tokom vremena, npr. kako bi se osiguralo da napravljeni parcijalni nizovi bitova imaju slične brzine protoka bitova. Dalje u nastavku, indeks intervala će se takođe nazivati pipe indeks (eng. pipe index), dok će pipe indeks zajedno sa indeksom prečišćavanja i flegom koji ukazuje na verovatniju vrednost bina da indeksira stvarni model verovatnoće, tj. estimaciju verovatnoće.
[0047] U jednom daljem poželjnom izvođenju pronalaska, selektor 306 bafera binova određuje bafer 308 binova u koji se šalje izlazni bin 307 na osnovu pridružene mere za estimaciju verovatnoće za manje verovatnu ili više verovatnu vrednost bina za trenutni bin. U poželjnom izvođenju pronalaska, skup mogućih vrednosti za meru za estimaciju verovatnoće za manje verovatnu ili više verovatnu vrednost bina je konačan, a selektor 306 bafera binova sadrži tabelu koja pridružuje tačno jedan bafer 308 binova sa svakom mogućom vrednošću estimacije verovatnoće za manje verovatnu ili više verovatnu vrednost bina, gde različite vrednosti za meru za estimaciju verovatnoće za manje verovatnu ili više verovatnu vrednost bina mogu da budu pridružene sa istim baferom 308 binova. U jednom daljem poželjnom izvođenju pronalaska, opseg mogućih vrednosti za meru za estimaciju verovatnoće za manje verovatnu ili više verovatnu vrednost bina podeljen je na broj intervala, gde selektor 306 bafera binova određuje indeks intervala za trenutnu meru za estimaciju verovatnoće za manje verovatnu ili verovatnu vrednost bina, a selektor 306 bafera binova sadrži tabelu koja pridružuje tačno jedan bafer 308 binova sa svakom mogućom vrednošću za indeks intervala, gde različite vrednosti za indeks intervala mogu da budu pridružene sa baferom 308 binova. U jednom daljem poželjnom izvođenju pronalaska, pridruživanje mere za estimaciju verovatnoće za manje verovatnu ili više verovatnu vrednost bina za trenutni bin sa određenim baferom binova se vremenom prilagođava, npr. kako bi se osiguralo da kreirani parcijalni nizovi bitova imaju slične brzine protoka bitova.
[0048] Svaki od dva ili više bafera 308 binova je povezan sa tačno jednim enkoderom 310 binova, a svaki enkoder binova je povezan samo sa jednim baferom 308 binova. Svaki enkoder 310 binova čita binove iz pridruženog bafera 308 binova i pretvara sekvencu 309 binova u kodnu reč 311, koja predstavlja sekvencu bitova. Baferi 308 binova predstavljaju FIFO (eng. first-in-first-out) bafere; binovi koji se kasnije (u sekvencijalnom redosledu) unose u bafer 308 binova se ne kodiraju pre binova koji su uneti ranije (u sekvencijalnom redosledu) u bafer binova. Kodne reči 311 koje izlaze iz određenog enkodera 310 binova upisuju se u određeni parcijalni niz 312 bitova. Celokupni algoritam za kodiranje pretvara elemente 301 sintakse u dva ili više parcijalnih nizova 312 bitova, gde je broj parcijalnih nizova bitova jednak broju bafera binova i enkodera binova. U jednom poželjnom izvođenju pronalaska, enkoder 310 binova pretvara promenljivi broj binova 309 u kodnu reč 311 promenljivog broja bitova. Jedna prednost gorenavedenih i u nastavku opisanih izvođenja pronalaska je ta što kodiranje binova može da se obavlja paralelno (npr. za različite grupe mera verovatnoće), što smanjuje vreme obrade za nekoliko implementacija.
[0049] Još jedna prednost izvođenja pronalaska je ta što kodiranje binova, koje obavljaju enkoderi 310 binova, može posebno da bude dizajnirano za različite skupove parametara 305. Konkretno, kodiranje binova i kodiranje mogu da budu optimizovani (u smislu efikasnosti kodiranja i/ili kompleksnosti) za različite grupe estimiranih verovatnoća. S jedne strane, ovo omogućava smanjenje kompleksnosti kodiranja/dekodiranja, a s druge strane, omogućava poboljšanje efikasnosti kodiranja. U poželjnom izvođenju pronalaska, enkoderi 310 binova implementiraju različite algoritme kodiranja (tj. preslikavanje sekvenci binova na kodne reči) za različite grupe mera za estimaciju verovatnoće za jednu od dve moguće vrednosti bina 305 za trenutni bin. U jednom daljem poželjnom izvođenju pronalaska, enkoderi 310 binova implementiraju različite algoritme kodiranja za različite grupe mera za estimaciju verovatnoće za manje verovatnu ili više verovatnu vrednost bina za trenutni bin.
[0050] U jednom poželjnom izvođenju pronalaska, enkoderi 310 binova - ili jedan ili više enkodera binova - predstavljaju entropijske enkodere koji direktno preslikavaju sekvence 309 ulaznih binova na kodne reči 310. Takva preslikavanja mogu efikasno da se implementiraju i ne zahtevaju složen mehanizam (eng. engine) za aritmetičko kodiranje. Inverzno preslikavanje kodnih reči na sekvence binova (kao što se vrši u dekoderu) trebalo bi da bude jedinstveno kako bi se garantovalo savršeno dekodiranje ulazne sekvence, ali preslikavanje sekvenci 309 binova na kodne reči 310 ne mora nužno da bude jedinstveno, tj. moguće je da određeni niz binova može da se preslika u više od jedne sekvence kodnih reči. U poželjnom izvođenju pronalaska, preslikavanje sekvenci 309 ulaznih binova na kodne reči 310 je bijektivno. U jednom daljem poželjnom izvođenju pronalaska, enkoderi binova 310 - ili jedan ili više enkodera binova - predstavljaju entropijske enkodere koji direktno preslikaju sekvence promenljive dužine 309 ulaznih binova na kodne reči 310 promenljive dužine. U poželjnom izvođenju pronalaska, izlazne kodne reči predstavljaju kodove bez redundancije, kao što su opšti Hafmanovi kodovi ili kanonski Hafmanovi kodovi.
[0051] U Tabeli 3 su ilustrovana dva primera za bijektivno preslikavanje bin sekvenci na kodove bez redundancije. U jednom daljem poželjnom izvođenju pronalaska, izlazne kodne reči predstavljaju redundantne kodove pogodne za detekciju greške i oporavak greške. U jednom daljem poželjnom izvođenju pronalaska, izlazne kodne reči predstavljaju kodove za enkripciju pogodne za enkripciju elemenata sintakse.
Tabela 3: Primeri preslikavanja između sekvenci binova i kodnih reči.
[0052] U jednom daljem poželjnom izvođenju pronalaska, enkoderi 310 binova - ili jedan ili više enkodera binova - predstavljaju entropijske enkodere koji direktno preslikaju sekvence promenljive dužine 309 ulaznih binova na kodne reči 310 fiksne dužine. U jednom daljem poželjnom izvođenju pronalaska, enkoderi 310 binova - ili jedan ili više enkodera binova predstavljaju entropijske enkodere koji direktno preslikaju sekvence fiksne dužine 309 ulaznih binova na kodne reči 310 promenljive dužine.
[0053] Dekoder prema izvođenju pronalaska ilustrovan je na Sl. 8. Dekoder u osnovi obavlja inverzne operacije od enkodera, tako da se (prethodno kodirana) sekvenca elemenata 327 sintakse dekodira iz skupa od dva ili više parcijalnih nizova 324 bitova. Dekoder uključuje dva različita toka procesa: Tok za zahteve za podacima, koji ponavlja tok podataka enkodera, i tok podataka, koji predstavlja inverzni tok od toka podataka enkodera. Na ilustraciji na Sl. 8, isprekidane strelice predstavljaju tok zahteva za podacima, dok pune strelice predstavljaju tok podataka. Gradivni blokovi dekodera u osnovi ponavljaju gradivne elemente enkodera, ali implementiraju obrnute operacije.
[0054] Dekodiranje elementa sintakse se okida zahtevom za novim dekodiranim elementom 313 sintakse koji se šalje binarizatoru 314. U jednom poželjnom izvođenju pronalaska, svaki zahtev za novi dekodirani element 313 sintakse pridružen je sa kategorijom skupa od jedne ili više kategorija. Kategorija koja je pridružena sa zahtevom za element sintakse ista je kao i kategorija koja je bila pridružena sa odgovarajućim elementom sintakse tokom kodiranja.
[0055] Binarizator 314 preslikava zahtev za element 313 sintakse u jedan ili više zahteva za bin koji se šalju dodeljivaču 316 parametara. Kao konačni odgovor na zahtev za bin koji binarizator 314 šalje dodeljivaču 316 parametara, binarizator 314 prima dekodirani bin 326 iz selektora 318 bafera binova. Binarizator 314 upoređuje primljenu sekvencu dekodiranih binova 326 sa sekvencama binova određene šeme binarnizacije za zahtevani element sintakse i, ako primljena sekvenca dekodiranih binova 326 odgovara binarizaciji elementa sintakse, binarizator prazni svoj bafer binova i na izlazu daje dekodirani element sintakse kao konačni odgovor na zahtev za novi dekodirani simbol. Ako se već primljena sekvenca dekodiranih binova ne podudara sa bilo kojom od sekvenci binova za šemu binarizacije za traženi element sintakse, binarizator šalje drugi zahtev za bin dodeljivaču parametara sve dok se sekvenca dekodiranih binova ne podudari sa jednom od sekvenci binova iz šeme binarizacije za traženi element sintakse. Za svaki zahtev za element sintakse, dekoder koristi istu šemu binarizacije koja je korišćena za kodiranje odgovarajućeg elementa sintakse. Šema binarizacije može da bude različita za različite kategorije elemenata sintakse. Šema binarizacije za određenu kategoriju elemenata sintakse može da zavisi od skupa mogućih vrednosti elemenata sintakse i/ili drugih svojstava elemenata sintakse za određenu kategoriju.
[0056] Dodeljivač 316 parametara dodeljuje skup od jednog ili više parametara svakom zahtevu za bin i šalje zahtev za bin sa pridruženim skupom parametara selektoru bafera binova. Skup parametara koje dodeljivač parametara pridružuje zahtevanom binu isti je kao i onaj koji je pridružen odgovarajućem binu tokom kodiranja. Skup parametara može da se sastoji od jednog ili više parametara koji su navedeni u opisu enkodera sa Sl. 7.
[0057] U jednom poželjnom izvođenju pronalaska, dodeljivač 316 parametara pridružuje svaki zahtev za bin sa istim parametrima kao što je učinio i dodeljivač 304, tj. kontekst i njegova pridružena mera za estimaciju verovatnoće za jednu od dve moguće vrednosti bina za trenutni zahtevani bin, kao što je mera za estimaciju verovatnoće manje verovatne ili više verovatne vrednosti bina za trenutni zahtevani bin i identifikator koji specificira estimaciju za koju od dve moguće vrednosti bina predstavlja manje verovatnu ili više verovatnu vrednost bina za trenutni zahtevani bin.
[0058] Dodeljivač 316 parametara može da odredi jednu ili više od gore navedenih mera verovatnoće (meru za estimaciju verovatnoće za jednu od dve moguće vrednosti bina za trenutni zahtevani bin, meru za estimaciju verovatnoće za manje verovatnu ili više verovatnu vrednost bina za trenutni zahtevani bin, identifikator koji specificira estimaciju za koju od dve moguće vrednosti bina predstavlja manje verovatnu ili više verovatnu vrednost bina za trenutni zahtevani bin) na osnovu skupa od jednog ili više već dekodiranih simbola. Određivanje mera verovatnoće za određeni zahtev za bin ponavlja proces kod enkodera za odgovarajući bin. Dekodirani simboli koji se koriste za određivanje mera verovatnoće mogu da uključuje jedan ili više već dekodiranih simbola iz iste kategorije simbola, jedan ili više već dekodiranih simbola iz iste kategorije simbola koji odgovaraju skupovima podataka (kao što su blokovi ili grupe uzoraka) susednih prostornih i/ili vremenskih lokacija (u odnosu na skup podataka pridružen sa trenutnim zahtevom za element sintakse), ili jedan ili više već dekodiranih simbola od različitih kategorija simbola koji odgovaraju skupovima podataka istih i/ili susednih prostornih i/ili vremenskih lokacija (u odnosu na skup podataka pridružen sa trenutnim zahtevom za element sintakse).
[0059] Svaki zahtev za bin sa pridruženim skupom 317 parametara koji izlazi iz dodeljivača 316 parametara ubacuje se u selektor 318 bafera binova. Na osnovu pridruženog skupa 317 parametara, selektor 318 bafera binova šalje zahtev za bin 319 u jedan od dva ili više bafera 320 binova i prima dekodirani bin 325 iz selektovanog bafera 320 binova. Dekodirani ulazni bin 325 potencijalno je modifikovan, a dekodirani izlazni bin 326 - sa potencijalno modifikovanom vrednošću - šalje se binarizatoru 314 kao konačni odgovor na zahtev za bin sa pridruženim skupom 317 parametara.
[0060] Bafer 320 binova, kojem se prosleđuje zahtev za bin, bira se na isti način kao i bafer binova kojem je poslat izlazni bin iz selektora bafera binova na strani enkodera.
[0061] U jednom poželjnom izvođenju pronalaska, selektor 318 bafera binova određuje bafer 320 binova kojem se šalje zahtev za bin 319 na osnovu pridružene mere za estimaciju verovatnoće za jednu od dve moguće vrednosti bina za trenutni zahtevani bin. U jednom poželjnom izvođenju pronalaska, skup mogućih vrednosti za meru za estimaciju verovatnoće za jednu od dve moguće vrednosti bina je konačan i selektor 318 bafera binova sadrži tabelu koja pridružuje tačno jedan bafer 320 binova sa svakom mogućom vrednošću za estimaciju verovatnoće za jednu od dve moguće vrednosti bina, gde različite vrednosti za meru za estimaciju verovatnoće za jednu od dve moguće vrednosti bina mogu da budu pridružene sa istim baferom binova 320. U jednom daljem poželjnom izvođenju pronalaska, opseg mogućih vrednosti za meru za estimaciju verovatnoće za jednu od dve moguće vrednosti bina particionisan je na neki broj intervala, gde selektor 318 bafera binova određuje indeks intervala za trenutnu meru za estimaciju verovatnoće za jednu od dve moguće vrednosti bina, a selektor 318 bafera binova sadrži tabelu koja pridružuje tačno jedan bafer 320 binova sa svakom mogućom vrednošću za indeks intervala, gde različite vrednosti za indeks intervala mogu da budu pridružene sa istim baferom 320 binova. U jednom poželjnom izvođenju pronalaska, zahtevi za binove 317 sa suprotnim merama za estimaciju verovatnoće za jednu od dve moguće vrednosti bina (suprotne mere su one koje predstavljaju estimacije verovatnoće P i 1 - P) prosleđuju se u isti bafer 320 binova. U jednom daljem poželjnom izvođenju pronalaska, pridruživanje mere za estimaciju verovatnoće jedne od dve moguće vrednosti bina za trenutni zahtevani bin sa određenim baferom binova vremenom se prilagođava.
[0062] U jednom daljem poželjnom izvođenju pronalaska, selektor 318 bafera binova određuje bafer 320 binova kojem se šalje zahtev za bin 319 na osnovu pridružene mere za estimaciju verovatnoće za manje verovatnu ili više verovatnu vrednost bina za trenutni zahtevani bin. U jednom poželjnom izvođenju pronalaska, skup mogućih vrednosti za meru za estimaciju verovatnoće za manje verovatnu ili više verovatnu vrednost bina je konačan i selektor 318 bafera binova sadrži tabelu koja pridružuje tačno jedan bafer 320 binova sa svakom mogućom vrednošću estimacije verovatnoće za manje verovatnu ili više verovatnu vrednost bina, gde različite vrednosti za meru za estimaciju verovatnoće za manje verovatnu ili više verovatnu vrednost bina mogu budu pridružene sa istim baferom 320 binova. U jednom daljem poželjnom izvođenju pronalaska, opseg mogućih vrednosti za meru za estimaciju verovatnoće manje verovatne ili više verovatne vrednosti bina particionisan je na neki broj intervala, gde selektor 318 bafera binova određuje indeks intervala za trenutnu meru za estimaciju verovatnoće za manje verovatnu ili više verovatnu vrednost bina, a selektor 318 bafera binova sadrži tabelu koja pridružuje tačno jedan bafer 320 binova sa svakom mogućom vrednošću za indeks intervala, gde različite vrednosti za indeks intervala mogu da budu pridružene sa istim baferom 320 binova. U jednom daljem poželjnom izvođenju pronalaska, pridruživanje mere za estimaciju verovatnoće za manje verovatnu ili više verovatnu vrednost bina za trenutni zahtevani bin sa određenim baferom binova vremenom se prilagođava.
[0063] Nakon prijema dekodiranog bina 325 iz izabranog bafera 320 binova, selektor 318 bafera binova potencijalno modifikuje ulazni bin 325 i šalje izlazni bin 326 - sa potencijalno modifikovanom vrednošću - u binarizator 314. Ulazno/izlazno preslikavanje binova selektora 318 bafera binova je inverzno od ulazno/izlaznog preslikavanja binova selektora bafera binova na strani enkodera.
[0064] U jednom poželjnom izvođenju pronalaska, selektora 318 bafera binova ne modifikuje vrednost bina, tj. izlazni bin 326 uvek ima istu vrednost kao i ulazni bin 325. U jednom daljem poželjnom izvođenju pronalaska, selektor 318 bafera binova određuje vrednost izlaznog bina 326 na osnovu vrednosti ulaznog bina 325 i mere za estimaciju verovatnoće za jednu od dve moguće vrednosti bina za trenutni zahtevani bin koja je povezana sa zahtevom za bin 317. U jednom poželjnom izvođenju pronalaska, vrednost izlaznog bina 326 postavljena je jednaka sa vrednošću ulaznog bina 325 ako je mera verovatnoće za jednu od dve moguće vrednosti bina za trenutni zahtevani bin manja (ili manja ili jednaka) od određenog praga; ako je mera verovatnoće za jednu od dve moguće vrednosti bina za trenutni zahtevani bin veća ili jednaka (ili veća) od određenog praga, vrednost izlaznog bina 326 se modifikuje (tj. postavlja se na suprotnu od vrednosti ulaznog bina). U jednom daljem poželjnom izvođenju pronalaska, vrednost izlaznog bina 326 postavljena je jednaka vrednosti ulaznog bina 325 ako je mera verovatnoće za jednu od dve moguće vrednosti bina za trenutni zahtevani bin veća od (ili veća ili jednaka) od određenog praga; ako je mera verovatnoće za jednu od dve moguće vrednosti bina za trenutni zahtevani bina manja ili jednaka (ili manja) od određenog praga, vrednost izlaznog bina 326 se modifikuje (tj. postavlja se na suprotnu od vrednosti ulaznog bina). U jednom poželjnom izvođenju pronalaska, vrednost praga odgovara vrednosti 0,5 za estimiranu verovatnoću za obe moguće vrednosti bina.
[0065] U jednom daljem poželjnom izvođenju pronalaska, selektor 318 bafera binova određuje vrednost izlaznog bina 326 na osnovu vrednosti ulaznog bina 325 i identifikatora, koji specificira estimaciju za koju od dve moguće vrednosti bina predstavlja manje verovatnu ili više verovatnu vrednost bina za trenutni zahtevani bin, koja je pridružena sa zahtevom za bin 317. U poželjnom izvođenju pronalaska, vrednost izlaznog bina 326 postavljena je jednaka sa vrednošću ulaznog bina 325 ako identifikator specificira da prva od dve moguće vrednosti bina predstavlja manje verovatnu (ili više verovatnu) vrednost bina za trenutni zahtevani bin, i vrednost izlaznog bina 326 se modifikuje (tj. postavlja se na suprotnu od vrednosti ulaznog bina) ako identifikator specificira da druga od dve moguće vrednosti bina predstavlja manje verovatnu (ili više verovatnu) vrednost bina za trenutni zahtevani bin.
[0066] Kao što je opisano gore, selektor bafera binova šalje zahtev za bin 319 u jedan od dva ili više bafera 320 binova. Baferi 320 binova predstavljaju FIFO bafere, kojima se dovode sekvence dekodiranih binova 321 iz spojenih dekodera 322 binova. Kao odgovor na zahtev za bin 319 koji se šalje u bafer 320 binova iz selektora 318 bafera binova, bafer 320 binova iz svog sadržaja uklanja taj bin, koji je prvi doveden u bafer 320 binova i šalje ga u selektor 318 bafera binova. Binovi koji su ranije poslati u bafer 320 binova ranije se i uklanjaju i šalju u selektor 318 bafera binova.
[0067] Svaki od dva ili više bafera 320 binova povezan je sa tačno jednim dekoderom 322 binova, a svaki dekoder binova je povezan samo sa jednim baferom 320 binova. Svaki dekoder 322 binova čita kodne reči 323, koje predstavljaju sekvence bitova, iz zasebnog parcijalnog niza 324 bitova. Dekoder binova pretvara kodnu reč 323 u sekvencu binova 321 koja se šalje u povezani bafer 320 binova. Celokupni algoritam dekodiranja pretvara dva ili više parcijalnih nizova 324 bitova u neki broj dekodiranih elemenata sintakse, gde je broj parcijalnih nizova bitova jednak broju bafera binova i dekodera binova, a dekodiranje elemenata sintakse se okida putem zahteva za nove elemente sintakse. U jednom poželjnom izvođenju pronalaska, dekoder 322 binova pretvara kodne reči 323 promenljivog broja bitova u sekvencu 321 promenljivog broja binova. Jedna prednost ovih izvođenja pronalaska je ta što dekodiranje binova iz dva ili više parcijalnih nizova bitova može da se izvodi paralelno (npr. za različite grupe mera verovatnoće), što smanjuje vreme obrade za nekoliko implementacija.
[0068] Još jedna prednost ovih izvođenja pronalaska je to što dekodiranje binova, koje se vrši pomoću dekodera 322 binova, može da bude posebno dizajnirano za različite skupove 317 parametara. Konkretno, kodiranje i dekodiranje binova može da bude optimizovano (u smislu efikasnosti kodiranja i/ili kompleksnosti) za različite grupe estimiranih verovatnoća. S jedne strane, ovo omogućava smanjenje kompleksnosti kodiranja/dekodiranja u odnosu na algoritme entropijskog kodiranja iz stanja tehnike sa sličnom efikasnošću kodiranja. S druge strane, omogućava poboljšanje efikasnosti kodiranja u odnosu na algoritme entropijskog kodiranja iz stanja tehnike sa sličnom kompleksnošću kodiranja/dekodiranja. U poželjnom izvođenju pronalaska, dekoderi 322 binova implementiraju različite algoritme dekodiranja (tj. preslikavanja sekvenci binova na kodne reči) za različite grupe mera za estimaciju verovatnoće za jednu od dve moguće vrednosti bina 317 za trenutni zahtevani bin. U jednom daljem poželjnom izvođenju pronalaska, dekoderi 322 binova implementiraju različite algoritme dekodiranja za različite grupe mera za estimaciju verovatnoće manje verovatne ili više verovatne vrednosti bina za trenutni zahtevani bin.
[0069] Dekoderi 322 binova rade inverzno preslikavanje odgovarajućih binova kodiranih na strani enkodera.
[0070] U poželjnom izvođenju pronalaska, dekoderi 322 binova - ili jedan ili više dekodera binova - predstavljaju entropijske dekodere koji direktno preslikaju kodne reči 323 na sekvence binova 321. Takva preslikavanja mogu efikasno da se implementiraju i ne zahtevaju kompleksan mehanizam za aritmetičko kodiranje. Preslikavanje kodnih reči na sekvence binova mora da bude jedinstveno. U jednom poželjnom izvođenju pronalaska, preslikavanje kodnih reči 323 na sekvence 321 binova je bijektivno. U jednom daljem poželjnom izvođenju pronalaska, dekoderi 310 binova - ili jedan ili više dekodera binova - predstavljaju entropijske dekodere koji direktno preslikavaju kodne reči 323 promenljive dužine u sekvence 321 binova promenljive dužine. U jednom poželjnom izvođenju pronalaska, ulazne kodne reči predstavljaju kodove bez redundantnosti, kao što su opšti Hafmanovi kodovi ili kanonski Hafmanovi kodovi. Dva primera za bijektivno preslikavanje kodova bez redundantnosti u bin sekvence ilustrovana su u Tabeli 3.
[0071] U jednom daljem poželjnom izvođenju pronalaska, dekoderi 322 binova - ili jedan ili više dekodera binova - predstavljaju entropijske dekodere koji direktno preslikavaju kodne reči 323 fiksne dužine na sekvence 321 binova promenljive dužine. U jednom daljem poželjnom izvođenju pronalaska, dekoderi 322 binova - ili jedan ili više dekodera binova - predstavljaju entropijske dekodere koji direktno preslikavaju kodne reči 323 promenljive dužine na sekvence 321 binova fiksne dužine.
[0072] Tako, na Sl. 7 i 8 je prikazano izvođenje za enkoder za kodiranje sekvence simbola 3 i dekodera za rekonstrukciju istog. Enkoder sadrži dodeljivač 304 konfigurisan za dodeljivanje nekog broja parametara 305 svakom simbolu iz sekvence simbola. Zadatak je zasnovan na informacijama sadržanim u prethodnim simbolima iz sekvence simbola, kao što je kategorija elementa 1 sintakse, za reprezentaciju - kao što je binarizacija - kojoj pripada trenutni simbol i koja, prema strukturi sintakse elemenata 1 sintakse, koja se trenutno očekuje, čije očekivanje zauzvrat može da se zaključi iz istorije prethodnih elemenata 1 sintakse i simbola 3. Dalje, enkoder sadrži mnoštvo entropijskih enkodera 10 od kojih je svaki konfigurisan da pretvori simbole 3 prosleđene respektivnom entropijskom enkoderu u respektivni niz 312 bitova, i selektor 306 konfigurisan da prosledi svaki simbol 3 jednom izabranom od mnoštva entropijskih enkodera 10, gde izbor zavisi od broja parametara 305 dodeljenih respektivnom simbolu 3. Dodeljivač 304 može da se smatra integrisanim u selektor 206 kako bi se dobio respektivni selektor 502.
[0073] Dekoder za rekonstrukciju sekvence simbola sadrži mnoštvo entropijskih dekodera 322, od kojih je svaki konfigurisan da pretvori respektivni niz 323 bitova u simbole 321; dodeljivač 316 konfigurisan da dodeli neki broj parametara 317 svakom simbolu 315 iz sekvence simbola za koje je potrebno da se rekonstruišu na osnovu informacija sadržanih u prethodno rekonstruisanim simbolima iz sekvence simbola (videti 326 i 327 na Sl. 8); i selektor 318 konfigurisan za povrati svaki simbol iz sekvence simbola za koje je potrebno da se rekonstruišu iz jednog izabranog od mnoštva entropijskih dekodera 322, gde izbor zavisi od broja parametara definisanih za respektivni simbol. Dodeljivač 316 može da bude konfigurisan tako da broj parametara dodeljenih svakom simbolu sadrži, ili jeste, mera za estimaciju verovatnoće raspodele među mogućim vrednostima simbola koje respektivni simbol može da zauzme. Ponovo, dodeljivač 316 i selektor 318 mogu da se smatraju integrisanim u jedan blok, selektor 402. Sekvenca simbola koja je potrebno da se rekonstruiše može da bude binarni alfabet, a dodeljivač 316 može da bude konfigurisan tako da se estimacija raspodele verovatnoće sastoji od mere za estimaciju verovatnoće manje verovatne ili više verovatne vrednosti bina od dve moguće vrednosti bina binarnog alfabeta i identifikatora koji specificira estimaciju za koju od dve moguće vrednosti bina predstavlja manje verovatnu ili više verovatnu vrednost bina. Dodeljivač 316 može dalje da bude konfigurisan da interno dodeli kontekst svakom simbolu iz sekvence simbola 315 za koje je potrebno da se rekonstruišu na osnovu informacija sadržanih u prethodno rekonstruisanim simbolima iz sekvence simbola za koje je potrebno da se rekonstruišu, gde svaki kontekst sa sobom ima pridruženu respektivnu estimaciju raspodele verovatnoće, i da prilagodi estimaciju raspodele verovatnoće za svaki kontekst stvarnoj statistici simbola na osnovu vrednosti simbola prethodno rekonstruisanih simbola kojima je respektivni kontekst dodeljen. Kontekst može da uzme u obzir prostorni odnos ili susedstvo pozicija kojima pripadaju elementi sintakse, kao što je u kodiranju videa ili slike, ili čak u tabelama u slučaju finansijskih primena. Zatim, mera za estimaciju raspodele verovatnoće za svaki simbol može da se odredi na osnovu estimacije raspodele verovatnoće pridružene sa kontekstom dodeljenim respektivnom simbolu, na primer kvantizacijom, ili korišćenjem kao indeksa u respektivnoj tabeli, gde je estimacija raspodele verovatnoće pridružena sa kontekstom dodeljenim sa respektivnim simbolom (indeksiranim pipe indeksom zajedno sa indeksom prečišćavanja u izvođenjima u nastavku) jednom od mnoštva predstavnika estimacije raspodele verovatnoće (odsecanjem indeksa prečišćavanja) kako bi se dobila mera za estimaciju raspodele verovatnoće (gde pipe indeks indeksira parcijalni niz 312 bitova). Selektor može da bude konfigurisan tako da je definisana bijektivna asocijacija između mnoštva entropijskih enkodera i mnoštva predstavnika estimacije raspodele verovatnoće. Selektor 18 može da bude konfigurisan da vremenom menja kvantizaciono preslikavanje iz opsega estimacija raspodele verovatnoće u mnoštvo predstavnika estimacije raspodele verovatnoće na unapred određen deterministički način, u zavisnosti od prethodno rekonstruisanih simbola iz sekvence simbola. To jest, selektor 318 može da promeni veličine koraka kvantizacije, tj. intervale raspodele verovatnoće preslikane na pojedinačne indekse verovatnoće koji su bijektivno pridruženi sa pojedinačnim entropijskim dekoderima. Mnoštvo entropijskih dekodera 322 zauzvrat može da bude konfigurisano da prilagodi svoj način pretvaranja simbola u nizove bitova tako što bi bili osetljivi na promenu preslikavanja kvantizacije. Na primer, svaki entropijski dekoder 322 može da bude optimizovan za, tj. može da ima optimalnu stopu kompresije za, određenu estimaciju raspodele verovatnoće unutar respektivnog intervala kvantizacije estimacije raspodele verovatnoće, i može da promeni svoje preslikavanje kodne reči/sekvence simbola tako da prilagodi položaj ove određene estimacije raspodele verovatnoće unutar respektivnog intervala kvantizacije estimacije raspodele verovatnoće nakon promene potonjeg tako da bi se optimizovao. Selektor može da bude konfigurisan da promeni preslikavanje kvantizacije tako da se stope, pomoću kojih se simboli preuzimaju iz mnoštva entropijskih dekodera, učine manje raspršenima. Što se tiče binarizatora 314, napominje se da isti može da se izostavi ako su elementi sintakse već binarni. Dalje, u zavisnosti od tipa dekodera 322, postojanje bafera 320 nije neophodno. Dalje, baferi mogu da budu integrisani unutar dekodera.
Prekidanje konačnih sekvenci elemenata sintakse
[0074] U jednom poželjnom izvođenju pronalaska, kodiranje i dekodiranje se vrši za konačan skup elemenata sintakse. Često je kodirana određena količina podataka, poput fotografije, kadra ili polja video sekvence, isečak slike, isečak kadra ili polja video sekvence ili skup sukcesivnih audio uzoraka itd. Za konačne skupove elemenata sintakse, generalno, parcijalni nizovi bitova koji se prave na strani enkodera moraju da budu prekinuti, odnosno, mora da se osigura da svi elementi sintakse mogu da se dekodiraju iz prenesenih ili uskladištenih parcijalnih nizova bitova. Nakon što je poslednji bin umetnut u odgovarajući bafer 308 binova, enkoder 310 binova mora da osigura da se potpuna kodna reč upisuje u parcijalni niz 312 bitova. Ako enkoder 310 binova predstavlja entropijski enkoder koji implementira direktno preslikavanje sekvenci binova na kodne reči, sekvenca binova koja je uskladištena u baferu binova nakon upisivanja poslednjeg bina u bafer binova možda neće predstavljati sekvencu binova koja je pridružena sa kodnom rečju (tj. može da predstavlja prefiks dve ili više sekvenci binova koje su pridružene sa kodnim rečima). U takvom slučaju, bilo koja od kodnih reči pridruženih sa sekvencom binova koja sadrži sekvencu binova u baferu binova kao prefiks, mora da bude zapisana u parcijalni niz bitova (bafer binova mora da se isprazni). To može da se učini umetanjem binova sa naročitom ili proizvoljnom vrednošću u bafer binova sve dok se ne napiše kodna reč. U jednom poželjnom izvođenju pronalaska, enkoder binova bira jednu od kodnih reči sa minimalnom dužinom (pored svojstva da pridružena sekvenca binova mora da sadrži sekvencu binova u baferu binova kao prefiks). Na strani dekodera, dekoder 322 binova može da dekodira više binova nego što je potrebno za poslednju kodnu reč u parcijalnom nizu bitova; ovi binovi se ne zahtevaju od strane selektora 318 bafera binova i odbacuju se i ignorišu. Dekodiranje konačnog skupa simbola kontroliše se zahtevima za dekodirane elemente sintakse; ako se ne zahteva dalji element sintakse zbog količine podataka, dekodiranje se prekida.
Prenos i multipleksiranje parcijalnih nizova bitova
[0075] Parcijalni nizovi 312 bitova koje pravi enkoder mogu da se prenose odvojeno ili mogu da se multipleksiraju u jedan niz bitova ili kodne reči parcijalnih nizova bitova mogu da se isprepletu (eng. interleaving) u jedan niz bitova.
[0076] U jednom izvođenju pronalaska, svaki parcijalni tok bitova za neku količinu podataka upisuje se u jedan paket podataka. Količina podataka može da bude proizvoljan skup elemenata sintakse, kao što su fotografija, polje ili kadar video sekvence, isečak fotografije, isečak polja ili kadra video sekvence ili frejm audio uzoraka, itd.
[0077] U drugom poželjnom izvođenju pronalaska, dva ili više parcijalnih nizova bitova za količinu podataka ili svi parcijalni nizovi bitova za količinu podataka multipleksiraju se u jedan paket podataka. Struktura paketa podataka koji sadrži multipleksirane parcijalne nizove bitova ilustrovana je na Sl. 9.
[0078] Paket 400 podataka sastoji se od zaglavlja (eng. header) i jedne particije za podatke svakog parcijalnog niza bitova (za razmatranu količinu podataka). Zaglavlje 400 paketa podataka sadrži naznake za particionisanje (ostatka) paketa podataka na segmente podataka 402 niza bitova. Pored naznaka za particionisanje, zaglavlje može da sadrži dodatne informacije. U jednom poželjnom izvođenju pronalaska, naznake za particionisanje paketa podataka su lokacije početaka segmenata podataka u jedinicama bitova ili bajtova ili umnošcima bitova ili umnošcima bajtova. U jednom poželjnom izvođenju pronalaska, lokacije početaka segmenata podataka kodirane su kao apsolutne vrednosti u zaglavlju paketa podataka, bilo u odnosu na početak paketa podataka ili u odnosu na kraj zaglavlja ili u odnosu na početak prethodnog paketa podataka. U jednom daljem poželjnom izvođenju pronalaska, lokacije početaka segmenata podataka kodiraju se diferencijalno, tj. kodira se samo razlika između stvarnog početka segmenta podataka i predviđanja za početak segmenta podataka. Predviđanje može da se izvede na osnovu već poznatih ili prenetih informacija, kao što su ukupna veličina paketa podataka, veličina zaglavlja, broj segmenata podataka u paketu podataka, lokacija početka prethodnih segmenata podataka. U jednom poželjnom izvođenju pronalaska, lokacija početka prvog paketa podataka nije kodirana, već se zaključuje na osnovu veličine zaglavlja paketa podataka. Na strani dekodera, prenete naznake particija se koriste za izvođenje početka segmenata podataka. Segmenti podataka se zatim koriste kao parcijalni nizovi bitova i podaci sadržani u segmentima podataka unose se u odgovarajuće dekodere binova u sekvencijalnom redosledu.
[0079] Postoji nekoliko alternativa za multipleksiranje parcijalnih nizova bitova u paket podataka. Jedna alternativa, koja može da redukuje zahtevane sporedne informacije, naročito za slučajeve u kojima su veličine parcijalnih nizova bitova veoma slične, ilustrovana je na Sl. 10. Koristan teret paketa podataka, tj. paket podataka 410 bez svog zaglavlja 411, particionisan je na segmente 412 na unapred definisan način. Na primer, korisni teret paketa podataka može da se particioniše na segmente iste veličine. Zatim je svaki segment pridružen sa parcijalnim nizom bitova ili sa prvim delom parcijalnog niza 413 bitova. Ako je parcijalni niz bitova veći od pridruženog segmenta podataka, njegov ostatak 414 se stavlja u neiskorišćeni prostor na kraju drugih segmenata podataka. To može da se izvrši na način tako da se preostali deo niza bitova ubaci u obrnutom redosledu (počevši od kraja segmenta podataka), što redukuje sporedne informacije. Pridruživanje ostataka parcijalnih nizova bitova sa segmentima podataka i, kada je više od jednog ostatka dodato segmentu podataka, početna tačka za jedan ili više ostataka mora da bude signalizirana unutar niza bitova, npr. u zaglavlju paketa podataka.
Preplitanje kodnih reči promenljive dužine
[0080] Za neke primene, gore opisano multipleksiranje parcijalnih nizova bitova (za neku količinu elemenata sintakse) u jednom paketu podataka može da ima sledeće nedostatke: Sa jedne strane, za male pakete podataka, broj bitova za sporedne informacije koje su potrebne za signalizaciju particionisanja može da postane značajan u odnosu na stvarne podatke u parcijalnim nizovima bitova, što konačno redukuje efikasnost kodiranja. Sa druge strane, multipleksiranje možda nije prikladno za primene koje zahtevaju malo kašnjenje (npr. za primene kod video konferencija). Sa opisanim multipleksiranjem, enkoder ne može da započne prenos paketa podataka pre nego što su parcijalni nizovi bitova u potpunosti napravljeni, budući da lokacije početaka particija prethodno nisu poznate. Štaviše, generalno, dekoder mora da sačeka dok ne primi početak poslednjeg segmenta podataka pre nego što može da započne dekodiranje paketa podataka. Za primene poput sistema za video konferencije, ova kašnjenja mogu da se pridodaju na dodatno ukupno kašnjenje sistema nekoliko video slika (naročito za brzine protoka bitova koje su bliske brzini prenosa bitova i za enkodere/dekodere koji zahtevaju gotovo vremenski interval između dve slike za kodiranje/dekodiranje slike), što je kritično za takve primene. Kako bi se prevazišli nedostaci za određene primene, enkoder iz poželjnog izvođenja pronalaska može da bude konfigurisan na način tako da se kodne reči, koje su generisane od strane dva ili više enkodera binova, prepliću u jedan niz bitova. Niz bitova sa isprepletenim kodnim rečima može direktno da se pošalje dekoderu (kada se zanemari malo kašnjenje bafera, pogledati dole). Na strani dekodera, dva ili više dekodera binova čitaju kodne reči direktno iz niza bitova u redosledu dekodiranja; dekodiranje može da se započne sa prvim primljenim bitom. Osim toga, nisu potrebne nikakve sporedne informacije za signalizaciju multipleksiranja (ili preplitanja) parcijalnih nizova bitova. Dalji način za smanjenje kompleksnosti dekodera može da se postigne kada dekoderi 322 binova ne čitaju kodne reči promenljive dužine iz globalnog bafera bitova, već umesto toga uvek čitaju sekvence bitova fiksne dužine iz globalnog bafera bitova i dodaju ove sekvence bitova fiksne dužine u lokalni bafer bitova, gde je svaki dekoder 322 binova povezan sa zasebnim lokalnim baferom bitova. Kodne reči promenljive dužine se zatim čitaju iz lokalnog bafera bitova. Otud, raščlanjivanje kodnih reči promenljive dužine može da se obavi paralelno, samo što pristup sekvenci bitova fiksne dužine mora da se vrši na sinhronizovan način, ali je takav pristup sekvencama bitova fiksne dužine obično veoma brz, tako da celokupna kompleksnost dekodiranja može da se smanji za neke arhitekture. Fiksni broj binova koji se šalju u određeni lokalni bafer bitova može da bude različit za različite lokalne bafere bitova, a takođe može da varira tokom vremena, u zavisnosti od određenih parametara kao što su događaji u dekoderu binova, baferu binova ili baferu bitova. Međutim, broj bitova koji se čitaju od strane određenog pristupa ne zavisi od stvarnih bitova koji se čitaju tokom određenog pristupa, što je važna razlika u odnosu na čitanje kodnih reči promenljive dužine. Čitanje sekvenca bitova fiksne dužine okida se određenim događajima u baferima binova, dekoderima binova ili lokalnim baferima bitova. Na primer, moguće je da se zahteva očitavanje nove sekvence bitova fiksne dužine kada broj bitova koji su prisutni u povezanom baferu bitova padne ispod unapred definisanog praga, gde različite vrednosti praga mogu da se koriste za različite bafere bitova. Kod enkodera mora da se osigura da se sekvence binova fiksnih dužina ubacuju u niz bitova u istom redosledu u kojem se posle čitaju iz niza bitova na strani dekodera. Takođe je moguće da se kombinuje ovo preplitanje sekvenci fiksne dužine sa kontrolom sa malim kašnjenjem, sličnoj onima opisanim gore. U nastavku je opisano poželjno izvođenje za preplitanje sekvenci bitova fiksne dužine. Za dalje detalje u vezi sa potonjim šemama preplitanja, upućuje se na WO2011/128268A1.
[0081] Nakon što su opisana izvođenja prema kojima se čak i prethodno kodiranje koristi za komprimovanje video podataka, opisano je kao još jedno dalje rešenje za izvođenje rešenja iz predmetnog pronalaska koje to izvođenje čini posebno efikasnim u smislu dobrog kompromisa između stope kompresije s jedne strane i look-up tabele i računskog overhead-a s druge strane. Konkretno, izvođenja prikazana u nastavku omogućavaju upotrebu računarski manje kompleksnih kodova promenljive dužine kako bi se entropijski kodirali pojedinačni nizovi bitova i efikasno pokrili delovi estimacije verovatnoće. U izvođenjima opisanim u nastavku, simboli su binarne prirode i VLC kodovi prikazani dole efikasno pokrivaju estimaciju verovatnoće koju predstavlja, na primer, RLPS, koji se proteže unutar [0; 0,5].
[0082] Konkretno, izvođenja navedena dole opisuju moguće implementacije za pojedinačne entropijske kodere 310 i dekodere 322 na Sl. 7 do 17, respektivno. Pogodni su za kodiranje binova, tj. binarnih simbola, pošto se pojavljuju u primenama za kompresiju slika ili video snimaka. Shodno tome, ova izvođenja su takođe primenljiva na kodiranje slike ili video snimaka gde se takvi binarni simboli dele na jedan ili više tokova binova 307 za koje je potrebno da se kodiraju i nizove 324 bitova za koje je potrebno da se dekodiraju, respektivno, gde svaki takav tok binova može da se smatra kao ostvarenje Bernulijevog procesa. Izvođenja opisana u nastavku koriste jedan ili više dole objašnjenih različitih takozvanih kodova promeljiva u promeljivu (eng. v2v - variable-to-variable) za kodiranje tokova binova. Kod v2v može da se posmatra kao dva koda bez prefiksa sa istim brojem kodnih reči. Primarni i sekundarni kod bez prefiksa. Svaka kodna reč primarnog koda bez prefiksa pridružena je sa jednom kodnom rečju sekundarnog koda bez prefiksa. U skladu sa izvođenjima navedenim u nastavku, bar neki od enkodera 310 i dekodera 322 rade na sledeći način: da bi se kodirala određena sekvenca binova 307, kad god se kodna reč primarnog koda bez prefiksa pročita iz bafera 308, odgovarajuća kodna reč sekundarnog koda bez prefiksa upisuje se u niz 312 bitova. Isti postupak se koristi za dekodiranje takvog niza 324 bitova, ali sa zamenjenim primarnim i sekundarnim kodom bez prefiksa. To jest, da bi se dekodirao niz 324 bitova, kad god se kodna reč sekundarnog koda bez prefiksa pročita iz respektivnog niza 324 bitova, odgovarajuća kodna reč primarnog koda bez prefiksa se upisuje u bafer 320.
[0083] Povoljno je da dole opisani kodovi ne zahtevaju look-up tabele. Kodovi su primenljivi u obliku mašina sa konačnim stanjem. Ovde predstavljeni kodovi v2v mogu da se generišu jednostavnim pravilima konstrukcije tako da nema potrebe za skladištenjem velikih tabela za kodne reči. Umesto toga, može da se koristi jednostavan algoritam za izvođenje kodiranja ili dekodiranja. U nastavku su opisana tri pravila konstrukcije, pri čemu dva mogu da se parametrizuju. Ona pokrivaju različite ili čak disjunktne delove prethodno pomenutog intervala verovatnoće i, prema tome, posebno su korisna ako se koriste zajedno, kao što su sva tri koda u paraleli (svaki za različite enkodere/dekodere 11 i 22), ili dva od njih. Sa pravilima konstrukcije opisanim u nastavku, moguće je da se dizajnira skup kodova v2v, takav da za Bernulijeve procese sa proizvoljnom verovatnoćom p, jedan od kodova dobro funkcioniše u smislu prekomerne dužine koda.
[0084] Kao što je navedeno gore, kodiranje i dekodiranje nizova 312 i 324, respektivno, može se da se obavi ili nezavisno za svaki niz ili na isprepleteni način. Ovo, međutim, nije specifično za predstavljene klase v2v kodova i stoga je u nastavku opisano samo kodiranje i dekodiranje određene kodne reči za svako od tri pravila konstrukcije. Međutim, naglašeno je da sva gornja izvođenja koja se tiču isprepletenih rešenja takođe mogu da se kombinuju sa ovde opisanim kodovima ili enkoderima 310 i dekoderima 322, respektivno.
Pravilo konstrukcije 1: kodovi „unarni bin pipe“ ili enkoderi/dekoderi 310 i 322
[0085] Unarni bin pipe kodovi (eng. PIPE - probability interval partitioning entropy -entropija particionisanja intervala verovatnoće) su posebna verzija takozvanih „bin pipe“ kodova, tj. kodova pogodnih za kodiranje bilo kog od pojedinačnih nizova bitova 12 i 24, od kojih svaki prenosi podatke statistike binarnih simbola koji pripadaju određenom podintervalu verovatnoće gore pomenutog opsega verovatnoće [0;0,5]. Prvo je opisana konstrukcija bin pipe kodova. Bin pipe kod može da bude konstruisan od bilo kog koda bez prefiksa sa najmanje tri kodne reči. Da bi formirao v2v kod, on koristi kod bez prefiksa kao primarni i sekundarni kod, ali sa zamenjenim mestima dve kodne reči sekundarnog koda bez prefiksa. To znači da se, osim dve kodne reči, binovi zapisuju nepromenjeni u niz bitova. Sa ovom tehnikom, potrebno je da samo jedan kod bez prefiksa bude uskladišten zajedno sa informacijom koje dve kodne reči su zamenile mesta i na taj način se smanjuje potrošnja memorije. Treba napomenuti da jedino ima smisla razmeniti kodne reči različite dužine jer bi u suprotnom niz bitova imao istu dužinu kao tok binova (zanemarujući efekte koji mogu da se pojave na kraju toka binova).
[0086] Usled ovog pravila konstrukcije, zaostalo svojstvo bin pipe kodova je, da ako primarni i sekundarni kod bez prefiksa zamene mesta (dok se preslikavanje kodnih reči zadržava), rezultujući v2v kod je identičan sa originalnim v2v kodom. Zbog toga su algoritam kodiranja i algoritam dekodiranja identični za bin pipe kodove.
[0087] Unarni bin pipe kod konstruisan je od posebnog koda bez prefiksa. Ovaj poseban kod bez prefiksa konstruisan je na sledeći način. Prvo, generiše se kod bez prefiksa koji se sastoji od n unarnih kodnih reči koje počinju sa '01', '001', '0001', ... sve dok se ne proizvede n kodnih reči. n je parametar za unarni bin pipe kod. Iz najduže kodne reči se uklanja prateća 1. Ovo odgovara skraćenom unarnom kodu (ali bez kodne reči '0'). Zatim, generiše se n - 1 unarnih kodnih reči koje počinju sa '10', '110', '1110', ... sve dok se ne proizvede n - 1 kodnih reči. Iz najduže od ovih kodnih reči, uklanja se prateća 0. Skup unija ova dva koda bez prefiksa koristi se kao ulaz za generisanje unarnog bin pipe koda. Dve kodne reči koje menjaju mesta su jedna koja se sastoji samo od nula i jedna koja se sastoji samo od jedinica.
Primer za n = 4:
[0088]
Br. Primarni Sekundarni
1 0000 111
2 0001 0001
3 001 001
4 01 01
5 10 10
6 110 110
7 111 0000
Pravilo konstrukcije 2: kodovi „unarni u Rajsove“ i unarni u Rajsove enkoderi /dekoderi 10 i 22:
[0089] Kodovi unarni u Rajsove koriste skraćeni unarni kod kao primarni kod. Tj. generišu se unarne kodne reči koje počinju sa '1', '01', '001', ... sve dok se ne generišu 2<n>+ 1 kodnih reči i iz najduže kodne reči, uklanja se prateća 1. n je parametar koda unarnog u Rajsov. Sekundarni kod bez prefiksa konstruisan je od kodnih reči primarnog koda bez prefiksa na sledeći način. Primarnoj kodnoj reči koja se sastoji samo od 0, dodeljuje se kodna reč '1'. Sve ostale kodne reči sastoje se od spajanja kodne reči '0' sa n-bitnim binarnom predstavom broja 0 odgovarajuće kodne reči primarnog koda bez prefiksa.
Primer za n = 3:
[0090]
Br. Primarni Sekundarni
1 1 0000
2 01 0001
3 001 0010
4 0001 0011
5 00001 0100
6 000001 0101
7 0000001 0110
8 00000001 0111
9 00000000 1
Treba napomenuti da je ovo identično preslikavanju beskonačnog unarnog koda u Rajsov kod sa Rajsovim parametrom 2<n>.
Pravilo konstrukcije 3: Kod „tri bina“
[0091] Kod sa tri bina je dat kao:
Br. Primarni Sekundarni
1 000 0
2 001 100
3 010 101
4 100 110
5 110 11100
7 011 11110
8 111 11111
[0092] Ima svojstvo da je primarni kod (sekvence simbola) fiksne dužine (uvek tri bina) i da su kodne reči sortirane po rastućem broju jedinica.
[0093] U nastavku je opisana efikasna implementacija koda sa tri bina. Enkoder i dekoder za tri bin koda mogu se implementirati bez skladištenja tabela na sledeći način.
[0094] U enkoderu (bilo koji od 10), tri bina se čitaju iz toka binova (tj. 7). Ako ova tri bina sadrže tačno jednu jedinicu (1), kodna reč '1' se upisuje u niz bitova, praćena od strane dva bina koji se sastoje od binarnih predstava položaja za jedinicu (1) (počevši sa desne strane sa 00). Ako tri bina sadrže tačno jednu nulu (0), kodna reč '111' se upisuje u niz bitova, praćena od strane dva bina koji se sastoje od binarnih predstava položaja za nulu (0) (počevši sa desne strane sa 00). Preostale kodne reči '000' i '111' preslikane su u '0' i '11111', respektivno.
[0095] U dekoderu (bilo koji od 22), jedan bin ili bit se čita iz respektivnog niza bitova 24. Ako je jednak '0', kodna reč '000' se dekodira u tok binova 21. Ako je jednak '1', iz niza bitova 24 se očitavaju još dva bina. Ako ova dva bita nisu jednaka '11', oni se interpretiraju kao binarni prikaz broja i dve nule (0) i jedna jedinica (1) se dekodira u niz bitova tako da je položaj jedinice (1) određen brojem. Ako su dva bita jednaka '11', čitaju se još dva bita i interpretiraju se kao binarni prikaz broja. Ako je ovaj broj manji od 3, dve jedinice (1) i jedna nula (0) se dekodiraju i broj određuje položaj nule (0). Ako je jednak 3, '111' se dekodira u tok binova.
[0096] U nastavku je opisana efikasna implementacija unarnih bin pipe kodova. Enkoder i dekoder za unarne bin pipe kodove mogu efikasno da se implementiraju upotrebom brojača. Usled strukture bin pipe kodova, kodiranje i dekodiranje bin pipe kodova je lako da se implementira:
U enkoderu (bilo kojem od 10), ako je prvi bin kodne reči jednak '0', binovi se obrađuju sve dok se ne pojavi '1' ili dok se ne pročita n nula (uključujući i prvu '0' iz kodne reči). Ako se pojavi '1', pročitani binovi se zapisuju u niz bitova nepromenjeni. U suprotnom (tj. pročitano je n nula), n - 1 jedinica se zapisuje u niz bitova. Ako je prvi bin kodne reči jednak '1', binovi se obrađuju sve dok se ne pojavi '0' ili dok se ne pročita n - 1 jedinica (uključujući i prvu '1' iz kodne reči). Ako se pojavi '0', pročitani binovi se zapisuju u niz bitova nepromenjeni. U suprotnom (tj. pročitano je n - 1 jedinica), n nula (0) se upisuje u niz bitova.
[0097] U dekoderu (bilo koji od 322), koristi se isti algoritam kao i za enkoder, budući da je isti kao za bin pipe kodove kao što je opisano gore.
[0098] U nastavku je opisana efikasna implementacija unarnih u Rajsove kodova. Enkoder i dekoder za unarne u Rajsove kodove mogu efikasno da se implementiraju pomoću brojača kako će sada biti opisano.
[0099] U enkoderu (bilo koji od 310), binovi se čitaju iz toka binova (tj. 7) sve dok se ne pojavi jedinica (1) ili dok se ne očitaju 2<n>nula (0). Broje se nule (0). Ako je izbrojani broj jednak 2<n>, kodna reč '1' se upisuje u niz bitova. U suprotnom, upisuje se '0', nakon čega sledi binarna predstava izbrojanog broja, napisana sa n bitova.
[0100] U dekoderu (bilo koji od 322), čita se jedan bit. Ako je jednak '1', 2<n>nula (0) se dekodira u bin string. Ako je jednak '0', čita se još n bitova i interpretiraju se kao binarne predstave broja. Ovaj broj nula (0) se dekodira u tok binova, praćen sa '1'.
[0101] Drugim rečima, ovde opisana izvođenja opisuju enkoder za kodiranje sekvence simbola 303, koji sadrži dodeljivač 316 konfigurisan da dodeli neki broj parametara 305 svakom simbolu iz sekvence simbola na osnovu informacija sadržanih u prethodnim simbolima iz sekvence simbola; mnoštvo entropijskih enkodera 310 od kojih je svaki konfigurisan da pretvori simbole 307 prosleđene respektivnom entropijskom enkoderu 310 u respektivni niz 312 bitova; i selektor 6 konfigurisan da prosledi svaki simbol 303 jednom izabranom od mnoštva entropijskih enkodera 10, gde izbor zavisi od broja parametara 305 dodeljenih respektivnom simbolu 303. Prema ovde navedenim izvođenjima, bar prvi podskup entropijskih enkodera može da bude enkoder promenljive dužine konfigurisan da preslikava sekvence simbola promenljive dužine unutar toka simbola 307 na kodne reči promenljive dužine za koje je potrebno da se umetnu u niz 312 bitova, respektivno, gde svaki od entropijskih enkodera 310 iz prvog podskupa koristi pravilo bijektivnog preslikavanja prema kojem se kodne reči primarnog koda bez prefiksa sa (2n-1) ≥ 3 kodne reči preslikavaju u kodne reči sekundarnog koda bez prefiksa koji je identičan primarnom kodu sa prefiksom, tako da su sve osim dve kodne reči primarnog koda bez prefiksa preslikane u identične kodne reči sekundarnog koda bez prefiksa, dok dve kodne reči primarnog i sekundarnog koda bez prefiksa imaju različite dužine i preslikavaju se jedna na drugu na način sa zamenom mesta, pri čemu entropijski enkoderi mogu da koriste različito n tako da pokrivaju različite delove intervala od intervala verovatnoće navedenog gore. Prvi kod bez prefiksa može da bude konstruisan tako da su kodne reči prvog koda bez prefiksa (a, b)2, (a, a, b)3, ..., (a, ..., a, b)n, (a, ..., a)n, (b, a)2, (b, b, a)3, ..., (b, ..., b, a)n-1, (b, ..., b)n-1, a dve kodne reči preslikane jedna na drugu na način sa zamenom mesta su (a, ..., a)ni (b, ..., b)n-1gde je b ≠ a i a,b ∈ {0,1}. Međutim, alternative su izvodljive.
[0102] Drugim rečima, svaki od prvog podskupa entropijskih enkodera može da bude konfigurisan da, prilikom pretvaranja simbola, prosleđenih respektivnom entropijskom enkoderu, u respektivni niz bitova, ispita prvi simbol prosleđen respektivnom entropijskom enkoderu, kako bi se utvrdilo da li (1) je prvi simbol jednak a ∈ {0,1}, u kom slučaju je respektivni entropijski enkoder konfigurisan da ispita sledeće simbole prosleđene respektivnom entropijskom enkoderu kako bi utvrdio da li: (1.1) se b, gde je b ≠ a i b ∈ {0,1}, javlja unutar sledećih n-1 simbola koji slede iza prvog simbola, u kom slučaju je respektivni entropijski enkoder konfigurisan da upiše kodnu reč u odgovarajući niz bitova, koja je jednaka prvom simbolu iza kojeg slede sledeći simboli prosleđeni respektivnom entropijskom enkoderu, sve do simbola b; (1.2) se ne pojavljuje b unutar sledećih n-1 simbola koji slede iza prvog simbola, u kom slučaju je respektivni entropijski enkoder konfigurisan da upiše kodnu reč u respektivni niz bitova, koja je jednaka (b, ..., b)n-1; ili (2) prvi simbol jednak je b, u kom slučaju je respektivni entropijski enkoder konfigurisan da ispita sledeće simbole prosleđene respektivnom entropijskom enkoderu kako bi utvrdio da li: (2.1) se a javlja unutar sledećih n-2 simbola koji slede iza prvog simbola, u kom slučaju je respektivni entropijski enkoder konfigurisan da upiše kodnu reč u respektivni niz bitova, koja je jednaka prvom simbolu iza kojeg slede sledeći simboli prosleđeni respektivnom entropijskom enkoderu, sve do simbola a; ili (2.2) se ne javlja a unutar sledećih n-2 simbola koji slede iza prvog simbola, u kom slučaju je respektivni entropijski enkoder konfigurisan da upiše kodnu reč u odgovarajući niz bitova, koja je jednaka (a, ..., a)n.
[0103] Dodatno ili alternativno, drugi podskup entropijskih enkodera 10 može da bude enkoder promenljive dužine konfigurisan da preslikava sekvence simbola promenljive dužine u kodne reči fiksne dužine, gde svaki od entropijskih enkodera iz drugog podskupa koriste pravilo bijektivnog preslikavanja prema kojem se kodne reči primarnog skraćenog unarnog koda sa 2<n>+1, kodnih reči tipa {(a), (ba), (bba), …, (b...ba), (bb...b)} gde su b ≠ a i a,b ∈ {0,1}, preslikavaju u kodne reči sekundarnog koda bez prefiksa, tako da se kodna reč (bb...b) primarnog skraćenog unarnog koda preslikava na kodnu reč (c) sekundarnog koda bez prefiksa i sve ostale kodne reči {(a), (ba), (bba), ..., (b...ba)} primarnog skraćenog unarnog koda preslikavaju se na kodne reči koje imaju (d) gde su c ≠ d i c, d ∈ {0,1} kao prefiks i n-bitnu reč kao sufiksom, pri čemu entropijski enkoderi koriste različito n. Svaki iz drugog podskupa entropijskih enkodera može da bude konfigurisan tako da je n-bitna reč predstava n-bitnog prikaza broja b-ova u respektivnoj kodnoj reči primarnog skraćenog unarnog koda. Međutim, alternative su izvodljive.
[0104] Opet, iz perspektive režima rada respektivnog enkodera 10, svaki iz drugog podskupa entropijskih enkodera može da bude konfigurisan tako da, prilikom pretvaranja simbola prosleđenih respektivnom entropijskom enkoderu u respektivni niz bitova, izbroji broj b-ova u sekvenci simbola prosleđenih respektivnom entropijskom enkoderu, sve dok se ne pojavi a, ili dok broj simbola sekvence prosleđenih respektivnom entropijskom enkoderu ne dostigne 2<n>gde su svi 2<n>simboli niza jednaki b, i (1) ako je broj b-ova jednak 2<n>, upiše c, gde je c ∈ {0,1}, kao kodnu reč sekundarnog koda bez prefiksa u respektivni niz bitova, i (2) ako je broj b-ova manji od 2<n>, upiše kodnu reč sekundarnog koda bez prefiksa u respektivni niz bitova, koji ima (d), gde su c ≠ d i d ∈ {0,1}, kao prefiks i n-bitnu reč, koja se određuje u zavisnosti od broja b-ova, kao sufiks.
[0105] Takođe dodatno ili alternativno, unapred određen jedan od entropijskih enkodera 10 može da bude enkoder promenljive dužine konfigurisan da preslikava sekvence simbola fiksnih dužina u kodne reči promenljive dužine, respektivno, gde unapred određeni entropijski enkoder koristi pravilo bijektivnog preslikavanja prema kojem se 2<3>kodnih reči dužine 3 primarnog koda preslikavaju u kodne reči sekundarnog koda bez prefiksa, tako da se kodna reč (aaa)3primarnog koda, gde je a ∈ {0,1}, preslikava na kodnu reč (c), gde je c ∈ {0,1}, gde se sve tri kodne reči primarnog koda koje imaju tačno jedno b, gde su b ≠ a i b ∈ {0,1} preslikavaju na kodne reči koje imaju (d), gde su c ≠ d i d ∈ {0,1}, kao a prefiks i respektivnu prvu 2-bitnu reč iz prvog skupa 2-bitnih reči kao sufiks, gde se sve tri kodne reči primarnog koda koje imaju tačno jedno a preslikavaju na kodne reči koje imaju (d) kao prefiks i konkatenacija prve 2-bitne reči koja nije element prvog skupa i druge 2-bitne reči iz drugog skupa 2-bitnih reči, kao sufiks, i pri čemu je kodna reč (bbb)3preslikana u kodnu reč koja ima (d) kao prefiks i konkatenaciju prve 2-bitne reči koja nije element prvog skupa i druge 2-bitne reči koja nije element drugog skupa, kao sufiks. Prva 2-bitna reč od kodnih reči primarnog koda koja ima tačno jedno b može da bude 2-bitna predstava pozicije od b u respektivnoj kodnoj reči primarnog koda, a druga 2-bitna reč od kodnih reči primarnog koda koja ima tačno jedno a može da bude 2-bitni predstava pozicije od a u respektivnoj kodnoj reči primarnog koda. Međutim, alternative su izvodljive.
[0106] Opet, unapred određen jedan od entropijskih enkodera može da bude konfigurisan tako da, prilikom pretvaranja simbola prosleđenih unapred određenom entropijskom enkoderu u respektivni niz bitova, ispita simbole unapred određenom entropijskom enkoderu u trojkama da li (1) se trojka sastoji od a-ova, u kom slučaju je unapred određeni entropijski enkoder konfigurisan da upiše kodnu reč (c) u respektivni niz bitova, (2) trojka sadrži tačno jedno b, u kom slučaju je unapred definisani entropijski enkoder konfigurisan da upiše kodnu reč, koja ima (d) kao prefiks i 2-bitnu predstavu pozicije za b u trojki kao sufiks, u respektivni niz bitova; (3) trojka sadrži tačno jedno a, u kom slučaju je unapred određeni entropijski enkoder konfigurisan da upiše kodnu reč, koja ima (d) kao prefiks i konkatenaciju prve 2-bitne reči koja nije element prvog skupa i 2-bitne predstave pozicije za a u trojki kao sufiks, u respektivni niz bitova; ili (4) se trojka se sastoji od b-ova, u kom slučaju je unapred određeni entropijski enkoder konfigurisan da upiše kodnu reč, koja ima (d) kao prefiks i konkatenaciju prve 2-bitne reči koja nije element prvog skupa i prve 2-bitne reči koja nije element drugog skupa kao sufiks, za odgovarajući tok bitova, u respektivni niz bitova.
[0107] U vezi sa stranom dekodiranja, ovde opisana izvođenja otkrivaju dekoder za rekonstruisanje sekvence simbola 326, koji sadrži mnoštvo entropijskih dekodera 322, od kojih je svaki konfigurisan da pretvori respektivni niz 324 bitova u simbole 321; dodeljivač 316 konfigurisan da dodeli neki broj parametara svakom simbolu 326 iz sekvence simbola za koje je potrebno da se rekonstruišu na osnovu informacija sadržanih unutar prethodno rekonstruisanih simbola iz sekvence simbola; i selektor 318 konfigurisan da izvuče svaki simbol 325 iz sekvence simbola za koje je potrebno da se rekonstruišu iz izabranog jednog od mnoštva entropijskih dekodera, gde izbor zavisi od broja parametara definisanih za respektivni simbol. Prema ovde opisanim izvođenjima, najmanje prvi podskup entropijskih dekodera 322 su dekoderi promenljive dužine konfigurisani da preslikavaju kodne reči promenljivih dužina u sekvence simbola promenljivih dužina, respektivno, gde svaki od entropijskih dekodera 22 iz prvog podskupa koristi pravilo bijektivnog preslikavanja prema kojem se kodne reči primarnog koda bez prefiksa, sa (2n-1) ≥ 3 kodnih reči, preslikavaju u kodne reči sekundarnog koda bez prefiksa koji je identičan primarnom kodu sa prefiksom tako da su sve osim dve kodne reči primarnog koda bez prefiksa preslikane u identične kodne reči sekundarnog koda bez prefiksa, dok dve kodne reči primarnog i sekundarnog koda bez prefiksa imaju različite dužine i preslikavaju se jedna u drugu na način sa zamenom mesta, pri čemu entropijski enkoderi koriste različito n. Prvi kod bez prefiksa može da bude konstruisan tako da su kodne reči prvog koda bez prefiksa (a, b)2, (a, a, b)3, ..., (a, ..., a, b)n, (a, ..., a)n, (b, a)2, (b, b, a)3, ..., (b, ..., b, a)n-1, (b, ..., b)n-1, a dve kodne reči preslikane jedna na drugu na način sa zamenom mesta mogu da budu (a, ..., a)ni (b, ..., b)n-1, gde je b ≠ a i a,b ∈ {0,1}. Međutim, alternative su izvodljive.
[0108] Svaki iz prvog podskupa entropijskih enkodera može da bude konfigurisan tako da, prilikom pretvaranja respektivnog niza bitova u simbole, ispita prvi bit respektivnog niza bitova, kako bi se utvrdilo da li (1) je prvi bit jednak a 0 {0,1}, u kom slučaju je respektivni entropijski enkoder konfigurisan da ispita sledeće bitove iz respektivnog niza bitova kako bi utvrdio da li: (1.1) se b, gde je b ≠ a i b 0 {0,1}, javlja unutar sledećih n-1 bitova koji slede iza prvog bita, u kom slučaju je respektivni entropijski dekoder konfigurisan da rekonstruiše sekvencu simbola, koji je jednak prvom bitu iza kojeg slede sledeći bitovi respektivnog niza bitova, sve do bita b; ili (1.2) se b ne javlja unutar sledećih n-1 bitova koji slede iza prvog bita, u kom slučaju je respektivni entropijski dekoder konfigurisan da rekonstruiše sekvencu simbola, koji su jednaki (b, ..., b)n-1; ili (2) je prvi bit jednak b, u kom slučaju je respektivni entropijski dekoder konfigurisan da ispita sledeće bitove respektivnog niza bitova da bi utvrdio da li: (2.1) se a javlja u sledećih n-2 bitova koji slede iza prvog bita, u kom slučaju je respektivni entropijski dekoder konfigurisan da rekonstruiše sekvencu simbola, koji je jednak prvom bitu iza kojeg slede sledeći bitovi respektivnog niza bitova, sve do simbola a; ili (2.2) se a ne javlja unutar sledećih n-2 bitova koji slede iza prvog bita, u kom slučaju je respektivni entropijski dekoder konfigurisan da rekonstruiše sekvencu simbola, koja je jednaka (a, ..., a)n.
[0109] Dodatno ili alternativno, najmanje drugi podskup entropijskih dekodera 322 može biti dekoder promenljive dužine konfigurisan da preslikava kodne reči fiksnih dužina u sekvence simbola promenljivih dužina, respektivno, gde svaki od entropijskih dekodera iz drugog podskupa koristi pravilo bijektivnog preslikavanja prema kojem se kodne reči iz sekundarnog koda bez prefiksa preslikavaju u kodne reči primarnog skraćenog unarnog koda sa 2<n>+1 kodnih reči tipa {(a), (ba), (bba), ..., (b...ba), (bb...b)}, gde je b ≠ a i a,b ∈ {0,1}, tako da se kodna reč (c) sekundarnog koda bez prefiksa preslikava na kodnu reč (bb...b) primarnog skraćenog unarnog koda i kodne reči koje imaju (d), gde je c ≠ d i c,d ∈ {0,1} kao prefiks i n-bitnu reč kao sufiks, preslikavaju se u respektivnu od ostalih kodnih reči {(a), (ba), (bba), ..., (b...ba)} primarnog skraćenog unarnog koda, pri čemu entropijski dekoderi koriste različito n. Svaki iz drugog podskupa entropijskih dekodera može da bude konfigurisan tako da je n-bitna reč n-bitna predstava broja b-ova u respektivnoj kodnoj reči primarnog skraćenog unarnog koda. Međutim, alternative su izvodljive.
[0110] Svaki iz drugog podskupa entropijskih dekodera može da bude dekoder promenljive dužine konfigurisan da preslikava kodne reči fiksnih dužina u sekvence simbola promenljivih dužina, respektivno, i konfigurisan da, prilikom pretvaranja niza bitova respektivnog entropijskog dekodera u simbole, ispita prvi bit respektivnog niza bitova da bi utvrdio da li (1) je isti jednak c, gde je c ∈ {0,1}, u kom slučaju je respektivni entropijski dekoder konfigurisan da rekonstruiše sekvencu simbola koja je jednaka (bb...b)2<n>, gde je b ∈ {0,1}; ili (2) je isti jednak d, gde je c ≠ d i c,d ∈ {0,1}, u kom slučaju je respektivni entropijski dekoder konfigurisan da odredi n-bitnu reč iz n daljih bitova respektivnog niza bitova, koji slede iza prvog bita, i iz toga rekonstruiše sekvencu simbola tipa {(a), (ba), (bba), ..., (b...ba), (bb...b)}, gde je b ≠ a i b ∈ {0,1} sa brojem b-ova koje zavisi od n-bitne reči.
[0111] Dodatno ili alternativno, unapred određen jedan od entropijskih dekodera 322 može da bude dekoder promenljive dužine konfigurisan da preslikava kodne reči promenljivih dužina u sekvence simbola fiksnih dužina, respektivno, gde unapred određen entropijski dekoder koristi pravilo bijektivnog preslikavanja prema kome se kodne reči sekundarnog koda bez prefiksa preslikavaju na 2<3>kodnih reči dužine 3 primarnog koda tako da se: kodna reč (c), gde je c ∈ {0,1}, preslikava u kodnu reč (aaa)3primarnog koda, gde je a ∈ {0,1}, kodne reči koje imaju (d), gde je c ≠ d i d ∈ {0,1}, kao prefiks i respektivnu prvu 2-bitnu reč iz prvog skupa od tri 2-bitne reči kao sufiks preslikavaju na sve tri kodne reči primarnog koda koje imaju tačno jedno b, gde je b ≠ a i b ∈ {0,1}, kodne reči koje imaju (d) kao prefiks i konkatenaciju prve 2-bitne reči koja nije element prvog skupa i druge 2-bitne reči iz drugog skupa od tri 2-bitne reči kao sufiks, preslikavaju na sve tri kodne reči primarnog koda koje imaju tačno jedno a, i kodna reč koja ima (d) kao prefiks i konkatenaciju prve 2-bitne reči koja nije element prvog skupa i druge 2-bitne reči koja nije element drugog skupa kao sufiks, preslikava na kodnu reč (bbb)3. Prva 2-bitna reč od kodnih reči primarnog koda, koja ima tačno jedno b, može da bude 2-bitna predstava pozicije od b u respektivnoj kodnoj reči primarnog koda, a druga 2-bitna reč od kodnih reči primarnog koda, koja ima tačno jedno a, može da bude 2-bitna predstava pozicije od a u respektivnoj kodnoj reči primarnog koda. Međutim, alternative su izvodljive.
[0112] Unapred određeni jedan od entropijskih dekodera može da bude dekoder promenljive dužine konfigurisan da preslikava kodne reči promenljive dužine u sekvence simbola od po tri simbola svaka, i konfigurisan da, prilikom pretvaranja niza bitova respektivnog entropijskog dekodera u simbole, ispita prvi bit respektivnog toka bitova da bi utvrdio da li: (1) je prvi bit iz respektivnog toka bitova jednak c, gde je c ∈ {0,1}, u kom slučaju je unapred određeni entropijski dekoder konfigurisan da rekonstruiše sekvencu simbola koja je jednaka (aaa)3sa a 0 {0,1}, ili (2) je prvi bit odgovarajućeg toka bitova jednak d, gde je c ≠ d i d ∈ {0,1}, u kom slučaju je unapred određeni entropijski dekoder konfigurisan da odredi prvu 2-bitnu reč iz 2 dalja bita respektivnog niza bitova, koji slede iza prvog bita, i ispita prvu 2-bitnu reč da bi utvrdio da li (2.1) prva 2-bitna reč nije element prvog skupa od tri 2-bitne reči, u kom slučaju je unapred određeni entropijski dekoder konfigurisan da rekonstruiše sekvencu simbola koja ima tačno jedno b, gde je b ≠ a i b 0 {0,1}, gde pozicija od b u respektivnoj sekvenci simbola zavisi od prve 2-bitne reči, ili (2.2) je prva 2-bitna reč element prvog skupa, u kom slučaju je unapred određeni entropijski dekoder konfigurisan da odredi drugu 2-bitnu reč iz 2 dalja bita respektivnog niza bitova, koji slede iza dva bita iz kojih je određena prva 2-bitna reč, i ispita drugu 2-bitnu reč da bi utvrdio da li (3.1) druga 2-bitna reč nije element drugog skupa od tri 2-bitne reči, u kom slučaju je unapred određeni entropijski dekoder konfigurisan da rekonstruiše sekvencu simbola koja ima tačno jedno a, gde pozicija od a u respektivnoj sekvenci simbola zavisi od druge 2-bitne reči, ili (3.2) je druga 2-bitna reč element drugog skupa od tri 2-bitne reči, u kom slučaju je unapred određeni entropijski dekoder konfigurisan da rekonstruiše sekvencu simbola koja je jednaka (bbb)3.
[0113] Sada, nakon što je opisan opšti koncept šeme video kodiranja, izvođenja predmetnog pronalaska su opisana u odnosu na gornja rešenja. Drugim rečima, dole prikazana izvođenja mogu da se implementiraju korišćenjem gore prikazanih šema, i obrnuto, gore prikazane šeme kodiranja mogu da se implementiraju korišćenjem i eksploatacijom dole prikazanih izvođenja.
[0114] U gore opisanim izvođenjima u odnosu na Sl. 7 do 9, entropijski enkoder i dekoderi sa Sl. 1 do 6 implementirani su u skladu sa konceptom PIPE. Jedno posebno izvođenje koristi aritmetičko stanje sa jedinstvenom verovatnoćom enkodera/dekodera 310 i 322. Kao što će biti opisano dole, u skladu sa alternativnim izvođenjem, entiteti 306-310 i odgovarajući entiteti 318 do 322 mogu da budu zamenjeni uobičajenim mehanizmom za kodiranje entropije. Kao primer, zamisliti mehanizam za aritmetičko kodiranje, koji upravlja samo jednim zajedničkim stanjem R i L i kodira sve simbole u jedan zajednički niz bitova, čime se odustaje od povoljnih aspekata predmetnog koncepta PIPE u vezi sa paralelnom obradom, ali se izbegava potreba preplitanja parcijalnih nizova bitova kao što je dalje objašnjeno u nastavku. Na taj način, broj stanja verovatnoće prema kojima se verovatnoće konteksta estimiraju ažuriranjem (kao što je look-up tabelama) može da bude veći od broja stanja verovatnoće pomoću kojih se vrši podela intervala verovatnoće. To jest, analogno kvantizaciji vrednosti širine intervala verovatnoće pre indeksiranja u tabelu Rtab, takođe može da se kvantizuje i indeks stanja verovatnoće. Gornji opis moguće implementacije za pojedinačne enkodere/dekodere 310 i 322, stoga, može da se proširi primerom implementacije entropijskih enkodera/dekodera 318-322/306-310 kao mehanizmima za binarno aritmetičko kodiranje/dekodiranje prilagodljivo kontekstu.
Preciznije, u skladu sa jednim izvođenjem, entropijski enkoder priključen na izlaz dodeljivača parametara (koji se ovde ponaša kao dodeljivač konteksta) može da radi na sledeći način:
0. Dodeljivač 304 prosleđuje vrednost bina zajedno sa parametrom verovatnoće. Verovatnoća je pState_current[bin].
1. Time, mehanizam za entropijsko kodiranje prima: 1) valLPS, 2) bin i 3) estimaciju raspodele verovatnoće pState_current[bin]. pState_current[bin] može da ima više stanja od broja prepoznatljivih indeksa stanja verovatnoće Rtab. Ako je tako, pState_current[bin] može da se kvantizuje, na primer, zanemarivanjem m LSB-ova, gde je m veće ili jednako 1 i poželjno 2 ili 3 kako bi se pribavilo p_state, tj. indeks koji se zatim koristi za pristup tabeli Rtab. Kvantizacija se, međutim, može da se izostavi, tj. p_state može da bude pState_current[bin].
2. Zatim, vrši se kvantizacija od R (kao što je pomenuto gore: ili se jedno R (i odgovarajuće L sa jednim zajedničkim nizom bitova) koristi/upravlja za sve prepoznatljive vrednosti od p_state, ili jedno R (i odgovarajuće L sa pridruženim parcijalnim nizom bitova po R/L paru po prepoznatljivoj vrednosti za p_state, gde bi potonji slučaj odgovarao postojanju jednog enkodera 310 binova po takvoj vrednosti) q_index = Qtab [R >> q] (ili neki drugi oblik kvantizacije)
3. Zatim, vrši se određivanje RLPSi R:
RLPS= Rtab[p_state][q_index]; Rtab je u njega sačuvao unapred izračunate vrednosti za p[p_state] Q[q_index]
R = R - RLPS[to jest, R je preliminarno unapred ažuriran kao da je „bin“ bio MPS]
4. Izračunavanje novog parcijalnog intervala:
5. Renormalizacija L i R, pisanje bitova.
[0115] Analogno, entropijski dekoder priključen na izlaz dodeljivača parametara (koji se ovde ponaša kao dodeljivač konteksta) može da radi na sledeći način:
0. Dodeljivač 304 prosleđuje vrednost bina zajedno sa parametrom verovatnoće. Verovatnoća je pState_current[bin].
1. Time, mehanizam za entropijsko dekodiranje prima zahtev za bin zajedno sa: 1) valLPS, i 2) estimacijom raspodele verovatnoće pState_current[bin]. pState_current[bin] može da ima više stanja od broja prepoznatljivih indeksa stanja verovatnoće Rtab. Ako je tako, pState_current[bin] može da se kvantizuje, na primer, zanemarivanjem m LSB-ova, gde je m veće ili jednako 1 i poželjno 2 ili 3 kako bi se pribavilo p_state, tj. indeks koji se zatim koristi za pristup tabeli Rtab. Kvantizacija, međutim, može da se izostavi, tj. p_state može da bude pState_current[bin].
2. Zatim, vrši se kvantizacija od R (kao što je pomenuto gore: ili se jedno R (i odgovarajuće V sa jednim zajedničkim nizom bitova) koristi/upravlja za sve prepoznatljive vrednosti p_state, ili jedno R (i odgovarajuće V sa pridruženim parcijalnim nizom bitova po R/L paru) po prepoznatljivoj vrednosti za p_state, gde bi potonji slučaj odgovarao postojanju jednog enkodera 310 binova po takvoj vrednosti)
q_index = Qtab [R >> q] (ili neki drugi oblik kvantizacije)
3. Zatim, vrši se određivanje RLPSi R:
RLPS= Rtab[p_state][q_index]; Rtab je u njega sačuvao unapred izračunate vrednosti za p[p_state] Q[q_index]
R = R - RLPS[to jest, R je preliminarno unapred ažuriran kao da je „bin“ bio MPS]
4. Određivanje bina u zavisnosti od pozicije parcijalnog intervala:
if (V<3>R) then
bin 1 - valMPS (bin se dekodira kao LPS; selektor bafera binova 18 će da pribavi stvarnu vrednost bina korišćenjem informacije o ovom binu i valMPS)
V V - R
R RLPS
else
bin valMPS (bin se dekodira kao MPS; stvarna vrednost bina se pribavlja korišćenjem informacije o ovom binu i valMPS)
5. Renormalizacija R, čitanje jednog bita i ažuriranje V.
[0116] Kao što je opisano gore, dodeljivač 4 dodeljuje pState_current[bin] svakom binu. Pridruživanje može da se izvrši na osnovu izbora konteksta. To jest, dodeljivač 4 može da izabere kontekst pomoću kontekstnog indeksa ctxIdx koji, zauzvrat, ima respektivni pState_current pridružen sa njim. Ažuriranje verovatnoće može da se izvrši svaki put kada se verovatnoća pState_current[bin] primeni na trenutni bin. Ažuriranje stanja verovatnoće pState_current[bin] se vrši u zavisnosti od vrednosti kodiranog bita:
if (bit = 1 - valMPS) then
pState_current ← Next_State_LPS [pState_current]
if (pState_current = 0) then valMPS ← 1 - valMPS
else
pState_current ← Next_State_MPS [pState_current]
[0117] Ako je obezbeđeno više od jednog konteksta, prilagođavanje se vrši kontekstualno, tj. pState_current[ctxIdx] se koristi za kodiranje, a zatim se ažurira koristeći trenutnu vrednost bina (kodiranu ili dekodiranu, respektivno).
[0118] Kao što će detaljnije biti opisano u nastavku, u skladu sa sada opisanim izvođenjima, enkoder i dekoder opciono mogu da se implementiraju za rad u različitim režimima, naime režimu niske kompleksnosti (eng. LC - low complexity) i režimu visoke efikasnosti (eng. HE - high efficiency). Ovo je u nastavku ilustrovano prvenstveno u vezi sa PIPE kodiranjem (zatim se spominju LC i HE PIPE režimi), ali je opis detalja skalabilnosti kompleksnosti lako prenosiv na druge implementacije mehanizama entropijskog kodiranja/dekodiranja, kao što je izvođenje korišćenja jednog zajedničkog aritmetičkog enkodera/dekodera sa prilagodljivim kontekstom.
[0119] U skladu sa izvođenjima navedenim u nastavku, za oba režima entropijskog kodiranja može da bude zajedničko:
· ista sintaksa i semantika (za sekvencu elemenata sintakse 301 i 327, respektivno)
· iste šeme binarizacije za sve elemente sintakse (kao što je trenutno specificirano za CABAC) (tj. binarizatori mogu da rade bez obzira na aktivirani režim)
· upotreba istih PIPE kodova (tj. bin enkoderi/dekoderi mogu da rade bez obzira na aktivirani režim)
· korišćenje 8-bitnih vrednosti inicijalizacije modela verovatnoće (umesto 16-bitnih vrednosti inicijalizacije kako je trenutno specificirano za CABAC)
[0120] Uopšteno govoreći, LC-PIPE se razlikuje od HE-PIPE po kompleksnosti obrade, kao što je kompleksnost izbora PIPE putanje 312 za svaki bin.
[0121] Na primer, LC režim može da radi pod sledećim ograničenjima: Za svaki bin (binIdx) može da postoji tačno jedan model verovatnoće, tj. jedan ctxIdx. To jest, u LC PIPE ne može da bude obezbeđen izbor/prilagođavanje konteksta. Specifični elementi sintakse, poput onih koji se koriste za kodiranje reziduala, međutim, mogu da budu kodirani pomoću konteksta, kao što je dalje navedeno dole. Štaviše, svi modeli verovatnoće mogu da budu bez prilagođavanja, tj. svi modeli modu da budu inicijalizovani na početku svakog isečka sa odgovarajućim verovatnoćama modela (u zavisnosti od izbora tipa isečka i QP-a isečka) i mogu da se drže fiksnim tokom obrade isečka. Na primer, samo 8 različitih modela verovatnoće koji odgovaraju za 8 različitih PIPE kodova 310/322 mogu da budu podržani, kako za modelovanje konteksta, tako i za kodiranje. Specifični elementi sintakse za kodiranje reziduala, tj. significance_coeff_flag i coeff_abs_level_greaterX (gde je X = 1,2), čija je semantika detaljnije navedena u nastavku, mogu da se dodele modelima verovatnoće tako da su (najmanje) grupe, na primer, 4 elementa sintakse kodirana/dekodirana sa istim modelom verovatnoće. U poređenju sa CAVLC, režim LC-PIPE postiže otprilike iste R-D performanse i istu propusnu moć.
[0122] HE-PIPE može da bude konfigurisan tako da bude konceptualno sličan CABAC-u iz H.264 sa sledećim razlikama: Binarno aritmetičko kodiranje (eng. BAC) zamenjeno je PIPE kodiranjem (isto kao u slučaju LC-PIPE). Svaki model verovatnoće, tj. svaki ctxIdx, može da bude predstavljen uz pomoć pipeIdx i refineIdx, gde pipeIdx sa vrednostima u opsegu od 0...7 predstavlja model verovatnoće od 8 različitih PIPE kodova. Ova promena utiče samo na internu reprezentaciju stanja, a ne i na ponašanje same mašine stanja (tj. estimaciju verovatnoće). Kao što će biti detaljnije objašnjeno u nastavku, inicijalizacija modela verovatnoće može da koristi 8-bitne vrednosti inicijalizacije kao što je navedeno gore. Skeniranje unazad elemenata sintakse coeff_abs_level_greaterX (gde je X = 1, 2), coeff_abs_level_minus3 i coeff_sign_flag (čija semantika će da postane jasna iz rasprave dole) može da se izvrši duž iste putanje skeniranja kao i skeniranje unapred (koje se na primer, koristi za kodiranje mape značaja). Izvođenje konteksta za kodiranje coeff_abs_level_greaterX (gde je X = 1, 2) takođe može da se pojednostavi. U poređenju sa CABAC, predloženi HE-PIPE postiže približno iste R-D performanse pri boljoj propusnoj moći.
[0123] Lako je videti da se ovde pomenuti režimi lako generišu renderovanjem, na primer, gore pomenutog binarnog aritmetičkog kodirajućeg/dekodirajućeg mehanizma sa prilagođavanjem konteksta tako da isti radi u različitim režimima.
[0124] Tako, u skladu sa izvođenjem prema prvom aspektu predmetnog pronalaska, dekoder za dekodiranje toka podataka može da bude konstruisan kao što je prikazano na Sl. 11. Dekoder služi za dekodiranje toka 401 podataka, kao što je isprepleteni niz bitova 340, u koji se kodiraju medijski podaci, poput video podataka. Dekoder sadrži prebacač 400 režima konfigurisan da aktivira režim niske kompleksnosti ili režim visoke efikasnosti u zavisnosti od toka 401 podataka. U tu svrhu, tok 401 podataka može da sadrži element sintakse, kao što je binarni element sintakse, koji ima binarnu vrednost 1 u slučaju da je režim niske kompleksnosti onaj koji treba da se aktivira i koji ima binarnu vrednost 0 u slučaju da je režim visoke efikasnosti onaj koji treba da se aktivira. Očigledno je da povezanost između binarne vrednosti i režima kodiranja može da se promeni, a može da se koristi i ne-binarni element sintakse koji ima više od dve moguće vrednosti. Kako stvarni izbor između oba ova režima još nije jasna pre prijema respektivnog elementa sintakse, ovaj element sintakse može da bude sadržan unutar nekog vodećeg zaglavlja toka 401 podataka kodiranog, na primer, sa fiksnom estimacijom verovatnoće ili modelom verovatnoće ili je zapisan u tok 401 podataka kakav jeste, tj. korišćenjem bajpas režima.
[0125] Dalje, dekoder sa Sl. 11 sadrži mnoštvo entropijskih dekodera 322 od kojih je svaki konfigurisan da pretvori kodne reči iz toka 401 podataka u parcijalne sekvence 321 simbola. Kao što je opisano gore, deinterliver 404 može da bude povezan između ulaza entropijskih dekodera 322, s jedne strane, i ulaza dekodera sa Sl. 11 gde je primenjen tok 401 podataka, s druge strane. Dalje, kao što je gore već opisano, svaki od entropijskih dekodera 322 može da bude povezan sa respektivnim intervalom verovatnoće, gde intervali verovatnoće različitih entropijskih dekodera zajedno pokrivaju ceo interval verovatnoće od 0 do 1 - ili 0 do 0,5 u slučaju da se entropijski dekoderi 322 se bave sa MPS i LPS, umesto apsolutnim vrednostima simbola. Detalji u vezi sa ovim pitanjem su opisani gore. U daljem tekstu, pretpostavlja se da je broj dekodera 322 sa PIPE indeksom koji je dodeljen svakom dekoderu, jednak 8, ali je bilo koji drugi broj takođe izvodljiv. Dalje, jedan od ovih kodera, u nastavku je to primera radi onaj koji ima pipe_id jednak 0, optimizovan je za binove koji imaju istu verovatnoću statistike, tj. njihova vrednost bina zauzima 1 i 0 podjednako verovatno. Ovo dekoder može samo da prosledi binovima. Respektivni enkoder 310 radi na isti način. Čak i svaka manipulacija binovima, u zavisnosti od vrednosti najverovatnije vrednosti bina, valMPS, od strane selektora 402 i 502, respektivno, može da bude izostavljena. Drugim rečima, entropija respektivnog parcijalnog toka je već optimalna.
[0126] Dalje, dekoder sa Sl. 11 sadrži selektor 402 konfigurisan da povrati svaki simbol iz sekvence 326 simbola iz izabranog jednog od mnoštva entropijskih dekodera 322. Kao što je pomenuto gore, selektor 402 može da bude podeljen na dodeljivač 316 parametara i selektor 318. Desimbolizator 314 je konfigurisan da desimbolizuje sekvencu 326 simbola kako bi se dobila sekvenca elemenata 327 sintakse. Rekonstruktor 404 je konfigurisan da rekonstruiše medijske podatke 405 na osnovu sekvenca elemenata 327 sintakse. Selektor 402 je konfigurisan da izvrši izbor u zavisnosti od aktiviranog režima niske kompleksnosti ili režima visoke efikasnosti, kao što je naznačeno strelicom 406.
[0127] Kao što je već napomenuto gore, rekonstruktor 404 može da bude deo prediktivnog video dekodera zasnovanog na blokovima koji radi sa fiksnom sintaksom i semantikom elemenata sintakse, tj. fiksiran u odnosu na izbor režima pomoću prebacača 400 režima. To jest, konstrukcija rekonstruktora 404 nema negativne posledice zbog promenljivosti režima. Preciznije, rekonstruktor 404 ne povećava overhead implementacije zbog promenljivosti režima koji nudi prebacač 400 režima i bar funkcionalnost s obzirom na rezidualne podatke i podatke predviđanja ostaje ista, bez obzira na režim izabran prebacačem 400. Isto važi, međutim, u pogledu entropijskih dekodera 322. Svi ovi dekoderi 322 se ponovo koriste u oba režima i, shodno tome, nema dodatnih troškova implementacije iako je dekoder sa Sl. 11 kompatibilan sa oba režima, režimima niske kompleksnosti i visoke efikasnosti.
[0128] Kao sporedni aspekt bi trebalo da se napomene da dekoder sa Sl. 11 samo nije u stanju da radi sa samo-sadržanim (eng. self-contained) tokovima podataka bilo u jednom ili u drugom režimu. Umesto toga, dekoder sa Sl. 11, kao i tok 401 podataka mogli bi da budu konfigurisani tako da bi prebacivanje između oba režima bilo čak moguće tokom jednog dela medijskog podatka, kao što je tokom video zapisa ili nekog audio dela, kako bi, na primer, kontrolisao kompleksnost kodiranja na strani dekodiranja u zavisnosti od eksternih ili uslova sredine, kao što je stanje baterije ili slično, korišćenjem kanala povratne sprege od dekodera do enkodera kako bi shodno tome upravljao izborom režima putem zatvorene petlje.
[0129] Dakle, dekoder sa Sl. 11 radi slično u oba slučaja, u slučaju izbora režima LC ili izbora režima HE. Rekonstruktor 404 izvodi rekonstrukciju koristeći elemente sintakse i zahteva trenutni element sintakse unapred određenog tipa elementa sintakse obrađujući ili poštujući neki propis strukture sintakse. Desimbolizator 314 zahteva neki broj binova da bi dao validnu binarizaciju za element sintakse zahtevan od strane rekonstruktora 404. Očigledno, u slučaju binarnog alfabeta, binarizacija izvedena od strane desimbolizatora 314 svodi se samo na prosleđivanje respektivnog bina/simbola 326 u rekonstruktor 404 kao binarnog elementa sintakse koji se trenutno zahteva.
[0130] Birač 402, međutim, deluje nezavisno u režimu izabranom prebacačem 400 režima. Režim rada selektora 402 teži da bude kompleksniji u slučaju režima visoke efikasnosti, a manje kompleksan u slučaju režima niske kompleksnosti. Štaviše, sledeća diskusija će pokazati da režim rada selektora 402 u režimu manje kompleksnosti takođe teži da smanji brzinu kojom selektor 402 menja izbor među entropijskim dekoderima 322 pri preuzimanju uzastopnih simbola iz entropijskih dekodera 322. Drugim rečima, u režimu niske kompleksnosti postoji povećana verovatnoća da su neposredno uzastopni simboli preuzeti iz istog entropijskog dekodera među mnoštvom entropijskih dekodera 322. Ovo, zauzvrat, omogućava brže preuzimanje simbola iz entropijskih dekodera 322. U režimu visoke efikasnosti, zauzvrat, režim rada selektora 402 teži da dovede do izbora među entropijskim dekoderima 322, gde interval verovatnoće pridružen sa respektivnim izabranim entropijskim dekoderom 322 bliže odgovara stvarnoj statistici simbola za trenutno preuzeti simbol trenutno preuzet od strane selektora 402, čime se postiže bolji stepen kompresije na strani kodiranja pri generisanju respektivnog toka podataka u skladu sa režimom visoke efikasnosti.
[0131] Na primer, različito ponašanje selektora 402 u oba režima može da se realizuje na sledeći način. Na primer, selektor 402 može da bude konfigurisan da, za unapred određeni simbol, izvrši izbor među mnoštvom entropijskih dekodera 322 u zavisnosti od prethodno preuzetih simbola iz sekvence 326 simbola u slučaju da je aktiviran režim visoke efikasnosti i nezavisno od svih prethodno preuzetih simbola iz sekvence simbola u slučaju da je aktiviran režim niske kompleksnosti. Zavisnost od prethodno preuzetih simbola iz sekvence 326 simbola može da rezultuje iz prilagodljivosti konteksta i/ili prilagodljivosti verovatnoće. Obe prilagodljivosti mogu da se isključe u toku režima niske kompleksnosti u selektoru 402.
[0132] U skladu sa jednim daljim izvođenjem, tok 401 podataka može da bude struktuiran u uzastopne delove kao što su isečci, kadrovi, grupe slika, sekvence kadrova ili slično, a svaki simbol iz sekvence simbola može da bude pridružen sa respektivnim jednim od mnoštva tipova simbola. U ovom slučaju, selektor 402 može da bude konfigurisan da varira, za simbole unapred određenog tipa simbola unutar trenutnog dela, izbor u zavisnosti od prethodno preuzetih simbola iz sekvence simbola unapred određenog tipa simbola unutar trenutnog dela u slučaju da je aktiviran režim visoke efikasnosti, a izbor ostavi konstantnim unutar trenutnog dela u slučaju da je aktiviran režim niske kompleksnosti. To jest, selektoru 402 može da bude dozvoljeno da promeni izbor među entropijskim dekoderima 322 za unapred određeni tip simbola, ali ove promene su ograničene da se dese između prelaza između uzastopnih delova. Ovom merom, evaluacije stvarnih statistika simbola ograničene su na vremenske instance koje se retko pojavljuju, dok se kompleksnost kodiranja smanjuje u većini vremena.
[0133] Dalje, svaki simbol iz sekvence 326 simbola može da bude pridružen sa respektivnim jednim od mnoštva tipova simbola, a selektor 402 može da bude konfigurisan tako da za unapred određeni simbol unapred određenog tipa simbola izabere jedan od mnoštva konteksta u zavisnosti od prethodno preuzetih simbola iz sekvence 326 simbola i izvrši izbor među entropijskim dekoderima 322 u zavisnosti od modela verovatnoće pridruženog sa izabranim kontekstom zajedno sa ažuriranjem modela verovatnoće pridruženog sa izabranim kontekstom u zavisnosti od unapred određenog simbola u slučaju da je aktiviran režim visoke efikasnosti, i izvrši izbor jednog od mnoštva konteksta u zavisnosti od prethodno preuzetih simbola iz sekvence 326 simbola i izvrši izbor među entropijskim dekoderima 322 u zavisnosti od modela verovatnoće pridruženog sa izabranim kontekstom zajedno sa ostavljanjem modela verovatnoće pridruženim sa izabranim kontekstom konstantnim u slučaju da je aktiviran režim niske kompleksnosti. To jest, selektor 402 može da koristi prilagodljivost konteksta s obzirom na određeni tip elementa sintaksnog u oba režima, dok potiskuje prilagođavanje verovatnoće u slučaju režima LC.
[0134] Alternativno, umesto da potpuno potisne prilagođavanje verovatnoće, selektor 402 može samo da smanji brzinu ažuriranja prilagođavanja verovatnoće režima LC u odnosu na režim HE.
[0135] Dalje, mogući aspekti specifični za LC-pipe, tj. aspekti režima LC, mogli bi drugim rečima da se opišu na način kako sledi. Konkretno, modeli bez prilagođavanja verovatnoće bi mogli da se koriste u režimu LC. Model bez prilagođavanja verovatnoće može da ima „hardkodiranu“, tj. celokupnu konstantnu verovatnoću ili se njegova verovatnoća održava fiksnom tokom obrade samo isečka i stoga može da se postavi u zavisnosti od tipa isečka i QP, tj. parametra kvantizacije koji je, na primer, signaliziran unutar toka 401 podataka za svaki isečak. Pretpostavljajući da sukcesivni binovi dodeljeni istom kontekstu slede model fiksne verovatnoće, moguće je da se dekodira nekoliko tih binova u jednom koraku jer su kodirani koristeći isti pipe kod, tj. koristeći isti entropijski dekoder, i ažuriranje verovatnoće se izostavlja nakon svakog dekodiranog bina. Izostavljanje ažuriranja verovatnoće štedi operacije tokom procesa kodiranja i dekodiranja i, time, takođe dovodi do smanjenja kompleksnosti i značajnog pojednostavljenja u dizajnu hardvera.
[0136] Neprilagodljivo ograničenje može da se ublaži za sve ili neke izabrane modele verovatnoće na takav način da su dopuštena ažuriranja verovatnoće nakon što je određeni broj binova kodiran/dekodiran pomoću ovog modela. Odgovarajući interval ažuriranja omogućava prilagođavanje verovatnoće uz mogućnost da se dekodira nekoliko binova odjednom.
[0137] U nastavku je predstavljen detaljniji opis mogućih uobičajenih i aspekata skalabilne kompleksnosti za LC-pipe i HE-pipe. Konkretno, u nastavku su opisani aspekti koji mogu da se koriste za režim LC-pipe i HE-pipe na isti način sa skalabilnom kompleksnošću. Skalabilna kompleksnost znači da je LC-slučaj izveden iz HE-slučaja uklanjanjem određenih delova ili njihovom zamenom sa nečim manje kompleksnim. Međutim, pre nego se nastavi s tim, treba napomenuti da je izvođenje sa Sl. 11 lako prenosivo na izvođenje sa kontekstualno prilagodljivim binarnim aritmetičkim kodiranjem/dekodiranjem pomenuto gore: selektor 402 i entropijski dekoderi 322 sabili bi se u kontekstualno prilagodljiv binarni aritmetički dekoder koji bi direktno primao tok 401 podataka i birao kontekst za bin za koji je trenutno potrebno da se izvede iz toka podataka. Ovo je posebno tačno za prilagodljivost konteksta i/ili prilagodljivost verovatnoće. Obe funkcionalnosti/prilagodljivosti mogu da se isključe ili da budu dizajnirane labavije tokom režima niske kompleksnosti.
[0138] Na primer, u implementaciji izvođenja sa Sl. 11, faza entropijskog pipe kodiranja koja uključuje entropijske dekodere 322 mogla bi da koristi osam sistematskih kodova promenljiva-u-promenljivu, tj. svaki entropijski dekoder 322 bi mogao da bude tipa v2v koji je bio opisan gore. Koncept kodiranja PIPE korišćenjem sistematskih kodova v2v pojednostavljen je ograničavanjem broja kodova v2v. U slučaju kontekstualno prilagodljivog binarnog aritmetičkog dekodera, isti bi mogao da upravlja istim stanjima verovatnoće za različite kontekste i da koristi iste - ili njihovu kvantizovanu verziju - za potpodelu verovatnoće. Preslikavanje stanja CABAC ili stanja modela verovatnoće, tj. stanja koja se koriste za ažuriranje verovatnoće, na PIPE ID-jeve ili indekse verovatnoće za look-up u Rtab može da bude kao što je prikazano u Tabeli A.
[0139] Ova modifikovana šema kodiranja može da se iskoristi kao osnova za pristup video kodiranju sa skalabilnom kompleksnošću. Prilikom izvođenja prilagođavanja režima verovatnoće, selektor 402 ili kontekstualno prilagodljiv binarni aritmetički dekoder, respektivno, izabrali bi PIPE dekoder 322, tj. izveli bi pipe indeks, koji će se koristiti, i indeks verovatnoće u Rtab, respektivno, na osnovu indeksa stanja verovatnoće - koji se ovde primera radi kreće od 0 do 62 - pridružen sa simbolom koji se trenutno dekodira - na primer preko konteksta - koristeći preslikavanje prikazano u tabeli A, i ažurirali bi ovaj indeks stanja verovatnoće u zavisnosti od trenutno dekodiranog simbola koristeći, na primer, specifične vrednosti tranzicije hodanja po tabeli koje pokazuju na sledeći indeks stanja verovatnoće koji je potrebno da se poseti u slučaju MPS i LPS, respektivno. U slučaju režima LC, potonje ažuriranje bi moglo da se izostavi. Čak bi i preslikavanje moglo da se izostavi u slučaju globalno fiksnih modela verovatnoće.
[0140] Međutim, mogla bi se da se koristi postavka za proizvoljno entropijsko kodiranje, a tehnike u ovom dokumentu bi takođe mogle da se koriste sa manjim prilagođavanjima.
[0141] Gore prikazan opis Sl. 11 se generalno odnosi na elemente sintakse i tipove elemenata sintakse. U nastavku je opisano kodiranje nivoa koeficijenata transformacije sa konfigurabilnom kompleksnošću.
[0142] Na primer, rekonstruktor 404 može da bude konfigurisan da rekonstruiše transformacioni blok 200 za nivoe koeficijenata transformacije 202 na osnovu dela sekvence elemenata sintakse nezavisnih od toga da li su aktivirani režim visoke efikasnosti ili režim niske kompleksnosti, gde deo sekvence 327 elemenata sintakse, na neisprepleten način, sadrži elemente sintakse mape značaja koji definišu mapu značaja koja ukazuje na pozicije nenultih nivoa koeficijenata transformacije unutar transformacionog bloka 200, a zatim (praćeno) elementima sintakse nivoa koji definišu nenulte nivoe koeficijenta transformacije. Konkretno, mogu da budu uključeni sledeći elementi: elementi sintakse krajnje pozicije (last_significant_pos_x, last_significant_pos_y) koji ukazuju na poziciju poslednjeg nenultog nivoa koeficijenta transformacije unutar transformacionog bloka; prvi elementi sintakse (coeff_significant_flag) koji zajedno definišu mapu značaja i označavaju, za svaku poziciju duž jednodimenzionalne putanje (274) koja vodi od pozicije DC do pozicije poslednjeg nenultog nivoa koeficijenta transformacije unutar transformacionog bloka (200), kao i da li je nivo koeficijenta transformacije na respektivnoj poziciji nenulti ili nije; druge elemente sintakse (coeff_abs_greater1) koji za svaku poziciju jednodimenzionalne putanje (274) označavaju gde je, prema prvim binarnim elementima sintakse, pozicioniran nenulti nivo koeficijenta transformacije, kao i da li je nivo koeficijenta transformacije na respektivnoj poziciji veći od jedan; i treće elemente sintakse (coeff_abs_greater2, coeff_abs_minus3) koji otkrivaju, za svaku poziciju jednodimenzionalne putanje, gde je, prema prvim binarnim elementima sintakse, pozicioniran nivo koeficijenta transformacije veći od jedan, iznos za koji respektivni nivo koeficijenta transformacije na respektivnoj poziciji prevazilazi jedan.
[0143] Redosled među elementima sintakse krajnjeg položaja, prvi, drugi i treći elementi sintakse mogu da budu isti za režim visoke efikasnosti i režim niske kompleksnosti, a selektor 402 može da bude konfigurisan da izvrši izbor među entropijskim dekoderima 322 za simbole iz kojih desimbolizator 314 pribavlja elemente sintakse krajnje pozicije, prve elemente sintakse, druge elemente sintakse i/ili treće elemente sintakse, što različito zavisi od toga da li su aktivirani režim niske kompleksnosti ili režim visoke efikasnosti.
[0144] Konkretno, selektor 402 može da se konfiguriše, za simbole unapred određenog tipa simbola među podsekvencom simbola iz kojih desimbolizator 314 pribavlja prve elemente sintakse i druge elemente sintakse, da izabere za svaki simbol unapred određenog tipa simbola jedan mnoštva konteksta u zavisnosti od prethodno preuzetih simbola unapred određenog tipa simbola među podsekvencom simbola i izvrši izbor u zavisnosti od modela verovatnoće pridruženog sa izabranim kontekstom u slučaju da je aktiviran režima visoke efikasnosti, i izvrši izbor na konstantan način deo po deo, tako da je izbor konstantan preko uzastopnih neprekidnih pododeljaka podsekvence u slučaju da je aktiviran režim niske kompleksnosti. Kao što je opisano gore, poddelovi mogu da se mere brojem pozicija na koje se respektivni pododeljak proteže kada se meri duž jednodimenzionalne putanje 274, ili brojem elemenata sintakse respektivnog tipa koji su već kodirani sa trenutnim kontekstom. To jest, binarni elementi sintakse coeff_significant_flag, coeff_abs_greater1 i coeff abs_greater2, na primer, kodiraju se kontekstualno prilagodljivo izborom dekodera 322 na osnovu modela verovatnoće izabranog konteksta u režimu HE. Koristi se i prilagođavanje verovatnoće. U režimu LC postoje i različiti konteksti koji se koriste za svaki od binarnih elemenata sintakse coeff_significant_flag, coeff_abs_greater1 i coeff_abs_greater2. Međutim, za svaki od ovih elemenata sintakse, kontekst se održava statičnim za prvi deo duž putanje 274 sa promenom konteksta samo pri prelasku na sledeći, neposredno posle dela duž putanje 274. Na primer, svaki deo može da bude definisan da bude dužine 4, 8, 16 pozicija bloka 200, nezavisno od toga da li je za respektivnu poziciju prisutan respektivni element sintakse ili ne. Na primer, coeff_abs_greater1 i coeff_abs_greater2 prisutni su samo za značajne pozicije, tj. pozicije na kojima - ili za koje - je coeff_significant_flag jednak 1. Alternativno, svaki deo može da bude definisan da bude dužine 4, 8, 16 elemenata sintakse, nezavisno od toga da li se tako rezultujući respektivni deo proteže preko većeg broja pozicija bloka. Na primer, coeff_abs_greater1 i coeff_abs_greater2 prisutni su samo za značajne pozicije, pa time delovi četiri elementa sintakse mogu da se protežu na više od 4 pozicije bloka zbog pozicija između njih duž putanje 274 za koje se ne prenosi takav element sintakse, kao što je bez coeff_abs_greater1 i coeff_abs_greater2 jer je respektivni nivo na ovoj poziciji nula.
[0145] Selektor 402 može da bude konfigurisan tako da, za simbole unapred određenog tipa simbola među podsekvencom simbola, iz kojih desimbolizator pribavlja prve elemente sintakse i druge elemente sintakse, za svaki simbol unapred određenog tipa simbola izabere jedan od mnoštva konteksta u zavisnosti od broja prethodno preuzetih simbola unapred određenog tipa simbola unutar podsekvence simbola, koji imaju unapred određenu vrednost simbola i pripadaju istom pododeljku, ili od broja prethodno preuzetih simbola unapred određenog tipa simbola unutar sekvence simbola, koji pripadaju istom pododeljku. Prva alternativa je bila tačna za coeff_abs_greater1 i sekundarna alternativa je bila tačna za coeff_abs_greater2 u skladu sa specifičnim izvođenjima navedenim gore.
[0146] Dalje, treći elementi sintakse otkrivaju, za svaku poziciju jednodimenzionalne putanje, gde je, prema prvim binarnim elementima sintakse, pozicioniran nivo koeficijenta transformacije veći od jedan, iznos za koji se respektivni nivo koeficijenta transformacije nalazi na respektivnoj poziciji premašuje jedan, može da sadrži elemente sintakse sa celobrojnim vrednostima, tj. coeff_abs_minus3, a desimbolizator 314 može da bude konfigurisan da koristi funkciju preslikavanja koja može da se kontroliše pomoću kontrolnog parametra za preslikavanje domena od sekvenci simbola reči u kodomen elemenata sintakse sa celobrojnim vrednostima, i da postavi kontrolni parametar po elementu sintakse sa celobrojnom vrednošću u zavisnosti od elemenata sintakse sa celobrojnim vrednostima prethodnih trećih elemenata sintakse ako je aktiviran režim visoke efikasnosti, i da izvrši postavljanje na konstantan način deo po deo tako da je postavljanje konstantno preko uzastopnih neprekidnih pododeljaka podsekvence u slučaju da je aktiviran režim niske kompleksnosti, pri čemu selektor 402 može da bude konfigurisan da izabere unapred određeni jedan od entropijskih dekodera (322) za simbole iz sekvence simbola reči preslikane na elemente sintakse sa celobrojnim vrednostima, koji je pridružen sa jednakom raspodelom verovatnoće, kako u režimu visoke efikasnosti, tako i u režimu niske kompleksnosti. To jest, čak i desimbolizator može da radi u zavisnosti od izabranog režima rada od strane prebacača 400 kao što je ilustrovano isprekidanom linijom 407. Umesto konstantnog postavljanja deo po deo kontrolnog parametra, desimbolizator 314 može da održava kontrolni parametar konstantnim tokom trenutnog isečka, na primer, ili konstantnim globalno u vremenu.
[0147] Zatim, opisano je kontekstno modelovanje sa skalabilnom kompleksnošću.
[0148] Evaluacija istog elementa sintakse gornjeg i levog suseda za izvođenje indeksa kontekstnog modela je uobičajen pristup i često se koristi u slučaju HE, npr. za element sintakse razlike vektora kretanja. Međutim, ova evaluacija zahteva više skladišnog prostora bafera i onemogućava direktno kodiranje elementa sintakse. Takođe, radi postizanja većih performansi kodiranja, može da se proceni više dostupnih suseda.
[0149] U poželjnom izvođenju, sve faze modelovanja konteksta koje vrše evaluaciju elemenata sintakse susednih kvadratnih ili pravougaonih blokova ili jedinica predviđanja fiksirane su za jedan kontekstni model. Ovo je jednako onemogućavanju prilagodljivosti u fazi izbora kontekstnog modela. Za to poželjno izvođenje, izbor kontekstnog modela u zavisnosti od indeksa bina u stringu binova nakon binarizacije ne modifikuje se u poređenju sa trenutnim dizajnom za CABAC. U drugom poželjnom izvođenju, kao dodatak fiksnom kontekstnom modelu za elemente sintakse, gde se primenjuje evaluacija suseda, takođe je fiksan i kontekstni model za različite bin indekse. Treba napomenuti da opis ne uključuje binarizaciju i izbor kontekstnog modela za razliku vektora kretanja i elemente sintakse koji se odnose na kodiranje nivoa koeficijenta transformacije.
[0150] U jednom poželjnom izvođenju, dozvoljena je samo evaluacija levog suseda. Ovo dovodi do smanjenja bafera u lancu obrade jer poslednji blok ili linija kodirajuće jedinice ne moraju više da se skladište. U jednom daljem poželjnom izvođenju, vrši se evaluacija samo suseda koji leže u istoj jedinici kodiranja.
[0151] U jednom poželjnom izvođenju, procenjuju se svi dostupni susedi. Na primer, pored gornjeg i levog suseda, procenjuju se i gornji levi, gornji desni i donji levi sused u slučaju da su dostupni.
[0152] To jest, selektor 402 sa Sl. 11 može da bude konfigurisan da koristi za unapred određeni simbol koji se odnosi na unapred određeni blok medijskih podataka, prethodno preuzete simbole iz sekvence simbola koji se odnose na veći broj različitih susednih blokova medijskih podataka u slučaju da je aktiviran režim visoke efikasnosti da bi se izabrao jedan od mnoštva konteksta i izvršio izbor među entropijskim dekoderima 322 u zavisnosti od modela verovatnoće pridruženog sa izabranim kontekstom. To jest, susedni blokovi mogu da budu susedni u vremenskom i/ili prostornom domenu. Prostorno susedni blokovi su vidljivi, na primer, na Sl. 1 do 3. Zatim, selektor 402 može da bude responzivan na izbor režima od strane prebacača 400 režima rada kako bi obavio prilagođavanje kontakta na osnovu prethodno preuzetih simbola ili elemenata sintakse koji se odnose na veći broj susednih blokova u slučaju režima HE u poređenju sa režimom LC čime se smanjuje skladišni overhead kao što je ovde opisano.
[0153] Zatim, opisano je kodiranje razlika vektora kretanja sa redukovanom kompleksnošću u skladu sa jednim izvođenjem.
[0154] U standardu video kodeka H.264/AVC, vektor kretanja pridružen sa makroblokom prenosi se signalizacijom razlike (razlika vektora kretanja - eng. mvd - motion vector difference) između vektora kretanja trenutnog makrobloka i prediktora medijane vektora kretanja. Kada se CABAC koristi kao entropijski enkoder, mvd se kodira na sledeći način. Mvd sa celobrojnim vrednostima se deli na apsolutni i znakovni deo. Apsolutni deo se binarizuje pomoću kombinacije skraćenog unarnog i Exp-Golomb koda trećeg reda, koji se označavaju kao prefiks i sufiks rezultujućeg bin stringa. Binovi koji se odnose na skraćenu unarnu binarizaciju kodiraju se pomoću kontekstnih modela, dok se binovi koji se odnose na Exp-Golomb binarizaciju kodiraju u bajpas režimu, tj. sa fiksnom verovatnoćom od 0,5 sa CABAC. Unarna binarizacija funkcioniše na sledeći način. Neka je apsolutna celobrojna vrednost od mvd jednaka n, onda se rezultujući bin string sastoji od n puta '1' i jedne prateće '0'. Na primer, neka je n = 4, onda je bin string '11110'. U slučaju skraćenog unarnog koda, postoji ograničenje i ako vrednost premaši ovo ograničenje, bin string se sastoji od n 1 puta '1'. Za slučaj sa mvd, granica je jednaka 9. To znači da ako je kodiran apsolutni mvd jednak ili veći od 9, što rezultira 9 puta '1', bin string se sastoji od prefiksa i sufiksa sa Exp-Golomb binarnizacijom. Kontekstno modelovanje za skraćeni unarni deo vrši se na sledeći način. Za prvi bin iz bin stringa, uzimaju se apsolutne vrednosti mvd od gornjeg i levog susednog makrobloka ako su dostupne (ako nisu dostupne, zaključuje se da im je vrednost 0). Ako je suma za određenu komponentu (horizontalni ili vertikalni pravac) veća od 2, bira se drugi kontekstni model, ako je apsolutna suma veća od 32, bira se treći kontekstni model, u suprotnom (apsolutna suma je manja od 3) bira se prvi kontekstni model. Pored toga, kontekstni modeli su različiti za svaku komponentu. Za drugi bin iz bin stringa, koristi se četvrti kontekstni model, a peti kontekstni model se primenjuje za preostale binove unarnog dela. Kada je apsolutni mvd jednak ili veći od 9, npr. svi binovi skraćenog unarnog dela su jednaki '1', razlika između apsolutne vrednosti mvd i 9 je kodirana u bajpas režimu sa Exp-Golomb binarizacijom trećeg reda. U poslednjem koraku, znak od mvd je kodiran u bajpas režimu.
[0155] Najnovija tehnika kodiranja za mvd kada se koristi CABAC kao entropijski enkoder navedena je u trenutnom testnom modelu (HM) projekta za video kodiranje visoke efikasnosti (eng. HEVC - High Efficiency Video Coding). U HEVC, veličine blokova su promenljive, a oblik specificiran vektorom kretanja naziva se jedinica predviđanja (eng. PU – prediction unit). Veličine PU gornjeg i levog suseda mogu da imaju druge oblike i veličine od trenutne PU. Stoga se, kad god je relevantno, definicija gornjeg i levog suseda sada naziva gornjim i levim susedom gornjeg levog ugla trenutne PU. Za samo kodiranje, samo proces izvođenja za prvi bin može da se promeni u skladu sa izvođenjem. Umesto procene apsolutne suma za MV od suseda, svaki sused može da se proceni zasebno. Ako je apsolutni MV suseda dostupan i veći od 16, indeks kontekstnog modela može da se inkrementira što rezultuje istim brojem kontekstnih modela za prvi bin, dok je kodiranje preostalog apsolutnog nivoa MVD i znaka potpuno isto kao u H.264/AVC.
[0156] U tehnici kodiranja za mvd opisanoj gore, do 9 binova mora da se kodira sa kontekstnim modelom, dok preostala vrednost mvd može da se kodira u bajpas režimu niske kompleksnosti zajedno sa informacijom o znaku. Ovo trenutno izvođenje opisuje tehniku za smanjenje broja binova koji se kodiraju kontekstnim modelima što rezultuje povećanjem broja zaobilaženja i smanjuje broj kontekstnih modela potrebnih za kodiranje mvd. Zbog toga se vrednost odsecanja smanjuje sa 9 na 1 ili 2. To znači da je samo prvi bin koji specificira da li je apsolutni mvd veći od nule kodiran pomoću kontekstnog modela ili prvi i drugi bin koji određuju da li je apsolutni mvd veći od nule i jedan je kodiran pomoću kontekstnog modela, dok je preostala vrednost kodirana u bajpas režimu i/ili korišćenjem koda VLC. Svi binovi koji su rezultat binarnizacije korišćenjem koda VLC – a ne korišćenjem unarnog ili skraćenog unarnog koda - kodirani su pomoću bajpas režima niske kompleksnosti. U slučaju PIPE, moguća su direktna umetanja u i iz niza bitova. Štaviše, može da se koristi drugačija definicija gornjeg i levog suseda da bi se izveo bolji izbor kontekstnog modela za prvi bin, ako uopšte.
[0157] U jednom poželjnom izvođenju, Exp-Golomb kodovi se koriste za binarizaciju preostalog dela apsolutnih komponenti MVD. Zbog toga je red Exp-Golomb koda promenljiv. Red Exp-Golomb koda izvodi se na sledeći način. Nakon što je izveden i kodiran kontekstni model za prvi bin, pa prema tome i indeks tog kontekstnog modela, indeks se koristi kao red za deo Exp-Golomb binarizacije. U ovom poželjnom izvođenju, kontekstni model za prvi bin je u opsegu od 1 - 3 što rezultuje indeksom 0 - 2, koji se koriste kao red za Exp-Golomb kod. Ovo poželjno izvođenje može da se koristi za slučaj HE.
[0158] Kao alternativa za gore prikazanu tehniku za korišćenje dva puta pet konteksta u kodiranju za apsolutni MVD, da bi se kodiralo 9 unarnih kodova binova binarizacije, moglo bi da se koristi i 14 kontekstnih modela (7 za svaku komponentu). Na primer, dok prvi i drugi bin unarnog dela mogu da se kodiraju sa četiri različita konteksta, kao što je prethodno opisano, peti kontekst bi mogao da se koristi za treći bin, a šesti kontekst bi mogao da se koristi u vezi sa četvrtim binom, dok se binovi od petog do devetog kodiraju pomoću sedmog konteksta. Tako bi u ovom slučaju bilo potrebno čak 14 konteksta, a samo preostala vrednost može da se kodira u bajpas režimu niske kompleksnosti. Tehnika za smanjenje broja binova kodiranih kontekstnim modelima što bi rezultovalo povećanjem broja zaobilaženja i smanjilo broj kontekstnih modela potrebnih za kodiranje MVD je smanjenje vrednosti odsecanja kao što je, na primer, sa 9 na 1 ili 2. To znači da bi se samo prvi bin koji specificira da li je apsolutni MVD veći od nule kodirao korišćenjem kontekstnog modela ili prvi i drugi bin koji specificiraju da li je apsolutni MVD veći od nule i jedan bi bio kodiran korišćenjem respektivnog kontekstnog modela, dok se preostala vrednost kodira sa kodom VLC. Svi binovi koji su rezultat binarnizacije korišćenjem koda VLC kodirani su pomoću bajpas režima niske kompleksnosti. U slučaju PIPE, moguće je direktno umetanje u i iz niza bitova. Pored toga, predstavljeno izvođenje koristi drugu definiciju gornjeg i levog suseda za izvođenje boljeg izbora kontekstnog modela za prvi bin. Osim toga, modelovanje konteksta je modifikovano na način tako da se smanjuje broj kontekstnih modela potrebnih za prvi ili prvi i drugi bin, što dovodi do daljeg smanjenja memorije. Takođe, procena suseda, kao što je gornji sused, može da bude onemogućena što rezultuje uštedom linijskog bafera/memorije potrebnih za skladištenje vrednosti mvd od suseda. Konačno, redosled kodiranja komponenti može da bude podeljen na način koji dozvoljava kodiranje prefiksnih binova za obe komponente (tj. binova kodiranih kontekstnim modelima) nakon čega sledi kodiranje zaobilaznih binova.
[0159] U jednom poželjnom izvođenju, Exp-Golomb kodovi se koriste za binarizaciju preostalog dela apsolutnih komponenti mvd. Zbog toga je red Exp-Golomb koda promenljiv.
Red Exp-Golomb koda može da se izvede na sledeći način. Nakon kontekstnog modela za prvi bin, pa je stoga izveden indeks tog kontekstualnog modela, taj indeks se koristi kao red za Exp-Golomb binarizaciju. U ovom poželjnom izvođenju, kontekstni model za prvi bin je u rasponu od 1 - 3 što rezultuje indeksom 0 - 2, koji se koristi kao red za Exp-Golomb kod. Ovo poželjno izvođenje može da se koristi za slučaj HE, a broj kontekstnih modela je smanjen na 6. Da bi se ponovo smanjio broj kontekstnih modela i stoga uštedela memorija, horizontalne i vertikalne komponente mogu da dele iste kontekstne modele u jednom daljem poželjnom izvođenju. U tom slučaju, potrebna su samo 3 kontekstna modela. Štaviše, samo levi sused može da se uzme u obzir za evaluaciju u daljem poželjnom izvođenju pronalaska. U ovom poželjnom izvođenju, prag može da bude nemodifikovan (npr. samo jedan prag od 16 što rezultuje Exp-Golomb parametrom od 0 ili 1 ili pojedinačni prag od 32 što rezultuje Exp-Golomb parametrom od 0 ili 2). Ova poželjno izvođenje čuva linijski bafer potreban za skladištenje mvd. U drugom poželjnom izvođenju, prag je modifikovan i jednak je 2 i 16. Za to poželjno izvođenje, potrebna su ukupno 3 kontekstna modela za kodiranje mvd i mogući Exp-Golomb parametar je u rasponu od 0 - 2. U jednom daljem poželjnom izvođenju, prag je jednak 16 i 32. Opet, opisana varijanta je pogodna za slučaj HE.
[0160] U jednom daljem poželjnom izvođenju pronalaska, vrednost odsecanja se smanjuje sa 9 na 2. U ovom poželjnom izvođenju, prvi bin i drugi bin mogu da se kodiraju korišćenjem kontekstnih modela. Izbor kontekstnog modela za prvi bin može se izvrši kao u stanju tehnike ili se modifikuje na način opisan u poželjnom izvođenju navedenom gore. Za drugi bin je izabran zaseban kontekstni model kao u stanju tehnike. U jednom daljem poželjnom izvođenju, kontekstni model za drugi bin se bira procenom mvd od levog suseda. Za taj slučaj, indeks kontekstnog modela je isti kao i za prvi bin, dok su dostupni kontekstni modeli različiti od onih za prvi bin. Ukupno je potrebno 6 kontekstnih modela (treba da se napomene da komponente dele kontekstne modele). Opet, Exp-Golomb parametar može da zavisi od izabranog indeksa kontekstnog modela prvog bina. U drugom poželjnom izvođenju pronalaska, Exp-Golomb parametar zavisi od indeksa kontekstnog modela drugog bina. Opisana izvođenja pronalaska mogu da se koriste za slučaj HE.
[0161] U jednom daljem poželjnom izvođenju pronalaska, kontekstni modeli za oba bina su fiksni i ne izvode se evaluacijom ni levog ni gornjeg suseda. Za ovo poželjno izvođenje, ukupan broj kontekstnih modela jednak je 2. U jednom daljem poželjnom izvođenju pronalaska, prvi bin i drugi bin dele isti kontekstni model. Kao rezultat je za kodiranje mvd potreban samo jedan kontekstni model. U oba poželjna izvođenja pronalaska, Exp-Golomb parametar može da bude fiksan i da bude jednak 1. Opisana poželjna izvođenja pronalaska su pogodna i za HE i za LC konfiguraciju.
[0162] U drugom poželjnom izvođenju, red Exp-Golomb dela izvodi se nezavisno od indeksa kontekstnog modela prvog bina. U ovom slučaju, apsolutna suma uobičajenog izbora kontekstnog modela H.264/AVC se koristi za izvođenje reda za Exp-Golomb deo. Ovo poželjno izvođenje može da se koristi za slučaj HE.
[0163] U jednom daljem poželjnom izvođenju, red Exp-Golomb kodova je fiksiran i postavljen je na 0. U drugom poželjnom izvođenju, red Exp-Golomb kodova je fiksiran i postavljen je na 1. U jednom poželjnom izvođenju, red Exp-Golomb kodova je fiksiran na 2. U jednom daljem izvođenju, red Exp-Golomb kodova je fiksiran na 3. U jednom daljem izvođenju, red Exp-Golomb kodova je fiksiran prema obliku i veličini trenutne PU. Predstavljena poželjna izvođenja mogu da se koriste za slučaj LC. Treba da se napomene da se fiksni red Exp-Golomb dela razmatra sa smanjenim brojem binova kodiranih kontekstnim modelima.
[0164] U jednom poželjnom izvođenju, susedi su definisani kao u nastavku. Za gornju PU, sve PU pokrivaju trenutnu PU i uzimaju se u obzir PU sa najvećim korišćenim MV. Ovo se takođe radi i za levog suseda. Evaluiraju se sve PU koje pokrivaju trenutnu PU i koristi se PU sa najvećim MV. U drugom poželjnom izvođenju, prosečna apsolutna vrednost vektora kretanja iz svih PU pokriva gornju i levu granicu trenutne PU se koristi za izvođenje prvog bina.
[0165] Za gore prikazana poželjna izvođenja, moguće je da se promeni redosled kodiranja na sledeći način. Mvd moraju da budu specificirani za horizontalni i vertikalni pravac jedan za drugim (ili obrnuto). Time, moraju da se kodiraju dva bin stringa. Da bi se smanjio broj prebacivanja režima za mehanizam entropijskog kodiranja (tj. prebacivanje između bajpas i regularnog režima), moguće je da se kodiraju binovi kodirani kontekstnim modelima za obe komponente u prvom koraku, nakon čega slede binovi kodirani u bajpas režimu u drugom koraku. Napomena da je ovo samo preuređivanje.
[0166] Treba napomenuti da binovi koji su rezultat unarne ili skraćene unarne binarizacije takođe mogu da se predstave ekvivalentnom binarizacijom fiksne dužine od jednog flega po indeksu bina specificirajući da li je vrednost veća od trenutnog indeksa bina. Na primer, vrednost odsecanja za skraćenu unarnu binarizaciju mvd je postavljena na 2, što rezultuje kodnim rečima 0, 10, 11 za vrednosti 0, 1, 2. U odgovarajućoj binarizaciji fiksne dužine sa jednim flegom po indeksu bina, jedan fleg za indeks bina 0 (tj. prvi bin) specificira da li je apsolutna vrednost mvd veća od 0 ili ne i jedan fleg za drugi bin sa indeksom bina 1 određuje da li je apsolutna vrednost mvd veća od 1 ili nije. Kada je drugi fleg kodiran samo kada je prvi fleg jednak 1, to rezultuje istim kodnim rečima 0, 10, 11.
[0167] Zatim, opisana je predstava sa skalabilnom kompleksnošću internog stanja modela verovatnoće u skladu sa izvođenjem.
[0168] U postavci HE-PIPE, interno stanje modela verovatnoće se ažurira nakon kodiranja bina sa njim. Ažurirano stanje je izvedeno pretraživanjem tabele tranzicija stanja koristeći staro stanje i vrednost kodiranog bina. U slučaju CABAC, model verovatnoće može da ima 63 različitih stanja gde svako stanje odgovara modelu verovatnoće u intervalu (0,0; 0,5). Svako od ovih stanja se koristi za ostvarivanje dva modela verovatnoće. Pored verovatnoće koja je dodeljena stanju, koristi se i 1,0 minus verovatnoća i fleg pod nazivom valMps skladišti informaciju da li se koristi verovatnoća ili 1,0 minus verovatnoća. Ovo dovodi do ukupno 126 stanja. Da bi se koristio takav model verovatnoće sa konceptom kodiranja PIPE, svako od 126 stanja mora da bude preslikano na jedan od dostupnih PIPE kodera. U trenutnim implementacijama PIPE kodera, to se radi pomoću lookup tabele. Primer takvog preslikavanja je prikazan u Tabeli A.
[0169] U nastavku je opisano jedno izvođenje kako može da se predstavi interno stanje modela verovatnoće da bi se izbeglo korišćenje lookup tabele za pretvaranje internog stanja u indeks PIPE. Potrebne su samo neke jednostavne operacije maskiranja bitova za izdvajanje indeksa PIPE iz interne promenljive stanja modela verovatnoće. Ova nova reprezentacija internog stanja modela verovatnoće sa skalabilnom kompleksnošću dizajnirana je na način sa dva nivoa. Za primene u kojima je obavezan rad niske kompleksnosti, koristi se samo prvi nivo. On opisuje samo indeks pipe i fleg valMps koji se koristi za kodiranje ili dekodiranje pridruženih binova. U slučaju opisane šeme entropijskog kodiranja PIPE, prvi nivo može da se koristi da se raspoznaju 8 različitih modela verovatnoće. Time, prvom nivou bi bila potrebna 3 bita za pipeIdx i jedan dalji bit za fleg valMps. Sa drugim nivoom, svaki od grubih opsega verovatnoće prvog nivoa je prečišćen u nekoliko manjih intervala koji podržavaju prezentaciju verovatnoća pri većim rezolucijama. Ova detaljnija prezentacija omogućava precizniji rad estimatora verovatnoća. Generalno, pogodna je za kodiranje kod primena koje teže visokim RD performansama. Kao primer, ovaj predstava internog stanja modela verovatnoće sa skalabilnom kompleksnošću sa upotrebom PIPE ilustrovana je na sledeći način:
[0170] Prvi i drugi nivo se čuvaju u jednoj 8-bitnoj memoriji. Za skladištenje prvog nivoa potrebna su 4 bita - indeks koji definiše indeks PIPE sa vrednošću MPS na najznačajnijem bitu - i još 4 bita se koriste za skladištenje drugog nivoa. Da bi se primenilo ponašanje CABAC estimatora verovatnoće, svaki indeks PIPE ima određeni broj dozvoljenih indeksa prečišćavanja u zavisnosti od toga koliko je CABAC stanja preslikano u PIPE indeks. Npr. za preslikavanje u Tabeli A, broj CABAC stanja po PIPE indeksu prikazan je u Tabeli B.
T l B Br ABA n PIPE in k z rim r T l A
[0171] Tokom procesa kodiranja ili dekodiranja bina, PIPE indeksu i valMps-u može da se pristupi direktno korišćenjem jednostavnih bit maski ili operacijama pomeranja bitova. Procesi kodiranja niske kompleksnosti zahtevaju samo 4 bita prvog nivoa, a procesi kodiranja visoke efikasnosti mogu dodatno da koriste 4 bita drugog nivoa za izvođenje ažuriranja modela verovatnoće CABAC estimatora verovatnoće. Za sprovođenje ovog ažuriranja može se da se dizajnira lookup tabela za tranziciju stanja koja vrši iste tranzicije stanja kao i originalna tabela, ali koristeći dvostepenu reprezentaciju stanja sa skalabilnom kompleksnošću. Originalna tabela tranzicije stanja sastoji se od dva puta 63 elementa. Za svako stanje ulaza sadrži dva stanja izlaza. Kada se koristi reprezentacija sa skalabilnom kompleksnošću, veličina tabele tranzicije stanja ne premašuje dva puta 128 elemenata, što je prihvatljivo povećanje veličine tabele. Ovo povećanje zavisi od toga koliko se bitova koristi za predstavljanje indeksa prečišćavanja i potrebna su četiri bita da bi se tačno emuliralo ponašanje CABAC estimatora verovatnoće. Međutim, mogao bi da se koristi drugačiji estimator verovatnoće koji može da radi na smanjenom skupu CABAC stanja tako da za svaki pipe indeks nije dozvoljeno više od 8 stanja. Stoga potrošnja memorije može da se uskladi sa datim nivoom kompleksnosti procesa kodiranja prilagođavanjem broja bitova koji se koriste za predstavljanje indeksa prečišćavanja. U poređenju sa internim stanjem modela verovatnoće sa CABAC-om - gde postoje 64 indeksa stanja verovatnoće - upotreba pretraživanja tabele za preslikavanje verovatnoća modela na određeni PIPE kod je izbegnuta i nije potrebna dalja konverzija.
[0172] Zatim, opisano je ažuriranje kontekstnog modela sa skalabilnom kompleksnošću u skladu sa izvođenjem.
[0173] Za ažuriranje kontekstnog modela, njegov indeks stanja verovatnoće može da se ažurira na osnovu jednog ili više prethodno kodiranih binova. U postavci HE-PIPE, ovo ažuriranje se vrši nakon kodiranja ili dekodiranja svakog bina. Obrnuto, u postavci LC-PIPE ovo ažuriranje možda nikada neće biti izvršeno.
[0174] Međutim, moguće je da se kontekstni modeli ažuriraju na način sa skalabilnom kompleksnošću. To jest, odluka o da li da se kontekstni model ažurira ili ne može da bude zasnovana na različitim aspektima. Npr. postavka kodera ne može da ažurira samo određene kontekstne modele, kao što je npr. kontekstni model elementa sintakse coeff_significant_flag i uvek vrši ažuriranje za sve ostale kontekstne modele.
[0175] Drugim rečima, selektor 402 može da se konfiguriše da za simbole svakog od nekog broja unapred određenih tipova simbola izvrši izbor među entropijskim dekoderima 322 u zavisnosti od respektivnog modela verovatnoće pridruženog sa respektivnim unapred određenim simbolom tako da je broj unapred određenih tipova simbola niži u režimu niske kompleksnosti u poređenju sa režimom visoke efikasnosti.
[0176] Osim toga, kriterijumi za kontrolu da li kontekstni model treba da se ažurira ili ne mogu da budu, npr. veličina paketa iz niza bitova, broj do sada dekodiranih binova ili se ažuriranje vrši tek nakon kodiranja određenog fiksnog ili promenljivog broja binova za kontekstni model.
[0177] Pomoću ove šeme za odlučivanje da li kontekstni model treba da se ažurira ili ne, može da se implementira ažuriranje kontekstnog modela sa skalabilnom kompleksnošću. Ono omogućava povećanje ili smanjenje dela binova u nizu bitova za koji se vrši ažuriranje kontekstnog modela. Što je veći broj ažuriranja kontekstnog modela, veća je efikasnost kodiranja i veća je računska kompleksnost. Dakle, ažuriranje kontekstnog modela sa skalabilnom kompleksnošću može da se postigne sa opisanom šemom.
[0178] U jednom poželjnom izvođenju, ažuriranje kontekstnog modela vrši se za binove svih elemenata sintakse osim elemenata sintakse coeff_significant_flag, coeff_abs_greater1 i coeff_abs_greater2.
[0179] U jednom daljem poželjnom izvođenju, ažuriranje kontekstnog modela vrši se samo za binove elemenata sintakse coeff_significant_flag, coeff_abs_greater1 i coeff_abs_greater2.
[0180] U jednom daljem poželjnom izvođenju, ažuriranje kontekstnog modela se vrši za sve kontekstne modele kada se započne kodiranje ili dekodiranje isečka. Nakon obrade određenog unapred definisanog broja transformacionih blokova, ažuriranje kontekstnog modela za sve kontekstne modele se onemogućava dok se ne dođe do kraja isečka.
[0181] Na primer, selektor 402 može da bude konfigurisan da, za simbole unapred određenog tipa simbola, izvrši izbor među entropijskim dekoderima 322 u zavisnosti od modela verovatnoće pridruženog sa unapred određenim tipom simbola zajedno sa ili bez ažuriranja pridruženog modela verovatnoće, tako da je dužina faze učenja sekvence simbola, tokom kojih se vrši izbor simbola unapred određenog tipa simbola zajedno sa ažuriranjem, kraća u režimu niske kompleksnosti u poređenju sa režimom visoke efikasnosti.
[0182] Jedno dalje poželjno izvođenje je identično sa prethodno opisanim poželjnim izvođenjem, ali koristi predstavu internog stanja kontekstnih modela sa skalabilnom kompleksnoću na način tako da jedna tabela skladišti „prvi deo“ (valMps i pipeIdx) svih kontekstnih modela i druga tabela čuva „drugi deo“ (refineIdx) svih kontekstnih modela. U trenutku kada je ažuriranje kontekstnog modela onemogućeno za sve kontekstne modele (kao što je opisano u prethodnom poželjnom izvođenju), tabela koja skladišti „drugi deo“ više nije potrebna i može da se odbaci.
[0183] Zatim, opisano je ažuriranje kontekstnog modela za sekvencu binova u skladu sa jednim izvođenjem.
[0184] U konfiguraciji LC-PIPE, binovi elemenata sintakse tipa coeff_significant_flag, coeff_abs_greater1 i coeff_abs_greater2 grupisani su u podskupove. Za svaki podskup se koristi jedan kontekstni model za kodiranje njegovih binova. U ovom slučaju, ažuriranje kontekstnog modela može da se izvrši nakon kodiranja fiksnog broja binova ove sekvence. Ovo je označeno kao ažuriranje više binova u nastavku. Međutim, ovo ažuriranje može da se razlikuje od ažuriranja koje koristi samo poslednji kodirani bin i interno stanje kontekstnog modela. Npr. za svaki bin koji je kodiran, sprovodi se jedan korak ažuriranja kontekstnog modela.
[0185] U nastavku su dati primeri za kodiranje primernog podskupa koji se sastoji od 8 binova. Slovo 'b' označava dekodiranje bina, a slovo 'u' označava ažuriranje kontekstnog modela. U slučaju LC-PIPE, vrši se samo dekodiranje binova bez ažuriranja kontekstnog modela:
bbbbbbbb
[0186] U slučaju HE-PIPE, nakon dekodiranja svakog bina, vrši se ažuriranje kontekstnog modela:
bubububububububu
[0187] Da bi se donekle smanjila kompleksnost, ažuriranje kontekstnog modela može da se vrši nakon sekvence binova (u ovom primeru nakon svaka 4 bina, vrše se ažuriranja ovih 4 bina):
bbbbuuuubbbbuuuu
[0188] To jest, selektor 402 može da bude konfigurisan da za simbole unapred određenog tipa simbola izvrši izbor među entropijskim dekoderima 322 u zavisnosti od modela verovatnoće pridruženog sa unapred određenim tipom simbola zajedno sa ili bez ažuriranja pridruženog modela verovatnoće tako da je frekvencija, pri kojoj se izbor simbola unapred određenog tipa simbola vrši zajedno sa ažuriranjem, niža u režimu niske kompleksnosti u poređenju sa režimom visoke efikasnosti.
[0189] U ovom slučaju, nakon dekodiranja 4 bina, slede 4 koraka ažuriranja na osnovu upravo dekodiranih 4 bina. Treba napomenuti da ova četiri koraka ažuriranja mogu da se izvedu u jednom koraku korišćenjem/pretraživanjem posebne lookup tabele. Ova lookup tabela skladišti za svaku moguću kombinaciju od 4 bina i svako moguće interno stanje kontekstnog modela rezultujuće novo stanje nakon četiri konvencionalna koraka ažuriranja.
[0190] U određenom režimu, ažuriranje više binova se koristi za element sintakse coeff_significant_flag. Za binove svih ostalih elemenata sintakse ne koristi se ažuriranje kontekstnog modela. Broj binova koji su kodirani pre nego što se izvrši korak ažuriranja više binova postavljen je na n. Kada broj binova iz skupa nije deljiv sa n, binovi od 1 do n-1 ostaju na kraju podskupa nakon poslednjeg ažuriranja više binova. Za svaki od ovih binova, konvencionalno ažuriranje pojedinačnog bina vrši se nakon kodiranja svih ovih binova. Broj n može da bude bilo koji pozitivan broj veći od 1. Drugi režim bi mogao da bude identičan prethodnom režimu, osim što se ažuriranje više binova vrši za proizvoljne kombinacije coeff_significant_flag, coeff_abs_greater1 i coeff_abs_greater2 (umesto samo coeff_significant_flag). Na taj način, ovaj režim bi bio dosta kompleksniji od drugog. Svi ostali elementi sintakse (gde se ažuriranje više binova ne koristi) mogli bi da se podele na dva disjunktna podskupa, gde se za jedan od podskupova koristi ažuriranje pojedinačnog bina, a za drugi podskup se ne koristi ažuriranje kontekstnog modela. Svi mogući disjunktni podskupovi su validni (uključujući i prazan podskup).
[0191] U jednom alternativnom izvođenju, ažuriranje više binova može da bude zasnovano samo na poslednjih m binova koji su kodirani neposredno pre koraka ažuriranja više binova. m bi moglo da bude bilo koji prirodni broj manji od n. Time, dekodiranje se može da se izvrši na sledeći način:
bbbbuubbbbuubbbbuubbbb...
za n = 4 i m = 2.
[0192] To jest, selektor 402 može da bude konfigurisan da, za simbole unapred određenog tipa simbola, vrši izbor među entropijskom dekoderima 322 u zavisnosti od modela verovatnoće pridruženog unapred određenom tipu simbola, zajedno sa ažuriranjem pridruženog modela verovatnoće svakog n-tog simbola unapred određenog tipa na osnovu m najnovijih simbola unapred određenog tipa simbola tako da je odnos n/m veći u režimu niske kompleksnosti u poređenju sa režimom visoke efikasnosti.
[0193] U jednom daljem poželjnom izvođenju, za element sintakse coeff_significant_flag, šema za modelovanje konteksta koja koristi lokalni šablon kako je opisano gore za konfiguraciju HE-PIPE može da se koristi za dodeljivanje kontekstnih modela binovima elementa sintakse. Međutim, za ove binove se ne koristi ažuriranje kontekstnog modela.
[0194] Dalje, selektor 402 može da bude konfigurisan tako da za simbole unapred određenog tipa simbola izabere jedan od nekog broja konteksta u zavisnosti od broja prethodno preuzetih simbola iz sekvence simbola i izvrši izbor među entropijskim dekoderima 322 u zavisnosti od modela verovatnoće pridruženog sa izabranim kontekstom, tako da je broj konteksta i/ili broj prethodno preuzetih simbola manji u režimu niske kompleksnosti u poređenju sa režimom visoke efikasnosti.
Inicijalizacija modela verovatnoće pomoću 8-bitnih vrednosti inicijalizacije
[0195] Ovaj odeljak opisuje proces inicijalizacije internog stanja modela verovatnoće sa skalabilnom kompleksnošću koji koristi takozvanu 8-bitnu vrednost inicijalizacije umesto dve 8-bitne vrednosti, kao što je to slučaj sa standardom iz stanja tehnike za kodiranje video zapisa H.265/AVC. Sastoji se od dva dela koji su uporedivi sa parovima vrednosti inicijalizacije koji se koriste za modele verovatnoće u CABAC iz H.264/AVC. Ova dva dela predstavljaju dva parametra linearne jednačine za izračunavanje početnog stanja modela verovatnoće, koji predstavljaju određenu verovatnoću (npr. u obliku PIPE indeksa) od QP: · Prvi deo opisuje nagib i on koristi zavisnost internog stanja u odnosu na parametar kvantizacije (QP) koji se koristi tokom kodiranja ili dekodiranja.
· Drugi deo definiše PIPE indeks za dati QP kao i valMps.
[0196] Dostupna su dva različita režima za inicijalizaciju modela verovatnoće kod kojih se koristi data vrednost inicijalizacije. Prvi režim se označava kao inicijalizacija nezavisna od QP. On koristi samo PIPE indeks i valMps definisane u drugom delu vrednosti inicijalizacije za sve QP-ove. Ovo je identično slučaju kada je nagib jednak 0. Drugi režim se označava kao inicijalizacija zavisnu od QP i dodatno koristi nagib prvog dela inicijalizacione vrednosti da promeni PIPE indeks i da definiše indeks prečišćavanja. Dva dela 8-bitne vrednosti inicijalizacije ilustrovana su na sledeći način:
[0197] Sastoji se od dva 4-bitna dela. Prvi deo sadrži indeks koji ukazuje na 1 od 16 različitih unapred definisanih nagiba koji su uskladišteni u nizu. Unapred definisani nagibi se sastoje od 7 negativnih nagiba (indeksi nagiba 0-6), jednog nagiba koji je jednak nuli (indeks nagiba 7) i 8 pozitivnih nagiba (indeksi nagiba 8-15). Nagibi su prikazani u Tabeli C.
Tabela C:
[0198] Sve vrednosti su skalirane faktorom 256 kako bi se izbeglo korišćenje operacija sa pokretnim zarezom (eng. floating point). Drugi deo je PIPE indeks koji oličava rastuću verovatnoću valMps = 1 između intervala verovatnoće p = 0 i p = 1. Drugim rečima, PIPE koder n mora da radi sa većom verovatnoćom modela od PIPE kodera n - 1. Za svaki model verovatnoće dostupan je jedan PIPE indeks verovatnoće i on identifikuje PIPE koder čiji interval verovatnoće sadrži verovatnoću pvalMps= 1 za QP = 26.
Tabela D: Preslikavanje drugog dela vrednosti inicijalizacije na PIPE kodere i valMps: UR = unarni na Rajs kod, TB = kod tri bina, BP = bin pipe kod, EP = jednaka verovatnoća
(nekodirano)
[0199] QP i 8-bitna vrednost inicijalizacije potrebni su za izračunavanje inicijalizacije internog stanja modela verovatnoće računanjem jednostavne linearne jednačine u obliku y = m ∗ (QP - QPref) 256 ∗ b. Napomena: m definiše nagib koji je preuzet iz Tabele C korišćenjem indeksa nagiba (prvi deo 8-bitne vrednosti inicijalizacije), a b označava PIPE koder na QPref = 26 (drugi deo 8-bitne vrednosti inicijalizacije: „PIPE Indeks verovatnoće“). Tada je valMPS jednak 1 i pipeIdx je jednak (y - 2048) >> 8 ako je y veće od 2047. U suprotnom, valMPS je 0, a pipeIdx je jednak (2047 - y) >> 8. Indeks prečišćavanja je jednak (((y-2048) & 255) ∗ numStates) >> 8 ako je valMPS jednak 1. U suprotnom, indeks prečišćavanja jednak je ((((2047-y) & 255) ∗ numStates) >> 8. U oba slučaja, numStates jednako je broju CABAC stanja od pipeIdx kako je prikazano u Tabeli B.
[0200] Gornja šema može da se koristi ne samo u kombinaciji sa PIPE koderima, već i u vezi sa CABAC šemama pomenutim gore. U odsustvu PIPE, broj CABAC stanja, tj. stanja verovatnoće između kojih se vrši tranzicija stanja u ažuriranju verovatnoće (pState_current[bin]), po PIPE Idx (tj. respektivni najznačajniji bitovi od pState_current[bin]) je tada samo skup parametara koji, u stvari, ostvaruje deo po deo linearnu interpolaciju stanja CABAC stanja u zavisnosti od QP. Pored toga, ova deo po deo linearna interpolacija takođe može praktično da se onemogući u slučaju da parametar numStates koristi istu vrednost za sve PIPE Idx. Na primer, postavljanje numStates na 8 za sve slučajeve daje ukupno 16 ∗ 8 stanja i izračunavanje indeksa prečišćavanja pojednostavljuje se na ((y-2048) & 255) >> 5 za valMPS jednako 1 ili ((2047-y) & 255) >> 5 za valMPS jednako 0. Za ovaj slučaj, preslikavanje predstave korišćenjem valMPS, PIPE idx i idx za prečišćavanje natrag na predstavu koju koristi originalni CABAC od H.264/AVC vrlo je jednostavno. Stanje CABAC je dato kao (PIDE Idx << 3) Idx prečišćavanja. Ovaj aspekt je dalje opisan u nastavku u vezi sa Sl. 16.
[0201] Osim ako nagib 8-bitne vrednosti inicijalizacije nije jednak nuli ili ako QP nije jednak 26, potrebno je izračunati interno stanje primenom linearne jednačine sa QP od procesa kodiranja ili dekodiranja. U slučaju da je nagib jednak nuli ili da je QP od trenutnog procesa kodiranja jednak 26, drugi deo 8-bitne vrednosti inicijalizacije može da se koristi direktno za inicijalizaciju internog stanja modela verovatnoće. U suprotnom, decimalni deo rezultujućeg internog stanja može dalje da se iskoristi za određivanje indeksa prečišćavanja u visoko efikasnim primenama za kodiranje linearnom interpolacijom između granica određenog PIPE kodera. U ovom poželjnom izvođenju, linearna interpolacija se vrši jednostavnim množenjem decimalnog dela sa ukupnim brojem indeksa prečišćavanja dostupnim za trenutni PIPE koder i preslikavanjem rezultata na najbliži indeks prečišćavanja celobrojnih vrednosti.
[0202] Proces inicijalizacije internog stanja modela verovatnoća mogao bi da se varira u odnosu na broj stanja PIPE indeksa verovatnoće. Konkretno, dvostruko pojavljivanje jednako verovatnog režima korišćenjem PIPE kodera E1, tj. upotreba dva različita PIPE indeksa za razlikovanje da li je MPS 1 ili 0, moglo bi da se izbegne na sledeći način. Opet, proces bi mogao da se prizove tokom početka raščlanjivanja podataka o isečku, a ulaz ovog procesa bi mogao da ima 8-bitnu vrednost inicijalizacije kao što je prikazano u Tabeli E, koja bi se, na primer, prenosila u nizu bitova za svaki kontekstni model za koji je potrebno da se inicijalizuje.
T l E P n i ini l z m l r n
[0203] Prva 4 bita definišu indeks nagiba i preuzimaju se maskiranjem bitova b4 - b7. Za svaki indeks nagiba, nagib (m) je naveden i prikazan u Tabeli F.
T l F r n i r m nl i m z l I x
[0204] Poslednja 4 bita 8-bitne vrednosti inicijalizacije, bitovi b0 - b3, identifikuju probIdx i opisuju verovatnoću pri unapred definisanom QP. probIdx jednak 0 označava najveću verovatnoću za simbole sa vrednošću 0 i respektivno probIdk 14 označava najveću verovatnoću za simbole sa vrednošću 1. Tabela G prikazuje za svaki probIdx odgovarajući pipeCoder i njegove valMps.
Tabela G Preslikavanje poslednja 4 bita dela vrednosti inicijalizacije na PIPE kodere i valMps: UR = unarni na Rajs kod, TB = kod tri bina, BP = bin pipe kod, EP = jednaka verovatnoća (nekodirano)
[0205] Sa obe vrednosti, proračun internog stanja može da se obavi korišćenjem linearne jednačine oblika y = m ∗ x 256 ∗ b, gde m označava nagib, x označava QP trenutnog isečka, a b je izvedeno iz probIdx kao što je prikazano u sledećem opisu. Sve vrednosti u ovom procesu su skalirane faktorom 256 kako bi se izbeglo korišćenje operacija sa pokretnim zarezom. Izlaz (y) ovog procesa predstavlja interno stanje modela verovatnoće pri trenutnom QP i čuva se u 8-bitnoj memoriji. Kao što je prikazano u G, interno stanje se sastoji od valMPs, pipeIdx i refineIdx.
T l H P n n r n n m l r n
[0206] Dodeljivanje refineIdx i pipeIdx slično je internom stanju CABAC modela verovatnoće (pStateCtx) i predstavljeno je u H.
T l I D l i n i I x r fin I x i x
[0207] U jednom poželjnom izvođenju probIdx je definisan pri QP 26. Na osnovu 8-bitne vrednosti inicijalizacije, interno stanje (valMps, pipeIdx i refineIdx) modela verovatnoće obrađuje se kako je opisano u sledećem pseudo-kodu:
[0208] Kao što je prikazano u pseudo kodu, refineIdx se izračunava linearnom interpolacijom između intervala pipeIdx i kvantizacijom rezultata do odgovarajućeg refineIdx. Odstupanje specificira ukupan broj refineIdx za svaki pipeIdx. Interval [7, 8) za fullCtxState/256 je podeljen na pola. Interval [7, 7.5) se preslikava u pipeIdx = 0 i valMps = 0, a interval [7.5, 8) se preslikava u pipeIdx = 0 i valMps = 1. Sl. 16 prikazuje proces izvođenja internog stanja i prikazuje preslikavanje fullCtxState/256 u pStateCtx.
[0209] Napominje se da nagib ukazuje na zavisnost probIdx i QP. Ako je slopeIdx 8-bitne vrednosti inicijalizacije jednak 7, rezultujuće interno stanje modela verovatnoće je isto za sve QP-ove isečka – otuda je proces inicijalizacije internog stanja nezavisan od trenutnog QP od isečka.
[0210] To jest, selektor 402 može da inicijalizuje pipe indekse koji će da se koriste za dekodiranje sledećeg dela toka podataka, kao što je ceo tok ili sledeći isečak, koristeći element sintakse koji označava veličinu koraka kvantizacije QP koji se koristi da bi se izvršila kvantizacija podataka ovog dela, kao što su nivoi koeficijenata transformacije sadržani u njemu, koristeći ovaj element sintakse kao indeks u tabeli koja može da bude zajednička za oba režima, LC i HE. Tabela, kao što je tabela D, može da sadrži pipe indekse za svaki tip simbola, za respektivni referentni Qpref, ili druge podatke za svaki tip simbola. U zavisnosti od stvarnog QP trenutnog dela, selektor bi mogao da izračuna vrednost pipe indeksa koristeći respektivni unos tabele indeksiran stvarnim QP i samim QP, na primer množenjem sa (QP-QPref). Jedina razlika između režima LC i HE: Selektor izračunava rezultat samo sa nižom tačnošću u slučaju LC u poređenju sa režimom HE. Selektor može, na primer, da koristi samo celobrojni deo rezultata izračunavanja. U režimu HE, ostatak veće tačnosti, kao što je decimalni deo, koristi se za izbor jednog od dostupnih indeksa prečišćavanja za respektivni pipe indeks, što je naznačeno delom niže tačnosti ili celobrojnim delom. Indeks prečišćavanja se koristi u režimu HE (i potencijalno nešto ređe i u režimu LC) da bi se izvršilo prilagođavanje verovatnoće, na primer korišćenjem hodanja po tabeli pomenutog gore. Kada se dostupni indeksi za trenutni pipe indeks ostave na gornjoj granici, tada se kao sledeći bira veći pipe indeks uz minimiziranje indeksa prečišćavanja. Kada se dostupni indeksi za trenutni pipe indeks ostave na donjoj granici, tada se kao sledeći bira manji pipe indeks sa maksimiziranjem indeksa prečišćavanja do maksimuma dostupnog za novi pipe indeks. Pipe indeks zajedno sa indeksom prečišćavanja definišu stanje verovatnoće, ali za izbor među parcijalnim tokovima, selektor koristi samo pipe indeks. Indeks prečišćavanja služi samo za bliže praćenje verovatnoće ili sa većom preciznošću.
[0211] Gornja diskusija je takođe pokazala, međutim, da skalabilnost kompleksnosti može da se postigne nezavisno od koncepta kodiranja PIPE sa Sl. 7-10 ili CABAC, korišćenjem dekodera kao što je prikazano na Sl. 12. Dekoder sa Sl. 12 služi za dekodiranje toka podataka 601 u koji su kodirani medijski podaci i sadrži prebacač 600 režima konfigurisan da aktivira režim niske kompleksnosti ili režim visoke efikasnosti u zavisnosti od toka 601 podataka, kao i desimbolizator 602 konfigurisan da desimbolizuje sekvencu 603 simbola dobijenih - bilo direktno ili entropijskim dekodiranjem, na primer - iz toka 601 podataka da bi se dobili elementi 604 sintakse sa celobrojnim vrednostima korišćenjem funkcije preslikavanja koja može da se kontroliše pomoću parametra za preslikavanje domena sekvence simbola reči u kodomen elemenata sintakse sa celobrojnim vrednostima. Rekonstruktor 605 je konfigurisan da rekonstruiše medijske podatke 606 na osnovu elemenata sintakse sa celobrojnim vrednostima. Desimbolizator 602 je konfigurisan da izvrši desimbolizaciju tako da kontrolni parametar varira u skladu sa tokom podataka pri prvoj brzini u slučaju da je aktiviran režim visoke efikasnosti i kontrolni parametar je konstantan bez obzira na tok podataka ili se menja u zavisnosti od toka podataka, ali pri drugoj brzini nižoj od prve u slučaju da je aktiviran režim niske kompleksnosti, kao što je ilustrovano strelicom 607. Na primer, kontrolni parametar može da varira u skladu sa prethodno desimbolizovanim simbolima.
[0212] U nekim od gore navedenih izvođenja korišćen je aspekt prikazan na Sl. 12. Elementi sintakse coeff_abs_minus3 i MVD unutar sekvence 327 su bili, na primer, binarizovani u desimbolizatoru 314 u zavisnosti od izabranog režima kao što je naznačeno sa 407, a rekonstruktor 605 je koristio ove elemente sintakse za rekonstrukciju. Očigledno je da oba aspekta sa Sl. 11 i 19 mogu lako da se kombinuju, ali aspekt sa Sl. 12 takođe može da se kombinuje i sa drugim okruženjima za kodiranje.
[0213] Videti, na primer, kodiranje razlike vektora kretanja navedeno gore. Desimbolizator 602 može da bude konfigurisan tako da funkcija preslikavanja koristi skraćeni unarni kod da izvrši preslikavanje u prvom intervalu domena elemenata sintakse sa celobrojnim vrednostima ispod vrednosti odsecanja i kombinacije prefiksa u obliku skraćenog unarnog koda za vrednost odsecanja i sufiks u obliku VLC kodne reči unutar drugog intervala domena elemenata sintakse sa celobrojnim vrednostima uključujući i iznad vrednosti odsecanja, pri čemu dekoder može da sadrži entropijski dekoder 608 konfigurisan da izvede neki broj prvih binova skraćenog unarnog koda iz toka podataka 601 korišćenjem entropijskog dekodiranja sa promenljivom estimacijom verovatnoće i neki broj drugih binova VLC kodne reči korišćenjem bajpas režima konstantne jednake verovatnoće. U režimu HE, entropijsko kodiranje može da bude kompleksnije nego u LC kodiranju kao što je ilustrovano strelicom 609. To jest, prilagodljivost konteksta i/ili prilagođavanje verovatnoće može da da bude primenjeno u režimu HE i potisnuto u režimu LC, ili kompleksnost može da se poveća na druge načine, kako je navedeno gore u odnosu na različita izvođenja.
[0214] Enkoder koji odgovara dekoderu sa Sl. 11, za kodiranje medijskih podataka u tok podataka prikazan je na Sl. 13. Može da sadrži insertor 500 konfigurisan da signalizira unutar toka 501 podataka aktivaciju režima niske kompleksnosti ili režima visoke efikasnosti, konstruktor 504 konfigurisan da unapred kodira medijske podatke 505 u sekvencu 506 elemenata sintakse, simbolizator 507 konfigurisan da simbolizuje sekvencu 506 elemenata sintakse u sekvencu 508 simbola, mnoštvo entropijskih enkodera 310 od kojih je svaki konfigurisan da pretvori parcijalnu sekvencu simbola u kodne reči toka podataka, i selektor 502 konfigurisan da prosledi svaki simbol sekvence 508 simbola izabranom jednom od mnoštva entropijskih enkodera 310, pri čemu je selektor 502 konfigurisan da izvrši izbor u zavisnosti od aktiviranog jednog od režima niske kompleksnosti i režima visoke efikasnosti, kao što je ilustrovano strelicom 511. Opciono može da se obezbedi interliver 510 za preplitanje kodnih reči enkodera 310.
[0215] Enkoder koji odgovara dekoderu sa Sl. 12, za kodiranje medijskih podataka u tok podataka prikazan je na Sl. 14 kao da sadrži insertor 700 konfigurisan da signalizira unutar toka 701 podataka aktivaciju režima niske kompleksnosti ili režima visoke efikasnosti, konstruktor 704 konfigurisan da unapred kodira medijske podatke 705 u sekvencu 706 elemenata sintakse koja sadrži element sintakse sa celobrojnom vrednošću, i simbolizator 707 konfigurisan da simbolizuje element sintakse sa celobrojnom vrednošću koristeći funkciju preslikavanja kojom može da se upravlja pomoću kontrolnog parametra, za preslikavanje domena elemenata sintakse sa celobrojnim vrednostima u kodomen sekvence simbola reči, pri čemu je simbolizator 707 konfigurisan da izvrši simbolizaciju tako da kontrolni parametar varira u skladu sa tokom podataka pri prvoj brzini u slučaju da je aktiviran režim visoke efikasnosti i kontrolni parametar je konstantan bez obzira na tok podataka ili se menja u zavisnosti od toka podataka, ali pri drugoj brzini nižoj od prve brzine u slučaju da je aktiviran režim niske kompleksnosti kao što je prikazano strelicom 708. Rezultat simbolizacije je kodiran u tok 701 podataka.
[0216] Opet, treba napomenuti da je izvođenje sa Sl. 14 lako prenosivo na izvođenje kontekstualno prilagodljivog binarno aritmetičkog kodiranja/dekodiranja: selektor 509 i entropijski enkoderi 310 bi se sabili u kontekstualno prilagodljivi binarni aritmetički enkoder koji bi kao izlaz direktno davao tok 401 podataka i izabrali kontekst za bin koji je trenutno potrebno da se izvede iz toka podataka. Ovo posebno važi za kontekstualnu prilagodljivost i/ili prilagodljivost verovatnoće. Obe funkcionalnosti/prilagodljivosti mogu da budu isključene ili dizajnirane labavije tokom režima niske kompleksnosti.
[0217] U gornjem tekstu je ukratko napomenuto da mogućnost prebacivanja režima rada, objašnjena u odnosu na neka od gore navedenih izvođenja, u skladu sa alternativnim izvođenjima može da se izostavi. Da bi se ovo pojasnilo, poziva se na Sl. 16, koja rezimira gornji opis utoliko što se izvođenje sa Sl. 16 razlikuje od gornjih izvođenja samo uklanjanjem mogućnosti prebacivanja režima. Štaviše, opis koji sledi će otkriti prednosti koje proističu iz inicijalizacije estimacija verovatnoće konteksta korišćenjem manje preciznih parametara za nagib i odstupanje u poređenju sa, na primer, H.264.
[0218] Konkretno, Sl. 16 prikazuje dekoder za dekodiranje video zapisa 405 iz toka 401 podataka u koji su kodirane horizontalne i vertikalne komponente razlika vektora kretanja korišćenjem binarnizacije horizontalnih i vertikalnih komponenti, gde su binarizacije jednake skraćenom unarnom kodu horizontalne i vertikalne komponente, respektivno, unutar prvog intervala domena horizontalnih i vertikalnih komponenti ispod vrednosti odsecanja, i kombinacije prefiksa u obliku skraćenog unarnog koda. Vrednost odsecanja i sufiks u obliku eksponencijalnog Golomb koda horizontalnih i vertikalnih komponenti, respektivno, u drugom intervalu domena horizontalnih i vertikalnih komponenti uključujući i iznad vrednosti odsecanja, pri čemu je vrednost odsecanja jednaka 2 i eksponencijalni Golomb je reda 1. Dekoder sadrži entropijski dekoder 409 konfigurisan da za horizontalne i vertikalne komponente razlika vektora kretanja izvede skraćeni unarni kod iz toka podataka korišćenjem kontekstualno prilagodljivog binarnog entropijskog dekodiranja sa tačno jednim kontekstom po položaju bina skraćenog unarnog koda, koji je zajednički za horizontalne i vertikalne komponente razlika vektora kretanja, i eksponencijalnog Golomb koda korišćenjem bajpas režima konstantne jednake verovatnoće za pribavljanje binarnizacija razlika vektora kretanja. Preciznije, kao što je gore opisano, entropijski dekoder 409 može da bude konfigurisan da izvede broj binova 326 od binarnizacija iz toka 401 podataka korišćenjem binarnog entropijskog dekodiranja, kao što je CABAC šema pomenuta gore, ili binarnog PIPE dekodiranja, tj. korišćenjem konstrukcije koja uključuje nekoliko entropijskih dekodera 322 koji rade u paraleli zajedno sa odgovarajućim selektorom/dodeljivačem. Desimbolizator 314 vrši debinarizaciju binarnizacija elemenata sintakse razlika vektora kretanja da bi pribavio celobrojnu vrednost horizontalnih i vertikalnih komponenti razlika vektora kretanja, a rekonstruktor 404 rekonstruiše video na osnovu celobrojnih vrednosti horizontalnih i vertikalnih komponenti razlika vektora kretanja.
[0219] Da bi se ovo detaljnije objasnilo, kratko se poziva na Sl. 18. 800 reprezentativno prikazuje jednu razliku vektora kretanja, tj. vektor koji predstavlja rezidual predviđanja između predviđenog vektora kretanja i stvarnog/rekonstruisanog vektora kretanja. Horizontalne i vertikalne komponente 802x i 802y su takođe ilustrovane. One mogu da se prenose u jedinicama položaja piksela, to jest nagiba (eng. pitch) piksela, ili pozicija ispod tačke (eng. pel), kao što je polovina nagiba piksela ili njegova četvrtina ili slično. Horizontalne i vertikalne komponente 802x,ysu celobrojne vrednosti. Njihov domen seže od nule do beskonačnosti. Vrednošću znaka može zasebno da se rukuje i ovde se dalje ne razmatra. Drugim rečima, opis iznet ovde fokusira se na veličinu razlika vektora kretanja 802x,y. Domen je ilustrovan na 804. Na desnoj strani ose 804 domena, Sl. 19 prikazuje, pridružene sa mogućim vrednostima komponente 802x,yvertikalno postavljene jednu na drugu, binarizacije na koje je respektivna moguća vrednost preslikana (binarizovana). Kao što može da se vidi, ispod vrednosti odsecanja koja iznosi 2, dolazi samo do skraćenog unarnog koda 806, dok binarizacija ima, kao sufiks, i eksponencijalni Golomb kod reda 808 od mogućih vrednosti jednakih ili većih od vrednosti odsecanja 2 kako bi se nastavila binarizacija za ostatak celobrojne vrednosti iznad vrednosti odsecanja minus 1. Za sve binove obezbeđena su samo dva konteksta: jedan za prvu poziciju bina od binarizacija horizontalnih i vertikalnih komponenti 802x,y, i jedan dalji za drugu poziciju bina skraćenog unarnog koda 806 od horizontalnih i vertikalnih komponenti 802x,y. Za poziciju bina eksponencijalnog Golomb koda 808, bajpas režim jednake verovatnoće se koristi od strane entropijskog dekodera 409. To jest, pretpostavlja se da se obe vrednosti bina pojavljuju jednako verovatno. Estimacija verovatnoće za ove binove je fiksna. U poređenju s tim, estimacija verovatnoće povezana sa ovde pomenuta dva konteksta binova skraćenog unarnog koda 806 se neprestano prilagođava tokom dekodiranja.
[0220] Pre nego što se detaljnije opiše na koji način bi entropijski dekoder 409, u skladu sa gornjim opisom, mogao da bude implementiran za izvršavanje ovde pomenutih zadataka, opis se sada fokusira na moguću implementaciju rekonstruktora 404 koji koristi razlike vektora kretanja 800 i njihove celobrojne vrednosti kakve su dobijene desimbolizatorom 314 putem ponovne binarizacije binova od kodova 106 i 108, gde je ponovna binarizacija ilustrovana na Sl. 18 korišćenjem strelice 810. Konkretno, rekonstruktor 404 može, kao što je gore opisano, da iz toka 401 podataka preuzme informacije koje se odnose na podelu trenutno rekonstruisane slike na blokove među kojima su barem neki podložni predviđanju sa kompenzacijom kretanja. Sl. 19 prikazuje sliku koja će reprezentativno da se rekonstruiše kod 820 i blokove ovde pomenutog pododeljka slike 120 za koji se predviđanje sa kompenzacijom kretanja koristi za predviđanje sadržaja slike u njemu kod 822. Kao što je opisano u odnosu na Sl. 2A-2C, postoje različite mogućnosti za podelu i veličine blokova 122. Da bi se izbegao prenos za razliku vektora kretanja 800 za svaki od ovih blokova 122, rekonstruktor 404 može da iskoristi koncept objedinjavanja prema kojem tok podataka dodatno prenosi informacije o objedinjavanju pored informacija o podeli, ili, u odsustvu informacija o podeli, pored činjenice da je podela fiksna. Informacija o objedinjavanju signalizira rekonstruktoru 404 koji od blokova 822 formiraju grupe objedinjavanja. Ovom merom je moguće da rekonstruktor 404 primeni određenu razliku vektora kretanja 800 na celu grupu objedinjavanja blokova 822. Naravno, na strani kodiranja, prenos informacija o objedinjavanju podleže kompromisu između overhead-a prenosa podele (ako postoji), overhead-a prenosa informacija o objedinjavanju i overhead-a prenosa vektora kretanja koji se smanjuje sa povećanjem veličine grupa za objedinjavanje. S druge strane, povećanje broja blokova po grupi objedinjavanja smanjuje prilagođavanje razlike vektora kretanja za ovu grupu objedinjavanja do stvarnih potreba pojedinačnih blokova respektivne grupe objedinjavanja, čime se dobijaju manje precizna predviđanja sa kompenzacijom kretanja za razlike vektora kretanja ovih blokova i što povlači veći overhead prenosa za prenos reziduala predviđanja u obliku, na primer, nivoa koeficijenta transformacije. Shodno tome, nađen je kompromis na strani kodiranja na odgovarajući način. U svakom slučaju, međutim, koncept objedinjavanja rezultira razlikama vektora kretanja za grupe objedinjavanja koje pokazuju manju prostornu interkorelaciju. Pogledati, na primer, Sl. 19 na kojoj je senčenjem prikazano članstvo određenoj grupi za objedinjavanje. Očigledno, stvarno kretanje sadržaja slike u ovim blokovima bilo je toliko slično da je strana za kodiranje odlučila da objedini respektivne blokove. Korelacija sa kretanjem sadržaja slike u drugim grupama objedinjavanja je, međutim, niska. Shodno tome, ograničenje upotrebe samo jednog konteksta po binu skraćenog unarnog koda 806 ne utiče negativno na efikasnost entropijskog kodiranja, jer se koncept objedinjavanja već dovoljno prilagođava za prostornu interkorelaciju između sadržaja kretanja susedne slike. Kontekst može da se izabere samo na osnovu činjenice da je bin deo binarizacije komponente razlike vektora kretanja 802x,yi pozicije bina koja je ili 1 ili 2 zbog toga što je vrednost odsecanja jednaka 2. Shodno tome, drugi već dekodirani binovi/elementi sintakse/mvd komponente 802x,yne utiču na izbor konteksta.
[0221] Isto tako, rekonstruktor 404 može da bude konfigurisan da dodatno smanji sadržaj informacija koji je potrebno da se prenese putem razlika vektora kretanja (izvan prostornog i/ili vremenskog predviđanja vektora kretanja) korišćenjem koncepta predviđanja sa više hipoteza prema kome se, prvo, generiše lista prediktora vektora kretanja za svaki blok ili grupu objedinjavanja, a zatim se eksplicitno ili implicitno u okviru toka podataka prenosi informacija o indeksu prediktora koji će se zapravo koristiti za predviđanje razlike vektora kretanja. Videti, na primer, neosenčeni blok 122 na Sl. 20. Rekonstruktor 404 može da pruži različite prediktore za vektor kretanja ovog bloka na primer predviđanjem vektora kretanja prostorno, kao što je sleva, odozgo, kombinacijom oba i tako dalje, i vremenskim predviđanjem vektora kretanja iz vektora kretanja kolociranog dela prethodno dekodirane slike video snimka i dalje kombinacije prethodno navedenih prediktora. Ove prediktore je rekonstruktor 404 sortirao na predvidljiv način koji može da se prognozira na strani kodiranja. Neke informacije se u tu svrhu prenose unutar toka podataka i koriste se od strane rekonstruktora. To jest, u toku podataka je sadržan neki nagoveštaj o tome koji prediktor sa ove uređene liste prediktora će se zapravo koristiti kao prediktor za vektor kretanja ovog bloka. Ovaj indeks može eksplicitno da se prenese unutar toka podataka za ovaj blok. Međutim, takođe je moguće i da se indeks prvo predvidi, a zatim se samo prenosi predviđanje toga. Postoje i druge mogućnosti. U svakom slučaju, upravo pomenuta šema predviđanja omogućava vrlo precizno predviđanje vektora kretanja trenutnog bloka i shodno tome, smanjuje se zahtev za sadržajem informacija nametnutog razlici vektora kretanja. Shodno tome, ograničenje kontekstualno prilagodljivog entropijskog kodiranja na samo dva bina skraćenog unarnog koda i smanjenje vrednosti odsecanja na 2 kao što je opisano u odnosu na Sl. 18, kao i izbor da eksponencijalni Golomb kod bude prvog reda, ne utiče negativno na efikasnost kodiranja jer razlike vektora kretanja pokazuju, zbog visoke efikasnosti predviđanja, histogram frekvencije prema kojem se veće vrednosti komponenti razlike vektora kretanja 802x,yređe posećuju. Čak se i izostavljanje bilo kakvog razlikovanja između horizontalnih i vertikalnih komponenti uklapa u efikasno predviđanje, jer predviđanje teži da funkcioniše podjednako dobro u oba pravca. Tačnost predviđanja je visoka.
[0222] Od suštinske je važnosti da se napomene da svi detalji u gornjem opisu, koji se odnose na Sl. 1-15, takođe mogu da se prenesu na entitete prikazane na Sl. 16, kao što su, na primer, što se tiče funkcionalnosti desimbolizatora 314, rekonstruktora 404 i entropijskog dekodera 409. Ipak, radi potpunosti, neki od ovih detalja su ponovo prikazani u tekstu koji sledi.
[0223] Za bolje razumevanje upravo opisane šeme predviđanja, videti Sl. 20. Kao što je ovde opisano, konstruktor 404 može da pribavi različite prediktore za trenutni blok 822 ili trenutnu grupu blokova za objedinjavanje, gde su ti prediktori prikazani pomoću vektora 824 sa punim linijama. Prediktori mogu da se pribave prostornim i/ili vremenskim predviđanjem pri čemu dodatno mogu da se koriste operacije aritmetičke sredine ili slično, tako da su pojedinačni prediktori mogli da budu pribavljeni od strane rekonstruktora 404 na način da su isti međusobno u korelaciji. Nezavisno od načina na koji su vektori 826 pribavljeni, rekonstruktor 404 sekvencijalizuje ili sortira ove prediktore 126 u uređenu listu. Ovo je ilustrovano brojevima 1 do 4 na Sl. 21. Poželjno je da je proces sortiranja jedinstveno odrediv kako bi koder i dekoder mogli da rade sinhrono. Zatim, ovde pomenuti indeks može da bude dobijen od strane rekonstruktora 404 za trenutni blok ili grupu objedinjavanja iz toka podataka, eksplicitno ili implicitno. Na primer, drugi prediktor „2“ je mogao da bude izabran i rekonstruktor 404 dodaje razliku vektora kretanja 800 ovom izabranom prediktoru 126, čime se dobija konačno rekonstruisan vektor kretanja 128 koji se onda koristi za predviđanje sadržaja trenutne grupe blokova/grupe objedinjavanja putem predviđanja sa kompenzacijom kretanja. U slučaju grupe objedinjavanja, bilo bi moguće da rekonstruktor 404 sadrži dalje razlike vektora kretanja obezbeđene za blokove grupe objedinjavanja, kako bi se dodatno prečistio vektor kretanja 128 u odnosu na pojedinačne blokove grupe objedinjavanja.
[0224] Prema tome, nastavljajući dalje sa opisom implementacija entiteta prikazanih na Sl. 16, može biti da je entropijski dekoder 409 konfigurisan da izvede skraćeni unarni kod 806 iz toka 401 podataka korišćenjem binarnog aritmetičkog dekodiranja ili binarnog PIPE kodiranja. Oba koncepta su opisana gore. Dalje, entropijski dekoder 409 može da bude konfigurisan da koristi različite kontekste za dve pozicije binova skraćenog unarnog koda 806 ili, alternativno, čak isti kontekst za oba bina. Entropijski dekoder 409 bi mogao da bude konfigurisan da izvrši ažuriranje stanja verovatnoće. Entropijski dekoder 409 bi mogao ovo da uradi tako što za bin koji je trenutno izveden iz skraćenog unarnog koda 806, koji prelazi iz trenutnog stanja verovatnoće pridruženog sa kontekstom izabranim za trenutno izvedeni bin, u novo stanje verovatnoće u zavisnosti od trenutno izvedenog bina. Videti gornje tabele Next_State_LPS i Next_State_MPS gde se pregled tabele u odnosu na koju vrši entropijski dekoder pored ostalih koraka 0 do 5 navedenih gore. U gornjoj diskusiji, trenutno stanje verovatnoće je pomenuto preko pState_current. Definiše se za respektivni kontekst od interesa. Entropijski dekoder 409 može da bude konfigurisan da binarno aritmetički dekodira bin koji se trenutno izvodi iz skraćenog unarnog koda 806 kvantizacijom trenutne vrednosti širine intervala verovatnoće, tj. R, koji predstavlja trenutni interval verovatnoće za dobijanje indeksa intervala verovatnoće, q_index, i koji vrši podelu intervala indeksirajući unos tabele među unosima tabele koristeći indeks intervala verovatnoće i indeks stanja verovatnoće, tj. p_state, koji zauzvrat zavisi od trenutnog stanja verovatnoće pridruženog sa kontekstom izabranim za bin koji trenutno treba da se izvede, da bi se dobila podela trenutnog intervala verovatnoće na dva parcijalna intervala. U gore prikazanim izvođenjima, ovi parcijalni intervali su pridruženi sa najverovatnijim i najmanje verovatnim simbolom. Kao što je opisano gore, entropijski dekoder 409 može da bude konfigurisan da koristi osmobitni prikaz za trenutnu vrednost širine intervala verovatnoće R sa preuzimanjem, na primer, dva ili tri, najznačajnija bita osmobitne reprezentacije i kvantizovanjem trenutne vrednost širine intervala verovatnoće. Entropijski dekoder 409 može dalje da se konfiguriše da bira između dva parcijalna intervala na osnovu vrednosti stanja ofseta iz unutrašnjosti trenutnog intervala verovatnoće, naime V, ažurira vrednost širine intervala verovatnoće R i vrednost stanja ofseta, i zaključi vrednost bina koji trenutno treba da se izvede, koristeći izabrani parcijalni interval i izvrši renormalizaciju ažurirane vrednosti širine intervala verovatnoće R i vrednosti stanja ofseta V, uključujući nastavak čitanja bitova iz toka 401 podataka. Entropijski dekoder 409 može, na primer, da bude konfigurisan za binarno aritmetičko dekodiranje bina iz eksponencijalnog Golomb koda prepolovljavanjem vrednosti širine trenutnog intervala verovatnoće da bi se dobila podela trenutnog intervala verovatnoće na dva parcijalna intervala. Prepolovljavanje odgovara estimaciji verovatnoće koja je fiksna i jednaka 0,5. Može da se implementira jednostavnim pomakom bita. Entropijski dekoder može dalje da bude konfigurisan tako da za svaku razliku vektora kretanja izvede skraćeni unarni kod horizontalnih i vertikalnih komponenti respektivne razlike vektora kretanja iz toka 401 podataka, pre eksponencijalnog Golomb koda horizontalnih i vertikalnih komponenti respektivne razlike vektora kretanja. Ovom merom, entropijski dekoder 409 može da iskoristi da veći broj binova zajedno formira niz binova za koje je estimacija verovatnoće fiksna, naime 0,5. Ovo može da ubrza proceduru entropijskog dekodiranja. S druge strane, entropijski dekoder 409 će možda preferirati da održi red među razlikama vektora kretanja tako što će prvo da izvede horizontalne i vertikalne komponente jedne razlike vektora kretanja, a tek onda će da produži sa izvođenjem horizontalne i vertikalne komponente sledeće razlike vektora kretanja. Ovom merom, memorijski zahtevi nametnuti dekodirajućem entitetu, tj. dekoderu sa Sl. 16, smanjuju se jer desimbolizator 314 može odmah da započne debinarizaciju razlika vektora kretanja bez čekanja na skeniranje daljih razlika vektora kretanja. Ovo je omogućeno izborom konteksta: pošto je samo jedan kontekst dostupan po poziciji bina koda 806, ne mora da se proverava prostorna međuveza.
[0225] Rekonstruktor 404 može, kako je gore opisano, prostorno i/ili vremenski da predvidi horizontalne i vertikalne komponente vektora kretanja tako da dobije prediktore 126 za horizontalne i vertikalne komponente vektora kretanja i rekonstruiše horizontalne i vertikalne komponente vektora kretanja prečišćavanjem prediktora 826 korišćenjem horizontalnih i vertikalnih komponenti razlika vektora kretanja, na primer jednostavnim dodavanjem razlike vektora kretanja odgovarajućem prediktoru.
[0226] Dalje, rekonstruktor 404 može da bude konfigurisan tako da predviđa horizontalne i vertikalne komponente vektora kretanja na različite načine, tako da dobije uređenu listu prediktora za horizontalnu i vertikalnu komponentu vektora kretanja, dobije indeks liste iz toka podataka i rekonstruiše horizontalne i vertikalne komponente vektora kretanja prečišćavanjem prediktora na koji pokazuje prediktor sa liste na koji pokazuje indeks liste koristeći horizontalne i vertikalne komponente razlika vektora kretanja.
[0227] Dalje, kao što je gore već opisano, rekonstruktor 404 može da bude konfigurisan da rekonstruiše video snimak korišćenjem predviđanja sa kompenzacijom kretanja primenom horizontalne i vertikalne komponente 802x,yod vektora kretanja pri prostornoj granularnosti definisanoj podelom slika video snimka na blokove, pri čemu rekonstruktor 404 može da koristi elemente sintakse koji se objedinjavaju, prisutne u toku 401 podataka tako da grupiše blokove u grupe objedinjavanja i primeni celobrojne vrednosti horizontalnih i vertikalnih komponenti 802x,yrazlika vektora kretanja dobijenih binarizatorom 314, u jedinicama grupa za objedinjavanje.
[0228] Rekonstruktor 404 može da izvede podelu slika video snimka na blokove iz dela toka 401 podataka koja isključuje objedinjavanje elemenata sintakse. Rekonstruktor 404 takođe može da prilagodi horizontalne i vertikalne komponente unapred određenog vektora kretanja za sve blokove od pridružene grupe objedinjavanja, ili da prečisti iste horizontalnim i vertikalnim komponentama razlika vektora kretanja pridruženih sa blokovima grupe objedinjavanja.
[0229] Samo radi potpunosti, Sl. 17 prikazuje enkoder koji odgovara dekoderu sa Sl. 16. Enkoder sa Sl. 17 sadrži konstruktor 504, simbolizator 507 i entropijski enkoder 513. Enkoder sadrži konstruktor 504 konfigurisan da prediktivno kodira video snimak 505 predviđanjem sa kompenzacijom kretanja koristeći vektore kretanja i prediktivnim kodiranjem vektora kretanja predviđanjem vektora kretanja i postavljanjem celobrojnih vrednosti 506 horizontalnih i vertikalnih komponenti razlika vektora kretanja da predstavljaju grešku predviđanja predviđenih vektora kretanja; simbolizator 507 konfigurisan da binarizuje celobrojne vrednosti radi dobijanja binarizacija 508 horizontalnih i vertikalnih komponenti razlika vektora kretanja, gde su binarizacije jednake skraćenom unarnom kodu horizontalnih i vertikalnih komponenti, respektivno, u prvom intervalu domena horizontalne i vertikalne komponente ispod vrednosti odsecanja i kombinacija prefiksa u obliku skraćenog unarnog koda za vrednost odsecanja i sufiksa u obliku Exp-Golomb koda horizontalnih i vertikalnih komponenti, respektivno, unutar drugog intervala domena horizontalnih i vertikalnih komponenti uključujući i iznad vrednosti odsecanja, pri čemu je granična vrednost jednaka dva, a Exp-Golomb kod je prvog reda; i entropijski enkoder 513 koji je konfigurisan da, za horizontalne i vertikalne komponente razlika vektora kretanja, kodira skraćeni unarni kod u tok podataka korišćenjem kontekstualno prilagodljivog binarnog entropijskog kodiranja sa tačno jednim kontekstom po poziciji bina skraćenog unarnog koda, koji je zajednički za horizontalne i vertikalne komponente razlika vektora kretanja, i Exp-Golomb koda korišćenjem bajpas režima konstantne jednake verovatnoće. Dalji mogući detalji implementacije su direktno prenosivi iz opisa u vezi sa dekoderom sa Sl. 16 na enkoder sa Sl. 17.
[0230] Iako su neki aspekti opisani u kontekstu uređaja, jasno je da ovi aspekti takođe predstavljaju opis odgovarajućeg postupka, gde blok ili uređaj odgovara koraku postupka ili karakteristikama koraka postupka. Analogno tome, aspekti opisani u kontekstu koraka postupka takođe predstavljaju opis odgovarajućeg bloka ili stavke ili karakteristike odgovarajućeg uređaja. Neki ili svi koraci postupka mogu biti izvršeni hardverskim uređajem (ili korišćenjem hardverskog uređaja), kao što je na primer, mikroprocesor, programabilni računar ili elektronsko kolo. U nekim izvođenjima, neki, jedan ili više najvažnijih koraka postupka mogu biti izvedeni pomoću takvog uređaja.
[0231] Inventivni kodirani signal može biti sačuvan na digitalnom medijumu za skladištenje ili se može preneti na medijum za prenos kao što je medijum za bežični prenos ili žičani prenosni medijum kao što je Internet.
[0232] U zavisnosti od određenih zahteva implementacije, izvođenja pronalaska mogu da se implementiraju u hardveru ili u softveru. Implementacija se može da se izvede korišćenjem digitalnog medijuma za skladištenje, na primer flopi diskete, DVD-a, Blue-Ray-a, CD-a, ROM-a, PROM-a, EPROM-a, EEPROM-a ili FLASH memorije, koje imaju elektronski čitljive kontrolne signale uskladištene na njima, koji sarađuju (ili su sposobni za saradnju) sa programabilnim računarskim sistemom tako da se izvodi respektivni postupak. Prema tome, digitalni medij za skladištenje može da bude čitljiv na računaru.
[0233] Neka izvođenja prema pronalasku sadrže nosač podataka koji ima elektronski čitljive kontrolne signale, koji su sposobni da sarađuju sa programabilnim računarskim sistemom, tako da se izvodi jedan od postupaka opisanih ovde.
[0234] Generalno, izvođenja ovog pronalaska mogu da se primene kao računarski programski proizvod sa programskim kodom, pri čemu je programski kod operativan za izvođenje jednog od postupaka kada se računarski programski proizvod izvršava na računaru. Programski kod može, na primer, da bude uskladišten na mašinski čitljivom nosaču.
[0235] Druga izvođenja sadrže računarski program za izvođenje jednog od ovde opisanih postupaka, uskladišten na mašinski čitljivom nosaču.
[0236] Drugim rečima, izvođenje inventivnog postupka je, prema tome, računarski program koji ima programski kod za izvođenje jednog od ovde opisanih postupaka, kada se računarski program izvršava na računaru.
[0237] Jedno dalje izvođenje inventivnog postupka je, prema tome, nosač podataka (ili digitalni medijum za skladištenje, ili računarski čitljiv medijum) koji sadrži, snimljen na sebi, računarski program za izvršavanje jednog od ovde opisanih postupaka. Nosač podataka, digitalni medijum za skladištenje ili snimljeni medijum su tipično čitljivi i/ili nepromenjivi.
[0238] Jedno dalje izvođenje inventivnog postupka je, prema tome, tok podataka ili sekvenca signala koji predstavljaju računarski program za izvršavanje jednog od ovde opisanih postupaka. Tok podataka ili sekvenca signala mogu, na primer, da budu konfigurisani da se prenose preko veze za prenos podataka, na primer preko Interneta.
[0239] Jedno dalje izvođenje sadrži sredstvo za obradu, na primer računar, ili programabilni logički uređaj, konfigurisano ili prilagođeno za izvršavanje jednog od ovde opisanih postupaka.
[0240] Jedno dalje izvođenje obuhvata računar na kome je instaliran računarski program za izvođenje jednog od ovde opisanih postupaka.
[0241] Jedno dalje izvođenje prema pronalasku sadrži uređaj ili sistem konfigurisan za prenos (na primer, elektronski ili optički) računarskog programa za izvođenje jednog od ovde opisanih postupaka na prijemnik. Prijemnik, na primer, može da bude računar, mobilni uređaj, memorijski uređaj ili slično. Uređaj ili sistem, na primer, mogu da sadrže fajl server za prenos računarskog programa na prijemnik.
[0242] U nekim izvođenjima, programabilni logički uređaj ( npr. polje programabilnog niza gejtova) može da se koristi za izvršavanje nekih ili svih funkcionalnosti postupaka opisanih ovde. U nekim izvođenjima, polje programabilnog niza gejtova može da sarađuje sa mikroprocesorom radi izvršavanja jednog od ovde opisanih postupaka. Generalno, postupci se poželjno izvršavaju bilo kojim hardverskim uređajem.
[0243] Izvođenja opisana gore su samo ilustrativna za principe predmetnog pronalaska. Podrazumeva se da će modifikacije i varijacije uređaja i detalji koji su ovde opisani biti očigledni drugima stručnjacima iz ove oblasti. Stoga je namera da jedino ograničenje prestavlja obim patentnih zahteva koji slede, a ne specifični detalji prikazani radi opisa i objašnjenja izvođenja pronalaska.

Claims (19)

PATENTNI ZAHTEVI
1. Dekoder za dekodiranje video snimka iz toka podataka pomoću blokovskog dekodiranja zasnovanog na prediktivnoj transformaciji, pri čemu je tok podataka kodiran u horizontalne i vertikalne komponente razlika vektora kretanja korišćenjem binarizacije horizontalnih i vertikalnih komponenti, gde su binarizacije jednake skraćenom unarnom kodu horizontalne i vertikalne komponente, respektivno, unutar prvog intervala domena horizontalnih i vertikalnih komponenti ispod vrednosti odsecanja, i kombinacije prefiksa u obliku skraćenog unarnog koda za vrednost odsecanja i sufiksa u obliku Exp-Golomb koda horizontalnih i vertikalnih komponenti, respektivno, unutar drugog intervala domena horizontalnih i vertikalnih komponenti inkluzivno i iznad vrednosti odsecanja, pri čemu je vrednost odsecanja dva i Exp-Golomb kod je prvog reda, koji sadrži
entropijski dekoder (409) konfigurisan da za horizontalne i vertikalne komponente razlika vektora kretanja izvede skraćeni unarni kod iz toka podatka korišćenjem kontekstualno prilagodljivog binarnog entropijskog dekodiranja sa tačno jednim kontekstom po poziciji bina skraćenog unarnog koda, koji je zajednički za horizontalne i vertikalne komponente razlika vektora kretanja, i Exp-Golomb koda korišćenjem bajpas režima konstantne jednake verovatnoće za dobijanje binarizacija razlika vektora kretanja,
desimbolizator (314) konfigurisan da debinarizuje binarizacije elemenata sintakse razlika vektora kretanja da bi pribavio celobrojne vrednosti horizontalne i vertikalne komponente razlika vektora kretanja;
rekonstruktor (404) konfigurisan da rekonstruiše video snimak na osnovu celobrojnih vrednosti horizontalnih i vertikalnih komponenti razlika vektora kretanja.
2. Dekoder prema zahtevu 1, pri čemu je entropijski dekoder (409) konfigurisan da izvede skraćeni unarni kod (806) iz toka (401) podataka korišćenjem binarnog aritmetičkog dekodiranja ili binarnog PIPE dekodiranja.
3. Dekoder prema zahtevu 1 ili 2, pri čemu je entropijski dekoder (409) konfigurisan da koristi različite kontekste za dve pozicije bina skraćenog unarnog koda 806.
4. Dekoder prema bilo kom od zahteva 1 do 3 pri čemu je entropijski dekoder (409) konfigurisan da izvrši ažuriranje stanja verovatnoće, za bin koji je trenutno izveden iz skraćenog unarnog koda (806), prelazeći iz trenutnog stanja verovatnoće pridruženog sa izabranim kontekstom za bin koji je trenutno izveden, u novo stanje verovatnoće u zavisnosti od trenutno izvedenog bina.
5. Dekoder prema bilo kom od zahteva 1 do 4, pri čemu je entropijski dekoder (409) konfigurisan da za svaku razliku vektora kretanja, izvede skraćeni unarni kod horizontalnih i vertikalnih komponenti respektivne razlike vektora kretanja iz toka podataka, pre Exp-Golomb koda horizontalnih i vertikalnih komponenti respektivne razlike vektora kretanja.
6. Dekoder prema bilo kom od zahteva 1 do 5, pri čemu je rekonstruktor konfigurisan da prostorno i/ili vremenski predviđa horizontalne i vertikalne komponente vektora kretanja tako da dobije prediktore za horizontalne i vertikalne komponente vektora kretanja i rekonstruiše horizontalne i vertikalne komponente vektora kretanja prečišćavanjem prediktora korišćenjem horizontalne i vertikalne komponente razlika vektora kretanja.
7. Dekoder prema bilo kom od zahteva 1 do 6, pri čemu je rekonstruktor konfigurisan da predviđa horizontalne i vertikalne komponente vektora kretanja na različite načine, tako da se dobije uređena lista prediktora za horizontalne i vertikalne komponente vektora kretanja, da pribavi indeks liste iz toka podataka i rekonstruiše horizontalne i vertikalne komponente vektora kretanja prečišćavanjem prediktora na koji se odnosi prediktor liste na koju pokazuje indeks liste koristeći horizontalne i vertikalne komponente razlika vektora kretanja.
8. Dekoder prema zahtevu 7, pri čemu je rekonstruktor konfigurisan da rekonstruiše video snimak korišćenjem predviđanja zasnovanog na kompenzovanom kretanju korišćenjem horizontalnih i vertikalnih komponenti vektora kretanja.
9. Dekoder prema zahtevu 8, pri čemu je rekonstruktor konfigurisan da rekonstruiše video snimak korišćenjem predviđanja zasnovanog na kompenzovanom kretanju primenom horizontalnih i vertikalnih komponenti vektora kretanja sa prostornom granularnošću definisanom pod-podelom slika video snimka u blokove, pri čemu rekonstruktor koristi elemente sintakse spajanja prisutne u toku podataka tako da grupiše blokove u spojene grupe i primeni celobrojne vrednosti horizontalnih i vertikalnih komponenti razlika vektora kretanja dobijenih od strane debinarizatora, u jedinicama spojenih grupa.
10. Dekoder prema zahtevu 9, pri čemu je rekonstruktor konfigurisan da izvede pod-podelu slika video snimaka u blokove iz dela toka podataka isključujući elemente sintakse za spajanje.
11. Dekoder prema zahtevu 9 ili 10, pri čemu je rekonstruktor konfigurisan da usvoji horizontalne i vertikalne komponente unapred određenog vektora kretanja za sve blokove pridružene spojene grupe, ili ih precizira pomoću horizontalnih i vertikalnih komponenti razlika vektora kretanja povezanih sa blokovima spojenih grupa.
12. Dekoder prema bilo kom od zahteva 1 do 11, pri čemu tok podataka ima u sebi kodiranu mapu dubine.
13. Enkoder za kodiranje video snimka u tok podataka pomoću blokovskog kodiranja zasnovanog na prediktivnoj transformaciji, koji sadrži
konstruktor (504) konfigurisan da prediktivno kodira video snimak predviđanjem sa kompenzacijom kretanja korišćenjem vektora kretanja i prediktivno, kodirajući vektore kretanja predviđanjem vektora kretanja i postavljanjem celobrojnih vrednosti horizontalnih i vertikalnih komponenti razlika vektora kretanja da predstavljaju grešku predviđanja predviđenih vektora kretanja;
simbolizator (507) konfigurisan da binarizuje celobrojne vrednosti da bi pribavio binarizacije horizontalnih i vertikalnih komponenti razlika vektora kretanja, gde su binarizacije jednake skraćenom unarnom kodu horizontalne i vertikalne komponente, respektivno, unutar prvog intervala domena od horizontalne i vertikalne komponente ispod vrednosti odsecanja, i kombinacije prefiksa u obliku skraćenog unarnog koda za vrednost odsecanja i sufiksa u obliku Exp-Golomb koda horizontalnih i vertikalnih komponenti, respektivno, unutar drugog intervala domena horizontalnih i vertikalnih komponenti uključujući i iznad vrednosti odsecanja, pri čemu je granična vrednost jednaka dva i Exp-Golomb kod je prvog reda; i
entropijski enkoder (513) konfigurisan da, za horizontalne i vertikalne komponente razlika vektora kretanja, kodira skraćeni unarni kod u tok podataka korišćenjem kontekstualno prilagodljivog binarnog entropijskog kodiranja sa tačno jednim kontekstom po poziciji bina skraćenog unarnog koda, koji je zajednički za horizontalne i vertikalne komponente razlika vektora kretanja, i Exp-Golomb koda korišćenjem bajpas režima konstantne jednake verovatnoće.
14. Enkoder prema zahtevu 13, pri čemu tok podataka ima u sebi kodiranu mapu dubine.
15. Postupak za dekodiranje video snimka iz toka podataka pomoću blokovnog dekodiranja zasnovanog na prediktivnoj transformaciji, pri čemu je tok podataka kodiran u horizontalne i vertikalne komponente razlika vektora kretanja koristeći binarizacije horizontalnih i vertikalnih komponenata, gde su binarizacije jednake skraćenom unarnom kodu horizontalne i vertikalne komponente, respektivno, unutar prvog intervala domena horizontalnih i vertikalnih komponenti ispod vrednosti odsecanja, i kombinacije prefiksa u obliku skraćenog unarnog koda za vrednost odsecanja i sufiksa u obliku Exp-Golomb koda horizontalnih i vertikalnih komponenti, respektivno, unutar drugog intervala domena horizontalnih i vertikalnih komponenti uključujući i iznad vrednosti odsecanja, pri čemu je granična vrednost jednaka dva i Exp-Golomb kod je prvog reda, koji sadrži
za horizontalne i vertikalne komponente razlika vektora kretanja, izvođenje skraćenog unarnog koda iz toka podataka korišćenjem kontekstualno prilagodljivog binarno entropijskog dekodiranja sa tačno jednim kontekstom po binu za poziciju skraćenog unarnog koda, koji je zajednički za horizontalne i vertikalne komponente razlika vektora kretanja, i Ekp-Golomb koda korišćenjem bajpas režima konstantne jednake verovatnoće za dobijanje binarizacije razlika vektora kretanja; debinarizaciju binarizacija elemenata sintakse razlika vektora kretanja radi dobijanja celobrojnih vrednosti horizontalnih i vertikalnih komponenti razlika vektora kretanja; rekonstrukciju video snimka na osnovu celobrojnih vrednosti horizontalnih i vertikalnih komponenti razlika vektora kretanja.
16. Postupak za kodiranje video snimka u tok podataka, pomoću blokovskog kodiranja zasnovanog na prediktivnoj transformaciji, koji sadrži
prediktivno kodiranje video snimka predviđanjem sa kompenzacijom kretanja pomoću vektora kretanja i prediktivnog kodiranja vektora kretanja predviđanjem vektora kretanja i postavljanjem celobrojnih vrednosti horizontalnih i vertikalnih komponenti razlika vektora kretanja da predstavljaju grešku predviđanja predviđenih vektora kretanja;
binarizovanje celobrojnih vrednosti da bi se pribavile binarizacije horizontalnih i vertikalnih komponenti razlika vektora kretanja, gde su binarizacije jednake skraćenom unarnom kodu horizontalnih i vertikalnih komponenti, respektivno, unutar prvog intervala domena horizontalnih i vertikalnih komponenti ispod vrednosti odsecanja i kombinacije prefiksa u obliku skraćenog unarnog koda za vrednost odsecanja i sufiksa u obliku Exp-Golomb koda horizontalnih i vertikalnih komponenti, respektivno, unutar drugog intervala domena horizontalnih i vertikalnih komponenti uključujući i iznad vrednosti odsecanja, gde je vrednost odsecanja jednaka dva, a kod Exp-Golomb je prvog reda; i
za horizontalne i vertikalne komponente razlika vektora kretanja, kodiranje skraćenog unarnog koda u tok podataka korišćenjem kontekstualno prilagodljivog binarnog entropijskog kodiranja sa tačno jednim kontekstom po poziciji bina skraćenog unarnog koda, koji je zajednički za horizontalne i vertikalne komponente razlika vektora kretanja, i Exp-Golomb koda korišćenjem bajpas režima konstantne jednake verovatnoće.
17. Tok podataka kodiran korišćenjem postupka za kodiranje video snimka u tok podataka pomoću prediktivnog kodiranja zasnovanog na transformaciji, koji postupak sadrži
prediktivno kodiranje video snimka predviđanjem zasnovanim na kompenzovanom kretanju korišćenjem vektora kretanja i prediktivno kodiranje vektora kretanja predviđanjem vektora kretanja i postavljanjem celobrojnih vrednosti horizontalnih i vertikalnih komponenti razlika vektora kretanja da bi se predstavila greška predviđanja predviđenih vektora kretanja;
binarizaciju celobrojnih vrednosti da bi se dobile binarizacije horizontalnih i vertikalnih komponenti razlika vektora kretanja, pri čemu su binarizacije jednake skraćenom unarnom kodu horizontalne i vertikalne komponente, respektivno, unutar prvog intervala domena horizontalne i vertikalne komponente ispod vrednosti odsecanja, i kombinacije prefiksa u obliku skraćenog unarnog koda za vrednost odsecanja i sufiksa u obliku Exp-Golomb koda horizontalne i vertikalne komponente, respektivno, unutar drugog intervala domena horizontalne i vertikalne komponente inkluzivno i iznad vrednosti odsecanja, pri čemu je granična vrednost dva i Exp-Golomb kod ima red jedan;
i za horizontalne i vertikalne komponente razlika vektora kretanja, kodiranje skraćenog unarnog koda u tok podataka korišćenjem konteksno-adaptivnog binarnog entropijskog kodiranja sa tačno jednim kontekstom po poziciji bina skraćenog unarnog koda, koji je zajednički za horizontalne i vertikalne komponente razlika vektora kretanja, i Exp-Golomb koda korišćenjem bajpas režima konstantne jednake verovatnoće.
18. Tok podataka prema zahtevu 17, pri čemu tok podataka ima u sebi kodiranu mapu dubine.
19. Računarski program koji ima programski kod za izvršavanje, pri izvršavanju na računaru, postupka prema bilo kom od zahteva 15 do 16.
RS20230766A 2011-06-16 2012-06-18 Entropijsko kodiranje razlika vektora kretanja RS64604B1 (sr)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201161497794P 2011-06-16 2011-06-16
US201161508506P 2011-07-15 2011-07-15
EP21189232.8A EP3930330B1 (en) 2011-06-16 2012-06-18 Entropy coding of motion vector differences

Publications (1)

Publication Number Publication Date
RS64604B1 true RS64604B1 (sr) 2023-10-31

Family

ID=46319135

Family Applications (4)

Application Number Title Priority Date Filing Date
RS20231075A RS64867B1 (sr) 2011-06-16 2012-06-18 Entropijsko kodiranje koje podržava prekidački režim
RS20230766A RS64604B1 (sr) 2011-06-16 2012-06-18 Entropijsko kodiranje razlika vektora kretanja
RS20220220A RS63053B1 (sr) 2011-06-16 2012-06-18 Inicijalizacija konteksta u entropijskom kodiranju
RS20211362A RS62714B1 (sr) 2011-06-16 2012-06-18 Entropijsko kodiranje razlika vektora kretanja

Family Applications Before (1)

Application Number Title Priority Date Filing Date
RS20231075A RS64867B1 (sr) 2011-06-16 2012-06-18 Entropijsko kodiranje koje podržava prekidački režim

Family Applications After (2)

Application Number Title Priority Date Filing Date
RS20220220A RS63053B1 (sr) 2011-06-16 2012-06-18 Inicijalizacija konteksta u entropijskom kodiranju
RS20211362A RS62714B1 (sr) 2011-06-16 2012-06-18 Entropijsko kodiranje razlika vektora kretanja

Country Status (31)

Country Link
US (39) US9918090B2 (sr)
EP (11) EP2721819B1 (sr)
JP (16) JP5952900B2 (sr)
KR (13) KR101818978B1 (sr)
CN (26) CN107347161B (sr)
AP (3) AP2016009618A0 (sr)
AU (12) AU2012268951B2 (sr)
BR (4) BR112013032333B1 (sr)
CA (2) CA2839569C (sr)
CL (2) CL2013003601A1 (sr)
CO (2) CO6852031A2 (sr)
CY (1) CY1124687T1 (sr)
DK (5) DK3343781T3 (sr)
ES (5) ES2961663T3 (sr)
FI (2) FI2721819T3 (sr)
HK (3) HK1248434B (sr)
HR (1) HRP20220272T1 (sr)
HU (5) HUE042350T2 (sr)
IL (18) IL305221B2 (sr)
LT (4) LT2721819T (sr)
MX (7) MX336735B (sr)
MY (3) MY184473A (sr)
PH (17) PH12013502633A1 (sr)
PL (5) PL2721822T3 (sr)
PT (5) PT3471415T (sr)
RS (4) RS64867B1 (sr)
RU (7) RU2658883C1 (sr)
SI (4) SI2721819T1 (sr)
UA (2) UA123987C2 (sr)
WO (3) WO2012172115A1 (sr)
ZA (2) ZA201400029B (sr)

Families Citing this family (256)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI662797B (zh) 2010-04-13 2019-06-11 Ge影像壓縮有限公司 在樣本陣列多元樹細分中之繼承技術
KR102166519B1 (ko) 2010-04-13 2020-10-16 지이 비디오 컴프레션, 엘엘씨 샘플 영역 병합
CN106067985B (zh) 2010-04-13 2019-06-28 Ge视频压缩有限责任公司 跨平面预测
ES3053791T3 (en) 2010-04-13 2026-01-26 Ge Video Compression Llc Video coding using multi-tree sub-divisions of images
US9288089B2 (en) 2010-04-30 2016-03-15 Ecole Polytechnique Federale De Lausanne (Epfl) Orthogonal differential vector signaling
US8593305B1 (en) 2011-07-05 2013-11-26 Kandou Labs, S.A. Efficient processing and detection of balanced codes
US9251873B1 (en) 2010-05-20 2016-02-02 Kandou Labs, S.A. Methods and systems for pin-efficient memory controller interface using vector signaling codes for chip-to-chip communications
US9246713B2 (en) 2010-05-20 2016-01-26 Kandou Labs, S.A. Vector signaling with reduced receiver complexity
US9288082B1 (en) 2010-05-20 2016-03-15 Kandou Labs, S.A. Circuits for efficient detection of vector signaling codes for chip-to-chip communication using sums of differences
US9077386B1 (en) 2010-05-20 2015-07-07 Kandou Labs, S.A. Methods and systems for selection of unions of vector signaling codes for power and pin efficient chip-to-chip communication
US9985634B2 (en) 2010-05-20 2018-05-29 Kandou Labs, S.A. Data-driven voltage regulator
WO2011151469A1 (en) 2010-06-04 2011-12-08 Ecole Polytechnique Federale De Lausanne Error control coding for orthogonal differential vector signaling
US20120182388A1 (en) * 2011-01-18 2012-07-19 Samsung Electronics Co., Ltd. Apparatus and method for processing depth image
AU2012268951B2 (en) 2011-06-16 2015-07-30 Dolby Video Compression, Llc Context initialization in entropy coding
ES2985582T3 (es) 2011-06-24 2024-11-06 Sun Patent Trust Dispositivo de decodificación de imágenes
PL3306939T3 (pl) * 2011-06-28 2020-11-02 Samsung Electronics Co., Ltd. Sposób i urządzenie do kodowania wideo, odpowiedni sposób do dekodowania wideo, wideo z towarzyszącym dekodowaniem arytmetycznym oraz sygnalizowanie dwuwymiarowego ostatniego znaczącego współczynnika
US11647197B2 (en) * 2011-06-30 2023-05-09 Velos Media, Llc Context initialization based on slice header flag and slice type
UA114674C2 (uk) 2011-07-15 2017-07-10 ДЖ.І. ВІДІЕУ КЕМПРЕШН, ЛЛСі Ініціалізація контексту в ентропійному кодуванні
ES2983979T3 (es) 2011-07-15 2024-10-28 Ge Video Compression Llc Codificación de matrices de muestras para bajo retardo
EP2988511A1 (en) 2011-08-04 2016-02-24 MediaTek Inc. Method and apparatus for reordered binarization of syntax elements in cabac
EP2740263B1 (en) * 2011-09-16 2019-02-27 HFI Innovation Inc. Method and apparatus for prediction mode and partition mode syntax coding for coding units in hevc
WO2013050612A1 (en) * 2011-10-06 2013-04-11 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Entropy coding buffer arrangement
US20130101047A1 (en) * 2011-10-19 2013-04-25 Sony Corporation Context reduction of significance map coding of 4x4 and 8x8 transform coefficient in hm4.0
US9871537B2 (en) * 2011-10-27 2018-01-16 Qualcomm Incorporated Mapping states in binary arithmetic coder for video coding
US9484952B2 (en) 2011-11-03 2016-11-01 Qualcomm Incorporated Context state and probability initialization for context adaptive entropy coding
CN103907349B (zh) * 2011-11-04 2018-08-28 夏普株式会社 算术解码装置、图像解码装置、算术编码装置以及算术解码方法
KR20130050403A (ko) * 2011-11-07 2013-05-16 오수미 인터 모드에서의 복원 블록 생성 방법
WO2013068562A1 (en) 2011-11-11 2013-05-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Effective wedgelet partition coding
US9503717B2 (en) 2012-01-09 2016-11-22 Texas Instruments Incorporated Context adaptive binary arithmetic coding (CABAC) with scalable throughput and coding efficiency
WO2013106987A1 (en) * 2012-01-16 2013-07-25 Mediatek Singapore Pte. Ltd. Methods and apparatuses of bypass coding and reducing contexts for some syntax elements
US20130188698A1 (en) * 2012-01-19 2013-07-25 Qualcomm Incorporated Coefficient level coding
US9866829B2 (en) * 2012-01-22 2018-01-09 Qualcomm Incorporated Coding of syntax elements that correspond to coefficients of a coefficient block in video coding
US11039138B1 (en) 2012-03-08 2021-06-15 Google Llc Adaptive coding of prediction modes using probability distributions
JP6156723B2 (ja) * 2012-03-08 2017-07-05 サン パテント トラスト 画像符号化方法、画像復号化方法、画像符号化装置および画像復号化装置
US9237344B2 (en) * 2012-03-22 2016-01-12 Qualcomm Incorporated Deriving context for last position coding for video coding
US9584802B2 (en) 2012-04-13 2017-02-28 Texas Instruments Incorporated Reducing context coded and bypass coded bins to improve context adaptive binary arithmetic coding (CABAC) throughput
US9124872B2 (en) 2012-04-16 2015-09-01 Qualcomm Incorporated Coefficient groups and coefficient coding for coefficient scans
AU2013264361B2 (en) 2012-05-25 2017-01-05 Sun Patent Trust Image encoding method, image encoding device, image decoding method, image decoding device, and image encoding/decoding device
PL2858354T3 (pl) 2012-05-25 2023-05-02 Sun Patent Trust Sposób kodowania obrazów wideo, sposób dekodowania obrazów wideo, urządzenie do kodowania obrazów wideo, urządzenie do dekodowania obrazów wideo oraz urządzenie do kodowania-dekodowania obrazów wideo
WO2013175736A1 (ja) * 2012-05-25 2013-11-28 パナソニック株式会社 動画像符号化方法、動画像符号化装置、動画像復号方法、動画像復号装置、および、動画像符号化復号装置
AU2013273044B2 (en) 2012-06-04 2016-09-15 Sun Patent Trust Video image encoding method, video image encoding device, video image decoding method, and video image decoding device
DE102012224060A1 (de) * 2012-12-20 2014-06-26 Robert Bosch Gmbh Verfahren zur Datenübertragung für ein Batteriemanagementsystem
WO2014113727A1 (en) 2013-01-17 2014-07-24 Kandou Labs, S.A. Methods and systems for chip-to-chip communication with reduced simultaneous switching noise
CN105122758B (zh) 2013-02-11 2018-07-10 康杜实验室公司 高带宽芯片间通信接口方法和系统
CN104053007B (zh) * 2013-03-15 2019-05-07 乐金电子(中国)研究开发中心有限公司 深度图像帧内编码模式索引值配置方法及装置
GB2513111A (en) 2013-04-08 2014-10-22 Sony Corp Data encoding and decoding
KR102241045B1 (ko) 2013-04-16 2021-04-19 칸도우 랩스 에스에이 고 대역폭 통신 인터페이스를 위한 방법 및 시스템
EP3014870A4 (en) 2013-06-25 2016-12-28 Numeri Ltd INCREASE IN SPATIO-TEMPORAL RESOLUTION AT MULTIPLE LEVELS OF VIDEO
WO2014210074A1 (en) 2013-06-25 2014-12-31 Kandou Labs SA Vector signaling with reduced receiver complexity
US10021419B2 (en) * 2013-07-12 2018-07-10 Qualcomm Incorported Rice parameter initialization for coefficient level coding in video coding process
US20150098504A1 (en) * 2013-10-09 2015-04-09 Qualcomm Incorporated Block vector coding for intra block copying
EP3084968A4 (en) * 2013-12-16 2017-11-29 McAfee, LLC Process efficient preprocessing for an encryption standard
GB2521828A (en) 2013-12-23 2015-07-08 Sony Corp Data encoding and decoding
WO2015100522A1 (en) * 2013-12-30 2015-07-09 Mediatek Singapore Pte. Ltd. Methods for inter-component residual prediction
US9806761B1 (en) 2014-01-31 2017-10-31 Kandou Labs, S.A. Methods and systems for reduction of nearest-neighbor crosstalk
CN110266615B (zh) 2014-02-02 2022-04-29 康杜实验室公司 低isi比低功率芯片间通信方法和装置
US9787799B2 (en) 2014-02-27 2017-10-10 Dropbox, Inc. Systems and methods for managing content items having multiple resolutions
US10885104B2 (en) 2014-02-27 2021-01-05 Dropbox, Inc. Systems and methods for selecting content items to store and present locally on a user device
WO2015131203A1 (en) 2014-02-28 2015-09-03 Kandou Lab, S.A. Clock-embedded vector signaling codes
US9509437B2 (en) 2014-05-13 2016-11-29 Kandou Labs, S.A. Vector signaling code with improved noise margin
US20150334425A1 (en) * 2014-05-14 2015-11-19 Blackberry Limited Adaptive context initialization
US9148087B1 (en) 2014-05-16 2015-09-29 Kandou Labs, S.A. Symmetric is linear equalization circuit with increased gain
US10848786B2 (en) 2014-05-28 2020-11-24 Arris Enterprises Llc Acceleration of context adaptive binary arithmetic coding (CABAC) in video CODECS
US9337862B2 (en) * 2014-06-09 2016-05-10 Tidal Systems, Inc. VLSI efficient Huffman encoding apparatus and method
US9852806B2 (en) 2014-06-20 2017-12-26 Kandou Labs, S.A. System for generating a test pattern to detect and isolate stuck faults for an interface using transition coding
US9930341B2 (en) * 2014-06-20 2018-03-27 Qualcomm Incorporated Block vector coding for intra block copying
US9112550B1 (en) 2014-06-25 2015-08-18 Kandou Labs, SA Multilevel driver for high speed chip-to-chip communications
US9854253B2 (en) * 2014-06-30 2017-12-26 Qualcomm Incorporated Method for motion vector difference (MVD) and intra block copy vector difference (BVD) coding of screen content video data
CN106797352B (zh) 2014-07-10 2020-04-07 康杜实验室公司 高信噪特性向量信令码
US9432082B2 (en) 2014-07-17 2016-08-30 Kandou Labs, S.A. Bus reversable orthogonal differential vector signaling codes
EP3152879B1 (en) 2014-07-21 2019-09-04 Kandou Labs S.A. Multidrop data transfer
KR101949964B1 (ko) 2014-08-01 2019-02-20 칸도우 랩스 에스에이 임베딩된 클록을 갖는 직교 차동 벡터 시그널링 코드
US10283091B2 (en) * 2014-10-13 2019-05-07 Microsoft Technology Licensing, Llc Buffer optimization
CN105578180B (zh) * 2014-10-16 2019-01-15 联想(北京)有限公司 一种编码方法及装置
US9674014B2 (en) 2014-10-22 2017-06-06 Kandou Labs, S.A. Method and apparatus for high speed chip-to-chip communications
CN104392725A (zh) * 2014-12-02 2015-03-04 中科开元信息技术(北京)有限公司 多声道无损音频混合编解码方法及装置
US10097833B2 (en) * 2014-12-26 2018-10-09 Intel Corporation Method and system of entropy coding using look-up table based probability updating for video coding
US9942551B2 (en) * 2015-01-30 2018-04-10 Qualcomm Incorporated Palette index grouping for video coding
CN107211136B (zh) * 2015-01-30 2019-10-29 联发科技股份有限公司 具有大字母表的源样本的熵编码与熵解码的方法
EP3254465B1 (en) * 2015-02-05 2024-11-06 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Multi-view video codec supporting residual prediction
US9930378B2 (en) * 2015-02-11 2018-03-27 Qualcomm Incorporated Signaling of operation points for carriage of HEVC extensions
US11330284B2 (en) 2015-03-27 2022-05-10 Qualcomm Incorporated Deriving motion information for sub-blocks in video coding
CN112235575B (zh) 2015-04-08 2024-01-12 寰发股份有限公司 编码方法、编码装置和相应地计算机可读存储介质
CN107810632B (zh) * 2015-05-06 2020-06-23 Ng编译码器股份有限公司 具有降低代价的块分割和细化的帧内模式选择的帧内预测处理器
US10225555B2 (en) * 2015-05-19 2019-03-05 Mediatek Inc. Method and apparatus for multi-table based context adaptive binary arithmetic coding
EP3700154B1 (en) 2015-06-26 2024-10-02 Kandou Labs, S.A. High speed communications system
KR20250064689A (ko) * 2015-08-24 2025-05-09 엘지전자 주식회사 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2017041271A1 (en) * 2015-09-10 2017-03-16 Mediatek Singapore Pte. Ltd. Efficient context modeling for coding a block of data
CN114567785B (zh) * 2015-09-11 2024-12-24 株式会社Kt 图像解码方法、图像编码方法和包括比特流的设备
US10158874B2 (en) * 2015-09-30 2018-12-18 Apple Inc. Parallel bypass and regular bin coding
US10198355B2 (en) 2015-10-29 2019-02-05 Dropbox, Inc. Proving a dynamic digital content cache
US10440399B2 (en) * 2015-11-13 2019-10-08 Qualcomm Incorporated Coding sign information of video data
US10055372B2 (en) 2015-11-25 2018-08-21 Kandou Labs, S.A. Orthogonal differential vector signaling codes with embedded clock
US10003315B2 (en) 2016-01-25 2018-06-19 Kandou Labs S.A. Voltage sampler driver with enhanced high-frequency gain
FR3047379A1 (fr) * 2016-01-29 2017-08-04 Orange Procede de codage et decodage de donnees, dispositif de codage et decodage de donnees et programmes d'ordinateur correspondants
US10791097B2 (en) 2016-04-14 2020-09-29 Sophos Limited Portable encryption format
US10573324B2 (en) 2016-02-24 2020-02-25 Dolby International Ab Method and system for bit reservoir control in case of varying metadata
US10003454B2 (en) 2016-04-22 2018-06-19 Kandou Labs, S.A. Sampler with low input kickback
EP3446403B1 (en) 2016-04-22 2021-01-06 Kandou Labs S.A. High performance phase locked loop
US10153591B2 (en) 2016-04-28 2018-12-11 Kandou Labs, S.A. Skew-resistant multi-wire channel
CN109313622B (zh) 2016-04-28 2022-04-15 康杜实验室公司 用于密集路由线组的向量信令码
WO2017190102A1 (en) 2016-04-28 2017-11-02 Kandou Labs, S.A. Low power multilevel driver
US10708164B2 (en) * 2016-05-03 2020-07-07 Qualcomm Incorporated Binarizing secondary transform index
US10142652B2 (en) * 2016-05-05 2018-11-27 Google Llc Entropy coding motion vector residuals obtained using reference motion vectors
FR3054764B1 (fr) * 2016-07-28 2018-07-27 B<>Com Procede de decodage d'une image, procede de codage, dispositifs, equipement terminal et programmes d'ordinateurs associes
WO2018030293A1 (ja) * 2016-08-10 2018-02-15 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
US9906358B1 (en) 2016-08-31 2018-02-27 Kandou Labs, S.A. Lock detector for phase lock loop
US10411922B2 (en) 2016-09-16 2019-09-10 Kandou Labs, S.A. Data-driven phase detector element for phase locked loops
US10419781B2 (en) * 2016-09-20 2019-09-17 Qualcomm Incorporated Storing and retrieving high bit depth image data
US10264264B2 (en) * 2016-09-24 2019-04-16 Apple Inc. Multi-bin decoding systems and methods
US10462462B2 (en) * 2016-09-29 2019-10-29 Qualcomm Incorporated Motion vector difference coding technique for video coding
US11356693B2 (en) 2016-09-29 2022-06-07 Qualcomm Incorporated Motion vector coding for video coding
CN106231318B (zh) * 2016-09-30 2020-04-28 浙江宇视科技有限公司 一种基于量化变换系数的视频加扰方法及装置
CA3040138A1 (en) * 2016-10-11 2018-04-19 Giorgio Zoia Method and system for selective access of stored or transmitted bioinformatics data
US10200188B2 (en) 2016-10-21 2019-02-05 Kandou Labs, S.A. Quadrature and duty cycle error correction in matrix phase lock loop
US10200218B2 (en) 2016-10-24 2019-02-05 Kandou Labs, S.A. Multi-stage sampler with increased gain
US10372665B2 (en) 2016-10-24 2019-08-06 Kandou Labs, S.A. Multiphase data receiver with distributed DFE
CN116320477A (zh) * 2016-12-22 2023-06-23 株式会社Kt 对视频进行解码或编码的方法和发送视频数据的方法
US11240526B2 (en) 2017-01-02 2022-02-01 Industry-University Cooperation Foundation Hanyang University Method and apparatus for decoding image using interpicture prediction
US10757412B2 (en) 2017-01-03 2020-08-25 Avago Technologies International Sales Pte. Limited Architecture flexible binary arithmetic coding system
WO2018128222A1 (ko) * 2017-01-03 2018-07-12 엘지전자 주식회사 영상 코딩 시스템에서 영상 디코딩 방법 및 장치
KR102766403B1 (ko) * 2017-01-25 2025-02-12 삼성전자주식회사 엔트로피 인코더 및 이를 포함하는 비디오 인코더
US10595033B2 (en) 2017-02-15 2020-03-17 Sony Corporation Variable length coding of header data for image compression
KR102450863B1 (ko) * 2017-03-22 2022-10-05 에스케이텔레콤 주식회사 움직임벡터를 부호화 또는 복호화하기 위한 장치 및 방법
US10554988B2 (en) * 2017-03-22 2020-02-04 Qualcomm Incorporated Binary arithmetic coding with parameterized probability estimation finite state machines
KR102509347B1 (ko) 2017-04-13 2023-03-14 엘지전자 주식회사 비디오 신호를 인코딩, 디코딩하는 방법 및 장치
EP4216444B1 (en) 2017-04-14 2025-08-27 Kandou Labs SA Pipelined forward error correction for vector signaling code channel
US10116468B1 (en) 2017-06-28 2018-10-30 Kandou Labs, S.A. Low power chip-to-chip bidirectional communications
US10686583B2 (en) 2017-07-04 2020-06-16 Kandou Labs, S.A. Method for measuring and correcting multi-wire skew
US10693587B2 (en) 2017-07-10 2020-06-23 Kandou Labs, S.A. Multi-wire permuted forward error correction
US11477492B2 (en) * 2017-08-04 2022-10-18 Google Inc. Adaptation for entropy coding of blocks of image data
US10203226B1 (en) 2017-08-11 2019-02-12 Kandou Labs, S.A. Phase interpolation circuit
US10791341B2 (en) * 2017-10-10 2020-09-29 Qualcomm Incorporated Binary arithmetic coding with progressive modification of adaptation parameters
US10484695B2 (en) 2017-10-23 2019-11-19 Google Llc Refined entropy coding for level maps
US11039143B2 (en) * 2017-11-20 2021-06-15 Qualcomm Incorporated Memory reduction for context initialization with temporal prediction
US12355996B2 (en) 2017-11-23 2025-07-08 Interdigital Vc Holdings, Inc. Encoding and decoding methods and corresponding devices
EP3490253A1 (en) * 2017-11-23 2019-05-29 Thomson Licensing Encoding and decoding methods and corresponding devices
WO2019111005A1 (en) * 2017-12-06 2019-06-13 V-Nova International Ltd Methods and apparatuses for hierarchically encoding and decoding a bytestream
US10326623B1 (en) 2017-12-08 2019-06-18 Kandou Labs, S.A. Methods and systems for providing multi-stage distributed decision feedback equalization
US10609421B2 (en) * 2018-07-12 2020-03-31 Google Llc Context derivation for coefficient coding
US10694205B2 (en) * 2017-12-18 2020-06-23 Google Llc Entropy coding of motion vectors using categories of transform blocks
US10602178B1 (en) * 2017-12-21 2020-03-24 Mozilla Corporation Systems and methods for frame context selection
EP3503557A1 (en) * 2017-12-22 2019-06-26 Thomson Licensing Method and apparatus for video encoding and decoding based on context switching
US10554380B2 (en) 2018-01-26 2020-02-04 Kandou Labs, S.A. Dynamically weighted exclusive or gate having weighted output segments for phase detection and phase interpolation
KR102907066B1 (ko) * 2018-01-29 2026-01-05 인터디지털 브이씨 홀딩스 인코포레이티드 재구성된 픽처의 정제를 갖는 인코딩 및 디코딩
CN112189343B (zh) * 2018-03-29 2023-10-20 弗劳恩霍夫应用研究促进协会 用于增强并行编码能力的构思
KR20240155980A (ko) * 2018-03-29 2024-10-29 프라운호퍼-게젤샤프트 추르 푀르데룽 데어 안제반텐 포르슝 에 파우 비디오 디코더, 비디오 인코더, 비디오 컨텐츠를 디코딩하기 위한 방법, 비디오 컨텐츠를 인코딩하기 위한 방법, 컴퓨터 프로그램 및 비디오 비트스트림
US10986354B2 (en) * 2018-04-16 2021-04-20 Panasonic Intellectual Property Corporation Of America Encoder, decoder, encoding method, and decoding method
US10645381B2 (en) 2018-04-30 2020-05-05 Google Llc Intra-prediction for smooth blocks in image/video
US10630990B1 (en) * 2018-05-01 2020-04-21 Amazon Technologies, Inc. Encoder output responsive to quality metric information
CN108810553B (zh) * 2018-05-02 2021-01-12 上海大学 一种基于稀疏化处理的移动节点监测数据序列压缩方法
TWI675441B (zh) * 2018-05-14 2019-10-21 欣興電子股份有限公司 封裝載板結構及其製造方法
KR102559966B1 (ko) * 2018-05-25 2023-07-26 라인플러스 주식회사 복수의 채널을 이용하여 동적 비트레이트의 비디오를 송출 및 재생하는 방법 및 시스템
DK3782369T3 (da) 2018-05-30 2023-11-13 Huawei Tech Co Ltd Multitype-trædybdeudvidelse til håndtering af billedgrænser
US10986340B2 (en) * 2018-06-01 2021-04-20 Qualcomm Incorporated Coding adaptive multiple transform information for video coding
US11457217B2 (en) 2018-06-12 2022-09-27 Electronics And Telecommunications Research Institute Context adaptive binary arithmetic coding method and device
US10939115B2 (en) * 2018-06-19 2021-03-02 Qualcomm Incorporated Efficient weighted probability estimation for binary arithmetic coding
CN108848380B (zh) * 2018-06-20 2021-11-30 腾讯科技(深圳)有限公司 视频编码和解码方法、装置、计算机设备及存储介质
TWI725463B (zh) * 2018-07-01 2021-04-21 大陸商北京字節跳動網絡技術有限公司 空間運動壓縮
CN119520781A (zh) 2018-07-02 2025-02-25 交互数字Vc控股公司 基于上下文的二进制算术编码和解码的方法和装置
TWI765164B (zh) * 2018-07-06 2022-05-21 弗勞恩霍夫爾協會 算術編碼器、算術解碼器、視訊編碼器、視訊解碼器、編碼方法、解碼方法及電腦程式
US11051025B2 (en) * 2018-07-13 2021-06-29 Tencent America LLC Method and apparatus for video coding
CN108989825B (zh) * 2018-07-18 2021-05-07 北京奇艺世纪科技有限公司 一种算术编码方法、装置及电子设备
US11218737B2 (en) 2018-07-23 2022-01-04 Google Llc Asymmetric probability model update and entropy coding precision
US10743029B2 (en) * 2018-07-30 2020-08-11 Tencent America LLC Constraints on coding unit partition
TWI735929B (zh) 2018-08-04 2021-08-11 大陸商北京字節跳動網絡技術有限公司 更新的mv或推導的mv的裁剪
US11336918B2 (en) 2018-09-05 2022-05-17 Qualcomm Incorporated Regular coded bin reduction for coefficient coding
CN112040247B (zh) 2018-09-10 2021-09-21 华为技术有限公司 视频解码方法、视频解码器以及计算机可读存储介质
CN114143554B (zh) * 2018-09-13 2024-04-12 华为技术有限公司 一种预测运动信息的解码方法及装置
US11006150B2 (en) * 2018-09-24 2021-05-11 Tencent America LLC Method and apparatus for video coding
CN112956205B (zh) * 2018-10-05 2024-06-11 罗斯德尔动力有限责任公司 变换系数编码方法及其装置
WO2020070612A1 (en) 2018-10-06 2020-04-09 Beijing Bytedance Network Technology Co., Ltd. Improvement for temporal gradient calculating in bio
US20200143226A1 (en) * 2018-11-05 2020-05-07 Samsung Electronics Co., Ltd. Lossy compression of neural network activation maps
US10983677B2 (en) 2018-11-16 2021-04-20 Dropbox, Inc. Prefetching digital thumbnails from remote servers to client devices based on a dynamic determination of file display criteria
US10841595B2 (en) * 2018-11-27 2020-11-17 Semiconductor Components Industries, Llc Methods and apparatus for transform coefficient encoding and decoding
US10917636B2 (en) * 2018-12-03 2021-02-09 Tencent America LLC Method and apparatus for video coding
US10904548B2 (en) * 2018-12-06 2021-01-26 Qualcomm Incorporated Coefficient processing for video encoding and decoding
US11323748B2 (en) 2018-12-19 2022-05-03 Qualcomm Incorporated Tree-based transform unit (TU) partition for video coding
CN115442616A (zh) * 2018-12-21 2022-12-06 华为技术有限公司 视频解码方法及装置
CN115348449B (zh) * 2018-12-29 2024-05-17 华为技术有限公司 编码器,解码器和使用压缩mv存储的对应方法
US11252431B2 (en) 2019-01-02 2022-02-15 Telefonaktiebolaget Lm Ericsson (Publ) Side motion refinement in video encoding/decoding systems
US11032560B2 (en) * 2019-01-17 2021-06-08 Tencent America LLC Method and apparatus for video coding without updating the HMVP table
CN111475424B (zh) * 2019-01-23 2023-07-28 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机可读存储介质
US11134273B2 (en) 2019-02-14 2021-09-28 Qualcomm Incorporated Regular coded bin reduction for coefficient coding
CN109946229B (zh) * 2019-02-25 2024-07-16 南京文易特电子科技有限公司 一种香烟条包智能数字双拉线检测系统及检测方法
US10652581B1 (en) * 2019-02-27 2020-05-12 Google Llc Entropy coding in image and video compression using machine learning
US10939107B2 (en) * 2019-03-01 2021-03-02 Sony Corporation Embedded codec circuitry for sub-block based allocation of refinement bits
WO2020180153A1 (ko) * 2019-03-06 2020-09-10 엘지전자 주식회사 인터 예측을 위한 비디오 신호의 처리 방법 및 장치
EP3935835A4 (en) 2019-03-08 2022-12-14 Telefonaktiebolaget Lm Ericsson (Publ) METHODS OF PROVIDING DEPENDENT/INDEPENDENT SCORE ENCODING/DECODING AND ASSOCIATED DEVICES
US11202100B2 (en) * 2019-03-11 2021-12-14 Qualcomm Incorporated Coefficient coding for transform skip mode
CN113615183B (zh) * 2019-03-12 2024-09-10 交互数字Vc控股公司 用于视频编解码的残差编解码中常规二进制位的灵活分配
US11178399B2 (en) * 2019-03-12 2021-11-16 Qualcomm Incorporated Probability initialization for video coding
KR102223790B1 (ko) 2019-03-15 2021-03-05 삼성전자주식회사 비디오 복호화 방법 및 장치, 비디오 부호화 방법 및 장치
KR20250117727A (ko) * 2019-03-18 2025-08-05 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 신경망의 매개변수를 압축하기 위한 방법 및 장치
CN109947398B (zh) * 2019-03-25 2020-12-25 武汉轻工大学 三重积分求解方法、装置、终端设备及可读存储介质
CN113678464B (zh) 2019-04-15 2022-12-02 北京字节跳动网络技术有限公司 非线性自适应环路滤波器中的参数的时域预测
KR102916860B1 (ko) * 2019-05-14 2026-01-23 노키아 테크놀로지스 오와이 적응적 루프 필터 기반 비디오 또는 영상 코딩
CN112135149B (zh) * 2019-06-24 2023-07-18 华为技术有限公司 语法元素的熵编码/解码方法、装置以及编解码器
US11184642B2 (en) * 2019-08-02 2021-11-23 Mediatek Inc. Methods and apparatus for simplification of coding residual blocks
CN119520783A (zh) * 2019-08-06 2025-02-25 现代自动车株式会社 熵解码、编码方法,发送比特流的方法
US11553213B2 (en) * 2019-08-13 2023-01-10 Tencent America LLC Method and apparatus for video coding
CN114586356B (zh) * 2019-08-31 2025-02-21 Lg电子株式会社 用于在视频/图像编码系统中对变换系数进行编码的方法和设备
KR20220062085A (ko) * 2019-09-20 2022-05-13 알리바바 그룹 홀딩 리미티드 비디오 처리에서 양자화 파라미터 시그널링
CN114731446B (zh) * 2019-09-24 2025-01-07 弗劳恩霍夫应用研究促进协会 用于信息值序列的编码概念
CN119211549A (zh) * 2019-09-24 2024-12-27 弗劳恩霍夫应用研究促进协会 编码器和解码器,以及用于编码或解码符号的方法
CN114731445A (zh) * 2019-10-01 2022-07-08 北京达佳互联信息技术有限公司 残差和系数编解码的方法和装置
TW202134958A (zh) * 2019-10-01 2021-09-16 弗勞恩霍夫爾協會 神經網路表示型態格式
GB2589066B (en) * 2019-10-24 2023-06-28 Advanced Risc Mach Ltd Encoding data arrays
WO2021092531A1 (en) * 2019-11-08 2021-05-14 Google Llc Probability estimation for entropy coding
CN112866181B (zh) * 2019-11-28 2023-05-26 上海商汤智能科技有限公司 数据解码装置、加速器、以及片上系统
JP7439264B2 (ja) * 2019-12-20 2024-02-27 フラウンホーファー-ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン 変換係数レベルの適応依存量子化をサポートするためのデコーダ、エンコーダ及び方法
US11468601B2 (en) 2020-01-13 2022-10-11 Samsung Display Co., Ltd. Systems and methods for scalable throughput entropy coder
US11822902B2 (en) * 2020-01-21 2023-11-21 California Institute Of Technology Systems and methods for performing lossless source coding
WO2021162722A1 (en) * 2020-02-12 2021-08-19 Google Llc Multi-context entropy coding for compression of graphs
GB2593691B (en) * 2020-03-30 2022-08-24 Imagination Tech Ltd Efficient encoding methods
ES3050734T3 (en) * 2020-06-23 2025-12-22 Fraunhofer Ges Forschung Apparatuses for encoding and decoding a sequence of integer values, methods for encoding and decoding a sequence of integer values and computer program for implementing these methods
PL4179539T3 (pl) * 2020-07-10 2026-01-05 Koninklijke Philips N.V. Kompresja informacji genomicznych przez konfigurowalne kodowanie arytmetyczne oparte na uczeniu maszynowym
US11362681B2 (en) 2020-08-21 2022-06-14 Seagate Technology Llc One-shot state transition probability encoder and decoder
CN112260699B (zh) * 2020-09-15 2024-06-28 深圳拓邦股份有限公司 属性通讯编解码方法、编码装置、解码装置及系统
FR3114717B1 (fr) 2020-09-30 2023-10-13 Fond B Com Procédé et dispositif électronique de décodage d’un flux de données, programme d’ordinateur et flux de données associés
US11722672B2 (en) 2020-10-06 2023-08-08 Qualcomm Incorporated Adaptively deriving rice parameter values for high bit-depth video coding
CN120934528A (zh) 2020-10-06 2025-11-11 弗劳恩霍夫应用研究促进协会 对信息值序列进行算术编码的算术编码器与进行算数解码的算数解码器及用于算术编码与解码信息值序列的方法及实现方法的计算机程序
CN114501036A (zh) * 2020-11-13 2022-05-13 联发科技股份有限公司 熵解码装置及相关熵解码方法
CN114727109B (zh) * 2021-01-05 2023-03-24 腾讯科技(深圳)有限公司 多媒体的量化处理方法、装置及编码、解码设备
CN115086657B (zh) 2021-03-14 2025-03-14 腾讯科技(深圳)有限公司 视频编解码方法、装置、计算机可读介质及电子设备
CN115086655B (zh) * 2021-03-14 2025-03-25 腾讯科技(深圳)有限公司 视频编解码方法、装置、计算机可读介质及电子设备
US11356197B1 (en) 2021-03-19 2022-06-07 Kandou Labs SA Error-tolerant forward error correction ordered set message decoder
CN113079377B (zh) * 2021-04-01 2022-09-30 中国科学技术大学 一种深度图像/视频压缩网络的训练方法
WO2022217245A1 (en) * 2021-04-07 2022-10-13 Innopeak Technology, Inc. Remaining level binarization for video coding
WO2022217417A1 (zh) * 2021-04-12 2022-10-20 Oppo广东移动通信有限公司 编解码方法、编码器、解码器以及存储介质
CN113489979A (zh) * 2021-05-28 2021-10-08 杭州博雅鸿图视频技术有限公司 熵编码方法、装置、电子设备及存储介质
CN113422964B (zh) * 2021-06-04 2024-07-30 绍兴市北大信息技术科创中心 一种串长度参数编解码方法和装置
CN115550652A (zh) * 2021-06-30 2022-12-30 微软技术许可有限责任公司 基于上下文的图像编解码
US12563234B2 (en) 2021-08-17 2026-02-24 Beijing Dajia Internet Information Technology Co., Ltd. Sign prediction for block-based video coding
MX2024001847A (es) * 2021-08-17 2024-02-28 Beijing Dajia Internet Information Tech Co Ltd Prediccion de signos para la codificacion de video basada en bloques.
CA3229953A1 (en) * 2021-08-26 2023-03-02 Yue Yu Operation range extension for versatile video coding
US11871038B2 (en) * 2021-09-29 2024-01-09 Tencent America LLC Techniques for constraint flag signaling for range extension with residual rice coding extension
KR20240125959A (ko) * 2021-12-16 2024-08-20 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 블록 기반 비디오 코딩을 위한 부호 예측
US12301832B2 (en) * 2022-02-03 2025-05-13 Tencent America LLC Methods, devices, and storage medium for multi-symbol arithmetic coding
US12284398B2 (en) * 2022-03-11 2025-04-22 Tencent America LLC Systems and methods for division-free probability regularization for arithmetic coding
US12256077B2 (en) * 2022-03-22 2025-03-18 Tencent America LLC Systems and methods for regularization-free multi-hypothesis arithmetic coding
MX2024010448A (es) 2022-04-05 2024-09-05 Samsung Electronics Co Ltd Dispositivo para codificacion y decodificacion por entropia y metodo para el mismo.
WO2023195643A1 (ko) * 2022-04-05 2023-10-12 삼성전자 주식회사 엔트로피 부호화 및 복호화 장치 및 그 방법
WO2024005659A1 (en) * 2022-06-30 2024-01-04 Huawei Technologies Co., Ltd. Adaptive selection of entropy coding parameters
WO2024007090A1 (zh) * 2022-07-04 2024-01-11 嘉兴尚坤科技有限公司 一种超高清视频数据编码/解码处理方法及系统
US12506875B2 (en) * 2022-10-19 2025-12-23 Tencent America LLC Method and apparatus for motion vector coding
CN120153657A (zh) * 2023-01-09 2025-06-13 Oppo广东移动通信有限公司 编解码方法、码流、编码器、解码器以及存储介质
US12487980B2 (en) 2023-01-09 2025-12-02 Dynatrace Llc Compact probabilistic data structure for storing log data
US12493651B2 (en) * 2023-01-09 2025-12-09 Dynatrace Llc Compact probabilistic data structure for storing streamed log lines
US12229107B2 (en) * 2023-01-09 2025-02-18 Dynatrace Llc Compact probabilistic data structure for storing streamed log lines
US12470740B2 (en) * 2023-01-10 2025-11-11 Samsung Electronics Co., Ltd. Vertex motion vector coding and decoding
CN120530626A (zh) * 2023-01-16 2025-08-22 株式会社Kt 图像编码/解码方法和用于存储比特流的记录介质
CN118100954B (zh) * 2024-03-12 2025-01-28 北京海普方漫科技有限公司 一种熵编码整数编码、编码方法、解码方法及量化方法
WO2025250144A1 (en) * 2024-05-31 2025-12-04 Google Llc High-throughput entropy decoding architecture
US12341538B1 (en) * 2024-11-26 2025-06-24 Nintendo Co., Ltd. Compressing entropy tables with interpolative coding
CN120223091B (zh) * 2025-02-24 2025-11-14 中山大学 一种用于数据压缩传输的编码译码方法

Family Cites Families (137)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2827264B2 (ja) 1989-03-30 1998-11-25 横河電機株式会社 光を用いた物理量測定装置
US6885864B2 (en) 1992-03-06 2005-04-26 Aircell, Inc. Virtual private network for cellular communications
US5717394A (en) 1993-02-10 1998-02-10 Ricoh Company Ltd. Method and apparatus for encoding and decoding data
US5381145A (en) 1993-02-10 1995-01-10 Ricoh Corporation Method and apparatus for parallel decoding and encoding of data
JPH06334993A (ja) * 1993-03-26 1994-12-02 Sony Corp 動画像符号化又は復号化装置、並びに動きベクトルの可変長符号化及び復号化方法
US5381148A (en) 1993-07-12 1995-01-10 Analog Devices, Inc. Method and apparatus for calibrating a gain control circuit
KR970003102B1 (ko) * 1993-09-17 1997-03-14 대우전자 주식회사 영상 복호기에서의 하프 픽셀 움직임 보상 회로
JP3560393B2 (ja) 1995-07-06 2004-09-02 株式会社日鉱マテリアルズ アルミニウム合金スパッタリングターゲットの製造方法
US5847776A (en) 1996-06-24 1998-12-08 Vdonet Corporation Ltd. Method for entropy constrained motion estimation and coding of motion vectors with increased search range
JP2866616B2 (ja) 1996-06-24 1999-03-08 昇 大串 健康ベッド
JPH10151789A (ja) 1996-11-22 1998-06-09 Eiji Shiozaki 粉体飛翔式印字制御方法および印字装置
WO1998044479A1 (en) * 1997-03-31 1998-10-08 Matsushita Electric Industrial Co., Ltd. Dynamic image display method and device therefor
KR100255754B1 (ko) * 1997-08-30 2000-05-01 전주범 이진 형상 신호 부호화 방법
CN1146245C (zh) * 1997-12-22 2004-04-14 株式会社大宇电子 隔行二进制形状编码方法和装置
US6677868B2 (en) * 2001-03-16 2004-01-13 Sharp Laboratories Of America, Inc. Entropy coding with adaptive syntax to replace high probability symbols with lower probabilities symbols
US6865298B2 (en) 2001-03-30 2005-03-08 Sharp Laboratories Of America, Inc. Compound document compression based upon neighboring pixels
JP4125565B2 (ja) * 2001-08-31 2008-07-30 松下電器産業株式会社 画像符号化方法、画像復号化方法及びその装置
US20030048808A1 (en) * 2001-09-12 2003-03-13 Stahl Thomas Anthony Method and apparatus for changing received streaming content channels
KR100765060B1 (ko) 2001-11-09 2007-10-09 주식회사 포스코 침전조의 워터배출 조정장치
US7435543B2 (en) * 2001-11-27 2008-10-14 Animal Technology Institute Of Taiwan Genetic markers for pig backfat thickness
ES2610430T3 (es) * 2001-12-17 2017-04-27 Microsoft Technology Licensing, Llc Codificación por omisión de macrobloques
US7003035B2 (en) * 2002-01-25 2006-02-21 Microsoft Corporation Video coding methods and apparatuses
CN1225904C (zh) * 2002-04-12 2005-11-02 精工爱普生株式会社 在压缩域视频处理中降低存储器要求和实施有效的逆运动补偿的方法和设备
JP2003319391A (ja) * 2002-04-26 2003-11-07 Sony Corp 符号化装置および方法、復号装置および方法、記録媒体、並びにプログラム
EP2326013B1 (de) * 2002-05-02 2013-11-06 Fraunhofer-Gesellschaft zur Förderung der Angewandten Forschung e.V. Verfahren und Anordnung zur arithmetischen Enkodierung und Dekodierung mit Verwendung mehrerer Tabellen
JP4313757B2 (ja) * 2002-05-02 2009-08-12 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン 画像および/またはビデオ符号器と復号器における変換係数を符号化するための方法と装置および対応するコンピュータプログラムと対応するコンピュータによる読み出し可能な記憶媒体
JP4230188B2 (ja) * 2002-06-06 2009-02-25 パナソニック株式会社 可変長符号化方法および可変長復号化方法
US6919105B2 (en) 2003-01-06 2005-07-19 Philip Morris Usa Inc. Continuous process for retaining solid adsorbent particles on shaped micro-cavity fibers
US6894628B2 (en) * 2003-07-17 2005-05-17 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Apparatus and methods for entropy-encoding or entropy-decoding using an initialization of context variables
US6900748B2 (en) * 2003-07-17 2005-05-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Method and apparatus for binarization and arithmetic coding of a data value
US20050013498A1 (en) * 2003-07-18 2005-01-20 Microsoft Corporation Coding of motion vector information
US7499495B2 (en) * 2003-07-18 2009-03-03 Microsoft Corporation Extended range motion vectors
US7233622B2 (en) * 2003-08-12 2007-06-19 Lsi Corporation Reduced complexity efficient binarization method and/or circuit for motion vector residuals
EP1513350A1 (en) * 2003-09-03 2005-03-09 Thomson Licensing S.A. Process and arrangement for encoding video pictures
US6771197B1 (en) 2003-09-26 2004-08-03 Mitsubishi Electric Research Laboratories, Inc. Quantizing signals using sparse generator factor graph codes
US7599435B2 (en) 2004-01-30 2009-10-06 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Video frame encoding and decoding
JP4241417B2 (ja) * 2004-02-04 2009-03-18 日本ビクター株式会社 算術復号化装置、および算術復号化プログラム
JP4408766B2 (ja) 2004-07-30 2010-02-03 Ntn株式会社 Icタグ付き車輪用軸受装置
CN1589023A (zh) * 2004-08-06 2005-03-02 联合信源数字音视频技术(北京)有限公司 一种基于上下文的多码表变长编解码方法及编解码装置
US7609947B2 (en) 2004-09-10 2009-10-27 Panasonic Corporation Method and apparatus for coordinating playback from multiple video sources
CN101061642A (zh) * 2004-09-22 2007-10-24 液滴技术有限公司 置换延迟
DE102004049156B4 (de) * 2004-10-08 2006-07-13 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Codierschema für einen ein zeitlich veränderliches Graphikmodell darstellenden Datenstrom
KR20060038189A (ko) * 2004-10-29 2006-05-03 삼성전자주식회사 컨텍스트 기반 적응형 이진 산술 복부호화 방법 및 장치
KR100636229B1 (ko) * 2005-01-14 2006-10-19 학교법인 성균관대학 신축형 부호화를 위한 적응적 엔트로피 부호화 및 복호화방법과 그 장치
KR100703760B1 (ko) 2005-03-18 2007-04-06 삼성전자주식회사 시간적 레벨간 모션 벡터 예측을 이용한 비디오인코딩/디코딩 방법 및 장치
AU2006201490B2 (en) * 2005-04-19 2008-05-22 Samsung Electronics Co., Ltd. Method and apparatus for adaptively selecting context model for entropy coding
RU2336661C2 (ru) * 2005-04-19 2008-10-20 Самсунг Электроникс Ко., Лтд. Способ и устройство адаптивного выбора контекстной модели для кодирования по энтропии
EP1727371A1 (en) * 2005-05-27 2006-11-29 Thomson Licensing Method for controlling the encoder output bit rate in a block-based video encoder, and corresponding video encoder apparatus
JP4856954B2 (ja) 2005-06-08 2012-01-18 パナソニック株式会社 画像符号化装置
CN1878309A (zh) * 2005-06-08 2006-12-13 松下电器产业株式会社 视频编码装置
JP5560393B2 (ja) 2005-06-22 2014-07-23 アステリアス バイオセラピューティクス インコーポレイテッド 心筋細胞系列細胞への霊長類多能性幹細胞の分化
KR100683788B1 (ko) 2005-06-25 2007-02-20 삼성에스디아이 주식회사 복수의 층들의 전극 라인들이 형성된 교류형 방전디스플레이 패널
RU2371881C1 (ru) * 2005-07-08 2009-10-27 ЭлДжи ЭЛЕКТРОНИКС ИНК. Способ моделирования информации кодирования видеосигнала для компрессии/декомпрессии информации
CN101223780A (zh) * 2005-07-18 2008-07-16 三星电子株式会社 减少编码器和解码器之间的不匹配的视频编码方法和设备
CN100461863C (zh) * 2005-08-05 2009-02-11 上海富瀚微电子有限公司 基于上下文自适应二进制算术解码器
EP1755341A1 (en) * 2005-08-19 2007-02-21 Texas Instruments Incorporated Method of quantization of transform coefficients
US7221296B2 (en) * 2005-08-22 2007-05-22 Streaming Networks (Pvt.) Ltd. Method and system for fast context based adaptive binary arithmetic coding
KR100813963B1 (ko) 2005-09-16 2008-03-14 세종대학교산학협력단 동영상의 무손실 부호화, 복호화 방법 및 장치
CN100403801C (zh) * 2005-09-23 2008-07-16 联合信源数字音视频技术(北京)有限公司 一种基于上下文的自适应熵编/解码方法
CN100466739C (zh) 2005-10-12 2009-03-04 华为技术有限公司 Cabac解码系统及方法
EP1946723A4 (en) 2005-10-31 2010-07-14 Life Spring Biotech Co Ltd SCLERAL TRIM BAND AND METHOD FOR MANUFACTURING THE SAME
KR100873636B1 (ko) * 2005-11-14 2008-12-12 삼성전자주식회사 단일 부호화 모드를 이용하는 영상 부호화/복호화 방법 및장치
EA013890B1 (ru) 2005-11-25 2010-08-30 Грегор Зебиц Домашняя сеть, использующая проводные и беспроводные защищённые каналы связи
US7245242B2 (en) * 2005-11-28 2007-07-17 Conexant Systems, Inc. Decoding systems and methods
US7355387B2 (en) 2005-12-08 2008-04-08 Micron Technology, Inc. System and method for testing integrated circuit timing margins
US7956930B2 (en) 2006-01-06 2011-06-07 Microsoft Corporation Resampling and picture resizing operations for multi-resolution video coding and decoding
JP4318050B2 (ja) 2006-01-24 2009-08-19 ソニー株式会社 ワイヤレスチャンネル決定選択方法およびアクセスポイント装置
JP2007206370A (ja) 2006-02-01 2007-08-16 Toppan Printing Co Ltd 着色アルカリ現像型感光性樹脂組成物及び該着色アルカリ現像型感光性樹脂組成物を用いたカラーフィルタ
KR100750165B1 (ko) * 2006-02-22 2007-08-17 삼성전자주식회사 압축률 향상을 위해 개선된 컨텍스트 모델 선택을 사용하는cabac 부호화 방법 및 장치, 그리고 cabac복호화 방법 및 장치
US20070217702A1 (en) * 2006-03-14 2007-09-20 Sung Chih-Ta S Method and apparatus for decoding digital video stream
US8848789B2 (en) 2006-03-27 2014-09-30 Qualcomm Incorporated Method and system for coding and decoding information associated with video compression
US7929608B2 (en) * 2006-03-28 2011-04-19 Sony Corporation Method of reducing computations in intra-prediction and mode decision processes in a digital video encoder
JP2007300455A (ja) * 2006-05-01 2007-11-15 Victor Co Of Japan Ltd 算術符号化装置、および算術符号化装置におけるコンテキストテーブル初期化方法
JP2007306370A (ja) * 2006-05-12 2007-11-22 Victor Co Of Japan Ltd 画像符号化記録装置
US8472527B2 (en) * 2006-09-13 2013-06-25 Texas Instruments Incorporated Hierarchical motion estimation using original frame for sub-sampled reference
CN101198051B (zh) * 2006-12-07 2011-10-05 深圳艾科创新微电子有限公司 基于h.264的熵解码器的实现方法及装置
US7573405B2 (en) * 2006-12-29 2009-08-11 Texas Instruments Incorporated System updating accumulated statistics coding variable values after multiple encodings
US20080162432A1 (en) * 2006-12-29 2008-07-03 Wen-Shan Wang Search table for unary k-th order exp-golomb decoder
CN101005287A (zh) * 2007-01-26 2007-07-25 北京中星微电子有限公司 提高算术编码速度的方法、系统及编码装置
JP5025286B2 (ja) 2007-02-28 2012-09-12 シャープ株式会社 符号化装置及び復号装置
US20080225947A1 (en) * 2007-03-13 2008-09-18 Matthias Narroschke Quantization for hybrid video coding
US8806059B1 (en) 2007-04-05 2014-08-12 Juniper Networks, Inc. Rule tree for network device
CN101115200B (zh) * 2007-04-20 2010-05-19 西安交通大学 一种有效的运动矢量可伸缩编码方法
WO2008136828A1 (en) * 2007-05-04 2008-11-13 Qualcomm Incorporated Video coding mode selection using estimated coding costs
JP2008300455A (ja) 2007-05-29 2008-12-11 Sumitomo Electric Ind Ltd パワーモジュール
CN107105257B (zh) * 2007-06-29 2020-08-28 威勒斯媒体国际有限公司 图像编码装置、图像编码方法、图像译码装置、图像译码方法
US8254455B2 (en) * 2007-06-30 2012-08-28 Microsoft Corporation Computing collocated macroblock information for direct mode macroblocks
US9648325B2 (en) * 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
JP4908336B2 (ja) 2007-07-04 2012-04-04 シャープ株式会社 テレビ受信機、テレビゲームシステム、及びテレビゲームシステムのゲームモード終了方法
KR101408698B1 (ko) 2007-07-31 2014-06-18 삼성전자주식회사 가중치 예측을 이용한 영상 부호화, 복호화 방법 및 장치
US7839311B2 (en) * 2007-08-31 2010-11-23 Qualcomm Incorporated Architecture for multi-stage decoding of a CABAC bitstream
US7535387B1 (en) * 2007-09-10 2009-05-19 Xilinx, Inc. Methods and systems for implementing context adaptive binary arithmetic coding
DE602008005250D1 (de) * 2008-01-04 2011-04-14 Dolby Sweden Ab Audiokodierer und -dekodierer
CN101478672B (zh) * 2008-01-04 2012-12-19 华为技术有限公司 视频编码、解码方法及装置和视频处理系统
JP4915350B2 (ja) * 2008-01-16 2012-04-11 日本電気株式会社 エントロピ符号化器、映像符号化装置、映像符号化方法および映像符号化プログラム
EP2245857B1 (en) * 2008-01-22 2015-06-03 Dolby Laboratories Licensing Corporation Adaptive motion information cost estimation with dynamic look-up table updating
US20090201983A1 (en) 2008-02-07 2009-08-13 Motorola, Inc. Method and apparatus for estimating high-band energy in a bandwidth extension system
JP4479829B2 (ja) 2008-04-03 2010-06-09 ソニー株式会社 撮像装置及び撮像方法
US7656320B2 (en) 2008-04-10 2010-02-02 Red Hat, Inc. Difference coding adaptive context model using counting
JP4962400B2 (ja) 2008-04-30 2012-06-27 ソニー株式会社 算術復号装置
US8179974B2 (en) * 2008-05-02 2012-05-15 Microsoft Corporation Multi-level representation of reordered transform coefficients
CN101267559A (zh) * 2008-05-08 2008-09-17 上海交通大学 视频解码器的通用熵解码方法及装置
US20090304071A1 (en) * 2008-06-06 2009-12-10 Apple Inc. Adaptive application of entropy coding methods
CN101304522A (zh) * 2008-06-20 2008-11-12 中国民航大学 一种以jpeg2000压缩图像为载体的大容量信息隐藏方法
US8699562B2 (en) * 2008-10-06 2014-04-15 Lg Electronics Inc. Method and an apparatus for processing a video signal with blocks in direct or skip mode
WO2010043773A1 (en) * 2008-10-17 2010-04-22 Nokia Corporation Sharing of motion vector in 3d video coding
US7932843B2 (en) * 2008-10-17 2011-04-26 Texas Instruments Incorporated Parallel CABAC decoding for video decompression
EP2182732A1 (en) * 2008-10-28 2010-05-05 Panasonic Corporation Switching between scans in image coding
US20100127904A1 (en) 2008-11-26 2010-05-27 Horizon Semiconductors Ltd. Implementation of a rapid arithmetic binary decoding system of a suffix length
WO2010063883A1 (en) * 2008-12-03 2010-06-10 Nokia Corporation Switching between dct coefficient coding modes
JP2010268094A (ja) * 2009-05-13 2010-11-25 Sony Corp 画像復号化装置および画像復号化方法
JP2010278668A (ja) * 2009-05-27 2010-12-09 Sony Corp 符号化装置及び符号化方法、並びに復号装置及び復号方法
US9479812B2 (en) * 2009-06-05 2016-10-25 Time Warner Cable Enterprises Llc User selection of software components in a television set-top box
KR101601653B1 (ko) 2009-06-24 2016-03-10 삼성전자 주식회사 제빙장치 및 이를 구비하는 냉장고
KR101377530B1 (ko) * 2009-08-21 2014-03-27 에스케이텔레콤 주식회사 적응적 움직임 벡터 해상도를 이용한 영상 부호화/복호화 방법 및 장치
KR101678968B1 (ko) * 2009-08-21 2016-11-25 에스케이텔레콤 주식회사 참조 픽처 보간 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
CN102055483B (zh) * 2009-10-29 2013-05-08 鸿富锦精密工业(深圳)有限公司 熵解码装置
JP5409268B2 (ja) * 2009-10-30 2014-02-05 株式会社日立ソリューションズ 情報提示装置及び携帯端末
KR20110071047A (ko) * 2009-12-20 2011-06-28 엘지전자 주식회사 비디오 신호 디코딩 방법 및 장치
US9237355B2 (en) 2010-02-19 2016-01-12 Qualcomm Incorporated Adaptive motion resolution for video coding
US9973768B2 (en) 2010-03-16 2018-05-15 Texas Instruments Incorporated CABAC decoder with decoupled arithmetic decoding and inverse binarization
CN101841707B (zh) * 2010-03-19 2012-01-04 西安电子科技大学 基于jpeg2000标准的高速实时处理算术熵编码方法
PL2559166T3 (pl) * 2010-04-13 2018-04-30 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Koder i dekoder dzielący interwał prawdopodobieństwa
US20120014429A1 (en) * 2010-07-15 2012-01-19 Jie Zhao Methods and Systems for Parallel Video Encoding and Parallel Video Decoding
US9319448B2 (en) 2010-08-10 2016-04-19 Qualcomm Incorporated Trick modes for network streaming of coded multimedia data
CN101938654B (zh) * 2010-08-17 2013-04-10 浙江大学 一种变换系数的优化量化方法及装置
CN101951516B (zh) * 2010-09-25 2013-06-05 清华大学 基于h.264/avc中cabac的并行编码实现电路及编码方法
US8902988B2 (en) * 2010-10-01 2014-12-02 Qualcomm Incorporated Zero-out of high frequency coefficients and entropy coding retained coefficients using a joint context model
US10327008B2 (en) * 2010-10-13 2019-06-18 Qualcomm Incorporated Adaptive motion vector resolution signaling for video coding
JP5570437B2 (ja) * 2011-01-12 2014-08-13 三菱電機株式会社 エントロピー符号化装置、エントロピー復号装置、エントロピー符号化方法及びエントロピー復号方法
US9008181B2 (en) 2011-01-24 2015-04-14 Qualcomm Incorporated Single reference picture list utilization for interprediction video coding
ITTO20110414A1 (it) * 2011-05-11 2012-11-12 St Microelectronics Pvt Ltd Procedimento ed apparecchiatura per elaborare segnali video, prodotto informatico e segnale codificato relativi
AU2012268951B2 (en) * 2011-06-16 2015-07-30 Dolby Video Compression, Llc Context initialization in entropy coding
US9654772B2 (en) 2012-01-19 2017-05-16 Qualcomm Incorporated Context adaptive entropy coding with a reduced initialization value set
US9584802B2 (en) 2012-04-13 2017-02-28 Texas Instruments Incorporated Reducing context coded and bypass coded bins to improve context adaptive binary arithmetic coding (CABAC) throughput
US10856009B2 (en) * 2014-09-04 2020-12-01 Mediatek Inc. Method of block vector clipping and coding for screen content coding and video coding
US11463712B2 (en) * 2018-11-21 2022-10-04 Interdigital Vc Holdings, Inc. Residual coding with reduced usage of local neighborhood

Also Published As

Publication number Publication date
CN107465928B (zh) 2020-10-30
US20230188719A1 (en) 2023-06-15
JP2014522613A (ja) 2014-09-04
RU2019127048A3 (sr) 2021-03-01
HK1247487A1 (zh) 2018-09-21
IL304856B2 (en) 2024-08-01
EP3343781A1 (en) 2018-07-04
US20160360204A1 (en) 2016-12-08
US20180324435A1 (en) 2018-11-08
US20190191165A1 (en) 2019-06-20
CN107801025A (zh) 2018-03-13
HK1247489A1 (zh) 2018-09-21
US10630988B2 (en) 2020-04-21
US20240048708A1 (en) 2024-02-08
KR20200064171A (ko) 2020-06-05
PH12018500331A1 (en) 2018-07-09
EP4407996B1 (en) 2025-11-05
HK1248434B (zh) 2020-04-24
CO6852031A2 (es) 2014-01-30
AU2024201731A1 (en) 2024-04-04
IL304856A (en) 2023-09-01
PH12018500348B1 (en) 2018-08-13
HK1248948B (zh) 2020-02-21
KR20140022957A (ko) 2014-02-25
PH12018500349B1 (en) 2018-08-13
US20140140400A1 (en) 2014-05-22
US12316846B2 (en) 2025-05-27
US20180332290A1 (en) 2018-11-15
MY202391A (en) 2024-04-25
IL316862B2 (en) 2025-11-01
WO2012172115A1 (en) 2012-12-20
HK1246545A1 (zh) 2018-09-07
JP2018186527A (ja) 2018-11-22
IL254274B (en) 2018-06-28
JP7464768B2 (ja) 2024-04-09
JP2018139415A (ja) 2018-09-06
IL311563A (en) 2024-05-01
IL299953B2 (en) 2024-01-01
US10063858B2 (en) 2018-08-28
MX336735B (es) 2016-01-29
RU2014101166A (ru) 2015-07-27
US12581082B2 (en) 2026-03-17
EP3930330B1 (en) 2023-06-07
AU2016202638A1 (en) 2016-05-19
AU2022235513B2 (en) 2023-04-13
AU2023203785B2 (en) 2023-12-21
IL312098A (en) 2024-06-01
MX2023005264A (es) 2023-05-23
US20200092560A1 (en) 2020-03-19
CA2839560C (en) 2016-10-04
CN107347161A (zh) 2017-11-14
CN107801042A (zh) 2018-03-13
CN107333141A (zh) 2017-11-07
CN107529710A (zh) 2018-01-02
CN107465927A (zh) 2017-12-12
US10819982B2 (en) 2020-10-27
SI3930330T1 (sl) 2023-10-30
IL290229A (en) 2022-03-01
PH12019500790A1 (en) 2019-11-11
RU2758981C2 (ru) 2021-11-03
CN107529708B (zh) 2019-05-07
IL252388B (en) 2022-08-01
EP3471415B1 (en) 2021-08-04
CN107529709A (zh) 2018-01-02
JP6814780B2 (ja) 2021-01-20
JP2022123096A (ja) 2022-08-23
CY1124687T1 (el) 2022-07-22
US20200169733A1 (en) 2020-05-28
PH12018500348A1 (en) 2018-08-13
RU2018120845A3 (sr) 2021-04-05
US20170366810A1 (en) 2017-12-21
MX2013014867A (es) 2014-05-21
CN107517383B (zh) 2020-07-14
RU2595934C2 (ru) 2016-08-27
US20180295387A1 (en) 2018-10-11
CN107529706B (zh) 2020-11-17
US10432939B2 (en) 2019-10-01
US20200267389A1 (en) 2020-08-20
PH12018500352A1 (en) 2018-08-13
JP6867334B2 (ja) 2021-04-28
KR20220122800A (ko) 2022-09-02
US20180152707A1 (en) 2018-05-31
WO2012172113A1 (en) 2012-12-20
PT3471415T (pt) 2021-11-04
JP2024088687A (ja) 2024-07-02
JP7571084B2 (ja) 2024-10-22
JP2017085602A (ja) 2017-05-18
EP4407996A3 (en) 2024-10-30
KR20180086522A (ko) 2018-07-31
US20170142416A1 (en) 2017-05-18
US20190320178A1 (en) 2019-10-17
CN107529704A (zh) 2018-01-02
PH12018500353A1 (en) 2018-08-13
JP7727072B2 (ja) 2025-08-20
UA115186C2 (uk) 2017-09-25
CN107333141B (zh) 2020-04-07
CN107529708A (zh) 2018-01-02
LT2721819T (lt) 2023-11-27
IL305221A (en) 2023-10-01
KR20170047406A (ko) 2017-05-04
PL3343781T3 (pl) 2022-03-28
US20140177707A1 (en) 2014-06-26
PH12018500355A1 (en) 2018-08-13
KR101882848B1 (ko) 2018-07-27
SI3471415T1 (sl) 2021-12-31
US20160366447A1 (en) 2016-12-15
CN107333140B (zh) 2020-09-22
MY170940A (en) 2019-09-19
US10306232B2 (en) 2019-05-28
CA2839569C (en) 2017-01-03
PL3930330T3 (pl) 2023-10-23
HK1247490A1 (zh) 2018-09-21
CN107529707A (zh) 2018-01-02
PH12018500354A1 (en) 2018-08-13
PL2721819T3 (pl) 2024-02-19
CN107613307A (zh) 2018-01-19
US9473170B2 (en) 2016-10-18
US20140198841A1 (en) 2014-07-17
IL259768A (en) 2018-07-31
IL294454A (en) 2022-09-01
EP4407996A2 (en) 2024-07-31
CN107333142B (zh) 2020-06-02
JP7231594B2 (ja) 2023-03-01
EP3930330A1 (en) 2021-12-29
BR122021000264B1 (pt) 2022-02-22
EP4033672A1 (en) 2022-07-27
AP2014007361A0 (en) 2014-01-31
PT3343781T (pt) 2022-03-07
JP2023075109A (ja) 2023-05-30
PL2721822T3 (pl) 2019-04-30
AU2018200699B2 (en) 2018-10-25
DK3471415T3 (da) 2021-11-01
EP2721819A1 (en) 2014-04-23
IL309379B1 (en) 2024-09-01
PH12018500349A1 (en) 2018-08-13
PH12018500329B1 (en) 2018-07-09
AU2024201731B2 (en) 2024-08-29
BR112013032333A2 (pt) 2016-12-20
BR112013032332A2 (pt) 2016-12-20
US10148962B2 (en) 2018-12-04
AU2019203792A1 (en) 2019-06-20
US20240364891A1 (en) 2024-10-31
US9686568B2 (en) 2017-06-20
US20190158840A1 (en) 2019-05-23
CN107360423A (zh) 2017-11-17
KR20180006510A (ko) 2018-01-17
AU2023203785A1 (en) 2023-07-13
PT3930330T (pt) 2023-08-31
JP7572582B2 (ja) 2024-10-23
MX2013014868A (es) 2014-05-28
IL294454B2 (en) 2023-06-01
RU2699677C2 (ru) 2019-09-09
LT3471415T (lt) 2021-12-10
US10230954B2 (en) 2019-03-12
CA2839560A1 (en) 2012-12-20
CN107770559A (zh) 2018-03-06
EP4407995A2 (en) 2024-07-31
KR20160018879A (ko) 2016-02-17
PH12018500350B1 (en) 2019-09-20
HUE062605T2 (hu) 2023-11-28
SI3343781T1 (sl) 2022-04-29
RU2615681C2 (ru) 2017-04-06
PH12018500330A1 (en) 2018-07-09
US10440364B2 (en) 2019-10-08
JP7100836B2 (ja) 2022-07-14
US9762913B2 (en) 2017-09-12
AU2012268950B2 (en) 2016-02-04
LT3930330T (lt) 2023-09-11
US20160360223A1 (en) 2016-12-08
US20170180733A1 (en) 2017-06-22
PH12018500329A1 (en) 2018-07-09
DK3343781T3 (da) 2022-03-07
US10630987B2 (en) 2020-04-21
US20160360238A1 (en) 2016-12-08
PT2721822T (pt) 2019-01-23
CN107529709B (zh) 2019-05-07
CN107801041A (zh) 2018-03-13
AU2012268950A1 (en) 2014-01-30
IL299953B1 (en) 2023-09-01
PH12018500353B1 (en) 2019-09-20
JP6492047B2 (ja) 2019-03-27
PL3471415T3 (pl) 2022-01-03
US20180152708A1 (en) 2018-05-31
HK1248436A1 (zh) 2018-10-12
CN107517384A (zh) 2017-12-26
BR122020024986B1 (pt) 2022-02-22
CN103733622B (zh) 2017-06-30
CN107613307B (zh) 2021-04-06
PH12018500330B1 (en) 2018-07-09
KR102187981B1 (ko) 2020-12-07
IL316862B1 (en) 2025-07-01
JP2014520451A (ja) 2014-08-21
KR101730587B1 (ko) 2017-04-26
KR20160119254A (ko) 2016-10-12
CN107333142A (zh) 2017-11-07
FI3930330T3 (fi) 2023-09-07
HK1247488A1 (zh) 2018-09-21
US9973761B2 (en) 2018-05-15
CN107517383A (zh) 2017-12-26
PT2721819T (pt) 2023-11-22
US20170302952A1 (en) 2017-10-19
US10298964B2 (en) 2019-05-21
CN107801042B (zh) 2020-06-19
CN107529707B (zh) 2019-10-01
ZA201400029B (en) 2015-04-29
JP2025016509A (ja) 2025-02-04
KR20190079689A (ko) 2019-07-05
US10313672B2 (en) 2019-06-04
CL2013003601A1 (es) 2014-07-25
JP2014518473A (ja) 2014-07-28
IL311563B2 (en) 2025-04-01
JP2021044809A (ja) 2021-03-18
EP2721819B1 (en) 2023-08-16
HK1197128A1 (en) 2015-01-02
ES2897209T3 (es) 2022-02-28
CN103733622A (zh) 2014-04-16
WO2012172114A1 (en) 2012-12-20
CN107801041B (zh) 2019-08-13
HK1248947A1 (zh) 2018-10-19
KR101662136B1 (ko) 2016-10-04
RU2642373C1 (ru) 2018-01-24
IL297827B1 (en) 2023-09-01
US9768804B1 (en) 2017-09-19
RS64867B1 (sr) 2023-12-29
RU2658883C1 (ru) 2018-06-25
EP2721822B1 (en) 2018-10-31
AU2022235513A1 (en) 2022-10-13
AP4072A (en) 2017-03-16
HK1246540A1 (zh) 2018-09-07
CN107529705A (zh) 2018-01-02
JP2025004187A (ja) 2025-01-14
KR20140028106A (ko) 2014-03-07
KR20240017975A (ko) 2024-02-08
CN107360434A (zh) 2017-11-17
IL305221B2 (en) 2024-09-01
US20190141329A1 (en) 2019-05-09
IL297827A (en) 2023-01-01
CN107770559B (zh) 2020-06-26
IL249644A (en) 2017-09-28
IL290229B2 (en) 2023-04-01
CN107360434B (zh) 2020-05-12
RS62714B1 (sr) 2022-01-31
RU2019127048A (ru) 2021-03-01
AU2017228613A1 (en) 2017-10-05
US9455744B2 (en) 2016-09-27
AU2019200328B2 (en) 2019-03-07
CN103931194A (zh) 2014-07-16
KR102784652B1 (ko) 2025-03-21
CL2013003603A1 (es) 2014-08-01
US9936227B2 (en) 2018-04-03
HUE042350T2 (hu) 2019-06-28
BR112013032333B1 (pt) 2022-07-26
US9930371B2 (en) 2018-03-27
JP5952900B2 (ja) 2016-07-13
KR101994869B1 (ko) 2019-07-01
CN103748886A (zh) 2014-04-23
US9596475B2 (en) 2017-03-14
CN103931194B (zh) 2017-09-05
MX345195B (es) 2017-01-20
IL249644A0 (en) 2017-02-28
PH12018500356B1 (en) 2019-09-20
EP2721822A1 (en) 2014-04-23
MX364201B (es) 2019-04-16
RU2755020C2 (ru) 2021-09-09
US20170250709A1 (en) 2017-08-31
PH12018500355B1 (en) 2018-08-13
AP3686A (en) 2016-04-23
AU2024266934B2 (en) 2026-02-19
KR102437504B1 (ko) 2022-08-29
IL297827B2 (en) 2024-01-01
JP6560393B2 (ja) 2019-08-14
JP2019050610A (ja) 2019-03-28
RU2018120845A (ru) 2019-12-09
US20180109813A1 (en) 2018-04-19
KR20200138444A (ko) 2020-12-09
CN107360423B (zh) 2020-05-12
LT3343781T (lt) 2022-03-10
CN103748886B (zh) 2017-11-10
ES2953667T3 (es) 2023-11-15
IL305221B1 (en) 2024-05-01
KR101619333B1 (ko) 2016-05-18
US10021393B2 (en) 2018-07-10
JP2025170279A (ja) 2025-11-18
JP6356723B2 (ja) 2018-07-11
KR102254000B1 (ko) 2021-05-20
KR102160647B1 (ko) 2020-09-28
IL312098B2 (en) 2025-04-01
ES2961663T3 (es) 2024-03-13
HK1248949A1 (zh) 2018-10-19
US12301819B2 (en) 2025-05-13
IL265636B (en) 2021-06-30
PH12018500354B1 (en) 2021-08-20
US20180359476A1 (en) 2018-12-13
US9918104B2 (en) 2018-03-13
IL304856B1 (en) 2024-04-01
IL265636A (en) 2019-05-30
IL309379A (en) 2024-02-01
PH12018500350A1 (en) 2018-08-13
US9729883B2 (en) 2017-08-08
JP6059212B2 (ja) 2017-01-11
CN107529706A (zh) 2018-01-02
HUE057958T2 (hu) 2022-06-28
IL230415A (en) 2017-01-31
HK1249313B (zh) 2020-04-24
PH12018500356A1 (en) 2018-08-13
HK1246542A1 (zh) 2018-09-07
IL316862A (en) 2025-01-01
KR20190136116A (ko) 2019-12-09
PH12018500351A1 (en) 2018-08-13
IL254274A0 (en) 2017-10-31
CN107517384B (zh) 2020-06-30
US20170302954A1 (en) 2017-10-19
SI2721819T1 (sl) 2023-12-29
BR112013032332B1 (pt) 2022-08-16
CN107529705B (zh) 2021-02-12
JP5925884B2 (ja) 2016-05-25
IL311563B1 (en) 2024-12-01
ZA201400030B (en) 2015-04-29
HK1248951A1 (zh) 2018-10-19
EP3703367A1 (en) 2020-09-02
IL312098B1 (en) 2024-12-01
IL299953A (en) 2023-03-01
US20170302969A1 (en) 2017-10-19
RU2014101164A (ru) 2015-07-27
KR102052471B1 (ko) 2019-12-05
PH12018500352B1 (en) 2018-08-13
CN107465928A (zh) 2017-12-12
MX2023005265A (es) 2023-05-23
DK2721822T3 (en) 2019-02-18
EP3471415A1 (en) 2019-04-17
ES2704627T3 (es) 2019-03-19
CN107801025B (zh) 2020-07-14
KR102631388B1 (ko) 2024-01-31
CO6852030A2 (es) 2014-01-30
EP4407995A3 (en) 2024-10-30
AU2024266934A1 (en) 2024-12-19
AU2017228613B2 (en) 2017-11-02
AU2019203792B2 (en) 2021-04-29
US20170302968A1 (en) 2017-10-19
PH12018500328A1 (en) 2018-07-09
US12069267B2 (en) 2024-08-20
PH12013502634B1 (en) 2019-07-17
US10432940B2 (en) 2019-10-01
AU2012268951A1 (en) 2014-01-16
HUE056273T2 (hu) 2022-02-28
FI2721819T3 (fi) 2023-11-16
IL230023A (en) 2017-06-29
IL309379B2 (en) 2025-01-01
HK1246543A1 (zh) 2018-09-07
DK2721819T3 (da) 2023-11-13
ES2906869T3 (es) 2022-04-20
MY184473A (en) 2021-04-01
AU2016202638B2 (en) 2017-06-15
HRP20220272T1 (hr) 2022-05-13
CN107465926A (zh) 2017-12-12
PH12018500328B1 (en) 2019-07-17
US10057603B2 (en) 2018-08-21
IL290229B (en) 2022-12-01
US9918090B2 (en) 2018-03-13
US10425644B2 (en) 2019-09-24
EP4407996C0 (en) 2025-11-05
IL283649A (en) 2021-07-29
PH12013502633A1 (en) 2024-04-03
CN107333140A (zh) 2017-11-07
JP2021108479A (ja) 2021-07-29
US20180205953A1 (en) 2018-07-19
JP2016174378A (ja) 2016-09-29
IL252388A0 (en) 2017-07-31
ES2704627T8 (es) 2021-01-25
US9628827B2 (en) 2017-04-18
IL283649B (en) 2022-03-01
US11533485B2 (en) 2022-12-20
KR101818978B1 (ko) 2018-01-16
US20250337907A1 (en) 2025-10-30
US20190327474A1 (en) 2019-10-24
US20220224904A1 (en) 2022-07-14
US11277614B2 (en) 2022-03-15
US9930370B2 (en) 2018-03-27
HUE063990T2 (hu) 2024-02-28
UA123987C2 (uk) 2021-07-07
CN107465926B (zh) 2021-06-08
MX2019004403A (es) 2021-10-07
US9743090B2 (en) 2017-08-22
PH12019500792A1 (en) 2020-12-02
PH12013502634A1 (en) 2014-02-10
PH12018500351B1 (en) 2019-09-04
RS63053B1 (sr) 2022-04-29
AU2019200328A1 (en) 2019-02-07
AU2018200699A1 (en) 2018-02-22
AP2014007360A0 (en) 2014-01-31
CA2839569A1 (en) 2012-12-20
US20170302953A1 (en) 2017-10-19
CN107529710B (zh) 2020-04-07
US20250317566A1 (en) 2025-10-09
DK3930330T3 (da) 2023-08-28
US11838511B2 (en) 2023-12-05
CN107529704B (zh) 2019-08-09
EP4277276A1 (en) 2023-11-15
AP2016009618A0 (en) 2016-12-31
RU2018100106A (ru) 2019-07-09
AU2021209284B2 (en) 2022-06-23
RU2018100106A3 (sr) 2019-07-17
AU2021209284A1 (en) 2021-08-19
HK1246541A1 (zh) 2018-09-07
US20230078680A1 (en) 2023-03-16
EP2721820A1 (en) 2014-04-23
AU2012268951B2 (en) 2015-07-30
EP3343781B1 (en) 2021-12-01
CN107347161B (zh) 2020-06-12
CN107465927B (zh) 2020-05-12

Similar Documents

Publication Publication Date Title
US12316846B2 (en) Entropy coding of motion vector differences