RS64867B1 - Entropijsko kodiranje koje podržava prekidački režim - Google Patents
Entropijsko kodiranje koje podržava prekidački režimInfo
- Publication number
- RS64867B1 RS64867B1 RS20231075A RSP20231075A RS64867B1 RS 64867 B1 RS64867 B1 RS 64867B1 RS 20231075 A RS20231075 A RS 20231075A RS P20231075 A RSP20231075 A RS P20231075A RS 64867 B1 RS64867 B1 RS 64867B1
- Authority
- RS
- Serbia
- Prior art keywords
- bin
- buffer
- bit
- probability
- entropy
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4031—Fixed length to variable length coding
- H03M7/4037—Prefix coding
- H03M7/4043—Adaptive prefix coding
- H03M7/4068—Parameterized codes
- H03M7/4075—Golomb codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4006—Conversion to or from arithmetic code
- H03M7/4012—Binary arithmetic codes
- H03M7/4018—Context adapative binary arithmetic codes [CABAC]
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3059—Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
- H03M7/3064—Segmenting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
- H04N19/126—Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/86—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/42—Conversion 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/174—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/184—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
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 medijskog sadržaja kao što su video ili audio podaci.
[0002] Mnogi audio i video audio kodeci su poznati u tehnici. Generalno, ovi kodeci smanjuju količinu podataka neophodnu za predstavljanje medijskog sadržaja kao što su audio ili video, odnosno komprimuju podatke. Međutim, zahtevi koji se postavljaju pred ove kodeke nisu ograničeni na postizanje visoke efikasnosti kompresije. Umesto toga, kodeci su uglavnom specijalizovani za određene zadatke aplikacija. Shodno tome, u audio polju, postoje audio kodeci specijalizovani za kodiranje govora, dok su drugi specijalizovani za kodiranje muzike. Štaviše, u nekim aplikacijama kašnjenje kodiranja je kritično i, shodno tome, neki od kodeka su specijalizovani za malo kašnjenje. Osim toga, većina ovih kodeka je dostupna u različitim nivoima složenosti/efikasnosti. To jest, neki od ovih nivoa su za nižu složenost kodiranja po cenu niže efikasnosti kodiranja. Standard za video kodiranje H.264, na primer, nudi osnovni i glavni profil. Prvenstveno, ovi profili kodiranja se međusobno razlikuju po aktiviranju/deaktivaciji određenih opcija kodiranja/gadžeta kao što su dostupnost/odsustvo SBR u polju kodiranja zvuka i dostupnost/odsustvo B okvira u polju kodiranja videa. Osim toga, značajan deo složenosti ovih medijskih kodeka odnosi se na entropijsko kodiranje elemenata sintakse. Generalno, VLC šeme entropijskog kodiranja imaju tendenciju da budu manje složene od šema aritmetičkog kodiranja, dok ove druge pokazuju bolju efikasnost kodiranja. Shodno tome, u standardu H264, kontekstualno adaptivno binarno aritmetičko kodiranje (CABAC) dostupno je samo u glavnom profilu, a ne u profilu osnovne linije. Očigledno, dekoderi konformnog profila osnovne linije mogu biti konfigurisani manje složeni od dekodera usklađenih sa glavnim profilom. Isto važi i za enkodere. Pošto ručni uređaji uključujući takve dekodere i/ili enkodere pate od ograničene dostupnosti energije, osnovni profil ima prednost u odnosu na glavni profil s obzirom na nižu složenost. De/koderi usklađeni sa glavnim profilom su složeniji ne samo zbog složenije šeme aritmetičkog kodiranja, već i zbog činjenice da ovi de/koderi u skladu sa glavnim profilom moraju biti kompatibilni unazad sa tokovima podataka usklađenih sa osnovnim profilom. Drugim rečima, povećana složenost je zbog šeme aritmetičkog kodiranja koja dodaje složenost koja proizilazi iz šeme kodiranja promenljive dužine niže složenosti.
[0003] Dokument Marpe et al.: "Context-based adaptive binary arithmetic coding in the H.264/AVC video compression standard", IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, sv.13, br. 7, 1. juli 2003, otkriva kontekstualnu adaptivnu binarnu aritmetičku šemu kodiranja za šemu video kodiranja H.264 koja ima bajpas režim.
[0004] Dokument Bin Guo i drugi: "A High Speed CABAG Algorithm Based on Probability Estimation Update", IMAGE AND GRAPHICS, 2007. ICIG 2007. FOURTH INTERNATIONAL CONFERENCE ON, IEEE, PISCATAWAY, NJ, USA, 1. avgust 2007. pokazuje algoritam CABAC velike brzine zasnovan na ažuriranju procene verovatnoće.
[0005] Dokument Hisao Sasai (Panasonic) i drugi: "Parallel Context Processing for Significance map using block-based context updates", 5. JCT-VG MEETING; 20110316 -20110323; GENEVA, br. JCTVC-E226 otkriva šemu za paralelizaciju obrade konteksta za poboljšanje propusnosti entropijskog kodera za CABAC.
[0006] S obzirom na gore navedeno, bilo bi povoljno da postoji koncept kodiranja koji omogućava efikasniju skalabilnost odnosa kodeksa između složenosti kodiranja s jedne strane i efikasnosti kodiranja s druge strane.
[0007] Shodno tome, cilj predmetnog pronalaska je da obezbedi takav koncept kodiranja.
[0008] Ovaj cilj se postiže kao što je prikazano u pridruženim nezavisnim zahtevima.
[0009] U skladu sa jednim izvođenjem, dekoder za dekodiranje toka podataka u koji su medijski podaci kodirani sadrži prekidač režima konfigurisan da aktivira režim niske složenosti ili režim visoke efikasnosti u zavisnosti od toka podataka, konfigurisan mehanizam za entropijsko dekodiranje da preuzme svaki simbol niza simbola entropijskim dekodiranjem iz toka podataka koristeći odabranu od mnoštva šema entropijskog dekodiranja, desimbolizator konfigurisan da desimbolizuje sekvencu simbola kako bi se dobio niz elemenata sintakse, rekonstruktor konfigurisan da rekonstruiše medijske podatke na osnovu niza elemenata sintakse, pri čemu izbor zavisi od aktiviranog režima niske složenosti i režima visoke efikasnosti.
[0010] U skladu sa drugom izvođenjem, dekoder za dekodiranje toka podataka u koji su medijski podaci kodirani sadrži prekidač režima konfigurisan da aktivira režim niske složenosti ili režim visoke efikasnosti u zavisnosti od toka podataka, desimbolizator konfigurisan da desimbolizuje niz simbola dobijenih iz toka podataka za dobijanje elemenata sintakse sa celobrojnim vrednostima korišćenjem funkcije mapiranja kojom se kontroliše kontrolni parametar, za mapiranje domena reči sekvence simbola u ko-domen elemenata sintakse sa celobrojnim vrednostima, i rekonstruktor konfigurisan da rekonstruiše medijske podatke na osnovu elemenata sintakse sa celobrojnim vrednostima, pri čemu je desimbolizator konfigurisan da izvrši desimbolizaciju tako da kontrolni parametar varira u skladu sa tokom podataka po prvoj brzini u slučaju da se aktivira režim visoke efikasnosti a kontrolni parametar je konstantan bez obzira na tok podataka ili se menja u zavisnosti od toka podataka, ali sa drugom brzinom nižom od prve u slučaju da se aktivira režim niske složenosti.
[0011] 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 blok dijagram enkodera u skladu sa jednom izvođenjem koristeći delimično preplitanje toka bitova;
Sl. 12 prikazuje šematski primere koji ilustruju status bafera kodne reči na strani enkodera na Sl. 11 u skladu sa jednim izvođenjem;
Sl. 13 prikazuje blok dijagram dekodera u skladu sa jednim izvođenjem koje koristi delimično preplitanje toka bitova;
Sl. 14 prikazuje blok dijagram dekodera prema jednom izvođenjenju koje koristi preplitanje kodnih reči korišćenjem jednog skupa kodnih reči;
Sl. 15 prikazuje blok dijagram enkodera u skladu sa jednim izvođenjem koje koristi preplitanje sekvenci bitova fiksne dužine;
Sl. 16 prikazuje šematski primere koji ilustruju status globalnog bafera bitova na strani enkodera na Sl. 15 u skladu sa jednim izvođenjem;
Sl. 17 prikazuje blok dijagram dekodera u skladu sa jednim izvođenjem koje koristi preplitanje sekvenci bitova fiksne dužine;
Sl. 18 prikazuje dekoder koji podržava prekidački režim prema jednom izvođenju;
Sl. 19 prikazuje dekoder koji podržava prekidački režim prema jednom daljem izvođenju;
Sl. 20 prikazuje enkoder koji odgovara dekoderu sa Sl. 18 prema jednom izvođenju; Sl. 21 prikazuje enkoder koji odgovara dekoderu sa Sl. 19 prema jednom izvođenju; i Sl. 22 prikazuje preslikavanje pStateCtx i fullCtxState/256.
[0012] 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.
[0013] U nastavku su prvo opisana izvođenja opšteg koncepta video kodiranja, u odnosu na Sl. 1 do 17. Slike 1 do 6 odnose se na deo video kodeka koji radi na nivou sintakse. Slike koje slede 8 do 17 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 predstavljen u odnosu na Sl. 1 do 17. Međutim, potrebno je unapred napomenuti da većina aspekata izvođenja ovog pronalaska nije ograničena na video kodiranje. Isto važi i za mnoge detalje navedene u nastavku.
[0014] Sl. 1 prikazuje primer za enkoder 10 u kojem mogu da se primene aspekti predmetne prijave.
[0015] Enoder kodira niz uzoraka 20 informacija u tok podataka. Niz uzoraka informacija može predstavljati bilo koju vrstu prostorno uzorkovanog informacionog signala. Na primer, niz 20 uzoraka može biti statična slika ili slika video zapisa. Shodno tome, uzorci informacija mogu odgovarati vrednostima osvetljenosti, vrednostima boja, luma vrednostima, hroma vrednostima ili slično. Međutim, uzorci informacija mogu takođe biti vrednosti dubine u slučaju da je niz 20 uzoraka mapa dubine koju generiše, na primer, senzor vremena svetlosti ili slično.
[0016] 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.
[0017] 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.
[0018] 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.
[0019] 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.
[0020] 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.
[0021] 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.
[0022] 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.
[0023] 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.
[0024] 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.
[0025] 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 su opisani 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.
[0026] 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.
[0027] 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.
[0028] 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.
[0029] 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.
[0030] 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.
[0031] 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.
[0032] 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.
[0033] 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.
[0034] 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.
[0035] 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.
[0036] 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.
[0037] 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.
[0038] 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.
[0039] 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.
[0040] 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.
[0041] 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).
1
Tabela 2: Primeri binarizacije za konačne skupove.
[0042] 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.
[0043] 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.
[0044] 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.
[0045] 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.
[0046] 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.
[0047] 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.
[0048] 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.
[0049] 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.
[0050] 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
1
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.
[0051] 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.
[0052] 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.
[0053] 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.
[0054] 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.
[0055] 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.
[0056] 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.
[0057] 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.
[0058] 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
1
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.
[0059] 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).
[0060] 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.
[0061] 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.
[0062] 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
1
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.
[0063] 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.
[0064] 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.
[0065] 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.
1
[0066] 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.
[0067] 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.
[0068] 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.
[0069] 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.
[0070] Dekoderi 322 binova rade inverzno preslikavanje odgovarajućih binova kodiranih na strani enkodera.
1
[0071] 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.
[0072] 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.
[0073] 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.
[0074] 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
1
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
[0075] 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
2
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
[0076] 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.
[0077] 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.
[0078] 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.
[0079] 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.
[0080] 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
[0081] 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.
[0082] Osnovna struktura enkodera sa preplitanjem kodnih reči je prikazana na Slici 11. Enkoderi 310 binova ne upisuju kodne reči direktno u delimične tokove bitova, već su povezani sa jednim baferom 329 kodne reči, iz kojeg se pišu kodne reči u tok 34 bitova u redosledu kodiranja. Enoderi 310 binova šalju zahteve za jedan ili više novih unosa 328 bafera kodnih reči u bafer 329 kodnih reči i kasnije šalju kodne reči 30 u bafer 329 kodnih reči, koje se čuvaju u rezervisanim unosima bafera. Kodnim rečima (uopšteno promenljive dužine) 31 bafera kodne reči 329 pristupa program za pisanje kodne reči 32, koji upisuje odgovarajuće bitove 33 u proizvedeni tok bitova 34. Bafer kodne reči 329 funkcioniše kao bafer „prvi uđe prvi izađe“; unosi kodne reči koji su ranije rezervisani se ranije upisuju u tok bitova.
[0083] U daljoj generalizaciji, moguće je više bafera kodnih reči i delimičnih tokova bitova, gde je broj bafera kodnih reči manji od broja enkodera binova. Enoder 310 binova rezerviše jednu ili više kodnih reči u baferu 329 kodnih reči, pri čemu se rezervacija jedne ili više kodnih reči u baferu kodnih reči pokreće određenim događajima u povezanom baferu 308 binova. U preferiranom izvođenju pronalaska, bafer 329 kodne reči radi tako da dekoder može trenutno da dekodira tok bitova. Redosled kodiranja kojim se kodne reči upisuju u tok bitova je isti kao redosled kojim su odgovarajuće kodne reči rezervisane u baferu kodnih reči. U preferiranom izvođenju pronalaska, svaki enkoder 310 binova rezerviše jednu kodnu reč, pri čemu se rezervacija pokreće određenim događajem u povezanom baferu binova. U drugom poželjnom izvođenju pronalaska, svaki enkoder 310 binova rezerviše više od jedne kodne reči, pri čemu je rezervacija pokrenuta određenim događajem u povezanom baferu binova. U daljem poželjnom izvođenju pronalaska, enkoderi 310 binova rezervišu različitu količinu kodnih reči, pri čemu količina kodnih reči koje su rezervisane od strane određenog enkodera binova može zavisiti od određenog enkodera binova i/ili drugih svojstava određenog enkodera binova /bafera binova (kao što je pridružena mera verovatnoće, broj već upisanih bitova, itd.).
[0084] U jednom poželjnom izvođenju pronalaska, bafer kodne reči radi na sledeći način. Ako je novi bin 307 poslata u određeni bafer 308 i broj već uskladištenih binova u baferu binova je nula i trenutno nema rezervisane kodne reči u baferu kodne reči za enkoder binova koji je povezan sa određenim baferom binova, povezani enkoder 310 binova šalje zahtev baferu kodne reči, kojim se jedna ili više unosa kodne reči rezerviše u baferu 329 kodne reči za određeni enkoder binova. Unosi kodne reči mogu imati promenljiv broj bitova; gornji prag za broj bitova u unosu bafera obično je dat maksimalnom veličinom kodne reči za odgovarajući enkoder binova. Sledeća kodna reč ili sledeće kodne reči koje proizvodi enkoder binova (za koje su rezervisani unos kodne reči ili unosi kodne reči) se čuvaju u rezervisanom unosu ili unosima bafera kodne reči. Ako su svi rezervisani unosi bafera u baferu kodne reči za određeni enkoder kodne reči popunjeni kodnim rečima i sledeći bin se pošalje u bafer binova koji je povezan sa određenim enkoderom kodne reči, jedna ili više novih kodnih reči su rezervisane u baferu kodnih reči za određeni enkoder binova, itd. Bafer 329 kodne reči na određeni način predstavlja bafer tipa prvi ušao-prvi izašao. Unosi bafera su rezervisani uzastopnim redosledom. Kodne reči za koje su odgovarajući unosi bafera rezervisani ranije su ranije upisani u tok bitova. Pisač kodne reči 32 proverava status bafera 329 kodne reči, bilo neprekidno ili nakon što je kodna reč 30 upisana u bafer 329 kodne reči. Ako prvi unos bafera sadrži kompletnu kodnu reč (tj. unos bafera nije rezervisan, ali uključuje kodna reč), odgovarajuća kodna reč 31 i odgovarajući unos bafera se uklanjaju iz bafera 320 kodne reči i bitovi kodne reči 33 se upisuju u tok bitova. Ovaj proces se ponavlja sve dok prvi unos bafera ne sadrži kodnu reč (tj. rezervisan je ili slobodan). Na kraju procesa dekodiranja, odnosno, ako su obrađeni svi elementi sintakse razmatrane količine podataka, bafer kodne reči mora da se isprazni. Za taj proces pražnjenja, sledeće se primenjuje za svaki bafer binova/koder binova kao prvi korak: Ako bafer bin sadrži binove, bin sa određenom ili proizvoljnom vrednošću se dodaje sve dok rezultujuća sekvenca binova ne predstavlja sekvencu binova koja je povezana sa kodnom rečju (kao što je gore navedeno, jedan poželjniji način dodavanja binova je dodavanje takvih vrednosti binova koje proizvode najkraću moguću kodnu reč - ili jednu od onih - koja je povezana sa sekvencom binova koja sadrži originalni sadržaj bafera binova kao prefiks), onda se kodna reč upisuje u sledeći rezervisani unos bafera za odgovarajući enkoder
2
binova (i odgovarajući) bafer binova se prazni. Ako je više od jednog unosa bafera rezervisano za jedan ili više enkodera binova, bafer kodne reči može i dalje da sadrži rezervisane unose kodne reči. U tom slučaju, ovi unosi kodnih reči se popunjavaju proizvoljnim, ali važećim kodnim rečima za odgovarajuće enkodere binova. U poželjnoj realizaciji pronalaska, ubacuje se najkraća važeća kodna reč ili jedna od najkraćih važećih kodnih reči (ako ih ima više). Konačno, sve preostale kodne reči u baferu kodnih reči se upisuju u tok bitova.
[0085] Dva primera za status bafera kodne reči su ilustrovana na Slici 12. U primeru (a), bafer kodne reči sadrži 2 unosa koji su popunjeni kodnom reči i 5 rezervisanih unosa. Pored toga, sledeći slobodni unos bafera je označen. Prvi unos je popunjen kodnom reči (tj. enkoder 2 binova je upravo upisao kodnu reč u prethodno rezervisani unos). U sledećem koraku, ova kodna reč će biti uklonjena iz bafera kodne reči i upisana u tok bitova. Zatim, prva rezervisana kodna reč za enkoder 3 binova je prvi unos bafera, ali ovaj unos se ne može ukloniti iz bafera kodne reči, pošto je samo rezervisan, ali nijedna kodna reč nije upisana u ovaj unos. U primeru (b), bafer kodne reči sadrži 3 unosa koji su popunjeni kodnom reči i 4 rezervisana unosa. Prvi unos je označen kao rezervisan i stoga pisac kodne reči ne može da upiše kodnu reč u tok bitova. Iako su 3 kodne reči sadržane u baferu kodne reči, pisač kodne reči mora da sačeka dok se kodna reč ne upiše u prvi rezervisani unos bafera za enkoder 3 binova. Treba imati u vidu da kodne reči moraju biti napisane redosledom kojim su rezervisane, kako bi bilo moguće da se proces na strani dekodera invertuje (pogledati dole).
[0086] Osnovna struktura dekodera sa preplitanjem kodnih reči je prikazana na Slici 13. Dekoderi 310 binova ne čitaju kodne reči direktno iz odvojenih delimičnih tokova bitova, već su povezani sa baferom 338 bitova, iz kojeg se kodne reči 337 čitaju po redosledu kodiranja. Treba napomenuti da bafer 338 bitova nije nužno potreban, pošto se kodne reči takođe mogu čitati direktno iz toka bitova. Bafer 338 bitova je uglavnom uključen u ilustraciju za jasno odvajanje različitih aspekata lanca obrade. Bitovi 339 toka 340 bitova sa isprepletanim kodnim rečima se sekvencijalno ubacuju u bafer 338 bitova, koji predstavlja bafer tipa prvi ušao-prvi izašao. Ako određeni dekoder 322 binova primi zahtev za jednu ili više sekvenci 35 binova, dekoder 322 binova čita jednu ili više kodnih reči 337 iz bafera 338 bitova preko zahteva za bitove 336. Dekoder može trenutno da dekodira elemente sintakse. Imajte na umu da enkoder (kao što je gore opisano) mora da obezbedi odgovarajućim radom bafera kodnih reči da su kodne reči napisane istim redosledom u tok bitova u kojem ih zahtevaju dekoderi binova. U dekoderu, ceo proces dekodiranja se pokreće zahtevima za elemente sintakse. Parametri kao broj kodnih reči koje su rezervisane na strani enkodera od strane određenog enkodera binova i broj kodnih reči koje čita odgovarajući dekoder binova moraju biti isti.
[0087] U daljoj generalizaciji, moguće je više bafera kodnih reči i delimičnih tokova bitova, gde je broj bafera bitova manji od broja dekodera bitova. Dekoder 322 bitova čita jednu ili više kodnih reči iz bafera 338 bitova u jednom trenutku, pri čemu je čitanje jedne ili više kodnih reči iz bafera bitova pokrenuto određenim događajima u povezanom baferu 320. U poželjnom izvođenju pronalaska, dekoder radi na način da se čita jedna ili više kodnih reči kada se zahtev za bin 319 pošalje određenom baferu 320, a bafer bin ne sadrži nikakve binove. Ali takođe je moguće pokrenuti čitanje kodnih reči drugim događajima, npr. ako je broj binova u baferu binova ispod unapred definisanog praga. U poželjnoj varijanti pronalaska, svaki dekoder 338 binova čita jednu kodnu reč, pri čemu je čitanje pokrenuto određenim događajem u povezanom baferu binova. U još jednoj poželjno izvođenju pronalaska, svaki dekoder 322 binova čita više od jedne kodne reči, pri čemu je čitanje pokrenuto određenim događajem u povezanom baferu binova. U daljem poželjnom rešenju ovog pronalaska, dekoderi 322 čitaju različitu količinu kodnih reči, pri čemu količina kodnih reči koje čita određeni dekoder binova može zavisiti od određenog dekodera binova i/ili drugih svojstava određenog dekodera binova/bafera binova (kao što je pridružena mera verovatnoće, broj već pročitanih bitova, itd.).
[0088] U jednom poželjnom izvođenju pronalaska, čitanje kodnih reči iz bafera bitova radi se na sledeći način. Ako se novi zahtev 319 za bin pošalje iz selektora 318 bafera do određenog bafera 320 binova i broj binova u baferu binova je nula, povezani dekoder 322 binova čita jednu ili više kodnih reči 337 iz bafera 338 bitova, preko zahteva 336 za bite u baferu 338 bitova. Dekoder bitova 322 konvertuje pročitane kodne reči 337 u sekvence binova 321 i čuva ove sekvence bitova u povezanom baferu 320. Kao konačni odgovor na zahtev 319 za binove, prvi umetnuti bin se uklanja iz bafera 320 i šalje selektoru 318 bafera. Kao odgovor na dalje zahteve za binom, preostali binovi u baferu za binove se uklanjaju sve dok se bafer ne isprazni. Dodatni zahtev za binom pokreće dekoder binova da pročita jednu ili više novih kodnih reči iz bafera bitova, itd. Bafer 338 bitova predstavlja bafer tipa prvi ušao-prvi izašao unapred definisane veličine i kontinuirano se popunjava bitovima 339 iz toka bitova. 340. Da bi se osiguralo da su kodne reči upisane u tok bitova na isti način na koji se zahtevaju procesom dekodiranja, bafer kodnih reči na strani enkodera može da se koristi na gore opisan način.
[0089] Prema tome, svaki od mnoštva entropijskih dekodera može biti dekoder promenljive dužine konfigurisan da mapira kodne reči fiksne dužine u sekvence simbola promenljive dužine, a unos kodne reči kao što je izlaz bafera 43 kodne reči može biti obezbeđen za prijem jednog toka isprepletanih kodnih reči. Mnoštvo entropijskih dekodera 22 može biti konfigurisano da preuzme kodne reči iz unosa kodne reči u sekvencijalnom redosledu u zavisnosti od redosleda u kome rezultiraju simboli niza simbola koji se rekonstruišu kako ih preuzima selektor 18 iz mnoštva entropijskih dekodera. u novom nizu simbola koji će se mapirati iz nove kodne reči na odgovarajućim entropijskim dekoderima.
Preplitanje kodnih reči promenljive dužine sa ograničenjem malog kašnjenja
[0090] Opisano preplitanje kodnih reči ne zahteva da se bilo koja informacija o particionisanju šalje kao sporedna informacija. A pošto se kodne reči prepliću u toku bitova, kašnjenje je generalno malo. Međutim, nije garantovano da se poštuje određeno ograničenje kašnjenja (npr. određeno maksimalnim brojem bitova koji su uskladišteni u baferu kodne reči). Štaviše, potrebna veličina bafera za bafer kodne reči može teoretski postati veoma velika. Kada se uzme u obzir primer na Slici 12(b), moglo bi biti moguće da se nikakvi dalji binovi ne šalju u bafer 3 binova i stoga enkoder 3 binova neće poslati nikakvu novu kodnu reč u bafer kodne reči sve dok se primenjuje proces pražnjenja na kraju paketa podataka. Tada bi sve kodne reči za bin enkodere binova 1 i 2 morale da sačekaju do kraja paketa podataka, pre nego što se mogu upisati u tok bitova. Ovaj nedostatak se može zaobići dodavanjem dodatnog mehanizma procesu kodiranja (a takođe i procesu dekodiranja kako je kasnije opisano). Osnovni koncept tog dodatnog mehanizma je da ako mera koja se odnosi na kašnjenje ili gornju granicu kašnjenja (pogledati dole) premašuje određeni prag, prvi rezervisani unos bafera se popunjava pražnjenjem odgovarajućeg bafera binova (pomoću sličnog mehanizma kao na kraju paketa podataka). Ovakvim mehanizmom se smanjuje broj unosa u bafer na čekanju sve dok pridružena mera kašnjenja ne bude manja od specificiranog praga. Na strani dekodera, binovi koji su umetnuti na strani enkodera da bi se poštovalo ograničenje kašnjenja moraju biti odbačeni. Za ovo odbacivanje binova u osnovi se može koristiti isti mehanizam
2
kao na strani enkodera. U nastavku, dva poželjna izvođenja za takvu kontrolu kašnjenja su opisana.
[0091] U jednom poželjnom izvođenju, mera za kašnjenje (ili gornja granica kašnjenja) je broj aktivnih unosa bafera u baferu kodne reči, gde je broj aktivnih unosa u baferu broj rezervisanih unosa u baferu plus broj unosa bafera koji sadrže kodne reči. Treba uočiti da je prvi unos bafera uvek rezervisani unos bafera ili slobodan unos bafera, pošto ako prvi unos bafera sadrži kodnu reč, ova kodna reč se upisuje u tok bitova. Ako je, na primer, maksimalno dozvoljeno kašnjenje bafera (kako je određeno od strane aplikacije) D bitova, a maksimalna veličina kodne reči za sve enkodere binova je L, donja granica za maksimalni broj kodnih reči koje mogu biti sadržane u baferu kodne reči bez kršenja ograničenje kašnjenja može se izračunati sa N = D/ L. Mera kašnjenja D u bitovima nije potrebna sistemu, ali maksimalan broj kodnih reči N mora biti poznat i enkoderu i dekoderu. U poželjnoj varijanti pronalaska, maksimalni broj unosa bafera kodne reči N je fiksiran od strane aplikacije. U drugom poželjnom izvođenju pronalaska, maksimalni broj unosa bafera kodne reči N se signalizira unutar toka bitova, na primer, u zaglavlju paketa podataka (ili zaglavlju preseka) ili u skupu parametara, koji je uključen u tok bitova. Ako enkoder 310 binova pošalje zahtev za rezervaciju jednog ili više novih unosa bafera u bafer 329 kodne reči, sledeći proces se izvršava pre nego što se rezerviše novi unos bafera kodne reči (tj. izvršava se više puta ako više unosa u bafer kodne reči rezervisano jednim zahtevom): Ako je broj trenutno aktivnih unosa bafera plus 1 (uzimajući u obzir unos bafera koji će biti rezervisan sledeći) veći od maksimalnog broja unosa bafera kodne reči N, prvi unos bafera (koji je rezervisan) se isprazni opisanim procesom u nastavku sve dok broj trenutno aktivnih unosa u baferu plus 1 ne bude manji ili jednak maksimalnom broju unosa u baferu kodne reči N. Pražnjenje rezervisanog unosa bafera je slično pražnjenju na kraju paketa podataka: Enkoder 310 binova koji je rezervisao odgovarajući prvi unos bafera se isprazni dodavanjem binova sa određenim ili proizvoljnim vrednostima u povezani bafer 308 binova sve dok rezultujuća sekvenca binova ne predstavlja sekvencu binova koja je povezana sa kodnom reči, kodna reč se zatim upisuje u rezervisanu unos bafera i konačno se dodaje u tok bitova (dok se prazni bafer binova i uklanja prethodno rezervisani unos bafera). Kao što je gore pomenuto, jedan poželjniji način za dodavanje binova u bafer binova je dodavanje onih binova koji proizvode najkraću moguću kodnu reč. Na strani dekodera, sličan proces se izvršava za odbacivanje binova koji su dodati da bi se poštovalo ograničenje kašnjenja. Prema tome, dekoder održava brojač C koji broji kodne reči koje su pročitane iz bafera bitova (ovaj brojač se može održavati u baferu bitova). Ovaj brojač C se inicijalizuje (npr. sa nulom) na početku dekodiranja paketa podataka i povećava se za jedan nakon čitanja kodne reči. Pored toga, svaki dekoder 322 binova sadrži brojač Cx, koji čuva vrednost brojača kodne reči C pre nego što je poslednja kodna reč pročitana od strane odgovarajućeg dekodera 322 binova. To jest, kada određeni dekoder 322 binova pročita novu kodnu reč, njegov brojač Cx je postavljen jednak sa C kao prvi korak, a zatim se kodna reč čita iz bafera bitova. Kada se zahtev 319 za bin pošalje u određeni bafer 320 binova i razlika (C - Cx) između ukupnog brojača C kodnih reči i brojača Cx povezanog dekodera 322 binova je veća od maksimalnog broja N unosa bafera kodnih reči, svi binovi koji su trenutno uskladišteni u određenom baferu 320 se odbacuju i ignorišu. Pored tog dodatnog koraka, dekodiranje se radi na gore opisani način. Ako je bafer 320 za binove u koji se šalje zahtev 319 za bin prazan (bilo zato što su svi binovi već uklonjeni ili zato što je mehanizam sa malim kašnjenjem odbacio sve binove u prvom koraku nakon što je primljen zahtev za bin), povezani bin dekoder 322 čita jednu ili više novih kodnih reči iz bafera 338 bitova itd.
2
[0092] U drugom poželjnom izvođenju pronalaska, mera za kašnjenje (ili gornja granica kašnjenja) je zbir maksimalnih dužina kodne reči za aktivne unose međumemorije u baferu kodne reči, gde je maksimalna dužina kodne reči za određeni unos bafera zavisi od dekodiranog bina koji je pridružen tom unosu bafera. Kao ilustracija, maksimalne dužine kodne reči za unose bafera su naznačene u primerima u 6. Treba uočiti ponovo da je prvi unos bafera uvek rezervisani unos bafera ili slobodan unos u baferu, pošto ako prvi unos međumemorije sadrži kodnu reč, ova kodna reč se upisuje u tok bitova. Neka maksimalno dozvoljeno kašnjenje bafera (kako je određeno aplikacijom) bude D bitova. Ovo maksimalno kašnjenje D bafera mora biti poznato i enkoderu i dekoderu. U poželjnom izvođenju pronalaska, maksimalno kašnjenje D bafera je fiksirano aplikacijom. U drugom poželjnom izvođenju pronalaska, maksimalno kašnjenje D bafera se signalizira unutar toka bitova, na primer, u zaglavlju paketa podataka (ili zaglavlju preseka) ili u skupu parametara, koji je uključen u tok bitova. Može se signalizirati u jedinicama bitova, ili bajtova, ili višestrukim bitovima, ili višestrukim bajtovima. Ako enkoder 310 binova pošalje zahtev za rezervaciju jednog ili više novih unosa bafera u bafer 329 kodne reči, sledeći proces se izvršava pre nego što se rezerviše novi unos bafera kodne reči (tj. izvršava se više puta ako su više unosa u bafer kodne reči rezervisani jednim zahtevom).
[0093] Ako je zbir maksimalnih dužina kodne reči za sve trenutno aktivne unose u bafer plus maksimalna dužina kodne reči za unos bafera koji će biti rezervisan veći od maksimalnog kašnjenja D bafera, prvi unos bafera (koji je rezervisan) se isprazni gore opisanim procesom sve dok zbir maksimalnih dužina kodne reči za sve aktivne unose u baferu plus maksimalna dužina kodne reči za unos međumemorije koji će biti rezervisan ne bude manji ili jednak maksimalnom kašnjenju D međubafera. Kao primer, razmotrimo primer na Slici 12(b). Zbir maksimalnih dužina kodnih reči za sve trenutno aktivne unose bafera je 29. Pretpostavimo da je maksimalno kašnjenje bafera D postavljeno na 32. Ako je sledeći unos međumemorije rezervisan od strane enkodera 2 za koji je maksimalna dužina kodne reči jednaka 3, prvi unos bafera se ne isprazni, pošto 29 3 nije veće od 32. Ali ako je sledeći unos bafera rezervisan od strane enkodera 1 za koji je maksimalna dužina kodne reči jednaka 7, prvi unos bafera se isprazni, pošto je 29 7 veće od 32. Pražnjenje rezervisanog unosa bafera se vrši kao što je gore opisano (dodavanjem bina sa određenim ili proizvoljnim vrednostima u odgovarajući bafer binova).
[0094] Na strani dekodera se izvršava sličan proces za odbacivanje binova koji su dodati da bi se poštovalo ograničenje kašnjenja. Stoga, dekoder održava brojač C koji broji maksimalnu dužinu kodne reči za kodne reči koje su pročitane iz bafera bitova (ovaj brojač se može održavati u baferu bitova). Treba imati u vidu da maksimalne dužine kodnih reči koje su povezane sa različitim dekoderima binova mogu biti različite. Brojač C se inicijalizuje (npr. nulom) na početku dekodiranja paketa podataka i povećava se nakon čitanja kodne reči. Ovaj brojač se ne povećava za stvarnu dužinu pročitanih kodnih reči, već za njegovu maksimalnu dužinu. Odnosno, ako je kodna reč pročitana od strane određenog dekodera binova i maksimalna dužina kodne reči koja je povezana sa tabelom kodnih reči koju koristi određeni dekoder binova je Lx (drugi dekoder binova može biti povezan sa različitom maksimalnom dužinom kodne reči), brojač C se povećava za Lx. Pored ukupnog brojača C, svaki dekoder 322 binova sadrži brojač Cx, koji čuva vrednost brojača C kodne reči pre nego što je poslednja kodna reč pročitana od strane odgovarajućeg dekodera 322 binova. To jest, kada određeni dekoder 322 binova pročita novu kodnu reč, njegov brojač Cx je postavljen da bude jednak C kao prvi korak, a zatim se kodna reč čita iz bafera bitova. Kada se zahtev 319 za binovima pošalje u određeni bafer 320 binova i razlika (C - Cx) između ukupnog brojača C i brojača Cx povezanog dekodera 322 binova je veća od maksimalnog kašnjenja D bafera, svi
2
binovi koji koji su trenutno uskladišteni u određenom baferu 320 se odbacuju i ignorišu. Pored tog dodatnog koraka, dekodiranje se radi na gore opisani način. Ako je bafer 320 za binove u koji se šalje zahtev 319 za binove prazan (bilo zato što su svi binovi već uklonjeni ili zato što je mehanizam sa malim kašnjenjem odbacio sve binove u prvom koraku nakon što je primljen zahtev za binove), povezani dekoder 322 binova čita jednu ili više novih kodnih reči iz bafera 338 bitova itd.
[0095] Prema tome, mnoštvo entropijskih dekodera 22 i selektor 18 mogu biti konfigurisani da povremeno odbacuju sufikse sekvenci simbola tako da ne učestvuju u formiranju niza simbola koji se rekonstruišu. 29. Povremeno odbacivanje može da se izvede u događajima gde određeni broj kodnih reči koji je preuzet iz unosa kodne reči pomoću mnoštva entropijskih dekodera između dva uzastopna preuzimanja kodnih reči odgovarajućeg entropijskog dekodera iz unosa kodne reči, ispunjava unapred određeni kriterijum. Mnoštvo entropijskih enkodera i bafer kodnih reči mogu, zauzvrat, da budu konfigurisani da povremeno proširuju trenutno prosleđene, ali još uvek nemapirane simbole u važeće sekvence simbola tako što nebrižni simboli imaju trenutno prosleđene, ali još uvek ne mapirane simbole kao prefiks, mapiraju ovako proširene sekvence simbola u kodne reči, unose tako dobijene kodne reči u rezervisane unose kodnih reči i isprazne unose kodnih reči. Povremeno proširenje, unos i pražnjenje može se desiti u događajima gde broj rezervisanih unosa kodne reči plus broj unosa kodnih reči u kojima su unete kodne reči ispunjavaju unapred određeni kriterijum. Unapred određeni kriterijumi mogu uzeti u obzir maksimalnu dužinu kodnih reči većeg broja parova enkoder/dekoder.
[0096] Za neke arhitekture, gore opisano poželjno izvođenje za preplitanje kodnih reči može rezultirati nedostatkom u smislu složenosti dekodiranja. Kao što je ilustrovano na Slici 13, svi dekoderi 322 binova čitaju kodne reči (u opštem slučaju, kodne reči promenljive dužine) iz jednog bafera 338 bitova. Čitanje kodnih reči se ne može vršiti paralelno, pošto se kodna reč mora pročitati u tačno poretku. To znači da određeni decoder binova mora da sačeka dok drugi dekoderi binova ne završe čitanje kodnih reči. A kada je složenost čitanja kodnih reči promenljive dužine značajna u odnosu na ostatak (delimično paralelizovanog) procesa dekodiranja, ovaj pristup kodnim rečima promenljive dužine može biti usko grlo za ceo proces dekodiranja. Postoje neke varijacije opisanih izvođenja pronalaska koje se mogu koristiti za smanjenje složenosti pristupa iz jednobitnog bafera, a neke od njih će biti opisane u nastavku. U jednom poželjnom izvođenju pronalaska, postoji jedan skup kodnih reči (koji predstavljaju na primer prefiks kod bez redundanse) i skup kodnih reči koji se koristi za svaki dekoder 322 binova je podskup jednog skupa kodnih reči. Treba imati u vidu da različiti dekoderi 322 binova mogu koristiti različite podskupove jednog skupa kodnih reči. Čak i ako su skupovi kodnih reči koje koriste neki od dekodera 322 binova isti, njihova povezanost sa sekvencama binova je različita za različite dekodere 322 binova. U posebnom izvođenju pronalaska, isti skup kodnih reči se koristi za sve dekodere 322 binova. Ako imamo jedan skup kodnih reči koji uključuje skupove kodnih reči za sve dekodere binova kao podskupove, raščlanjivanje kodnih reči se može obaviti van dekodera binova, što može smanjiti složenost pristupa kodnim rečima. Proces kodiranja se ne menja u odnosu na proces opisan gore. Modifikovani proces dekodiranja je ilustrovan na Slici 14. Jedan čitač kodne reči se napaja sa bitovima 346 iz toka 340 bitova i analizira - generalno promenljive dužine - kodne reči. Pročitane kodne reči 344 se ubacuju u bafer 343 kodnih reči, koji predstavlja bafer tipa prvi ušao-prvi izašao. Dekoder 322 binova šalje zahtev za jednu ili više kodnih reči 341 baferu 343 kodnih reči i kao odgovor na ovaj zahtev, jedna ili više kodnih reči se uklanjaju iz bafera kodnih reči (uzastopnim redosledom) i šalju odgovarajućem dekoderu 322 binova. Treba imati u vidu da se sa ovim izvođenjem pronalaska, potencijalno složeno raščlanjivanje kodne
2
reči može obaviti u pozadinskom procesu i ne mora da čeka na dekodere binova. Dekoderi binova pristupaju već raščlanjenim kodnim rečima, potencijalno složeno raščlanjivanje kodnih reči više nije deo zahteva za celokupni bafer. Umesto toga, već raščlanjene kodne reči se šalju dekoderima binova, što se takođe može implementirati na način da se samo indeksi kodnih reči šalju dekoderima binova.
Preplitanje sekvenci bitova fiksne dužine
[0097] 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.
[0098] Slika 15 prikazuje ilustraciju osnovne strukture enkodera za izvođenje pronalaska koja prepliće sekvence bitova fiksne dužine za dva ili više enkodera binova. Za razliku od izvođenja prikazanog na Slici 11, enkoderi 310 binova nisu povezani sa jednim baferom kodne reči. Umesto toga, svaki enkoder 310 binova je povezan sa zasebnim baferom 348 bitova, koji čuva bitove za odgovarajući delimični tok bitova. Svi baferi 348 bitova su povezani sa globalnim baferom 351 bitova. Globalni bafer 351 bitova je povezan sa pisačem 353 bitova, koji uklanja bitove 352 u redosledu kodiranja/dekodiranja iz globalnog bafera bitova i upisuje uklonjene bitove 354 u tok 355 bitova. Na određene događaje u određenom baferu 348 bitova ili povezanom enkoderu 310 binova ili baferu 308 binova, bafer 348 bitova šalje zahtev 349 globalnom baferu 351 bitova kojim je određeni broj bitova rezervisan u globalnom baferu 351 bitova. Zahtevi 349 za rezervaciju sekvenci bitova fiksne dužine se obrađuju u sekvencijalnom redosledu. Globalni bafer 351 bitova predstavlja bafer tipa prvi ušao-prvi izašao na određeni način; bitovi koji su ranije rezervisani se upisuju ranije u tok bitova. Treba napomenuti da različiti baferi 348 bitova mogu rezervisati različitu količinu bitova, koji takođe mogu varirati tokom vremena na osnovu već kodiranih simbola; ali broj bitova koji su rezervisani određenim zahtevom je poznat u trenutku kada se zahtev šalje globalnom baferu bitova.
2
[0099] U posebnoj izvođenju pronalaska, baferi 348 bitova i globalni bafer 351 bitova rade kao što je opisano u nastavku. Količina bitova koja je rezervisana od strane određenog bafera 348 bitova je označena kao Nk. Ovaj broj bitova Nx može biti različit za različite bafere 348 bitova i takođe može varirati tokom vremena. U poželjnom izvođenju pronalaska, broj bitova Nk koji su rezervisani od strane određenog bafera 348 bitova je fiksiran tokom vremena. Rezervacije za fiksni broj Nx bitova 349 se pokreću na osnovu broja bitova Mx u baferima 348 bitova, broja bitova Nx za zahteve za rezervaciju i pridružene maksimalne dužine Lx kodne reči. Treba imati u vidu da svaki enkoder 310 binova može biti povezan sa različitom maksimalnom dužinom Lx kodne reči. Ako je bin 307 poslat u određeni bafer 308, a određeni bafer 308 je prazan, a ne više od jedne sekvence Nx bitova je rezervisano u globalnom baferu bitova bafer bitova 348 bitova koji je povezan sa određenim baferom bitova (preko enkodera binova), i razlika Nx - Mx između broja Nx bitova koji su rezervisani zahtevom za rezervaciju bafera 348 bitova koji je povezan (preko enkodera binova) sa određenim baferom 308 binova i broja bitova Mx koji su trenutno prisutni u ovom baferu 348 bitova manji je od maksimalne dužine Lx kodne reči koja je povezana sa odgovarajućim enkoderom 310 binova, povezani bafer 349 bitova šalje zahtev 349 za rezervaciju Nx bitova u globalni bafer 351 bitova. Globalni bafer 351 bitova rezerviše Nx bitova za određeni bafer 348 bitova i povećava njegov pokazivač za sledeću rezervaciju. Nakon što su Nx bitova rezervisani u globalnom baferu bitova, bin 307 se čuva u baferu 308 binova. Ako ovaj pojedinačni bin već predstavlja sekvencu binova koja je povezana sa kodnom reči, enkoder 310 binova uklanja ovaj bin iz bafera 308 binova i upisuje odgovarajuću kodnu reč 347 u povezani bafer 248 bitova. U suprotnom (ova pojedinačni bin već predstavlja sekvencu binova koja je povezana sa kodnom reči), dalje binovi 307 se prihvataju od strane određeni bafer 308 dokle god bafer 308 binova sadrži bin sekvencu koja je povezana sa kodnom reči. U ovom slučaju, povezani enkoder 310 binova uklanja bin sekvencu 309 iz bafera 308 binova i upisuje odgovarajuću kodnu reč 347 u povezani bafer 348 bitova. Ako je rezultujući broj bitova Mx u baferu 348 bitova veći ili jednak broju rezervisanih bitova Nx, Nx bitova koji su prvi upisani u bafer 348 bitova se ubacuju u prethodno rezervisani prostor u globalnom baferu 351 bitova. Za sledeći bin 307 koji se šalje u određeni bafer 308 bitova 30, isti proces kao što je gore navedeno se izvršava; tj., prvo se proverava da li novi broj Nx bitova mora biti rezervisan u globalnom baferu bitova (ako je Nx - Mx manje od Lx), a zatim se bin ubacuje u bafer 308 binova, itd. Pisač bitova upisuje sekvence bitova fiksne dužine globalnog bafera bitova redosledom kojim su rezervisane. Ako prvi unos fiksne dužine u globalnom baferu 351 bitova sadrži sekvencu bitova fiksne dužine koja je zapravo umetnuta u globalni bafer bitova (tj. nije samo rezervisana), pisač 353 bitova uklanja bitove za ovu sekvencu 352 bitova iz globalnog bafera 351 bitova i upisuje bitove 354 u tok bitova. Ovaj proces se ponavlja sve dok prvi unos fiksne dužine u globalnom baferu bitova ne bude rezervisan ili slobodan unos. Ako prvi unos fiksne dužine u globalnom baferu bitova predstavlja rezervisani unos, pisač 353 bitova čeka dok se ovaj unos ne popuni stvarnim bitovima pre nego što upiše dalje bitove 354 u tok 355 bitova.
[0100] Na kraju paketa podataka, baferi binova se prazne kao što je gore opisano. Pored toga, baferi bitova se moraju isprazniti dodavanjem bitova sa određenom ili proizvoljnom vrednošću dok se svi rezervisani unosi bafera u globalnom baferu bitova ne popune i zapišu u tok bitova.
[0101] Na Slici 16, ilustrovana su dva primera za mogući status globalnog bafera 351 bitova. U primeru (a), ilustrovan je slučaj u kojem različiti baferi bitova/koderi bitova rezervišu različit broj bitova. Globalni bafer bitova sadrži 3 unosa sa stvarno napisanim sekvencama bitova fiksne dužine i 4 unosa sa rezervisanim sekvencama bitova fiksne dužine. Prvi unos fiksne dužine već sadrži stvarne bitove (koje mora da je upravo ubacio bafer bitova/koder binova 2); ovaj unos (tj. odgovarajućih 8 bitova) se može ukloniti i upisati u tok bitova. Sledeći unos rezerviše 10 bitova za enkoder 3 binova, ali stvarni bitovi još uvek nisu umetnuti. Ovaj unos se ne može upisati u tok bitova; mora se sačekati dok se stvarni bitovi ne ubace. U drugom primeru (b), svi baferi bitova/enkoderi binova rezervišu isti broj bitova (8 bitova). Globalni bafer bitova sadrži 4 rezervacije za 8-bitne sekvence i 3 stvarno napisane 8-bitne sekvence. Prvi unos sadrži rezervaciju za 8 bita za enkoder 3 binova. Pre nego što bilo koji novi bit može da se upiše u tok bitova, pisač bitova mora da sačeka dok bafer bitova/koder bitova 3 ne upiše stvarne vrednosti od 8 bitova u ovaj rezervisan unos.
[0102] Slika 17 prikazuje ilustraciju osnovne strukture dekodera za izvođenje pronalaska koje prepliće sekvence bitova fiksne dužine. Za razliku od izvođenja prikazanog na Slici 13, dekoderi 322 binova nisu povezani sa jednim baferom bitova. Umesto toga, svaki dekoder 322 binova je povezan sa zasebnim baferom 358 bitova, koji čuva bitove iz odgovarajućeg delimičnog toka bitova. Svi baferi 358 bitova su povezani sa globalnim baferom 361 bitova. Bitovi 362 iz toka 363 bitova se ubacuju u globalni bafer 361 bitova. Na određene događaje u određenom baferu 358 bitova ili povezanom dekoderu 322 bitova ili baferu 320 binova, bafer 358 bitova šalje zahtev 359 globalnom baferu 361 bitova kojim se sekvenca bitova 360 fiksne dužine uklanja iz globalnog bafera 361 bitova i ubacuje u određeni bafer 358 bitova. Zahtevi 359 za sekvence bitova fiksne dužine se obrađuje po redosledu. Globalni bafer 361 bitova predstavlja bafer tipa prvi ušao-prvi izašao; bitovi koji su ranije umetnuti u globalni bafer bitova se ranije uklanjaju. Treba napomenuti da različiti baferi 358 bitova mogu zahtevati različitu količinu bitova, koja takođe može varirati tokom vremena na osnovu već dekodiranih simbola; ali je broj bitova koji se zahtevaju određenim zahtevom poznat u trenutku kada se zahtev šalje u globalni bafer bitova. Treba napomenuti da globalni bafer 361 bitova nije nužno potreban, pošto se kodne reči takođe mogu direktno čitati iz toka bitova. Globalni bafer 361 bitova je uglavnom uključen u ilustraciju za jasno odvojene različite aspekte lanca obrade.
[0103] U posebnom izvođenju pronalaska, baferi 358 bitova i globalni bafer 361 bitova rade kao što je opisano u nastavku. Broj bitova koji zahteva i čita određeni bafer 358 bitova je označen kao Nx, jednak je broju bitova koji je upisan u globalni bafer bitova od strane odgovarajućeg bafera bitova na strani enkodera. Ovaj broj bitova Nx može biti različit za različite bafere 358 bitova i takođe može varirati tokom vremena. U poželjnom izvođenju pronalaska, broj bitova Nx koji se zahtevaju i čitaju od strane određenog bafera 358 bitova je fiksiran tokom vremena. Čitanje fiksnog broja Nx bitova 360 se pokreće na osnovu broja bitova Mx u baferu 358 bitova i pridružene maksimalne dužine Lx kodne reči. Treba imati u vidu da svakiž dekoder 322 binova može biti povezan sa različitom maksimalnom dužinom Lx kodne reči. Ako se zahtev 319 za binom pošalje određenom baferu 320 binova, a određeni bafer 320 binova je prazan, a broj Mx bitova u baferu 358 bitova koji je povezan (preko dekodera binova) sa određenim baferom 320 binova je manji od maksimalne dužine Lx kodne reči koja je povezana sa odgovarajućim dekoderom 322 bitova, povezani bafer 358 bitova šalje zahtev 359 za nove sekvence od Nx bitova globalnom baferu 361 bitova. Kao odgovor na ovaj zahtev, prvih Nx bitova se uklanjaju iz globalnog bafera 361 bitova i ova sekvenca od Nx bitova 360 se šalje u bafer 358 bitova iz kojeg je zahtev poslat. Konačno, ova sekvenca od Nx bitova se dodaje odgovarajućem baferu 358 bitova. Zatim se sledeća kodna reč 357 čita iz ovog bafera bitova, a povezani dekoder 322 bitova ubacuje pridruženu sekvencu bita 321 u povezani bafer bita 320. Kao konačni odgovor na originalni zahtev za bin 319, prvi bin se uklanja iz bafera 320 i ovaj dekodirani bin 325 se šalje selektoru 318 bafera binova. Kada se sledeći zahtev 319 za binom pošalje u određeni bafer 320 binova a bin bafer binova nije prazan, sledeći bit se uklanja iz bafera 320 binova. Ako je bafer binova prazan, ali je broj Mx bitova u povezanom baferu 358 bitova veći ili jednak pridruženoj maksimalnoj dužini Lx
1
kodne reči, sledeća kodna reč se čita iz bafera bitova i nova sekvenca binova se ubacuje u bafer binova, iz koje se uklanja prvi bit i šalje selektoru bafera binova. Ako je bafer binova prazan i broj Mx bitova u povezanom baferu 358 bitova je manji od pridružene maksimalne dužine Lx kodne reči, sledeća sekvenca Nx bitova se čita iz globalnog bafera 361 bitova 361 i ubacuje u povezani lokalni bafer 358 bitova, sledeća kodna reč se čita iz bafera bitova, nova bin sekvenca se ubacuje u bafer binova, a prva sekvenca binova se uklanja i šalje selektoru bafera binova. Ovaj proces se ponavlja sve dok se svi elementi sintakse ne dekodiraju.
[0104] Na kraju paketa podataka, više binova i/ili bitova nego što je potrebno za dekodiranje zahtevanih elemenata sintakse može biti umetnuto u bafer binova i/ili bafer bitova. Preostali binovi u baferu binova i preostali bitovi u baferu bitova se odbacuju i ignorišu.
Preplitanje sekvenci bitova fiksne dužine sa ograničenjem malog kašnjenja
[0105] Opisano izvođenje za entropijski enkoder i dekoder sa preplitanjem sekvenci bitova fiksne dužine takođe se može kombinovati sa šemom za kontrolu kašnjenja bafera enkodera, koja je gore opisana. Osnovni koncept je isti kao kod gore opisanog izvođenja sa kontrolom kašnjenja. Ako mera koja se odnosi na kašnjenje ili gornju granicu kašnjenja (pogledajte dole) premašuje određeni prag, prvi rezervisani unos bafera se popunjava pražnjenjem odgovarajućeg bafera (koristeći sličan mehanizam kao na kraju paketa podataka) i potencijalno pisanje dodatnih bitova za popunjavanje svih bitova rezervisanog unosa bafera fiksne dužine. Ovakvim mehanizmom se smanjuje broj unosa u bafer na čekanju sve dok pridružena mera kašnjenja ne bude manja od specificiranog praga. Na strani dekodera, binovi i bitovi koji su umetnuti na strani enkodera da bi se poštovalo ograničenje kašnjenja moraju biti odbačeni. Za ovo odbacivanje binova i bitova u osnovi se može koristiti isti mehanizam kao na strani enkodera.
[0106] U poželjnom izvođenju pronalaska, mera za kašnjenje (ili gornja granica kašnjenja) je broj bitova u aktivnim unosima bafera u globalnom baferu bitova, pri čemu je broj aktivnih unosa u bafer broj rezervisanih unosa bafera fiksne dužine plus broj unosa bafera fiksne dužine koji sadrže već napisane bitove. Treba imati u vidu da je prvi unos bafera uvek rezervisani unos bafera fiksne dužine ili slobodan unos bafera, pošto ako prvi unos bafera sadrži upisane bitove, ovi bitovi se upisuju u tok bitova. Neka maksimalno dozvoljeno kašnjenje bafera (kako je određeno aplikacijom) bude D bitova. Ovo maksimalno kašnjenje D bafera mora biti poznato i enkoderu i dekoderu. U poželjnom izvođenju pronalaska, maksimalno kašnjenje D bafera je fiksirano aplikacijom. U drugom poželjnom izvođenju pronalaska, maksimalno kašnjenje D bafera se signalizira unutar toka bitova, na primer, u zaglavlju paketa podataka (ili zaglavlju isečka) ili u skupu parametara, koji je uključen u tok bitova. Može se signalizirati u jedinicama bitova, ili bajtova, ili višestrukim bitovima, ili višestrukim bajtovima. Ako enkoder 310 binova pošalje zahtev za rezervaciju nove sekvence bitova fiksne dužine u globalni bafer 351 bitova, sledeći proces se izvršava pre nego što se rezerviše novi unos bafera fiksne dužine.
[0107] Ako je broj bitova u aktivnim unosima bafera u globalnom baferu bitova plus broj bitova koji će biti rezervisani trenutnim zahtevom za rezervaciju veći od maksimalnog kašnjenja D bafera, prvi unos bafera (koji je rezervisan) se isprazni procesom opisanim u nastavku sve dok broj bitova u aktivnim unosima bafera u globalnom baferu bitova plus broj bitova koji će biti rezervisani trenutnim zahtevom za rezervaciju ne bude manji ili jednak maksimalnom kašnjenju D bafera. Pražnjenje rezervisanog unosa u baferu fiksne dužine slično je pražnjenju na kraju paketa podataka: enkoder 310 binova koji je povezan sa baferom
2
348 bitova koji je rezervisao odgovarajući prvi unos bafera prazni se dodavanjem binova sa određenim ili proizvoljne vrednosti povezanom baferu 308 binova sve dok rezultujuća sekvenca binova ne predstavlja sekvencu binova koja je povezana sa kodnom reči, kodna reč se zatim ubacuje u odgovarajući bafer 348 bitova. Kao što je gore pomenuto, jedan poželjniji način za dodavanje binova u bafer binova je dodavanje onih binova koji proizvode najkraću moguću kodnu reč. Ako, nakon upisivanja kodne reči u povezani bafer bitova i potencijalnog umetanja sekvence bitova fiksne dužine u globalni bafer bitova, u baferu bitova i dalje ima bitova (tj. napisana kodna reč nije u potpunosti popunila rezervisanu sekvencu bitova fiksne dužine), dalji bitovi sa određenim ili proizvoljnim vrednostima se dodaju u bafer bitova sve dok se svi bitovi ne uklone iz bafera bitova i zapišu u rezervisani unos bafera. Konačno, na kraju ovog procesa, završeni unos bafera (prvi unos fiksne dužine u globalnom baferu bitova) se uklanja iz globalnog bafera bitova i upisuje u tok bitova.
[0108] Na strani dekodera se izvršava sličan proces za odbacivanje binova i bitova koji su dodati da bi se poštovalo ograničenje kašnjenja. Stoga, dekoder održava brojač C koji broji bitove koji su pročitani iz globalnog bafera bitova (ovaj brojač se može održavati u globalnom baferu bitova). Brojač C se inicijalizuje (npr. nulom) na početku dekodiranja paketa podataka i povećava se nakon čitanja sekvence fiksne dužine. Ako se sekvenca fiksne dužine od Nx bitova pročita iz globalnog bafera 361 bitova, brojač C se povećava za Nx. Pored ukupnog brojača C, svaki bafer 358 bitova sadrži brojač Cx, koji čuva vrednost brojača bitova C pre nego što je poslednja sekvenca bitova fiksne dužine pročitana u odgovarajući bafer 358 bitova. Kada određeni bafer 358 bitova čita novu sekvenca bitova fiksne dužine, njen brojač Cx se postavlja jednak C kao prvi korak, a zatim se sekvenca bitova fiksne dužine čita iz globalnog bafera 361 bitova. Kada se zahtev 319 za binom pošalje u određen bafer 320 binova i razlika (C - Cx) između ukupnog brojača C i brojača Cx povezanog bafera 358 bitova je veća od maksimalnog kašnjenja D bafera, svi binova koji su trenutno uskladišteni u određenom baferu 320 binova i svi bitova koji su uskladišteni u povezanom baferu bitova 358 se odbacuju i ignorišu. Pored tog dodatnog koraka, dekodiranje se radi na gore opisani način. Ako je bafer 320 binova u koji se šalje zahtev 319 za binom prazan (bilo zato što su svi binovi već uklonjeni ili zato što je mehanizam sa malim kašnjenjem odbacio sve binove u prvom koraku nakon što je primljen zahtev za binom), povezani dekoder 322 bitova pokušava da pročita novu kodnu reč iz povezanog bafera 358 bitova. Ako je broj bitova u baferu 358 bitova manji od maksimalne dužine kodne reči, nova sekvenca bitova fiksne dužine se čita iz globalnog bafera 361 bitova, pre nego što se pročita šifra itd.
[0109] 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].
[0110] 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 promenljiva u promenljivu (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.
[0111] 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.
[0112] 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
[0113] 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).
4
[0114] 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.
[0115] 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:
[0116]
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:
[0117] 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:
[0118]
Br. Primarni Sekundarni
1 1 0000
2 01 0001
3 001 0010
5 00001 0100
6 000001 0101
7 0000001 0110
8 00000001 0111
9 00000000 1
[0119] 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“
[0120] 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
6 101 11101
7 011 11110
8 111 11111
[0121] 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.
[0122] 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.
[0123] 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.
[0124] 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.
[0125] 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.
[0126] 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.
[0127] 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.
[0128] 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.
[0129] 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'.
[0130] 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 kodera 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.
[0131] 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.
[0132] 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 kodera 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.
[0133] 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.
[0134] 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 koder 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.
[0135] 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.
[0136] 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.
[0137] 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.
[0138] 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.
[0139] 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.
[0140] 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
4
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.
[0141] 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.
[0142] 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.
[0143] 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 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 (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) 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:
if (bin = 1 - valMPS) then
L-L+R
R RLPS
5. Renormalizacija L i R, pisanje bitova.
[0144] Analogno, entropijski dekoder priključen na izlaz dodeljivača parametara (koji se ovde ponaša kao dodeljivač konteksta) 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.
[0145] 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]
4
[0146] 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).
[0147] 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 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.
[0148] 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)
[0149] 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.
[0150] 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ć.
[0151] 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.
[0152] 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.
[0153] 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. 18. 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 prekidač 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.
[0154] Dalje, dekoder sa Sl. 18 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.
[0155] Dalje, dekoder sa Sl. 18 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
4
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.
[0156] 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 prekidač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 prekidač 400 režima i bar funkcionalnost s obzirom na rezidualne podatke i podatke predviđanja ostaje ista, bez obzira na režim izabran prekidač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. 18 kompatibilan sa oba režima, režimima niske kompleksnosti i visoke efikasnosti.
[0157] Kao sporedni aspekt bi trebalo da se napomene da dekoder sa Sl. 18 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. 18, 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.
[0158] Dakle, dekoder sa Sl. 18 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.
[0159] Birač 402, međutim, deluje nezavisno u režimu izabranom prekidač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.
4
[0160] 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.
[0161] 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.
[0162] 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.
[0163] 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.
[0164] 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
4
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.
[0165] 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.
[0166] 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. 18 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 entropijski dekoder 608 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. To jest, mašina 608 za entropijsko dekodiranje generalno može biti konfigurisana da preuzme svaki simbol niza 326 simbola entropijskim dekodiranjem iz toka 401 podataka koristeći odabranu od mnoštva šema entropijskog dekodiranja, i može se, na primer, konfigurisati tako da svaka od mnoštva šema entropijskog dekodiranja uključuje aritmetičko dekodiranje simbola za koje je odabrana odgovarajuća šema entropijskog dekodiranja, pri čemu se mnoštvo šema entropijskog dekodiranja razlikuju jedna od druge po korišćenju različite procene verovatnoće u aritmetičkom dekodiranju. Kao što je opisano u vezi sa gore navedenim CABAC-konceptom, mašina za entropijsko dekodiranje može biti konfigurisana tako da mnoštvo šema entropijskog dekodiranja izvrši svoju pod-podelu verovatnoće na zajedničkom intervalu verovatnoće, tj. jedan zajednički tok bitova umesto delimičnih tokova bitova. Drugim rečima, i uopštenije govoreći, entropijski dekoder 608 bi mogao biti konfigurisan da izvede određeni broj binova 326 binarizacije iz toka 401 podataka korišćenjem binarnog entropijskog dekodiranja izborom konteksta između različitih konteksta i ažuriranjem stanja verovatnoće povezanih sa različitim kontekstima, zavisnih od prethodno dekodiranih delova toka 401 podataka. Preciznije, kao što je gore opisano, entropijski dekoder 608 može biti konfigurisan da izvede broj binova 326 binarizacija iz toka 401 podataka korišćenjem binarnog entropijskog dekodiranja kao što je gore pomenuta CABAC šema, ili binarno PIPE dekodiranje, tj. korišćenjem konstrukcije koja uključuje nekoliko paralelnih operativnih entropijskih dekodera 322 zajedno sa odgovarajućim selektorom/dodeljivačem. Što se tiče odabira konteksta, njegova zavisnost od prethodno dekodiranih delova toka 401 podataka 401, može se izvesti kao što je gore navedeno. To jest, entropijski dekoder 608 može biti konfigurisan da izvrši izbor konteksta za bin koja se trenutno izvodi u zavisnosti od pozicije bina koji je trenutno izvedena u okviru binarizacije kojoj pripada bin koji se trenutno izvodi, element sintakse tip sintaksnog elementa, čija se celobrojna vrednost dobija debinarizacijom binarizacije kojoj pripada bin koji trenutno treba da se izvede, ili jedne ili više binova prethodno izvedenih iz toka 401 podataka ili celobrojne vrednosti elementa sintakse koji je prethodno debinarizovan. Na primer, izabranom kontekst može da se razlikuje između prvog i drugog bina binarizacije određenog elementa sintakse. Štaviše, različite grupe konteksta mogu biti obezbeđene za različite tipove elemenata sintakse kao što su nivoi
4
koeficijenta transformacije, razlike vektora kretanja, parametri režima kodiranja i slično. Što se tiče ažuriranja stanja verovatnoće, entropijski dekoder 608 može biti konfigurisan da izvrši isto, za bin trenutno izveden, prelaskom iz trenutnog stanja verovatnoće povezanog sa kontekstom izabranim za bin koji je trenutno izveden u novo stanje verovatnoće u zavisnosti od bina koji je trenutno izveden. Kao što je gore opisano, entropijski dekoder 409 može, na primer, da pristupi unosu tabele koristeći trenutno stanje i vrednost bina koja je trenutno izvedena sa pristupnim unosom tabele koji otkriva novo stanje verovatnoće. Pogledati gornje tabele Next_State_LPS i Next_State_MPS look.up tabele u odnosu na koje obavlja entropijski decoder 608 pored ostalih koraka od 0 do 5 koji su gore navedeni. U gornjem opisu, stanje verovatnoće je ponekad označavano kao pState_current[bin]. Kao što je takođe gore opisano, entropijski dekoder 608 može biti konfigurisan da binarno aritmetičko dekodira bin koji se trenutno izvodi kvantizacijom vrednosti (R) bita trenutnog intervala verovatnoće koji predstavlja trenutni interval verovatnoće da bi se dobio indeks intervala verovatnoće q_index izvođenjem podele intervala indeksiranjem unosa tabele među unosima tabele (Rtab) korišćenjem indeksa intervala verovatnoće i indeksa stanja verovatnoće p_state koji zavisi od trenutnog stanja verovatnoće povezanog sa kontekstom izabranim za bin koja se trenutno izvodi, da bi se dobila podpodela trenutne verovatnoće intervala na dva delimična intervala. Kao što je opisano, entropijski dekoder 608 može da koristi 8-bitnu reprezentaciju za trenutnu vrednost širine intervala verovatnoće R. Za kvantizovanje trenutne vrednosti širine verovatnoće, entropijski dekoder 608 može, na primer, da izvuče dva ili tri najznačajnija bita od 8-bitne reprezentacije. Entropijski dekoder 608 tada može da izvrši izbor između dva delimična intervala na osnovu vrednosti stanja pomaka iz unutrašnjosti trenutnog intervala verovatnoće, ažurira vrednost širine intervala verovatnoće i vrednost stanja ofseta, i zaključi vrednost bina koja trenutno treba da bude izvedena, koristeći izabrani delimični interval i izvrši renormalizaciju ažurirane vrednosti širine verovatnoće i vrednosti stanja ofseta, odnosno V u gornjem opisu, uključujući nastavak čitanja bitova iz toka 401 podataka. Kao što je gore opisano, izbor između dva delimična intervala zasnovana na vrednosti stanja pomaka V mogu uključivati poređenje između R i V, dok ažuriranje vrednosti širine intervala verovatnoće i vrednosti ofset stanja može zavisiti od vrednosti bina koja trenutno treba da se izvede.
[0167] U implementaciji izvođenja prikazanog na Sl. 18 sa PIPE, 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.
4
Tabela A: Preslikavanje stanja CABAC na indekse PIPE
[0168] 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.
[0169] 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.
[0170] 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.
[0171] 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.
[0172] Trenutno predviđena tehnika kodiranja za nivoe koeficijenta transformacije je specificirana u trenutnom Modelu Testiranja (HM) projekta visokoefikasnog video kodiranja (HEVC) za CABAC. Prvo, poslednja značajna pozicija skeniranja je kodirana sa dva elementa sintakse, last_significant_pos_x i last_significant_pos_i. Element sintakse last_significant_pos_x specificira kolonu poslednje značajne pozicije skeniranja, a drugi sintaksni element last_significant_pos_yi specificira red poslednje značajne pozicije skeniranja.
[0173] Nakon toga, mapa značaja, koja specificira lokaciju nivoa apsolutnih nivoa koeficijenta transformacije većeg od nule, se kodira korišćenjem redosleda skeniranja unapred. Takozvani redosled skeniranja mape značaja je preslikavanje iz dvodimenzionalne pozicije unutar bloka transformacije u jednodimenzionalni vektor i može biti različit u zavisnosti od režima predviđanja i veličine bloka transformacije. U najnovijem stanju u ovoj oblasti, koriste se tri različita redosleda skeniranja, odnosno cik-cak skeniranje, horizontalno skeniranje i vertikalno skeniranje. Za svaku poziciju skeniranja osim poslednje pozicije skeniranja, koja je već identifikovana kao značajna navođenjem poslednje pozicije skeniranja, kodiran je binarni sintaksni element coeff_significant_flag.
[0174] Zatim, nakon kodiranja mape značaja, elementi sintakse coeff_abs_greater1, coeff_abs_greater2 i coeff_abs_minus3 predstavljaju preostali apsolutni nivo i coeff_sign_flag predstavlja informacije o znaku. Za kodiranje preostalih apsolutnih nivoa transformacije i znaka, blok transformacije je podeljen na podblokove 4x4 i pozicije unutar takvog podbloka čine podskup. Podskupovi se skeniraju naprednim cik-cak redosledom skeniranja i svaki podskup se kodira sukcesivno. To znači da nakon kodiranja svih preostalih informacija nivoa apsolutne transformacije jednog 4x4 podbloka ili podskupa i informacija o znaku, obrađuje se sledeći podskup u naprednom cik-cak redosledu. Za sam podskup koristi se obrnuti cik-cak redosled skeniranja. U prvoj fazi kodiranja podskupa, binarni sintaksni element coeff_abs_greater1 koji specificira da li je nivo koeficijenta apsolutne transformacije veći od jedan je kodiran za svu značajnu poziciju skeniranja podskupa.
[0175] Sledeće, nakon što se redosled skeniranja resetuje i ponovo počinje od prve pozicije skeniranja podskupa, za sve pozicije skeniranja sa apsolutnim nivoima većim od jedan, npr. coeff_abs_greater1 je jednak 1, binarni sintaksni element coeff_abs_greater2 je kodiran specificirajući da li je nivo apsolutne transformacije za određenu poziciju skeniranja veći od dva ili ne. Zatim, nakon ponovnog resetovanja redosleda skeniranja, za sve pozicije skeniranja sa apsolutnim nivoom transformacije većim od dva, kodira se element sintakse sa nenegativnim celobrojnim vrednostima coeff_abs_minus3 koji specificira preostalu vrednost nivoa apsolutne transformacije. U poslednjem koraku, ponovo nakon resetovanja redosleda skeniranja, element sintakse coeff_sign_flag se kodira u bajpas režimu, npr. sa modelom verovatnoće jednakim 0.5 je kodiran. Razlog za podelu na podskupove je što bolje kontekstualno modeliranje rezultira većom efikasnošću kodiranja, što je opisano u nastavku. Treba imati u vidu da postoji zavisnost između elemenata sintakse. Takođe je moguće kodirati elemente sintakse kao u H.264/AVC. U tom slučaju, za poziciju skeniranja, coeff_abs_greater1 se kodira direktno nakon kodiranja coeff_significant_flag jednaka jedan i coeff_abs_greater2 se kodira direktno nakon kodiranja coeff_abs_greater1 i tako dalje.
1
Međutim, ovaj isprepleteni način kodiranja elemenata sintakse je neefikasan za hardversku implementaciju. Stoga je opisano razdvajanje kodiranjem svakog elementa sintakse u potpunosti za blok transformacije ili za podskup.
[0176] Modeliranje konteksta za svaki element sintakse koji se odnosi na kodiranje nivoa apsolutne transformacije je sledeći. Izbor kontekstnog modela za coeff_significant_flag koristi lokalni šablon. On određuje region oko trenutne pozicije skeniranja i pokriva već kodirane pozicije skeniranja. Kontekstni model je izveden za coeff_significant_flag procenom broja već kodiranih značajnih pozicija skeniranja koje leže u lokalnom šablonu.
[0177] Za prvu značajnu poziciju skeniranja podskupa, drugi kontekstni model skupa kontekstnog modela koji se odnosi na coeff_abs_greater1 se bira da bi kodirao prvi coeff_abs_greater1 element sintakse podskupa. Ako je upravo kodirani element sintakse coeff_abs_greater1 jednak 1, prvi kontekstni model se bira za svu preostalu fazu kodiranja elementa sintakse coeff_abs_greater1 unutar podskupa. U suprotnom, izabran je sledeći model konteksta skupa kontekstnog modela za sintaksni element coeff_abs_greater1, dok je maksimalni kontekstni model ograničen na pet.
[0178] Za coeff_abs_greater2, prvi kontekstni model se bira i povećava nakon kodiranja svakog sintaksnog elementa coeff_abs_greater2, dok je maksimalni kontekst takođe ograničen na pet. Treba imati u vidu da se različiti kontekstni modeli koriste za binove povezane sa različitim elementima sintakse, npr. različiti skupovi kontekstnih modela se koriste za sintaksne elemente coeff_abs_greater1 i coeff_abs_greater2. Preostala nenegativna celobrojna vrednost nivoa apsolutne transformacije je predstavljena elementom sintakse coeff_abs_minus3. Kodira se za svaku poziciju skeniranja sa coeff_abs_greater2 jednakim 1. Za coeff_abs_minus3, kombinacija parametarizovanih Rice i Ekp-Golomb kodova promenljive dužine (VLC) 0. reda se koristi kao binarizacija i svi binovi rezultujućeg niza binova iz binarizacije su kodirani u režimu bajpasa niske složenosti sa fiksnom verovatnoćom od 0,5. Rajsov deo binarizacije za abs_coeff_minus3 zahteva kontrolni parametar, koji je nula na početku svakog podskupa i adaptivno se ažurira nakon kodiranja svakog elementa sintakse coeff_abs_minus3. Nova vrednost kontrolnog parametra zavisi od upravo kodirane preostale vrednosti predstavljene coeff_abs_minus3. Treba imati u vidu da je pravilo za modeliranje konteksta da se resetuje za svaki podskup tako da je uvek drugi kontekstni model za coeff_abs_greater1 i prvi kontekstni model za coeff_abs_greater2 i parametar kontrole binarizacije za coeff_abs_minus3 jednak nuli za prvu poziciju unutar podskupa, gde je odgovarajući sintaksni element kodiran. Za elemente sintakse coeff_abs_greater1 i coeff_abs_greater2, dodatna faza modeliranja konteksta zavisi od statistike prethodnih kodiranih podskupova. Ovaj dodatni korak izvodi ofset konteksta ili skup konteksta. Ofset ili skup konteksta za oba elementa sintakse se izvodi na sledeći način. Na početku svakog podskupa, bira se kontekstni skup ili ofset u zavisnosti od broja apsolutnih nivoa veći od jednog u prethodnom podskupu koji sadrži najmanje jednu značajnu poziciju. Ako ne postoji takav podskup, skup je 5 (za prvi podskup koji sadrži značajne pozicije skeniranja bloka transformacije). Za blokove transformacije 4x4, gde jedini podskup pokriva ceo blok transformacije, skup konteksta je postavljen na nulu. Inače, skup konteksta može biti u opsegu od 1 do 5. Nakon kodiranja preostalih nivoa apsolutne transformacije, informacije o znaku se kodiraju u bajpas režimu, npr. sa kontekstualnim modelom koji koristi fiksnu verovatnoću od 0,5, pomoću sintaksnog elementa coeff_sign_flag.
[0179] Gornja tehnika kodiranja za nivoe koeficijenta transformacije postiže dobre performanse kodiranja. Međutim, ona sadrži određenu složenost zbog visoke prilagodljivosti.
2
Ovo onemogućava istovremeno kodiranje više binova (osim za binove kodirane u bajpas režimu). Dva su razloga za to. Prvo, kontekstni model koji predstavlja sam model verovatnoće je prilagodljiv i ažurira se nakon kodiranja svakog bina. Dakle, model verovatnoće je drugačiji za svaki bin, čak i ako je isti kontekstni model izabran za uzastopne binove. Drugo, izbor kontekstnog modela često zavisi od prethodnih kodiranih elemenata sintakse koji su različiti za svaku poziciju skeniranja. Dakle, najsavremeniji koncept ne dozvoljava kodiranje više binova da bi se smanjila složenost u fazi entropijskog kodiranja i takođe ne iskorišćava prednosti PIPE entropijskog kodera, gde kodiranje više binova omogućava nisku složenost implementacije.
[0180] U skladu sa jednim izvođenjem, opisana je modifikovana tehnika kodiranja za nivoe koeficijenta transformacije koja se može konfigurisati na različite nivoe prilagođavanja i na taj način omogućava da se iskoristi sposobnost dekodiranja sa više binova PIPE-a u režimu niske složenosti pri čemu je moguće imati koristi od visokog prilagođenja u režimu visoke efikasnosti. Skalabilnost se postiže jedinstvenim redosledom skeniranja za oba nivoa složenosti, ali različitim načinima za izvođenje konteksta. Elementi sintakse koji se koriste za kodiranje nivoa koeficijenta transformacije su potpuno isti kao što je gore opisano. Ali u poređenju sa tim, razlika leži u redosledu skeniranja za preostale apsolutne nivoe transformacije i kako se formiraju podskupovi. Štaviše, kada se PIPE koristi kao entropijski koder, informacije o znaku predstavljaju coeff_sign_flag bloka transformacije koji se može kodirati direktno, npr. može se pisati i čitati direktno iz toka bitova u jednom prolazu.
[0181] Umesto da se koriste podskupovi 4x4 i skeniraju se odvojeno cik-cak skeniranjem, dok se podskupovi skeniraju obrnutim cik-cak redosledom skeniranja, opisano izvođenje sada koristi isti redosled skeniranja kao i za mapu značaja. Podskupovi se kreiraju duž određenog broja pozicija skeniranja. Prema ovome, prvo, mapa značaja je kodirana određenim redosledom skeniranja, gde smer skeniranja može biti obrnut. Kao što je opisano u gornjoj tehnici, redosled skeniranja može biti različit u zavisnosti od režima predviđanja i veličine bloka transformacije. Za preostale nivoe koeficijenta apsolutne transformacije koristi se isti redosled skeniranja kao i za mapu značajnosti, dok se redosled skeniranja može obrnuti u poređenju sa skeniranjem mape značaja.
[0182] Kao što je ranije pomenuto, podskupovi se kreiraju duž uzastopnih pozicija skeniranja umesto particionisanja transformacionog bloka na 4x4 podblokove. Kreiranje podskupova duž određenog broja uzastopnih pozicija skeniranja se koristi za sve konfiguracije u ovom izvođenju.
[0183] Kao što je ranije pomenuto, složenost se može konfigurisati prema stepenu prilagođavanja. U nastavku su opisane tri konfiguracije. Prva konfiguracija je pogodna za postizanje visokih performansi kodiranja, druga za obradu niske složenosti, a treća je konfiguracija kompromisa između složenosti i performansi kodiranja. Tri primera konfiguracije pokazuju kako se prilagođavanje konteksta može konfigurisati, dok je mašina za entropijsko kodiranje iz dekodera 322, na primer, ista za sve konfiguracije.
[0184] Za prvu konfiguraciju, faza modeliranja konteksta je ista kao u gornjoj tehnici. Jedina razlika je grupisanje u podskupove. Umesto grupisanja prostornih pozicija 4x4 u pod-blok ili podskupove, ovde prisutna izvođenja grupišu nekoliko uzastopnih pozicija skeniranja u podskup kao što je ranije pomenuto. Ofset konteksta ili izvođenje skupa konteksta nije modifikovano u poređenju sa gore opisanom tehnikom, a parametri modeliranja konteksta za elemente sintakse se takođe resetuju za svaki podskup. U slučaju konfiguracije male složenosti, isti kontekstni model sa fiksnom verovatnoćom se koristi za ceo podskup. Ovaj koncept omogućava kodiranje više binova kada se PIPE koristi kao entropijski koder. Za tu konfiguraciju, prilagodljivost izbora kontekstnog modela zavisi samo od pozicije skeniranja, ali ne i od prethodno kodiranih elemenata sintakse, a kontekstni modeli ne ažuriraju svoju internu reprezentaciju modela verovatnoće. Umesto da se koristi lokalni šablon za izvođenje kontekstnog modela za svaku poziciju skeniranja mape značaja, određeni broj uzastopnih pozicija skeniranja se takođe grupiše zajedno u podskup i svaki podskup se kodira korišćenjem istog kontekstnog modela, dok je verovatnoća za taj kontekstni model fiksirana. Treba imati u vidu da podskupovi mape značaja takođe postoje, ali je lokalnom šablonu dozvoljeno da proceni pozicije skeniranja koje leže u drugim podskupovima. Nakon specificiranja mape značaja, preostali nivoi apsolutne transformacije se kodiraju. Za preostale apsolutne nivoe koristi se isti koncept kao i za mapu značaja. Dakle, uzastopni broj značajnih pozicija skeniranja je grupisan zajedno kao podskup, a svaki podskup je kodiran istim kontekstnim modelom za sintaksni element coeff_abs_greater1. Zatim se radi mehanizam grupisanja za elemente sintakse coeff_abs_greater2. Uzastopni broj pozicija skeniranja za koje se zna da su veći od jedan grupišu se zajedno u skup i skup je kodiran kontekstnim modelom sa fiksnom verovatnoćom. Preostali nivo apsolutnog koeficijenta transformacije i znak se kodiraju kao u gore navedenoj tehnici poređenja, dok se parametar Rajs resetuje na početku svakog podskupa duž određenog broja pozicija skeniranja i informacije o znaku se kodiraju u jednom koraku. Poslednja konfiguracija je kompromis između složenosti i performansi kodiranja. U ovoj konfiguraciji, kreiranje podskupa za svaki element sintakse odnosi se na kodiranje nivoa koeficijenta transformacije koji imaju isti kontekstni model kao što je to učinjeno u slučaju male složenosti. Ali za razliku od konfiguracije niske složenosti, kontekstni model podskupa se ažurira nakon što su svi binovi povezani sa tim elementom sintakse za taj podskup bili kodirani. Bez obzira na izabranu konfiguraciju, PIPE koncept omogućava direktno kodiranje informacija o znaku (predstavljenog sa coeff_sign_flag) bloka transformacije (npr. može se napisati i pročitati direktno iz toka bitova u jednom prolazu).
[0185] U poželjnom izvođenju, mapa značaja je kodirana redosledom skeniranja unapred, dok su preostali nivoi koeficijenta apsolutne transformacije kodirani u obrnutom redosledu skeniranja. Redosled skeniranja unapred može generalno da vodi od jednosmerne komponente do komponente najviše frekvencije kao što je primerno prikazano na Slici 6, kao što je duž jednodimenzionalne putanje 274, dok obrnuti redosled ide duž iste putanje ali u suprotnom smeru. U drugom poželjnom izvođenju, kodiranje mape značaja i preostali apsolutni nivoi su kodirani obrnutim redosledom skeniranja. U daljem poželjnom izvođenju, svi elementi sintakse koji se odnose na kodiranje nivoa apsolutne transformacije su kodirani u redosledu skeniranja unapred.
[0186] U poželjnom izvođenju, veličina podskupa je fiksirana na 16 i rastegnuta je duž pozicija skeniranja transformacionog bloka. U drugom poželjnom izvođenju, veličina podskupa je fiksirana na 4 i takođe je rastegnuta duž pozicija skeniranja transformacionog bloka. U daljem izvođenju, veličina podskupova je promenljiva u zavisnosti od prostorne lokacije transformacionog bloka. U tom poželjnom izvođenju, veličina podskupa je manja za oblast niske frekvencije transformacionog bloka, npr. za prve pozicije skeniranja bloka transformacije, i postaje veća za više pozicije skeniranja transformacionog bloka. U daljem poželjnom izvođenju, veličina podskupova je jednaka širini bloka transformacije. U drugom poželjnom izvođenju, svaki podskup uključuje pozicije skeniranja duž dijagonale bloka transformacije. U ovom poželjnom izvođenju, dijagonala je definisana od gornjeg desnog do donjeg levog dela bloka transformacije.
4
[0187] U poželjnom izvođenju, podskupovi se kreiraju duž određenog broja uzastopnih pozicija skeniranja, za koje specifični sintaksni element mora biti kodiran. U tom slučaju, podskupovi se kreiraju na sledeći način. Podskupovi za coeff_significant_flag su rastegnuti duž pozicija skeniranja bloka transformacije, dok veličina podskupova može biti fiksna ili promenljiva. Sledeće, za element sintakse coeff_abs_greater1, zavisi od konfiguracije kakva je veličina podskupova, a samo skenirane pozicije sa coeff_significant_flag jednakom 1 formiraju podskup. Na primer, u fiksnom slučaju, pozicije skeniranja 0 - 4 čine podskup za coeff_significant_flag i preostale apsolutne nivoe povezane elemente sintakse. Za razliku od ovog poželjnog izvođenja, ako je veličina podskupa 4 za sintaksni element coeff_significant_flag i preostali sintaksni element povezani sa apsolutnim nivoima, pozicije skeniranja 0 - 4 čine prvi podskup i 4 - 8 čine drugi podskup za coeff_significant_flag. Ali samo skenirane pozicije sa coeff_significant_flag jednakim 1 čine podskup za coeff_abs_greater1. Dakle, podskup za coeff_abs_greater1 ima istu veličinu kao i za coeff_significant_flag, ali može da se proteže od 0 - 6, ako postoje tačna 4 coeff_significant_flag elementa sintakse jednaka 1 u ovom opsegu i prvi na "poziciji skeniranja 0 i četvrti na pozicija skeniranja 6. Ovo dovodi do promenljivog opsega podskupa. U drugom poželjnom izvođenju, promenljiva dužina rastezanja za datu veličinu podskupa se primenjuje za sintaksni element coeff_abs_greater2. U daljem poželjnom izvođenju, ovaj koncept se takođe koristi za sintaksni coeff_abs_minus3 element.
[0188] U poželjnom izvođenju, modeliranje konteksta za coeff_significant_flag koristi lokalni šablon i za preostale apsolutne nivoe transformacije, modeliranje konteksta je isto kao u stanju tehnike. Ovo poželjno izvođenje dovodi do konfiguracije visoke efikasnosti. U drugom poželjnom izvođenju, modeliranje konteksta za sve elemente sintakse zavisi samo od podskupova. U ovom poželjnom izvođenju, modeliranje konteksta je izvedeno na osnovu broja podskupova. Kao primer, veličina bloka transformacije je 8x8, a veličina podskupa je fiksirana na 16 i proteže se duž pozicija skeniranja transformacionog bloka. U ovom slučaju, blok transformacije ima 4 podskupa i svaki podskup koristi drugačiji kontekstni model. Ako se podskupovi protežu duž pozicija skeniranja na kojima je kodiran sintaksni element, postoje najmanje 4 podskupa za coeff_siginificant_flag, dok broj podskupova za sintaksni element coeff_abs_greater1 zavisi od broja značajnih pozicija. Pretpostavimo da postoje 24 značajne pozicije skeniranja. Dakle, prvih 16 pozicija skeniranja formiralo je prvi podskup, a preostalih 8 pozicija skeniranja činilo je drugi podskup. Opet, za svaki podskup, specifični kontekstni model se bira prema broju podskupa.
[0189] U daljem poželjnom izvođenju, kontekstno modeliranje podskupa, npr. skup kontekstnog modela ili ofset kontekstnog modela za coeff_abs_greater1 i coeff_abs_greater2, zavisi od prethodno dekodiranih podskupova. U drugom poželjnom izvođenju, modeliranje konteksta podskupa zavisi od poslednjih n dekodiranih binova, gde je n broj binova koji se mogu kodirati u jednom koraku. U daljem poželjnom izvođenju, faza modeliranja konteksta podskupa zavisi od veličine podskupa. Ovo poželjno izvođenje je pogodno u slučaju promenljive veličine podskupa.
[0190] 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.
[0191] 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.
[0192] 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.
[0193] 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.
[0194] 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 prekidač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.
[0195] Zatim, opisano je kontekstno modelovanje sa skalabilnom kompleksnošću.
[0196] 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.
[0197] 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.
[0198] 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.
[0188] 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.
[0200] To jest, selektor 402 sa Sl. 18 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 prekidač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.
[0201] Zatim, opisano je kodiranje razlika vektora kretanja sa redukovanom kompleksnošću u skladu sa jednim izvođenjem.
[0202] 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 koder, 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.
[0203] Najnovija tehnika kodiranja za mvd kada se koristi CABAC kao entropijski koder 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.
[0204] 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.
[0205] 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.
[0206] 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.
[0207] 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.
[0208] 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.
[0209] 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.
[0210] 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.
[0211] 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.
[0212] 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.
[0213] 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.
[0214] 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.
[0215] Zatim, opisana je predstava sa skalabilnom kompleksnošću internog stanja modela verovatnoće u skladu sa izvođenjem.
[0216] 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
1
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.
[0217] 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.
[0218] 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:
[0219] 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
[0220] 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
2
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.
[0221] Zatim, opisano je ažuriranje kontekstnog modela sa skalabilnom kompleksnošću u skladu sa izvođenjem.
[0222] 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.
[0223] 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.
[0224] 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.
[0225] 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.
[0226] 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.
[0227] 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.
[0228] 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.
[0229] 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.
[0230] 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.
[0231] 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.
[0232] Zatim, opisano je ažuriranje kontekstnog modela za sekvencu binova u skladu sa jednim izvođenjem.
[0233] 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.
[0234] 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
[0235] U slučaju HE-PIPE, nakon dekodiranja svakog bina, vrši se ažuriranje kontekstnog modela:
bubububububububu
[0236] 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
4
[0237] 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.
[0238] 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.
[0239] 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).
[0240] 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.
[0241] 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.
[0242] 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.
[0243] 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
[0244] 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.
[0245] 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:
[0246] 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:
[0247] 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
[0248] 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.
[0249] 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. 17.
[0250] 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.
[0251] 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
[0252] 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
[0253] 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 probIdx 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
[0254] 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
[0255] Dodeljivanje refineIdx i pipeIdx slično je internom stanju CABAC modela verovatnoće (pStateCtx) i predstavljeno je u H.
Tabela I Dodeljivanje pipeIdx, refineIdx i pStateCtx
[0256] 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:
[0257] 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. 22 prikazuje proces izvođenja internog stanja i prikazuje preslikavanje fullCtxState/256 u pStateCtx.
[0258] 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.
[0259] 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.
[0260] Gornja diskusija je takođe pokazala, međutim, da skalabilnost kompleksnosti može da se postigne nezavisno od koncepta kodiranja PIPE ili CABAC sa Sl. 7-17, korišćenjem dekodera kao što je prikazano na Sl. 19. Dekoder sa Sl. 19 služi za dekodiranje toka podataka 601 u koji su kodirani medijski podaci i sadrži prekidač 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.
[0261] U nekim od gore navedenih izvođenja korišćen je aspekt prikazan na Sl. 19. 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. 18 i 19 mogu lako da se kombinuju, ali aspekt sa Sl. 18 takođe može da se kombinuje i sa drugim okruženjima za kodiranje.
[0262] 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.
[0263] Enkoder koji odgovara dekoderu sa Sl. 18, za kodiranje medijskih podataka u tok podataka prikazan je na Sl. 20. 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.
[0264] Enkoder koji odgovara dekoderu sa Sl. 19, za kodiranje medijskih podataka u tok podataka prikazan je na Sl. 21 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
1
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.
[0265] Opet, treba napomenuti da je izvođenje sa Sl. 18 lako prenosivo na izvođenje kontekstualno prilagodljivog binarno aritmetičkog kodiranja/dekodiranja: selektor 509 i entropijski enkoderi 310 bi se sabili u entropijski enkoder 710 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.
[0266] Primećeno je da se mnogi od gornjih aspekata gornjih izvođenja lako mogu preneti na audio kodiranje ili kodiranje drugih podataka. Konkretno, specifična vrsta rekonstruktora nije kritična.
[0267] 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.
[0268] 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.
[0269] 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.
[0270] 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.
[0271] 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
2
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.
[0272] Druga izvođenja sadrže računarski program za izvođenje jednog od ovde opisanih postupaka, uskladišten na mašinski čitljivom nosaču.
[0273] 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.
[0274] 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.
[0275] 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.
[0276] 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.
[0277] Jedno dalje izvođenje obuhvata računar na kome je instaliran računarski program za izvođenje jednog od ovde opisanih postupaka.
[0278] 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.
[0279] 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.
Claims (7)
1. Dekoder za dekodiranje toka (401) podataka u koji su kodirani medijski podaci, koji sadrži
prekidač (400) režima konfigurisan da aktivira režim niske složenosti ili režim visoke efikasnosti u zavisnosti od toka podataka;
mašinu (608) za entropijsko dekodiranje konfigurisanu da preuzme svaki simbol niza (326) simbola entropijskim dekodiranjem iz toka podataka koristeći odabranu od mnoštva šema (322) entropijskog dekodiranja;
desimbolizator (314) konfigurisan da desimbolizuje sekvencu simbola (326) kako bi se dobio niz elemenata (327) sintakse;
rekonstruktor (404) konfigurisan da rekonstruiše medijske podatke na osnovu niza elemenata sintakse;
pri čemu izbor zavisi od aktiviranog režima niske složenosti i režima visoke efikasnosti,
pri čemu je mašina za entropijsko dekodiranje konfigurisana tako da svaka od mnoštva šema entropijskog dekodiranja uključuje aritmetičko dekodiranje simbola za koje je odabrana odgovarajuća šema entropijskog dekodiranja, sa mnoštvom šema entropijskog dekodiranja koje se razlikuju jedna od druge u korišćenju različite procene verovatnoće u aritmetičkom dekodiranju i tako da mnoštvo šema entropijskog dekodiranja izvrši svoju pod-podelu verovatnoće na zajedničkom intervalu verovatnoće tako da dekodira simbole iz jednog zajedničkog toka bitova, pri čemu je mašina za entropijsko dekodiranje konfigurisana tako da se upravlja samo jednom vrednošću R širine intervala verovatnoće i vrednošću V ofset stanja za sve šeme entropijskog dekodiranja,
pri čemu je svaki simbol niza (326) simbola povezan sa odgovarajućim od mnoštva tipova simbola, pri čemu
za svaki simbol unapred određenog tipa simbola, i u režimu niske složenosti i u režimu visoke efikasnosti, bira se jedna od mnoštva šema entropijskog dekodiranja, a izbor zavisi od modela verovatnoće koji je povezan sa unapred određenim tipom simbola i model verovatnoće se ažurira u zavisnosti od simbola unapred određenog tipa simbola pri prvoj stopi ažuriranja u slučaju aktiviranja režima visoke efikasnosti i pri drugoj stopi ažuriranja nižoj od prve stope ažuriranja u slučaju aktiviranja režima niske složenosti.
2. Dekoder prema zahtevu 1, pri čemu je rekonstruktor (404) konfigurisan da radi nezavisno od režima visoke efikasnosti ili režima niske složenosti koji se aktivira.
3. Dekoder prema zahtevu 1 ili 2, pri čemu je svaki simbol niza (326) simbola povezan sa odgovarajućim od mnoštva tipova simbola, pri čemu su modeli verovatnoće povezani sa tipovima simbola inicijalizovani na osnovu izračunavanja korišćenjem elemenata sintakse u toku podataka čiji su računarski i sintaksni elementi isti u režimu niske složenosti i režimu visoke efikasnosti, respektivno, sa, međutim, rezolucijom rezultata izračunavanja koja je niža u režimu niske složenosti i režimu visoke efikasnosti.
4. Enkoder za kodiranje medijskih podataka u tok (601) podataka, koji sadrži
ubacivač (500) konfigurisan da signalizira unutar toka podataka aktivaciju režima niske složenosti ili režima visoke efikasnosti;
4
konstruktor (504) konfigurisan da unapred kodira medijske podatke u niz elemenata sintakse;
simbolizator (507) konfigurisan da simbolizuje niz elemenata sintakse (327) u niz simbola;
mašinu za entropijsko kodiranje (710) konfigurisanu da kodira svaki simbol niza simbola u tok podataka koristeći odabranu od mnoštva šema entropijskog kodiranja, pri čemu je mašina za entropijsko kodiranje konfigurisana da izvrši izbor u zavisnosti od aktiviranog jednog od režima niske složenosti i režima visoke efikasnosti, pri čemu je mašina za entropijsko kodiranje konfigurisana tako da svaka od mnoštva šema entropijskog kodiranja uključuje aritmetičko kodiranje simbola za koje je odabrana odgovarajuća šema entropijskog kodiranja, sa mnoštvom šema entropijskog kodiranja koje se razlikuju jedna od druge u korišćenju različite procene verovatnoće i tako da mnoštvo šema entropijskog kodiranja izvrši svoju pod-podelu verovatnoće na zajedničkom intervalu verovatnoće tako da kodira simbole u zajednički tok bitova,
pri čemu je mašina za entropijsko kodiranje konfigurisana tako da se upravlja samo jednom vrednošću širine intervala verovatnoće R i odgovarajućom vrednošću L za sve šeme entropijskog kodiranja,
pri čemu je svaki simbol niza (326) simbola povezan sa odgovarajućim od mnoštva tipova simbola, pri čemu se
za svaki simbol unapred određenog tipa simbola, i u režimu niske složenosti i u režimu visoke efikasnosti, bira jedna od mnoštva šema entropijskog kodiranja, a izbor zavisi od modela verovatnoće koji je povezan sa unapred određenim tipom simbola i model verovatnoće se ažurira u zavisnosti od simbola unapred određenog tipa simbola pri prvoj stopi ažuriranja u slučaju aktiviranja režima visoke efikasnosti i pri drugoj stopi ažuriranja nižoj od prve stope ažuriranja u slučaju aktiviranja režima niske složenosti.
5. Postupak za dekodiranje toka (401) podataka u koji su kodirani medijski podaci, koji sadrži
aktiviranje režima niske složenosti ili režima visoke efikasnosti u zavisnosti od toka podataka;
preuzima svaki simbol niza (326) simbola entropijskim dekodiranjem iz toka podataka koristeći odabranu od mnoštva šema (322) entropijskog dekodiranja desimbolizujući sekvencu simbola (326) kako bi se dobio niz elemenata sintakse (327);
rekonstrukciju medijskih podataka na osnovu redosleda elemenata sintakse;
pri čemu se izbor između mnoštva šema (322) entropijskog dekodiranja vrši u zavisnosti od aktiviranog jednog od režima niske složenosti i režima visoke efikasnosti, pri čemu se preuzimanje vrši tako da svaka od mnoštva šema entropijskog dekodiranja uključuje aritmetičko dekodiranje simbola za koje je odabrana odgovarajuća šema entropijskog dekodiranja, iz mnoštva šema entropijskog dekodiranja koje se razlikuju jedna od druge po korišćenju različite procene verovatnoće u aritmetičkom dekodiranju i tako da veći broj šema entropijskog dekodiranja obavlja svoju pod-podelu verovatnoće na zajedničkom intervalu verovatnoće kako bi se dekodirali simboli iz jednog zajedničkog toka bitova, pri čemu se za sve šeme entropijskog dekodiranja upravlja samo jednom vrednošću R širine intervala verovatnoće i vrednošću V ofset stanja,
pri čemu je svaki simbol niza (326) simbola povezan sa odgovarajućim od mnoštva tipova simbola, pri čemu se
za svaki simbol unapred određenog tipa simbola, i u režimu niske složenosti i u režimu visoke efikasnosti, bira jedna od mnoštva šema entropijskog dekodiranja, a izbor zavisi od modela verovatnoće koji je povezan sa unapred određenim tipom simbola i model verovatnoće se ažurira u zavisnosti od simbola unapred određenog tipa simbola pri prvoj stopi ažuriranja u slučaju aktiviranja režima visoke efikasnosti i pri drugoj stopi ažuriranja nižoj od prve stope ažuriranja u slučaju aktiviranja režima niske složenosti.
6. Postupak za kodiranje medijskih podataka u tok podataka, koji sadrži
signaliziranje unutar toka podataka aktivacije režima niske složenosti ili režima visoke efikasnosti;
prethodno kodiranje medijskih podataka u niz elemenata sintakse;
simboliziranje niza elemenata sintakse u niz simbola;
kodiranje svakog simbola niza simbola u tok podataka koristeći odabranu od mnoštva šema entropijskog kodiranja,
pri čemu se izbor između mnoštva šema entropijskog kodiranja vrši u zavisnosti od aktiviranog režima niske složenosti i režima visoke efikasnosti,
pri čemu se kodiranje izvodi tako da svaka od mnoštva šema entropijskog kodiranja uključuje aritmetičko kodiranje simbola za koje je odabrana odgovarajuća šema entropijskog kodiranja, pri čemu se mnoštvo šema entropijskog kodiranja razlikuju jedna od druge u korišćenju različite procene verovatnoće, i tako da mnoštvo šema entropijskog kodiranja vrši svoju pod-podelu verovatnoće na zajedničkom intervalu verovatnoće tako da kodira simbole u zajednički tok bitova,
pri čemu se za sve šeme entropijskog kodiranja upravlja samo jednom vrednošću R širine intervala verovatnoće i odgovarajućom vrednošću L,
pri čemu je svaki simbol niza (326) simbola povezan sa odgovarajućim od mnoštva tipova simbola, pri čemu se
za svaki simbol unapred određenog tipa simbola, i u režimu niske složenosti i u režimu visoke efikasnosti, bira jedna od mnoštva šema entropijskog kodiranja, a izbor zavisi od modela verovatnoće koji je povezan sa unapred određenim tipom simbola i model verovatnoće se ažurira u zavisnosti od simbola unapred određenog tipa simbola pri prvoj stopi ažuriranja u slučaju aktiviranja režima visoke efikasnosti i pri drugoj stopi ažuriranja nižoj od prve stope ažuriranja u slučaju aktiviranja režima niske složenosti.
7. Računarski program koji ima programski kod za izvršavanje, pri izvođenju na računaru, postupka prema zahtevu 5 ili 6.
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201161497794P | 2011-06-16 | 2011-06-16 | |
| US201161508506P | 2011-07-15 | 2011-07-15 | |
| PCT/EP2012/061615 WO2012172115A1 (en) | 2011-06-16 | 2012-06-18 | Entropy coding supporting mode switching |
| EP12728084.0A EP2721819B1 (en) | 2011-06-16 | 2012-06-18 | Entropy coding supporting mode switching |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| RS64867B1 true RS64867B1 (sr) | 2023-12-29 |
Family
ID=46319135
Family Applications (4)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| RS20220220A RS63053B1 (sr) | 2011-06-16 | 2012-06-18 | Inicijalizacija konteksta u entropijskom kodiranju |
| RS20230766A RS64604B1 (sr) | 2011-06-16 | 2012-06-18 | Entropijsko kodiranje razlika vektora kretanja |
| RS20211362A RS62714B1 (sr) | 2011-06-16 | 2012-06-18 | Entropijsko kodiranje razlika vektora kretanja |
| RS20231075A RS64867B1 (sr) | 2011-06-16 | 2012-06-18 | Entropijsko kodiranje koje podržava prekidački režim |
Family Applications Before (3)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| RS20220220A RS63053B1 (sr) | 2011-06-16 | 2012-06-18 | Inicijalizacija konteksta u entropijskom kodiranju |
| RS20230766A RS64604B1 (sr) | 2011-06-16 | 2012-06-18 | Entropijsko kodiranje razlika vektora kretanja |
| RS20211362A RS62714B1 (sr) | 2011-06-16 | 2012-06-18 | Entropijsko kodiranje razlika vektora kretanja |
Country Status (31)
| Country | Link |
|---|---|
| US (39) | US9473170B2 (sr) |
| EP (11) | EP2721819B1 (sr) |
| JP (16) | JP5952900B2 (sr) |
| KR (13) | KR101882848B1 (sr) |
| CN (26) | CN107529709B (sr) |
| AP (3) | AP4072A (sr) |
| AU (12) | AU2012268950B2 (sr) |
| BR (4) | BR112013032333B1 (sr) |
| CA (2) | CA2839560C (sr) |
| CL (2) | CL2013003603A1 (sr) |
| CO (2) | CO6852031A2 (sr) |
| CY (1) | CY1124687T1 (sr) |
| DK (5) | DK3471415T3 (sr) |
| ES (6) | ES2961663T3 (sr) |
| FI (2) | FI2721819T3 (sr) |
| HK (3) | HK1248434B (sr) |
| HR (1) | HRP20220272T1 (sr) |
| HU (5) | HUE063990T2 (sr) |
| IL (18) | IL311563B2 (sr) |
| LT (4) | LT3930330T (sr) |
| MX (7) | MX364201B (sr) |
| MY (3) | MY202391A (sr) |
| PH (17) | PH12013502634B1 (sr) |
| PL (6) | PL3343781T3 (sr) |
| PT (5) | PT3930330T (sr) |
| RS (4) | RS63053B1 (sr) |
| RU (7) | RU2658883C1 (sr) |
| SI (4) | SI3343781T1 (sr) |
| UA (2) | UA115186C2 (sr) |
| WO (3) | WO2012172115A1 (sr) |
| ZA (2) | ZA201400029B (sr) |
Families Citing this family (259)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| RS63059B1 (sr) | 2010-04-13 | 2022-04-29 | Ge Video Compression Llc | Kodiranje videa primenom podele sa više stabala na slikama |
| KR101626688B1 (ko) | 2010-04-13 | 2016-06-01 | 지이 비디오 컴프레션, 엘엘씨 | 샘플 영역 병합 |
| BR122020007923B1 (pt) | 2010-04-13 | 2021-08-03 | Ge Video Compression, Llc | Predição interplano |
| TWI575887B (zh) | 2010-04-13 | 2017-03-21 | Ge影像壓縮有限公司 | 在樣本陣列多元樹細分中之繼承技術 |
| US9288089B2 (en) | 2010-04-30 | 2016-03-15 | Ecole Polytechnique Federale De Lausanne (Epfl) | Orthogonal differential vector signaling |
| 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 |
| US9246713B2 (en) | 2010-05-20 | 2016-01-26 | Kandou Labs, S.A. | Vector signaling with reduced receiver complexity |
| US9985634B2 (en) | 2010-05-20 | 2018-05-29 | Kandou Labs, S.A. | Data-driven voltage regulator |
| US9124557B2 (en) | 2010-05-20 | 2015-09-01 | Kandou Labs, S.A. | Methods and systems for chip-to-chip communication with reduced simultaneous switching noise |
| 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 |
| 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 |
| US8593305B1 (en) | 2011-07-05 | 2013-11-26 | Kandou Labs, S.A. | Efficient processing and detection of balanced codes |
| 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 |
| CN107529709B (zh) * | 2011-06-16 | 2019-05-07 | Ge视频压缩有限责任公司 | 解码器、编码器、解码和编码视频的方法及存储介质 |
| JP5362129B2 (ja) * | 2011-06-24 | 2013-12-11 | パナソニック株式会社 | 画像符号化方法および画像符号化装置 |
| HUE050522T2 (hu) | 2011-06-28 | 2020-12-28 | Samsung Electronics Co Ltd | Video kódolási és dekódolási eljárás felhasználva aritmetikai kódolást az utolsó szignifikáns együttható kétdimenziós jelzésével |
| US11647197B2 (en) | 2011-06-30 | 2023-05-09 | Velos Media, Llc | Context initialization based on slice header flag and slice type |
| EP4708876A2 (en) | 2011-07-15 | 2026-03-11 | GE Video Compression, LLC | Sample array coding for low-delay |
| UA114674C2 (uk) | 2011-07-15 | 2017-07-10 | ДЖ.І. ВІДІЕУ КЕМПРЕШН, ЛЛСі | Ініціалізація контексту в ентропійному кодуванні |
| CN106101727B (zh) * | 2011-08-04 | 2019-10-08 | 寰发股份有限公司 | 基于上下文自适应二进制算术编码的方法及装置 |
| CN103797794B (zh) * | 2011-09-16 | 2017-11-03 | 寰发股份有限公司 | 用于编码的方法和装置 |
| 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 |
| JPWO2013065702A1 (ja) * | 2011-11-04 | 2015-04-02 | シャープ株式会社 | 算術復号装置、画像復号装置、算術符号化装置、画像符号化装置、および、算術復号方法 |
| 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 |
| JP6156723B2 (ja) * | 2012-03-08 | 2017-07-05 | サン パテント トラスト | 画像符号化方法、画像復号化方法、画像符号化装置および画像復号化装置 |
| US11039138B1 (en) | 2012-03-08 | 2021-06-15 | Google Llc | Adaptive coding of prediction modes using probability distributions |
| 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 |
| US9621921B2 (en) | 2012-04-16 | 2017-04-11 | Qualcomm Incorporated | Coefficient groups and coefficient coding for coefficient scans |
| WO2013175736A1 (ja) * | 2012-05-25 | 2013-11-28 | パナソニック株式会社 | 動画像符号化方法、動画像符号化装置、動画像復号方法、動画像復号装置、および、動画像符号化復号装置 |
| ES2936333T3 (es) | 2012-05-25 | 2023-03-16 | Sun Patent Trust | Procedimiento de codificación de imágenes de vídeo, procedimiento de decodificación de imágenes de vídeo, dispositivo de codificación de imágenes de vídeo, dispositivo de decodificación de imágenes de vídeo y dispositivo de codificación-decodificación de imágenes de vídeo |
| RU2679984C2 (ru) | 2012-05-25 | 2019-02-14 | Вилос Медиа Интернэшнл Лимитед | Способ кодирования изображений, устройство кодирования изображений, способ декодирования изображений, устройство декодирования изображений и устройство кодирования и декодирования изображений |
| KR102060617B1 (ko) | 2012-06-04 | 2019-12-30 | 선 페이턴트 트러스트 | 동화상 부호화 방법, 동화상 부호화 장치, 동화상 복호 방법, 및, 동화상 복호 장치 |
| DE102012224060A1 (de) * | 2012-12-20 | 2014-06-26 | Robert Bosch Gmbh | Verfahren zur Datenübertragung für ein Batteriemanagementsystem |
| WO2014124450A1 (en) | 2013-02-11 | 2014-08-14 | Kandou Labs, S.A. | Methods and systems for high bandwidth chip-to-chip communications interface |
| CN104053007B (zh) * | 2013-03-15 | 2019-05-07 | 乐金电子(中国)研究开发中心有限公司 | 深度图像帧内编码模式索引值配置方法及装置 |
| GB2513111A (en) | 2013-04-08 | 2014-10-22 | Sony Corp | Data encoding and decoding |
| CN110166217B (zh) | 2013-04-16 | 2022-05-17 | 康杜实验室公司 | 高带宽通信接口方法和系统 |
| US10157447B2 (en) | 2013-06-25 | 2018-12-18 | Numeri Ltd. | Multi-level spatial resolution increase of video |
| CN105393512B (zh) | 2013-06-25 | 2019-06-28 | 康杜实验室公司 | 具有低接收器复杂度的向量信令 |
| 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 |
| JP6317474B2 (ja) | 2014-02-02 | 2018-04-25 | カンドウ ラボズ ソシエテ アノニム | 制約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 |
| EP3672176B1 (en) | 2014-02-28 | 2022-05-11 | Kandou Labs, 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 |
| CN106664272B (zh) | 2014-07-21 | 2020-03-27 | 康杜实验室公司 | 从多点通信信道接收数据的方法和装置 |
| US9461862B2 (en) | 2014-08-01 | 2016-10-04 | Kandou Labs, S.A. | Orthogonal differential vector signaling codes with embedded clock |
| 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 |
| EP3241351B1 (en) * | 2015-01-30 | 2021-04-28 | MediaTek Inc. | Methods for entropy coding of source samples with large alphabet |
| WO2016124710A1 (en) * | 2015-02-05 | 2016-08-11 | Fraunhofer Gesellschaft Zur Foerderung 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 |
| US10200711B2 (en) | 2015-03-27 | 2019-02-05 | Qualcomm Incorporated | Motion vector derivation in video coding |
| CN112235575B (zh) | 2015-04-08 | 2024-01-12 | 寰发股份有限公司 | 编码方法、编码装置和相应地计算机可读存储介质 |
| EP3292687A4 (en) * | 2015-05-06 | 2019-07-03 | NGCodec Inc. | INTRAPRADICTION PROCESSOR WITH REDUCED COST BLOCK PARTITIONING AND REFINED INTRAMODE SELECTION |
| US10225555B2 (en) * | 2015-05-19 | 2019-03-05 | Mediatek Inc. | Method and apparatus for multi-table based context adaptive binary arithmetic coding |
| EP3314835B1 (en) | 2015-06-26 | 2020-04-08 | 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 |
| ES2844525B1 (es) * | 2015-09-11 | 2022-07-05 | Kt Corp | Metodo para decodificar un video |
| 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 |
| WO2017132292A1 (en) | 2016-01-25 | 2017-08-03 | 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 |
| CN115085727B (zh) | 2016-04-22 | 2026-04-21 | 康杜实验室公司 | 高性能锁相环 |
| CN109313622B (zh) | 2016-04-28 | 2022-04-15 | 康杜实验室公司 | 用于密集路由线组的向量信令码 |
| CN109417521B (zh) | 2016-04-28 | 2022-03-18 | 康杜实验室公司 | 低功率多电平驱动器 |
| US10153591B2 (en) | 2016-04-28 | 2018-12-11 | Kandou Labs, S.A. | Skew-resistant multi-wire channel |
| 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 |
| US11356693B2 (en) * | 2016-09-29 | 2022-06-07 | Qualcomm Incorporated | Motion vector coding for video coding |
| US10462462B2 (en) * | 2016-09-29 | 2019-10-29 | Qualcomm Incorporated | Motion vector difference coding technique for video coding |
| CN106231318B (zh) * | 2016-09-30 | 2020-04-28 | 浙江宇视科技有限公司 | 一种基于量化变换系数的视频加扰方法及装置 |
| MX2019004130A (es) * | 2016-10-11 | 2020-01-30 | Genomsys Sa | Metodo y sistema para el acceso selectivo de datos bioinformaticos almacenados o transmitidos. |
| US10200188B2 (en) | 2016-10-21 | 2019-02-05 | Kandou Labs, S.A. | Quadrature and duty cycle error correction in matrix phase lock loop |
| US10372665B2 (en) | 2016-10-24 | 2019-08-06 | Kandou Labs, S.A. | Multiphase data receiver with distributed DFE |
| US10200218B2 (en) | 2016-10-24 | 2019-02-05 | Kandou Labs, S.A. | Multi-stage sampler with increased gain |
| MX2019007219A (es) * | 2016-12-22 | 2019-09-05 | Kt Corp | Metodo y aparato para procesar señales de video. |
| WO2018124855A1 (ko) * | 2017-01-02 | 2018-07-05 | 한양대학교 산학협력단 | 화면 간 예측을 이용한 영상 복호화 방법 및 장치 |
| 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 |
| MX2019012293A (es) * | 2017-04-13 | 2020-01-20 | Lg Electronics Inc | Metodo y dispositivo para codificacion y decodificacion de entropia de señal de video. |
| EP3610576B1 (en) | 2017-04-14 | 2022-12-28 | Kandou Labs, S.A. | 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 |
| EP3490253A1 (en) * | 2017-11-23 | 2019-05-29 | Thomson Licensing | Encoding and decoding methods and corresponding devices |
| US12355996B2 (en) | 2017-11-23 | 2025-07-08 | Interdigital Vc Holdings, Inc. | Encoding and decoding methods and corresponding devices |
| CN117676138A (zh) * | 2017-12-06 | 2024-03-08 | V-诺瓦国际有限公司 | 编码信号的方法、编码器、解码数据流的方法以及解码器 |
| US10609421B2 (en) * | 2018-07-12 | 2020-03-31 | Google Llc | Context derivation for coefficient coding |
| US10326623B1 (en) | 2017-12-08 | 2019-06-18 | Kandou Labs, S.A. | Methods and systems for providing multi-stage distributed decision feedback equalization |
| 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 |
| US11962782B2 (en) | 2018-01-29 | 2024-04-16 | Interdigital Vc Holdings, Inc. | Encoding and decoding with refinement of the reconstructed picture |
| TWI721396B (zh) * | 2018-03-29 | 2021-03-11 | 弗勞恩霍夫爾協會 | 視訊解碼器、視訊編碼器、用以解碼視訊內容之方法、用以編碼視訊內容之方法、電腦程式及視訊位元串流 |
| EP4568247A3 (en) * | 2018-03-29 | 2025-07-23 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Concept for enhancing parallel coding capabilities |
| 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 | 欣興電子股份有限公司 | 封裝載板結構及其製造方法 |
| JP7183304B6 (ja) * | 2018-05-25 | 2022-12-20 | ライン プラス コーポレーション | 複数のチャネルを利用して動的ビットレートのビデオを配信および再生する方法およびシステム |
| CN118842908A (zh) | 2018-05-30 | 2024-10-25 | 华为技术有限公司 | 一种用于图像划分的方法及装置 |
| US10986340B2 (en) * | 2018-06-01 | 2021-04-20 | Qualcomm Incorporated | Coding adaptive multiple transform information for video coding |
| KR102852767B1 (ko) | 2018-06-12 | 2025-09-01 | 한국전자통신연구원 | 문맥 적응적 이진 산술 부호화 방법 및 장치 |
| 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 | 腾讯科技(深圳)有限公司 | 视频编码和解码方法、装置、计算机设备及存储介质 |
| CN110677658B (zh) | 2018-07-01 | 2022-07-12 | 北京字节跳动网络技术有限公司 | 基于优先级的非相邻Merge设计 |
| CN119520780A (zh) * | 2018-07-02 | 2025-02-25 | 交互数字Vc控股公司 | 基于上下文的二进制算术编码和解码的方法和装置 |
| CN112689960B (zh) * | 2018-07-06 | 2025-10-17 | 弗劳恩霍夫应用研究促进协会 | 算术编码器、算术解码器、视频编码器、视频解码器、编码方法、解码方法和计算机程序 |
| 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 |
| GB2590228B (en) | 2018-08-04 | 2023-04-05 | Beijing Bytedance Network Tech Co Ltd | Clipping of updated MV or derived MV |
| US11336918B2 (en) | 2018-09-05 | 2022-05-17 | Qualcomm Incorporated | Regular coded bin reduction for coefficient coding |
| CN117714717A (zh) | 2018-09-10 | 2024-03-15 | 华为技术有限公司 | 视频解码方法及视频解码器 |
| CN110896485B (zh) * | 2018-09-13 | 2021-10-15 | 华为技术有限公司 | 一种预测运动信息的解码方法及装置 |
| 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 |
| CN115442616B (zh) * | 2018-12-21 | 2026-04-17 | 华为技术有限公司 | 视频解码方法及装置 |
| EP3844960B1 (en) * | 2018-12-29 | 2025-02-19 | Huawei Technologies Co., Ltd. | An encoder, a decoder and corresponding methods using compact mv storage |
| KR20210094664A (ko) | 2019-01-02 | 2021-07-29 | 텔레폰악티에볼라겟엘엠에릭슨(펍) | 비디오 인코딩/디코딩 시스템의 사이드 모션 정교화 |
| 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 |
| US11178399B2 (en) * | 2019-03-12 | 2021-11-16 | Qualcomm Incorporated | Probability initialization for video coding |
| JP7520853B2 (ja) * | 2019-03-12 | 2024-07-23 | インターデジタル ヴイシー ホールディングス, インコーポレイテッド | ビデオコード化のための残差コード化における通常のビンの柔軟な割り当て |
| WO2020189978A1 (ko) * | 2019-03-15 | 2020-09-24 | 삼성전자 주식회사 | 비디오 복호화 방법 및 장치, 비디오 부호화 방법 및 장치 |
| CN113748605A (zh) * | 2019-03-18 | 2021-12-03 | 弗劳恩霍夫应用研究促进协会 | 用于压缩神经网络的参数的方法和装置 |
| CN109947398B (zh) * | 2019-03-25 | 2020-12-25 | 武汉轻工大学 | 三重积分求解方法、装置、终端设备及可读存储介质 |
| WO2020211770A1 (en) | 2019-04-15 | 2020-10-22 | Beijing Bytedance Network Technology Co., Ltd. | Temporal prediction of parameters in non-linear adaptive loop filter |
| WO2020231140A1 (ko) | 2019-05-14 | 2020-11-19 | 엘지전자 주식회사 | 적응적 루프 필터 기반 비디오 또는 영상 코딩 |
| 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 |
| CN114556927B (zh) * | 2019-08-06 | 2024-12-03 | 现代自动车株式会社 | 熵解码、编码方法,发送比特流的方法 |
| US11553213B2 (en) * | 2019-08-13 | 2023-01-10 | Tencent America LLC | Method and apparatus for video coding |
| US12022061B2 (en) * | 2019-08-31 | 2024-06-25 | Lg Electronics Inc. | Method and apparatus for coding transform coefficient in video/image coding system |
| KR20220062085A (ko) * | 2019-09-20 | 2022-05-13 | 알리바바 그룹 홀딩 리미티드 | 비디오 처리에서 양자화 파라미터 시그널링 |
| WO2021058655A1 (en) * | 2019-09-24 | 2021-04-01 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Arithmetic encoders and decoders, video encoders and decoders, methods for encoding or decoding symbols, and methods for encoding or decoding video content |
| WO2021058593A1 (en) * | 2019-09-24 | 2021-04-01 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Coding concept for a sequence of information values |
| CN114761970A (zh) * | 2019-10-01 | 2022-07-15 | 弗劳恩霍夫应用研究促进协会 | 神经网络表示格式 |
| KR102626260B1 (ko) * | 2019-10-01 | 2024-01-17 | 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 | 잔차 및 계수 코딩 방법 및 장치 |
| GB2589066B (en) * | 2019-10-24 | 2023-06-28 | Advanced Risc Mach Ltd | Encoding data arrays |
| CN114556790A (zh) * | 2019-11-08 | 2022-05-27 | 谷歌有限责任公司 | 用于熵代码化的概率估计 |
| 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 |
| US20230042018A1 (en) * | 2020-02-12 | 2023-02-09 | Google Llc | Multi-context entropy coding for compression of graphs |
| GB2593691B (en) * | 2020-03-30 | 2022-08-24 | Imagination Tech Ltd | Efficient encoding methods |
| EP4169166B1 (en) * | 2020-06-23 | 2025-09-24 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | 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 |
| US20230253074A1 (en) * | 2020-07-10 | 2023-08-10 | Koninklijke Philips N.V. | Genomic information compression by configurable machine learning-based arithmetic coding |
| 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 |
| ES3062792T3 (en) * | 2020-10-06 | 2026-04-14 | Fraunhofer Ges Forschung | Arithmetic encoder for arithmetically encoding and arithmetic decoder for arithmetically decoding a sequence of information values, methods for arithmetically encoding and decoding a sequence of information values and computer program for implementing these methods |
| 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 |
| EP4325848A4 (en) * | 2021-04-12 | 2025-01-29 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | ENCODING METHODS, DECODING METHODS, ENCODER, DECODER AND STORAGE MEDIUM |
| CN113489979A (zh) * | 2021-05-28 | 2021-10-08 | 杭州博雅鸿图视频技术有限公司 | 熵编码方法、装置、电子设备及存储介质 |
| CN113422964B (zh) * | 2021-06-04 | 2024-07-30 | 绍兴市北大信息技术科创中心 | 一种串长度参数编解码方法和装置 |
| CN115550652A (zh) * | 2021-06-30 | 2022-12-30 | 微软技术许可有限责任公司 | 基于上下文的图像编解码 |
| US12604039B2 (en) | 2021-08-17 | 2026-04-14 | Beijing Dajia Internet Information Technology Co., Ltd. | Sign prediction for block-based video coding |
| US12563234B2 (en) | 2021-08-17 | 2026-02-24 | Beijing Dajia Internet Information Technology Co., Ltd. | Sign prediction for block-based video coding |
| EP4385209A4 (en) | 2021-08-17 | 2025-07-02 | Beijing Dajia Internet Information Tech Co Ltd | SIGN PREDICTION FOR BLOCK-BASED VIDEO CODING |
| AU2022333140B2 (en) * | 2021-08-26 | 2026-04-02 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | History-based rice parameter derivations for wavefront parallel processing in 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 |
| EP4449722A4 (en) * | 2021-12-16 | 2025-12-17 | Beijing Dajia Internet Information Tech Co Ltd | Character prediction for block-based video coding |
| WO2023150611A1 (en) | 2022-02-03 | 2023-08-10 | Dolby Laboratories Licensing Corporation | Systems and methods for improved entropy coding efficiency |
| 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 |
| CA3245490A1 (en) | 2022-04-05 | 2025-06-13 | Samsung Electronics Co., Ltd. | ENTROPIC CODING AND DECODING DEVICE, AND ASSOCIATED METHOD |
| WO2023195643A1 (ko) * | 2022-04-05 | 2023-10-12 | 삼성전자 주식회사 | 엔트로피 부호화 및 복호화 장치 및 그 방법 |
| JP2025522817A (ja) * | 2022-06-30 | 2025-07-17 | 華為技術有限公司 | エントロピーコーディングパラメータの適応的選択 |
| CN117917079A (zh) * | 2022-07-04 | 2024-04-19 | 嘉兴尚坤科技有限公司 | 一种超高清视频数据编码/解码处理方法及系统 |
| CN120019649A (zh) * | 2022-10-18 | 2025-05-16 | Oppo广东移动通信有限公司 | 编解码方法、码流、编码器、解码器以及存储介质 |
| US12506875B2 (en) * | 2022-10-19 | 2025-12-23 | Tencent America LLC | Method and apparatus for motion vector coding |
| US12487980B2 (en) | 2023-01-09 | 2025-12-02 | Dynatrace Llc | Compact probabilistic data structure for storing log data |
| US12229107B2 (en) * | 2023-01-09 | 2025-02-18 | Dynatrace Llc | Compact probabilistic data structure for storing streamed log lines |
| WO2024148491A1 (zh) * | 2023-01-09 | 2024-07-18 | Oppo广东移动通信有限公司 | 编解码方法、码流、编码器、解码器以及存储介质 |
| US12493651B2 (en) * | 2023-01-09 | 2025-12-09 | 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 |
| WO2024155078A1 (ko) * | 2023-01-16 | 2024-07-25 | 주식회사 케이티 | 영상 부호화/복호화 방법 및 비트스트림을 저장하는 기록 매체 |
| 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)
| 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 | 株式会社日鉱マテリアルズ | アルミニウム合金スパッタリングターゲットの製造方法 |
| JP2866616B2 (ja) | 1996-06-24 | 1999-03-08 | 昇 大串 | 健康ベッド |
| 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 |
| 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 |
| EP2262269B1 (en) * | 2001-12-17 | 2018-01-24 | Microsoft Technology Licensing, LLC | Skip macroblock coding |
| 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 | 符号化装置および方法、復号装置および方法、記録媒体、並びにプログラム |
| ATE343302T1 (de) * | 2002-05-02 | 2006-11-15 | Fraunhofer Ges Forschung | Kodierung und dekodierung von transformationskoeffizienten in bild- oder videokodierern |
| DE50311129D1 (de) * | 2002-05-02 | 2009-03-12 | Fraunhofer Ges Forschung | Verfahren und anordnung zur arithmetischen enkodierung und dekodierung von binären zuständen sowie ein entsprechendes computerprogramm und ein entsprechendes computerlesbares speichermedium |
| 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 |
| US7499495B2 (en) * | 2003-07-18 | 2009-03-03 | Microsoft Corporation | Extended range motion vectors |
| US20050013498A1 (en) * | 2003-07-18 | 2005-01-20 | Microsoft Corporation | Coding of motion vector information |
| 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 | 삼성전자주식회사 | 시간적 레벨간 모션 벡터 예측을 이용한 비디오인코딩/디코딩 방법 및 장치 |
| RU2336661C2 (ru) * | 2005-04-19 | 2008-10-20 | Самсунг Электроникс Ко., Лтд. | Способ и устройство адаптивного выбора контекстной модели для кодирования по энтропии |
| AU2006201490B2 (en) * | 2005-04-19 | 2008-05-22 | Samsung Electronics Co., Ltd. | Method and apparatus for adaptively selecting context model for entropy coding |
| 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解码系统及方法 |
| AU2005338015C1 (en) | 2005-10-31 | 2010-11-18 | Life Spring Biotech Co., Ltd. | Scleral buckle band and method for making it |
| KR100873636B1 (ko) * | 2005-11-14 | 2008-12-12 | 삼성전자주식회사 | 단일 부호화 모드를 이용하는 영상 부호화/복호화 방법 및장치 |
| PL1955484T3 (pl) | 2005-11-25 | 2013-01-31 | Gregor Zebic | Aplikacja sieci domowej wykorzystująca przewodowe oraz bezprzewodowe bezpieczne łącza |
| 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的熵解码器的实现方法及装置 |
| US20080162432A1 (en) * | 2006-12-29 | 2008-07-03 | Wen-Shan Wang | Search table for unary k-th order exp-golomb decoder |
| US7573405B2 (en) * | 2006-12-29 | 2009-08-11 | Texas Instruments Incorporated | System updating accumulated statistics coding variable values after multiple encodings |
| 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 | パワーモジュール |
| BR122019021946B1 (pt) * | 2007-06-29 | 2024-02-06 | Velos Media International Limited | Dispositivo de codificação de imagem para codificar imagens de entrada e dispositivo de decodificação de imagem para decodificar dados de imagens codificados |
| 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 |
| ATE518224T1 (de) * | 2008-01-04 | 2011-08-15 | Dolby Int 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 |
| US9973739B2 (en) * | 2008-10-17 | 2018-05-15 | Nokia Technologies Oy | 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 | 삼성전자 주식회사 | 제빙장치 및 이를 구비하는 냉장고 |
| KR101678968B1 (ko) * | 2009-08-21 | 2016-11-25 | 에스케이텔레콤 주식회사 | 참조 픽처 보간 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치 |
| KR101441874B1 (ko) * | 2009-08-21 | 2014-09-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标准的高速实时处理算术熵编码方法 |
| HUE037656T2 (hu) | 2010-04-13 | 2018-09-28 | Fraunhofer Ges Forschung | Valószínûség intervallum partícionáló kódoló és dekódoló |
| 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 |
| CN107529709B (zh) * | 2011-06-16 | 2019-05-07 | Ge视频压缩有限责任公司 | 解码器、编码器、解码和编码视频的方法及存储介质 |
| 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 |
-
2012
- 2012-06-18 CN CN201710694425.0A patent/CN107529709B/zh active Active
- 2012-06-18 RS RS20220220A patent/RS63053B1/sr unknown
- 2012-06-18 CN CN201710694392.XA patent/CN107529705B/zh active Active
- 2012-06-18 HU HUE12728084A patent/HUE063990T2/hu unknown
- 2012-06-18 CN CN201710694395.3A patent/CN107529706B/zh active Active
- 2012-06-18 CN CN201710965903.7A patent/CN107613307B/zh active Active
- 2012-06-18 SI SI201231980T patent/SI3343781T1/sl unknown
- 2012-06-18 ES ES12728084T patent/ES2961663T3/es active Active
- 2012-06-18 CN CN201710962467.8A patent/CN107770559B/zh active Active
- 2012-06-18 AU AU2012268950A patent/AU2012268950B2/en active Active
- 2012-06-18 CN CN201710694423.1A patent/CN107529707B/zh active Active
- 2012-06-18 KR KR1020177010779A patent/KR101882848B1/ko active Active
- 2012-06-18 SI SI201231961T patent/SI3471415T1/sl unknown
- 2012-06-18 PL PL18152613T patent/PL3343781T3/pl unknown
- 2012-06-18 LT LTEP21189232.8T patent/LT3930330T/lt unknown
- 2012-06-18 PL PL21189232.8T patent/PL3930330T3/pl unknown
- 2012-06-18 MY MYPI2018001555A patent/MY202391A/en unknown
- 2012-06-18 FI FIEP12728084.0T patent/FI2721819T3/fi active
- 2012-06-18 EP EP12728084.0A patent/EP2721819B1/en active Active
- 2012-06-18 IL IL311563A patent/IL311563B2/en unknown
- 2012-06-18 CN CN201710477937.1A patent/CN107333140B/zh active Active
- 2012-06-18 CN CN201710694268.3A patent/CN107801041B/zh active Active
- 2012-06-18 PL PL12734832T patent/PL2721822T3/pl unknown
- 2012-06-18 UA UAA201600953A patent/UA115186C2/uk unknown
- 2012-06-18 DK DK18203401.7T patent/DK3471415T3/da active
- 2012-06-18 IL IL316862A patent/IL316862B2/en unknown
- 2012-06-18 CN CN201710477936.7A patent/CN107465928B/zh active Active
- 2012-06-18 PT PT211892328T patent/PT3930330T/pt unknown
- 2012-06-18 BR BR112013032333-7A patent/BR112013032333B1/pt active IP Right Grant
- 2012-06-18 CN CN201280039896.3A patent/CN103931194B/zh active Active
- 2012-06-18 CA CA2839560A patent/CA2839560C/en active Active
- 2012-06-18 JP JP2014515231A patent/JP5952900B2/ja active Active
- 2012-06-18 CN CN201710478537.2A patent/CN107333141B/zh active Active
- 2012-06-18 EP EP21211399.7A patent/EP4033672A1/en active Pending
- 2012-06-18 DK DK12734832.4T patent/DK2721822T3/en active
- 2012-06-18 MY MYPI2014000424A patent/MY170940A/en unknown
- 2012-06-18 WO PCT/EP2012/061615 patent/WO2012172115A1/en not_active Ceased
- 2012-06-18 MY MYPI2014000425A patent/MY184473A/en unknown
- 2012-06-18 RS RS20230766A patent/RS64604B1/sr unknown
- 2012-06-18 KR KR1020227029290A patent/KR102631388B1/ko active Active
- 2012-06-18 KR KR1020197035422A patent/KR102187981B1/ko active Active
- 2012-06-18 CN CN201710694930.5A patent/CN107360434B/zh active Active
- 2012-06-18 PH PH1/2013/502634A patent/PH12013502634B1/en unknown
- 2012-06-18 CN CN201280039922.2A patent/CN103748886B/zh active Active
- 2012-06-18 CN CN201710694799.2A patent/CN107529710B/zh active Active
- 2012-06-18 RU RU2017109078A patent/RU2658883C1/ru active
- 2012-06-18 IL IL304856A patent/IL304856B2/en unknown
- 2012-06-18 CN CN201710477825.6A patent/CN107465927B/zh active Active
- 2012-06-18 EP EP12734832.4A patent/EP2721822B1/en active Active
- 2012-06-18 HU HUE18203401A patent/HUE056273T2/hu unknown
- 2012-06-18 CA CA2839569A patent/CA2839569C/en active Active
- 2012-06-18 KR KR1020197018337A patent/KR102160647B1/ko active Active
- 2012-06-18 RU RU2016129117A patent/RU2642373C1/ru active
- 2012-06-18 CN CN201280039832.3A patent/CN103733622B/zh active Active
- 2012-06-18 KR KR1020167003248A patent/KR101730587B1/ko active Active
- 2012-06-18 HR HRP20220272TT patent/HRP20220272T1/hr unknown
- 2012-06-18 KR KR1020147001047A patent/KR101662136B1/ko active Active
- 2012-06-18 JP JP2014515229A patent/JP6059212B2/ja active Active
- 2012-06-18 KR KR1020247003097A patent/KR102784652B1/ko active Active
- 2012-06-18 EP EP24166607.2A patent/EP4407995A3/en active Pending
- 2012-06-18 ES ES24166608T patent/ES3059234T3/es active Active
- 2012-06-18 EP EP18203401.7A patent/EP3471415B1/en active Active
- 2012-06-18 IL IL309379A patent/IL309379B2/en unknown
- 2012-06-18 ES ES21189232T patent/ES2953667T3/es active Active
- 2012-06-18 KR KR1020187000824A patent/KR101994869B1/ko active Active
- 2012-06-18 AP AP2014007360A patent/AP4072A/en active
- 2012-06-18 RU RU2014101164/08A patent/RU2595934C2/ru active
- 2012-06-18 KR KR1020147000948A patent/KR101619333B1/ko active Active
- 2012-06-18 PT PT181526138T patent/PT3343781T/pt unknown
- 2012-06-18 LT LTEP18152613.8T patent/LT3343781T/lt unknown
- 2012-06-18 FI FIEP21189232.8T patent/FI3930330T3/fi active
- 2012-06-18 SI SI201232044T patent/SI2721819T1/sl unknown
- 2012-06-18 CN CN201710694312.0A patent/CN107801042B/zh active Active
- 2012-06-18 CN CN201710491640.0A patent/CN107333142B/zh active Active
- 2012-06-18 MX MX2017000909A patent/MX364201B/es unknown
- 2012-06-18 CN CN201710694391.5A patent/CN107347161B/zh active Active
- 2012-06-18 HU HUE18152613A patent/HUE057958T2/hu unknown
- 2012-06-18 DK DK21189232.8T patent/DK3930330T3/da active
- 2012-06-18 RS RS20211362A patent/RS62714B1/sr unknown
- 2012-06-18 WO PCT/EP2012/061614 patent/WO2012172114A1/en not_active Ceased
- 2012-06-18 HU HUE12734832A patent/HUE042350T2/hu unknown
- 2012-06-18 PL PL12728084.0T patent/PL2721819T3/pl unknown
- 2012-06-18 SI SI201232038T patent/SI3930330T1/sl unknown
- 2012-06-18 IL IL299953A patent/IL299953B2/en unknown
- 2012-06-18 KR KR1020207034609A patent/KR102437504B1/ko active Active
- 2012-06-18 ES ES18152613T patent/ES2906869T3/es active Active
- 2012-06-18 JP JP2014515230A patent/JP5925884B2/ja active Active
- 2012-06-18 ES ES12734832T patent/ES2704627T3/es active Active
- 2012-06-18 CN CN201710695327.9A patent/CN107360423B/zh active Active
- 2012-06-18 IL IL290229A patent/IL290229B2/en unknown
- 2012-06-18 EP EP24166608.0A patent/EP4407996B1/en active Active
- 2012-06-18 HU HUE21189232A patent/HUE062605T2/hu unknown
- 2012-06-18 UA UAA201701791A patent/UA123987C2/uk unknown
- 2012-06-18 MX MX2016001282A patent/MX345195B/es unknown
- 2012-06-18 CN CN201710962381.5A patent/CN107517383B/zh active Active
- 2012-06-18 IL IL305221A patent/IL305221B2/en unknown
- 2012-06-18 CN CN201710977462.2A patent/CN107517384B/zh active Active
- 2012-06-18 IL IL252388A patent/IL252388B/en unknown
- 2012-06-18 DK DK18152613.8T patent/DK3343781T3/da active
- 2012-06-18 KR KR1020207015415A patent/KR102254000B1/ko active Active
- 2012-06-18 KR KR1020167026722A patent/KR101818978B1/ko active Active
- 2012-06-18 CN CN201710477823.7A patent/CN107465926B/zh active Active
- 2012-06-18 BR BR122020024986-2A patent/BR122020024986B1/pt active IP Right Grant
- 2012-06-18 AP AP2016009618A patent/AP2016009618A0/en unknown
- 2012-06-18 EP EP18152613.8A patent/EP3343781B1/en not_active Revoked
- 2012-06-18 IL IL297827A patent/IL297827B2/en unknown
- 2012-06-18 PT PT12734832T patent/PT2721822T/pt unknown
- 2012-06-18 LT LTEPPCT/EP2012/061615T patent/LT2721819T/lt unknown
- 2012-06-18 BR BR122021000264-9A patent/BR122021000264B1/pt active IP Right Grant
- 2012-06-18 PH PH1/2013/502633A patent/PH12013502633A1/en unknown
- 2012-06-18 PT PT127280840T patent/PT2721819T/pt unknown
- 2012-06-18 ES ES18203401T patent/ES2897209T3/es active Active
- 2012-06-18 MX MX2013014868A patent/MX2013014868A/es active IP Right Grant
- 2012-06-18 EP EP20155692.5A patent/EP3703367A1/en active Pending
- 2012-06-18 MX MX2013014867A patent/MX336735B/es unknown
- 2012-06-18 EP EP23177778.0A patent/EP4277276A1/en active Pending
- 2012-06-18 PL PL24166608.0T patent/PL4407996T3/pl unknown
- 2012-06-18 CN CN201710694424.6A patent/CN107529708B/zh active Active
- 2012-06-18 EP EP21189232.8A patent/EP3930330B1/en active Active
- 2012-06-18 LT LTEP18203401.7T patent/LT3471415T/lt unknown
- 2012-06-18 IL IL312098A patent/IL312098B2/en unknown
- 2012-06-18 AP AP2014007361A patent/AP3686A/xx active
- 2012-06-18 BR BR112013032332-9A patent/BR112013032332B1/pt active IP Right Grant
- 2012-06-18 EP EP12728524.5A patent/EP2721820A1/en not_active Ceased
- 2012-06-18 PT PT182034017T patent/PT3471415T/pt unknown
- 2012-06-18 CN CN201710694354.4A patent/CN107529704B/zh active Active
- 2012-06-18 RS RS20231075A patent/RS64867B1/sr unknown
- 2012-06-18 CN CN201710694292.7A patent/CN107801025B/zh active Active
- 2012-06-18 RU RU2014101166A patent/RU2615681C2/ru active
- 2012-06-18 PL PL18203401T patent/PL3471415T3/pl unknown
- 2012-06-18 AU AU2012268951A patent/AU2012268951B2/en active Active
- 2012-06-18 DK DK12728084.0T patent/DK2721819T3/da active
- 2012-06-18 WO PCT/EP2012/061613 patent/WO2012172113A1/en not_active Ceased
- 2012-06-18 KR KR1020187021221A patent/KR102052471B1/ko active Active
-
2013
- 2013-12-16 US US14/108,108 patent/US9473170B2/en active Active
- 2013-12-16 CL CL2013003603A patent/CL2013003603A1/es unknown
- 2013-12-16 MX MX2023005265A patent/MX2023005265A/es unknown
- 2013-12-16 CL CL2013003601A patent/CL2013003601A1/es unknown
- 2013-12-16 US US14/108,132 patent/US9455744B2/en active Active
- 2013-12-16 US US14/108,173 patent/US9918090B2/en active Active
- 2013-12-16 MX MX2019004403A patent/MX2019004403A/es unknown
- 2013-12-16 MX MX2023005264A patent/MX2023005264A/es unknown
- 2013-12-17 IL IL230023A patent/IL230023A/en active IP Right Grant
-
2014
- 2014-01-06 ZA ZA2014/00029A patent/ZA201400029B/en unknown
- 2014-01-06 ZA ZA2014/00030A patent/ZA201400030B/en unknown
- 2014-01-12 IL IL230415A patent/IL230415A/en not_active IP Right Cessation
- 2014-01-16 CO CO14007528A patent/CO6852031A2/es active IP Right Grant
- 2014-01-16 CO CO14007521A patent/CO6852030A2/es unknown
-
2016
- 2016-04-20 JP JP2016084671A patent/JP6356723B2/ja active Active
- 2016-04-26 AU AU2016202638A patent/AU2016202638B2/en active Active
- 2016-08-16 US US15/238,294 patent/US9596475B2/en active Active
- 2016-08-16 US US15/238,523 patent/US9729883B2/en active Active
- 2016-08-23 US US15/244,126 patent/US9628827B2/en active Active
- 2016-08-23 US US15/244,156 patent/US9686568B2/en active Active
- 2016-12-08 JP JP2016238858A patent/JP6492047B2/ja active Active
- 2016-12-19 IL IL249644A patent/IL249644A/en active IP Right Grant
-
2017
- 2017-01-30 US US15/419,006 patent/US9743090B2/en active Active
- 2017-02-13 US US15/430,826 patent/US9762913B2/en active Active
- 2017-05-15 US US15/595,097 patent/US9768804B1/en active Active
- 2017-06-28 US US15/636,425 patent/US9918104B2/en active Active
- 2017-06-28 US US15/636,476 patent/US9930370B2/en active Active
- 2017-06-28 US US15/636,451 patent/US10021393B2/en active Active
- 2017-07-05 US US15/641,992 patent/US9936227B2/en active Active
- 2017-07-05 US US15/642,085 patent/US9930371B2/en active Active
- 2017-08-10 US US15/674,150 patent/US9973761B2/en active Active
- 2017-09-03 IL IL254274A patent/IL254274B/en active IP Right Grant
- 2017-09-14 AU AU2017228613A patent/AU2017228613B2/en active Active
- 2017-12-15 US US15/843,679 patent/US10057603B2/en active Active
-
2018
- 2018-01-09 RU RU2018100106A patent/RU2699677C2/ru active
- 2018-01-26 US US15/880,837 patent/US10063858B2/en active Active
- 2018-01-26 US US15/880,772 patent/US10148962B2/en active Active
- 2018-01-30 AU AU2018200699A patent/AU2018200699B2/en active Active
- 2018-02-14 PH PH12018500328A patent/PH12018500328B1/en unknown
- 2018-02-14 PH PH12018500331A patent/PH12018500331A1/en unknown
- 2018-02-14 PH PH12018500330A patent/PH12018500330A1/en unknown
- 2018-02-14 PH PH12018500329A patent/PH12018500329B1/en unknown
- 2018-02-15 PH PH12018500353A patent/PH12018500353B1/en unknown
- 2018-02-15 PH PH12018500349A patent/PH12018500349A1/en unknown
- 2018-02-15 PH PH12018500355A patent/PH12018500355B1/en unknown
- 2018-02-15 PH PH12018500350A patent/PH12018500350B1/en unknown
- 2018-02-15 PH PH12018500356A patent/PH12018500356B1/en unknown
- 2018-02-15 PH PH12018500348A patent/PH12018500348A1/en unknown
- 2018-02-15 PH PH12018500352A patent/PH12018500352B1/en unknown
- 2018-02-15 PH PH12018500354A patent/PH12018500354B1/en unknown
- 2018-02-15 PH PH12018500351A patent/PH12018500351B1/en unknown
- 2018-03-12 US US15/918,105 patent/US10440364B2/en active Active
- 2018-04-02 JP JP2018070521A patent/JP6560393B2/ja active Active
- 2018-06-03 IL IL259768A patent/IL259768A/en active IP Right Grant
- 2018-06-06 RU RU2018120845A patent/RU2758981C2/ru active
- 2018-06-10 HK HK18107525.9A patent/HK1248434B/zh unknown
- 2018-06-12 US US16/006,288 patent/US10298964B2/en active Active
- 2018-06-27 JP JP2018121555A patent/JP6867334B2/ja active Active
- 2018-06-28 HK HK18108378.5A patent/HK1248948B/zh unknown
- 2018-07-03 HK HK18108563.0A patent/HK1249313B/zh unknown
- 2018-07-17 US US16/037,914 patent/US10313672B2/en active Active
- 2018-07-20 US US16/040,764 patent/US10230954B2/en active Active
- 2018-08-14 US US16/103,266 patent/US10306232B2/en active Active
- 2018-11-19 JP JP2018216486A patent/JP6814780B2/ja active Active
-
2019
- 2019-01-02 US US16/238,013 patent/US10425644B2/en active Active
- 2019-01-18 AU AU2019200328A patent/AU2019200328B2/en active Active
- 2019-01-28 US US16/259,815 patent/US10432940B2/en active Active
- 2019-01-28 US US16/259,738 patent/US10432939B2/en active Active
- 2019-03-26 IL IL265636A patent/IL265636B/en active IP Right Grant
- 2019-04-11 PH PH12019500792A patent/PH12019500792A1/en unknown
- 2019-04-11 PH PH12019500790A patent/PH12019500790A1/en unknown
- 2019-05-30 AU AU2019203792A patent/AU2019203792B2/en active Active
- 2019-06-27 US US16/454,387 patent/US10630988B2/en active Active
- 2019-06-27 US US16/454,247 patent/US10630987B2/en active Active
- 2019-08-28 RU RU2019127048A patent/RU2755020C2/ru active
- 2019-11-25 US US16/693,886 patent/US10819982B2/en active Active
-
2020
- 2020-01-31 US US16/778,048 patent/US11533485B2/en active Active
- 2020-05-05 US US16/867,149 patent/US11277614B2/en active Active
- 2020-10-23 JP JP2020178469A patent/JP7231594B2/ja active Active
-
2021
- 2021-04-08 JP JP2021065563A patent/JP7100836B2/ja active Active
- 2021-06-02 IL IL283649A patent/IL283649B/en unknown
- 2021-07-29 AU AU2021209284A patent/AU2021209284B2/en active Active
- 2021-11-03 CY CY20211100947T patent/CY1124687T1/el unknown
-
2022
- 2022-02-01 US US17/590,596 patent/US11838511B2/en active Active
- 2022-06-21 JP JP2022099860A patent/JP7571084B2/ja active Active
- 2022-06-30 IL IL294454A patent/IL294454B2/en unknown
- 2022-09-09 US US17/930,997 patent/US12069267B2/en active Active
- 2022-09-19 AU AU2022235513A patent/AU2022235513B2/en active Active
- 2022-11-07 US US18/053,219 patent/US12316846B2/en active Active
-
2023
- 2023-02-16 JP JP2023022627A patent/JP7464768B2/ja active Active
- 2023-06-16 AU AU2023203785A patent/AU2023203785B2/en active Active
- 2023-10-06 US US18/482,683 patent/US12301819B2/en active Active
-
2024
- 2024-03-15 AU AU2024201731A patent/AU2024201731B2/en active Active
- 2024-03-28 JP JP2024053787A patent/JP7572582B2/ja active Active
- 2024-07-08 US US18/765,931 patent/US12581082B2/en active Active
- 2024-10-09 JP JP2024177286A patent/JP7849438B2/ja active Active
- 2024-10-10 JP JP2024177994A patent/JP7727072B2/ja active Active
- 2024-11-27 AU AU2024266934A patent/AU2024266934B2/en active Active
-
2025
- 2025-04-22 US US19/186,131 patent/US20250317566A1/en active Pending
- 2025-05-09 US US19/203,384 patent/US20250337907A1/en active Pending
- 2025-08-07 JP JP2025132268A patent/JP2025170279A/ja active Pending
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12301819B2 (en) | Entropy coding supporting mode switching | |
| HK40036839A (en) | Entropy coding supporting mode switching | |
| HK1250864A1 (en) | Decoder, encoder, decoding method, encoding method, medium and storing method | |
| HK1250864B (zh) | 解码器、编码器、解码方法、编码方法、介质和存储方法 | |
| HK1247489B (zh) | 解码器、编码器、解码方法、编码方法以及存储介质 | |
| HK1248951B (zh) | 解码器、编码器、解码方法、编码方法及存储介质 | |
| HK1247488B (zh) | 解码器、编码器、解码方法、编码方法以及存储介质 | |
| HK1197128B (en) | Entropy coding supporting mode switching |